Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/62055
Type: Tese
Title: Modeling and predicting evolution of object-oriented software quality internal attributes
Other Titles: Modelagem e predição da evolução dos atributos internos de qualidade de software orientado por objetos
Authors: Bruno Luan de Sousa
First Advisor: Mariza Andrade da Silva Bigonha
First Co-advisor: Kécia Aline Marques Ferreira
metadata.dc.contributor.advisor-co2: Glaura da Conceição Franco
First Referee: Guilherme Horta Travassos
Second Referee: José Carlos Maldonado
Third Referee: André Cavalcante Hora
metadata.dc.contributor.referee4: Eduardo Magno Lages Figueiredo
Abstract: Software 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.
Abstract: Evoluçã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.
Subject: Computação - Teses
Engenharia de Software - Teses
Software - Desenvolvimento - Tese
Séries temporais - Teses
language: eng
metadata.dc.publisher.country: Brasil
Publisher: Universidade Federal de Minas Gerais
Publisher Initials: UFMG
metadata.dc.publisher.department: ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
metadata.dc.publisher.program: Programa de Pós-Graduação em Ciência da Computação
Rights: Acesso Aberto
metadata.dc.rights.uri: http://creativecommons.org/licenses/by-nc-nd/3.0/pt/
URI: http://hdl.handle.net/1843/62055
Issue Date: 29-Aug-2023
Appears in Collections:Teses de Doutorado



This item is licensed under a Creative Commons License Creative Commons