Vous êtes sur la page 1sur 10

Utilizando mtricas para dimensionar

um software.
Entenda como funcionam as Mtricas de Software, como e
quando devem ser utilizadas, e qual a real necessidade do uso
desta tcnica da Engenharia de Software.
Conhea os mtodos utilizados para realizar a medio de um software, como a Anlise de
Pontos por Funo e Pontos por Caso de Uso.

ARTUR COSTA, DIEGO HENRIQUE, GLEIDSON SRGIO, LUCAS LISBOA, RICK


ANDRADE

Segundo o IEEE, mtrica uma medida quantitativa do grau com que o sistema, componente
ou processo possui um dado atributo. Em outras palavras, atravs de outras definies
relacionadas, tambm formuladas pelo IEEE, podemos separar as mtricas em alguns
aspectos:

Atributo - Propriedade fsica ou abstrata mensurvel de uma entidade.

Medio - O ato ou processo de atribuir um nmero ou uma categoria a uma entidade


para descrever aquela entidade.

Medida - Um nmero, extenso ou quantidade que resulta de uma medio.

Medir - Aplicar uma mtrica, ou atribuir valor por comparao com uma norma.

Medies requerem entidades (objetos de interesse), atributos (caractersticas das entidades) e


regras ou escalas para atribuir valores (medidas) aos atributos. Na prtica, mtrica e medida
tem o mesmo significado.
As mtricas se dividem em dois principais tipos: Diretas e Indiretas. Uma mtrica direta (bsica)
no depende da medio de nenhum outro atributo, como as mtricas de esforo e tamanho
funcional. J a indireta (derivada) calculada por meio de combinaes de outras mtricas,
como a mtrica de produtividade que depende das anteriores. Outras classificaes trazem o
conceito de mtrica objetiva, independente do autor da medio. Enquanto a subjetiva depende
do julgamento humano. Como exemplo tem-se: contar defeitos objetivo, classificar o nvel do
defeito subjetivo.

Ao se calcular mtricas, podemos aperfeioar uma das tarefas mais importantes da Gerncia
de Projetos que o planejamento. Com a utilizao das mtricas pode-se identificar o esforo,
custo e atividades necessrias para a realizao do um projeto.
Segundo Wilson de Pdua (PDUA, 2009), os principais objetivos das mtricas de software e
seu gerenciamento so:

Aumentar a exatido das previses sobre custos e prazos dos projetos;


Reduzir os defeitos e outros problemas do produto;
Reduzir os custos e prazos do projeto;
Aumentar o retorno do investimento da organizao em processos, tecnologia e
treinamento;
Identificar necessidades de novos investimentos em processos, tecnologia e
treinamento.

Ao analisar os tpicos acima, pode-se entender melhor alguns aspectos que esto envolvidos
utilizao de mtricas, como o comportamento e o funcionamento de produtos de software,
determinao de padres, metas e critrios de aceitao, controle de processos, produtos e
servios de software e previsibilidade de valores dos atributos.
O objetivo deste artigo consiste em explicar os fundamentos e funcionamento das mtricas de
software, abordando como exemplo a Anlise por ponto de Funo e os Pontos por Caso de
Uso. Visando o melhor entendimento do assunto tem-se ainda a exposio de uma situao
real que envolve uma empresa bem sucedida que utiliza mtricas de software.

Porque devemos medir um software?


Em diversas reas da Engenharia a medio algo extremamente importante e comum, seja
para definir o tamanho de uma planta, a distncia de um lugar para outro, entre outros
exemplos. Para isto, so estabelecidos padres que so, em sua maioria, amplamente aceitos
pela comunidade mundial que desenvolve trabalhos ligados a estas reas. Porm, na rea
computacional, mais especificamente na Engenharia de Software, essa definio de um padro
para estabelecer medidas de um software bastante complicada.
Essa dificuldade vem do fato da difcil concordncia sobre o que medir em um software, quais
critrios analisar, como definir padres de avaliao, entre outras diversas divergncias de
pensamentos. Visando diminuir essas diferenas foi criado o que chamado de Mtricas de
Software.
Mtricas de Software uma rea de estudo que visa medir atributos de uma determinada
entidade. Ou seja, consiste numa tcnica para medir propriedades ou caractersticas de
produtos, processos ou recursos. O tema Mtricas de Software alvo de discusso no ramo
da Engenharia de Software h mais de 20 anos, porm na prtica a tcnica pouco utilizada
nos projetos de desenvolvimento de um software.
Sua utilizao tem por objetivo aumentar o grau de gerenciamento de um projeto de software,
uma vez que, traz com maior exatido previses sobre custo e prazos do projeto. Alm disso,

visa aumentar e identificar necessidades de investimentos dentro da organizao e a


possibilidade de reduo de custos e prazos do projeto.
Mas, porque devemos realmente medir um software durante o seu desenvolvimento? Essa
uma das grandes dvidas que envolvem o tema dentro de organizaes. E, muitas vezes, por
no entenderem a real necessidade, acabam deixando de lado essa importante tcnica de
gerenciamento de custos, esforos, recursos, entre outros. Deve-se medir um software,
principalmente, porque atravs da medio pode-se entender melhor e aperfeioar o processo
de desenvolvimento e gesto, inclusive melhorando a relao com os clientes. Outros pontos
importantes ligados medio de um software esto relacionados com a melhoria na gerncia
dos contratos da empresa, nas melhores avaliaes ligadas a produtividade do processo como
um todo, aos benefcios da utilizao de mtodos de trabalho e novas ferramentas e ao retorno
de investimento estimado para um determinado projeto.
No processo de utilizao de Mtricas de Software deve-se garantir algumas propriedades para
que as mesmas sejam utilizada da maneira mais eficiente possvel. As mtricas devem ser
facilmente entendidas, calculadas e testadas, devem gerar uma sugesto de melhoria nas
estratgias, bem como de extrema importncia que a mtrica seja obtida o mais cedo
possvel no processo de desenvolvimento de um software, visando obter o mximo de
vantagens que ela proporcione.
As Mtricas de Software devem ser a rigor prticas, com baixo custo e confiveis. Elas se
dividem basicamente em diversos tipos, dentre eles temos: Mtricas Diretas, Mtricas Indiretas,
Mtricas Orientadas a Tamanho, Mtricas Orientadas por Funo, Mtricas de Produtividade,
Mtricas de Qualidade e Mtricas Tcnicas.
As Mtricas Diretas, ou ainda, fundamentais ou bsicas, so mtricas realizadas em termos de
atributos observados, ou seja, determinada pela contagem. Como exemplo, tem-se: esforo,
custo, linhas de cdigo, nmero de pginas e diagramas. J as Mtricas Indiretas, ou
derivadas, relacionam-se com medidas geradas atravs de outras mtricas. Por exemplo:
eficincia, confiabilidade, facilidade de manuteno de um cdigo. Por sua vez, as Mtricas
Orientadas a Tamanho trazem consigo medidas diretas do tamanho dos softwares.
As Mtricas Orientadas por Funo consistem em medir o software atravs da viso do usurio
final. J as Mtricas de produtividade relacionam-se com o processo da Engenharia de
Software, como por exemplo, com a utilizao dos nmeros de casos de uso. As Mtricas de
Qualidade trazem uma melhor indicao de como o software se adequa s necessidades do
cliente. As Mtricas Tcnicas visam a obteno de caractersticas especficas do software
tirando o foco do processo pelo qual o mesmo foi projetado e desenvolvido.
Existem dois mtodos importantes no processo de medio de um software. So eles: Anlise
de Pontos por Funo e Pontos por Caso de Uso. A seguir, aprofundaremos os estudos destes
dois mtodos, visando entender melhor como funciona o processo de medio de um software.

Mtricas de Software
As Mtricas de Software correspondem a tcnicas para medio de um software. A seguir
sero abordados dois dos principais mtodos utilizados para se dimensionar um software. So
eles: Analise por Ponto de Funo (APF) e Pontos por caso de Uso (UCP).

Anlise de Pontos por Funo


A Anlise de Pontos por Funo (APF) consiste em uma importante tcnica para a medio de
projetos de software. Seu papel estabelecer uma medida atravs dos Pontos de Funo,
observando as funcionalidades que o software possui atravs do ponto de vista do usurio.
importante destacar que a utilizao do APF totalmente independente de linguagens de
programao e de tecnologias utilizadas em projetos. O objetivo dessa anlise relaciona-se
justamente com a medida de projetos desvinculando-os das tecnologias utilizadas. Outro ponto
a ser destacado a medio da funcionalidade requisitada pelo cliente, o que auxilia na
tomada de decises, relacionadas com custo, prazo, quantidade de recursos alocados,
melhoria no cronograma e etc.
Os clculos dos pontos por funo devem seguir o Manual de Prticas de Contagem do IFPUG
(International Function Point Users Group), que nada mais que um grupo internacional que
estabelece padres e regras para a utilizao da anlise dos pontos por funo. O manual traz
operaes bsicas como funes dos tipos dados, transao, itens de influncia, ambientes,
recursos e equipes.
O processo de contagem dos pontos de funo (PF) composto por trs fases:

Componentes considerados, que envolvem a contagem dos seguintes componentes:


Arquivos Lgicos Internos, Arquivos de Interface Externa, Entradas Externas, Consultas
Externas e Sadas Externas.

Etapas do processo de contagem, que trazem os seguintes aspectos: Identificao,


Complexidade e Contibuio, Pontos de Funo No Ajustados e Pontos de Funo
Ajustados.

Aplicao da contagem, que envolve os Pontos de Funo de um Projeto de Sistema,


de Alteraes em Sistemas e de um Sistema. O primeiro significa a anlise de um
projeto como um todo, desde suas modificaes entrega final. O segundo relaciona-se
com a incluso na contagem dos componentes novos, alterados e, possivelmente,
excludos. Por fim, o terceiro relaciona-se exclusivamente com o sistema entregue ao
usurio, medindo o tamanho do sistema.

Pontos por Caso de Uso


O mtodo Use Case Points (UCP) foi elaborado por Gustav Karner no ano de 1993 tendo como
base o APF (Anlise por Ponto de Funo). Esse tipo de mtrica procura avaliar o sistema
atravs da anlise da forma como os usurios utilizaro o sistema, a complexidade das tarefas
requisitadas, bem como um estudo dos passos para efetuar cada atividade, determinando a
eficincia do projeto.
O mtodo UCP tem como caracterstica a possibilidade de mensurar o sistema na fase de
levantamento de requisitos do projeto utilizando os documentos feitos na mesma como base
para fazer o calculo dimensional.
Os passos para fazer a medio nesse mtodo so:

1. Calcular o UUCP (Unadjusted Use Case Point)


Relacionar os atores de acordo com nvel de complexidade representado na tabela 1 abaixo:
Complexidade

Peso

Definio

Simples

Quando o ator representa um ambiente externo


acessado por uma API (Application Programming
Interface).

Mdio

Quando o ator representa um sistema externo,


acessado atravs de um protocolo de
comunicao (por exemplo: TCP/IP).

Complexo

Quando o ator interage com o sistema atravs de


uma interface grfica (GUI).

Tabela 1. Pesos de Atores


- Relacionar e classificar os casos de usos de acordo com a complexidade da tabela 2 abaixo:
Complexidade

Peso

Definio

Simples

Quando o Caso de Uso possui 3 (trs) ou


menos
transaes,
incluindo
cenrios
alternativos e sua realizao deve acontecer
com menos de 5 objetos (classes de anlise).

Mdio

10

Quando o Caso de Uso possui de 4 a 7


transaes, incluindo cenrios alternativos e sua
realizao deve acontecer com 5 a 10 objetos
(classes de anlise)

Complexo

15

Quando o Caso de Uso possui mais de 7


transaes, incluindo cenrios alternativos, e
sua realizao deve acontecer com mais de 10
objetos (classes de anlise).

Tabela 2. Peso de Casos de Uso


- Para calcular o UUCP faz-se:
UUCP = Total de peso do atores relacionados + Total de peso dos casos de uso relacionados
2. Calcular o TCF (Technical Complexity Factor)
Para cada requisito listado na tabela 3 abaixo deve ser atribudo um valor que determina a
influncia do requisito no sistema, variando entre 0 e 5:

Fator

Requisito

Peso

T1

Sistema distribudo

T2

Tempo de resposta

T3

Eficincia

T4

Processamento complexo

T5

Cdigo reusvel

T6

Facilidade de instalao

0.5

T7

Facilidade de uso

0.5

T8

Portabilidade

T9

Facilidade de mudana

T10

Concorrncia

T11

Recursos de segurana

T12

Acessvel por terceiros

T13

Requer treinamento
especial

Tabela 3. Peso de Fatores Tcnicos

- O calculo do TFactor realizado fazendo o somatrio dos fatores identificados (T1 a T13) do
sistema a ser feito multiplicados pelo respectivo peso;
- Calcular o fator de complexidade de acordo com a frmula: TCF = 0,6 + (0,01*Tfactor)

3. Calcular o Efactor (Environmental Factor)


- Para cada requisito da tabela 4 atribui-se um valor que determina a influncia do requisito no
sistema variando de 0 a 5:

Fator

Descrio

Peso

E1

Familiaridade com RUP ou outro


processo formal

1.5

E2

Experincia com a aplicao em


desenvolvimento

0.5

E3

Experincia em Orientao a Objetos

E4

Presena de analista experiente

0.5

E5

Motivao

E6

Requisitos estveis

E7

Desenvolvedores em meio-expediente

-1

E8

Linguagem de programao difcil

Tabela 4. Pesos de Fatores Ambientais


- O calculo do EFactor realizado fazendo o somatrio dos fatores identificados (E1 a E8) do
sistema a ser feito multiplicados pelo respectivo peso;
- Calcular o fator de complexidade de acordo com a frmula: ECF = 1.4 + (0.03 * Efactor)
4. Calcular o UCP (Use Case Points)
Finalmente calcular o UCP utilizando os resultados dos fatores obtidos acima com a frmula:
UCP = UUCP * TCF * ECF
5. Estimar projeto em horas
Karner sugere a aplicao de 20 horas/homem por ponto de UCP:
Estimativa (horas) = UCP * 20
A estimativa do custo de desenvolvimento obtida pela multiplicao do nmero de casos de
uso estimado, pelo valor mdio da hora de desenvolvimento.
Para cada empresa que desenvolve software, estes valores so ajustados em funo do que
realmente ocorreu nos projetos j terminados e entregues ao usurio e com o tempo pode-se
chegar a estimativas da proporcionalidade do envolvimento de programadores e analistas no
projeto, fazendo-se clculos mais realistas onde deve ser somado todos os aspectos inerentes
ao projeto, que incluem custo de treinamento, custo homem/hora, custo de software de apoio,
custo de desenvolvimento.
Depois do que foi explanado, pode-se observar que o mtodo Pontos por Caso de Uso til
para realizar estimativas em curto prazo, porm mais apresentada para controle de qualidade
em detrimento a clculo de tamanho.

Experincia Prtica
Visando obter uma experincia prtica sobre Mtricas de Software entrevistamos uma empresa
de pequeno porte do ramo de desenvolvimento de sistemas web em Salvador, a Angulare

Negcios Web LTDA (http://www.angulare.com.br/). A Angulare tem 4 (quatro) anos de


existncia e possui uma equipe de 6 (seis) funcionrios.
Durante a entrevista com o senhor Rodrigo Jerry (rodrigo@angulare.com.br) percebemos que
sua empresa, como a maioria em Salvador, no utiliza nenhum tipo de Mtrica de Software.
Existe apenas a tentativa de se estimar prazos, que feita baseada totalmente no empirismo e
na experincia de cada profissional.
O principal problema relatado decorrente da falta de utilizao de mtricas o fato do
profissional abandonar o projeto porque no soube avaliar direito o custo do software,
causando grandes problemas para quem o contratou.
Foi feita a sugesto de se utilizar Pontos por Caso de Uso, pois essa mtrica possui boa
metodologia de estimativa de tempo. A sugesto foi recusada com a justificativa de que "
impossvel implantar um sistema de mtricas em uma equipe muito heterognea e no
contratada". A afirmao no tem fundamento, pois a medio do software utilizando UCP
pode ser feita durante as reunies de levantamento de requisitos.

Concluso
Atualmente as mtricas existentes so modificadas e novos modelos so criados
especificamente para melhorar a preciso da medio de softwares. Por isso, e pela resistncia
cultural encontrada nas organizaes, a utilizao de mtricas de software em um projeto
enfrenta algumas dificuldades dentro das empresas.
As atividades de medio devem sempre ser guiadas por objetivos, pois os planos de mtricas
detalham como criar programas de medio visando atender objetivos tcnicos especficos.
Mtricas mal-utilizadas e dados mal interpretados comprometem os resultados das medies.
difcil estabelecer medies apropriadas e teis, e mais difcil ainda manter.
possvel contornar estas dificuldades. Precisa-se manter o foco desde os estgios iniciais da
melhoria de processo,comear pequeno, selecionar um conjunto coerente e descartar o que
no for til.
importante definir cada detalhe da mtrica. No adianta criar uma mtrica se a equipe de
desenvolvimento no fizer uso dela. preciso treinar e incentivar a equipe a usar a mtrica.
Todas as pessoas afetadas devem ser envolvidas. Deve-se compreender que a adoo da
mtrica leva tempo.
Aps est explanao sobre as Mtricas de Software podemos concluir que o artigo visa
desmitificar, esclarecendo aos leitores, o que , para que servem e quando deve-se utilizar
Mtricas de Software para medir um determinado software. Com sua utilizao da maneira
ideal, pode-se garantir que as mesmas tenham um elevado grau de eficincia dentro das
organizaes, auxiliando no planejamento de um projeto, bem como no melhor gerenciamento
e entendimento do mesmo.

Augusto Artur Costa (arturcostta@gmail.com) graduando em Sistemas de Informao pela


Universidade Estadual da Bahia (UNEB). Tem interesse em desenvolvimento de software e
atualmente faz estgio na TecnoTRENDS com programao web.

Diego Henrique (diegoh2222@gmail.com) graduando em Sistemas de Informao pela


Universidade Estadual da Bahia (UNEB) e estagirio do Laboratrio de Automao e Controle
Industrial da Universidade Estadual da Bahia (UNEB).

Gleidson Srgio (gleidsonsergio@hotmail.com) graduando em Sistemas de Informao pela


Universidade Estadual da Bahia (UNEB).

Lucas Lisboa (lucas.lisboa.santos@gmail.com) graduando em Sistemas de Informao pela


Universidade Estadual da Bahia (UNEB) e estagirio das Comunidades Virtuais (UNEB).

Rick Andrade (rickandrade89@gmail.com) graduando em Sistemas de Informao pela


Universidade Estadual da Bahia (UNEB) e estagirio na PRODEB - Cia de Processamento de
Dados do Estado da Bahia.

Referncias Bibliogrficas
PAULA FILHO, Wilson de Pdua. Engenharia de Software: Fundamentos, Mtodos e Padres.
3 Edio, Rio de Janeiro-RJ. LTC, 2009.
Introduo a Mtricas de Software, disponvel em www.cin.ufpe.br/~if720/slides/introducao-ametricas-de-software.ppt. Acesso em 26/07/2011.
Mtricas de Software - Placido Antnio de Souza Neto, disponvel
http://www.cefetrn.br/~placido/disciplina/pgp/aulas/Metricas.pdf. Acesso em 26/07/2011.

em

Artigo Engenharia de Software 21 - Mtricas de Software disponvel


http://www.devmedia.com.br/articles/viewcomp.asp?comp=15776. Acesso em 26/07/2011.

em

Internation Function Point Users Group (IFPUG), disponvel em http://www.ifpug.org/. Acesso


em 26/07/2011.
Artigo Pontos de Funo e Medidas, DEKKERS, Carol A. Publicado no QAI Journal em
Dezembro de 1998. Brazilian Function Point Users Group (BFPUG), disponvel em
http://www.bfpug.com.br/Artigos/Dekkers-PontosDeFuncaoEMedidas.htm.
Acesso
em
26/07/2011.
Como os Pontos de Funo so contados. Brazilian Function Point Users Group (BFPUG),
disponvel em http://www.bfpug.com.br/Como%20Contar%20PF.htm. Acesso em 26/07/2011.
Artigo Pontos de Funo ou Pontos por Caso de Uso? Como estimar projetos orientados a
objetos. AGUIAR, Mauricio. Publicado na Developers Magazine, disponvel em
http://www.bfpug.com.br/Artigos/UCP/AguiarPontos_de_Funcao_ou_Pontos_por_Caso_de_Uso.pdf. Acesso em 26/07/2011.
Mtricas em Engenharia de Software - Pontos por Caso de Uso / Pontos por Funo,
disponvel
em
http://www.inf.ufrgs.br/~zirbes/MaterialAula/Gerencia%20e%20Administracao%20de%20Projet
os%202010_2/gap/Metricas%202008%20PCU_PPF.ppt, Acesso em 26/07/2011.
Plataforma de desenvolvimento Pinho Paran. Mtrica para Estimativa de Projetos (UCP).
CELEPAR - Informtica do Paran, disponvel em http://pt.scribd.com/doc/57886000/UCP-UseCase-Points, Acesso em 26/07/2011.