Information Technology Reference
In-Depth Information
4
Programming languages and
software engineering
The major cause of the software crisis is that the
machines have become several orders of magnitude
more powerful! To put it quite bluntly: as long as
there were no machines, programming was no
problem at all; when we had a few weak computers,
programming became a mild problem, and now we
have gigantic computers, programming has become
an equally gigantic problem.
Edsger Dijkstra 1
The software crisis
The term software engineering originated in the early 1960s, and the North
Atlantic Treaty Organization sponsored the first conference on the “software
crisis” in 1968 in Garmisch-Partenkirchen, West Germany. It was at this confer-
ence that the term software engineering first appeared. The conference reflected
on the sad fact that many large software projects ran over budget or came in
late, if at all. Tony Hoare, a recipient of the Turing Award for his contributions
to computing, ruefully remembers his experience of a failed software project:
There was no escape: The entire Elliott 503 Mark II software project had to
be abandoned, and with it, over thirty man-years of programming effort,
equivalent to nearly one man's active working life, and I was responsible,
both as designer and as manager, for wasting it. 2
In his classic topic The Mythical Man-Month , Fred Brooks ( B.4.1 ) of IBM draws on
his experience developing the operating system for IBM's massive System/360
project. Brooks makes some sobering reflections on software engineering, say-
ing, “It is a very humbling experience to make a multimillion-dollar mistake,
but it is also very memorable.” 3
In this chapter we will explore two aspects of the way the software indus-
try has addressed this crisis: the evolution of programming languages ( Fig. 4.1 )
and the emergence of software engineering methodologies. We will see how
two major ideas provide the basis for modern software development: (1) struc-
tured programming , in which the statements are organized in a specific way to
minimize error; and (2) object-oriented software , which is organized around the
B.4.1. Fred Brooks made a major
contribution to the design of
IBM/360 computers. His famous
topic The Mythical Man-Month
describes his experiences in software
development.
58
 
Search WWH ::




Custom Search