There has been a growing interest in the role of theory within Software Engineering (SE) research. For several decades, researchers
within the SE research community have argued that, to become a ‘real’ engineering science, SE needs to develop stronger theoretical
foundations. However, so far, the role of theory is neither fully appreciated nor well understood in SE research. Without a good
common understanding of what theory is, what it constitutes in SE research, and the various roles it can play in SE research, it is
di cult to appreciate how theory building can help to strengthen SE research. In this paper we discuss the importance of theory
and conceptualization, and review the key components that comprise a theory. We then present the Research Path Schema (RPS),
which is an adaptation of an analytical framework from the social sciences. The RPS defines a research study as consisting of three
components: some phenomenon, system or substance that a researcher is interested in; some technique or method to study that
substance; and some form of conceptualization or theory that provides an explanation for, or abstraction of the observations made in
a study. Di erent research studies have a di erent archetypical ‘architecture,’ depending on the selection of these three components.
Consequently, the role of the conceptualization or theory will be di erent for each archetypical study design, or selected research
path. We conclude this paper by outlining a number of implications for future SE research, and argue for a Theory-Oriented Software
Engineering research perspective, which can complement the recent focus on Evidence Based Software Engineering.
History
Publication
Science of Computer Programming;101, pp. 79-98
Publisher
Elsevier
Note
peer-reviewed
Other Funding information
SFI
Rights
Elsevier
This is the author’s version of a work that was accepted for publication in Science of Computer Programming. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version was subsequently published in Science of Computer Programming, 2015, 101, pp. 79-98,
http://dx.doi.org/10.1016/j.scico.2014.11.010