Escolar Documentos
Profissional Documentos
Cultura Documentos
da Solução
Créditos
Centro Universitário Senac São Paulo – Educação Superior a Distância
Diretor Regional Juliana Quitério Lopez Salvaia
Luiz Francisco de Assis Salgado Jussara Cristina Cubbo
Superintendente Universitário Kamila Harumi Sakurai Simões
e de Desenvolvimento Katya Martinez Almeida
Luiz Carlos Dourado Lilian Brito Santos
Luciana Marcheze Miguel
Reitor Mariana Valeria Gulin Melcon
Sidney Zaganin Latorre Mônica Maria Penalber de Menezes
Diretor de Graduação Mônica Rodrigues dos Santos
Eduardo Mazzaferro Ehlers Nathália Barros de Souza Santos
Rivia Lima Garcia
Diretor de Pós-Graduação e Extensão Sueli Brianezi Carvalho
Daniel Garcia Correa Thiago Martins Navarro
Gerentes de Desenvolvimento Wallace Roberto Bernardo
Claudio Luiz de Souza Silva Equipe de Qualidade
Luciana Bon Duarte Ana Paula Pigossi Papalia
Roland Anton Zottele Josivaldo Petronilo da Silva
Sandra Regina Mattos Abreu de Freitas Katia Aparecida Nascimento Passos
Coordenadora de Desenvolvimento Coordenador Multimídia e Audiovisual
Tecnologias Aplicadas à Educação Ricardo Regis Untem
Regina Helena Ribeiro
Equipe de Design Audiovisual
Coordenador de Operação Adriana Mitsue Matsuda
Educação a Distância Caio Souza Santos
Alcir Vilela Junior Camila Lazaresko Madrid
Professor Autor Carlos Eduardo Toshiaki Kokubo
André Filipe de Moraes Batista Christian Ratajczyk Puig
Danilo Dos Santos Netto
Revisor Técnico Hugo Naoto Takizawa Ferreira
João Carlos Neto Inácio de Assis Bento Nehme
Técnica de Desenvolvimento Karina de Morais Vaz Bonna
Fabiana Martins Vilela Marcela Burgarelli Corrente
Marcio Rodrigo dos Reis
Coordenadoras Pedagógicas Renan Ferreira Alves
Ariádiny Carolina Brasileiro Silva Renata Mendes Ribeiro
Izabella Saadi Cerutti Leal Reis Thalita de Cassia Mendasoli Gavetti
Nivia Pereira Maseri de Moraes Thamires Lopes de Castro
Otacília da Paz Pereira Vandré Luiz dos Santos
Equipe de Design Educacional Victor Giriotas Marçon
Alexsandra Cristiane Santos da Silva William Mordoch
Ana Claudia Neif Sanches Yasuraoka Equipe de Design Multimídia
Angélica Lúcia Kanô Alexandre Lemes da Silva
Any Frida Silva Paula Cristiane Marinho de Souza
Cristina Yurie Takahashi Elina Naomi Sakurabu
Diogo Maxwell Santos Felizardo
Emília Correa Abreu
Flaviana Neri
Francisco Shoiti Tanaka Fernando Eduardo Castro da Silva
Gizele Laranjeira de Oliveira Sepulvida Mayra Aoki Aniya
Hágara Rosa da Cunha Araújo Michel Iuiti Navarro Moreno
Janandrea Nelci do Espirito Santo Renan Carlos Nunes De Souza
Jackeline Duarte Kodaira Rodrigo Benites Gonçalves da Silva
João Francisco Correia de Souza Wagner Ferri
Administração da Solução
Aula 01
Métricas e Estimativas de Software
Objetivos Específicos
• Conhecer os fundamentos das métricas e estimativas de software (APF e
COCOMO II).
Temas
Introdução
1 Métricas e estimativas de software
Considerações finais
Referências
Anexo
Professor
André Filipe de Moraes Batista
Administração da Solução
Introdução
É praticamente impossível não conviver com softwares nos dias de hoje. A informatização
dos processos está presente em quase todas as organizações e elementos da sociedade. Cada
vez mais, o governo faz uso de serviços eletrônicos para atendimento aos cidadãos. Assim,
nos tornamos mais dependentes da tecnologia e dos softwares. É difícil uma organização
sobreviver sem um software, seja ele de prateleira (pronto para ser usado) ou desenvolvido
sob demanda para atender suas necessidades específicas (VAZQUEZ; SIMÕES; ALBERT, 2013).
No entanto, é preciso ter em mente que, para atender tais requisitos e sua consequente
expansão, faz-se necessário o empenho de vários profissionais, recursos físicos e financeiros
e, inclusive, de tempo. É, portanto, imprescindível gerir corretamente os projetos de software
mensurando seu crescimento, assim como as mudanças que acontecerão em seus requisitos, em
função do seu ciclo de vida. É neste ponto que entra o processo de medição e estimativa de software.
Nosso foco passa, então, a ser o custo do desenvolvimento de um software. Porém, para
responder esta pergunta é preciso compreender que este custo representa grande parte do
esforço necessário para desenvolver o software. Este esforço necessita ser mensurado e/ou
estimado, de modo que possamos determinar o custo, cronograma e demais aspectos do
projeto de desenvolvimento.
• Se o programador fizer uso de múltiplos comandos em uma mesma linha, como esta
linha será contabilizada?
Note a fragilidade da métrica. Estamos diante de uma métrica que está dependendo da
linguagem de programação na qual o software está sendo desenvolvido, além de considerar
aspectos subjetivos de decisão de estilo de programação por parte do programador. É importante
também ressaltar a importância do entendimento pelo cliente/usuário da métrica que estamos
fazendo uso. É difícil imaginar um usuário leigo entender que você mensurou todo o projeto de
software porque estimou que o sistema irá possuir mais de 200 mil linhas de código.
De todo modo, a medição por técnicas como linhas de código não é totalmente descartada.
Podemos fazer uso, de alguma maneira, das linhas de código, ao menos para estimar o esforço
do projeto. Em 1981, Barry Boehm publicou um modelo de estimativa denominado COCOMO
(COnstructived COst MOdel) (BOEHM; BROWN, 2009). Este modelo inicial faz uso de linhas de
código para gerar estimativas de esforço, prazo, custo e tamanho da equipe (VAZQUEZ; SIMÕES;
ALBERT, 2013). Este modelo foi evoluído com tempo, para contemplar as técnicas modernas de
desenvolvimento de software, tais como programação visual e componentização, gerando o
modelo COCOMO II que iremos ver com mais detalhes logo adiante.
Há outras técnicas, tais como a Análise de Pontos de Função (APF), que buscam mensurar o
tamanho do software independentemente da tecnologia utilizada. Na prática, esta técnica não só nos
permite mensurar o tamanho do sistema em termos da funcionalidade fornecida ao usuário, como
também mensurar seu tamanho em qualquer fase de seu ciclo de vida. Ao longo do ciclo de vida de
desenvolvimento, nossa estimativa vai se tornando mais apurada, em função do detalhamento mais
natural dos requisitos, e podemos então mensurar o software (VAZQUEZ; SIMÕES; ALBERT, 2013).
A seguir, apresenta-se com mais detalhes as técnicas de Análise de Pontos de Função e COCOMO II.
Mas como afirmar que um projeto desenvolvido na linguagem X, que possui 10 mil
linhas, é mais ou menos produtivo do que outro projeto de mesma funcionalidade, mas que
possui 6 mil linhas?
Nos dias de hoje, desenvolver 10 mil linhas na linguagem Java, por exemplo, é às vezes
muito mais fácil do que construir um software de 6 mil linhas na linguagem C. Portanto,
tornou-se necessária uma métrica que fosse independente da tecnologia que foi utilizada
para desenvolver o software.
Realizar a medição por pontos de função é seguir um processo padronizado para avaliar
os requisitos lógicos do usuário. Seguimos este processo para obter o tamanho funcional do
software, e com esta métrica derivamos outras, tais como produtividade, esforço e custo.
O IFPUG é uma entidade sem fins lucrativos, composta por pessoas e empresas de diversos
países, que visam promover um melhor gerenciamento dos processos de desenvolvimento e
manutenção de software com uso da técnica de pontos de função (VAZQUEZ; SIMÕES; ALBERT, 2013).
O ponto mais central da técnica de APF é a visão do usuário. Ela retrata como o requisito
funcional é percebido por ele. Para Vazquez, Simões e Albert (2013), ela é a descrição formal
das necessidades de negócio do usuário na sua linguagem, isto é, uma descrição das funções
de negócio aprovada pelo usuário.
O conceito de usuário é muito importante para a técnica de APF. De acordo com Vazquez,
Simões e Albert (2013), usuário é qualquer pessoa ou coisa que interaja (isto é, envia ou
recebe dados) com a aplicação. São exemplos de usuários: uma pessoa física, outra aplicação,
um hardware etc.
É importante ter em mente que, embora a APF faça uso dos requisitos do usuário para
mensurar o tamanho funcional do sistema, isto não significa que os requisitos devem estar
todos elicitados para fazermos uso desta técnica. A Figura 1 ilustra a dinâmica do processo
de utilização da técnica de APF para estimar e mensurar um projeto de desenvolvimento de
software ao longo de seu ciclo de vida.
Na primeira fase do projeto, quando este está em um estágio de concepção e/ou análise
de sua viabilidade, alguns requisitos são conhecidos muito superficialmente e outros sequer
Senac São Paulo- Todos os Direitos Reservados 6
Administração da Solução
foram levantados ainda. Podemos então, nessa fase, estimar o tamanho do software com uso
da APF. Ao longo do ciclo de desenvolvimento, conforme os requisitos vão sendo refinados
e o sistema desenvolvido, podemos continuar a estimar, mas é possível também medir o
software ao longo deste ciclo de vida.
Outra característica importante da técnica da APF é o fato de ela ser auditável. Por fazer
uso de métodos-padrão de contagem, como os estabelecidos no CPM do IFPUG, é factível que
uma medição funcional seja auditada por outra pessoa ou organização (VAZQUEZ; SIMÕES;
ALBERT, 2013).
Para Boehm e Brown (2009), o COCOMO II é um método que busca medir o esforço,
prazo, tamanho de equipe e custo necessário para o desenvolvimento de um projeto de
software, a partir de sua dimensão, por meio de uma estimativa de seu tamanho. Para uso
do COCOMO II as organizações necessitam construir uma base de dados histórica, registando
informações sobre projetos anteriores, para que o modelo possa gerar estimativas de custo,
prazo e esforço mais acuradas.
O modelo COCOMO II faz uso de equações matemáticas para descrever as relações entre
o tamanho de software (normalmente representando em pontos de função) e outros fatores
secundários, denominados drivers de custo, que buscam para representar as características
do desenvolvimento do software que afetam o esforço necessário para terminar o projeto
de software. Como já dito, o COCOMO II faz uso de dados históricos para descobrir quais
fórmulas melhor representam o cenário a ser mensurado (BOEHM; BROWN, 2009).
Senac São Paulo- Todos os Direitos Reservados 8
Administração da Solução
Ainda de acordo com Boehm e Brown (2009), o modelo COCOMO II é dividido em três
submodelos que tratam as diferentes fases em que o projeto ou a atividade se encontra. A
utilização de cada submodelo aumenta a precisão e fidelidade da estimativa efetuada, ao
longo do processo de desenvolvimento.
Cada um dos elementos necessários recebe uma classificação de acordo com sua
complexidade (simples, média e alta, por exemplo) e cada classificação receberá um peso.
Com isto, pode-se estimar o esforço, calculando os pontos de objeto necessários para
o desenvolvimento. Avalia-se, então, a taxa de desenvolvimento histórica para projetos
similares, de modo a determinar quantos pontos de objeto poderão ser produzidos por mês.
Após isto, busca-se gerar a taxa de desenvolvimento na forma pessoas/mês (LOPÉZ, 2005;
BOEHM; BROWN, 2009).
Quando boa parte dos requisitos estão elicitados e as possíveis arquiteturas do sistema
já foram exploradas, faz-se uso do submodelo projeto inicial. Este modelo faz uso de pontos
de função que são convertidos a milhares de linhas de código-fonte (KSLOC - Kilo Source Line
of Code).
Considerações finais
A administração de projetos que visam gerar soluções de software para as mais diversas
aplicações requer a noção do tamanho do software como elemento necessário para a
determinação de demais fatores, tais como custo, prazos, dentre outros (VAZQUEZ; SIMÕES;
ALBERT). As técnicas de estimativas e medição do tamanho do software, mais conhecido
como tamanho funcional, permitem-nos mensurar os esforços necessários em cada etapa do
ciclo de desenvolvimento de software. As técnicas de APF e COCOMO II nos permitem obter
esta mensuração. A técnica de APF, por sua vez, é independente de tecnologia, enquanto a
COCOMO II depende da linguagem de programação a ser utilizada para o desenvolvimento do
software, assim como é baseada em uma análise histórica de projetos anteriores na mesma
plataforma, para determinar o tamanho atual do projeto e os esforços necessários (LOPÉZ,
2005; VAZQUEZ; SIMÕES; ALBERT, 2013).
Referências
BOEHM, Barry W.; BROWN, A. Winsor. Software Cost Estimation with COCOMO II. New Jersey:
Prentice Hall, 2009.
DEKKERS, Carol A. Measuring the “logical” or “functional” Size of Software Projects and
Software Application. Spotlight Software, ISO Bulletin May 2003 pp. 10-13.
JONES, Capers. Estimating Software Costs. Second Edition. Mc Graw Hill, 2007.
JÚNIOR, Waine Teixeira; SANCHES, Rosely. Modelos de Estimativas de Custo de Software COCOMO
& COCOMO II. Relatórios Técnicos do ICMC. nº. 106. 2000. Disponível em: <http://www.icmc.usp.
br/CMS/Arquivos/arquivos_enviados/BIBLIOTECA_113_RT_106.pdf>. Acesso em: 28 fev. 2015.
LOPÉZ, Pablo Ariel do Prado. COCOMO II - Um Modelo para estimativa de custo de Gerência de
Projetos. In: VII Encontro de Estudantes de Informática do Estado do Tocantins, 2005. Anais
Eletrônicos... Palmas, 2005.
VAZQUEZ, Carlos Eduardo; SIMÕES, Guilherme Siqueira; ALBERT, Renato Machado. Análise de
pontos de função: medição, estimativas e gerenciamento de projetos de software. São Paulo:
Érica, 2013.
Anexo
Quadro 1 – Etapas e suas interdependências no processo de medição do tamanhofuncional
de um software por meio da técnica de APF