| dc.contributor.advisor | Barros, Márcio de Oliveira | |
| dc.contributor.author | Antunes, Léo Carvalho Ramos | |
| dc.date.accessioned | 2026-11-03T23:52:18Z | |
| dc.date.available | 2026-11-03T23:52:18Z | |
| dc.date.issued | 2026-08-27 | |
| dc.identifier.citation | ANTUNES, Léo Carvalho Ramos. Search-Based Hierarchical Software Module Clustering. 2026. 174 f. Tese (Doutorado em Informática) – Programa de Pós-Graduação em Informática, Centro de Ciências Exatas e Tecnologia, Universidade Federal do Estado do Rio de Janeiro, Rio de Janeiro, 2026. | pt_BR |
| dc.identifier.uri | http://hdl.handle.net/unirio/15498 | |
| dc.description.sponsorship | n/a | pt_BR |
| dc.language.iso | English | pt_BR |
| dc.rights | openAccess | pt_BR |
| dc.title | Search-Based Hierarchical Software Module Clustering | pt_BR |
| dc.type | doctoralThesis | pt_BR |
| dc.contributor.referee | Barros, Márcio de Oliveira | |
| dc.contributor.referee | Mello, Carlos Eduardo Ribeiro de | |
| dc.contributor.referee | Souza, Gleison dos Santos | |
| dc.contributor.referee | Souza, Jerffeson Teixeira de | |
| dc.contributor.referee | Murta, Leonardo Gresta Paulino | |
| dc.degree.department | CCET | pt_BR |
| dc.degree.grantor | Universidade Federal do Estado do Rio de Janeiro - UNIRIO | pt_BR |
| dc.degree.local | Rio de Janeiro,RJ | pt_BR |
| dc.degree.program | Programa de Pós-Graduação em Informática | pt_BR |
| dc.subject.cnpq | CIÊNCIAS EXATAS E DA TERRA.CIÊNCIA DA COMPUTAÇÃO | pt_BR |
| dc.subject.en | Software Engineering | pt_BR |
| dc.subject.en | Software Modularization | pt_BR |
| dc.subject.en | Hierarchical Clustering | pt_BR |
| dc.description.abstracten | Heuristic search algorithms have been applied in various areas of Software Engineering, such as requirements prioritization, software architecture improvement, and time and cost planning. The research field of Search-based Software Engineering (SBSE) proposes the use of heuristic search techniques to solve Software Engineering challenges, which are described as optimization problems. One of the challenges frequently analyzed from the SBSE perspective is the Software Module Clustering (SMC) problem. This problem concerns the distribution of modules (or classes) within a software project across larger structures called clusters (or packages). A good distribution of classes into packages tends to make software easier to develop and maintain. In addition, practice and experimental studies have shown a strong correlation between poor distributions and the presence of component failures. The quality of the distribution of software modules into clusters is evaluated through metrics that quantify desired characteristics. The main factors used to assess the quality of distributions are coupling and cohesion. However, research shows that optimization based on metrics capturing structural characteristics alone does not yield an adequate distribution of classes across packages from the perspective of software developers. One reason that might have led to such limited results is the search for non-hierarchical class distributions across packages. Another reason may be the implicit relationships among classes that lack explicit structural connections. In this thesis, we analyze an alternative approach to software modularization, aiming to achieve two distinct goals. First, we examine whether using a hierarchy-based metric (MDL) to guide the clustering algorithm yields solutions closer to those proposed by software developers. We conducted a study that shows improvements relative to a purely flat metric (MQ). Second, we extend the metric by considering inter-class distances based on how often classes change together in version-control commits, capturing implicit dependencies among classes in a software project. Likewise, we evaluate the results against the solutions proposed by developers and demonstrate further improvements over prior metrics. These results indicate that co-change relationships extracted from commits are a relevant source of information for the SMC problem, complementing the structural dependencies traditionally used to address it. | pt_BR |
| dc.degree.country | Brasil | pt_BR |
| dc.description.sponsordocumentnumber | n/a | pt_BR |
| dc.description.abstractpt | Algoritmos de busca heurística têm sido aplicados em diversas áreas da Engenharia de Software, como a priorização de requisitos, a melhoria da arquitetura de projetos de software e o planejamento de tempo e custo de desenvolvimento dos projetos. O campo de pesquisa da Engenharia de Software Baseada em Buscas (Search-based Software Engineering, ou SBSE) propõe a utilização de técnicas de busca heurística para resolver problemas de Engenharia de Software descritos sob uma perspectiva de otimização. Um dos problemas frequentemente analisados segundo esta perspectiva é o da Clusterização de Módulos de Software (CMS). Este problema lida com a distribuição de módulos (ou classes) de um software entre estruturas maiores chamadas clusters (ou pacotes). Uma boa distribuição das classes em pacotes tende a tornar o software mais fácil de desenvolver e manter. Além disso, estudos práticos e experimentais mostraram uma forte correlação entre distribuições ruins e a presença de falhas nos componentes. A qualidade da distribuição de módulos de software em clusters é avaliada através de métricas que quantificam as características desejadas (e.g. coesão e acoplamento). No entanto, pesquisas mostram que otimizações baseadas em métricas que captam somente características estruturais não resultam em uma distribuição adequada do ponto de vista dos desenvolvedores de software. Duas razões que podem ter levado a resultados insatisfatórios são: distribuições não hierárquicas de classes em pacotes e a desconsideração de relacionamentos implícitos entre as classes do sistema. Nesta tese, analisamos duas abordagens alternativas de clusterização. Primeiro, avaliamos se o uso de uma métrica hierárquica (MDL) produz soluções mais próximas às propostas pelos desenvolvedores. Realizamos um estudo que indica melhora em relação à métrica puramente estrutural (MQ). Em segundo lugar, estendemos a métrica considerando diferentes distâncias entre classes, com base na frequência com que elas aparecem juntas em commits de sistemas de controle de versão – permitindo capturar dependências implícitas entre elas. De igual modo, os resultados indicam melhora em relação às métricas anteriores e que as relações de co-modificação extraídas dos commits são uma fonte de informação relevante para o problema de CMS, complementar às dependências estruturais tradicionalmente utilizadas. | pt_BR |
| dc.subject.pt | Engenharia de Software | pt_BR |
| dc.subject.pt | Modularização | pt_BR |
| dc.subject.pt | Clusterização Hierárquica | pt_BR |