Design using software engineering principles: overview of an educational program

In 1981 IBM initiated a corporate-wide training program to introduce a standard, software engineering-based, programming technology, based on a similar program established in the Federal Systems Division during the late seventies. The Software Engineering Workshop has a strong mathematical orientation. The central focus is on mathematical models for program functions and data abstractions. The models allow mathematical statements of specifications, stepwise refinement, and function-based mental verification of each refinement step. The technology and a textual design language encourage orderly problem decomposition, encapsulation, and separation of concerns. This paper introduces the material taught in the workshop and summarizes the workshop's history and results. Use of the technology is producing higher quality programs and providing greater professional satisfaction among its users.