On the Discovery of Candidate Aspects in Software Requirements

The general concept of separation of concerns (SoCs) aims at reducing the complexity of systems by identifying and encapsulating different system properties into separate coherent modules. Aspect-Oriented Software Development (AOSD) applies the notion of SOC to effectively deal with crosscutting concerns that may induce high complexity when implementing and evolving software systems. However, for AOSD to be effective, aspects must be dealt with in early development phases (i.e., analysis and requirements) in order to guide the design phase. A major challenge in AOSD is the discovery and modeling of aspects in the requirements analysis phase. This paper introduces a new technique to identify and model, candidate aspects in requirements, and propagate them to the design phase. The proposed technique achieves this by analyzing the system along two dimensions, namely, function/non-functions requirements and the enduring concepts in system. To the best of our knowledge, the approach proposed in this paper is the first to identify crosscutting concerns with respect to the structure of the system. The technique is fully specified and its use is demonstrated by the means of a case study.

[1]  R. Wille Concept lattices and conceptual knowledge systems , 1992 .

[2]  João Araújo,et al.  Modeling and composing scenario-based requirements with aspects , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[3]  Mike Girou,et al.  Enduring business themes , 2000, Commun. ACM.

[4]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[5]  Mohamed Fayad Accomplishing software stability , 2002, CACM.

[6]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[7]  Siobhán Clarke,et al.  Theme: an approach for aspect-oriented analysis and design , 2004, Proceedings. 26th International Conference on Software Engineering.

[8]  Yijun Yu,et al.  From goals to aspects: discovering aspects from requirements goal models , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[9]  Mohamed E. Fayad,et al.  An Introduction to Software Stability , 2001 .

[10]  Adam Altman,et al.  Thinking objectively: an introduction to software stability , 2001, CACM.

[11]  Awais Rashid,et al.  Mining early aspects from requirements with ea-miner , 2008, ICSE Companion '08.

[12]  Elisa L. A. Baniassad,et al.  Isolating and relating concerns in requirements using latent semantic analysis , 2006, OOPSLA '06.

[13]  Rudolf Wille,et al.  Restructuring Lattice Theory: An Approach Based on Hierarchies of Concepts , 2009, ICFCA.

[14]  Daniel Amyot,et al.  Visualizing Early Aspects with Use Case Maps , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[15]  João Araújo,et al.  Early aspects: a model for aspect-oriented requirements engineering , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.