Advertisement

An Evaluation of Aspect-Oriented Programming as a Product Line Implementation Technology

  • Michalis Anastasopoulos
  • Dirk Muthig
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3107)

Abstract

A systematic approach for implementing software product lines is more than just a selection of techniques. Its selection should be based on a systematic analysis of technical requirements and constraints, as well as of the types of variabilities, which occur in a particular application domain and are relevant for the planned product line (PL). In addition, each technique should provide a set of guidelines and criteria that support developers in applying the techniques in a systematic and unified way. This paper presents a case study that was performed to evaluate aspect-oriented programming (AOP) as a PL implementation technology. The systematical evaluation is organized along a general evaluation schema for PL implementation technologies.

Keywords

Product Line Unify Modeling Language Software Product Line Implementation Technology Product Line Engineering 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Weiss, D., Lai, C.T.R.: Software Product-Line Engineering. A Family-Based Software Development Process. Addison-Wesley (1999)Google Scholar
  2. 2.
    Homepage of PuLSETM, http://www.iese.fhg.de/pulse/
  3. 3.
    Homepage of the PoLITe project, http://www.polite-project.de/
  4. 4.
    Homepage of the ViSEK project (in German), http://www.visek.de/
  5. 5.
    Muthig, D., Anastasopoulos, M., Laqua, R., Patzke, S.K.T.: Technology Dimensions of Product Line Implementation Approaches State-of-the-art and State-of-the-practice Survey, IESE-Report No. 051.02/E (September 2002)Google Scholar
  6. 6.
    Cointe, P. (ed.): ECOOP 1996. LNCS, vol. 1098. Springer, Heidelberg (1996)Google Scholar
  7. 7.
    Stroustrup, B.: The C++ programming language, 3rd edn. Addison-Wesley, Reading (1997)Google Scholar
  8. 8.
    Basset, P.: Framing Software Reuse. Lessons From the Real World. Yourdon Press (1997)Google Scholar
  9. 9.
    Czarnecki, K., Eisenecker, U.: Generative Programming. Methods, Tools and Applications. Addison-Wesley, Reading (2000)Google Scholar
  10. 10.
    Elrad, T., Filman, R.E., Bader, A.: Aspect-oriented Programming. COMMUNICATIONS OF THE ACM 44(10) (2001)Google Scholar
  11. 11.
    Bachmann, F., Bass, L.: Managing Variability in Software Architectures. In: proceedings of the Symposium on Software Reusability, SSR 2001, Toronto, Ontario, Canada, May 18-20 (2001)Google Scholar
  12. 12.
    McGregor, J.D.: The Evolution of Product Line Assets, Report Number CMU/SEI- 2003-TR-005, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, USA (June 2003)Google Scholar
  13. 13.
    Coplien, J.O.: Multi-Paradigm Design for C++. Addison-Wesley, Reading (1999)Google Scholar
  14. 14.
    Atkinson, C., et al.: Component-based Product Line Engineering with UML. Component Software Series. Addison-Wesley, Reading (2001)Google Scholar
  15. 15.
    Kolb, R., Muthig, D.: Challenges in Testing Software Product Lines. In: CONQUEST 2003. 7th Conference on Quality Engineering in Software Technology - Proceedings (2003), pp. 103–113 (2003)Google Scholar
  16. 16.
    McGregor, J.D.: Testing a Software Product Line, Report Number CMU/SEI-2001-TR- 022, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, USA (December 2001)Google Scholar
  17. 17.
    Hannemann, J., Kiczales, G.: Overcoming the prevalent decomposition of legacy code. In: Proc. of Workshop on Advanced Separation of Concerns at the International Conference on Software Engineering (ICSE), Toronto, Canada (2001)Google Scholar
  18. 18.
    Krueger, C.: Towards a Taxonomy for Software Product Lines. In: Proceedings of the 5th International Workshop on Product Family Engineering, Siena, Italy (November 2003)Google Scholar
  19. 19.
    Fritsch, C., Lehn, A., Strohm, D.T.: Evaluating Variability Implementation Mechanisms. In: Proceedings of International Workshop on Product Line Engineering, Seatle, USA (2002)Google Scholar
  20. 20.
    Czarnecki, K., Eisenecker, U.W.: Generative Programming, Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  21. 21.
    Tarr, P., Ossher, H., Harrison, W., Sutton, S.: N Degrees of Separation: Multi-Dimensional Separation of Concerns. In: ICSE 1999 Conference Proceedings, pp. 107–119 (1999)Google Scholar
  22. 22.
    Kiczales, G., et al.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  23. 23.
    The AspectJ Programming Guide, the AspectJ team, Xerox Corporation, 2002-2003 Palo Alto Research CenterGoogle Scholar
  24. 24.
    Svahnberg, M.: Supporting Software Architecture Evolution. Blekinge Institute of Technology Doctoral Dissertation Series No 2003:03. Google Scholar
  25. 25.
    Homepage of the Eclipse project, http://www.eclipse.org/
  26. 26.
    Homepage of Ant, http://ant.apache.org/
  27. 27.
    Homepage of T9, http://www.t9.com/
  28. 28.
    Jacobson, I.: Use Cases and Aspects–Working Seamlessly Together, IBM Corporation (2003), available at http://www.ivarjacobson.com
  29. 29.
    Batory, D., Liu, J., Sarvela, J.N.: Refinements and Multi-Dimensional Separation of Concerns. In: Proceedings of ESEC/FSE 2003, Helsinki, Finland, September 1-5 (2003)Google Scholar
  30. 30.
    Patzke, T., Muthig, D.: Product Line Implementation with Frame Technology: A Case Study, IESE-Report No. 018.03/E (March 2003)Google Scholar
  31. 31.
    Alexander, R.: The Real Costs of Aspect-Oriented Programming, Quality Time. IEEE Software (November/December 2003)Google Scholar
  32. 32.
    Elrad, T., Moderator, Aksit, M., Kiczales, G., Lieberherr, K., HaroldOssher, Panelists: Discussing Aspects of AOP. Communications of the ACM 44(10) (October 2001)Google Scholar
  33. 33.
    Lopez-Herrejon, R.E., Batory, D.: Using AspectJ to implement product lines, A case study, Technical Reports, Department of Computer Sciences, The University of Texas at Austin (2002), available at http://www.cs.utexas.edu
  34. 34.
    Lopez-Herrejon, R.E., Batory, D.: A Standard Problem for Evaluating Product- Line Methodologies. In: Third International Conference on Generative and Component- Based Software Engineering, Erfurt, Germany (September 2001)Google Scholar
  35. 35.
    Laddad, R.: AspectJ in Action. Manning Publications (June 2003)Google Scholar
  36. 36.
    Krueger, D.C.W.: Software Mass Customization, BigLever Software Inc. (October 2001), http://www.biglever.com
  37. 37.
    Beuche, D., Spinczyk, O.: Variant Management for Embedded Software Product Lines with Pure:Consul and AspectC+. In: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, Anaheim, CA, USA (October 2003)Google Scholar
  38. 38.
    Macke, S.: Generative Programmierung mit AspectJ (in german), Diploma Thesis, Fachhochschule Kaiserslautern, Angewandte Informatik (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Michalis Anastasopoulos
    • 1
  • Dirk Muthig
    • 1
  1. 1.Fraunhofer Institute for Experimental Software Engineering (IESE)KaiserslauternGermany

Personalised recommendations