Abstract
The first chapter introduces the notion of rigourous software development in the context of the classic software development methods used in software engineering. The rigorous aspect in particular, which is properly contextualised and justified in this chapter, is here introduced as the result of following a formal approach, by which we mean the use of tools and methods of a mathematical nature.
In order to allow the reader to understand their value, these methods are compared, throughout the chapter, with more traditional methods such as testing and simulation, and placed in the normative context in use in the different application areas of software engineering.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
This quality measure is known astest coverage.
- 3.
A test suite has a good coverage, say 100% coverage, if all parts of the system are covered by its tests.
- 4.
Incidentally, Java is also safer than C regardingtypes, since it is a strongly-typed programming language.
- 5.
The standard IEC 61508 “Functional safety of electrical/electronic/programmable electronic safety-related systems” also uses a (slightly different) SIL classification.
- 6.
The definition of the GSW standard was in fact based on DO-178B.
- 7.
Such a combination of requirements is called aprotection profile.
- 8.
In a very simplistic way, the preparatory reports consist of lists of facts to be verified, and the reports of the validation phase are simply observations, based on the validation process, of whether or not those facts were successfully validated.
- 9.
Of course, other post-implementation phases such as testing, training, and maintenance may well be present in this process.
References
Backhouse, R.: Program Construction—Calculating Implementations from Specifications. Wiley, New York (2003)
Balzer, R., Cheatham, T.E., Green, C.: Software technology in the 1990’s: Using a new paradigm. IEEE Comput.16(11), 39–45 (1983)
Common Criteria.http://www.commoncriteria.org
Gries, D.: The Science of Programming. Springer, Secaucus (1987)
Goguen, J.: Hidden algebra for software engineering. In: Proceedings Combinatorics, Computation and Logic, vol. 21, Auckland, New Zealand, January 1999, pp. 35–59. Springer, Berlin (1999)
Hartel, P.H., Moreau, L.: Formalizing the safety of Java, the Java virtual machine, and Java card. ACM Comput. Surv.33(4), 517–558 (2001)
Hoare, C.A.R.: The verifying compiler, a grand challenge for computing research. In: Cousot, R. (ed.) VMCAI. Lecture Notes in Computer Science, vol. 3385, pp. 78–78. Springer, Berlin (2005)
Necula, G.C.: Proof-carrying code. In: Proceedings of POPL’97, pp. 106–119. ACM Press, New York (1997)
Rushby, J.: Formal methods and their role in the certification of critical systems. Technical Report SRI-CSL-95-1, Computer Science Laboratory, SRI International, Menlo Park, CA (March 1995)
The MathWorks: The Pentium papers.http://www.mathworks.com/company/pentium
Volpano, D.M., Smith, G.: Language issues in mobile program security. In: Vigna, G. (ed.) Mobile Agents and Security. Lecture Notes in Computer Science, vol. 1419, pp. 25–43. Springer, Berlin (1998)
Wayt Gibbs, W.: Trends in computing: Software’s chronic crisis. Sci. Am. (September 1994)
Woodcock, J., Larsen, P.G., Bicarregui, J., Fitzgerald, J.: Formal methods: practice and experience. ACM Comput. Surv.41(4), 1–36 (2009)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2011 Springer-Verlag London Limited
About this chapter
Cite this chapter
Almeida, J.B., Frade, M.J., Pinto, J.S., Melo de Sousa, S. (2011). Introduction. In: Rigorous Software Development. Undergraduate Topics in Computer Science. Springer, London. https://doi.org/10.1007/978-0-85729-018-2_1
Download citation
DOI: https://doi.org/10.1007/978-0-85729-018-2_1
Publisher Name: Springer, London
Print ISBN: 978-0-85729-017-5
Online ISBN: 978-0-85729-018-2
eBook Packages: Computer ScienceComputer Science (R0)