Testing During Refactoring: Adding Aspects to Legacy Systems

Moving program code that implements cross-cutting concerns into aspects can improve the maintainability of legacy systems. This kind of refactoring, called aspectualization, can also introduce faults into a system. A test driven approach can identify these faults during the refactoring process so that they can be removed. We perform systematic testing as we aspectualize commercial VLSI CAD applications. The process of refactoring these applications revealed the kinds of faults that can arise during aspectualization, and helped us to develop techniques to reduce their occurrences

[1]  Rémi Douence,et al.  Composition, reuse and interaction analysis of stateful aspects , 2004, AOSD '04.

[2]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[3]  Zhao Jianjun Unit Testing for Aspect - Oriented Programs , 2003 .

[4]  Steven M. Rubin,et al.  Computer Aids For VLSI Design , 1987 .

[5]  Dianxiang Xu,et al.  State-based incremental testing of aspect-oriented programs , 2006, AOSD.

[6]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[7]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[8]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[9]  Gregor Kiczales,et al.  Back to the future: a retroactive study of aspect evolution in operating system code , 2003, AOSD '03.

[10]  Mike Gancarz The Unix Philosophy , 1994 .

[11]  Hewlett-Packard An Approach for Adequate Testing of AspectJ Programs , 2005 .

[12]  14th International Symposium on Software Reliability Engineering , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[13]  Michael Mortensen Hewlett-Packard,et al.  Creating Pluggable and Reusable Non-functional Aspects in AspectC + + , 2006 .

[14]  Olaf Spinczyk,et al.  Generic Advice: On the Combination of AOP with Generative Programming in AspectC++ , 2004, GPCE.

[15]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[16]  Dave Astels,et al.  Test Driven Development: A Practical Guide , 2003 .

[17]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[18]  Kris Gybels,et al.  On the Existence of the AOSD-Evolution Paradox , 2003 .

[19]  James M. Bieman,et al.  Towards the Systematic Testing of Aspect-Oriented Programs , 2004 .

[20]  Stefan Hanenberg,et al.  Applying Aspect-Oriented Composition to Framework Development { A Case Study , 2004 .

[21]  Mariano Ceccato,et al.  Refactoring the aspectizable interfaces: an empirical assessment , 2005, IEEE Transactions on Software Engineering.

[22]  Roberto Erick Lopez-Herrejon,et al.  Generating product-lines of product-families , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[23]  Wolfgang Schröder-Preikschat,et al.  On the Configuration of Non-Functional Properties in Operating System Product Lines , 2005 .

[24]  Arie van Deursen,et al.  On the use of clone detection for identifying crosscutting concern code , 2005, IEEE Transactions on Software Engineering.