Buscar

Estimativas em Engenharia de Software

Prévia do material em texto

ENGENHARIA DE 
SOFTWARE 
Adriana de Souza
Técnicas para estimativa 
de tamanho e de custo
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
  Classificar as técnicas de estimativas function points analysis (FPA), use 
case points (UCP) e constructive cost model (COCOMO).
  Identificar as diferenças entre as técnicas (FPA, UCP e COCOMO).
  Avaliar as técnicas de estimativas (FPA, UCP e COCOMO).
Introdução
Neste capítulo, você vai estudar sobre técnicas para estimativa de ta-
manho e de custo. Para o sucesso de um projeto de desenvolvimento 
de software, trabalhar com estimativas é essencial. Quando falamos em 
sucesso, o esperado é que o produto, além de atender às necessidades 
do usuário, seja desenvolvido dentro do tempo estimado e de acordo 
com o orçamento planejado.
Com as estimativas, podemos calcular: esforço de desenvolvimento 
de software, custo de software, taxa de produção de software, taxa de 
manutenção de software e nível de produtividade da equipe. Continue 
lendo o capítulo e aprenda sobre as técnicas de estimativas de tamanho 
e de custo de um projeto de software.
As técnicas para estimativas
Fazer estimativas não é uma tarefa simples. Fazer estimativas requer esforço e 
talvez você tenha que fazer uma estimativa inicial com base em uma defi nição 
de requisitos de usuário de mais alto nível. 
Alguns desafios, tais como precisar usar novas tecnologias, desconheci-
mento das habilidades das pessoas envolvidas no projeto, entre outros, dificul-
tam estimar custos de desenvolvimento precisamente no início de um projeto.
A estimativa de custo de projeto é autossuficiente e é usada para definir o 
orçamento do projeto e o produto é ajustado para cumprir o planejado. Para 
auxiliar nas estimativas, existem algumas técnicas que podem ser usadas. Todas 
elas contam com o conhecimento explícito dos gestores de projetos que usam os 
projetos anteriores para chegar a uma estimativa de recursos necessários para 
o desenvolvimento do projeto atual. Porém, diferenças significativas podem 
acontecer entre projetos passados e futuros, podendo afetar as estimativas. 
Para auxiliar nas estimativas, existem algumas técnicas. Dentre elas, podemos 
citar: FPA, UCP e COCOMO.
A técnica FPA
Segundo Summerville, a técnica FPA dimensiona uma aplicação na perspectiva 
do usuário fi nal, ao invés de levar em consideração as características técnicas 
da linguagem utilizada.
Na visão do usuário, essa aplicação nada mais é do que um conjunto de 
funções do negócio que o auxiliam na realização de suas tarefas. A análise 
dessa função é feita sob a ótica do que será fornecido, e não de como é for-
necido ou “como” é abstraído, assim fica mais fácil para o usuário entender 
o que será entregue. 
Na técnica de análise de pontos de função (FP), somente componentes 
visíveis ao usuário são considerados para o dimensionamento. Essa técnica 
considera a funcionalidade geral que a aplicação proporciona ao usuário.
A FPA tem como objetivo medir o que o software faz e, dessa forma, de-
terminar o seu tamanho. A partir daí as estimativas de esforço, produtividade 
e custo são calculadas ajudando a:
  prover uma métrica de medição para apoiar a análise de produtividade 
e da qualidade.
  prover uma forma de estimar o tamanho do software.
  prover um fator de normalização para comparação de software.
As premissas do FPA são:
  entradas externas (EE).
  saídas externas (SE).
  arquivos lógicos internos (ALI).
  arquivos de interface externa (AIE).
  consulta externa (CE).
Técnicas para estimativa de tamanho e de custo2
Após levantar as funcionalidades do software, um valor numérico é atribuí-
do a cada uma delas de acordo com a complexidade. Veja os Quadros 1 a 5.
Fonte: Adaptado de Paula Filho (2008).
Campos (TD)
Arquivos (AR)
1 a 4 itens 
de dados 
referenciados
5 a 15 itens 
de dados 
referenciados
16 ou mais 
itens de 
dados 
referenciados
0 ou 1 tipo 
de arquivo 
referenciado
Simples Simples Médio
2 tipos de arquivos 
referenciados
Simples Médio Complexo
3 ou mais tipos 
de arquivos 
referenciados
Médio Complexo Complexo
Quadro 1. Complexidade das EEs
Fonte: Adaptado de Paula Filho (2008).
Campos (TD)
Arquivos (AR)
1 a 5 itens 
de dados 
referenciados
6 a 19 itens 
de dados 
referenciados
20 ou mais 
itens de 
dados 
referenciados
0 ou 1 tipo 
de arquivo 
referenciado
Simples Simples Médio
2 ou 3 tipos 
de arquivos 
referenciados
Simples Médio Complexo
4 ou mais tipos 
de arquivos 
referenciados
Médio Complexo Complexo
Quadro 2. Complexidade das saídas externas (SE)
3Técnicas para estimativa de tamanho e de custo
Fonte: Adaptado de Paula Filho (2008).
Campos (TD)
Registros (TR) 
1 a 19 itens 
de dados 
referenciados
20 a 50 itens 
de dados 
referenciados
51 ou mais 
itens de 
dados 
referenciados
1 tipo de registro 
lógico
Simples Simples Médio
2 a 5 tipos de 
registros lógicos
Simples Médio Complexo
6 ou mais tipos de 
registros lógicos
Médio Complexo Complexo
Quadro 3. Complexidade dos arquivos lógicos internos (ALI)
Fonte: Adaptado de Paula Filho (2008).
Campos (TD)
Registros (TR) 
1 a 19 itens 
de dados 
referenciados
20 a 50 itens 
de dados 
referenciados
51 ou mais 
itens de 
dados 
referenciados
1 tipo de registro 
lógico
Simples Simples Médio
2 a 5 tipos de 
registros lógicos
Simples Médio Complexo
6 ou mais tipos de 
registros lógicos
Médio Complexo Complexo
Quadro 4. Complexidade de arquivos de interface externa (AIE)
Técnicas para estimativa de tamanho e de custo4
Fonte: Adaptado de Paula Filho (2008).
Campos (TD)
Arquivos (AR)
1 a 5 itens 
de dados 
referenciados
6 a 19 itens 
de dados 
referenciados
20 ou mais 
itens de 
dados 
referenciados
0 ou 1 tipo 
de arquivo 
referenciado
Simples Simples Médio
2 ou 3 tipos 
de arquivos 
referenciados
Simples Médio Complexo
4 ou mais tipos 
de arquivos 
referenciados
Médio Complexo Complexo
Quadro 5. Complexidade dos consulta externa (CE)
Após levantar o número de ocorrências, aplica-se o peso de acordo com a 
complexidade para se chegar ao resultado. Um exemplo é apresentado na Figura 1.
Figura 1. Exemplo de tabela para cálculo de pontos.
Fonte: Paula Filho (2008).
Função
Entrada externa
Simples
Médio
Complexo
Simples
Médio
Complexo
Total 1
Total 2
Simples
Médio
Complexo
× 3 =
× 4 =
× 6 =
=
× 4 =
× 5 =
× 7 =
=
× 3 =
× 4 =
× 6 =
=
× 5 =
× 7 =
× 10 =
=
× 7 =
× 10 =
× 15 =
=
Total 5
Simples
Médio
Complexo
Total 3
Simples
Médio
Complexo
Total 4
Saída externa
Arquivos lógicos
internos
Arquivo
interface
externo
Consultas
Nº de ocorrências Complexidade Peso Resultado
5Técnicas para estimativa de tamanho e de custo
Esta técnica serve para diversos propósitos para o desenvolvimento de 
software, pois ajuda a minimizar a subjetividade nas estimativas por meio da 
padronização de critérios, de acordo com os Quadros 1 a 5 anteriores. Veja 
a Figura 2 a seguir.
Figura 2. Passos da contagem por FP.
Fonte: Adaptada de Ribeiro (2013, documento on-line).
Determinar
tipo de
contagem
Identi�car
a fronteira
da aplicação
Contar
funções tipo
dados
Contar
funções tipo
transação
Calcular
número de
pontos de
função
ajustados
Calcular
pontos de
função não
ajustados
Calcular 
valor do
fator de
ajuste
A técnica UCP
A técnica “pontos por caso de uso” foi baseada na análise de FP. Essa técnica 
estima o tamanho de um software baseado no modo como os usuários utilizarão 
o sistema; pela complexidade das ações que são requeridas por cada usuário 
e pela análise do workfl ow da realização das tarefas.
Essa técnica estima o tamanho do software na fase de levantamento de 
casos de uso. Para isso, utiliza os próprios documentos gerados nessa fase para 
subsidiar o cálculo dimensional. Tem como objetivo medir software orientado 
a objeto e tem sua utilização mais simplificada que a UCP. 
A UCP, a exemplo da FPA, também utiliza tabelas declassificação de 
complexidade, conforme mostram a seguir os Quadros 6 e 7.
Técnicas para estimativa de tamanho e de custo6
Fonte: Adaptado de Paula Filho (2008).
Complexidade Definição Peso
Simples Quando o ator representa um sistema 
externo que é acessado por meio de API.
1
Médio Quando o ator representa um 
sistema externo, acessado por meio 
de um protocolo de comunicação, 
por exemplo TCP/IP.
2
Complexo Quando o ator interage com o sistema 
por meio de uma interface gráfica GUI.
3
Quadro 6. Classificação dos atores envolvidos
Fonte: Adaptado de Paula Filho (2008).
Complexidade Definição Peso
Simples Quando o caso de uso tem três ou menos 
transações, incluindo cenários alternativos, 
e sua realização deve acontecer com menos 
de cinco objetivos (classes de análise).
5
Médio Quando o caso de uso tem de 4 a 7 
transações, incluindo cenários alternativos, 
e sua realização deve acontecer com 
5 a 10 objetivos (classes de análise).
10
Complexo Quando o caso de uso tem mais de sete 
transações, incluindo cenários alternativos, 
e sua realização deve acontecer com mais 
de 10 objetivos (classes de análise).
15
Quadro 7. Classificação dos casos de uso
7Técnicas para estimativa de tamanho e de custo
Métricas
A primeira métrica a ser gerada é a unajusted use case point (UUCP) ou pontos 
de casos de uso não ajustado, onde:
UCCP = total dos pesos dos atores relacionados + 
total de pesos dos casos de uso relacionados.
A segunda métrica a ser gerada é o technical complexity factor (TCF) ou 
fator de complexidade. Esse fator tem uma escala de 0 a 5, onde o 0 é o 
menos relevante e o 5 é o mais relevante. Observe o Quadro 8.
Fonte: Adaptado de Paula Filho (2008).
Código 
fator Descrição do fator Peso
Valor 
(fator) Resultado
F1 Sistema distribuído 2 0
F2 Performance 1 0
F3 Eficiência para o usuário 
final (on-line)
1 0
F4 Processamento 
interno complexo
1 0
F5 Código deve ser recusável 1 0
F6 Fácil para instalar 0,5 0
F7 Fácil para usar 0,5 0
F8 Portável 2 0
F9 Fácil para mudar 1 0
F10 Concorrente 1 0
F11 Seguro 1 0
F12 Fornece acesso direto 
para third parties (sistemas/
componentes externos)
1 0
F13 É requerido treinamento do 
usuário para usar o software
1 0
Quadro 8. Cálculo de fator
Técnicas para estimativa de tamanho e de custo8
O valor do fator será atribuído pelo gestor de acordo com o estipulado da 
relevância. Para calcular, utiliza-se a seguinte fórmula:
TCF = 0,6 + (0,01 ∙ TFATOR)
A terceira métrica gerada é o environmental factor (EF) ou fator ambiente. 
Esse fator tem uma escala de 0 a 5, onde 0 é o menos relevante e 5 é o mais 
relevante. Observe o Quadro 9.
Fonte: Adaptado de Paula Filho (2008).
Código 
fator Descrição do fator Peso
Valor 
(fator) Resultado
F1 Familiaridade com 
o processo de 
desenvolvimento orientado 
a objetos adotado
1,5 0
F2 Colaboradores de 
meio período
-1 0
F3 Capacidade de análise 0,5 0
F4 Experiência em 
desenvolvimento de 
aplicações deste gênero
0,5 0
F5 Experiência em 
orientação a objetos
1 0
F6 Motivação 1 0
F7 Dificuldade na linguagem 
de programação
-1 0
F8 Requisitos estáveis 2 0
Quadro 9. Cálculo de fator
O valor do fator também será atribuído pelo gestor de acordo com o esti-
pulado da relevância. Para calcular, utiliza-se a seguinte fórmula:
EF = 1,4 + (-0,03 ∙ EFATOR)
9Técnicas para estimativa de tamanho e de custo
Tendo o valor dessas fórmulas, é possível calcular o UCP final, onde:
UCP = UUCP ∙ TCF ∙ EF
Após encontrar o UCP final, podemos encontrar a estimativa de horas, 
em que a maioria das literaturas sugerem a aplicação de 20 horas por pontos 
de caso de uso. Então:
estimativa de horas = UCP ∙ 20
Fazendo esses cálculos para os casos de uso, você terá as estimativas 
necessárias.
O UCP e a FPA não consideram apenas o desenvolvimento do software, mas também 
toda a parte de análise, projeto, teste e treinamento, ou seja, todo o projeto.
A técnica COCOMO
A técnica COCOMO tornou-se um dos modelos de estimativa de custo de 
software mais usados. Essa técnica foi criada por meio de coleta de dados 
com base em um grande número de projetos de software (SOMMERVILLE, 
2007). Existem duas versões: COCOMO e COCOMO II.
COCOMO é apresentado na forma de um conjunto de modelos divididos 
em simples, moderados e incorporados (Quadro 10).
Técnicas para estimativa de tamanho e de custo10
Fonte: Adaptado de Sommerville (2007).
Complexidade Descrição
Simples Aplicações bem compreendidas, desenvolvidas por 
pequenas equipes. Modelo estatístico que calcula o 
esforço de desenvolvimento de software e seu custo em 
função do tamanho de linhas de código desenvolvido.
Moderada Projetos mais complexos em que os membros da 
equipe podem ter experiência limitada com os 
sistemas relacionados. Modelo que calcula o esforço de 
desenvolvimento do software em função do tamanho 
do programa que inclui custo, avaliação subjetiva do 
produto hardware, pessoas e atributos do projeto.
Incorporada Projetos complexos nos quais o software é parte de 
um conjunto complexo e fortemente acoplado de 
hardware, software, leis e procedimentos operacionais.
Incorpora características da versão intermediária com uma 
avaliação de impacto de custo em cada passo de todo o projeto.
Quadro 10. Modelos COCOMO
Modelo COCOMO básico
A versão COCOMO considerava que o software seria desenvolvido de acordo 
com o modelo tradicional cascata, usando linguagem de programação como 
C e Fortran. Porém, desde a sua proposta inicial, muitas mudanças ocorreram 
no desenvolvimento de software. 
Esse modelo evoluiu para um modelo de estimativas mais abrangentes, o 
COCOMO II, que reconhece abordagens diferentes para o desenvolvimento 
de software, como a prototipação, o desenvolvimento por composição de 
componentes e o uso de programação de banco de dados. Veja no Quadro 11 
as áreas de que trata.
11Técnicas para estimativa de tamanho e de custo
Fonte: Adaptado de Sommerville (2007).
Modelo de composição 
de aplicação
Usado durante os primeiros estágios da 
engenharia de software, em que o protótipo 
das interfaces de usuário, a consideração da 
interação de software e de sistema, a avaliação 
do desempenho e a avaliação da maturidade 
da tecnologia são de suma importância.
Modelo de estágio 
do início do projeto
Usado quando os requisitos tiverem 
sido estabilizados e a arquitetura básica 
de software tiver sido estabelecida.
Modelo de estágio 
pós-arquitetura
Usado durante a construção do software.
Quadro 11. Modelos do COCOMO básico
Veja a seguir as equações COCOMO básicas.
E = Ab(KLOC)exp(Bb) - esforço aplicado pessoa-mês
D = Cb(E.exp(Db)) - tempo de desenvolvimento (meses cronológicos)
P = E/D
Onde:
E é o esforço aplicado pela pessoa no mês;
D é o tempo de desenvolvimento em meses cronológicos;
KLOC é o número calculado de linhas de código para o projeto (expressado em 
milhares);
P é o número das pessoas necessário.
Os coeficientes ab, bb, cb e db são dados no Quadro 12.
Técnicas para estimativa de tamanho e de custo12
Fonte: Adaptado de Sommerville (2007).
Projeto de 
software ab bb cb db
Orgânico 2.4 1.05 2.5 0.38
Semidestacado 3.0 1.12 2.5 0.35
Embutido 3.6 1.20 2.5 0.32
Quadro 12. Coeficientes
Modelo COCOMO intermediário
É a ampliação do modelo básico ampliado para levar em consideração os 
atributos direcionadores de custo, tais como:
  atributos do produto (confiabilidade, tamanho BD e complexidade);
  atributos do hardware (restrições de desempenho, memória, etc.);
  atributos de pessoal (experiência);
  atributos de projeto (uso de case, metodologias, cronograma de ativi-
dades, etc.);
Total = 15 atributos (pontua-se em uma escala de 0 a 6 pontos, onde 0 é 
muito baixo e 6 é muito alto).
Classificação:
  determina-se um multiplicador de esforços;
  calcula-se o fator de ajuste de esforço, em que os valores variam de 
0.9 a 1.4.
13Técnicas para estimativa de tamanho e de custo
Veja a seguir as equações COCMO intermediário.
E = Ai(LOC). Exp(bi) × FAE (pessoa-mês)Onde:
E é o esforço aplicado em pessoas por mês;
KLOC é o número de linhas de código (expressado em milhares) para o projeto;
EAF é o fator calculado acima.
Os coeficientes ai e bi são dados no Quadro 13.
Fonte: Adaptado de Sommerville (2007).
Projeto de software ai bi
Início (orgânico) 3.2 1.05
Meio (semidestacado) 3.0 1.12
Fim (embutido) 2.8 1.5
Quadro 13. Coeficientes
Para estimativas utilizando o COCOMO, pode-se usar o software.
A base de análise para os FPs são a análise de requisitos e a estimativa.
Técnicas para estimativa de tamanho e de custo14
PAULA FILHO, W. P. Engenharia de software: fundamentos, métodos e padrões. 3. ed. 
Rio de Janeiro: LTC, 2008.
RIBEIRO, G. Métricas de softwares. 2013. Disponível em: <http://es-it.blogspot.com/p/
metricas-de-softwares.html>. Acesso em: 20 out. 2018.
SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Pearson, 2007.
Leituras recomendadas
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de Software: uma abordagem profissional. 
8. ed. Porto Alegre: Penso, 2016.
STEFFEN, J. B. O que são essas tais de metodologias Ágeis? 23 jan. 2012. Disponível em: 
<https://www.ibm.com/developerworks/community/blogs/rationalbrasil/entry/
mas_o_que_s_c3_a3o_essas_tais_de_metodologias__c3_a1geis?lang=en>. Acesso 
em: 19 out. 2018.
15Técnicas para estimativa de tamanho e de custo
Conteúdo:

Mais conteúdos dessa disciplina