Nothing Special   »   [go: up one dir, main page]

skip to main content
article

An empirical study on the impact of AspectJ on software evolvability

Published: 01 August 2018 Publication History

Abstract

Since its inception in 1996, aspect-oriented programming (AOP) has been believed to reduce the effort required to maintain software systems by replacing cross-cutting code with aspects. However, little convincing empirical evidence exists to support this claim, while several studies suggest that AOP brings new obstacles to maintainability. This paper discusses two controlled experiments conducted to evaluate the impact of AspectJ (the most mature and popular aspect-oriented programming language) versus Java on software evolvability. We consider evolvability as the ease with which a software system can be updated to fulfill new requirements. Since a minor language was compared to the mainstream, the experiments were designed so as to anticipate that the participants were much more experienced in one of the treatments. The first experiment was performed on 35 student subjects who were asked to comprehend either Java or AspectJ implementation of the same system, and perform the corresponding comprehension tasks. Participants of both groups achieved a high rate of correct answers without a statistically significant difference between the groups. Nevertheless, the Java group significantly outperformed the AspectJ group with respect to the average completion time. In the second experiment, 24 student subjects were asked to implement (in a non-invasive way) two extension scenarios to the system that they had already known. Each subject evolved either the Java version using Java or the AspectJ version using AspectJ. We found out that a typical AspectJ programmer needs significantly fewer atomic changes to implement the change scenarios than a typical Java programmer, but we did not observe a significant difference in completion time. The overall result indicates that AspectJ has a different effect on two sub-characteristics of the evolvability: understandability and changeability. While AspectJ decreases the former, it improves one aspect of the latter.

References

[1]
Arnaoudova V, Eshkevari LM, Sharifabadi ES, Constantinides C (2008) Overcoming comprehension barriers in the AspectJ programming language. J Object Technol 7(6):121-142.
[2]
Bartsch M, Harrison R (2008) An exploratory study of the effect of aspect-oriented programming on maintainability. Softw Qual J 16(1):23-44.
[3]
Basili VR, Caldiera G, Rombach HD (1994) Goal Question Metric Approach. In: Encyclopedia of Software Engineering. Wiley, Chichester, pp 528-532.
[4]
Benestad H, Anda B, Arisholm E (2006) Assessing Software Product Maintainability Based on Class-Level Structural Measures. In: International Conference on Product Focused Software Process Improvement, Amsterdam.
[5]
Bezdek JC (1993) Fuzzy models - what are they, and why. IEEE Trans Fuzzy Syst 1(1):1-6.
[6]
Boehm B (1987) Software engineering. IEEE Trans Comput 25(12):1226-1242.
[7]
Bordens K, Abbott B (2011) Research design and methods: a process approach. McGraw-Hill, New York.
[8]
Briand LC, Wüst J, Lounis H (1999) Using coupling measurement for impact analysis in object-oriented systems. In: IEEE Int'l Conf. On software maintenance (ICSM'99), Oxford.
[9]
Briand LC, Wüst J, Lounis H (2001) Replicated case studies for investigating quality factors in object-oriented designs. Empir Softw Eng 6(1):11-58.
[10]
Brito I, Moreira A (2004) Integrating the NFR framework in a RE model. In: 3rd workshop on early aspects at AOSD'04, Lancaster.
[11]
Burrows R, Taïani F, Garcia A, Ferrari FC (2011) Reasoning about faults in aspect-oriented programs: a metrics-based evaluation. In: 19th international conference on program comprehension (ICPC'11), Kingston.
[12]
Chapin N, Hale J, Khan K, Ramil J, Tan W-G (2001) Types of software evolution and software maintenance. J Softw Maint Evol Res Pract 13(1):3-30.
[13]
Charnessa G, Gneezyb U, Kuhnc M (2011) Experimental methods: Between-subject and within-subject design. J Econ Behav Organ 81(1):1-8.
[14]
Chatzigeorgiou A, Stiakakis E (2013) Combining metrics for software evolution assessment by means of data envelopment analysis. J Softw Evol and Proc 25(3):303-324.
[15]
Chavez CH et al (2011) The AOSD research Community in Brazil and its crosscutting impact. In: 25th Brazilian symposium on software engineering, Sao Paulo.
[16]
Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476-493.
[17]
Chikofsky EJ, Cross JH (1992) II. Reverse Engineering and Design Recovery: ATaxonomy. In: Arnold RS (ed) Software Reengineering. IEEE Computer Society Press, Washington DC, pp 54-58.
[18]
Coad P, Yourdon E (1991) Object-oriented analysis. Prentice Hall, Upper Saddle River.
[19]
Coady Y, Kiczales G (2003) Back to the future: a retroactive study of aspect evolution in operating system code. In: 2nd inter. Conf. On aspect-oriented software development (AOSD'03), Boston.
[20]
Dantas DS, Walker D (2006) Harmless advice. In: conference record of the 33rd ACM SIGPLAN-SIGACT symposium on principles of programming languages. ACM, pp. 383-396, New York.
[21]
Dijkstra EW (1976) A discipline of programming. Prentice Hall, Englewood Cliffs.
[22]
Easterbrook SM, Singer J, Storey MA, Damian D (2008) Selecting empirical methods for software engineering research. In: Shull F, Singer J, Sjøberg D (eds) Guide to advanced empirical software engineering, pp. 285-311. Springer, Berlin.
[23]
Fenton N (2001) Conducting and presenting empirical software engineering. Empirical Software Engineering 6(3):195-200.
[24]
Figueiredo E et al (2008) Evolving software product lines with aspects: An empirical study on design stability. In: 30th Intl. Conf. on Software Engineering, Leipzig.
[25]
Filman RE (2001) What is Aspect-Oriented Programming, revisited. In: Workshop on Multi-Dimensional Separation of Concerns at ECOOP'01, Budapest.
[26]
Fjeldstad R, Hamlen W (1983) Application program maintenance-report to to our respondents. In: Parikh G, Zvegintzov N (eds) Tutorial on Software Maintenance. IEEE Computer Soc. Press, Washington DC, pp 13-27.
[27]
Greenwood P, Bartolomei TT, Figueiredo E, Dósea M, Garcia AF, Cacho N, Sant'Anna C, Soares S, Borba P, Kulesza U, Rashid A (2007) On the impact of aspectual decompositions on design stability: an empirical study. In: 21st European conference on object-oriented programming (ECOOP'07), Berlin.
[28]
Griswold WG, Sullivan K, Song Y, Shonle M, Tewari N, Cai Y, Rajan H (2006) Modular software design with crosscutting interfaces. IEEE Softw 23(1):51-60.
[29]
Hanenberg S, Endrikat S (2013) Aspect-orientation is a rewarding investment into future code changes - as long as the aspects hardly change. Inf Softw Technol 55(4):722-740.
[30]
Hanenberg S, Unland R (2001) Using and Reusing Aspects in AspectJ. In:Workshop on Advanced Separation of Concerns in Object-Oriented Systems at OOPSLA'01, Tampa Bay.
[31]
Hanenberg S, Kleinschmager S, Josupeit-Walter M (2009) Does aspect-oriented programming increase the development speed for crosscutting code? An empirical study. In: 3rd International Symposium on Empirical Software Engineering and Measurement, Lake Buena Vista.
[32]
Harrison W (2000) N=1: An Alternative for Software Engineering Research? In: BBS Workshop at ICSE'00, Limerick.
[33]
Hitz M, Montazeri B (1995) Measuring Coupling and Cohesion in Object-Oriented Systems. In: 3rd International Symposium on Applied Corporate Computing, Monterrey.
[34]
Hoffman K, Eugster P (2009) Cooperative aspect-oriented programming. Sci Comput Program 74(5-6):333-354.
[35]
Hohenstein U, Jaeger MC (2011) Tackling the challenges of integrating 3rd party software using AspectJ. In: Katz S, Mezini M, Schwanninger C, Joosen W (eds) Transactions on aspect-oriented software development VIII. Lecture Notes in Computer Science, vol 6580. Springer, Heidelberg.
[36]
Höst M, Regnell B, Wohlin C (2000) Using students as subjects. A comparative study of students and professionals in lead-time impact assessment. Empir Softw Eng 5(3):201-214.
[37]
ISO/IEC 14764 (2006) Software engineering - software life cycle processes - maintenance. IEEE Std 14764- 2006, Geneva.
[38]
ISO/IEC 9126-1 (2001) Software engineering. Product quality. Part 1: quality model.
[39]
Juristo N, Moreno AM (2001) Basics of software engineering experimentation. Springer, Berlin.
[40]
Kästner C, Apel S, Batory D (2007) A case study implementing features using AspectJ. In: 11th international conference of software product line conference, Kyoto.
[41]
Katic M, Boti?ki I, Fertalj K (2013) Impact of aspect-oriented programming on the quality of novices' programs: a comparative study. J Info Org Sci 37(1):45-61.
[42]
Kellens A, Mens K, Brichau J, Gybels K (2006) Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts. In: 20th European Conference on Object-Oriented Programming (ECOOP'06), Nantes.
[43]
Kiczales G, Lamping J, Mendhekar A, Maeda C, Cristina Lopes C, Loingtier J, Irwin J (1997) Aspect-oriented programming. In: LNCS, vol 1241. Springer, Heidelberg, pp 220-242.
[44]
Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold WG (2001) An Overview of AspectJ. In: 15th European Conference on Object-Oriented Programming (ECOOP'01), Budapest.
[45]
Kienzle J, Guerraoui R (2002) AOP: Does It Make Sense? The Case of Concurrency and Failures. In: 16th European Conference on Object-Oriented Programming (ECOOP'02), Málaga.
[46]
Kitchenham BA, Pfleeger SL, Pickard LM, Jones PW, Hoaglin DC, El-Emam K, Rosenberg J (2002) Preliminary guidelines for empirical research in software engineering. IEEE Trans Softw Eng 28(8):721-734.
[47]
Kniesel G, Costanza P, Austermann M (2001) Independent Extensibility for Aspect-Oriented Systems. In: Workshop on Advanced Separation of Concerns at ECOOP'01, Budapest.
[48]
Koppen C, Störzer M (2004) PCDiff: attacking the fragile pointcut problem. In: European interactive workshop on aspects in software, Berlin.
[49]
Kouskouras KG, Chatzigeorgiou A, Stephanides G (2008) Facilitating software extension with design patterns and aspect-oriented programming. J Syst Softw 81(10):1725-1737.
[50]
Kulesza U, Sant'Anna C, Garcia A, Coelho R, von Staa A, Lucena C (2006) Quantifying the effects of aspect-oriented programming: A maintenance study. In: 22nd IEEE Intl. Conf. on Software Maintenance, Dublin.
[51]
Kvale AA, Li J, Conradi R (2005) A case study on building COTS-based system using aspect-oriented programming. In: 20th ACM symposium on Applied computing (SAC'05), Santa Fe.
[52]
Lehman MM, Belady LA (1976) A model of large program development. IBM Syst J 15(3):225-252.
[53]
Lieberherr K, Holland I (1989) Assuring good style for object-oriented programs. IEEE Softw 6:38-48.
[54]
Lobato C, Garcia A, Kulesza U, von Staa A, Lucena C (2008) Evolving and composing frameworks with aspects: the MobiGrid case. In: 7th international conference on composition-based software systems, Madrid.
[55]
Lopez-Herrejon R, Batory D, Lengauer CH (2006) A disciplined approach to aspect composition. In: ACM SIGPLAN 2006 workshop on partial evaluation and program manipulation (PEPM'06). In: Charleston.
[56]
Mancoridis S, Mitchell BS, Rorres C, Chen Y, Gansner ER (1998) Using Automatic Clustering to Produce High-Level System Organizations of Source Code. In: 6th international Workshop on Program Comprehension, Ischia.
[57]
Margaret-Anne D, Storey F, Fracchia D, Muller HA (1999) Cognitive design elements to support the construction of a mental model during software exploration. J Softw Syst 44:171-185.
[58]
Marot A (2011) Preserving the separation of concerns while composing aspects with reflective AOP. Phd thesis. Universite Libre De Bruxelles, October, p 2011.
[59]
Mauch JE, Park N (2003) Guide to the successful thesis and dissertation, 5th edn. Marcel Dekker, Inc., New York.
[60]
McEachen N, Alexander R (2005) Distributing classes with woven concerns: an exploration of potential fault scenarios. In: 4th international conference on aspect-oriented software development (AOSD'05), Chicago.
[61]
Mens K, Tourwé T (2008) Evolution issues in aspect-oriented programming. In: Mens T, Demeyer S (eds) Software evolution, pp. 203-232. Springer, Heidelberg.
[62]
Mens T, Mens K, Tourwé T (2004) Software evolution and aspect-oriented software development, a cross-fertilisation. ERCIM special issue on Automated Software Engineering, Vienna.
[63]
Meyer B (1989) Object-oriented software construction. Prentice Hall, Upper Saddle River.
[64]
Mguni K, Ayalew Y (2013) An Assessment of Maintainability of an Aspect-Oriented System. In: ISRN Software Engineering, vol 2013 pp 11.
[65]
Mortensen M (2009) Improving software maintainability through Aspectualization. PhD thesis, Department of Computer Science, Colorado State University, Co.
[66]
Mortensen M, Ghosh S, Bieman J (2012) Aspect-oriented refactoring of legacy applications: an evaluation. IEEE Trans Softw Eng 38(1):118-140.
[67]
Munoz F, Baudry B, Barais O (2008) Improving maintenance in AOP through an interaction specification framework. In: IEEE Intl. Conf. On software maintenance, Beijing.
[68]
Murphy GC, Walker RJ, Banlassad ELA (1999) Evaluating emerging software development technologies: lessons learned from assessing aspect-oriented programming. IEEE Trans Softw Eng 25(4):438-455.
[69]
Ossher H, Tarr P (2001) Hyper/J: multi-dimensional separation of concerns for java. In: 23rd international conference on software engineering (ICSE'01), Toronto.
[70]
Page-Jones M (1980) The practical guide to structured systems design. Yourdon Press, New York.
[71]
Parnas DL (1972) On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12):1053-1058 ACM Press, New York.
[72]
Pereira RHR, García Perez-Schofield JB, Ortin F (2017) Modularizing application and database evolution - an aspect-oriented framework for orthogonal persistence. Softw Pract Exper 47(2):193-221.
[73]
Ponisio ML (2006) Exploiting client usage to manage program modularity. University of Berne, PhD thesis.
[74]
Przybylek A (2010) What is wrong with AOP?. In: 5th International Conference on Software and Data Technologies, Athens.
[75]
Przybylek A (2011) Where the truth lies: AOP and its impact on software modularity. In: Giannakopoulou D, Orejas F (eds) ETAPS 2011. LNCS, vol. 6603. Springer, Heidelberg, pp 447-461.
[76]
Przybylek A (2013) Quasi-controlled Experimentations on the Impact of AOP on Software Comprehensibility. In: 17th European Conference on Software Maintenance and Reengineering, Genova.
[77]
Rashid A, Moreira A (2006) Domain models are not aspect free. In: 9th International Conference on Model Driven Engineering Languages and Systems (MoDELS'06), Genova.
[78]
Rinard M, Salcianu A, Bugrara S (2004) A classification system and analysis for Aspect-Oriented programs. In: 12th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Newport Beach.
[79]
Ryder BG, Tip F (2001) Change impact analysis for object-oriented programs. In: 3rd ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, Snowbird.
[80]
Sant'Anna C, Garcia A, Chavez C, Lucena C, von Staa A (2003) On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. In: 17th Brazilian Symposium on Software Engineering, Manaus.
[81]
Santos A, Alves P, Figueiredo E, Ferrari F (2016) Avoiding code pitfalls in aspect-oriented programming. Sci Comput Program 119:31-50.
[82]
Scholtz J, Wiedenbeck S (1992) The use of unfamiliar programming languages by experienced programmers. In: 7th Conference of the British Computer Society Human Computer Interaction Specialist Group - People and Computers VII, York.
[83]
Serebrenik A, van den Brand M (2010) Theil index for aggregation of software metrics values. In: 26th IEEE International Conference on Software Maintenance (ICSM'2010). Timisoara.
[84]
Shen H, Zhang S, Zhao J (2008) An Empirical Study of Maintainability in Aspect-Oriented System Evolution Using Coupling Metrics. In: 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering, Nanjing.
[85]
Standish T (1984) An essay on software reuse. IEEE trans. On. Softw Eng 10(5):494-497.
[86]
Steimann F (2006) The paradoxical success of aspect-oriented programming. SIGPLAN Not 41(10):481-497.
[87]
Steimann F, Pawlitzki T, Apel S, Kästner CH (2010) Types and modularity for implicit invocation with implicit announcement. ACM Trans Softw Eng Methodol 20(1):43.
[88]
Storey MD, Fracchia FD, Müller HA (1999) Cognitive design elements to support the construction of a mental model during software exploration. J Syst Softw 44(3):171-185.
[89]
Tonella P, Ceccato M (2005) Refactoring the aspectizable interfaces: an empirical assessment. IEEE Trans Softw Eng 31(10):819-832.
[90]
Torkar R, Feldt R, Oliveira Neto FG, Gren L (2017) Statistical and practical significance of empirical software engineering research: A maturity model. In: arXiv:1706.00933v3 [cs.SE].
[91]
Tourwé T, Brichau J, Gybels K (2003) On the existence of the AOSD-evolution paradox. In: AOSD 2003 workshop on software-engineering properties of languages for aspect technologies, Boston.
[92]
Tsang SL, Clarke S, Baniassad EL (2004) An evaluation of aspect-oriented programming for java-based real-time systems development. In: 7th IEEE International Symposium on Object-oriented Real-time distributed Computing (ISORC'04), Vienna.
[93]
Walker R, Baniassad E, Murphy G (1999) An initial assessment of aspect-oriented programming. In: 21st international conference on software engineering (ICSE), Los Angeles.
[94]
Yourdon E, Constantine LL (1979) Structured design: fundamentals of a discipline of computer program and system design. Prentice-Hall, New York.
[95]
Zelkowitz MV, Wallace DR (1998) Experimental models for validating technology. Computer 31(5):23-31.

Cited By

View all
  • (2024)Overhead Comparison of Instrumentation FrameworksCompanion of the 15th ACM/SPEC International Conference on Performance Engineering10.1145/3629527.3652269(249-256)Online publication date: 7-May-2024
  • (2022)Software Product Maintenance: A Case StudyComputer Information Systems and Industrial Management10.1007/978-3-031-10539-5_6(81-92)Online publication date: 15-Jul-2022
  • (2019)Are monitoring crosscutting concerns really refactorable into aspects?Proceedings of the 3rd International Workshop on Refactoring10.1109/IWoR.2019.00018(59-62)Online publication date: 28-May-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Empirical Software Engineering
Empirical Software Engineering  Volume 23, Issue 4
August 2018
649 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 August 2018

Author Tags

  1. AOP
  2. Aspect-oriented programming
  3. Controlled experiment
  4. Maintainability
  5. Separation of concerns
  6. Understandability

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Overhead Comparison of Instrumentation FrameworksCompanion of the 15th ACM/SPEC International Conference on Performance Engineering10.1145/3629527.3652269(249-256)Online publication date: 7-May-2024
  • (2022)Software Product Maintenance: A Case StudyComputer Information Systems and Industrial Management10.1007/978-3-031-10539-5_6(81-92)Online publication date: 15-Jul-2022
  • (2019)Are monitoring crosscutting concerns really refactorable into aspects?Proceedings of the 3rd International Workshop on Refactoring10.1109/IWoR.2019.00018(59-62)Online publication date: 28-May-2019
  • (2019)AspectOCLEmpirical Software Engineering10.1007/s10664-019-09717-624:4(2674-2724)Online publication date: 1-Aug-2019

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media