From Goals to Aspects: Discovering Aspects from Requirements Goal Models

Aspect-oriented programming (AOP) has been attracting much attention in the Software Engineering community by advocating that programs should be structured according to programmer concerns, such as ``efficient use of memory''. However, like other programming paradigms in their early days, AOP hasn't addressed yet earlier phases of software development. In particular, it is still an open question how one identifies aspects early on in the software development process. We show that aspects can be discovered during goal-oriented requirements analysis.

Our proposal includes a systematic process for discovering aspects from relationships between functional and non-functional goals. We illustrate the proposed aspect-oriented requirements engineering process with a case study adapted from the literature: the case study is on an implemented Media Shop information system.

OsCommerce is a Web-based e-Commerce platform developed in PHP. We used it to recover its functional goal models. Here is some configuration steps for osCommerce.

AOP has been implemented for tradidtional programming languages such as Java (aspectJ), C (aspectC), C++ (aspectC++) and C# (aspectC#). At the time of writing the paper, aspect-oriented PHP was not available yet. Recently a simple implementation is available aspectPHP, with which we are going to verify our candidate aspects.

References

[1] Castro, J., Kolp, M., Mylopoulos, J., "Towards Requirements-Driven Software Development Methodology: The Tropos Project," Information Systems, June 2002.

[2] Y. Yu, J.C.S.P. Leite, J. Mylopoulos. From goals to aspects: discovering aspects from requirements goal models". presented at the Requirements Engineering 2004 conference.

[3] C. Zhang, H.-A. Jacobsen, Y. Yu. "Linking Goals to Aspects". In Early Aspects workshop at the AOSD conference. 2005.

[4] AOSD.NET