Abstract
Aspects are defined as well-modularized crosscutting concerns. Despite being a core tenet of Aspect Oriented Programming, little research has been done in characterizing and measuring crosscutting concerns. Some of the issues that have not been fully explored are: What kinds of crosscutting concerns exist? What language constructs do they use? And what is the im pact of crosscutting in actual Aspect Oriented programs? In this paper we present basic code metrics that categorize crosscutting according to the number of classes crosscut and the language constructs used. We applied the metrics to four non-trivial open source programs implemented in AspectJ. We found that for these systems, the number of classes crosscut by advice per crosscutting is small in relation to the number of classes in the program. We argue why we believe this result is not atypical for Aspect Oriented programs and draw a relation to other non-AOP techniques that provide crosscutting.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
AJHotDraw project web site, http://sourceforge.net/projects/ajhotdraw
AJStats tool project website, http://wwwiti.cs.uni-magdeburg.de/iti_db/forschung/ajstats/
AHEAD Tool Suite (ATS), http://www.cs.utexas.edu/users/schwartz
Alves, V., Matos Jr., P., Cole, L., Borba, P., Ramalho, G.L.: Extracting and Evolving Mobile Games Product Lines. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 70–81. Springer, Heidelberg (2005)
Anastasopoulos, M., Muthig, D.: An Evaluation of Aspect-Oriented Programming as a Product Line Implementation Technology. In: Bosch, J., Krueger, C. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, pp. 141–156. Springer, Heidelberg (2004)
Apel, S.: The Role of Features and Aspects in Software Development. PhD Dissertation. School of Computer Science, University of Magdeburg (2007)
Apel, S., Leich, T., Saake, G.: Aspectual Mixin Layers: Aspects and Features in Concert. In: ICSE (2006)
Apel, S., Batory, D.: When to Use Features and Aspects? A Case Study. In: GPCE (2006)
Apel, S., Batory, D.: On the Structure of Crosscutting Concerns: Using Aspects or Collaborations? In: AOPLE (2006)
AspectJ, http://eclipse.org/aspectj/
Bartsch, M., Harrison, R.: An Evaluation of Coupling Measures for AspectJ. In: LATE Workshop AOSD (2006)
Batory, D., Cardone, R., Smaragdakis, Y.: Object-Oriented Frameworks and Product-Lines. In: SPLC (2000)
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE TSE (June 2004)
Bird, R.: Introduction to Functional Programming using Haskell. Prentice-Hall, Englewood Cliffs (1998)
Ceccato, M., Tonella, P.: Measuring the Effects of Software Aspectization. In: First Workshop on Aspect Reverse Engineering, Delft, The Netherlands (2004)
Chidamber, S., Kemerer, C.: A Metrics Suite for OOD Design. IEEE TSEÂ 20(6) (1994)
Clements, P., Northrop, L.: Software product lines: practices and patterns. Addison-Wesley, Reading (2002)
Coyler, A., Clement, A.: Large-scale AOSD for Middleware. In: AOSD (2004)
Coyler, A., Rashid, A., Blair, G.: On the Separation of Concerns in Program Families. TRCOMP-001-2004, Computing Department, Lancaster University, UK (2004)
Garcia, A., Sant’Anna, C., Figueiredo, E., Kulesza, U., Lucena, C.J.P., von Staa, A.: Modularizing Design Patterns with Aspects: A Quantitative Study. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 36–74. Springer, Heidelberg (2006)
Godil, I., Jacobsen, H.-A.: Horizontal Decomposition of Prevayler. In: CASCON (2005)
Hannemann, J.: AspectJ implementation of GoF patterns. AODPs, http://www.cs.ubc.ca/~jan/
Holland, I.M.: Specifying Reusable Components Using Contracts. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 287–308. Springer, Heidelberg (1992)
Hunleth, F., Cytron, R.: Footprint and Feature Management Using Aspect-Oriented Programming Techniques. ACM SIGPLAN Notices 37(7), 38–45 (2002)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 327. Springer, Heidelberg (2001)
Laddad, R.: AspectJ in Action. Practical Aspect-Oriented Programming. Manning, Greenwich (2003)
Lämmel, R.: Declarative Aspect-Oriented Programming. In: PEPM (1999)
Lopez-Herrejon, R.E., Batory, D., Cook, W.: Evaluating Support for Features in Advanced Modularization Technologies. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 169–194. Springer, Heidelberg (2005)
Lopez-Herrejon, R.E., Batory, D., Lengauer, C.: A disciplined approach to aspect composition. In: PEPM (2006)
Lopez-Herrejon, R.E., Batory, D.: From Crosscutting Concerns to Product Lines: A Function Composition Approach. Tech. Report UT Austin CS TR-06-24 (May 2006)
Lopez-Herrejon. R.E.: Towards Crosscutting Metrics for Aspect-Based Features. In: AOPLE Workshop at GPCE (2006)
Masuhara, H., Kiczales, G.: Modeling Crosscutting Aspect-Oriented Mechanisms. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 219–233. Springer, Heidelberg (2003)
Mehner, K.: On Using Metrics in the Evaluation of Aspect-Oriented Programs and Designs. In: LATE Workshop AOSD (2006)
Reenskaug, T., Anderson, E., Berre, A., Hurlen, A., Landmanrk, A., Lehne, O., Nordhagen, E., Ness-Ulseth, E., Ofdetal, G., Skaar, A., Stenslet, P.: OORASS: Seamsless Support for the Creation and Maintenance of Object-Oriented Systems. Journal of Object Oriented Programming 5(6) (1992)
Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM (April 2002)
Van Hilst, M., Notkin, D.: Using C++ Templates to Implement Role-Based Designs. In: Futatsugi, K., Matsuoka, S. (eds.) ISOTAS 1996. LNCS, vol. 1049, pp. 22–37. Springer, Heidelberg (1996)
Van Hilst, M., Notkin, D.: Using Role Components to Implement Collaboration-Based Designs. In: OOPSLA (1996)
Wand, M., Kiczales, G., Dutchyn, C.: A Semantics for Advice and Dynamic Join Points in Aspect Oriented Programming. TOPLAS (2004)
Zave, P.: FAQ Sheet on Feature Interaction, http://www.research.att.com/~pamela/faq.html
Zhao, J.: Measuring Coupling in Aspect-Oriented Systems. Technical Report SE-142-6. Information Processing Society of Japan (IPSJ) (June 2003)
Zhao, J., Xu, B.: Measuring Aspect Cohesion. In: Wermelinger, M., Margaria-Steffen, T. (eds.) FASE 2004. LNCS, vol. 2984, pp. 54–68. Springer, Heidelberg (2004)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Lopez-Herrejon, R.E., Apel, S. (2007). Measuring and Characterizing Crosscutting in Aspect-Based Programs: Basic Metrics and Case Studies. In: Dwyer, M.B., Lopes, A. (eds) Fundamental Approaches to Software Engineering. FASE 2007. Lecture Notes in Computer Science, vol 4422. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71289-3_32
Download citation
DOI: https://doi.org/10.1007/978-3-540-71289-3_32
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-71288-6
Online ISBN: 978-3-540-71289-3
eBook Packages: Computer ScienceComputer Science (R0)