1996 · 352 citations · 26 references
EngineeringComputer ScienceSystems EngineeringFormal MethodsRequirements EngineeringSystems DesignGoal-oriented Requirements EngineeringRequirements ElicitationRequirements ReuseRequirements SpecificationSpecification LanguagesSystem RequirementsDesign PatternsGoal RefinementGoal-driven Requirements EngineeringKaos MethodologyPattern SelectionRefinementRequirements Engineering ProcessRequirements Refinement
Requirements engineering focuses on identifying, refining, operationalizing high‑level goals and assigning responsibilities, yet goal refinement remains complex and poorly supported by existing technology, prompting the need for formal refinement patterns. This paper proposes a goal‑refinement and operationalization approach that delivers constructive formal support while concealing the underlying mathematics. The approach reuses generic refinement patterns from a library organized by strengthening/weakening relations, offers tactics for pattern selection grounded in semantic criteria, and is implemented within the KAOS multi‑paradigm language featuring a semantic net layer and a real‑time temporal logic assertion layer. The patterns are formally proven correct and complete, can guide refinement or reveal missing elements, and substantially reduce the cost of applying formal methods, as demonstrated by illustrative examples.
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.
26
Statecharts: a visual formalism for complex systems
David Harel · Science of Computer Programming · 1987 · 6.7K citations
Goal-directed requirements acquisition
Anne Dardenne, Axel van Lamsweerde, Stephen Fickas · Science of Computer Programming · 1993 · 2K citations