Investigating Feature Interactions by Exploiting Aspect Oriented Programming

Users think of systems in terms of the functionalities they provide. Any coherent and identifiable bundle of system functionality perceived by users is then a feature of the system. Features cut across the entire system. Thus, aspect oriented languages can be exploited in order to avoid the tangling between the code implementing a feature and the other parts of the system. The problem of feature interactions becomes the problem of discovering aspect interactions and can be studied by analysing the source code units. In this paper we show how programme slicing can be used to build models of aspect oriented units. Every time one wants to reason about an aspect, a developer can use the associated slice instead of the whole programme to build useful models. We believe that this motivates the use of aspect-oriented constructs as an effective tool to manage complexity.

[1]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[2]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[3]  Paulo S. C. Alencar,et al.  Supporting Formal Verification of Crosscutting Concerns , 2001, Reflection.

[4]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[5]  Mary Jean Harrold,et al.  Slicing object-oriented software , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[6]  Mary Jean Harrold,et al.  Reuse-driven interprocedural slicing , 1998, Proceedings of the 20th International Conference on Software Engineering.

[7]  Alessandro Orso,et al.  Effects of pointers on data dependences , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[8]  Rémi Douence,et al.  Detection and resolution of aspect interactions , 2002 .

[9]  Lynne Blair,et al.  Separating Interaction Concerns from Distributed Feature Components , 2003, SC.

[10]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[11]  Mario Kolberg,et al.  Second Feature Interaction Contest , 2000, FIW.

[12]  Jianjun Zhao,et al.  Slicing aspect-oriented software , 2002, Proceedings 10th International Workshop on Program Comprehension.

[13]  Joseph E. Lang,et al.  Object-oriented programming and design patterns , 2001, SGCS.

[14]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[15]  Alexander L. Wolf,et al.  A conceptual basis for feature engineering , 1999, J. Syst. Softw..

[16]  Matthew B. Dwyer,et al.  Slicing Software for Model Construction , 2000, High. Order Symb. Comput..