ABSTRACT
Software product lines (SPLs) enable modular, large-scale reuse through a software architecture addressing multiple core and varying features. To reap the benefits of SPLs, their designs need to be stable. Design stability encompasses the sustenance of the product line's modularity properties in the presence of changes to both the core and varying features. It is usually assumed that aspect-oriented programming promotes better modularity and changeability of product lines than conventional variability mechanisms, such as conditional compilation. However, there is no empirical evidence on its efficacy to prolong design stability of SPLs through realistic development scenarios. This paper reports a quantitative study that evolves two SPLs to assess various design stability facets of their aspect-oriented implementations. Our investigation focused upon a multi-perspective analysis of the evolving product lines in terms of modularity, change propagation, and feature dependency. We have identified a number of scenarios which positively or negatively affect the architecture stability of aspectual SPLs.
- Alves, V. et al. Extracting and Evolving code in Product Lines with Aspect-Oriented Programming. Trans. on AOSD, pp. 118--144, 2007. Google ScholarDigital Library
- Alves, V. Implementing Software Product Line Adoption Strategies, Ph.D. thesis. Federal University of Pernambuco, March 2007.Google Scholar
- Apel, S. et al. Aspectual Mixin Layers: Aspects and Features in Concert. Proceedings of ICSE'06, Shanghai, China, 2006. Google ScholarDigital Library
- Apel, S. and Batory, D. When to Use Features and Aspects? A Case Study. Proceedings of GPCE, Portland, Oregon, 2006. Google ScholarDigital Library
- Buschmann, F. et al. Pattern-Oriented Software Architecture: a System of Patterns. John Wiley & Sons, Inc. 1996. Google ScholarDigital Library
- Cacho, N. et al. EJFlow: Taming Exceptional Control Flow in Aspect-Oriented Programming. Proc. of AOSD.08, Belgium, 2008. Google ScholarDigital Library
- Cacho, N. et al. Composing Design Patterns: A Scalability Study of Aspect-Oriented Programming. Proc. of AOSD, Germany, 2006. Google ScholarDigital Library
- Chidamber, S. and Kemerer, C. A Metrics Suite for Object Oriented Design. IEEE Trans. on Soft. Eng. (TSE), pp. 476--493, 1994. Google ScholarDigital Library
- Clements, P. and Northrop, L. Software Product Lines: Practices and Patterns. Addison-Wesley, 2002.Google ScholarDigital Library
- Evolving Software Product Lines with Aspects. http://www.lancs.ac.uk/postgrad/figueire/spl/icse08/Google Scholar
- Figueiredo, E. et al. On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework. Proc. of European Conf. on Soft. Maint. and Reeng. (CSMR). Athens, 2008. Google ScholarDigital Library
- Figueiredo, E., Garcia, A., and Lucena, C. AJATO: An AspectJ Assessment Tool. Proceedings of ECOOP (demo), Nantes, 2006.Google Scholar
- Filho, F. et al. Exceptions and Aspects: The Devil is in the Details. Proc. of Int'l Symp. on Foundations of Software Eng. (FSE), 2006. Google ScholarDigital Library
- Garcia, A. et al. Modularizing Design Patterns with Aspects: A Quantitative Study. Transactions on AOSD, 1, pp. 36--74, 2006. Google ScholarDigital Library
- Greenwood, P. et al. On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study. Proc. of ECOOP, Berlin, 2007. Google ScholarDigital Library
- Kästner, C., Apel, S. and Batory, D. A Case Study Implementing Features using AspectJ. Proc. of Int'l SPL Conference (SPLC), 2007. Google ScholarDigital Library
- Kiczales, G. et al. Aspect-Oriented Programming. Proc. of ECOOP, LNCS 1241, Springer, pp. 220--242, 1997.Google Scholar
- Krueger, C. Easing the Transition to Software Mass Customization. Proc. of 4th Int'l workshop on Software Product Family Engineering, pp. 282--293, Bilbao, 2001. Google ScholarDigital Library
- Kulesza, U. et al. Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming. Proceedings of Int'l Conference on Software Reuse (ICSR), Torino, 2006. Google ScholarDigital Library
- Meyer, B. Object-Oriented Software Construction, 1st ed. Prentice-Hall, Englewood Cliffs, 1988. Google ScholarDigital Library
- Mezini, M. and Ostermann, K. Conquering Aspects with Caesar. Proc. of AOSD, pp. 90--99, Boston, USA, 2003. Google ScholarDigital Library
- Mezini, M. and Ostermann, K. Variability Management with Feature-Oriented Programming and Aspects. Proceedings of FSE, pp.127--136, 2004. Google ScholarDigital Library
- Pohl, K., Böckle, G., and Linden, F. J. Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag New York, Inc, 2005. Google ScholarDigital Library
- Robillard, M. and Murphy, G. Representing concerns in source code. Trans. on Software Eng. and Methodology (TOSEM), 16(1), 2007. Google ScholarDigital Library
- Sant'Anna, C. et al. On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. Proc. of Brazilian Symposium. on Software Engineering (SBES), pp. 19--34, 2003.Google Scholar
- Smaragdakis, Y. and Batory, D. Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM, 11(2), 2002. Google ScholarDigital Library
- The AspectJ Project. http://eclipse.org/aspectj/.Google Scholar
- Yau, S. and Collofello, S. Design Stability Measures for Software Maintenance. Trans. on Softw. Engineering, 11(9), p. 849--856, 1985. Google ScholarDigital Library
- Young, T. Using AspectJ to Build a Software Product Line for Mobile Devices. MSc dissertation, Univ. of British Columbia, 2005.Google Scholar
- Young, T. and Murphy, G. Using AspectJ to Build a Product Line for Mobile Devices. Proceedings of AOSD (demo), Chicago, 2005.Google Scholar
Index Terms
- Evolving software product lines with aspects: an empirical study on design stability
Recommendations
A quantitative assessment of aspectual feature modules for evolving software product lines
SBLP'12: Proceedings of the 16th Brazilian conference on Programming LanguagesFeature-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 ...
A quantitative and qualitative assessment of aspectual feature modules for evolving software product lines
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 ...
Refactoring delta-oriented software product lines
AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software developmentDelta-oriented programming (DOP) is an implementation approach to develop software product lines (SPL). Delta-oriented SPLs evolve over time due to new or changed requirements and need to be maintained to retain their value. Refactorings have been ...
Comments