Skip to main content

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

  • Conference paper
Programming Languages

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7554))

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 72.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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)

    Google Scholar 

  2. Adler, C.: Optional Composition - A Solution to the Optional Feature Problem? Master thesis, University of Magdeburg, Germany (February 2011)

    Google Scholar 

  3. Ali Babar, M., Chen, L., Shull, F.: Managing variability in software product lines. IEEE Software 27, 89–91 (2010)

    Article  Google Scholar 

  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. Apel, S., Batory, D.: When to Use Features and Aspects? A Case Study. In: GPCE, Portland, Oregon (2006)

    Google Scholar 

  6. Apel, S., et al.: Aspectual Mixin Layers: Aspects and Features in Concert. In: Proceedings of ICSE 2006, Shanghai, China (2006)

    Google Scholar 

  7. Apel, S., Leich, T., Saake, G.: Aspectual feature modules. IEEE Trans. Softw. Eng. 34, 162–180 (2008)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Google Scholar 

  10. Batory, D., Sarvela, J., Rauschmayer: Scaling step-wise refinement. IEEE Transactions on Software Engineering 30(6), 355–371 (2004)

    Article  Google Scholar 

  11. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley (2002)

    Google Scholar 

  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. Eaddy, M., et al.: Do Crosscutting Concerns Cause Defects? IEEE Trans. on Software Engineering (TSE) 34, 497–515 (2008)

    Article  Google Scholar 

  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–135

    Google Scholar 

  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)

    Google Scholar 

  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. 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. 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)

    Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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. Jones, C.: Software metrics: good, bad and missing. Computer 27, 98–100 (1994)

    Article  Google Scholar 

  23. Kästner, C., Apel, S., Batory, D.: A Case Study Implementing Features using AspectJ. In: International SPL Conference (2007)

    Google Scholar 

  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. 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. Mayer, T., Hall, T.: A critical analysis of current OO design metrics. Softw. Qual. J. 8, 97–110 (1999)

    Article  Google Scholar 

  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. Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: 2nd International Conference on Aspect-Oriented Software Development (AOSD), Boston, USA (2003)

    Google Scholar 

  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)

    Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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. Svahnberg, M., van Gurp, J., Bosch, J.: A taxonomy of variability realization techniques. Software—Practice and Experience 35, 705–754 (2005)

    Article  Google Scholar 

  34. Yau, S.S., Collofello, J.S.: Design Stability Measures for Software Maintenance. IEEE Transactions on Software Engineering 11(9), 849–856 (1985)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gaia, F.N., Ferreira, G.C.S., Figueiredo, E., de Almeida Maia, M. (2012). A Quantitative Assessment of Aspectual Feature Modules for Evolving Software Product Lines. In: de Carvalho Junior, F.H., Barbosa, L.S. (eds) Programming Languages. Lecture Notes in Computer Science, vol 7554. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33182-4_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-33182-4_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-33181-7

  • Online ISBN: 978-3-642-33182-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics