ABSTRACT
This paper describes a method for studying idioms-based implementations of crosscutting concerns, and our experiences with it in the context of a real-world, large-scale embedded software system. In particular, we analyse a seemingly simple concern, tracing, and show that it exhibits significant variability, despite the use of a prescribed idiom. We discuss the consequences of this variability in terms of how aspect-oriented software development techniques could help prevent it, how it paralyses (automated) migration efforts, and which aspect language features are required in order to obtain precise and concise aspects. Additionally, we elaborate on the representativeness of our results and on the usefulness of our proposed method.
- D. Binkley, M. Ceccato, M. Harman, F. Ricca, and P. Tonella. Automated refactoring of object oriented code into aspects. In 21st IEEE International Conference on Software Maintenance (ICSM 2005), pages 27--36. IEEE Computer Society, 2005.]] Google ScholarDigital Library
- M. G. J. van den Brand, A. van Deursen, J. Heering, H. A. de Jong, M. de Jonge, T. Kuipers, P. Klint, L. Moonen, P. A. Olivier, J. Scheerder, J. J. Vinju, E. Visser, and J. Visser. The ASF+SDF Meta-Environment: a Component-Based Language Development Environment. In R. Wilhelm, editor, Compiler Construction (CC '01), volume 2027 of Lecture Notes in Computer Science, pages 365--370. Sprmger-Verlag, 2001.]] Google ScholarDigital Library
- M. L. Brodie and M. Stonebraker. Migrating Legacy Systems: Gateways, Interfaces, and the Incremental Approach. Morgan Kaufmann, 1995.]] Google ScholarDigital Library
- M. Bruntink, A. van Deursen, and T. Tourwé. Isolating idiomatic crosscutting concerns. In Proceedings of the International Conference on Software Maintenance (ICSM'05), pages 37--46. IEEE Computer Society, 2005.]] Google ScholarDigital Library
- M. Bruntink, A. van Deursen, and T. Tourwé. Discovering faults in idiom-based exception handling. In Proceedings of the International Conference on Software Engineering (ICSE'06). ACM Press, 2006.]] Google ScholarDigital Library
- M. Bruntink, A. van Deursen, R. van Engelen, and T. Tourwé. On the use of clone detection for identifying cross cutting concern code. IEEE Transactions on Software Engineering, 31(10):804--818, 2005.]] Google ScholarDigital Library
- F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. Pattern-Oriented Software Architecture: A System of Patterns. Wiley series in Software design patterns. John Wiley & Sons, 1996.]] Google ScholarDigital Library
- Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn. Using AspectC to improve the modularity of path-specific customization in operating system code. In Proceedings of the Joint European Software Engineering Conference (ESEC'01) and 9th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE'01), pages 88--98. ACM Press, June 2001.]] Google ScholarDigital Library
- A. Colyer and A. Clement. Large-scale AOSD for middleware. In Proceedings of the 3rd international conference on Aspect-oriented software development (AOSD'04), pages 56--65, New York, NY, USA, 2004. ACM Press.]] Google ScholarDigital Library
- J. Coplien. Advanced C++: Programming Styles and Idioms. Addison-Wesley, 1991.]] Google ScholarDigital Library
- S. Demeyer, S. Ducasse, and O. Nierstrasz. Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2003.]] Google ScholarDigital Library
- A. van Deursen and T. Kuipers. Identifying objects using cluster and concept analysis. In Proceedings of the 1999 International Conference on Software Engineering (ICSE 1999), pages 246--255. ACM Press, 1999.]] Google ScholarDigital Library
- A. van Deursen, M. Marin, and L. Moonen. A systematic aspect-oriented refactoring and testing strategy, and its application to jhotdraw. Technical Report SEN-R0507, Centrum voor Wiskunde en Informatica, 2005.]]Google Scholar
- P. Durr, G. Gulesir, L. Bergmans, M. Aksit, and R. van Engelen. Applying aop in an industrial context. In Workshop on Best Practices in Applying Aspect-Oriented Software Development, 2006.]]Google Scholar
- R. P. Gabriel. Patterns of Software: Tales from the Software Community. Oxford University Press, 1996.]] Google ScholarDigital Library
- B. Ganter and R. Wille. Formal Concept Analysis: Mathematical Foundations. Springer-Verlag, 1999.]] Google ScholarDigital Library
- A. Kellens, K. Mens, and P. Tonella. A survey of automated code-level aspect mining techniques. Submitted to "Transactions on AOSD", 2006.]]Google Scholar
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In 11th Europeen Conf. Object-Oriented Programming, volume 1241 of LNCS, pages 220--242. Springer Verlag, 1997.]]Google ScholarCross Ref
- M. Kim, L. Bergman, T. Lau, and D. Notkin. An ethnographic study of copy and paste programming practices in oopl. In Proceedings of the 2004 International Symposium on Empirical Software Engineering (ISESE'04), pages 83--92, Washington, DC, USA, 2004. IEEE Computer Society.]] Google ScholarDigital Library
- C. Lindig. Fast concept analysis. In Working with Conceptual Structures - Contributions to ICCS 2000, pages 152--161. Shaker Verlag, August 2000.]]Google Scholar
- C. Lindig and G. Snelting. Assessing modular structure of legacy code based on mathematical concept analysis. In Proceedings of the 19th International Conference on Software Engineering, pages 349--359. ACM Press, 1997.]] Google ScholarDigital Library
- M. Lippert and C. V. Lopes. A study on exception detecton and handling using aspect-oriented programming. In Proceedings of the International Conference on Software Engineering, pages 418--427. IEEE Computer Society, 2000.]] Google ScholarDigital Library
- M. Marin, A. van Deursen, and L. Moonen. Identifying crosscutting concerns using fan-in analysis ACM Transactions on Softare Engineering and Methodology, 2006. Submitted. Appeared as Technical Report TUD-SERG-2006-013, Delft University of Technology.]] Google ScholarDigital Library
- M. P. Monteiro and J. M. Fernandes. Refactoring a Java code base to AspectJ: An illustrative example. In Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM 2005), pages 17--26. IEEE Computer Society, 2005.]] Google ScholarDigital Library
- M. Siff and T. W. Reps. Identifying modules via concept analysis. In Proceedings of the International Conference on Software Maintenance (ICSM 1997), pages 170--179. IEEE Computer Society, 1997.]] Google ScholarDigital Library
- O. Spinczyk, A. Gal, and W. Schröder-Preikschat. Aspectc++: an aspect-oriented extension to the C++ programming language. In Proceedings of the Fortieth International Conference on Tools Pacific, pages 53--60, Darlinghurst, Australia, Australia, 2002. Australian Computer Society, Inc.]] Google ScholarDigital Library
- P. Tonella and M. Ceccato. Aspect mining through the formal concept analysis of execution traces. In Proceedings of the 11th Working Conference on Reverse Engineering (WCRE 2004), pages 112--121. IEEE Computer Society, 2004.]] Google ScholarDigital Library
- T. Tourwé and K. Mens. Mining Aspectual Views using Formal Concept Analysis. In Proceedings of the 4th International Workshop on Source Code Analysis and Manipulation (SCAM'04), pages 97--106. IEEE Computer Society, September 2004.]] Google ScholarDigital Library
- E. Visser. Scannerless generalized-LR parsing. Technical Report P9707, Programming Research Group, University of Amsterdam, July 1997.]]Google Scholar
- M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352--357, July 1984.]]Google ScholarDigital Library
- A. Zaidman, B. Adams, K. De Schutter, S. Demeyer, G. Hoffman, and B. De Ruyck. Regaining lost knowledge through dynamic analysis and aspect orientation - an industrial experience report. In Proceedings of the 10th European Conference on Software Maintenance and Reengineering (CSMR), pages 91--102. IEEE Computer Society, 2006.]] Google ScholarDigital Library
Index Terms
- Simple crosscutting concerns are not so simple: analysing variability in large-scale idioms-based implementations
Recommendations
Refactoring of Crosscutting Concerns with Metaphor-Based Heuristics
It has been advocated that Aspect-Oriented Programming (AOP) is an effective technique to improve software maintainability through explicit support for modularising crosscutting concerns. However, in order to take the advantages of AOP, there is a need ...
An Aspectual State Model and its Realization Based on AOP
WCSE '09: Proceedings of the 2009 WRI World Congress on Software Engineering - Volume 03Aspect-Oriented Programming (AOP) is an emerging software engineering paradigm that improves separation of cross-cutting concerns as aspect in a program. Existing Object-Oriented Programming (OOP) languages suffer from a serious limitation in ...
Comments