Prospects for an engineering discipline of software

2005-04-01T00:00:00Z (GMT) by Mary Shaw

Software engineering is not yet a true engineering discipline, but it has the potential to become one. Older engineering fields offer glimpses of the character software engineering might have. From these hints and an assessment of the current state of software practice, we can project some characteristics software engineering will have and suggest some steps toward an engineering discipline of software.

The term software engineering was coined in 1968 as a statement of aspiration -- a sort of rallying cry. That year NATO convened a workshop by that name to assess the state and prospects of software production [NATO 69].Capturing the imagination of software developers, the phrase achieved popularity during the 1970s. It now refers to a collection of management processes, software tooling, and design activities for software development. The resulting practice, however, differs significantly from the practice of older forms of engineering.

The paper begins by examining the usual practice of engineering and the way it has evolved in older disciplines. This discussion provides a historical context for assessing the current practice of software production and setting out an agenda for attaining an engineering practice.