Handling obstacles in goal-oriented requirements engineering
Top Cited Papers
- 1 October 2000
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 26 (10) , 978-1005
- https://doi.org/10.1109/32.879820
Abstract
Requirements engineering is concerned with the elicitation of high-level goals to be achieved by the envisioned system, the refinement of such goals and their operationalization into specifications of services and constraints and the assignment of responsibilities for the resulting requirements to agents such as humans, devices and software. Requirements engineering processes often result in goals, requirements, and assumptions about agent behavior that are too ideal; some of them are likely not to be satisfied from time to time in the running system due to unexpected agent behavior. The lack of anticipation of exceptional behaviors results in unrealistic, unachievable, and/or incomplete requirements. As a consequence, the software developed from those requirements will not be robust enough and will inevitably result in poor performance or failures, sometimes with critical consequences on the environment. This paper presents formal techniques for reasoning about obstacles to the satisfaction of goals, requirements, and assumptions elaborated in the requirements engineering process. The techniques are based on a temporal logic formalization of goals and domain properties; they are integrated into an existing method for goal-oriented requirements elaboration with the aim of deriving more realistic, complete, and robust requirements specifications. A key principle is to handle exceptions at requirements engineering time and at the goal level, so that more freedom is left for resolving them in a satisfactory way. The various techniques proposed are illustrated and assessed in the context of a real safety-critical system.Keywords
This publication has 57 references indexed in Scilit:
- From object-oriented to goal-oriented requirements analysisCommunications of the ACM, 1999
- Inferring declarative requirements specifications from operational scenariosIEEE Transactions on Software Engineering, 1998
- Component based design of multitolerant systemsIEEE Transactions on Software Engineering, 1998
- The model checker SPINIEEE Transactions on Software Engineering, 1997
- Completeness and consistency in hierarchical state-based requirementsIEEE Transactions on Software Engineering, 1996
- Functional documents for computer systemsScience of Computer Programming, 1995
- Object behavior analysisCommunications of the ACM, 1992
- Knowledge representation and reasoning in the design of composite systemsIEEE Transactions on Software Engineering, 1992
- A proposed perspective shift: viewing specification design as a planning problemACM SIGSOFT Software Engineering Notes, 1989
- Language support for the specification and development of composite systemsACM Transactions on Programming Languages and Systems, 1987