Remodularization analysis using semantic clustering
Carregando...
Arquivos
Data
Autor(es)
Título da Revista
ISSN da Revista
Título de Volume
Editor
Universidade Federal de Minas Gerais
Descrição
Tipo
Dissertação de mestrado
Título alternativo
Primeiro orientador
Membros da banca
Eduardo Magno Lages Figueiredo
Marcelo de Almeida Maia
Marcelo de Almeida Maia
Resumo
Durante a evolução de software, sua estrutura inevitavelmente se torna mais difícil de manter, a menos que um esforço explícito de manutenção seja feito para melhorá-la. No intuito de resolver esse problema, a recomendação comum consiste em organizar a estrutura do software em módulos. Esse processo é geralmente realizado através daotimização de valores de métricas estruturais de coesão e acoplamento, por exemplo. No entanto, trabalhos recentes começam a questionar a utilidade de métricas estruturais. Mais especificamente, essas métricas não expressam integralmente a melhoria na arquitetura resultante de um processo de manutenção. Nesta dissertação de mestrado, éseguida metodologia existente para avaliar métricas de software considerando remodularizações reais, ou seja, cuja manutenção foi realizada pelos arquitetos do software. Foi utilizado um conjunto de métricas que consideram similaridade textual entre artefatos de software, chamadas métricas conceituais. Para realizar essa tarefa, foi relatado um experimento sobre o uso de Agrupamento Semântico (Semantic Clustering) para avaliar remodularizações de software. Agrupamento Semântico é uma abordagem que se baseia em recuperação de informação e técnicas de agrupamento para extrair conjuntos de classes similares de acordo com seus vocabulários. Foi reportada a adaptação que realizou-se nessa técnica e esta adaptação foi avaliada usando seis remodularizações de quatro sistemas de software. Observou-se que Agrupamento Semântico e métricasconceituais podem ser usados para expressar e explicar a intenção dos arquitetors ao realizar operações de modularização recorrentes, como decomposição de módulos.
Abstract
As software evolves, its structure inevitably gets harder to understand and maintain, unless explicit effort is done to improve it. To tackle this problem, the common recommendation consists in organizing the software structure into modules. This process is often performed by optimizing the value of cohesion and coupling metrics, for example.However, recent work question the usefulness of structural metrics. More specifically, structural metrics do not seem to fully express the architectural improvement resulted from software maintenance. In this master dissertation, we follow an existing methodology to assess software metrics regarding real remodularization cases, i.e., in whichthe maintenance was performed by the softwares architects. We use a set of recently proposed metrics, called conceptual metrics, which consider textual similarity between software artifacts. To accomplish this task, we report an experiment on using Semantic Clustering to evaluate software remodularizations. Semantic Clustering is an approach that relies on information retrieval and clustering techniques to extract sets of similar classes in a system according to their vocabularies. In fact, we adapted Semantic Clustering to support remodularization analysis. We then evaluate our adaptation using six real-world remodularizations of four software systems. As a result, we conclude that Semantic Clustering and conceptual metrics can be used to express and explain the intention of architects when performing common modularization operations, suchas module decomposition.
Assunto
Software Reutilização, Computação, Engenharia de software
Palavras-chave
Remodularização, Arquitetura de Software, Processamento de Texto, Recuperação de Informação, Semantic Clustering, Métricas Conceituais, Manutenção de Software