Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Identifying Crosscutting Concerns Using Fan-In Analysis

Published: 12 December 2007 Publication History

Abstract

Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existing systems. This article proposes an aspect mining approach based on determining methods that are called from many different places, and hence have a high fan-in, which can be seen as a symptom of crosscutting functionality. The approach is semiautomatic, and consists of three steps: metric calculation, method filtering, and call site analysis. Carrying out these steps is an interactive process supported by an Eclipse plug-in called FINT. Fan-in analysis has been applied to three open source Java systems, totaling around 200,000 lines of code. The most interesting concerns identified are discussed in detail, which includes several concerns not previously discussed in the aspect-oriented literature. The results show that a significant number of crosscutting concerns can be recognized using fan-in analysis, and each of the three steps can be supported by tools.

References

[1]
Alur, D., Crupi, J., and Malks, D. 2003. Core J2EE Patterns. Sun Microsystems, Inc., USA.
[2]
AspectJ Team. 2003. The AspectJ Programming Guide. Palo Alto Research Center. Version 1.2.
[3]
Bergmans, L. and Aksit, M. 2001. Composing crosscutting concerns using composition filters. Comm. ACM 44, 10, 51--57.
[4]
Biggerstaff, T. J., Mitbander, B. G., and Webster, D. E. 1994. Program understanding and the concept assignment problem. Comm. ACM 37, 5, 72--82.
[5]
Binkley, D., Ceccato, M., Harman, M., Ricca, F., and Tonella, P. 2005. Automated refactoring of object oriented code into aspects. In Proceedings of the International Conference on Software Maintenance (ICSM 2005). IEEE Computer Society, Los Alamitos.
[6]
Breu, S. and Krinke, J. 2004. Aspect mining using event traces. In International Conference on Automated Software Engineering (ASE 2004). IEEE Computer Society, Los Alamitos, CA.
[7]
Breu, S. and Zimmermann, T. 2006. Mining aspects from version history. In Proceedings of the 21st IEEE International Conference on Automated Software Engineering (ASE'06). IEEE Computer Society, Washington, DC, 221--230.
[8]
Briand, L. C., Daly, J. W., and Wüst, J. K. 1999. A unified framework for coupling measurement in object-oriented systems. IEEE Trans. Soft. Eng. 25, 1, 91--121.
[9]
Bruntink, M., Deursenvan Deursen, A., Engelenvan Engelen, R., and Tourwé, T. 2005. On the use of clone detection for identifying cross cutting concern code. IEEE Trans. Softw. Eng. 31, 10, 804--818.
[10]
Ceccato, M., Marin, M., Mens, K., Moonen, L., Tonella, P., and Tourwé, T. 2006. Applying and combining three different aspect mining techniques. Softw. Qual. J. 14, 3, 209--231.
[11]
Colyer, A., Clement, A., Harley, G., and Webster, M. 2005. Eclipse AspectJ. Pearson Education, Inc., NJ.
[12]
Eick, S. G., Steffen, J. L., and Eric E. Sumner, J. 1992. Seesoft-A Tool for Visualizing Line Oriented Software Statistics. IEEE Trans. Softw. Eng. 18, 11, 957--968.
[13]
Ferenc, R., Beszédes, Á., Fulop, L., and Lele, J. 2005. Design pattern mining enhanced by machine learning. In Proceedings of the International Conference on Software Maintenance (ICSM 2005). IEEE Computer Society, Los Alamitos, 295--304.
[14]
Fowler, M. 2004. Inversion of control containers and the dependency injection pattern. http://martinfowler.com/articles/injection.html.
[15]
Fowler, M. et al. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading, MA.
[16]
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA.
[17]
Goetz, B. 2004. Garbage collection and performance. IBM developersWorks articles. www-136.ibm.com/developerworks/java/.
[18]
Gradecki, J. D. and Lesiecki, N. 2003. Mastering AspectJ---Aspect Oriented Programmingin Java. Wiley Publishing, Inc., Indianapolis, Indiana.
[19]
Griswold, W. G., Yuan, J. J., and Kato, Y. 2001. Exploiting the map metaphor in a tool for software evolution. In ICSE '01: Proceedings of the 23rd International Conference on Software Engineering. IEEE Computer Society, Washington, DC, 265--274.
[20]
Gybels, K. and Kellens, A. 2005. Experiences with identifying aspects in smalltalk using unique methods. In Proceedings of the AOSD Workshop on Linking Aspect Technology and Evolution (LATE). CWI, Amsterdam, The Netherlands.
[21]
Hannemann, J. and Kiczales, G. 2001. Overcoming the prevalent decomposition of legacy code. In Proceedings of the ICSE Workshop on Advanced Separation of Concerns. IBM Research, New York.
[22]
Hannemann, J. and Kiczales, G. 2002. Design pattern implementation in Java and AspectJ. In Proceedings of the 17th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). ACM Press, Boston, MA, 161--173.
[23]
Harrison, W., Ossher, H., Sutton S. M., Jr., and Tarr, P. 2004. Concern modeling in the concern manipulation environment. In IBM Research Report RC23344. IBM Thomas J. Watson Research Center, Yorktown Heights, NY.
[24]
Henderson-Sellers, B., Constantine, L. L., and Graham, I. M. 1996. Coupling and cohesion (towards a valid metrics suite for object-oriented analysis and design). Obj. Orient. Syst. 3, 143--158.
[25]
Henry, S. and Kafura, K. 1981. Software structure metrics based on information flow. IEEE Trans. Softw. Eng. 7, 5, 510--518.
[26]
Janzen, D. and VolderDe Volder, K. 2003. Navigating and querying code without getting lost. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD). ACM Press, Boston, MA, 178--187.
[27]
Johnson, R. 2003. J2EE Design and Development. Wiley Publishing, Indianapolis, IN.
[28]
Koschke, R. and Quante, J. 2005. On dynamic feature location. In Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005). ACM, Boston, MA, 86--95.
[29]
Krinke, J. 2006. Mining control flow graphs for crosscutting concerns. In AAA Workshop at the 13th Working Conference on Reverse Engineering (WCRE 2006). IEEE Computer Society, Washington, DC, 334--342.
[30]
Laddad, R. 2003a. Aspect-oriented refactoring. www.theserverside.com.
[31]
Laddad, R. 2003b. AspectJ in Action---Practical Aspect Oriented Programming. Manning Publications Co., Greenwich, CT.
[32]
Lippert, M. and Lopes, C. 2000. A study on exception detection and handling using aspect-oriented programming. In Proceedings of the 22nd International Conference on Software Engineering (ICSE). ACM Press, Boston, MA, 418--427.
[33]
Marin, M. 2004. Refactoring JHotDraw's Undo concern to AspectJ. In Proceedings of the WCRE Workshop on Aspect Reverse Engineering (WARE). CWI, Amsterdam, The Netherlands.
[34]
Marin, M., van Deursen, A., and Moonen, L. 2004a. Identifying aspects using fan-in analysis. In Proceedings of the 11th Working Conference on Reverse Engineering (WCRE2004). IEEE Computer Society Press, Los Alamitos, CA, 132--141.
[35]
Marin, M., van Deursen, A., and Moonen, L. 2004b. Identifying aspects using fan-in analysis. Tech. Rep. SEN-R0413, CWI.
[36]
Marin, M., Moonen, L., and van Deursen, A. 2005. A systematic aspect-oriented testing and refactoring process, and its application to JHotDraw. Tech. Rep. SEN-R0507, CWI.
[37]
Marin, M., Moonen, L., and van Deursen, A. 2006. A common framework for aspect mining based on crosscutting concern sorts. In Proceedings of the 13th Working Conference on Reverse Engineering (WCRE 2006). IEEE Computer Society, Washington, DC, 29--38.
[38]
Mesbah, A. and van Deursen, A. 2005. Crosscutting concerns in J2EE applications. In Proceedings of the 7th IEEE International Symposium on Web Site Evolution. IEEE Computer Society, Los Alamitos, CA, 14--21.
[39]
Monteiro, M. 2004. Catalogue of refactorings for AspectJ. Tech. Rep. UM-DI-GECSD-200401, Universidade do Minho.
[40]
Moodie, M. 2005. Pro Jakarta Tomcat 5. Apress, Berkely, CA.
[41]
Murali, T., Pawlak, R., and Younessi, H. 2004. Applying aspect orientation to J2EE business tier patterns. In Proceedings of the 3rd AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS), Y. Coady and D. Lorenz, Eds. University of Victoria, Victoria, Canada.
[42]
Murphy, G. C., Griswold, W. G., Robillard, M. P., Hannemann, J., and Leong, W. 2005. Design recommendations for concern elaboration tools. In Aspect-Oriented Software Development, R. E. Filman, T. Elrad, S. Clarke, and M. Ak sit, Eds. Addison-Wesley, Boston, 507--530.
[43]
Rich, C. and Wills, L. M. 1990. Recognizing a program's design: A graph-parsing approach. IEEE Softw. 7, 1, 82--89.
[44]
Robillard, M. and Murphy, G. 2002. Concern graphs: Finding and describing concerns using structural program dependencies. In Proceedings of the 24th International Conference on Software Engineering (ICSE). ACM press, Boston, MA.
[45]
Shepherd, D., Gibson, E., and Pollock, L. 2004. Design and evaluation of an automated aspect mining tool. In Software Engineering Research and Practice. CSREA Press, Las Vegas, NV, 601--607.
[46]
Shepherd, D., Palm, J., Pollock, L., and Chu-Carroll, M. 2005. Timna: A framework for automatically combining aspect mining analyses. In Proceedings Conference on Automated Software Engineering (ASE'05). IEEE Computer Society, Los Alamitos, CA.
[47]
Sommerville, I. 2004. Software Engineering, 7th ed. Pearson, NJ.
[48]
Sutton, S. M. and Rouvellou, I. 2005. Concern modeling for aspect-oriented software development. In Aspect-Oriented Software Development, R. E. Filman, T. Elrad, S. Clarke, and M. Ak sit, Eds. Addison-Wesley, Boston, Chapter 21, 479--505.
[49]
Tarr, P., Harrison, W., and Ossher, H. 2004. Pervasive Query Support in the Concern Manipulation Environment. Tech. Rep. RC23343 (W0409-135), IBM Research.
[50]
Tonella, P. and Ceccato, M. 2004a. Aspect mining through the formal concept analysis of execution traces. In Proceedings of the 11th Working Conference on Reverse Engineering (WCRE 2004). IEEE Computer Society, Los Alamitos, CA.
[51]
Tonella, P. and Ceccato, M. 2004b. Migrating interface implementation to aspect-oriented programming. In Proceedings of the International Conference on Software Maintenance (ICSM 2004). IEEE Computer Society, Los Alamitos, CA, 220--229.
[52]
Tourwé, T. and Mens, K. 2004. Mining aspectual views using formal concept analysis. In Proceedings of the Fourth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2004). IEEE Computer Society, Chicago, Illinois.
[53]
van Deursen, A., Marin, M., and Moonen, L. 2005. AJHotDraw: A showcase for refactoring to aspects. In Proceedings of the AOSD Workshop on Linking Aspects and Evolution (LATE05). CWI, Amsterdam, The Netherlands.
[54]
van Deursen, A., Quilici, A., and Woods, S. 2000. Program plan recognition for year 2000 tools. Sci. Comput. Prog. 36, 303--324.
[55]
Vickers, P. 2002. Why finalizers should (and can) be avoided. IBM developersWorks articles. www-136.ibm.com/developerworks/java/.
[56]
Wilde, N. and Scully, M. C. 1995. Software reconnaissance: mapping program features to code. J. Softw. Maint. 7, 1, 49--62.
[57]
Wills, L. M. 1990. Automated program recognition: A feasibility demonstration. Arti. Intel. 45, 1--2 (Sept.), 113--171.
[58]
Xie, X., Poshyvanyk, D., and Marcus, A. 2006. 3D visualization for concept location in source code. In Proceedings of the 28th International Conference on Software Engineering (ICSE 2006). ACM, Boston, MA, 839--842.
[59]
Zhang, C. and Jacobsen, H.-A. 2003. Quantifying aspects in middleware platforms. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD). ACM Press, Boston, MA, 130--139.
[60]
Zhang, C. and Jacobsen, H.-A. 2004. PRISM is Research in aSpect Mining. In Companion to the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA. ACM, Boston, MA, 20--21.

Cited By

View all
  • (2023)An empirical analysis for software robustness vulnerability in terms of modularity qualitySystems Engineering10.1002/sys.2168626:6(754-769)Online publication date: 18-Apr-2023
  • (2021)On the effect of incompleteness to check requirement-to-method tracesProceedings of the 36th Annual ACM Symposium on Applied Computing10.1145/3412841.3442021(1465-1474)Online publication date: 22-Mar-2021
  • (2021)TraceRefiner: An Automated Technique for Refining Coarse-Grained Requirement-to-Class Traces2021 28th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC53868.2021.00009(12-21)Online publication date: Dec-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 17, Issue 1
December 2007
100 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/1314493
Issue’s Table of Contents
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: 12 December 2007
Accepted: 01 January 2007
Revised: 01 September 2006
Received: 01 July 2005
Published in TOSEM Volume 17, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Aspect-oriented programming
  2. crosscutting concerns
  3. fan-in metric
  4. reverse engineering

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)An empirical analysis for software robustness vulnerability in terms of modularity qualitySystems Engineering10.1002/sys.2168626:6(754-769)Online publication date: 18-Apr-2023
  • (2021)On the effect of incompleteness to check requirement-to-method tracesProceedings of the 36th Annual ACM Symposium on Applied Computing10.1145/3412841.3442021(1465-1474)Online publication date: 22-Mar-2021
  • (2021)TraceRefiner: An Automated Technique for Refining Coarse-Grained Requirement-to-Class Traces2021 28th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC53868.2021.00009(12-21)Online publication date: Dec-2021
  • (2019)An aggregated coupling measure for the analysis of object-oriented software systemsJournal of Systems and Software10.1016/j.jss.2018.10.052148(1-20)Online publication date: Feb-2019
  • (2018)Systematic Review of Dependencies in Source Code of Software and Their CategorizationProceedings of 2nd International Conference on Communication, Computing and Networking10.1007/978-981-13-1217-5_77(771-781)Online publication date: 8-Sep-2018
  • (2016)Dynamic and Automatic Feedback-Based Threshold Adaptation for Code Smell DetectionIEEE Transactions on Software Engineering10.1109/TSE.2015.250374042:6(544-558)Online publication date: 1-Jun-2016
  • (2016)Techniques for the Identification of Crosscutting Concerns: A Systematic Literature ReviewInformation Technolog: New Generations10.1007/978-3-319-32467-8_50(569-579)Online publication date: 29-Mar-2016
  • (2015)Legacy Systems towards Aspect-Oriented SystemsAchieving Enterprise Agility through Innovative Software Development10.4018/978-1-4666-8510-9.ch012(262-286)Online publication date: 2015
  • (2015)A combined approach for concern identification in KDM modelsJournal of the Brazilian Computer Society10.1186/s13173-015-0030-321:1Online publication date: 1-Aug-2015
  • (2015)An automated approach for noise identification to assist software architecture recovery techniquesJournal of Systems and Software10.1016/j.jss.2015.05.065107:C(142-157)Online publication date: 1-Sep-2015
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media