System components of a general theory of software engineering
2015 (English)In: Science of Computer Programming, ISSN 0167-6423, Vol. 101, 42-65 p.Article in journal (Refereed) Published
The contribution of this paper to a general theory of software engineering is twofold: it presents the model system concept, and it integrates the software engineering design process into a decision making theory and a value-based decision-under-risk process. The model system concept is defined as a collection of interconnected and consistent components that work together for defining, developing, and delivering a software system. This model system concept is used to represent the multiple facets of a software engineering project such as stakeholders and models related to domain/environment, success, decision, product, process, and property. The model system concept is derived from software development practices in the industry and academia. The theoretical decision framework acts as a central governance component for a given software engineering project. Applying this decision framework allows for effectively managing risks and uncertainties related to success in the project building stage. Especially, this puts the design process in an economic perspective, where concepts such as value-of-waiting, value-of-information and possible outcomes can be coped with explicitly. In practice, the decision framework allows for the optimal control of modern adaptive software development. In particular, one can use dynamic programming to find the optimal sequence of decisions to be made considering a defined time horizon. In this way we can relate our contribution to a theory of software engineering to the well-studied areas of automatic control, optimization, decision theory and Bayesian analysis.
Place, publisher, year, edition, pages
2015. Vol. 101, 42-65 p.
IdentifiersURN: urn:nbn:se:uu:diva-237064DOI: 10.1016/j.scico.2014.11.008ISI: 000350513600004OAI: oai:DiVA.org:uu-237064DiVA: diva2:766271