• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 18
  • 7
  • 2
  • Tagged with
  • 27
  • 27
  • 17
  • 10
  • 7
  • 7
  • 6
  • 6
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
11

TDRRC - Técnica para Documentação e Recuperação de Requisitos no Código-Fonte através do uso de anotações. / TDRRC - A Technique to Document and Recover Requirements in the Source-Code by using annotations.

Vinicius Miana Bezerra 22 November 2011 (has links)
Manter os documentos de requisitos atualizados e recuperar os requisitos de um software são desafios enfrentados por desenvolvedores no seu dia a dia durante o desenvolvimento, a manutenção e a evolução de sistemas. Embora existam técnicas para gestão de requisitos, muitas vezes estas técnicas não são aplicadas, os requisitos não são atualizados e a única fonte de informação confiável sobre um software passa a ser seu código-fonte. Esta tese apresenta a TDRRC, uma técnica para a documentação e recuperação dos requisitos no código-fonte usando anotações. A TDRRC possibilita a reengenharia de requisitos sem que haja uma interrupção no desenvolvimento e permite que os requisitos sejam documentados em ambientes de desenvolvimento ágil. A TDRRC contribui para a redução dos problemas relacionados à atualização dos requisitos, pois o desenvolvedor responsável pelo programa passa a ser responsável pela documentação e atualização dos requisitos no código-fonte que ele escreve e mantém. Este trabalho apresenta também formas de aplicar a TDRRC na reengenharia de requisitos, em métodos ágeis e na gestão de requisitos, assim como a sua aplicação em um estudo de caso. / Keeping requirements documents updated and recovering requirements of a software are common challenges faced by developers on their day to day activities. Although there are many requirements management techniques, usually these techniques are not applied, requirements are not updated and the only reliable source of information about a software becomes its source code. This thesis presents TDRRC, a technique that can be used to document and retrieve requirements from the source code using annotations. Applying TDRRC, it is possible to reengineer the requirements of a software without interrupting its development. Also requirements can be documented in a agile environment. TDRRC also contributes to minimize requirements documents update issues as the developer will be clearly responsible for documenting and updating the requirements in the source code he is programming. This thesis also presents how to apply the technique in a requirement reengineering project, in a agile development environment and in a requirements management process. Finally a case study is presented.
12

Evolução de software baseada em avaliação de arquiteturas. / Software evolution based on architecture evaluation.

Pontes, Danielle Pompeu Noronha 16 March 2012 (has links)
Este trabalho discorre sobre o estudo da utilização do método de avaliação ATAM como referência para um roteiro para evolução arquitetural. O estudo apresentado está dividido em duas partes: a elaboração de um roteiro para evolução de software e a aplicação do roteiro em um ambiente real de um sistema para automação de linhas aéreas. O objetivo é avaliar o uso do método de avaliação de arquitetura para direcionar a evolução do software. As diretrizes geradas neste trabalho orientam as ações a serem tomadas com base em evidências obtidas pela avaliação, possibilitando ao software que exiba os atributos de qualidade desejados. / This paper discusses the study of the use of ATAM evaluation method as a reference to a roadmap for architectural evolution. The present study is divided into two parts: the preparation of a roadmap for software development and implementation of the roadmap in a real environment of a system for automation of airlines. The goal is to evaluate the use of architecture evaluation method to direct the evolution of software. The guidelines generated in this work have guided the actions to be taken based on evidence obtained by the evaluation, enabling the software that displays the desired quality attributes.
13

Evolução de software baseada em avaliação de arquiteturas. / Software evolution based on architecture evaluation.

Danielle Pompeu Noronha Pontes 16 March 2012 (has links)
Este trabalho discorre sobre o estudo da utilização do método de avaliação ATAM como referência para um roteiro para evolução arquitetural. O estudo apresentado está dividido em duas partes: a elaboração de um roteiro para evolução de software e a aplicação do roteiro em um ambiente real de um sistema para automação de linhas aéreas. O objetivo é avaliar o uso do método de avaliação de arquitetura para direcionar a evolução do software. As diretrizes geradas neste trabalho orientam as ações a serem tomadas com base em evidências obtidas pela avaliação, possibilitando ao software que exiba os atributos de qualidade desejados. / This paper discusses the study of the use of ATAM evaluation method as a reference to a roadmap for architectural evolution. The present study is divided into two parts: the preparation of a roadmap for software development and implementation of the roadmap in a real environment of a system for automation of airlines. The goal is to evaluate the use of architecture evaluation method to direct the evolution of software. The guidelines generated in this work have guided the actions to be taken based on evidence obtained by the evaluation, enabling the software that displays the desired quality attributes.
14

Uma abordagem para análise de cobertura de código em cenários de evolução

Gomes, Fladson Thiago Oliveira 03 March 2016 (has links)
Submitted by Automação e Estatística (sst@bczm.ufrn.br) on 2018-07-30T13:26:30Z No. of bitstreams: 1 FladsonThiagoOliveiraGomes_DISSERT.pdf: 2012982 bytes, checksum: 32b3a5c5873614b73f362994472d31a9 (MD5) / Approved for entry into archive by Arlan Eloi Leite Silva (eloihistoriador@yahoo.com.br) on 2018-07-30T22:06:38Z (GMT) No. of bitstreams: 1 FladsonThiagoOliveiraGomes_DISSERT.pdf: 2012982 bytes, checksum: 32b3a5c5873614b73f362994472d31a9 (MD5) / Made available in DSpace on 2018-07-30T22:06:38Z (GMT). No. of bitstreams: 1 FladsonThiagoOliveiraGomes_DISSERT.pdf: 2012982 bytes, checksum: 32b3a5c5873614b73f362994472d31a9 (MD5) Previous issue date: 2016-03-03 / Atualmente, a etapa de testes no processo de desenvolvimento de software tornou-se imprescindível para garantir a confiabilidade e qualidade do código em produção. As constantes evoluções na arquitetura e código de um sistema, criam sérios desafios para os desenvolvedores e testadores, uma vez que modificações podem não se comportar como o esperado. Neste contexto surge a necessidade de ferramentas e mecanismos que diminuam o impacto negativo gerado pelas constantes evoluções do sistema. Dentre as ferramentas que analisam esse impacto, poucas apresentam os fluxos de execução entre métodos que foram afetados e nenhuma apresenta como resultado se esses fluxos afetados pela evolução estão ou não cobertos pelos testes. Assim, este trabalho apresenta uma abordagem que tem como objetivo principal: (i) analisar a cobertura de código levando em consideração os fluxos de chamadas existentes no sistema que foram afetados por evoluções de código, assim como os fluxos de execução oriundos da execução dos testes; (ii) indicar quais fluxos de chamadas do sistema que possuem métodos modificados e não estão sendo cobertos pelos testes atualmente e que, portanto, poderiam ser considerados para melhorar a qualidade dos testes; e (iii) indicar se houve degradação na qualidade da suíte de testes. Um estudo empírico foi realizado em 6 sistemas e os resultados mostram que a abordagem conseguiu identificar entre 19% e 92% de fluxos de execução afetados por mudanças que não estão cobertos e ainda que 3 dos 6 sistemas tiveram uma degradação na qualidade dos testes.
15

Improving the search for refactoring opportunities on object-oriented and aspect-oriented software / Melhorando a busca por oportunidades de refatoração em software orientado a objetos e orientado a aspectos

Piveta, Eduardo Kessler January 2009 (has links)
Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados. / Refactoring is the process of improving the design of software systems without changing their externally observable behaviour. Refactoring can help to incrementally improve the quality of a software system through the application of behavioural preserving transformations called refactoring patterns. The main goal of the research this thesis reports is to provide a detailed process for refactoring, including mechanism for (i) the selection and creation of quality models, the selection of refactoring patterns, and the creation and use of heuristic rules, (ii) the search for refactoring opportunities and prioritisation, (iii) the assessment of the effects of refactoring on software quality, and (iv) the trade-off analysis and the application of refactoring patterns. To exemplify how the approach works and how the process can be used, different case studies are being used throughout the thesis. The selection of refactoring patterns, quality models and heuristic rules, and the search and prioritisation mechanisms are exemplified for object-oriented software. The assessment of refactoring effects on software quality, the trade-off analysis and the application of refactoring patterns are discussed in the context of aspect-oriented programming. Besides the definition of a refactoring process, a set of additional contributions of this thesis are (i) the definition of an approach for the selection and ranking of refactoring patterns, (ii) an approach for reducing the search space for refactoring opportunities when dealing with successive refactoring, (iii) the definition of search mechanisms for refactoring opportunities, (iv) an approach to evaluate the effects of refactoring on software quality, (v) a catalogue of shortcomings in aspect-oriented software and their related refactoring patterns, and (vi) an study of metrics for aspect-oriented software, including their formal definition, analytical evaluation and data interpretation.
16

Improving the search for refactoring opportunities on object-oriented and aspect-oriented software / Melhorando a busca por oportunidades de refatoração em software orientado a objetos e orientado a aspectos

Piveta, Eduardo Kessler January 2009 (has links)
Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados. / Refactoring is the process of improving the design of software systems without changing their externally observable behaviour. Refactoring can help to incrementally improve the quality of a software system through the application of behavioural preserving transformations called refactoring patterns. The main goal of the research this thesis reports is to provide a detailed process for refactoring, including mechanism for (i) the selection and creation of quality models, the selection of refactoring patterns, and the creation and use of heuristic rules, (ii) the search for refactoring opportunities and prioritisation, (iii) the assessment of the effects of refactoring on software quality, and (iv) the trade-off analysis and the application of refactoring patterns. To exemplify how the approach works and how the process can be used, different case studies are being used throughout the thesis. The selection of refactoring patterns, quality models and heuristic rules, and the search and prioritisation mechanisms are exemplified for object-oriented software. The assessment of refactoring effects on software quality, the trade-off analysis and the application of refactoring patterns are discussed in the context of aspect-oriented programming. Besides the definition of a refactoring process, a set of additional contributions of this thesis are (i) the definition of an approach for the selection and ranking of refactoring patterns, (ii) an approach for reducing the search space for refactoring opportunities when dealing with successive refactoring, (iii) the definition of search mechanisms for refactoring opportunities, (iv) an approach to evaluate the effects of refactoring on software quality, (v) a catalogue of shortcomings in aspect-oriented software and their related refactoring patterns, and (vi) an study of metrics for aspect-oriented software, including their formal definition, analytical evaluation and data interpretation.
17

Improving the search for refactoring opportunities on object-oriented and aspect-oriented software / Melhorando a busca por oportunidades de refatoração em software orientado a objetos e orientado a aspectos

Piveta, Eduardo Kessler January 2009 (has links)
Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados. / Refactoring is the process of improving the design of software systems without changing their externally observable behaviour. Refactoring can help to incrementally improve the quality of a software system through the application of behavioural preserving transformations called refactoring patterns. The main goal of the research this thesis reports is to provide a detailed process for refactoring, including mechanism for (i) the selection and creation of quality models, the selection of refactoring patterns, and the creation and use of heuristic rules, (ii) the search for refactoring opportunities and prioritisation, (iii) the assessment of the effects of refactoring on software quality, and (iv) the trade-off analysis and the application of refactoring patterns. To exemplify how the approach works and how the process can be used, different case studies are being used throughout the thesis. The selection of refactoring patterns, quality models and heuristic rules, and the search and prioritisation mechanisms are exemplified for object-oriented software. The assessment of refactoring effects on software quality, the trade-off analysis and the application of refactoring patterns are discussed in the context of aspect-oriented programming. Besides the definition of a refactoring process, a set of additional contributions of this thesis are (i) the definition of an approach for the selection and ranking of refactoring patterns, (ii) an approach for reducing the search space for refactoring opportunities when dealing with successive refactoring, (iii) the definition of search mechanisms for refactoring opportunities, (iv) an approach to evaluate the effects of refactoring on software quality, (v) a catalogue of shortcomings in aspect-oriented software and their related refactoring patterns, and (vi) an study of metrics for aspect-oriented software, including their formal definition, analytical evaluation and data interpretation.
18

GiveMe Infra: uma infraestrutura baseada em múltiplas visões interativas para apoiar a evolução distribuída de software

Tavares, Jacimar Fernandes 16 March 2015 (has links)
Submitted by Renata Lopes (renatasil82@gmail.com) on 2017-06-07T15:13:04Z No. of bitstreams: 1 jacimarfernandestavares.pdf: 4117614 bytes, checksum: 6d7763e08f1653c32b20373c9e55ec2b (MD5) / Approved for entry into archive by Adriana Oliveira (adriana.oliveira@ufjf.edu.br) on 2017-06-24T13:08:28Z (GMT) No. of bitstreams: 1 jacimarfernandestavares.pdf: 4117614 bytes, checksum: 6d7763e08f1653c32b20373c9e55ec2b (MD5) / Made available in DSpace on 2017-06-24T13:08:28Z (GMT). No. of bitstreams: 1 jacimarfernandestavares.pdf: 4117614 bytes, checksum: 6d7763e08f1653c32b20373c9e55ec2b (MD5) Previous issue date: 2015-03-16 / CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / Existem diversas tecnologias desenvolvidas nas áreas de manutenção e evolução colaborativa de software associadas à visualização de software, objetivando resolver problemas de empresas e grupos de usuários. Em muitos casos é necessário integrar soluções dessas áreas visando resolver um dado problema relacionado à evolução do software. Este problema se torna mais intenso quando se trata de equipes geograficamente distribuídas. Neste sentido, foi desenvolvida GiveMe Infra, uma infraestrutura para apoio a realização de atividades de manutenção e evolução de software, realizadas por equipes co-localizadas ou geograficamente distribuídas. Tais atividades são apoiadas por diferentes visualizações de software que permitem ao usuário obter diferentes perspectivas sobre as informações disponibilizadas. Um estudo experimental foi realizado objetivando verificar a viabilidade de uso da solução. Os resultados obtidos são apresentados, bem como os trabalhos futuros em relação à infraestrutura proposta. / There are several technologies developed to support collaborative software maintenance and evolution, as well as software visualization, in order to solve problems of companies and group of users. In many cases is necessary to integrate solutions already available in these areas to solve a given problem. These problems become intense when geographically dispersed groups are involved in software maintenance and evolution activities. In this sense, an infrastructure, named GiveMe Infra, was developed to support these activities when performed by co-located or geographically distributed teams. These activities are supported by different software visualizations that allow the user get different perspectives about the provided information. An experimental study were carried out aiming to verify the feasibility of the solution as well as the hypotheses. The obtained results related to the experiments and future works are presented.
19

Erosão arquitetural em perspectiva: um estudo sobre as regras arquiteturais, suas violações e como os desenvolvedores lidam com o problema. / Architectural Erosion in perspective: A study of architectural rules, their violations, and how developers deal with the problem.

MONTEIRO, João Arthur Brunet. 07 August 2018 (has links)
Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2018-08-07T18:35:53Z No. of bitstreams: 1 JOÃO ARTHUR BRUNET MONTEIRO - TESE PPGCC 2014..pdf: 21469240 bytes, checksum: 4f74671ebb2128d0de8efc9a34c7ffeb (MD5) / Made available in DSpace on 2018-08-07T18:35:53Z (GMT). No. of bitstreams: 1 JOÃO ARTHUR BRUNET MONTEIRO - TESE PPGCC 2014..pdf: 21469240 bytes, checksum: 4f74671ebb2128d0de8efc9a34c7ffeb (MD5) Previous issue date: 2014-07-11 / Erosão arquitetural é o processo de degradação da estrutura do software à medida em que se dá a sua evolução. Embora alguns trabalhos nessa área tenham apresentado exemplos de desvio entre a arquitetura planejada e a implementação do software em um momento específico do seu ciclo de vida, pouco se sabe a respeito dessa relação sob uma perspectiva evolutiva, isto é, como se dá esse distanciamento à medida em que o software evolui. Além disso, as abordagens propostas para verificação de conformidade apontam que o número de violações arquiteturais é tipicamente alto. No entanto, não há conhecimento a respeito da relevância dessas violações arquiteturais e como os desenvolvedores lidam com o problema durante o desenvolvimento do software. Esta tese apresenta três estudos empíricos cujo objetivo é aumentar o conhecimento sobre erosão arquitetural e como os desenvolvedores lidam com violações arquiteturais. Como resultado, em um primeiro estudo com quatro sistemas open source, foi possível demonstrar empiricamente o processo de erosão arquitetural em uma perspectiva evolutiva, além de demonstrar que poucas entidades de design são responsáveis pela maioria das violações arquiteturais. Além disso, através de uma análise quantitativa e qualitativa em 3 sistemas (Eclipse, BeeFS e epol), realizou-se i) uma caracterização de regras arquiteturais, ii) um estudo sobre a relevância das violações arquiteturais nesses sistemas e, iii) uma caracterização dos motivos que levam os desenvolvedores a cometerem violações arquiteturais. Por fim. com o intuito de entender a comunicação sobre aspectos de design/arquitetura em projetos open source, através da análise de dados de 77 sistemas, foi identificado que 25% das discussões em projetos mencionam algum aspecto de design e que poucos desenvolvedores contribuem para um espectro amplo de discussões. Esses poucos desenvolvedores são os que mais contribuem para o código projeto, isto é, há uma forte correlação entre commits e a quantidade de discussões que um desenvolvedor participa. / Architectural erosion is the progressive lack of software structure over time. Previous studies on this subject concentrate on presenting conformance checking techniques and tools, and how effective they are in a single version of systems under analysis. However, fitere are still open research questions regarding the evolutionär)' nature of architectural violations. Besides that, little is known about the relevance of architectural violations and their impact on software development activities. This thesis describes three empirical studies performed to expand the current knowledge about architectural erosion phenomenon and how developers deal with architectural violations. As a result, in a first exploratory study with four open source systems, besides providing empirical data that shows the architectural erosion phenomenon in an evolutionary perspective, it is also demonstrated that few entities are responsible for the majority of architectural violations. Besides that, through quantitative and qualitative analysis in three systems (Eclipse. BeeFS and epol). this thesis presents: ij a characterization of architectural rules used in practice, ii) a study on the relevance of architectural violations of such systems, and iii) a characterization of the causes of architectural violations. At last, to provide knowledge on how developers conduct discussions about design/architectural aspects, this thesis presents an analysis on 77 open source systems which shows that on average 25% of the discussions in a project mention some design aspect and that very few developers contribute to a broader range of design discussions.
20

Análise de correlação entre métricas de evolução e qualidade de design de software. / Correlation analysis between evolution metrics and software design quality.

ASSIS, Pablo Oliveira Antonino de. 16 August 2018 (has links)
Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2018-08-16T14:17:44Z No. of bitstreams: 1 PABLO OLIVEIRA ANTONINO DE ASSIS - DISSERTAÇÃO PPGCC 2009..pdf: 1244760 bytes, checksum: 30e75bebed5cedb9f7f2d0eb80097c6f (MD5) / Made available in DSpace on 2018-08-16T14:17:44Z (GMT). No. of bitstreams: 1 PABLO OLIVEIRA ANTONINO DE ASSIS - DISSERTAÇÃO PPGCC 2009..pdf: 1244760 bytes, checksum: 30e75bebed5cedb9f7f2d0eb80097c6f (MD5) Previous issue date: 2009-03-13 / Capes / Nós investigamos a evolução de oito softwares open source e cinco proprietários, a fim de verificar a existência de correlações estatísticas entre complexidade e medidas de qualidade em termos de bad smells e bugs. Em todos os projetos, encontramos fortes correlações estatísticas entre medidas de complexidade (WMC) e qualidade. Todos os softwares proprietários e cinco open source apresentaram índices de correlação muito forte (r > 0.9). Surpreendentemente, em três dos softwares open source, a correlação encontrada foi forte, porém negativa. Isto é atribuído ao fato de que, nestes projetos, os bad smells foram removidos intencionalmente. Este resultado sugere que, apesar da correlação, não existe necessariamente relação de causa-efeito entre métricas de complexidade e de qualidade. Dessa maneira, concluímos que apenas eliminar bad smells não é uma boa estratégia a ser seguida se o objetivo for reduzir a complexidade do design e melhorar a qualidade nos termos associados à redução da complexidade. / We have studied the evolution of eight open source projects and five proprietary ones, looking for statistical correlations between complexity and quality measures in terms of bad smells and bugs detected. In all projects, we found strong statistical correlations between complexity (WMC) and quality measures. In all the legacies softwares and five of open sources, the correlation can be considered very strong (r > 0.9). Surprisingly, in three of the open source, the correlation is strong, but negative. This has been attributed to the fact that, in these projects, designers have intentionally controlled the quality measures under study, by applying refactoring strategies. These results suggest that, despite the correlation, there is no necessary cause-effect relation between complexity and quality measures. We conclude that just eliminate bad smells is not a good strategy to be followed if the desired objective is to reduce software design complexity. Then also does not improve software quality in terms associated to software complexity reduction.

Page generated in 0.4741 seconds