ArgREC - Argumentation for Requirements Reconciliation
Goal of the System
Requirement engineering is an essential step of the software development process during which the behavior of a software system is defined. A lot of artifacts are created during this stage of the development process and support is required to manage their consistency and evolution over time. Moreover, the increasing complexity of the application domain under consideration during the requirement engineering process as well as the expansion of geographically distributed projects makes this support even more critical. The notion of goal has increasingly been used in order to capture and analyze requirements. In this context, our aim is to provide support to stakeholders in order to build a consistent set of goal-based requirements and to keep it coherent over time. In this paper, we propose an approach to detect consistent sets of goal-based requirements and maintain their consistency over time. Our approach relies on argumentation theory which allows us to detect conflicts among elements called arguments. In particular, we rely on meta-argumentation, which instantiates abstract argumentation frameworks, where requirements are represented as arguments and the standard Dung-like argumentation framework is extended with additional relations between goal-based requirements.
Different kinds of relationships hold between goals. The ArgREC system for requirements reconciliation considers the following relationships:
- AND-decomposition: the decomposition of a super-goal into a set of sub-goals is an AND-decomposition if and only if all sub-goals must be satisfied in order to satisfy the super-goal.
- OR-decomposition: the decomposition of a super-goal into a set of sub-goals is an OR-decomposition if and only if satisfying one of the sub-goals is sufficient for satisfying the super-goal.
- Conflict dependency: a conflict dependency exists between two goals if the satisfaction of one goal entirely excludes the satisfaction of the other goal, and vice versa.
- Require dependency: a goal G1 is related to a goal G2 by a require dependency if the satisfaction of the goal G2 is a prerequisite for satisfying goal G1.
- Goal equivalence: an equivalence dependency exists between two goals if the satisfaction of one goal implies the satisfaction of the other goal.
The figures below visualize by means of an example how the following relationships are translated in a meta-argumentation framework, then used for requirements reconciliation.
Here you can download the source code of the ArgREC system (Bitbucket).