Extracting and Evolving Code in Product Lines with Aspect-Oriented Programming

  • Vander Alves
  • Pedro MatosJr.
  • Leonardo Cole
  • Alexandre Vasconcelos
  • Paulo Borba
  • Geber Ramalho

Abstract

For some organizations, the proactive approach to product lines may be inadequate due to prohibitively high investment and risks. As an alternative, the extractive and the reactive approaches are incremental, offering moderate costs and risks, and therefore sometimes may be more appropriate. However, combining these two approaches demands a more detailed process at the implementation level. This paper presents a method and a tool for extracting a product line and evolving it, relying on a strategy that uses refactorings expressed in terms of simpler programming laws. The approach is evaluated with a case study in the domain of games for mobile devices, where variations are handled with aspect-oriented constructs.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Alves, V.: Identifying variations in mobile devices. Journal of Object Technology 4(3), 47–52 (2005)MathSciNetGoogle Scholar
  2. 2.
    Alves, V., et al.: Comparative analysis of porting strategies in j2me games. In: Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM 2005), Budapest, Hungary, pp. 123–132. IEEE Computer Society, Los Alamitos (2005)CrossRefGoogle Scholar
  3. 3.
    Alves, V., Gheyi, R., Massoni, T., Kulesza, U., Borba, P., Lucena, C.: Refactoring product lines. In: GPCE 2006. Proceedings of the 5th International Conference on Generative Programming and Component Engineering, Portland, Oregon, USA, pp. 201–210. ACM Press, New York (2006), http://doi.acm.org/10.1145/1173706.1173737 isbn: 1-59593-237-2CrossRefGoogle Scholar
  4. 4.
    Alves, V., Matos Jr., P., Cole, L., Borba, P., Ramalho, G.: Extracting and evolving mobile games product lines. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 70–81. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Anastasopoulos, M., Muthig, D.: An evaluation of aspect-oriented programming as a product line implementation technology. In: Bosch, J., Krueger, C. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, Springer, Heidelberg (2004)Google Scholar
  6. 6.
    Avgustinov, P., et al.: abc: an extensible aspectj compiler. In: AOSD 2005: Proceedings of the 4th international conference on Aspect-oriented software development, pp. 87–98 (2005)Google Scholar
  7. 7.
    Borba, P., Sampaio, A., Cavalcanti, A., Cornélio, M.: Algebraic reasoning for object-oriented programming. Science of Computer Programming 52, 53–100 (2004)MATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Borba, P., Sampaio, A., Cornélio, M.: A refinement algebra for object-oriented programming. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 457–482. Springer, Heidelberg (2003)Google Scholar
  9. 9.
    Cavalcanti, A., Naumann, D.: A weakest precondition semantics for refinement of object-oriented programs. IEEE Transactions on Software Engineering 26(8), 713–728 (2000)CrossRefGoogle Scholar
  10. 10.
    Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2002)Google Scholar
  11. 11.
    Cole, L., Borba, P.: Deriving refactorings for AspectJ. In: AOSD 2005: Proceedings of the 4th International Conference on Aspect-oriented software development, pp. 123–134. ACM Press, New York (2005)CrossRefGoogle Scholar
  12. 12.
    Cole, L., Borba, P., Mota, A.: Proving aspect-oriented programming laws. In: Foundations of Aspect-Oriented Languages Workshop at the 4th International Conference on Aspect-oriented software development, pp. 1–9. Iowa State University Technical Report (2005)Google Scholar
  13. 13.
    Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  14. 14.
    Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)Google Scholar
  15. 15.
    Oberschulte, C., Hanenberg, S., Unland, R.: Refactoring of aspect-oriented software. In: Net.ObjectDays, Erfurt, Germany (2003)Google Scholar
  16. 16.
    Hannemann, J., Murphy, G.C., Kiczales, G.: Role-based refactoring of crosscutting concerns. In: AOSD 2005: Proceedings of the 4th international conference on Aspect-oriented software development, pp. 135–146. ACM Press, New York (2005)CrossRefGoogle Scholar
  17. 17.
    Hoare, C.A.R., Hayes, I.J., Jifeng, H., Morgan, C.C., Roscoe, A.W., Sanders, J.W., Sorensen, I.H., Spivey, J.M., Sufrin, B.A.: Laws of programming. Commun. ACM 30(8), 672–686 (1987)MATHCrossRefGoogle Scholar
  18. 18.
    Krueger, C.: Easing the transition to software mass customization. In: Proceedings of the 4th International Workshop on Software Product-Family Engineering, Bilbao, Spain, October 2001, pp. 282–293 (2001)Google Scholar
  19. 19.
    Kulesza, U., Alves, V., Garcia, A., de Lucena, C.J.P., Borba, P.: Improving extensibility of object-oriented frameworks with aspect-oriented programming. In: Proceedings of the 9th International Conference on Software Reuse (ICSR-9). LNCS, pp. 231–245. Springer, Heidelberg (2006)Google Scholar
  20. 20.
    Liu, J., Batory, D., Lengauer, C.: Feature oriented refactoring of legacy applications. In: International Conference on Software Engineering 2006 (ICSE 2006), Shanghai, China (2006)Google Scholar
  21. 21.
    Liu, J., Batory, D.S.: Automatic remodularization and optimized synthesis of product-families. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 379–395. Springer, Heidelberg (2004)Google Scholar
  22. 22.
    Lopez-Herrejon, R., Batory, D., Lengauer, C.: A disciplined approach to aspect composition. In: PEPM 2006: Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pp. 68–77. ACM Press, New York (2006)CrossRefGoogle Scholar
  23. 23.
    Monteiro, M.P., Fernandes, J.M.: Towards a catalog of aspect-oriented refactorings. In: AOSD 2005: Proceedings of the 4th international conference on Aspect-oriented software development, pp. 111–122. ACM Press, New York (2005)CrossRefGoogle Scholar
  24. 24.
    Robillard, M.P., Murphy, G.C.: Concern graphs: Finding and describing concerns using structural program dependencies. In: Proceedings of the 24th International Conference on Software Engineering, May 2002, pp. 406–416 (2002)Google Scholar
  25. 25.
    Sullivan, K., Griswold, W.G., Song, Y., Cai, Y., Shonle, M., Tewari, N., Rajan, H.: Information hiding interfaces for aspect-oriented design. In: ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, pp. 166–175. ACM Press, New York (2005)CrossRefGoogle Scholar
  26. 26.
    World Wide Web, Eclipse Projetct (2004), http://www.eclipse.org
  27. 27.
    World Wide Web, ProGuard (2005), http://proguard.sourceforge.net/
  28. 28.
    Zhang, C., Jacobsen, H.-A.: Resolving feature convolution in middleware systems. In: OOPSLA 2004: Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications, pp. 188–205. ACM Press, New York (2004)CrossRefGoogle Scholar
  29. 29.
    Zhang, W., Jarzabek, S.: Reuse without compromising performance: Industrial experience from rpg software product line for mobile devices. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 57–69. Springer, Heidelberg (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Vander Alves
    • 1
  • Pedro MatosJr.
    • 1
  • Leonardo Cole
    • 1
  • Alexandre Vasconcelos
    • 1
  • Paulo Borba
    • 1
  • Geber Ramalho
    • 1
  1. 1.Informatics Center, Federal University of Pernambuco, P.O. Box 7851 - 50.732-970 Recife PEBrazil

Personalised recommendations