than most. But the enormous complex-
ity of software has forced software engi-
neering to develop in ways engineering
has not—and may never.c Many of the
very methods that make software engi-
neering useful distinguish it from engi-
neering. Engineers have good reason to
continue to treat software engineers as
belonging to another profession.d
I have, I hope, just explained why I
still think software engineering is not
engineering in a way that engineers
should recognize. I now want to point
out four reasons to think that engi-
neering might someday merge with
software engineering. All four are,
oddly, changes in engineering, not
software engineering.
˲ ˲ Electrical and computer engineering (ECE) is often thought to be the
field of engineering closest to software
engineering. Over the last decade, ECE
has become less committed to traditional engineering courses concerned
with the material world. So, for example, a number of ECE departments,
including the one at the University of
Illinois at Urbana-Champaign, have
stopped requiring statics, dynamics,
and thermodynamics. If that trend
continues, then either ECE will split
off from the main body of engineering or engineering’s core of required
engineering courses will increasingly
resemble software engineering’s.
˲ ˲ Since the 1700s, engineers have
had to know just two natural sciences:
physics and chemistry. Recently, some
programs in environmental engineering, biomedical engineering, and agricultural engineering have begun to allow students to substitute biology for
physics or chemistry. For engineers,
this makes sense, since several of the
new frontiers of engineering rely on bi-
c Michal Young and Stuart Faulk, “Sharing
What We Know About Software Engineering,”
in Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research (FoSER
‘ 10), ACM, 439–442, argue that engineering
has much to learn from software engineering—inadvertently making clear how much
engineering’s discipline differs from software engineering’s.
Whether or not
software engineers
do any engineering,
engineers
increasingly engage
in activities that
look like software
engineering.
ology rather than physics and chemistry (as until recently). But, if this trend
continues, engineering’s science core
will increasingly resemble the science
courses software engineers take to satisfy general distribution requirements.
˲ ˲ Engineers are increasingly replacing mechanical systems with software.
Not only do most engineers now use
software regularly, many write specifications for software, modify existing
programs themselves, or even write
(simple) programs. Whether or not
software engineers do any engineering,
engineers increasingly engage in activities that look like software engineering (even if these engineers do not call
themselves “software engineers” and
do not work the way that software engineers would). Whether some fields of
engineering will dissolve into software
engineering seems an open question.
˲ ˲ Computer science used to have an
accreditation body separate from en-
gineering’s. That is no longer true. All
computer science programs, includ-
ing software engineering, are now un-
der engineering’s accreditation body,
ABET. Of course, the accreditation
process and standards distinguish
between engineering programs and
computer science programs. But that
distinction does not preclude eventual
merger. ABET has always distinguished
between various fields (or subdisci-
plines) of engineering. So, for example,
it always sent mechanical engineers to
review a mechanical engineering pro-
gram; electrical engineers, to review an
electrical engineering program; and so
on. The expansion of ABET’s accredita-
tion powers makes it easier than before
for software engineering to merge into
engineering, indeed, for all of comput-
er science to do that.
conclusion
Whether knowledge of the future is
possible is a perennial question in philosophy. What is certain is that prophets are seldom right on any important
question. So, I make no claim to know
whether software engineering will ever
merge with engineering. I claim only to
know that—despite the common term
“engineering”—software engineering
is not now engineering.
References
1. abran, a. et al. Guide to the Software Engineering
Body of Knowledge—2004 Version. Ieee Computer
society (2004), 1.
2. davis, m. defining engineering: how to do it and why
it matters. Journal of Engineering Education 85, (apr.
1996), 97–101.
Michael Davis ( davis2643@gmail.com) is a senior fellow
at the Center for the study of ethics in the Professions
and a professor of philosophy at Illinois Institute of
technology, Chicago.
thanks to Keith miller and rachelle hollander for helping
me think through this column.