A proposal for handling non-functional aspects with a model-driven engineering approach (2012)
Information systems (ISs) are composed of functional requirements (FRs) and non-functional requirements (NFRs). An NFR, does not determine the function of the system itself, but the quality characteristics of an IS; for example, error handling, auditing and access control. NFRs are often included in the coding phase of the IS, and these generally are present in various part of the source code, i.e., they are scattered and tangled, which implies a difficult concept and even more difficult maintenance. In addition, we know that the maintenance works are becoming more frequent due to both technological and functional changes of the IS. In this paper we present a proposal to define and include the NFR in the early stages of the analysis and the design of an IS development. On the one hand, we use the Aspect-oriented Software Development approach (AOSD) to model and maintain the NFRs as aspects. On the other hand, we use the Model-driven Engineering approach (MDE) to formalize this approach. For this, we create a Unified Modeling Language (UML) profile. Then, we make use of MDE transformation mechanisms to obtain the complete model (with functional and non-functional aspects) and finally a source code is generated but this step is beyond the scope of this work.