Software engineering needs a general theory, i.e., a theory thatapplies across the field and unifies existing empirical and theoreticalwork. General theories are common in other domains, suchas physics. While many software engineering theories exist, nogeneral theory of software engineering is evident. Consequently,this report reviews the emerging consensus on a general theory insoftware engineering from the Second SEMAT General Theory ofSoftware Engineering workshop co-located with the InternationalConference on Software Engineering in 2013. Participants agreedthat a general theory is possible and needed, should explain andpredict software engineering phenomena at multiple levels, includingsocial processes and technical artifacts, should synthesize existingtheories from software engineering and reference disciplines,should be developed iteratively, should avoid common misconceptionsand atheoretical concepts, and should respect the complexityof software engineering phenomena. However, several disputes remain,including concerns regarding ontology, epistemology, levelof formality, and how exactly to proceed with formulating a generaltheory.
General Theory, Software Engineering, Workshop Report.