Skip to Main Content
Software engineering is both difficult and expensive. This is as true today as it was 40 years ago. The end products of software engineering, software artifacts consisting of streams of instructions, are intended to solve some problem, live up to some requirements, implement some design. To improve software engineering, we must continue to improve the process that eventually outputs these instructions. We want the instructions correctly to address the problem, and we want the ability flexibly and precisely to change the instructions when the problem, requirements, and design change.