A Refinement Calculus for Requirements Engineering Based on Argumentation Semantics
The requirements problem consists of transforming stakeholder requirements - however informal, ambiguous, conflicting, unattainable, imprecise and incomplete – into a consistent, complete and realizable specification through a systematic process. We propose a refinement calculus for requirements engineering (CaRE) for solving this problem, which is inspired by the typically dialectical nature of requirements activities. The calculus casts the requirement problem as an iterative argument between stakeholders and requirements engineers, where posited requirements are attacked for being ambiguous, incomplete, etc. and refined into new requirements that address the defect pointed out by the attack. Refinements are carried out by operators provided by CaRE that refine (e.g., strengthen, weaken, decompose) existing requirements to eliminate the defect under attack, to build a refinement graph. The semantics of refinement graphs is based on the notion of acceptable argument in Dung’s argumentation theory.
This is joint work with Yehia ElRakaiby, Alessio Ferrari and Alex Borgida.