Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Empirical software engineering models: Can they become the equivalent of physical laws in traditional engineering?

: Rombach, H. Dieter


Münch, Jürgen (Ed.); Schmid, Klaus (Ed.):
Perspectives on the Future of Software Engineering : Essays in Honor of Dieter Rombach
Berlin: Springer, 2013 (The Fraunhofer IESE Series on Software and Systems Engineering)
ISBN: 978-3-642-37394-7 (Print)
ISBN: 978-3-642-37395-4 (Online)
ISBN: 3-642-37394-1
DOI: 10.1007/978-3-642-37395-4
Aufsatz in Buch
Fraunhofer IESE ()
empirical software engineering

Traditional engineering disciplines such as mechanical and electrical engineering are guided by physical laws. They provide the constraints for acceptable engineering solutions by enforcing regularity and thereby limiting complexity.
Violations of physical laws can be experienced instantly in the lab. Software engineering is not constrained by physical laws. Consequently, we often create software artifacts that are too complex to be understood, tested, or maintained. As overly complex software solutions may even work initially, we are tempted to believe that no laws apply.
We only learn about the violation of some form of "cognitive laws" late during development or during maintenance, when overly high complexity inflicts follow-up defects or increases maintenance costs.
Innovative life cycle process models (e.g., the Spiral model) provide the basis for incremental risk evaluation and adjustment of such predictions. The proposal in this paper is to work towards a scientific basis for software engineering by capturing more such time-lagging dependencies among software artifacts in the form of empirical models and thereby making developers aware of so-called "cognitive laws" that must be adhered to. This paper attempts to answer the questions of why we need software engineering laws and what they might look like, how we have to organize our discipline in order to establish software engineering laws, which such laws already exist and how we could develop further laws, how such laws could contribute to the maturing of the science and engineering of software in the future, and what challenges remain for teaching, research, and practice in the future.