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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Adler, C.: Optional Composition - A Solution to the Optional Feature Problem? Master thesis, University of Magdeburg, Germany (February 2011)
Ali Babar, M., Chen, L., Shull, F.: Managing variability in software product lines. IEEE Software 27, 89–91 (2010)
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)
Apel, S., Batory, D.: When to Use Features and Aspects? A Case Study. In: GPCE, Portland, Oregon (2006)
Apel, S., et al.: Aspectual Mixin Layers: Aspects and Features in Concert. In: Proceedings of ICSE 2006, Shanghai, China (2006)
Apel, S., Leich, T., Saake, G.: Aspectual feature modules. IEEE Trans. Softw. Eng. 34, 162–180 (2008)
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)
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)
Batory, D., Sarvela, J., Rauschmayer: Scaling step-wise refinement. IEEE Transactions on Software Engineering 30(6), 355–371 (2004)
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley (2002)
Dantas, F., Garcia, A.: Software Reuse versus Stability: Evaluating Advanced Programming Techniques. In: 23rd Brazilian Symposium on Software Engineering, SBES 2010 (2010)
Eaddy, M., et al.: Do Crosscutting Concerns Cause Defects? IEEE Trans. on Software Engineering (TSE) 34, 497–515 (2008)
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
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)
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)
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)
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)
Godfrey, M., German, D.: The past, present, and future of software evolution. In: Frontiers of Software Maintenance, pp. 129–138 (2008)
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)
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)
Jones, C.: Software metrics: good, bad and missing. Computer 27, 98–100 (1994)
Kästner, C., Apel, S., Batory, D.: A Case Study Implementing Features using AspectJ. In: International SPL Conference (2007)
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)
Maletic, J., Kagdi, H.: Expressiveness and effectiveness of program comprehension: thoughts on future research directions. In: Frontiers of Software Maintenance, pp. 31–40 (2008)
Mayer, T., Hall, T.: A critical analysis of current OO design metrics. Softw. Qual. J. 8, 97–110 (1999)
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)
Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: 2nd International Conference on Aspect-Oriented Software Development (AOSD), Boston, USA (2003)
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)
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)
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)
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)
Svahnberg, M., van Gurp, J., Bosch, J.: A taxonomy of variability realization techniques. Software—Practice and Experience 35, 705–754 (2005)
Yau, S.S., Collofello, J.S.: Design Stability Measures for Software Maintenance. IEEE Transactions on Software Engineering 11(9), 849–856 (1985)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)