{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,12]],"date-time":"2025-08-12T21:42:51Z","timestamp":1755034971064},"reference-count":35,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2020,7,4]],"date-time":"2020-07-04T00:00:00Z","timestamp":1593820800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2020,7,4]],"date-time":"2020-07-04T00:00:00Z","timestamp":1593820800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["J Braz Comput Soc"],"published-print":{"date-parts":[[2020,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:sec>\n<jats:title>Context<\/jats:title>\n<jats:p>Design problems have been recognized as one of the main causes behind the loss of software systems\u2019 quality. Agglomerated design problems impact the quality even more. So, organizing and analyzing the relationship between design problems and concerns as agglomerations is a possible way to enhance the identification of defective source code artifacts.<\/jats:p>\n<\/jats:sec><jats:sec>\n<jats:title>Problem<\/jats:title>\n<jats:p>As different systems evolve in varied manners, it is important to analyze if the evolution of agglomerated design problems can reveal cases of discrepancies and inconstancies through time. We call these cases non-uniformity of agglomerations, and they can prevent the use of agglomerations in approaches to mitigate design problems (e.g., prediction models). To the best of our knowledge, we consider that this problem has not been investigated yet.<\/jats:p>\n<\/jats:sec><jats:sec>\n<jats:title>Goal<\/jats:title>\n<jats:p>This study aims to comprehend the degree to which the non-uniformity of agglomerations is either the most common or the most exceptional situation during the evolution of software projects. We perform this investigation by grouping software projects under two transverse dimensions: types and domains of software.<\/jats:p>\n<\/jats:sec><jats:sec>\n<jats:title>Method<\/jats:title>\n<jats:p>To this end, we performed a two-phase investigation: in phase I, we analyzed the historical data obtained from fifteen software projects split as three groups of types of software (distributed, service-oriented, and mobile projects); in phase II, we analyzed the evolution of six projects grouped as two domains of software (graph and timeseries databases). For each phase, we (i) mined instances of a design problem (code complexity) and concerns from the source code of projects, (ii) agglomerated the instances of code complexity around the concerns and analyzed them according to the grouped projects, and (iii) examined the resulting dataset with the help of visualizations and a statistical analysis.<\/jats:p>\n<\/jats:sec><jats:sec>\n<jats:title>Results\/Discussion<\/jats:title>\n<jats:p>Types of software actually shows a tendency to reveal cases of non-uniformity. On the other hand, domains of software show a partial advantage regarding the production of more uniform agglomerations through evolution.<\/jats:p>\n<\/jats:sec>","DOI":"10.1186\/s13173-020-00099-y","type":"journal-article","created":{"date-parts":[[2020,7,4]],"date-time":"2020-07-04T04:41:38Z","timestamp":1593837698000},"update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Relationships between design problem agglomerations and concerns having types and domains of software as transverse dimensions"],"prefix":"10.1186","volume":"26","author":[{"given":"Luis Paulo","family":"da S. Carvalho","sequence":"first","affiliation":[]},{"given":"Renato L.","family":"Novais","sequence":"additional","affiliation":[]},{"given":"Manoel","family":"Mendon\u00e7a","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2020,7,4]]},"reference":[{"key":"99_CR1","doi-asserted-by":"publisher","first-page":"41","DOI":"10.1109\/SBCARS.2016.11","volume-title":"2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS)","author":"S Vidal","year":"2016","unstructured":"Vidal S, Guimaraes E, Oizumi W, Garcia A, Pace AD, Marcos C (2016) Identifying architectural problems through prioritization of code smells In: 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), 41\u201350.. IEEE, Maringa."},{"key":"99_CR2","doi-asserted-by":"publisher","first-page":"178","DOI":"10.1109\/WICSA.2016.15","volume-title":"2016 13th Working IEEE\/IFIP Conference on Software Architecture (WICSA)","author":"DM Le","year":"2016","unstructured":"Le DM, Carrillo C, Capilla R, Medvidovic N (2016) Relating architectural decay and sustainability of software systems In: 2016 13th Working IEEE\/IFIP Conference on Software Architecture (WICSA), 178\u2013181.. IEEE, Venice."},{"key":"99_CR3","first-page":"10","volume-title":"12th Working Conference on Reverse Engineering (WCRE\u201905)","author":"A Trifu","year":"2005","unstructured":"Trifu A, Marinescu R (2005) Diagnosing design problems in object oriented systems In: 12th Working Conference on Reverse Engineering (WCRE\u201905), 10\u2013164.. IEEE, Pittsburgh."},{"key":"99_CR4","unstructured":"Lanza M, Marinescu R (2010) Object-oriented metrics in practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems. 1st. Springer Publishing Company, Incorporated."},{"key":"99_CR5","doi-asserted-by":"publisher","first-page":"260","DOI":"10.1109\/ICSM.2013.37","volume-title":"2013 IEEE International Conference on Software Maintenance","author":"FA Fontana","year":"2013","unstructured":"Fontana FA, Ferme V, Marino A, Walter B, Martenka P (2013) Investigating th impact of code smells on system\u2019s quality: an empirical study on systems of different application domains In: 2013 IEEE International Conference on Software Maintenance, 260\u2013269.. IEEE, Eindhoven."},{"key":"99_CR6","doi-asserted-by":"publisher","first-page":"271","DOI":"10.1109\/SERA.2017.7965737","volume-title":"2017 IEEE 15th International Conference on Software Engineering Research, Management and Applications (SERA)","author":"S Velioglu","year":"2017","unstructured":"Velioglu S, Selcuk YE (2017) An automated code smell and anti-pattern detection approach In: 2017 IEEE 15th International Conference on Software Engineering Research, Management and Applications (SERA), 271\u2013275.. IEEE, London. https:\/\/doi.org\/10.1109\/SERA.2017.7965737."},{"key":"99_CR7","unstructured":"Fowler M, Beck K (2018) Refactoring: improving the design of existing code. ISBN\/ISSN: 013475770X. Addison-Wesley Professional."},{"key":"99_CR8","first-page":"440","volume-title":"Proceedings of the 38th International Conference on Engineering. ICSE \u201916","author":"W Oizumi","year":"2016","unstructured":"Oizumi W, Garcia A, da Silva Sousa L, Cafeo B, Zhao Y (2016) Code anomalies flock together: exploring code anomaly agglomerations for locating design problems In: Proceedings of the 38th International Conference on Engineering. ICSE \u201916, 440\u2013451.. IEEE, Austin."},{"key":"99_CR9","first-page":"3","volume-title":"2018 XII Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS)","author":"LP Carvalho","year":"2018","unstructured":"Carvalho LP, Novais R, Mendon\u00e7a 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 Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), 3\u201312.. Association for Computing Machinery (ACM), NY."},{"key":"99_CR10","doi-asserted-by":"publisher","first-page":"406","DOI":"10.1109\/ICSE.2002.1007986","volume-title":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","author":"MR Robillard","year":"2002","unstructured":"Robillard MR, Murphy GC (2002) Concern graphs: finding and describing concerns using structural program dependencies In: Proceedings of the 24th International Conference on Software Engineering. ICSE 2002, 406\u2013416.. IEEE, USA."},{"key":"99_CR11","unstructured":"Sant\u2019Anna C, Figueiredo E, Garcia A, Lucena C (2007) On the modularity assessment of software architectures: do my architectural concerns count In: Proc. International Workshop on Aspects in Architecture Descriptions (AARCH. 07), AOSD vol. 7."},{"key":"99_CR12","first-page":"106","volume-title":"Proceedings of the 25th International Conference on Software Engineering","author":"EJ Barry","year":"2003","unstructured":"Barry EJ, Kemerer CF, Slaughter SA (2003) On the uniformity of software evolution patterns In: Proceedings of the 25th International Conference on Software Engineering, 106\u2013113.. IEEE Computer Society, USA."},{"key":"99_CR13","doi-asserted-by":"publisher","first-page":"213","DOI":"10.1109\/CSMR.2012.30","volume-title":"2012 16th European Conference on Software Maintenance and Reengineering","author":"M Goul\u00e3o","year":"2012","unstructured":"Goul\u00e3o M, Fonte N, Wermelinger M, Brito e Abreu F (2012) Software evolution prediction using seasonal time analysis: a comparative study In: 2012 16th European Conference on Software Maintenance and Reengineering, 213\u2013222.. IEEE, Szeged, Hungary."},{"key":"99_CR14","doi-asserted-by":"publisher","first-page":"91","DOI":"10.1109\/SBES.2014.18","volume-title":"2014 Brazilian Symposium on Software Engineering","author":"WN Oizumi","year":"2014","unstructured":"Oizumi WN, Garcia AF, Colanzi TE, Ferreira M, v. Staa A (2014) When code-anomaly agglomerations represent architectural problems? An exploratory study In: 2014 Brazilian Symposium on Software Engineering, 91\u2013100.. IEEE, Maceio."},{"issue":"1","key":"99_CR15","doi-asserted-by":"publisher","first-page":"11","DOI":"10.1186\/s40411-015-0025-y","volume":"3","author":"WN Oizumi","year":"2015","unstructured":"Oizumi WN, Garcia AF, Colanzi TE, Ferreira M, Staa AV (2015) On the relationship of code-anomaly agglomerations and architectural problems. J Softw Eng Res Dev 3(1):11.","journal-title":"J Softw Eng Res Dev"},{"key":"99_CR16","first-page":"74","volume-title":"2018 IEEE\/ACM 26th International Conference on Program Comprehension (ICPC)","author":"M D\u00f3sea","year":"2018","unstructured":"D\u00f3sea M, Sant\u2019Anna C, da Silva BC (2018) How do design decisions affect the distribution of software metrics? In: 2018 IEEE\/ACM 26th International Conference on Program Comprehension (ICPC), 74\u20137411.. IEEE, Gothenburg, Sweden."},{"key":"99_CR17","unstructured":"Mendes T, Novais R, Mendonca M, Carvalho L, Gomes F (2017) Repositoryminer - uma ferramenta extensivel de minera\u00e7\u00e3o de repositorios de software para identificacao automatica de divida tecnica In: CBSoft 2017 - Sessao de Ferramentas."},{"key":"99_CR18","first-page":"1","volume-title":"2017 XLIII Latin American Computer Conference (CLEI)","author":"M Ag\u00fcero","year":"2017","unstructured":"Ag\u00fcero M, Ballejos L (2017) Dependency management in the cloud: an efficient proposal for java In: 2017 XLIII Latin American Computer Conference (CLEI), 1\u20139.. IEEE, Cordoba."},{"key":"99_CR19","doi-asserted-by":"crossref","unstructured":"Palyart M, Murphy GC, Masrani V (2018) A study of social interactions in open source component use In: EEE Transactions on Software Engineering. Vol. 44. No. 12, 1132\u20131145.. IEEE.","DOI":"10.1109\/TSE.2017.2756043"},{"key":"99_CR20","doi-asserted-by":"publisher","first-page":"442","DOI":"10.1016\/j.jss.2016.06.101","volume":"131","author":"A Shatnawi","year":"2017","unstructured":"Shatnawi A, Seriai A-D, Sahraoui H, Alshara Z (2017) Reverse engineering reusable software components from object-oriented apis. J Syst Softw 131:442\u2013460.","journal-title":"J Syst Softw"},{"key":"99_CR21","doi-asserted-by":"publisher","first-page":"312","DOI":"10.1109\/STEP.1997.615520","volume-title":"Proceedings Eighth IEEE International Workshop on Software Technology and Engineering Practice Incorporating Computer Aided Software Engineering","author":"H Gomaa","year":"1997","unstructured":"Gomaa H, Farrukh G (1997) A software engineering environment for configuring distributed applications from reusable software architectures In: Proceedings Eighth IEEE International Workshop on Software Technology and Engineering Practice Incorporating Computer Aided Software Engineering, 312\u2013325.. IEEE, London."},{"key":"99_CR22","doi-asserted-by":"publisher","first-page":"189","DOI":"10.1109\/iV.2015.42","volume-title":"2015 19th International Conference on Information Visualisation","author":"R Francese","year":"2015","unstructured":"Francese R, Risi M, Scanniello G (2015) Enhancing software visualization with information retrieval In: 2015 19th International Conference on Information Visualisation, 189\u2013194.. IEEE, Barcelona."},{"key":"99_CR23","doi-asserted-by":"crossref","unstructured":"Oizumi W, Sousa L, Garcia A, Oliveira R, Oliveira A, Agbachi O, Lucena C (2017) Revealing design problems in stinky code: a mixed-method study In: Proceedings of the 11th Brazilian Symposium on Software Components, Architectures, and Reuse, 5.","DOI":"10.1145\/3132498.3132514"},{"issue":"6","key":"99_CR24","doi-asserted-by":"publisher","first-page":"427","DOI":"10.1002\/smr.307","volume":"16","author":"MP O\u2019Brien","year":"2004","unstructured":"O\u2019Brien MP, Buckley J, Shaft TM (2004) Expectation-based, inference-based, and bottom-up software comprehension. J Softw Maint Evol Res Pract 16(6):427\u2013447. Wiley Online Library.","journal-title":"J Softw Maint Evol Res Pract"},{"key":"99_CR25","doi-asserted-by":"publisher","first-page":"336","DOI":"10.1109\/APSEC.2010.46","volume-title":"2010 Asia Pacific Software Engineering Conference","author":"E Tempero","year":"2010","unstructured":"Tempero E, Anslow C, Dietrich J, Han T, Li J, Lumpe M, Melton H, Noble J (2010) The qualitas corpus: a curated collection of java code for empirical studies In: 2010 Asia Pacific Software Engineering Conference, 336\u2013345.. IEEE, Sydney."},{"key":"99_CR26","doi-asserted-by":"publisher","first-page":"211","DOI":"10.1007\/978-3-030-29983-5_14","volume-title":"European Conference on Software Architecture","author":"A Busch","year":"2019","unstructured":"Busch A, Fuch\u00df D, Eckert M, Koziolek A (2019) Assessing the quality impact of features in component-based software architectures In: European Conference on Software Architecture, 211\u2013219.. Springer, Cham."},{"issue":"4","key":"99_CR27","doi-asserted-by":"publisher","first-page":"22","DOI":"10.1109\/MS.2006.91","volume":"23","author":"P Runeson","year":"2006","unstructured":"Runeson P (2006) A survey of unit testing practices. IEEE Software 23(4):22\u201329.","journal-title":"IEEE Software"},{"key":"99_CR28","doi-asserted-by":"publisher","first-page":"9","DOI":"10.1109\/WETSoM.2017.2","volume-title":"2017 IEEE\/ACM 8th Workshop on Emerging Trends in Software Metrics (WETSoM)","author":"D Bowes","year":"2017","unstructured":"Bowes D, Hall T, Petric J, Shippey T, Turhan B (2017) How good are my tests? In: 2017 IEEE\/ACM 8th Workshop on Emerging Trends in Software Metrics (WETSoM), 9\u201314.. IEEE, Buenos Aires."},{"key":"99_CR29","doi-asserted-by":"publisher","first-page":"179","DOI":"10.1109\/ICSE.2015.146","volume-title":"2015 IEEE\/ACM 37th IEEE International Conference on Software Engineering","author":"R Kazman","year":"2015","unstructured":"Kazman R, Cai Y, Mo R, Feng Q, Xiao L, Haziyev S, Fedak V, Shapochka A (2015) A case study in locating the architectural roots of technical debt In: 2015 IEEE\/ACM 37th IEEE International Conference on Software Engineering, 179\u2013188.. IEEE, Florence."},{"key":"99_CR30","doi-asserted-by":"publisher","first-page":"51","DOI":"10.1109\/WICSA.2015.12","volume-title":"2015 12th Working IEEE\/IFIP Conference on Software Architecture","author":"R Mo","year":"2015","unstructured":"Mo R, Cai Y, Kazman R, Xiao L (2015) Hotspot patterns: the formal definition and automatic detection of architecture smells In: 2015 12th Working IEEE\/IFIP Conference on Software Architecture, 51\u201360.. IEEE, Montreal."},{"key":"99_CR31","first-page":"403","volume-title":"Proceedings of the 37th International Conference on Software Engineering-Volume 1","author":"M Tufano","year":"2015","unstructured":"Tufano M, Palomba F, Bavota G, Oliveto R, Di Penta M, De Lucia A, Poshyvanyk D (2015) When and why your code starts to smell bad In: Proceedings of the 37th International Conference on Software Engineering-Volume 1, 403\u2013414.. IEEE, Florence."},{"key":"99_CR32","first-page":"1","volume-title":"Computing and Communication (IEMCON), 2015 International Conference and Workshop On","author":"K Bajaj","year":"2015","unstructured":"Bajaj K, Patel H, Patel J (2015) Evolutionary software development using test driven approach In: Computing and Communication (IEMCON), 2015 International Conference and Workshop On, 1\u20136.. IEEE, Vancouver."},{"key":"99_CR33","volume-title":"Software Engineering","author":"I Sommerville","year":"2010","unstructured":"Sommerville I (2010) Software Engineering. 9th edn.. Addison-Wesley Publishing Company, USA."},{"key":"99_CR34","doi-asserted-by":"publisher","first-page":"128","DOI":"10.1016\/j.jss.2015.09.019","volume":"111","author":"T Vale","year":"2016","unstructured":"Vale T, Crnkovic I, De Almeida ES, Neto PADMS, Cavalcanti YC, de Lemos Meira SR (2016) Twenty-eight years of component-based software engineering. J Syst Softw 111:128\u2013148.","journal-title":"J Syst Softw"},{"key":"99_CR35","volume-title":"Introduction to graph theory, vol. 2","author":"D B. West","year":"1996","unstructured":"B. West D (1996) Introduction to graph theory, vol. 2. Prentice hall, Upper Saddle River, NJ."}],"container-title":["Journal of the Brazilian Computer Society"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s13173-020-00099-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1186\/s13173-020-00099-y\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s13173-020-00099-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,8,13]],"date-time":"2024-08-13T10:46:10Z","timestamp":1723545970000},"score":1,"resource":{"primary":{"URL":"https:\/\/journal-bcs.springeropen.com\/articles\/10.1186\/s13173-020-00099-y"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,7,4]]},"references-count":35,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2020,12]]}},"alternative-id":["99"],"URL":"https:\/\/doi.org\/10.1186\/s13173-020-00099-y","relation":{},"ISSN":["0104-6500","1678-4804"],"issn-type":[{"type":"print","value":"0104-6500"},{"type":"electronic","value":"1678-4804"}],"subject":[],"published":{"date-parts":[[2020,7,4]]},"assertion":[{"value":"15 February 2019","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"22 June 2020","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"4 July 2020","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"The authors declare that they have no competing interests.","order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Competing interests"}}],"article-number":"5"}}