A Quantitative Assessment of Aspectual Feature Modules for Evolving Software Product Lines

  • Felipe Nunes Gaia
  • Gabriel Coutinho Sousa Ferreira
  • Eduardo Figueiredo
  • Marcelo de Almeida Maia
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7554)


Feature-Oriented Programming (FOP) and Aspect-Oriented Programming (AOP) are programming techniques based on composition mechanisms, called refinements and aspects, respectively. These techniques are assumed to be good variability mechanisms for implementing Software Product Lines (SPLs). Aspectual Feature Modules (AFM) is an approach that combines advantages of feature modules and aspects to increase concern modularity. Some guidelines of how to integrate these techniques have been established in some studies, but these studies do not focus the analysis on how effectively AFM can preserve the modularity and stability facilitating SPL evolution. The main purpose of this paper is to investigate whether the simultaneous use aspects and features through the AFM approach facilitates the evolution of SPLs. The quantitative data were collected from a SPL developed using four different variability mechanisms: (1) feature modules, aspects and aspects refinements of AFM, (2) aspects of aspect-oriented programming (AOP), (3) feature modules of feature-oriented programming (FOP), and (4) conditional compilation (CC) with object-oriented programming. Metrics for change propagation and modularity stability were calculated and the results support the benefits of the AFM option in a context where the product line has been evolved with addition or modification of crosscutting concerns.


Software product lines feature-oriented programming aspectoriented programming aspectual feature modules variability mechanisms 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Adams, B., De Meuter, W., Tromp, H., Hassan, A.E.: Can we Refactor Conditional Compilation into Aspects? In: 8th ACM International Conference on Aspect-oriented Software Development, AOSD 2009, pp. 243–254. ACM, New York (2009)CrossRefGoogle Scholar
  2. 2.
    Adler, C.: Optional Composition - A Solution to the Optional Feature Problem? Master thesis, University of Magdeburg, Germany (February 2011)Google Scholar
  3. 3.
    Ali Babar, M., Chen, L., Shull, F.: Managing variability in software product lines. IEEE Software 27, 89–91 (2010)CrossRefGoogle Scholar
  4. 4.
    Alves, V., Neto, A.C., Soares, S., Santos, G., Calheiros, F., Nepomuceno, V., Pires, D., Leal, J., Borba, P.: From Conditional Compilation to Aspects: A Case Study in Software Product Lines Migration. In: First Workshop on Aspect-Oriented Product Line Engineering (AOPLE), Portland, USA (2006)Google Scholar
  5. 5.
    Apel, S., Batory, D.: When to Use Features and Aspects? A Case Study. In: GPCE, Portland, Oregon (2006)Google Scholar
  6. 6.
    Apel, S., et al.: Aspectual Mixin Layers: Aspects and Features in Concert. In: Proceedings of ICSE 2006, Shanghai, China (2006)Google Scholar
  7. 7.
    Apel, S., Leich, T., Saake, G.: Aspectual feature modules. IEEE Trans. Softw. Eng. 34, 162–180 (2008)CrossRefGoogle Scholar
  8. 8.
    Batory, D.: Feature Models, Grammars, and Propositional Formulas. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 7–20. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  9. 9.
    Batory, D.: Feature-Oriented Programming and the AHEAD tool suite. In: 26th International Conference on Software Engineering, ICSE 2004, pp. 702–703. IEEE Computer Society, Washington (2004)CrossRefGoogle Scholar
  10. 10.
    Batory, D., Sarvela, J., Rauschmayer: Scaling step-wise refinement. IEEE Transactions on Software Engineering 30(6), 355–371 (2004)CrossRefGoogle Scholar
  11. 11.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley (2002)Google Scholar
  12. 12.
    Dantas, F., Garcia, A.: Software Reuse versus Stability: Evaluating Advanced Programming Techniques. In: 23rd Brazilian Symposium on Software Engineering, SBES 2010 (2010)Google Scholar
  13. 13.
    Eaddy, M., et al.: Do Crosscutting Concerns Cause Defects? IEEE Trans. on Software Engineering (TSE) 34, 497–515 (2008)CrossRefGoogle Scholar
  14. 14.
    Ferreira, G., Gaia, F., Figueiredo, E., Maia, M.: On the Use of Feature-Oriented Programming for Evolving Software Product Lines – a Comparative Study. In: Proc. of the XV Brazilian Symposium on Programming Languages, São Paulo, pp. 121–135Google Scholar
  15. 15.
    Figueiredo, E., Cacho, N., Sant’Anna, C., Monteiro, M., Kulesza, U., Garcia, A., Soares, S., Ferrari, F., Khan, S., Castor Filho, F., Dantas, F.: Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability. In: 30th International Conference on Software Engineering, ICSE 2008, pp. 261–270. ACM, New York (2008)CrossRefGoogle Scholar
  16. 16.
    Figueiredo, E., et al.: On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework. In: Proc. of European Conf. on Soft. Maint. and Reeng. (CSMR), Athens (2008)Google Scholar
  17. 17.
    Figueiredo, E., Sant’Anna, C., Garcia, A., Lucena, C.: Applying and Evaluating Concern-Sensitive Design Heuristics. In: 23rd Brazilian Symposium on Software Engineering (SBES), Fortaleza, Brazil (2009)Google Scholar
  18. 18.
    Garcia, A., Sant’Anna, C., Figueiredo, E., Kulesza, U., Lucena, C., von Staa, A.: Modularizing design patterns with aspects: a quantitative study. In: Proceedings of the 4th International Conference on Aspect-Oriented Software Development, AOSD 2005, pp. 3–14. ACM, New York (2005)CrossRefGoogle Scholar
  19. 19.
    Godfrey, M., German, D.: The past, present, and future of software evolution. In: Frontiers of Software Maintenance, pp. 129–138 (2008)Google Scholar
  20. 20.
    Greenwood, P., Bartolomei, T., Figueiredo, E., Dosea, M., Garcia, A., Cacho, N., Sant’Anna, C., Soares, S., Borba, P., Kulesza, U., Rashid, A.: On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study. In: Bateni, M. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 176–200. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  21. 21.
    Hu, Y., Merlo, E., Dagenais, M., Lague, B.: C/C++ Conditional Compilation Analysis Using Symbolic Execution. In: Proceedings of the IEEE International Conference on Software Maintenance, ICSM (2000)Google Scholar
  22. 22.
    Jones, C.: Software metrics: good, bad and missing. Computer 27, 98–100 (1994)CrossRefGoogle Scholar
  23. 23.
    Kästner, C., Apel, S., Batory, D.: A Case Study Implementing Features using AspectJ. In: International SPL Conference (2007)Google Scholar
  24. 24.
    Lee, K., Kang, K.C., Koh, E., Chae, W., Bokyoung, K., Choi, B.W.: Domain-oriented engineering of elevator control software: a product line practice. In: Proceedings of the First Conference on Software Product Lines: Experience and Research Directions, pp. 3–22. Kluwer Academic Publishers (2000)Google Scholar
  25. 25.
    Maletic, J., Kagdi, H.: Expressiveness and effectiveness of program comprehension: thoughts on future research directions. In: Frontiers of Software Maintenance, pp. 31–40 (2008)Google Scholar
  26. 26.
    Mayer, T., Hall, T.: A critical analysis of current OO design metrics. Softw. Qual. J. 8, 97–110 (1999)CrossRefGoogle Scholar
  27. 27.
    Mens, T., Wermelinger, M., Ducasse, S., Demeyer, S., Hirschfield, R., Jazayeri, M.: Challenges in software evolution. In: IWPSE 2005: Proceedings of the Eighth International Workshop on Principles of Software Evolution, pp. 13–22. IEEE Computer Society (2005)Google Scholar
  28. 28.
    Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: 2nd International Conference on Aspect-Oriented Software Development (AOSD), Boston, USA (2003)Google Scholar
  29. 29.
    Mezini, M., Ostermann, K.: Variability Management with Feature-Oriented Programming and Aspects. In: 12th ACM SIG-SOFT Twelfth International Symposium on Foundations of Software Engineering, SIGSOFT 2004/FSE-12, pp. 127–136. ACM, New York (2004)CrossRefGoogle Scholar
  30. 30.
    Pettersson, U., Jarzabek, S.: Industrial experience with building a web portal product line using a lightweight, reactive approach. In: Proceedings of the 10th European Software Engineering Conference Held Jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 326–335. ACM (2005)Google Scholar
  31. 31.
    Prehofer, C.: Feature-Oriented Programming: A Fresh Look at Objects. In: Aksit, M., Auletta, V. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 419–443. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  32. 32.
    Sant’Anna, C., et al.: On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. In.: Brazilian Symposium on Software Engineering (SBES), pp. 19–34 (2003)Google Scholar
  33. 33.
    Svahnberg, M., van Gurp, J., Bosch, J.: A taxonomy of variability realization techniques. Software—Practice and Experience 35, 705–754 (2005)CrossRefGoogle Scholar
  34. 34.
    Yau, S.S., Collofello, J.S.: Design Stability Measures for Software Maintenance. IEEE Transactions on Software Engineering 11(9), 849–856 (1985)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Felipe Nunes Gaia
    • 1
  • Gabriel Coutinho Sousa Ferreira
    • 1
  • Eduardo Figueiredo
    • 2
  • Marcelo de Almeida Maia
    • 1
  1. 1.Federal University of UberlândiaBrazil
  2. 2.Federal University of Minas GeraisBrazil

Personalised recommendations