XWe have detected your location as outside the U.S/Canada, if you think this is wrong, you can choose your location.

Macmillan Higher Education Celebrating 20 years of Macmillan Study Skills


Continue Shopping
All prices are shown excluding Tax
The submitted promocode is invalid
* Applied promocode: ×

Important information on your ebook order

MIHE Blog News, views and insights from Macmillan International Higher Education


The Emergence Of Software Engineering

by Gerard O'Regan 12th March 2019

From the 1960s IBM computers to modern-day hand-held devices, software engineering has come along way as Gerard O'Regan explains

Computing technology used today includes personal computers, laptops, mobile phones, tablets and the Internet/world wide web. The computer sector in the 1960s was totally different, and was dominated by several large mainframe computer manufacturers. These include IBM, Burroughs, UNIVAC, NCR, CDC, Honeywell, General Electric and RCA, and these are often referred to as Snow White (IBM) and the Seven Dwarfs (the others). Computers were large, expensive and difficult to use for a non-specialist.

The 1968 NATO conference on software engineering took place over fifty years ago in Garmisch, Germany in 1968, and a follow up conference was held in Rome in 1969. The conference discussed the serious problems with the development of software on time and on budget and with the right quality, and the term “software crisis” was coined to refer to these. The participants recognised that the existing approaches to software development were not fit for purpose, and that there was a need to apply engineering principles to software development. This led to the birth of software engineering as a discipline in its own right, and to the subsequent development of a plethora of techniques to elicit requirements, design, develop and test software to meet customer needs.
'IBM System 360/30 at the Computer History Museum' by Arnhold Reinhold. Available on Wikimedia Commons via CC BY-SA 3.0
The software used on the mainframes of the 1960s was proprietary and the hardware of manufacturers was generally incompatible with one another. It was usually necessary to rewrite all existing software application programs for a new computer if a business decided to change to a new manufacturer or upgrade to a more powerful machine from its existing manufacturer. Software projects tended to be written once off for specific customers, and large projects were often characterised by under estimation and over expectations. The IBM System 360 project in the 1960s involved over 5000 person years, and Fred Brooks, the project manager for the System 360 project later recorded his experience of delivering a major project in which software is a key constituent in a famous project management book called "The Mythical Man Month".

There was no independent software sector in the 1960s with software and training included as part of the computer hardware delivered to the customers. IBM's dominant position in the market led to antitrust inquiries by the US Justice Department, and this led IBM to "unbundle" its software and services from its hardware sales. It then began charging separately for software, training and hardware, and this led to the creation of a multi-billion-dollar software industry, and to a major growth of software suppliers.

Software engineering involves the multi-person construction of multi-version programs. The IEEE 610.12 definition of Software Engineering is: Software engineering is not just programming. It requires the engineer to state precisely the requirements that the software product is to satisfy, and then to produce designs that will meet these requirements. The project needs to be planned and delivered on time and budget.

Software engineering has come a long way since its birth in the late 1960s, and it has evolved into a series of sub-disciplines such as requirements engineering, software design, and software development, software testing. Concise Guide to Software Engineering helps students navigate this history. Its objectives are to provide a concise guide to the software engineering field, and to give the reader a grasp of the fundamentals of software engineering.
Featured image: 'Voorbereidingen tiende Olympische Winterspelen'. Available on Wikimedia Commons via CC0 1.0