skip to main content
10.1145/1218563.1218586acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
Article

Simple crosscutting concerns are not so simple: analysing variability in large-scale idioms-based implementations

Published:14 March 2007Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. L. Brodie and M. Stonebraker. Migrating Legacy Systems: Gateways, Interfaces, and the Incremental Approach. Morgan Kaufmann, 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Coplien. Advanced C++: Programming Styles and Idioms. Addison-Wesley, 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Demeyer, S. Ducasse, and O. Nierstrasz. Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. R. P. Gabriel. Patterns of Software: Tales from the Software Community. Oxford University Press, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. Ganter and R. Wille. Formal Concept Analysis: Mathematical Foundations. Springer-Verlag, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. Kellens, K. Mens, and P. Tonella. A survey of automated code-level aspect mining techniques. Submitted to "Transactions on AOSD", 2006.]]Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. C. Lindig. Fast concept analysis. In Working with Conceptual Structures - Contributions to ICCS 2000, pages 152--161. Shaker Verlag, August 2000.]]Google ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. E. Visser. Scannerless generalized-LR parsing. Technical Report P9707, Programming Research Group, University of Amsterdam, July 1997.]]Google ScholarGoogle Scholar
  30. M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352--357, July 1984.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Simple crosscutting concerns are not so simple: analysing variability in large-scale idioms-based implementations

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        AOSD '07: Proceedings of the 6th international conference on Aspect-oriented software development
        March 2007
        246 pages
        ISBN:1595936157
        DOI:10.1145/1218563
        • Conference Chair:
        • Brian Barry

        Copyright © 2007 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 14 March 2007

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate41of139submissions,29%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader