Modelagem estatística de mudanças estruturais para simulação de evolução de software. - DAMÁSIO, Jemerson Figueiredo. (2011)
O cenário recente das pesquisas em Ciência da Computação esta passando por uma transformação significativa. A vertente estatística, tipicamente presente em estudos científicos das mais diversas áreas do conhecimento humano, não obstante era negligenciada por pesquisadores de nossa área. Na Engenharia de Software ha, ainda, pouquíssimos resultados que apresentam validação estatística adequada. Isto se da por diversos fatores, dentre os quais se evidencia a escassez de amostras. Contudo, este problema não e exclusivo nosso, e estrategias que visam minimiza-lo são bem conhecidas, dentre as quais se destaca a modelagem. Modelos, por definição, possuem limitações mas permitem o exercício de cenários simulados, possibilitando, eventualmente, validações estatísticas. Em particular no campo da evolução de software, modelos de mudanças são conhecidos. Porem, quando se trata de nichos específicos que visam as mudanças de granularidade pequena (envolvendo as menores entidades e relacionamentos do software), ha pouco ou nenhum aporte teórico de suporte na literatura acadêmica. Ou seja, não ha hoje um modelo teórico que suporte, por exemplo, como se deve evoluir o numero de classes e métodos de um software Java de forma realista. Assim, retomando o contexto das pesquisas em Engenharia de Software e sua escassez de amostras, assim como os insuficientes modelos de mudanças estruturais, temos como resultado uma serie de trabalhos de nossa área que evidenciam tais mudanças sendo realizadas de forma pouco criteriosa (ad hoc), e com todas as limitações que isto impõe. Frente a esta problemática, este trabalho mostra-se como o primeiro esforço em conceber modelos estatísticos formais das mudanças estruturais de software, bem como sua aplicação através de simulação. Em particular, os modelos derivam da analise estatística de uma gama de dados oriundos de mudanças estruturais reais em softwares open source Java. A aplicação e avaliação dos modelos dão-se através do seu uso em um simulador de versões de software, concretizado para fins desta pesquisa. Os resultados da formalização do modelo e de sua experimentação através do simulador trazem a tona uma serie de resultados novos, e demonstram boa adequação da abordagem ao problema apresentado.