Modeling and predicting evolution of object-oriented software quality internal attributes

dc.creatorBruno Luan de Sousa
dc.date.accessioned2023-12-18T17:31:34Z
dc.date.accessioned2025-09-09T00:06:20Z
dc.date.available2023-12-18T17:31:34Z
dc.date.issued2023-08-29
dc.description.abstractEvolução do software é um processo natural do ciclo de vida do software que consiste em adaptar, manter e atualizá-lo. Conhecer e compreender como os sistemas de software evoluem pode contribuir para sua gestão e controle de qualidade. Esta tese de doutorado investiga como os sistemas de software evoluem, especificamente em seus atributos internos de qualidade, como coesão e acoplamento. Embora muitos estudos tenham sido realizados sobre a evolução de software, não havia até agora uma visão geral e consolidada do estado da arte sobre modelos para evolução de software. Assim, nosso primeiro passo foi realizar um Mapeamento Sistemático da Literatura (MSL) para identificar o que tem sido produzido a respeito de modelos para evolução de software. Nosso MSL identificou 71 artigos publicados de 1979 a 2022. A análise desses estudos revelou que: (i) os modelos de evolução de software têm sido construídos com base em três categorias: caracterização, descrição e predição; (ii) os principais focos dos modelos têm sido predição de defeitos e mudanças, caracterização da evolução da estrutura interna do software e detalhamento de como propriedades intrínsecas dos sistemas de software evoluem; (iii) pesquisadores têm preferido construir datasets próprios para condução de estudos em evolução de software ao invés de utilizar datasets existentes; (iv) existem alguns importantes datasets disponibilizados publicamente na literatura, porém eles não contêm uma grande quantidade e variedade de sistemas e estão desatualizados; e (v) as principais técnicas usadas para criar modelos são Aprendizado de máquina, técnicas de Regressão, ARIMA e técnicas Baseada em Grafos. Esta tese de doutorado avança no estado da arte ao propor um modelo para análise e predição da evolução de atributos internos de qualidade de software. Consideramos quatro características internas de sistemas de software orientado por objetos: acoplamento, coesão, hierarquia de herança e tamanho de classe. Extraímos e analisamos dados de 46 softwares de código aberto baseados em Java. Esses dados referem-se a oito métricas de software correspondentes aos atributos internos de qualidade considerados neste estudo. Definimos um novo método para analisar e prever a evolução de software. Nosso método usa análise de séries temporais, técnicas de regressão linear e testes de tendência. Neste estudo, aplicamos o método proposto para investigar como a estrutura interna de sistemas de software orientados por objetos evolui em termos dos atributos internos analisadas e neste processo identificamos os modelos que melhor explicam a evolução dos atributos internos analisadas. Além disso, investigamos como se comportam as relações entre as métricas dos atributos internos ao longo da evolução dos softwares e analisamos o conjunto de classes existente nos sistemas que afetam a evolução desses atributos internos. Os principais resultados deste estudo revelaram dez propriedades de evolução de software, entre elas: acoplamento, coesão e herança evoluem linearmente; um percentual relevante de classes contribui para a evolução do acoplamento e do tamanho; uma pequena percentagem de classes contribui para a evolução da coesão. Os resultados também indicam que nosso método pode prever com precisão como um software evoluirá em previsões de curto e longo prazo. Em cenários reais de Engenharia de Software, os resultados desta tese de doutorado podem auxiliar os desenvolvedores no planejamento de suas estratégias para acomodar mudanças e novas funcionalidades no software de forma que a degradação da arquitetura de software possa ser mitigada ou evitada.
dc.description.sponsorshipCAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superior
dc.identifier.urihttps://hdl.handle.net/1843/62055
dc.languageeng
dc.publisherUniversidade Federal de Minas Gerais
dc.rightsAcesso Aberto
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/pt/
dc.subjectComputação - Teses
dc.subjectEngenharia de Software - Teses
dc.subjectSoftware - Desenvolvimento - Tese
dc.subjectSéries temporais - Teses
dc.subject.otherSoftware evolution
dc.subject.otherSoftware metrics
dc.subject.otherSoftware quality
dc.subject.otherTime series
dc.subject.otherTrend analysis
dc.titleModeling and predicting evolution of object-oriented software quality internal attributes
dc.title.alternativeModelagem e predição da evolução dos atributos internos de qualidade de software orientado por objetos
dc.typeTese de doutorado
local.contributor.advisor-co1Kécia Aline Marques Ferreira
local.contributor.advisor-co1Glaura da Conceição Franco
local.contributor.advisor1Mariza Andrade da Silva Bigonha
local.contributor.advisor1Latteshttp://lattes.cnpq.br/6660127471891321
local.contributor.referee1Guilherme Horta Travassos
local.contributor.referee1José Carlos Maldonado
local.contributor.referee1André Cavalcante Hora
local.contributor.referee1Eduardo Magno Lages Figueiredo
local.creator.Latteshttp://lattes.cnpq.br/9479989623934000
local.description.resumoSoftware evolution is a natural software life cycle process that consists of adapting, maintaining, and updating it. Knowing and understanding how software systems evolve can contribute to their management and quality control. This Ph.D. dissertation investigates how software systems evolve, precisely their internal quality attributes, such as cohesion and coupling. Although many studies have been done on software evolution, until now, there has not been an overview of the state of the art in modeling software evolution. Thus, our first step was to carry out a Systematic Literature Mapping (SLM) to identify what is being produced regarding models for software evolution. Our SLM identified 71 articles published from 1979 to 2022. The analysis of these studies revealed that: (i) software evolution models were built in three categories: characterization, description, and prediction; (ii) the primary purposes of models are the prediction of defects and changes, characterization of the evolution of the internal structure of the software and explanation of how the intrinsic properties of software systems evolve; (iii); researchers have invested in generating datasets to be used in software evolution modeling studies rather than using existing datasets; (iv) there are some well-known software evolution datasets publicly available in the literature, but they are not very large and are outdated; and (v) Machine learning, regression techniques, ARIMA and graph-based techniques are the main techniques used to create models. This Ph.D. dissertation advances state of the art by proposing a model for analyzing and predicting internal software quality attributes. We consider four internal characteristics of object-oriented software systems: coupling, cohesion, inheritance hierarchy, and class size. We extracted and analyzed data from 46 Java-based open-source software systems. These data refer to eight software metrics referring to the internal attributes analyzed in this study. We define a new method to analyze and predict software evolution. Our method uses time series analysis, linear regression techniques, and trend testing. In this work, we apply the proposed model to investigate how the internal structure of object-oriented software systems evolves in terms of the analyzed internal attributes. Using the proposed method, we identified the functions that best explain the evolution of the analyzed internal attributes. In addition, we investigate how the relationship between internal attributes metrics behaves along the evolution of the systems and the set of existing classes in the systems that affect the evolution of these internal attributes. The main results of this study reveal ten properties of software evolution, among them: coupling, cohesion, and inheritance evolve linearly; a relevant percentage of classes contribute to size coupling and evolution; a small percentage of classes contribute to the evolution of cohesion. The results also indicate that our method can accurately predict how the software system will evolve in short- and long-term forecasts. In real software engineering scenarios, the results of this Ph.D. dissertation can help developers in planning their strategies to accommodate changes and new features in the software so that software architecture degradation can be mitigated or avoided.
local.publisher.countryBrasil
local.publisher.departmentICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
local.publisher.initialsUFMG
local.publisher.programPrograma de Pós-Graduação em Ciência da Computação

Arquivos

Pacote original

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
Modeling and predicting evolution of object-oriented software quality internal attributes.pdf
Tamanho:
1.75 MB
Formato:
Adobe Portable Document Format

Licença do pacote

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
2.07 KB
Formato:
Plain Text
Descrição: