Candidato: João Arthur Brunet Monteiro Título do trabalho: Erosão Arquitetural em Perspectiva: Um estudo sobre regras arquiteturais, suas violações e como os desenvolvedores lidam com o problema Orientador(es): Jorge Figueiredo e Dalton Serey Data: 11/07/2014 Horário: 09hs Local: SPLab Banca examinadora: Jorge Figueiredo e Dalton Serey (orientadores), Marco Túlio Valente (Universidade Federal de Minas Gerais), Claudio Sant'Anna (Universidade Federal da Bahia), Tiago Massoni (UFCG), Jacques Sauvé (UFCG). Resumo: 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. 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, foi possível demonstrar através da análise de dados de 77 sistemas open-source que poucos desenvolvedores são responsáveis pelas discussões sobre design em um projeto. |