The Aspect-oriented User Requirements Notation (AoURN) is a framework that combines goal-oriented, scenario-based, and aspect-oriented modeling in support of requirements engineering activities.
AoURN extends the User Requirements Notation (URN) with aspect-oriented concepts, allowing modelers to better encapsulate crosscutting concerns which are hard or impossible to encapsulate with URN models alone. AoURN adds aspect concepts to URN’s sub-languages, leading to and integrating Aspect-oriented GRL (AoGRL) and Aspect-oriented UCMs (AoUCM). The three major aspect-oriented concepts that have to be added to URN are concerns, composition rules, and pointcut expressions. Note that the term aspect refers to a crosscutting concern, while the term concern encompasses both crosscutting and non-crosscutting concerns. These are core concepts of many aspect-oriented modeling (AOM) techniques. In terms of aspect-oriented programming (AOP), the concept of a crosscutting concern in AOM relates to the concept of an aspect and the aspect’s advice in AOP, the concept of composition rules in AOM encompasses the common before/after/around operators in AOP, and the concept of pointcut expressions is the same in AOM and AOP.
A concern is a new unit of encapsulation that captures everything related to a particular idea, feature, quality, etc. AoURN treats concerns as first-class modeling elements, regardless of whether they are crosscutting or not. Typical concerns in the context of URN are stakeholders’ intentions, NFRs, and use cases. AoURN groups all relevant properties of a concern such as goals, behavior, and structure, as well as pointcut expressions needed to apply new goal and scenario elements to a URN model or to modify existing elements in the URN model.
Pointcut expressions are patterns that are specified by an aspect and matched in the URN model (often referred to as the base model). If a match is found, the aspect is applied at the matched location in the base model. The composition rule defines how an aspect transforms the matched location. AoURN uses standard URN diagrams to describe pointcut expressions and composition rules (therefore AoURN is only limited by the expressive power of URN itself as opposed to a particular composition language). AoURN’s aspect composition technique can fully transform URN models.
Finally, aspects may depend on or conflict with each other. AoURN models dependencies and conflicts among concerns and the resolution thereof with the help of the concern interaction graph (CIG). Many aspect interactions can be resolved with precedence rules. The CIG is a specialized GRL goal graph that uses dependencies, correlations, and intentional elements to model such precedence rules. The precedence rules then govern the order in which concerns are applied to a URN model.
The following papers give a good first introduction to AoURN:
Mussbacher, G., Amyot, D., Araújo, J., and Moreira, A. (2010) Requirements Modeling with the Aspect-oriented User Requirements Notation (AoURN): A Case Study. Katz, S., Mezini, M., and Kienzle, J. (Eds.), Transactions on Aspect-Oriented Software Development (TAOSD) VII, Springer, LNCS 6210:23–68.