A design theory for software engineering

Hall, Jon G. and Rapanotti, Lucia (2016). A design theory for software engineering. Technical Report 2016/01; Department of Computing, The Open University.

DOI: https://doi.org/10.21954/ou.ro.000160c9


Software Engineering is a discipline that has been shaped by over 50 years of practice. Many have argued that its theoretical basis has been slow to develop and that, in fact, a substantial theory of Software Engineering is still lacking. This article contributes to the ongoing debate by proposing a design theory for Software Engineering. From an ontological perspective, our theory embodies a view of Software Engineering as the practice of framing, representing and transforming Software Engineering problems. As such, theory statements concern the characterisation of individual problems and how problems relate and transform to other problems as part of problem solving processes, accounting for the way Software Engineering transforms the physical world to meet a recognised need, and for the problem structuring process in context. From an epistemological perspective, the theory has developed through research cycles including both theory-then-(empirical-)research and (empirical-)research-then-theory strategies spanning over a decade; both theoretical statements and related empirical evidence are included in the discussion. Analytic, explanatory and predictive properties of the theory are also discussed, alongside acknowledged limitations and current research to overcome them, and how the theory relates to other work in the literature.

Viewing alternatives

Download history


Public Attention

Altmetrics from Altmetric

Number of Citations

Citations from Dimensions

Item Actions