Software Size Estimation by Integrating Functional Size and Functional Complexity Measures
Este estudo propõe um modelo de estimativa de tamanho de software que integra Medidas de Tamanho Funcional (UFP e CFP) com Medidas de Complexidade Funcional (CC e YC) usando análise de regressão, demonstrando que a combinação dessas métricas — particularmente UFP com medidas de complexidade — reduz significativamente o erro de estimativa e melhora a precisão de predição para aplicações como o COCOMO II.
Artigo original sob licença CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Construir software é um empreendimento complexo, muito parecido com construir um edifício, mas em vez de tijolos e argamassa, os materiais são linhas de código e requisitos funcionais. Por décadas, os gerentes de projeto confiaram na contagem dessas linhas de código para estimar quanto tempo e dinheiro um projeto levaria. No entanto, este método é falho porque dois programas podem fazer exatamente a mesma coisa exigindo quantidades vastamente diferentes de código, dependendo de como o programador o escreve. Para resolver isso, a indústria desenvolveu uma maneira de medir o software pelo que ele realmente faz para o usuário — contando entradas, saídas e arquivos de dados — em vez de como ele é escrito. Isso é conhecido como tamanho funcional. No entanto, até mesmo essa contagem funcional tem um ponto cego: ela mede a quantidade de funcionalidades, mas frequentemente ignora a dificuldade de construí-las. Uma funcionalidade simples pode ser fácil de construir, enquanto uma complexa, com muitos caminhos de ramificação e condições, pode ser um pesadelo para codificar, mesmo que ambas contem como uma única "funcionalidade" no sentido tradicional.
Este hiato entre o tamanho de uma funcionalidade e a complexidade de construí-la é o enigma central abordado por uma equipe de pesquisadores da Indonésia. Eles se propuseram a ver se combinar uma medida de tamanho funcional com uma medida de complexidade estrutural poderia levar a previsões mais precisas da verdadeira escala de um projeto de software. O trabalho deles foca em refinar como estimamos o esforço necessário para construir software, uma tarefa crítica que determina se um projeto permanece no orçamento ou sai do controle. Ao olhar tanto para o "quê" quanto para o "quão difícil", eles visaram criar um quadro mais claro para as pessoas que planejam e gerenciam esses sistemas digitais.
Os pesquisadores começaram reunindo dados de dois projetos de software do mundo real: um projetado para uma cooperativa de funcionários e outro para uma loja de varejo. Eles não usaram conjuntos de dados públicos porque estes muitas vezes carecem dos detalhes específicos necessários para sua análise. Em vez disso, eles pegaram os requisitos textuais dessas aplicações e os traduziram em fluxogramas visuais, conhecidos como diagramas BPMN. Esses diagramas serviram como uma ponte, permitindo que a equipe extraísse dois tipos diferentes de medições para cada parte do sistema. Primeiro, eles calcularam o tamanho funcional, que conta as interações do usuário e os arquivos de dados. Eles usaram dois métodos estabelecidos para isso: um que conta pontos de função não ajustados baseados em categorias padrão como entradas e saídas, e outro que conta pontos de função cósmicos, rastreando como os dados entram e saem do sistema.
Em seguida, eles mediram a complexidade estrutural dessas mesmas partes. Isso envolveu analisar a lógica dentro dos fluxogramas para ver quantos pontos de decisão, loops e caminhos de ramificação existiam. Eles usaram duas métricas de complexidade diferentes para isso: uma que conta o número de caminhos independentes através do código e outra que pondera a dificuldade cognitiva de diferentes tipos de ramos e loops. Finalmente, eles compararam essas medições combinadas contra o número real de linhas de código escritas para os projetos. Esta contagem final serviu como a verdade fundamental, o tamanho real do software terminado que os pesquisadores estavam tentando prever.
Os resultados revelaram um padrão distinto dependendo de qual método de tamanho funcional era usado. Quando os pesquisadores usaram o primeiro método de tamanho funcional, adicionar as medições de complexidade melhorou significamente a precisão de suas previsões. Especificamente, a taxa de erro em suas estimativas caiu de vinte e quatro por cento para vinte e dois por cento. Isso sugere que, para este tipo de contagem funcional, saber a complexidade da lógica ajuda a corrigir a estimativa, aproximando-a da realidade. No entanto, a história foi diferente para o segundo método de tamanho funcional. Quando usaram os pontos de função cósmicos, adicionar as medições de complexidade não reduziu a taxa de erro, que permaneceu estável em quinze por cento. Neste caso, a medida de tamanho funcional já era tão precisa que os dados extras de complexidade não tornaram o número final mais preciso.
Apesar da falta de melhoria nas taxas de erro para o segundo método, os dados de complexidade ainda se mostraram valiosos. Quando os pesquisadores adicionaram medidas de complexidade aos pontos de função cósmicos, a qualidade de suas previsões melhorou de uma forma diferente. A porcentagem de estimativas que caíram dentro de uma margem de erro muito estreita aumentou de setenta e seis por cento para oitenta por cento. Isso significa que, embora o erro médio não tenha mudado, a equipe tornou-se mais confiável em chegar muito perto da resposta correta. O estudo conclui que integrar medidas de complexidade não é uma solução de "tamanho único"; seu valor depende de qual método de tamanho funcional está sendo usado. Para um método, ele refina a precisão; para o outro, ele refina a consistência. Essas descobertas oferecem uma maneira mais matizada de alimentar modelos de estimativa de esforço estabelecidos, potencialmente ajudando equipes de software a tomar decisões mais informadas sobre o tempo e os recursos que seus projetos realmente exigirão.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.