The Unending Quest for Valid, Useful Software Engineering Theories

The Unending Quest for Valid, Useful Software Engineering Theories Using scientific disciplines as inspiration, some researchers have called for the creation of general theories for software engineering. I present a contrary view, drawing on recent work in the philosophy ofengineering. Engineering theories are different to scientific theories, and are not judged by the same criteria. Software engineering researchers should strive to create valid theories about the uses ofsoftware-based systems, even if that leads to a multitude of theories that have narrow, overlapping scopes, are approximate, and have little explanatory power. The engineering imperative is that the predictions of software engineering theories should be consistent with actual behaviour of software-based systems, and that theories and should support assurances and explicit justification that systems will meet their requirements. Process theories are about the organisation of work and project management, and are relevant to cost and schedule requirements in software engineering. However, to directly provide evidence that software-based systems meet their main functional and non-functional requirements, software engineering researchers should focus on product theories, about the specifications, designs, code, and behaviours of software-based systems.