Aspect-oriented Requirements Engineering

According to [8], "aspects tend not to be units of the (software) system's functional decomposition, but rather to be properties that affect the performance or semantics of the components in systematic ways." In other words, aspects are mostly non-functional. In aspect-oriented programming (AOP), the aim is to be able to isolate individual aspects (in addition to encapsulating program components), so as to enable their composition and reuse. Since non-functional aspects generally cross-cut code, separating and encapsulating them can help program understanding and improve productivity. AOP was originally proposed at Xerox Parc, where AspectJ was developed as an AOP language. There are now several  aspect-oriented languages, such as AspectC++.

Our research focuses on the elicitation of aspects during requirements analysis. Although there is previous work on this idea [10, 11, 9, 4, 3], none presents a systematic process for elicitation.

Figure 1: The V-Graph.

Our work[12] is founded on the analysis of a goal model [6], which we call a V graph  (figure 1). In this graph, high-level hard goals represent functional requirements and high-level softgoals represent non-functional requirements; these occur at the top vertices of the V graph. Here, we consider aspects to be non-functional. High-level goals are decomposed into lower-level goals and eventually operationalized in terms of tasks; tasks are at the bottom vertex of the V graph. The construction of a V graph requires the discovery of a series of interactions between hard and soft goals. These interactions are the interplay between goals -- how they support and interfere with each other. A formal analysis ultimately leads to different possible operationalizations of goals. Operationalizations are defined in terms of sets of tasks. In this regard, we are building on top of earlier work on the evaluation and analysis of goal models from the NFR project [1].

The results of the analysis, consisting of contribution and correlation links among goals, provide us with a trace of the V graph construction process. Given these traces and explicit representations of reasoning about the interplay between hard and soft goals [2], designers can understand in a more systematic way the aspects to be used during implementation.


Jaelson Castro, Manuel Kolp, and John Mylopoulos. A requirements-driven development methodology. Lecture Notes in Computer Science, 2068:108-??, 2001.
L. Chung, B. A. Nixon, E. Yu, and J. Mylopoulos. Non-Functional Requirements in Software Engineering. Kluwer Academic Publishing, 1999.
Luiz Marcio Cysneiros, Julio Cesar Sampaio do Prado Leite, and Jaime de Melo Sabat Neto. A framework for integrating non-functional requirements into conceptual models. requirements engineering. 6(2):97-115, 2001.
Frèderic Duclos, Jacky Estublier, and Philippe Morat. Describing and using non functional aspects in component based applications. In Proceedings of the 1st international conference on Aspect-oriented software development, pages 65-75. ACM Press, 2002.
Andreas Gal, Olaf Spinczyk, and Dario Alvarez. Object-orientation and operating systems. In ECOOP Workshops 2002, pages 174-183, 2002.
Paolo Giorgini, John Mylopoulos, Eleonora Nicchiarelli, and Roberto Sebastiani. Reasoning with goal models. Lecture Notes in Computer Science, 2503:167-??, 2002.
G. Kiczales. AspectJ(tm): Aspect-oriented programming in Java. Lecture Notes in Computer Science, 2591:1, 2003.
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, John Irwin. Aspect-Oriented Programming. Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Finland, Springer-Verlag LNCS 1241, June 1997.
Ana Moreira, Joeo Aracjo, and Isabel Brito. Crosscutting quality attributes for requirements engineering. In Proceedings of the 14th international conference on Software engineering and knowledge engineering, pages 167-174. ACM Press, 2002.
Awais Rashid, Ana Moreira, and Joèo Araçejo. Modularisation and composition of aspectual requirements. In Proceedings of the 2nd international conference on Aspect-oriented software development, pages 11-20. ACM Press, 2003.
Awais Rashid, Peter Sawyer, Ana M. D. Moreira, and Jo茫o Araç…¤jo. Early aspects: A model for aspect-oriented requirements engineerin. In RE 2002, pages 199-202, 2002.
Yijun Yu, Julio Ceasar Leite, John Mylopoulos. From goals to aspects: discovering aspects from goal models. accepted.