Swipe to navigate through the chapters of this book
This chapter provides an introduction to the important field of software engineering. The birth of the discipline was at the Garmisch conference in Germany in the late 1960s. Mathematics plays a key role in engineering, and it may potentially assist software engineers in delivering high-quality software products that are safe to use. However, it is important to recognize that while the use of mathematics is suitable for some areas of software engineering (especially in the safety and security critical fields), less rigorous techniques (such as software inspections and testing) are sufficient in most other areas of software engineering. The extent to which mathematics should be employed remains a topic of active debate.
Please log in to get access to this content
To get access to this content you need the following product:
Modern HR recruitment specifies the requirements for a particular role, and the interviews establish whether the candidate is suitably qualified, and has the appropriate experience for the role. Parnas is arguing against the content of courses that emphasize the latest technologies rather than the fundamentals of engineering.
It should be noted that these are IT projects covering diverse sectors including banking, telecommunications, etc., rather than pure software companies. Mature software companies using the CMM tend to be more consistent in project delivery with high quality.
Therac-25 was a radiotherapy machine produced by the Atomic Energy of Canada Limited (AECL). It was involved in at least six accidents between 1985 and 1987 in which patients were given massive overdoses of radiation. The dose given was over 100 times the intended dose and three of the patients died from radiation poisoning. These accidents highlighted the dangers of software control of safety-critical systems. The investigation subsequently highlighted the poor software design of the system and the poor software development practices employed.
The process maturity models focus mainly on the management, engineering and organizational practices required in software engineering. The models focus on what needs to be done rather how it should be done.
There is no consensus at this time as to the appropriate role of mathematics in software engineering. The use of mathematics is invaluable in the safety critical and security critical fields as it provides an extra level of confidence in the correctness of the software.
Parnas has made important contributions to software engineering including information hiding which is used in the object-oriented world.
The concept of accountability is not new; indeed the ancient Babylonians employed a code of laws c. 1750 B.C. known as the Hammarabi Code. This code included the law that if a house collapsed and killed the owner then the builder of the house would be executed.
However, it is unlikely that an individual programmer would be subject to litigation in the case of a flaw in a program causing damage or loss of life. A comprehensive disclaimer of responsibility for problems rather than a guarantee of quality accompany most software products. Software engineering is a team-based activity involving several engineers in various parts of the project, and it could be potentially difficult for an outside party to prove that the cause of a particular problem is due to the professional negligence of a particular software engineer, as there are many others involved in the process such as reviewers of documentation and code and the various test groups. Companies are more likely to be subject to litigation, as a company is legally responsible for the actions of their employees in the workplace, and the fact that a company is a financially richer entity than one of its employees.
Software companies that are following the CMMI or ISO 9000 will employ audits to verify that the rules and best practice have been followed. Auditors report their findings to management and the findings are addressed appropriately by the project team and affected individuals.
Estimating: Art or Science. Featuring Morotz Cost Expert. Standish Group Research Note. 1999.
The Mythical Man Month. Fred Brooks. Addison Wesley. 1975.
No Silver Bullet. Essence and Accidents of Software Engineering. Fred Brooks. Information Processing. Elsevier. Amsterdam, 1986.
Mathematical Approaches to Software Quality. Gerard O’ Regan. Springer. 2006.
Introduction to Software Process Improvement. Gerard O’ Regan. Springer. 2010.
Introduction to Software Quality. Gerard O’ Regan. Springer Verlag. 2014.
The Language of Mathematics. Utilizing Math in Practice. Robert L. Baber. Wiley. 2011.
The Software Lifecycle Model (Waterfall Model). W. Royce. In Proc. WESTCON, August, 1970.
A Spiral Model for software development and enhancement. Barry Boehm. Computer. May 1988.
Extreme Programming Explained. Embrace Change. Kent Beck. Addison Wesley. 2000.
Assigning Meanings to Programs. Robert Floyd. Proceedings of Symposia in Applied Mathematics, (19):19–32. 1967.
An Axiomatic Basis for Computer Programming. C.A.R. Hoare. Communications of the ACM. 12(10):576–585. 1969.
Design and Code Inspections to Reduce Errors in Software Development. Michael Fagan. IBM Systems Journal 15(3). 1976.
Out of Crisis. W. Edwards Deming. M.I.T. Press. 1986.
Juran’s Quality Handbook. 5th edition. Joseph Juran. McGraw Hill. 2000.
Quality is Free. The Art of Making Quality Certain. Philip Crosby. McGraw Hill. 1979.
Managing the Software Process. Watts Humphry. Addison Wesley. 1989.
CMMI. Guidelines for Process Integration and Product Improvement. Third Edition. Mary Beth Chrissis, Mike Conrad and Sandy Shrum. SEI Series in Software Engineering. Addison Wesley. 2011.
- Software Engineering Mathematics
- Springer International Publishing
- Sequence number
- Chapter number
- Chapter 17