Abstract
The NATO Science Committee organized 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. Over 50 people from 11 countries attended the Garmisch conference, and the attendees included the eminent Dutch computer scientist, Edsger Djkstra, who did important theoretical work on formal specification and verification.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
It should be noted that these are IT projects covering diverse sectors including banking, telecommunications rather than pure software companies. My experience is that software companies following maturity frameworks such as the CMMI achieve more consistent project results. Mathematical approaches to software quality are focused on technical mathematical ways to achieve software quality. There is also the need to focus on the management side of software engineering, as this is essential for project success.
- 2.
I recall projects at Motorola that regularly achieved 5.6σ quality in a L4 CMM environment (i.e. approx 20 defects per million lines of code. This represents very high quality).
- 3.
Approaches such as the CMM or SPICE (ISO 15504) focus mainly on the management and organizational practices required in software engineering. The emphasis is on defining software processes that are fit for purpose and consistently following them. The process maturity models focus on what needs to be done rather than on how it should be done. This gives the organization the freedom to choose the appropriate implementation to meet its needs. The models provide useful information on practices to consider in the implementation.
- 4.
Parnas has made important contributions to computer science. He advocates a solid engineering approach with the extensive use of classical mathematical techniques to software development. He also introduced information hiding in the 1970s which is now a part of object-oriented development.
- 5.
Software companies that are following approaches such as the CMM or ISO 9001 consider the education and qualification of staff prior to assigning staff to performing specific tasks. The appropriate qualifications and experience for the specific role are considered prior to appointing a person to carry out the role. Most mature companies place significant emphasis on the education and continuous development of their staff and on introducing best practice in software engineering into their organization.
- 6.
The concept of accountability is not new; indeed the ancient Babylonians employed a code of laws ca. 1750 BC 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.
- 7.
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 accompanies most software products. Software engineering is a team-based activity involving many engineers in various parts of the project, and it would 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 a company is also a more wealthy entity than one of its employees. The legal aspects of licensing software may protect software companies from litigation including those companies that are not focused 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.
- 8.
Most mature software companies have a defined code of ethics that employees are expected to adhere. Larger companies will wish to project a good corporate image and to be respected worldwide.
- 9.
The British Computer Scientist (BCS) has introduced a qualification system for computer science professionals that it used to show that professionals are properly qualified. The most important of these is the BCS Information Systems Examination Board (ISEB) which allows IT professionals to be qualified in service management, project management, software testing, and so on.
- 10.
Software companies that are following the CMMI or ISO 9000 standards will employ audits to verify that the processes and procedures have been followed. Auditors report their findings to management and the findings are addressed appropriately by the project team and affected individuals.
- 11.
Essentially, the mathematical language allows the proof of properties of the specification which is useful.
- 12.
This is essential for serious defects that have caused significant inconvenience to customers. The software development organization will wish to learn lessons to determine what went wrong in its processes that prevented the defect from been identified during peer reviews and testing. Actions to prevent a re-occurrence will be identified and implemented.
- 13.
These are the risk management activities in the Prince2 methodology.
References
Boehm, B.: A spiral model for software development and enhancement. Computer. May 1988
Fagan, M.: Design and code inspections to reduce errors in software development. IBM Syst. J. 15(3), 182–211 (1976)
Gilb, T., Graham, D.: Software Inspections. Addison Wesley (1994)
Rumbaugh, J., et al.: The Unified Software Development Process. Addison Wesley (1999)
Lions, J.L.: Ariane 5. Flight 501. Failure Report by Enquiry Board, Paris (1996)
Office of Government Commerce: Managing Successful Projects with PRINCE2 (2004)
O’ Regan, G.: A Practical Approach to Software Quality. Springer, New York (2002)
O’ Regan, G.: Mathematical Approaches to Software Quality. Springer, London (2006)
Parnas, D.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)
Royce, W.: The software lifecycle model (waterfall model). In: Proceedings WESTCON, Los Angeles, Aug 1970
Rumbaugh, J., et al.: The Unified Modelling Language. User Guide. Addison Wesley (1999)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2011 Springer-Verlag London Limited
About this chapter
Cite this chapter
O’Regan, G. (2011). Software Engineering. In: Introduction to Software Process Improvement. Undergraduate Topics in Computer Science. Springer, London. https://doi.org/10.1007/978-0-85729-172-1_2
Download citation
DOI: https://doi.org/10.1007/978-0-85729-172-1_2
Published:
Publisher Name: Springer, London
Print ISBN: 978-0-85729-171-4
Online ISBN: 978-0-85729-172-1
eBook Packages: Computer ScienceComputer Science (R0)