quarta-feira, 26 de janeiro de 2011

Conceitos de Análise de Pontos de Função - Parte 1


A partir de hoje, uma vez por semana (geralmente às terças-feiras), falarei um pouco sobre um tema importante da área de Engenharia de Software, especificamente sobre a técnica de Análise de Pontos de Função. A ideia é apresentar os conceitos da técnica e sua utilização no mercado.

Por volta da década de 70, os computadores foram instalados em grande escala nas empresas de todo o mundo. A atenção maior na época estava focada no hardware: desempenho, memória, velocidade, tamanho e peso da máquina eram características analisadas com prioridades para determinar se uma máquina era boa ou ruim. Evidentemente, o software era relegado ao segundo plano. Porém, as empresas necessitavam cada vez mais de softwares customizados para suas necessidades, e não mais "produtos de prateleiras". Por isso, ainda nessa década o desenvolvimento de software cresceu substancialmente.

À medida que o desenvolvimento de software crescia, era necessário organizar essa tarefa de construção. A aplicação dos conceitos de Engenharia de Software, Metodologias de Desenvolvimento, Qualidade de Software e Gerência de Projetos eram cada vez mais necessários para evitar grandes catástrofes, como a entrega de produtos errados, num prazo muito maior que o esperado, a um custo superestimado e com uma qualidade muito precária.

Para ajudar na organização do desenvolvimento, era necessário criar uma técnica para determinar o tamanho do software. Afinal, como gerenciar algo que não se sabe o tamanho? Por exemplo, imagine que peçam para uma empregada doméstica: "Você pode limpar uma casa inteira em um dia?". Certamente, a empregada irá responder a típica resposta de consultor: "Depende" (hehehe). No caso, depende do tamanho da casa.

Na construção civil, por exemplo, a medição do tamanho do projeto se dá através da unidade de medida em metros quadrados, usando os conceitos matemáticos de áreas para calcular o tamanho do empreendimento.

Medição de projeto na construção civil: metros quadrados.

O problema era tentar quantificar software, um bem intangível. O mercado usava a técnica de contagem de Linhas de Código para determinar o tamanho do software a ser entregue. Mas o grande problema dessa técnica é que ela era usada apenas quando o software já estava construído, e quase todo esforço para desenvolvê-lo já havia sido gasto. Dessa forma, determinar o tamanho de linhas de código não ajudava em nada o gerente de projetos a tomar alguma decisão a respeito de elaboração de um cronograma, estimativa de esforço e custo do projeto e definição dos requisitos do projeto. Era apenas uma medida para determinar a qualidade do desenvolvimento (erros / linha de código) e o tamanho em si. Ou seja, o software já estava praticamente pronto.

O ideal seria desenvolver uma técnica para estimar o tamanho do software nos momentos iniciais do projeto. Dessa forma, seria possivel determinar o tamanho e com ele estimar o esforço em horas para o projeto, o custo, definir se todos os requisitos seriam realmente desenvolvidos e a elaboração de um cronograma prevendo a entrega do projeto de software.

Eis que no final da década de 70, um funcionário da IBM chamado Allan J. Albrecht elaborou uma forma de calcular o tamanho do software através da análise funcional do mesmo, ou seja, pelas funcionalidades a serem entregues. Surgia o conceito de Análise de Pontos de Função: uma técnica para determinar o tamanho funcional de software.

Na próxima semana, conceituaremos com mais detalhes a técnica de APF.

Nenhum comentário:

Postar um comentário