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