Skip to main content

The Role of Specification

  • Chapter
  • 2356 Accesses

Part of the book series: Texts in Computer Science ((TCS))

Abstract

Software plays a prominent and critical role in large business applications, health care industry, technical endeavors in space missions, and control systems for airlines, railways and telecommunications. In turn, software affects every aspect of human endeavor including the control and delivery of most of the services that we depend on. The World Wide Web (WWW) has introduced new opportunities for business and social networking, while at the same time has raised concerns on security, privacy, and reliability of information content and its use. Software for managing these applications are complex to construct. The source of complexity of a software product lies in the identification of a set of adequate functional and non-functional requirements from domain analysis, specifying system integrity constraints, and gathering the vast amount of knowledge necessary to precisely describe the expected interaction of the software with its environment. When all requirements are not properly understood, recorded, and communicated within the development team, there is a gap between the documented requirements and the requirements actually needed for correct functioning of the system. The inability in mastering the complexity leads to this discrepancy, which is the root cause of software errors. Precise documentation of domain models and system requirements with sufficient detail to cover unexpected worst-case scenarios is a good defense against system errors. Formal methods can provide a foundation for describing complex systems, for reasoning about the behavior of software systems, and can be a complimentary approach to traditional software development methodologies.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   54.99
Price excludes VAT (USA)
  • Durable hardcover 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

Learn about institutional subscriptions

References

  1. Alford M (1985) SREM at the age of eight. IEEE Comput 18:4

    Article  Google Scholar 

  2. Basili VR (1980) Quantitative software complexity models: a panel summary. In: Basili VR (ed) Tutorial on models and methods for software management and engineering. IEEE Computer Society Press, Los Alamitos

    Google Scholar 

  3. Brooks FP Jr (1975) The mythical man-month: essays on software engineering. Addison-Wesley, Reading

    Google Scholar 

  4. Brooks FP Jr (1987) No silver bullet: essence and accidents of software engineering. IEEE Comput 20(4):10–19

    Article  MathSciNet  Google Scholar 

  5. Brooks RA (1991) Intelligence without reason. MIT AI Lab Technical Report No 1293

    Google Scholar 

  6. Butler RW (1996) An introduction to requirements capture using PVS: specification of a simple autopilot. In: NASA technical memorandum 110255. Langley Research Center, Hampton

    Google Scholar 

  7. Carnot M, DaSilva C, Dehbonei B, Meija F (1992) Error-free software development for critical systems using the B-Methodology. In: Third international software symposium on software reliability engineering

    Google Scholar 

  8. Cheverst K, Davies N, Mitchell K, Friday A, Efstratiou C (2000) Developing a context-aware electronic tourist guide: some issues and experiences. CHI Lett 2(1):1–6

    Google Scholar 

  9. Chandrasekaran B, Josephson JR, Benjamins VR (1999) What are ontologies and why do we need them? IEEE Intell Syst 14(1):20–26

    Article  Google Scholar 

  10. Crow J, De Vito BL (1996) Formalizing space shuttle software requirements. In: Proceedings of ACM SIGSOFT workshop on formal methods in software practice, San Diego, CA, January 1996

    Google Scholar 

  11. Curtis B, Sheppard SB, Milliman P, Borst MN, Love T (1979) Measuring the psychological complexity of software maintenance tasks with the Halstead and McCabe metrics. IEEE Trans Softw Eng SE-5(2):96–104

    Article  Google Scholar 

  12. Evans E (2004) Domain-driven design: tackling complexity in the heart of software. Addison-Wesley, New York

    Google Scholar 

  13. Goodenough JB, Gerhart S (1977) Towards a theory of test data selection criteria. In: Yeh RT (ed) Current trends in programming methodology, vol 2. Prentice-Hall, Englewood Cliffs, pp 44–79

    Google Scholar 

  14. Harel D (1992) Biting the silver bullet: toward a brighter future for system development. IEEE Comput 25(1):8–20

    Article  Google Scholar 

  15. Heninger KL (1989) Specifying software requirements for complex systems: new techniques and their application. IEEE Trans Softw Eng SE-6(1):2–12

    Article  Google Scholar 

  16. Heninger KL, Kallander JW, Shore JE, Parnas DL (1980) Software requirements for the A-7E aircraft (second printing). NRL Memorandum Report No 3876, Naval Research Laboratories, Washington, DC

    Google Scholar 

  17. Jackson D, Thomas M, Millett LI (eds) Committee on Certifiably Dependable Software Systems, National Research Council, Software for dependable systems: sufficient evidence? http://www.nap.edu/catalog/11923.html

  18. King T (1994) Formalizing British rail’s signalling rules. In: FME’94: industrial benefit of formal methods. Lecture notes in computer science, vol 873. Springer, Berlin, pp 44–54

    Google Scholar 

  19. Kries B (2007) The future of product development. In: Proceedings of the 17th CIRP design conference. Springer, Berlin

    Google Scholar 

  20. Kushilevitz E, Nisan N (1996) Communication complexity. Cambridge University Press, Cambridge

    Book  Google Scholar 

  21. Leveson NG (1991) Software safety in embedded computer systems. Commun ACM 34(2):35–46

    Article  Google Scholar 

  22. Meyer B (1985) On formalism in specifications. IEEE Softw January:6–26

    Article  Google Scholar 

  23. Milner R (1993) Elements of interaction. (Turing award lecture). Commun CACM 36(1):78–89

    Article  Google Scholar 

  24. Naur P (1969) Programming in action clusters. BIT 9(3):250–258

    Article  MATH  Google Scholar 

  25. Neighbors J (1981) Software construction using components. PhD thesis, Department of Computer and Information Science, University of California, Irvine

    Google Scholar 

  26. Parnas DL (1986) Can software for the strategic defense initiative ever be error-free? IEEE Comput 19:11

    Article  Google Scholar 

  27. Parnas DL (1995) Fighting complexity. Invited talk. In: International conference on engineering complex computer systems, ICECCS’95, Fort Lauderdale, Florida, November 1995

    Google Scholar 

  28. Pressman R (2005) Software engineering: a practitioner’s approach. McGraw-Hill, New York

    Google Scholar 

  29. Computer Science Technology Board (1990) Scaling up: a research agenda for software engineering. Commun ACM 33(3):281–293

    Article  Google Scholar 

  30. Smith MK, Welty C, McGuinness DL (2004) Owl web ontology language guide. W3C recommendation, February 2004. http://www.w3.org/TR/2004/REC-owl-guide-20040210/

  31. Weiser M (1993) Some computer science issues in ubiquitous computing. Commun CACM 36(7):74–84

    Google Scholar 

  32. Wegner P, Goldin D (2003) Computation beyond turing machine. Commun CACM 46(4):100–102

    Article  Google Scholar 

  33. Complex System. http://en.wikipedia.org/wiki/Complex_system

  34. Wing J (1995) Hints to specifiers. Manuscript CMU-Cs-95-118R

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to V. S. Alagar .

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag London Limited

About this chapter

Cite this chapter

Alagar, V.S., Periyasamy, K. (2011). The Role of Specification. In: Specification of Software Systems. Texts in Computer Science. Springer, London. https://doi.org/10.1007/978-0-85729-277-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-0-85729-277-3_1

  • Publisher Name: Springer, London

  • Print ISBN: 978-0-85729-276-6

  • Online ISBN: 978-0-85729-277-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics