Vviewpoints
DOI: 10.1145/1467247.1467257
the profession of it
is Software engineering
engineering?
Software engineering continues to be dogged by claims it is not engineering.
Adopting more of a computer-systems view may help.

It iS a trospection for the computing field. We recognize the need to transcend the time-honored, but narrow image of, “We are

time of considerable in-

 

programmers.” That image conveys no hint of our larger responsibilities as software professionals and limits us in our pursuit of an engineering model for software practice.

The search for an alternative to the programmer image is already a generation old. In 1989 we asked: Are we mathematicians? Scientists? Engineers? 3 We concluded that we are all three. We adopted the term “ computing,” an analogue to the European “ in-formatics,” to avoid bias toward any one label or description.

Today, we want all three faces to be credible in an expanding world. The cases for computing as mathematics and as science appear to be widely accepted outside the field. 1 However, the case for computing as engineering is still disputed by traditional engineers. Computer engineering (the architecture and design of computing machines) is accepted, but software

engineering remains controversial.

In this column, we examine reasons for the persistent questions about software engineering and suggest directions to overcome them.

 

engineering Process The dictionary defines engineering as the application of scientific and mathematical principles to achieve the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems.

software engineering
may suffer from
our habit of paying
too little attention to
how other engineers
do engineering.

When applied to software engineering, this definition calls attention to the importance of science and math principles of computing. Software engineering has also contributed principles for managing complexity in software systems.

Some definitions insist that engineering mobilizes properties of matter and sources of energy in nature. Although software engineering does not directly involve forces of nature, this difference is less important in modern engineering.

The main point of contention is whether the engineering practices for software are able to deliver reliable, dependable, and affordable software. With this in mind, the founders of the software engineering field, at the legendary 1968 NATO conference, proposed that rigorous engineering process in the design and implementation of software would help to overcome the “software crisis.”

In its most general form, the “ engineering process” consists of a repeated cycle through requirements, specifications, prototypes, and test-

References:

Archives