Requirements engineering in the year 00: a research perspective

Requirements engineering (RE) is concerned with the identification of the goals to be achieved by the envisioned system, the operationalization of such goals into services and constraints, and the assignment of responsibilities for the resulting requirements to agents such as humans, devices, and software. The processes involved in RE include domain analysis, elicitation, specification, assessment, negotiation, documentation, and evolution. Getting high-quality requirements is difficult and critical. Recent surveys have confirmed the growing recognition of RE as an area of utmost importance in software engineering research and practice. The paper presents a brief history of the main concepts and techniques developed to date to support the RE task, with a special focus on modeling as a common denominator to all RE processes. The initial description of a complex safety-critical system is used to illustrate a number of current research trends in RE-specific areas such as goal-oriented requirements elaboration, conflict management, and the handling of abnormal agent behaviors. Opportunities for goal-based architecture derivation are also discussed together with research directions to let the field move towards more disciplined habits.

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

[2]  O. Gotel,et al.  Contribution Structures , 1995 .

[3]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[4]  W. N. Robinson,et al.  Integrating multiple specifications using domain goals , 1989, IWSSD '89.

[5]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

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

[7]  Michael L. Brodie On conceptual modelling - perspectives from artificial intelligence, databases and programming languages , 1984, Topics in information systems.

[8]  Matthias Jarke,et al.  Scenarios in System Development: Current Practice , 1998, IEEE Softw..

[9]  Douglas T. Ross,et al.  Structured Analysis (SA): A Language for Communicating Ideas , 1977, IEEE Transactions on Software Engineering.

[10]  Joseph A. Goguen,et al.  Requirements engineering: social and technical issues , 1994 .

[11]  Myla Archer,et al.  Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications , 1998, IEEE Trans. Software Eng..

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

[13]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

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

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

[16]  H. Chertkow,et al.  Semantic memory , 2002, Current neurology and neuroscience reports.

[17]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[18]  Carlo Ghezzi,et al.  ESEC '89 : 2nd European Software Engineering Conference, University of Warwick, Coventry, UK, September, 11-15, 1989 : proceedings , 1989 .

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

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

[21]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

[22]  Axel van Lamsweerde,et al.  Integrating obstacles in goal-driven requirements engineering , 1998, Proceedings of the 20th International Conference on Software Engineering.

[23]  Anthony Finkelstein,et al.  Building formal specifications using structured common sense , 1987 .

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

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

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

[27]  Kathryn L. Heninger Specifying Software Requirements for Complex Systems: New Techniques and Their Application , 2001, IEEE Transactions on Software Engineering.

[28]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[29]  Peter P. Chen The Entity-Relationship Model: Towards a unified view of Data , 1976 .

[30]  Peter P. Chen The entity-relationship model: toward a unified view of data , 1975, VLDB '75.

[31]  Paul Ward,et al.  Structured Development for Real-Time Systems , 1986 .

[32]  Joseph A. Goguen,et al.  Techniques for requirements elicitation , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[33]  Jeanine Souquières,et al.  Description of specification developments , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[34]  Luqi,et al.  Software engineering with abstractions , 1991 .

[35]  Kenji Takahashi,et al.  Inquiry-based requirements analysis , 1994, IEEE Software.

[36]  David Chenho Kung,et al.  Formal approach to scenario analysis , 1994, IEEE Software.

[37]  Robert A. Riemenschneider,et al.  Checking the Correctness of Architectural Transformation Steps via Proof-Carrying Architectures , 1999, WICSA.

[38]  Nancy G. Leveson,et al.  Requirements Specification for Process-Control Systems , 1994, IEEE Trans. Software Eng..

[39]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[40]  David Garlan,et al.  Acme: an architecture description interchange language , 1997, CASCON.

[41]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[42]  Neil M. Goldman,et al.  Operational specification as the basis for rapid prototyping , 1982 .

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

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

[45]  John W. Brackett,et al.  The Core method for real-time requirements , 1992, IEEE Software.

[46]  John Mylopoulos,et al.  A requirements modeling language and its logic , 1986, Inf. Syst..

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

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

[49]  Matthias Jarke,et al.  Scenario usage in system development: a report on current practice , 1998, Proceedings of IEEE International Symposium on Requirements Engineering: RE '98.

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

[51]  Barry W. Boehm,et al.  Software Requirements Negotiation and Renegotiation Aids: A Theory-W Based Spiral Approach , 1995, 1995 17th International Conference on Software Engineering.

[52]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[53]  H. R. Quillian In semantic information processing , 1968 .

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

[55]  Michael Jackson,et al.  Where Do Operations Come From: A Multiparadigm Specification Technique , 1996, IEEE Trans. Software Eng..

[56]  W. W. Bledsoe,et al.  Review of "Problem-Solving Methods in Artificial Intelligence by Nils J. Nilsson", McGraw-Hill Pub. , 1971, SGAR.

[57]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[58]  Olly Gotel,et al.  Contribution structures [Requirements artifacts] , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[59]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[60]  Stuart Kent,et al.  Formally specifying temporal constraints and error recovery , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[61]  W. S. Turner,et al.  System Development Methodology , 1974 .

[62]  John Mylopoulos,et al.  Capturing more world knowledge in the requirements specification , 1982, ICSE '82.

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

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

[65]  Robert Balzer,et al.  Operational specification as the basis for rapid prototyping , 1982 .

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

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

[68]  R.W. Butler,et al.  A formal methods approach to the analysis of mode confusion , 1998, 17th DASC. AIAA/IEEE/SAE. Digital Avionics Systems Conference. Proceedings (Cat. No.98CH36267).

[69]  Paul Benoit,et al.  Météor: A Successful Application of B in a Large Project , 1999, World Congress on Formal Methods.

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

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

[72]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[73]  Sven Ove Hansson,et al.  Review of Deontic Logic in Computer Science: Normative System Specification, John-Jules Ch. Meyer and Roel J. Wieringa (eds.), John Wiley & Sons, Chichester 1993 , 1994, Bull. IGPL.

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

[75]  Colin Potts,et al.  Using schematic scenarios to understand user needs , 1995, Symposium on Designing Interactive Systems.

[76]  Robyn R. Lutz,et al.  Analyzing software requirements errors in safety-critical, embedded systems , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[77]  Eric S. K. Yu,et al.  Towards modelling and reasoning support for early-phase requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[78]  Xiaolei Qian,et al.  Correct Architecture Refinement , 1995, IEEE Trans. Software Eng..

[79]  Martin S. Feather,et al.  Language support for the specification and development of composite systems , 1987, TOPL.

[80]  Stephan Merz,et al.  Model Checking , 2000 .

[81]  Nils J. Nilsson,et al.  Problem-solving methods in artificial intelligence , 1971, McGraw-Hill computer science series.

[82]  Eric Dubois,et al.  O-O Requirements Analysis: an Agent Perspective , 1993, ECOOP.

[83]  John Mylopoulos,et al.  Understanding "why" in software process modelling, analysis, and design , 1994, Proceedings of 16th International Conference on Software Engineering.

[84]  Neil A. M. Maiden,et al.  Exploiting reusable specifications through analogy , 1992, CACM.

[85]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[86]  Amnon Naamad,et al.  The STATEMATE semantics of statecharts , 1996, TSEM.

[87]  Janis A. Bubenko,et al.  Information Modeling in the Context of System Development , 1980, IFIP Congress.

[88]  Stephen Fickas,et al.  Goal-directed concept acquisition in requirements elicitation , 1991, Proceedings of the Sixth International Workshop on Software Specification and Design.

[89]  Constance L. Heitmeyer,et al.  SCR*: A Toolset for Specifying and Analyzing Software Requirements , 1998, CAV.

[90]  David Notkin,et al.  Model checking large software specifications , 1996, SIGSOFT '96.

[91]  M.S. Feather,et al.  Reconciling system requirements and runtime behavior , 1998, Proceedings Ninth International Workshop on Software Specification and Design.

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

[93]  Michael Jackson,et al.  Four dark corners of requirements engineering , 1997, TSEM.

[94]  M. A. Jackson,et al.  Information systems: Modelling, sequencing and transformations , 1978, ICSE '78.

[95]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[96]  Marek Sergot,et al.  On the characterization of law and computer systems: the normative systems perspective , 1994 .

[97]  Douglas T. Ross,et al.  Structured Analysis for Requirements Definition , 1977, IEEE Transactions on Software Engineering.

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

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

[100]  A. Sutcliffe,et al.  A technique combination approach to requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

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

[102]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[103]  John Mylopoulos,et al.  Information Modeling in the Time of the Revolution , 1998, Inf. Syst..

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

[105]  Michael Jackson,et al.  Conjunction as composition , 1993, TSEM.

[106]  Richard C. Waters,et al.  The Requirements Apprentice: Automated Assistance for Requirements Acquisition , 1991, IEEE Trans. Software Eng..

[107]  T. S. E. Maibaum,et al.  A Pluralistic Knowledge-Based Approach to Software Specification , 1989, ESEC.

[108]  Stephen Fickas,et al.  Knowledge Representation and Reasoning in the Design of Composite Systems , 1992, IEEE Trans. Software Eng..

[109]  Martin S. Feather,et al.  Requirements & Specification Exemplars , 1997 .

[110]  Martin S. Feather,et al.  Utilizing Scenarios in the Software Development Process , 1993, Information System Development Process.

[111]  Pamela Zave Classification of research efforts in requirements engineering , 1997, ACM Comput. Surv..

[112]  Nancy G. Leveson,et al.  Completeness and Consistency in Hierarchical State-Based Requirements , 1996, IEEE Trans. Software Eng..

[113]  Brian A. Nixon,et al.  Dealing with performance requirements during the development of information systems , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[114]  George S. Avrunin,et al.  Property specification patterns for finite-state verification , 1998, FMSP '98.

[115]  Kenneth S. Rubin Object behavior analysis , 1992, CACM.

[116]  Diane C. P. Smith,et al.  Database abstractions: aggregation and generalization , 1977, TODS.

[117]  Mats Per Erik Heimdahl,et al.  Specification-based prototyping for embedded systems , 1999, ESEC/FSE-7.

[118]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .