Page 22 -
P. 22
1.1 Professional software development 5
History of software engineering
The notion of ‘software engineering’ was first proposed in 1968 at a conference held to discuss what was then
called the ‘software crisis’ (Naur and Randell, 1969). It became clear that individual approaches to program
development did not scale up to large and complex software systems. These were unreliable, cost more than
expected, and were delivered late.
Throughout the 1970s and 1980s, a variety of new software engineering techniques and methods were
developed, such as structured programming, information hiding and object-oriented development. Tools and
standard notations were developed and are now extensively used.
http://www.SoftwareEngineering-9.com/Web/History/
1.1 Professional software development
Lots of people write programs. People in business write spreadsheet programs to
simplify their jobs, scientists and engineers write programs to process their experi-
mental data, and hobbyists write programs for their own interest and enjoyment.
However, the vast majority of software development is a professional activity where
software is developed for specific business purposes, for inclusion in other devices,
or as software products such as information systems, CAD systems, etc. Professional
software, intended for use by someone apart from its developer, is usually developed
by teams rather than individuals. It is maintained and changed throughout its life.
Software engineering is intended to support professional software development,
rather than individual programming. It includes techniques that support program
specification, design, and evolution, none of which are normally relevant for per-
sonal software development. To help you to get a broad view of what software engi-
neering is about, I have summarized some frequently asked questions in Figure 1.1.
Many people think that software is simply another word for computer programs.
However, when we are talking about software engineering, software is not just the
programs themselves but also all associated documentation and configuration data
that is required to make these programs operate correctly. A professionally devel-
oped software system is often more than a single program. The system usually con-
sists of a number of separate programs and configuration files that are used to set up
these programs. It may include system documentation, which describes the structure
of the system; user documentation, which explains how to use the system, and web-
sites for users to download recent product information.
This is one of the important differences between professional and amateur soft-
ware development. If you are writing a program for yourself, no one else will use it
and you don’t have to worry about writing program guides, documenting the pro-
gram design, etc. However, if you are writing software that other people will use and
other engineers will change then you usually have to provide additional information
as well as the code of the program.