Abstract
Chapter 19 discusses software engineering and the mathematics to support software engineering. We discuss traditional software engineering including the activities in the waterfall lifecycle model. We discuss early mathematical work in software engineering including Floyd’s work on assertions which influenced C. A. R. Hoare.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
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.
- 2.
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.
- 3.
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.
- 4.
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.
- 5.
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.
- 6.
Parnas has made important contributions to software engineering including information hiding which is used in the object-oriented world.
- 7.
The concept of accountability is not new; indeed the ancient Babylonians employed a code of laws c. 1750 B.C. known as the Hammurabi Code. This code included the law that if a house collapsed and killed the owner then the builder of the house would be executed.
- 8.
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.
- 9.
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.
References
Baber RL (2011) The language of mathematics. Utilizing math in practice. Wiley
Beck K (2000) Extreme programming explained. Embrace change. Addison Wesley
Boehm B (1988) A spiral model for software development and enhancement. Computer
Brooks F (1975) The mythical man month. Addison Wesley
Brooks F (1986) No silver bullet. Essence and accidents of software engineering. In: Information Processing. Elsevier, Amsterdam
Chrissis MB, Conrad M, Shrum S (2011) CMMI. Guidelines for process integration and product improvement, 3rd edn, SEI series in software engineering. Addison Wesley
Crosby P (1979) Quality is free. The art of making quality certain. McGraw Hill
Edwards Deming W (1986) Out of crisis. M.I.T. Press
Fagan M (1976) Design and code inspections to reduce errors in software development. IBM Syst J 15(3)
Floyd R (1967) Assigning meanings to programs. In: Proceedings of symposia in applied mathematics, no. 19, pp. 19–32
Hoare CAR (1969) An axiomatic basis for computer programming. Commun ACM 12(10):576–585
Humphry W (1989) Managing the software process. Addison Wesley
Juran J (2000) Juran’s quality handbook, 5th edn. McGraw Hill
O’Regan G (2006) Mathematical approaches to software quality. Springer
O’Regan G (2010) Introduction to software process improvement. Springer
O’Regan G (2014) Introduction to software quality. Springer
O’Regan G (2017) Concise guide to software engineering. Springer
O’Regan G (2019) Concise guide to software testing. Springer
Royce W (1970) The software lifecycle model (waterfall model). In: Proceeding of WESTCON, August, 1970
Standish Group Research Note (1999) Estimating: art or science. Featuring Moritz cost expert
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
O’Regan, G. (2020). Software Engineering Mathematics. In: Mathematics in Computing. Undergraduate Topics in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-030-34209-8_19
Download citation
DOI: https://doi.org/10.1007/978-3-030-34209-8_19
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-34208-1
Online ISBN: 978-3-030-34209-8
eBook Packages: Computer ScienceComputer Science (R0)