Abstract :
Traditional engineering disciplines are guided by physical laws. They provide the constraints for acceptable engineering solutions by enforcing regularity and thereby limiting complexity. Violation of physical laws can be experienced instantly in the lab. Software engineering is not constrained by physical laws. Consequently, we create software artifacts which are too complex to be understood, tested or maintained. As too complex software solutions may work initially, we believe that no laws exist. We only learn about the violation of some form of “cognitive laws” late during development or maintenance, when too high complexity inflicts follow-up defects or increases maintenance costs. The proposal in this presentation is to capture such long-term dependencies as empirical process-product models and thereby make the developers aware of so-called “cognitive laws” that must be adhered to. This presentation motivates the need for cognitive laws as equivalents to physical laws in traditional engineering, introduces existing examples, and suggests a community effort to advance the states of research and practice. Proceedings