Formal refinement patterns for goal-driven requirements elaboration

Requirements engineering is concerned with the identification of high-level goals to be achieved by the system envisioned, the refinement of such goals, the operationalization of goals into services and constraints, and the assignment of responsibilities for the resulting requirements to agents such as humans, devices and programs. Goal refinement and operationalization is a complex process which is not well supported by current requirements engineering technology. Ideally some form of formal support should be provided, but formal methods are difficult and costly to apply at this stage.This paper presents an approach to goal refinement and operationalization which is aimed at providing constructive formal support while hiding the underlying mathematics. The principle is to reuse generic refinement patterns from a library structured according to strengthening/weakening relationships among patterns. The patterns are once for all proved correct and complete. They can be used for guiding the refinement process or for pointing out missing elements in a refinement. The cost inherent to the use of a formal method is thus reduced significantly. Tactics are proposed to the requirements engineer for grounding pattern selection on semantic criteria.The approach is discussed in the context of the multi-paradigm language used in the KAOS method; this language has an external semantic net layer for capturing goals, constraints, agents, objects and actions together with their links, and an inner formal assertion layer that includes a real-time temporal logic for the specification of goals and constraints. Some frequent refinement patterns are high-lighted and illustrated through a variety of examples.The general principle is somewhat similar in spirit to the increasingly popular idea of design patterns, although it is grounded on a formal framework here.

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

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

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

[4]  Pamela Zave,et al.  An Operational Approach to Requirements Specification for Embedded Systems , 1982, IEEE Transactions on Software Engineering.

[5]  H. Levesque,et al.  Readings in Knowledge Representation , 1985 .

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

[7]  Martin Wirsing,et al.  An introduction ASL , 1987 .

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

[9]  Darrel C. Ince,et al.  Software prototyping, formal methods, and VDM , 1988 .

[10]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[11]  S. Fickas,et al.  A proposed perspective shift: viewing specification design as a planning problem , 1989, IWSSD '89.

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

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

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

[15]  Marie-Claude Gaudel,et al.  Software testing based on formal specifications: a theory and a tool , 1991, Softw. Eng. J..

[16]  André Rifaut,et al.  A formal language for the requirements engineering of computer systems , 1991 .

[17]  Carlo Ghezzi,et al.  A model parametric real-time logic , 1992, TOPL.

[18]  Marie-Claude Gaudel,et al.  Structuring and Modularizing Algebraic Specifications: The PLUSS Specification Language, Evolutions and Perspectives , 1992, STACS.

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

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

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

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

[23]  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.

[24]  David Lorge Parnas,et al.  Documentation of requirements for computer systems , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[25]  Michael Jackson,et al.  Domain descriptions , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[26]  R. Tibshirani,et al.  An introduction to the bootstrap , 1993 .

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

[28]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[29]  Richard A. Kemmerer,et al.  Aslantest: a symbolic execution tool for testing Aslan formal specifications , 1994, ISSTA '94.

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

[31]  Annie I. Antón,et al.  Goal Decomposition and Scenario Analysis in Business Process Reengineering , 1994, CAiSE.

[32]  Kevin Lano,et al.  Formal object-oriented development , 1995, FACIT: Formal approaches to computing and information technology.

[33]  Jeannette M. Wing,et al.  Signature matching: a tool for using software libraries , 1995, TSEM.

[34]  Philippe Massonet,et al.  Goal-directed elaboration of requirements for a meeting scheduler: problems and lessons learnt , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[35]  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.

[36]  Daniel Jackson,et al.  Elements of style: analyzing a software design feature with a counterexample detector , 1996, ISSTA '96.

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

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