Systems Evolution and Software Reuse in OOP and AOP

  • Adam Przybyłek
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 230)


New programming techniques make claims that software engineers often want to hear. Such is the case with aspect-oriented programming (AOP). This paper describes a quasi-controlled experiment which compares the evolution of two functionally equivalent systems, developed in two different paradigms. The aim of the study is to explore the claims that software developed with aspect-oriented languages is easier to maintain and reuse than this developed with object-oriented languages. We have found no evidence to support these claims.


Aspect-oriented programming Separation of concerns Software evolvability Software reusability 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Andrews, A., Ghosh, S., Man Choi, E.: A Model for Understanding Software Components. In: IEEE Inter. Conf. on Software Maintenance (ICSM 2002), Montreal, Canada (2002)Google Scholar
  2. 2.
    Bartsch, M., Harrison, R.: An exploratory study of the effect of aspect-oriented programming on maintainability. Software Quality Journal 16(1), 23–44 (2008)CrossRefGoogle Scholar
  3. 3.
    Basili, V.R., Caldiera, G., Rombach, H.D.: Goal Question Metric Approach. In: Encyclopedia of Software Engineering, pp. 528–532. John Wiley & Sons, Inc., Chichester (1994)Google Scholar
  4. 4.
    Beltagui, F.: Features and Aspects: Exploring feature-oriented and aspect-oriented programming interactions. Tech. Report No: COMP-003-2003, Lancaster University (2003) Google Scholar
  5. 5.
    Bieman, J.M., Kang, B.: Cohesion and reuse in an object-oriented system. SIGSOFT Softw. Eng. Notes 20(SI), 259–262 (1995)CrossRefGoogle Scholar
  6. 6.
    Bowen, T.P., Post, J.V., Tai, J., Presson, P.E., Schmidt, R.L.: Software Quality Measurement for Distributed Systems. Guidebook for Software Quality Measurement. Technical Report RADC-TR-83-175, vol. 2 (July 1983) Google Scholar
  7. 7.
    Breivold, H.P., Crnkovic, I., Land, R., Larsson, S.: Using Dependency Model to Support Software Architecture Evolution. In: 23rd IEEE/ACM Inter. Conf. on Automated Software Engineering, L’Aquila, Italy (2008) Google Scholar
  8. 8.
    Brichau, J., De Meuter, W., De Volder, K.: Jumping Aspects. In: Workshop on Aspects and Dimensions of Concerns at ECOOP 2000, Sophia Antipolis and Cannes, France (2000) Google Scholar
  9. 9.
    Chaumun, M.A., Kabaili, H., Keller, R.K., Lustman, F., Saint-Denis, G.: Design Properties and Object-Oriented Software Changeability. In: 13th Conf. on Software Maintenance and Reengineering, Kaiserslautern, Germany (2000) Google Scholar
  10. 10.
    Coady, Y., Kiczales, G.: Back to the future: a retroactive study of aspect evolution in operating system code. In: 2nd Inter. Conf. on Aspect-oriented software development (AOSD 2003), Boston, Massachusetts (2003) Google Scholar
  11. 11.
    Coleman, D., Ash, D., Lowther, B., Oman, P.: Using metrics to evaluate software system maintainability. IEEE Computer 27(8), 44–49 (1994)CrossRefGoogle Scholar
  12. 12.
    Figueiredo, et al.: Evolving software product lines with aspects: An empirical study on design stability. In: 30th Inter. Conf. on Software Engineering, Leipzig, Germany (2008) Google Scholar
  13. 13.
    Fjeldstad, R., Hamlen, W.: Application program maintenance-report to to our respondents. In: Parikh, G., Zvegintzov, N. (eds.) Tutorial on Software Maintenance, pp. 13–27. IEEE Computer Soc. Press, Los Alamitos (1983)Google Scholar
  14. 14.
    Glass, R.L.: Facts and Fallacies of Software Engineering. Addison Wesley, Reading (2002)Google Scholar
  15. 15.
    Griswold, W.G., Sullivan, K., Song, Y., Shonle, M., Tewari, N., Cai, Y., Rajan, H.: Modular Software Design with Crosscutting Interfaces. IEEE Software 23(1), 51–60 (2006)CrossRefGoogle Scholar
  16. 16.
    Hanenberg, S., Unland, R.: Using and Reusing Aspects in AspectJ. In: Workshop on Advanced Separation of Concerns in Object-Oriented Systems at OOPSLA 2001, Tampa Bay, Florida (2001) Google Scholar
  17. 17.
    Hatton, L.: Does OO sync with how we think? IEEE Software 15(3), 46–54 (1998)CrossRefGoogle Scholar
  18. 18.
    Hitz, M., Montazeri, B.: Measuring Coupling and Cohesion in Object-Oriented Systems. In: 3rd Inter. Symposium on Applied Corporate Computing, Monterrey, Mexico (1995) Google Scholar
  19. 19.
    IEEE Std 610.12-1990 (R2002), IEEE Standard Glossary of Software Engineering Terminology: IEEE (1990) Google Scholar
  20. 20.
    ISO/IEC 14764-1999, Software Engineering-Software Maintenance: ISO and IEC (1999) Google Scholar
  21. 21.
    Kästner, C., Apel, S., Batory, D.: A Case Study Implementing Features using AspectJ. In: 11th Inter. Conf. of Software Product Line Conf. (SPLC 2007), Kyoto, Japan (2007) Google Scholar
  22. 22.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Cristina Lopes, C., Loingtier, J., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Auletta, V. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  23. 23.
    Koppen, C., Störzer, M.: PCDiff: Attacking the fragile pointcut problem. In: European Interactive Workshop on Aspects in Software, Berlin, Germany (2004) Google Scholar
  24. 24.
    Lemos, O.A., Junqueira, D.C., Silva, M.A., Fortes, R.P., Stamey, J.: Using aspect-oriented PHP to implement crosscutting concerns in a collaborative web system. In: 24th Annual ACM Inter. Conf. on Design of Communication, Myrtle Beach, South Carolina (2006) Google Scholar
  25. 25.
    Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y., Gansner, E.R.: Using Automatic Clustering to Produce High-Level System Organizations of Source Code. In: 6th Inter. Workshop on Program Comprehension (IWPC 1998), Ischia, Italy (1998) Google Scholar
  26. 26.
    McKee, J.: Maintenance as a function of design. In: 1984 National Computer Conf. AFIPS, vol. 53, pp. 187–193. AFIPS Press, Reston (1984)Google Scholar
  27. 27.
    Mens, T., Mens, K., Tourwé, T.: Software Evolution and Aspect-Oriented Software Development, a cross-fertilisation. ERCIM special issue on Automated Software Engineering, Vienna, Austria (2004) Google Scholar
  28. 28.
    Mortensen, M.: Improving Software Maintainability through Aspectualization. PhD thesis, Department of Computer Science, Colorado State University (2009) Google Scholar
  29. 29.
    Perepletchikov, M., Ryan, C., Frampton, K.: Cohesion Metrics for Predicting Maintainability of Service-Oriented Software. In: 7th Inter. Conf. on Quality Software (QSIC 2007), Portland, Oregon (2007) Google Scholar
  30. 30.
    Pigoski, T.M.: Practical Software Maintenance. Wiley Computer Publishing, Chichester (1997)Google Scholar
  31. 31.
    Przybylek, A.: An empirical assessment of the impact of AOP on software modularity. In: 5th Inter. Conf. on Evaluation of Novel Approaches to Software Engineering (ENASE 2010), Athens, Greece (2010) Google Scholar
  32. 32.
    Ryder, B.G., Tip, F.: Change impact analysis for object-oriented programs. In: 3rd ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, Snowbird, Utah (2001) Google Scholar
  33. 33.
    Sant’Anna, C., Garcia, A., Chavez, C. Lucena, C., von Staa, A.: On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. In: 17th Brazilian Symposium on Software Engineering (SEES 2003), Manaus, Brazil (2003) Google Scholar
  34. 34.
    Standish, T.: An essay on software reuse. IEEE Transactions on Software Engineering 10(5), 494–497 (1984)CrossRefGoogle Scholar
  35. 35.
    Storey, M.D., Fracchia, F.D., Müller, H.A.: Cognitive design elements to support the construction of a mental model during software exploration. J. Syst. Softw. 44(3), 171–185 (1999)CrossRefGoogle Scholar
  36. 36.
    Tarr, P., Ossher, H., Harrison, W., Sutton, S.M.: N degrees of separation: multi-dimensional separation of concerns. In: 21st Inter. Conf. on Software Engineering (ICSE 2009), Los Angeles, California (1999) Google Scholar
  37. 37.
    Tourwé, T., Brichau, J., Gybels, K.: On the Existence of the AOSD-Evolution Paradox. In: AOSD 2003 Workshop on Software-engineering Properties of Languages for Aspect Technologies, Boston, Massachusetts (2003) Google Scholar
  38. 38.
    Zhang, S., Gu, Z., Lin, Y., Zhao, J.: Change impact analysis for AspectJ programs. In: 24th IEEE Inter. Conf. on Software Maintenance, Beijing, China (2008) Google Scholar
  39. 39.
    Zhao, J.: Measuring Coupling in Aspect-Oriented Systems. In: 10th Inter. Software Metrics Symposium, Chicago, Illinois (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Adam Przybyłek
    • 1
  1. 1.Department of Business InformaticsUniversity of GdańskSopotPoland

Personalised recommendations