Swipe to navigate through the chapters of this book
The NATO Science Committee organised two famous conferences on software engineering in the late 1960s. The first conference was held in Garmisch, Germany, in 1968, and this was followed by a second conference in Rome in 1969. The Garmisch conference was attended by over 50 people from 11 countries.
Please log in to get access to this content
To get access to this content you need the following product:
Software companies that are following approaches such as the CMM or ISO 9000:2000 consider the qualification of staff before assigning staff to performing specific tasks. The qualifications and experience required for the role are considered prior to appointing a person to carry out a particular role. Mature companies place significant emphasis on the education and continuous development of their staff and in introducing best practice in software engineering into their organisation. There is a growing trend among companies to mature their software processes to enable them to deliver superior results. One of the purposes that the original CMM served was to enable the US Department of Defense (DOD) to have a mechanism to assess the capability and maturity of software subcontractors.
Modern HR recruitment specifies the requirements for a particular role, and interviews with candidates aim to establish that the candidate has the right education and experience for the role.
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.
Approaches such as the CMM or SPICE (ISO 15504) focus mainly on the management and organisational practices required in software engineering. The emphasis is on defining and following the software process. In practice, there is often insufficient technical detail on requirements, design, coding and testing in the models, as 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. My view is that the use of mathematics should be mandatory in the safety-critical and security-critical fields as it provides an extra level of quality assurance in these critical fields.
Parnas’s key contribution to software engineering is information hiding which is used in the object-oriented world. He has also done work (mainly of academic interest) on mathematical approaches to software quality.
The concept of accountability is not new; indeed, the ancient Babylonians employed a code of laws ca. 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.
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. Most software products are accompanied by a comprehensive disclaimer of responsibility for problems rather than a guarantee of quality. 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. However, the legal aspects of licensing software may protect software companies from litigation including those companies that seem to place little emphasis on software quality. However, greater legal protection for the customer can be built into the contract between the supplier and the customer for bespoke software development.
Software companies that are following the CMMI or ISO 9000 will employ audits to verify that the rules have been followed. Auditors report their findings to management, and the findings are addressed appropriately by the project team and affected individuals.
It is questionable whether stepwise refinement is cost effective in mainstream software engineering, as it involves rewriting a specification ad nauseam . It is time-consuming to proceed in refinement steps with significant time also required to prove that the refinement step is valid. It is more relevant to the safety-critical field. Others in the formal methods field may disagree with this position.
However, the resulting software was never actually deployed on the A-7 aircraft.
This was an impressive use of mathematical techniques, and it has been acknowledged that formal methods must play an important role in future developments at Darlington. However, given the time and cost involved in the software inspection of the shutdown software, some managers have less enthusiasm in shifting from hardware to software controllers [ Ger:94].
The IFAD Toolbox has been renamed to VDM Tools as IFAD sold the VDM Tools to CSK in Japan. The tools are expected to be available worldwide and will be improved further.
Most existing theorem provers are difficult to use and are for specialist use only. There is a need to improve the usability of theorem provers.
This verification was controversial with RSRE and Charter overselling VIPER as a chip design that conforms to its formal specification.
This position is controversial with others arguing that if correctness is defined mathematically, then the mathematical definition (i.e. formal specification) is a theorem, and the task is to prove that the program satisfies the theorem. They argue that the proofs for non-trivial programs exist, and that the reason why there are not many examples of such proofs is due to a lack of mathematical specifications.
Baber, R.L.: The Language of Mathematics. Utilizing Math in Practice. Wiley, Hoboken (2011) MATH
Extreme Programming Explained. Kent Beck. Addison-Wesley (2000)
Boehm, B.: A spiral model for software development and enhancement. Computer 21, 61–72 (1988) CrossRef
Program Verification. R.S. Boyer and J.S. Moore. Journal of Automated Reasoning 1, (1985)
Brooks, F.: The Mythical Man Month. Addison Wesley, Reading (1975)
Brooks, F.: No silver bullet. Essence and accidents of software engineering. In: Information Processing. Elsevier, Amsterdam (1986)
Rational for the development of the U.K. Defence Standards for Safety Critical Software. Compass Conference (1990)
Chrissis, M.B., konrad, M., Shrum, S.: CMMI. Guidelines for Process Integration and Product Improvement. SEI Series in Software Engineering, 3rd edn. Addison Wesley, Reading (2011)
Crosby, P.: Quality Is Free. The Art of Making Quality Certain. McGraw Hill, New York (1979)
Deming, W.E.: Out of Crisis. MIT Press, Cambridge (1986)
Fagan, M.: Design and code inspections to reduce errors in software development. IBM Syst. J. 15(3) (1976)
Fenton, N.: Software Metrics: A Rigorous Approach. Thompson Computer Press, London (1995)
Floyd, R.: Assigning meanings to programs. Proc. Symp. Appl. Math. 19, 19–32 (1967) MathSciNet
Experience with formal methods in critical systems. Susan Gerhart, Dan Creighton and Ted Ralston. IEEE Software (Jan 1994)
Gilb, T., Graham, D.: Software Inspections. Addison Wesley, Reading (1994)
Gilb, T.: Software Metrics. Winthrop Publishers, Inc., Cambridge (1976)
Hinchey, M., Bowen, J. (eds.): Applications of Formal Methods. Prentice Hall International Series in Computer Science. Prentice Hall, New York (1995) MATH
Humphry, W.: Managing the Software Process. Addison Wesley, Reading (1989)
The Unified Modelling Language. Reference Manual. (2nd. Edition). Grady Booch, James Rumbaugh and Ivar Jacobson. Addison-Wesley (2004)
Juran, J.: Juran’s Quality Handbook, 5th edn. McGraw Hill, New York (2000)
Kuhn, T.: The Structure of Scientific Revolutions. University of Chicago Press, Chicago (1970)
Mendelson, E.: Introduction to Mathematical Logic. Wadsworth and Cole/Brook, Advanced Books & Software, Monterey (1987) MATH
O’Regan, G.: A Practical Approach to Software Quality. Springer, New York (2002) MATH
O’Regan, G.: Mathematical Approaches to Software Quality. Springer, London (2006) MATH
O’Regan, G.: Introduction to Software Process Improvement. Springer, New York (2010)
Managing the development of large software systems. Winton Royce. Proceedings of IEEE WESTCON(26) (1970)
Spivey, J.M.: The Z Notation. A Reference Manual. Prentice Hall International Series in Computer Science. Prentice Hall, Englewood Cliffs (1992)
Standish Group Research Note.: Estimating: art or science. Featuring Morotz Cost Expert (1999)
The Evolution of Def. Standard 00-55 and 00-56. An Intensification of the Formal Methods Debate in the U.K. Margaret Tierney. Research Centre for Social Sciences, University of Edinburgh (1991)
- History of Software Engineering
- Springer London
- Sequence number
- Chapter number
- Chapter 10