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.

[1]  Bertrand Meyer,et al.  On Formalism in Specifications , 1985, IEEE Software.

[2]  BryantA.,et al.  B. W. Boehm software engineering economics , 1983 .

[3]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[4]  Constance L. Heitmeyer,et al.  Automated consistency checking of requirements specifications , 1996, TSEM.

[5]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[6]  Michael A. Jackson,et al.  Software requirements and specifications - a lexicon of practice, principles and prejudices , 1995 .

[7]  Emmanuel Letier Reasoning about Agents in Goal-Oriented Requirements Engineering , 2002 .

[8]  Sergio Bandinelli,et al.  European Software Institute , 1996 .

[9]  Axel van Lamsweerde,et al.  Handling Obstacles in Goal-Oriented Requirements Engineering , 2000, IEEE Trans. Software Eng..

[10]  Thomas E. Bell,et al.  Software requirements: Are they really a problem? , 1976, ICSE '76.

[11]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[12]  Axel van Lamsweerde,et al.  Managing Conflicts in Goal-Driven Requirements Engineering , 1998, IEEE Trans. Software Eng..

[13]  Jane Sinclair,et al.  Introduction to formal specification and Z , 1991, Prentice Hall International Series in Computer Science.

[14]  Axel van Lamsweerde,et al.  KAOS in Action: The BART System , 2000 .

[15]  Ron Koymans,et al.  Specifying Message Passing and Time-Critical Systems with Temporal Logic , 1992, Lecture Notes in Computer Science.

[16]  Axel van Lamsweerde,et al.  Inferring Declarative Requirements Specifications from Operational Scenarios , 1998, IEEE Trans. Software Eng..

[17]  John Mylopoulos,et al.  From object-oriented to goal-oriented requirements analysis , 1999, CACM.

[18]  Axel van Lamsweerde,et al.  Formal specification: a roadmap , 2000, ICSE '00.

[19]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.

[20]  Victor L. Winter,et al.  Bay area rapid transit district advance automated train control system case study description , 2001 .

[21]  Peter Neumann,et al.  Safeware: System Safety and Computers , 1995, SOEN.

[22]  Bashar Nuseibeh,et al.  Managing inconsistent specifications: reasoning, analysis, and action , 1998, TSEM.

[23]  L HeitmeyerConstance,et al.  Automated consistency checking of requirements specifications , 1996 .

[24]  Stephen Fickas,et al.  Goal-Directed Requirements Acquisition , 1993, Sci. Comput. Program..

[25]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[26]  John Mylopoulos,et al.  Representing and Using Nonfunctional Requirements: A Process-Oriented Approach , 1992, IEEE Trans. Software Eng..

[27]  Steve Easterbrook,et al.  Resolving requirements conflicts with computer-supported negotiation , 1994 .

[28]  Axel van Lamsweerde,et al.  Requirements engineering in the year 00: a research perspective , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[29]  David Lorge Parnas,et al.  Functional Documents for Computer Systems , 1995, Sci. Comput. Program..

[30]  Natarajan Shankar,et al.  Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS , 1995, IEEE Trans. Software Eng..

[31]  Philippe Massonet,et al.  Analogical reuse of requirements frameworks , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[32]  Nancy G. Leveson,et al.  Safeware: System Safety and Computers , 1995 .

[33]  Axel van Lamsweerde,et al.  Formal refinement patterns for goal-driven requirements elaboration , 1996, SIGSOFT '96.