Resumo

Esta tese apresenta uma caracterização da complexidade estrutural em sistemas de software livre, com objetivo de identificar (i) a contribuição de diversos fatores para a variação da complexidade estrutural e (ii) os efeitos da complexidade estrutural sobre projetos de software. Possíveis fatores na variação da complexidade estrutural incluem: fatores humanos, como experiência geral dos desenvolvedores e a sua familiaridade com as diferentes partes do sistema; fatores relacionados às mudanças realizadas no sistema, como variação no tamanho, espalhamento das mudanças; e fatores organizacionais, como maturidade do processo de desenvolvimento e a estrutura de comunicação do projeto. Efeitos da complexidade estrutural incluem maior esforço, e consequentemente maior custo, em atividades de compreensão e manutenção de software.

Para testar as possíveis causas da complexidade estrutural, foram realizados quatro estudos experimentais, utilizando mineração de dados em repositórios de projetos de software livre. Foram analisados dados históricos de mudanças realizadas em 13 sistemas de diferentes domínios de aplicação e escritos em diferentes linguagens de programação. Os resultados dos estudos realizados são sintetizados através de uma teoria que descreve causas e consequências da complexidade estrutural.

Os resultados indicaram que todos os fatores estudados influenciaram a variação da complexidade estrutural em pelo menos um dos projetos, mas projetos diferentes foram influenciados por conjuntos diferentes de fatores. Modelos construídos foram capazes de descrever até 93% da variação na complexidade estrutural nos projetos estudados.

Download do texto

Código fonte da tese


        

Código fonte dos estudos experimentais

Incluem datasets utilizados nos experimentos, código fonte da extração e análise dos dados, das análise estatísticas e dos gráficos, etc.