Systems Evolution and Software Reuse in Object-Oriented Programming and Aspect-Oriented Programming

  • Adam Przybyłek
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6705)

Abstract

Every new programming technique makes claims that software engineers 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 programs, 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.

Keywords

AOP maintainability reusability separation of concerns 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    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
  2. 2.
    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
  3. 3.
    Beltagui, F.: Features and Aspects: Exploring feature-oriented and aspect-oriented programming interactions. Technical Report No: COMP-003-2003, Computing Department, Lancaster University (2003)Google Scholar
  4. 4.
    Bieman, J.M., Kang, B.: Cohesion and reuse in an object-oriented system. SIGSOFT Softw. Eng. Notes 20(SI), 259–262 (1995)CrossRefGoogle Scholar
  5. 5.
    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
  6. 6.
    Breivold, H.P., Crnkovic, I., Land, R., Larsson, S.: Using Dependency Model to Support Software Architecture Evolution. In: 23rd IEEE/ACM International Conference on Automated Software Engineering, L’Aquila, Italy (2008)Google Scholar
  7. 7.
    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
  8. 8.
    Chaumun, M.A., Kabaili, H., Keller, R.K., Lustman, F., Saint-Denis, G.: Design Properties and Object-Oriented Software Changeability. In: 13th Conference on Software Maintenance and Reengineering, Kaiserslautern, Germany (2000)Google Scholar
  9. 9.
    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
  10. 10.
    Figueiredo et al.: Evolving software product lines with aspects: An empirical study on design stability. In: 30th International Conference on Software Engineering (ICSE 2008), Leipzig, Germany (2008)Google Scholar
  11. 11.
    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
  12. 12.
    Frakes, W.: Software Reuse as Industrial Experiment. American Programmer 6(9), 27–33 (1993)Google Scholar
  13. 13.
    Glass, R.L.: Facts and Fallacies of Software Engineering. Addison-Wesley, Reading (2002)Google Scholar
  14. 14.
    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
  15. 15.
    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
  16. 16.
    Hitz, M., Montazeri, B.: Measuring Coupling and Cohesion in Object-Oriented Systems. In: 3rd International Symposium on Applied Corporate Computing, Monterrey, Mexico (1995)Google Scholar
  17. 17.
    Kästner, C., Apel, S., Batory, D.: A Case Study Implementing Features using AspectJ. In: 11th International Conference of Software Product Line Conference (SPLC 2007), Kyoto, Japan (2007)Google Scholar
  18. 18.
    Katz, S.: Diagnosis of harmful aspects using regression verification. In: Workshop on Foundations of Aspect-Oriented Languages at AOSD 2004, Lancaster, UK (2004)Google Scholar
  19. 19.
    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
  20. 20.
    Koppen, C., Störzer, M.: PCDiff: Attacking the fragile pointcut problem. In: European Interactive Workshop on Aspects in Software, Berlin, Germany (2004)Google Scholar
  21. 21.
    Kulesza, U., Sant’Anna, C., Garcia, A., Coelho, R., von Staa, A., Lucena, C.: Quantifying the effects of aspect-oriented programming: A maintenance study. In: 22nd IEEE International Conference on Software Maintenance (ICSM 2006), Dublin, Ireland (2006) Google Scholar
  22. 22.
    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 International Conference on Design of Communication, Myrtle Beach, South Carolina (2006)Google Scholar
  23. 23.
    MacCormack, A., Rusnak, J., Baldwin, C.: The Impact of Component Modularity on Design Evolution: Evidence from the Software Industry. Harvard Business School Technology & Operations Mgt. Unit Research Paper, vol.  08-038 (2007)Google Scholar
  24. 24.
    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 International Workshop on Program Comprehension (IWPC 1998), Ischia, Italy (1998) Google Scholar
  25. 25.
    Mens, T., Mens, K., Tourwé, T.: Software Evolution and Aspect-Oriented Software Development, a cross-fertilisation. In: ERCIM special issue on Automated Software Engineering, Vienna, Austria (2004)Google Scholar
  26. 26.
    Mortensen, M., Ghosh, S., Bieman, J.: Aspect-Oriented Refactoring of Legacy Applications: An Evaluation. IEEE Trans. Software Engineering 99 (2010)Google Scholar
  27. 27.
    Mortensen, M.: Improving Software Maintainability through Aspectualization. PhD thesis, Department of Computer Science, Colorado State University, CO (2009)Google Scholar
  28. 28.
    Munoz, F., Baudry, B., Barais, O.: Improving maintenance in AOP through an interaction specification framework. In: IEEE Intl. Conf. on Software Maintenance, Beijing, China (2008)Google Scholar
  29. 29.
    Perepletchikov, M., Ryan, C., Frampton, K.: Cohesion Metrics for Predicting Maintainability of Service-Oriented Software. In: 7th International Conference on Quality Software (QSIC 2007), Portland, Oregon (2007)Google Scholar
  30. 30.
    Przybyłek, A.: Where the truth lies: AOP and its impact on software modularity. In: Giannakopoulou, D., Orejas, F. (eds.) FASE 2011. LNCS, vol. 6603, pp. 447–461. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  31. 31.
    Robillard, M.P., Weigand-Warr, F.: ConcernMapper: simple view-based separation of scattered concerns. In: Workshop on Eclipse technology eXchange at OOPSLA 2005, San Diego, CA (2005)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 International Conference on Software Engineering (ICSE 2009), Los Angeles, California (1999)Google Scholar
  37. 37.
    Taveira, J., Oliveira, H., Castor, F., Soares, S.: On Inter-Application Reuse of Exception Handling Aspects. In: Workshop on Empirical Evaluation of Software Composition Techniques at AOSD 2010, Rennes, France (2010)Google Scholar
  38. 38.
    Taveira, J.C., et al.: Assessing Intra-Application Exception Handling Reuse with Aspects. In: 23rd Brazilian Symposium on Software Engineering (SBES 2009), Fortaleza, Brazil (2009)Google Scholar
  39. 39.
    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
  40. 40.
    Zhang, S., Gu, Z., Lin, Y., Zhao, J.: Change impact analysis for AspectJ programs. In: 24th IEEE International Conference on Software Maintenance, Beijing, China (2008)Google Scholar
  41. 41.
    Zhao, J.: Measuring Coupling in Aspect-Oriented Systems. In: 10th International Software Metrics Symposium, Chicago, Illinois (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Adam Przybyłek
    • 1
  1. 1.University of GdanskSopotPoland

Personalised recommendations