Using Third-Party Components’ Metadata to Analyze Cross-cutting Concerns


  • Luis Paulo da Silva Carvalho Instituto Federal da Bahia
  • Thiago Souto Mendes Instituto Federal da Bahia
  • Felipe Gustavo de Souza Gomes Universidade Federal da Bahia
  • Sávio Freire Instituto Federal do Ceará
  • Renato Lima Novais Instituto Federal da Bahia
  • Manoel Gomes Mendonça Universidade Federal da Bahia



Mining, Concerns, Components, Static Analysis


Context: Modularity is a key concept in software development. Well-modularized systems are easier to maintain and evolve, but achieving good modularity is difficult. Concerns that are important, but not central to a systems' main business rules, frequently end up scattered and entangled throughout several software modules. Those so called cross-cutting concerns are a major source of loss of modularity and code decay in software systems. Motivation: Studies on cross-cutting concerns often resort to manual identification of concerns, but manual identification is effort demanding, does not scale, and tends to be imprecise. Automatic approaches are therefore very attractive when the codebase is extensive. In modern systems, developers implement modules to address central business rules, but they tend to add third-party components in the codebase to materialize concerns related to other secondary aspects. Logging, database access, and tests automation are examples of concerns that are usually implemented with the help of imported components and are prone to scatter and tangle throughout the codebase. Aims: This paper proposes a method to track this type of cross-cutting concern. Our work takes advantage of the addition of metadata about components to track them. The method scales by automating the identification and analysis of concerns scattered throughout the software codebase. We define a new metric, Dedication to Concern (DtC), to measure how much source code modules focus on implementing the identified concerns. Working Method: We describe our method to mine cross-cutting concerns from the metadata related to the use of components. The method is instantiated as a tool, architectural knowledge suite (AKS). The tool is used to analyze concerns in a set of large Java projects. The results are used to feed an action research study, during which software development specialists analyze the AKS outputs to evaluate and evolve the method. Conclusion: The semi-automated approach is feasible and scalable, and can be used to analyze secondary concerns that are currently being imported into modern software systems via third-party components.


Download data is not yet available.


Abilio, R., Padilha, J., Figueiredo, E., and Costa, H. (2015). Detecting code smells in software product lines – an exploratory study. In 2015 12th International Conference on Information Technology, pages 433–438.

Abilio, R., Vale, G., Figueiredo, E., and Costa, H. (2016). Metrics for feature-oriented programming. In 2016 IEEE/ACM 7th WETSoM, pages 36–42.

Adams, B., Jiang, Z. M., and Hassan, A. E. (2010). Identifying crosscutting concerns using historical code changes. In Proc. of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1, pages 305–314. ACM.

Agüero, M. and Ballejos, L. (2017). Dependency management in the cloud: An efficient proposal for java. In 2017 XLIII CLEI, pages 1–9.

Baskerville, R. L. (1999). Investigating information systems with action research. Communications of the association for information systems, 2(1):19.

Bellomo, S., Ernst, N., Nord, R. L., and Ozkaya, I. (2014). Evolutionary improvements of cross-cutting concerns: Performance in practice. In 2014 IEEE International Conference on Software Maintenance and Evolution, pages 545–548. IEEE.

Bernardi, M. L., Cimitile, M., and Di Lucca, G. (2016). Mining static and dynamic crosscutting concerns: a role-based approach. Journal of Software: Evolution and Process, 28(5):306–339.

Berry, K. J. and Mielke Jr, P. W. (1988). A generalization of cohen’s kappa agreement measure to interval measurement and multiple raters. Educational and Psychological Measurement, 48(4):921–933.

Böhme, R. and Freiling, F. C. (2008). On metrics and measurements. In Dependability metrics, pages 7–13.

Brennan, R. L. and Prediger, D. J. (1981). Coefficient kappa: Some uses, misuses, and alternatives. Educational and psychological measurement, 41(3):687–699.

Canfora, G. and Cerulo, L. (2005). How crosscutting concerns evolve in jhotdraw. In 13th IEEE STEP’05, pages 65–73. IEEE.

Carvalho, L. P., Novais, R., and Mendonça, M. (2020). Relationships between design problem agglomerations and concerns having types and domains of software as transverse dimensions. Under Review for Journal of the Brazilian Computer Society.

Carvalho, L. P., Novais, R., and Mendonça, M. (2018). Investigating the relationship between code smell agglomerations and architectural concerns: Similarities and dissimilarities from distributed, service-oriented, and mobile systems. In 2018 XII SBCARS.

Cohen, J. (1960). A coefficient of agreement for nominal scales. Educational and psychological measurement, 20(1):37–46.

Conger, A. J. (1980). Integration and generalization of kappas for multiple raters. Psychological Bulletin, 88(2):322.

da Silva, B. C., Figueiredo, E., Garcia, A., and Nunes, D. (2009). Refactoring of crosscutting concerns with metaphor-based heuristics. Electronic Notes in Theoretical Computer Science, 233:105–125.

Dawson, R. and O’neill, B. (2003). Simple metrics for improving software process performance and capability: a case study. Software Quality Journal, 11(3):243–258.

de Freitas Farias, M. A., de Mendonça Neto, M. G., Kalinowski, M., and Spínola, R. O. (2020). Identifying selfadmitted technical debt through code comment analysis with a contextualized vocabulary. Information and Software Technology, 121:106270.

Deacon, J. (2009). Model-view-controller (mvc) architecture. Online][Citado em: 10 de março de 2006.][link]

Dias, R. S., de Alcântara dos Santos Neto, P., de Sousa Ibiapina, I. M., Avelino, G. A., and da Costa Castro, O. C. (2019). Effects of visualizing technical debts on a software maintenance project. In Proc. of the XVIII Brazilian Symposium on Software Quality, pages 39–48.

Díaz-Pace, J. A., Villavicencio, C., Schiaffino, S., Nicoletti, M., and Vázquez, H. (2016). Producing just enough documentation: An optimization approach applied to the software architecture domain. Journal on Data Semantics, pages 37–53.

Dit, B., Revelle, M., Gethers, M., and Poshyvanyk, D. (2013). Feature location in source code: a taxonomy and survey. Journal of software: Evolution and Process, 25(1):53–95.

Donker, D., Hasman, A., and Van Geijn, H. (1993). Interpretation of low kappa values. International journal of bio-medical computing, 33(1):55–64.

Dos Santos, P. S. M. and Travassos, G. H. (2011). Action research can swing the balance in experimental software engineering. In Advances in computers, volume 83, pages 205–276. Elsevier.

Eaddy, M., Zimmermann, T., Sherwood, K. D., Garg, V., Murphy, G. C., Nagappan, N., and Aho, A. V. (2008). Do crosscutting concerns cause defects? IEEE transactions on Software Engineering, 34(4):497–515.

Fowler, M. and Beck, K. (1999). Refactoring: improving the design of existing code.

Gomes, F., Mendes, T., Spínola, R., Mendonça, M., and Farias, M. (2019). Uma análise da relação entre code smells e dívida técnica auto-admitida. pages 37–44.

Hannemann, J. and Kiczales, G. (2001). Overcoming the prevalent decomposition of legacy code. In Workshop on Advanced Separation of Concerns, volume 167.

He, C. and Ye, S. (2015). A method for identification of crosscutting concerns based on goal model and two-state algorithm. In 2015 4th ICCSNT, volume 1, pages 431–435. IEEE.

Hensler, C. and Stipak, B. (1979). Estimating interval scale values for survey item response categories. American Journal of Political Science, 23(3):627–649.

Ibiapina, I., Castro, O., Moura, V., Dias, R., and Neto, P. S. (2018). Tdvision: Um módulo computacional para visualização de dı́vidas técnicas. In Anais da IV Escola Regional de Informática do Piauí, pages 103–108. SBC.

Juhár, J. and Vokorokos, L. (2015). Separation of concerns and concern granularity in source code. In 2015 IEEE 13th International Scientific Conference on Informatics, pages 139–144. IEEE.

Khomyakov, I., Makhmutov, Z., Mirgalimova, R., and Sillitti, A. (2019). An analysis of automated technical debt measurement. In International Conference on Enterprise Information Systems, pages 250–273. Springer.

Kiczales, G. (1996). Aspect-oriented programming. ACM CSUR, 28(4es):154–es.

Landis, J. R. and Koch, G. G. (1977). The measurement of observer agreement for categorical data. biometrics, pages 159–174.

Longhurst, R. (2003). Semi-structured interviews and focus groups. Key methods in geography, 3(2):143–156.

Marçal, I., Garcia, R. E., Eler, D. M., Junior, C. O., and Correia, R. C. (2016). Techniques for the identification of crosscutting concerns: A systematic literature review. pages 569–579.

Mendes, T., Novais, R., Mendonca, M., Carvalho, L., and Gomes, F. (2017). Repositoryminer uma ferramenta extensivel de mineração de repositorios de software para identificacao automatica de divida tecnica. In CBSoft 2017 - Sessao de Ferramentas.

Mendes, T. S., Gomes, F. G., Gonçalves, D. P., Mendonça, M. G., Novais, R. L., and Spínola, R. O. (2019). Visminertd: a tool for automatic identification and interactive monitoring of the evolution of technical debt items. Journal of the Brazilian Computer Society, 25(1):2.

Mendes, T. S., Gonçalves, D. P., Gomes, F. G., Novais, R., Spınola, R. O., Mendonça, M., and Salvador, B. (2015). Visminertd: Uma ferramenta para identificação automática e monitoramento interativo de dıvida técnica.

Munoz, S. R. and Bangdiwala, S. I. (1997). Interpretation of kappa and b statistics measures of agreement. Journal of Applied Statistics, 24(1):105–112.

Nunez-Varela, A. S., Perez-Gonzalez, H. G., Flores-Puente, Y. T., and Valdes-Souto, F. (2017). Finding core crosscutting concerns from object oriented systems using information retrieval. In 2017 5th CONISOFT, pages 18–24.

Nuñez-Varela, A. S., Pérez-Gonzalez, H. G., Martínez-Perez, F. E., and Soubervielle-Montalvo, C. (2017). Source code metrics: A systematic mapping study. Journal of Systems and Software, 128:164–197.

Nystrom, M. (2007). SQL injection defenses. ” O’Reilly Media, Inc.”.

Oliveira, P., Valente, M. T., and Lima, F. P. (2014). Extracting relative thresholds for source code metrics. In 2014 Software Evolution Week-IEEE CSMR-WCRE, pages 254– 263. IEEE.

Palyart, M., Murphy, G. C., and Masrani, V. (2017). A study of social interactions in open source component use. IEEE Transactions on Software Engineering.

Philippi, C. L. (2021). On measurement scales: Neither ordinal nor interval? Philosophy of science, 88(5):929–939.

Porubän, J. and Nosál, M. (2014). Leveraging program comprehension with concern-oriented source code projections. In 3rd Symposium on Languages, Applications and Technologies. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik.

Puhakainen, P. and Siponen, M. (2010). Improving employees’ compliance through information systems security training: an action research study. MIS quarterly, pages 757–778.

Raemaekers, S., van Deursen, A., and Visser, J. (2017). Semantic versioning and impact of breaking changes in the maven repository. Journal of Systems and Software, 129:140–158.

Robillard, M. P., Marcus, A., Treude, C., Bavota, G., Chaparro, O., Ernst, N., Gerosa, M. A., Godfrey, M., Lanza, M., Linares-Vásquez, M., et al. (2017). On-demand developer documentation. In 2017 IEEE ICSME, pages 479– 483. IEEE.

Robillard, M. R. and Murphy, G. C. (2002). Concern graphs: finding and describing concerns using structural program dependencies. In Proc. of the 24th Internat. Conf. on Software Engineering. ICSE 2002, pages 406–416.

Rosenhainer, L. (2004). Identifying crosscutting concerns in requirements specifications. In Proc. of OOPSLA Early Aspects. Citeseer.

Sant’Anna, C., Figueiredo, E., Garcia, A., and Lucena, C. (2007). On the modularity assessment of software architectures: Do my architectural concerns count? In AARCH. 07, AOSD, volume 7.

Sant’Anna, C., Garcia, A., Chavez, C., Lucena, C., and Von Staa, A. (2003). On the reuse and maintenance of aspect-oriented software: An assessment framework. In Proc. XVII Brazilian Symposium on Software Engineering.

Shaikh, M. and Lee, C.-G. (2016). Aspect oriented reengineering of legacy software using cross-cutting concern characterization and significant code smells detection. International Journal of Software Engineering and Knowledge Engineering, 26(03):513–536.

Shatnawi, A., Seriai, A.-D., Sahraoui, H., and Alshara, Z. (2017). Reverse engineering reusable software components from object-oriented apis. Journal of Systems and Software, pages 442–460.

Staron, M. (2020). Reporting action research studies. In Action Research in Software Engineering, pages 191–213.

Velázquez-Rodríguez, C. and De Roover, C. (2020). Mutama: An automated multi-label tagging approach for software libraries on maven. In 2020 IEEE 20th International Working Conference on Source Code Analysis and Manipulation (SCAM), pages 254–258.

Yu, Z., Bai, C., Seinturier, L., and Monperrus, M. (2018). Characterizing the usage and impact of java annotations over 1000+ projects. arXiv preprint arXiv:1805.01965.




How to Cite

Carvalho, L. P. da S., Mendes, T. S., Gomes, F. G. de S., Freire, S., Novais, R. L., & Mendonça, M. G. (2024). Using Third-Party Components’ Metadata to Analyze Cross-cutting Concerns. Journal of Software Engineering Research and Development, 12(1), 1:1 – 1:22.



Research Article

Most read articles by the same author(s)