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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Alford M (1985) SREM at the age of eight. IEEE Comput 18:4
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
Brooks FP Jr (1975) The mythical man-month: essays on software engineering. Addison-Wesley, Reading
Brooks FP Jr (1987) No silver bullet: essence and accidents of software engineering. IEEE Comput 20(4):10–19
Brooks RA (1991) Intelligence without reason. MIT AI Lab Technical Report No 1293
Butler RW (1996) An introduction to requirements capture using PVS: specification of a simple autopilot. In: NASA technical memorandum 110255. Langley Research Center, Hampton
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
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
Chandrasekaran B, Josephson JR, Benjamins VR (1999) What are ontologies and why do we need them? IEEE Intell Syst 14(1):20–26
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
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
Evans E (2004) Domain-driven design: tackling complexity in the heart of software. Addison-Wesley, New York
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
Harel D (1992) Biting the silver bullet: toward a brighter future for system development. IEEE Comput 25(1):8–20
Heninger KL (1989) Specifying software requirements for complex systems: new techniques and their application. IEEE Trans Softw Eng SE-6(1):2–12
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
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
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
Kries B (2007) The future of product development. In: Proceedings of the 17th CIRP design conference. Springer, Berlin
Kushilevitz E, Nisan N (1996) Communication complexity. Cambridge University Press, Cambridge
Leveson NG (1991) Software safety in embedded computer systems. Commun ACM 34(2):35–46
Meyer B (1985) On formalism in specifications. IEEE Softw January:6–26
Milner R (1993) Elements of interaction. (Turing award lecture). Commun CACM 36(1):78–89
Naur P (1969) Programming in action clusters. BIT 9(3):250–258
Neighbors J (1981) Software construction using components. PhD thesis, Department of Computer and Information Science, University of California, Irvine
Parnas DL (1986) Can software for the strategic defense initiative ever be error-free? IEEE Comput 19:11
Parnas DL (1995) Fighting complexity. Invited talk. In: International conference on engineering complex computer systems, ICECCS’95, Fort Lauderdale, Florida, November 1995
Pressman R (2005) Software engineering: a practitioner’s approach. McGraw-Hill, New York
Computer Science Technology Board (1990) Scaling up: a research agenda for software engineering. Commun ACM 33(3):281–293
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/
Weiser M (1993) Some computer science issues in ubiquitous computing. Commun CACM 36(7):74–84
Wegner P, Goldin D (2003) Computation beyond turing machine. Commun CACM 46(4):100–102
Complex System. http://en.wikipedia.org/wiki/Complex_system
Wing J (1995) Hints to specifiers. Manuscript CMU-Cs-95-118R
Author information
Authors and Affiliations
Corresponding author
Rights 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)