Software development has a great deal in common with the discipline of engineering, from which the term software engineering arose, and is said to be:
- The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
- The study of approaches as in (1).
(IEEE, 1990)
Carrying out a systematic, disciplined and quantifiable approach implies management, and assumes that project management is a necessary activity within the discipline of software development.
As discussed in Section 1, words such as reliable, flexible and maintainable (among others) describe characteristics of software systems. They are all aspects of software quality. To obtain a high-quality software product requires a well-managed development process.
But the term engineering for software development is also associated with a few other factors:
You might like to look at some dictionary definitions of the term engineering and see how the above observations fit them.
While there is considerable argument about the term software engineering, there is no doubt that software development does require certain skills and knowledge of certain ideas and principles. This section looks at what is needed to ‘engineer software’. What should a developer do in order to produce a software system that meets the needs of its users?
In Section 1, you saw that there are three characteristics of software that affect its development and use – malleability, complexity and size – and that these all contribute to the likelihood of errors. Issues arising from size and complexity are addressed through modularisation. In order to ensure that the introduction of errors is minimised whenever a change occurs, you need to pay special attention to the development process.
Software development is a human activity. Software systems are developed by one group of people for another group of people to use. The success or failure of a project is determined by social as well as technical factors.
Users want a system that does what they need and that they can use. One that is technically superior but does not meet these criteria will fail. Users will resent, ignore or, in the worst case, completely reject it.
Allow approximately 15 minutes.
Give the characteristics of an engineering approach that support the argument that software development is an engineering discipline.
Software development follows an engineering approach provided that the following conditions are met:
OpenLearn - Approaches to software development Except for third party materials and otherwise, this content is made available under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Licence, full copyright detail can be found in the acknowledgements section. Please see full copyright statement for details.