Skip to main content

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 29.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 39.95
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://www.nist.gov/public_affairs/releases/n02-10.htm.

  2. 2.

    This quality measure is known astest coverage.

  3. 3.

    A test suite has a good coverage, say 100% coverage, if all parts of the system are covered by its tests.

  4. 4.

    Incidentally, Java is also safer than C regardingtypes, since it is a strongly-typed programming language.

  5. 5.

    The standard IEC 61508 “Functional safety of electrical/electronic/programmable electronic safety-related systems” also uses a (slightly different) SIL classification.

  6. 6.

    The definition of the GSW standard was in fact based on DO-178B.

  7. 7.

    Such a combination of requirements is called aprotection profile.

  8. 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. 9.

    Of course, other post-implementation phases such as testing, training, and maintenance may well be present in this process.

References

  1. Backhouse, R.: Program Construction—Calculating Implementations from Specifications. Wiley, New York (2003)

    Google Scholar 

  2. Balzer, R., Cheatham, T.E., Green, C.: Software technology in the 1990’s: Using a new paradigm. IEEE Comput.16(11), 39–45 (1983)

    Article  Google Scholar 

  3. Common Criteria.http://www.commoncriteria.org

  4. Gries, D.: The Science of Programming. Springer, Secaucus (1987)

    MATH  Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Article  Google Scholar 

  7. 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)

    Google Scholar 

  8. Necula, G.C.: Proof-carrying code. In: Proceedings of POPL’97, pp. 106–119. ACM Press, New York (1997)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. The MathWorks: The Pentium papers.http://www.mathworks.com/company/pentium

  11. 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)

    Chapter  Google Scholar 

  12. Wayt Gibbs, W.: Trends in computing: Software’s chronic crisis. Sci. Am. (September 1994)

    Google Scholar 

  13. Woodcock, J., Larsen, P.G., Bicarregui, J., Fitzgerald, J.: Formal methods: practice and experience. ACM Comput. Surv.41(4), 1–36 (2009)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to José Bacelar Almeida .

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics