Summary: | Estimativa de esforço de software é uma parte importante do desenvolvimento de software e fornece um guia essencial para a análise de viabilidade, licitação, orçamento, planejamento e acompanhamento de projeto. As conseqüências de estimativas imprecisas podem resultar em perdas significativas ou mesmo em perda de contratos. Em geral as estimativas de projetos são excedidas, principalmente porque as estimativas são muito otimistas. Nesta tese, o principal objetivo é apresentar uma metodologia baseada em métodos estatísticos e de redes neurais para realizar estimativas de esforço mais precisas e de forma mais simples. Esta pesquisa contribui para a redução de erros de estimativa de projeto de desenvolvimento de software, permitindo que o público interessado tenha um melhor entendimento das várias classes de modelos e técnicas de estimativa de esforço de software e da expressividade das variáveis de projeto disponíveis. São utilizadas redes neurais artificiais, técnicas de raciocínio baseado em casos, modelos baseados em regressão, e técnicas para integrar análise de resíduos, análise de variância e modelos baseados em regressão. Vários estudos de casos foram conduzidos para validar os diferentes métodos. Os resultados indicam que os métodos propostos apresentam resultados realistas, para os dados das empresas disponíveis na base de dados, e que o uso de redes neurais implica em um processo simples de calibração de modelos locais. Entretanto, observa-se que as técnicas são dependentes dos dados disponíveis, exigindo a re-calibração dos modelos em função do surgimento de novas tecnologias para o desenvolvimento de software. === Software effort estimation is an important part of software development work and provides essential input to project feasibility analyses, bidding, budgeting and planning. The consequences of inaccurate estimates can be severe. Optimistic estimates may cause significant losses while the pessimistic estimates may lead to loss of exiting and future contracts. Unfortunately, it is common for software development projects to overrun their effort estimates, typically because the estimates are too optimistic. This thesis presents a methodology based on statistical and neural networks methods to provide more accurate effort estimates in a simpler way. The goal of this research is to contribute to reduce estimation error in software development projects by better understanding the different software effort estimation models and techniques that include: artificial neural networks, case-based reasoning techniques, regression-based models, and techniques for integrating analysis of residuals, analysis of variance and regression-based models. Several case studies have been conducted. The results show all the proposed models lead to realistic estimations, however, neural networks based models emerge as a very easy tool for local models calibration processes due to its simpler implementation. The case studies show all the models are sensitive to the available data, thus requiring recalibration processes every since new project data area gathered to the database.
|