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.
   17   18   19   20   21   22   23   24   25   26   27