Building Formal Requirements Models for Reliable Software
Requirements engineering (RE) is concerned with the elicitation of the goals to be achieved by the system envisioned, the operationalization of such goals into specifications of services and constraints, and the assignment of responsibilities for the resulting requirements to agents such as humans, devices, and software. Getting high-quality requirements is difficult and critical. Recent surveys have confirmed the growing recognition of RE as an area of primary concern in software engineering research and practice.
The paper first briefly introduces RE by discussing its main motivations, objectives, activities, and challenges. The role of rich models as a common interface to all RE processes is emphasized. We review various techniques available to date for system modeling, from semi-formal to formal, and discuss their relative strengths and weaknesses when applied during the RE stage of the software lifecycle.
The paper then discusses some recent efforts to overcome such problems through RE-specific techniques for goal-oriented elaboration of requirements, multiparadigm specification, the integration of non-functional requirements, the anticipation of abnormal agent behaviors, and the management of conflicting requirements.
KeywordsRequirement Engineering Reliable Software Requirement Engineer Responsibility Assignment Domain Property
Unable to display preview. Download preview PDF.
- [BART99]Bay Area Rapid Transit District, Advance Automated Train Control System, Case Study Description. Sandia National Labs, http://www.hcecs.sandia.gov/bart.htm.
- [Bel76]T.E. Bell and T.A. Thayer, “Software Requirements: Are They Really a Problem?”, Proc. ICSE-2: 2 nd Intrnational Conference on Software Enginering, San Francisco, 1976, 61–68.Google Scholar
- [Boe81]B.W. Boehm, Software Engineering Economics. Prentice-Hall, 1981.Google Scholar
- [Dar96]R. Darimont and A. van Lamsweerde, “Formal Refinement Patterns for Goal-Driven Requirements Elaboration”, Proc. FSE’4–Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, San Francisco, October 1996, 179–190.Google Scholar
- [Eas94]S. Easterbrook, “Resolving Requirements Conflicts with Computer-Supported Negotiation”. In Requirements Engineering: Social and Technical Issues, M. Jirotka and J. Goguen (Eds.), Academic Press, 1994, 41–65.Google Scholar
- [ESI96]European Software Institute, “European User Survey Analysis”, Report USV_EUR 2.1, ESPITI Project, January 1996.Google Scholar
- [Jac95]M. Jackson, Software Requirements & Specifications–A Lexicon of Practice, Principles and Pejudices. ACM Press, Addison-Wesley, 1995.Google Scholar
- [Lam98a]A. van Lamsweerde, R. Darimont and E. Letier, “Managing Conflicts in Goal-Driven Requirements Engineering”, IEEE Trans. on Sofware. Engineering, Special Issue on Inconsistency Management in Software Development, November 1998.Google Scholar
- [Lam98b]A. van Lamsweerde and L. Willemet, “Inferring Declarative Requirements Specifications from Operational Scenarios”, IEEE Trans. on Sofware. Engineering, Special Issue on Scenario Management, December 1998, 1089–1114.Google Scholar
- [Lam2Ka]A. van Lamsweerde, “Requirements Engineering in the Year 00: A Research Perspective”, Keynote paper, Proc. ICSE’2000–22 nd Intl. Conference on Software Engineering, IEEE Press, June 2000.Google Scholar
- [Lam2Kb]A. van Lamsweerde, “Formal Specification: a Roadmap”. In The Future of Software Engineering, A. Finkelstein (ed.), ACM Press, 2000.Google Scholar
- [Lam2Kc]A. van Lamsweerde and E. Letier, “Handling Obstacles in Goal-Oriented Requirements Engineering”, IEEE Transactions on Software Engineering, Special Issue on Exception Handling, October 2000.Google Scholar
- [Let2K]þE. Letier and A. van Lamsweerde, “KAOS in Action: the BART System”. IFIP WG2.9 meeting, Flims, http://www.cis.gsu.edu/~wrobinso/ifip2_9/Flims00.
- [Let01]E. Letier, Reasoning About Agents in Goal-Oriented Requirements Engineering. PhD Thesis, University of Louvain, 2001.Google Scholar
- [Lev95]N. Leveson, Safeware–System Safety and Computers. Addison-Wesley, 1995.Google Scholar
- [Man92]Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems, Springer-Verlag, 1992.Google Scholar
- [Mas97]P. Massonet and A. van Lamsweerde, “Analogical Reuse of Requirements Frameworks”, Proc. RE-97–3rd Int. Symp. on Requirements Engineering, Annapolis, 1997, 26–37.Google Scholar
- [Owr95]S. Owre, J. Rushby, and N. Shankar, “Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS”, IEEE Transactions on Software Engineering Vol. 21No. 2, Feb. 95, 107–125.Google Scholar
- [Pot96]B. Potter, J. Sinclair and D. Till, An Introduction to Formal Specification and Z. Second edition, Prentice Hall, 1996.Google Scholar
- [Rum99]J. Rumbaugh, I. Jacobson and G Booch, The Unified Modeling Language Reference Manual. Addison-Wesley, Object Technology Series, 1999.Google Scholar
- [Sta95]The Standish Group, “Software Chaos”, http://www.standishgroup.com/chaos.html.
- [Yue87]K. Yue, “What Does It Mean to Say that a Specification is Complete?”, Proc. IWSSD-4, Fourth International Workshop on Software Specification and Design, IEEE, 1987.Google Scholar