Java Reference
In-Depth Information
for new functionality, and to changes in hardware and operating systems; and
these changes have to be tested, debugged, and finally sent to customers.
Compounding the problem of dealing with large programming systems was
the fact that there was no systematic methodology for specifying and writing
even small programs. If people could not write small programs effectively and
correctly, how could they be expected to write large ones effectively and cor-
In 1968, a conference was held in Garmisch, Germany, sponsored by NATO
and chaired by F.L. Bauer of Munich. It was attended by the best computin peo-
ple from academia and industry. For the first time programmers, researchers, and
managers publically admitted that they did not know what they were doing when
it came to designing and implementing programs. The term software engineering
was mentioned, practically for the first time, and, in fact, the conference became
known as the NATO Conference on Software Engineering . (Since then, software
engineering has come to mean: the study and use of systematic and effective
processes and technologies for supporting software design, development, and
maintenance activities.)
There were glimmerings of hope; some people talked about preliminary
research on correctness of programs, programming methodology, and software
engineering issues. But the important point was the realization, by everyone, that
programming and software engineering were not easy activities and that research
needed to be done to understand how to do them better. This conference was the
impetus for the great push forward in the 1970s on understanding these issues.
Structured programming
The early 1970s saw the emergence of work on stepwise refinement , or top-
down programming , by Nicklaus Wirth and others (see Sec.2.5). This basic idea
is that one should start with a specification of a program, written in English,
mathematics, or a mixture of the two, and transform it through a series of small
steps into a program. The idea has been put forth in other fields as well, as Sec.
2.5 shows.
A second, major, step forward was the work on structured programming , by
Edsger W. Dijkstra. The term concerned reliance on program structures like the
assignment statement, the conditional statement, the loop, and the subroutine
(now called function, procedure, or method) call in designing programs, eschew-
ing something called the goto statement , which was a mainstay of programming
at the time. In fact, in 1968, Dijkstra's short article on the harmfulness of the goto
statement in the Communications of the ACM caused an uproar in computer sci-
ence circles, with several people rushing to defend the goto statement. But
Dijkstra was right, and today, the goto statement does not even exist in the pro-
gramming language Java.
Dijkstra's use of the phrase structured programming was meant to encom-
pass not only the restriction to the kinds of statements discussed above but also
a way of thinking about programming, of developing programs. The program-
Search WWH ::

Custom Search