Documente Academic
Documente Profesional
Documente Cultură
Mtricas de
Desenvolvimento de
Software
Professor Marcelo Freitas Pintaud
1
Mtricas de Desenvolvimento de Software
Introduo 5
Captulo 1 Mtricas de Software 5
Medidas, Mtricas e Indicadores 5
Classificao das Mtricas de Software 7
Tipos de Mtricas de Software 8
Mtricas de Dimenso de Software 9
Mtricas de Halstead 11
Mtricas de Complexidade de Software 11
SUMRIO Mtricas de Qualidade de Software 12
Mtricas de Orientao a Objetos 14
Medidas Aplicadas Metodologia gil 16
Ferramentas para Extrao de Mtricas 17
Consideraes Sobre Mtricas 18
Estimativas de Software 18
Estimativas conceitos fundamentais 18
Planejamento do Projeto: definio do escopo 19
Planejamento do Projeto: Estimativa de Recursos 19
Tcnicas de Estimativas: Decomposio 20
Exemplos de Estimativas Baseadas em LOC 21
Exemplos de Estimativas Baseadas em Pontos Por Funo 22
Modelos de Estimativas 24
Modelos de Estimativa Empricos 24
Exemplo de Aplicao do Modelo Emprico 25
Modelo COCOMO - Conceitos Bsicos 26
COCOMO 81 26
Estimativa de esforo de desenvolvimento 27
Estimativa do prazo de desenvolvimento 27
Exemplo de aplicao do COCOMO 27
COCOMO II 28
Modelo Application Composition 28
Modelo Early Design 28
Modelo Post-Achitecture 30
Estimativa Baseada em Processo 30
Exemplo de Estimativa Baseada em Processo 31
Conciliao de Modelos de Estimativas 32
Exemplo de conciliao de estimativas 32
Gerenciamento de Riscos 33
Conceitos bsicos sobre riscos em projetos 33
Prticas para Gerenciamento de Riscos 34
2
Mtricas de Desenvolvimento de Software
3
Mtricas de Desenvolvimento de Software
4
Mtricas de Desenvolvimento de Software
Dessa forma, caro aluno, caso voc esteja envolvido com ro e Arquiteto de Software.
a rea de desenvolvimento de software, fundamental ter
Marcelo Pintaud
conhecimento sobre os conceitos relativos s mtricas.
Ao longo dessa disciplina, apresentaremos os conceitos
bsicos sobre mtricas, depois veremos como elas se
Captulo 1 Mtricas de Software
relacionam com o produto, processo e projeto de software
e como podem auxiliar no seu controle e melhoria. Em Medidas, Mtricas e Indicadores
seguida, apresentaremos as diferentes categorias de
mtricas que podem dar suporte a vrios aspectos ligados Mtricas de software esto se tornando cada vez mais
prtica da Engenharia de Software. uma parte importante na prtica da Engenharia de Softwa-
re. A cada dia, um nmero maior de empresas e governos,
Em um segundo momento, voc ter oportunidade esto adotando e reportando mtricas de qualidade como
de ver como as mtricas desempenham um papel funda- parte dos requisitos contratuais de desenvolvimento.
mental em uma das reas mais crticas do desenvolvimen-
to de software: a rea de estimativas de custos, prazos e
recursos. Vrios modelos de estimativas sero apresenta-
dos, dando-lhe condies de constatar a importncia de
se ter um programa bem estabelecido de coleta de medi-
das, clculo de mtricas e armazenamento dessas infor-
maes em uma base de dados robusta. A qualidade des-
sa base de dados ser fundamental para a preciso das
estimativas realizadas para cada projeto em andamento
na sua empresa.
Fonte: http://blog.andrefaria.com/wp-content/uploads/2012/03/metric.
Trataremos, tambm, de um assunto que comum a png
5
Mtricas de Desenvolvimento de Software
Padres, modelos e normas como ISO - International Organization for Standardization, CMMI - Capability Maturi-
ty Model Integration, dentre outros, consideram as mtricas dentre as suas prticas recomendadas. Empresas esto
usando mtricas para melhor compreender, mapear, controlar e predizer projetos, processos e produtos de software.
Conforme Pressman (2010), medio comum no campo da Engenharia. Consumo de energia, peso, dimenses
fsicas, temperatura, voltagem e vrias outras medidas so utilizadas rotineiramente pelas vrias reas da Engenharia.
Importante!
No campo da Engenharia de Software a medio til principalmente quando relacionada ao processo, projeto
e produto de software.
Pode ser aplicada ao processo de software com o objetivo de melhor-lo continuamente. No caso do projeto
de software, as medidas podem auxiliar nas estimativas de prazos e custos, no controle de qualidade, na avaliao
da produtividade, no controle do projeto e na tomada de decises, conforme o projeto evolui. As medidas relacio-
nadas ao produto de software focalizam atributos especficos de artefatos e so coletadas medida que tarefas
tcnicas (anlise, projeto, codificao e teste) so conduzidas.
Pressman (2010), no contexto da engenharia de software, define medida como um valor que fornece uma indi-
cao quantitativa da extenso, quantidade, dimenso, capacidade ou tamanho de algum atributo de um produto ou
processo.
O IEEE Standard Glossary define mtrica como uma medida quantitativa do grau em que um sistema, componente
ou processo possui um determinado atributo.
Quando um nico ponto de dados foi coletado (como, por exemplo, o nmero de erros descoberto em um nico
componente de software) uma medida foi estabelecida.
Medio ocorre como resultado da coleo de um ou mais pontos de dados (por exemplo, um certo nmero de
revises de componentes e testes de unidade so investigados para coletar medidas do nmero de erros em cada um).
Uma mtrica de software relaciona as medidas individuais de algum modo, como, por exemplo, o nmero mdio de
erros encontrados por reviso ou nmero mdio de erros encontrados por teste unitrio.
Um engenheiro de software coleta medidas e desenvolve mtricas de modo que indicadores sejam obtidos. Um
indicador uma mtrica ou combinao de mtricas que fornece profundidade na viso do processo, projeto ou pro-
duto de software.
Um indicador fornece um parmetro que permite ao gerente do projeto ou engenheiros de software ajustarem o
processo, projeto ou produto para torn-lo melhores e gerenciveis.
6
Mtricas de Desenvolvimento de Software
Uma grande variedade de mtricas j foram propostas, mas nem todas mostram resultados satisfatrios.
Isso ocorre por vrios fatores: algumas exigem, por exemplo, medies muito complexas, outras so muito restritas,
limitando sua aplicao, e outras violam as noes bsicas dos atributos de um software (qualidade, por exemplo).
As mtricas de software consideradas efetivas devem possuir alguns atributos. Dentre eles podemos citar:
Simples e computveis: deve ser relativamente fcil aprender como derivar a mtrica e seu clculo no deve
exigir esforo ou tempo exagerado.
Empricas e intuitivamente persuasivas: a mtrica deve satisfazer s noes intuitivas do engenheiro de
software sobre o atributo do produto que est sendo considerado.
Consistentes e objetivas: a mtrica deve produzir sempre resultados que no sejam ambguos.
Independentes da linguagem de programao: mtricas devem ser baseadas no modelo de anlise, modelo de
projeto ou na estrutura do programa.
Mecanismo efetivo para realimentao de alta qualidade: isto , a mtrica deve levar a um produto final da
mais alta qualidade.
Enfim, as mtricas devem permitir a comparao dos resultados para medir qualidade, eficincia, custo, produtivi-
dade, dentre outros aspectos mensurveis da anlise, desenho, codificao e testes de software.
7
Mtricas de Desenvolvimento de Software
Apresentamos algumas classificaes de mtricas no Existem outras classificaes, como mtricas pblicas
que se segue. e mtricas privadas.
8
Mtricas de Desenvolvimento de Software
Nos prximos tpicos apresentaremos alguns tipos de Tanto os parmetros como os fatores de ponderao
mtricas. constantes na tabela T1 so propostos pelo modelo e, a
princpio, so fixos.
Mtricas de Dimenso de Software
Ento, nesse passo, voc ter que estimar a quantida-
Linhas de Cdigo (LOC- Lines of Code) de de cada parmetro previsto para o software a ser de-
Podemos dizer que, pelo menos at hoje, essa a me- senvolvido e atribuir um fator de ponderao para cada
dida mais utilizada para medir o tamanho de um progra- um deles.
ma. de fcil definio e preciso, apesar de que algumas
dvidas podem surgir na contagem do que se considera Uma grande questo que surge como minimizar a
linhas de cdigo. subjetividade na atribuio desses fatores de ponderao,
Por exemplo, podem surgir dvidas quanto a conside- porque isso pode variar de pessoa para pessoa.
rar ou no linhas em branco, comentrios, trechos no-
-executveis, mltiplas declaraes por linha e vrias li- O IFPUG- International Function Points Users Group
nhas por declarao, assim como a questo das linhas de disponibiliza uma srie de recomendaes visando mini-
cdigo repetidas ou reusadas. mizar essa subjetividade.
O mais usual contar qualquer linha que no seja linha Uma vez preenchida a Tabela T1, voc ter o valor de
em branco ou comentrio, independentemente do nme- Contagem Total, o qual ser utilizado no terceiro passo do
ro de declaraes por linha. clculo.
Mtricas calculadas por esse mtodo podero somente Tabela T1: Tabela para Pontos por Funo
ser comparadas se referirem mesma linguagem de progra-
mao e se o estilo de programao estiver normalizado.
9
Mtricas de Desenvolvimento de Software
Para evitar o problema da subjetividade ao avaliar a influncia de cada funcionalidade, o IFPUG desenvolveu
recomendaes a serem seguidas.
No final desse segundo passo, voc ter a soma das influncias de cada uma das 14 perguntas.
O valor dessa soma variar de um mnimo de 0 (todas as 14 perguntas tendo valor 0) a um valor mximo de 70
(todas as perguntas tendo valor igual a 5).
[3] No terceiro passo, faz-se uso de uma expresso emprica proposta pelo modelo para obteno dos pontos por
funo:
No captulo 2 voltaremos a falar sobre esse tipo de mtrica e veremos sua aplicao em algumas tcnicas de
estimativas de custo e prazo de desenvolvimento.
Antes de prosseguir com o estudo, recomendamos que voc acesse o site do IFPUG ou BFPUG e se familiarize com
as recomendaes propostas para a utilizao do modelo.
Atravs dele voc tomar conhecimento em detalhes das vrias etapas que tem que seguir para obter essa medida
de funcionalidade do software.
10
Mtricas de Desenvolvimento de Software
System Bag
Vocabulrio do Programa
Complexidade Ciclomtica - v(G)
O software visualizado como uma sequncia de sm- A Complexidade Ciclomtica parte do princpio que a
bolos (tokens), sendo cada smbolo classificado em opera- complexidade depende do nmero de condies (caminhos
dores ou operandos. Dessa forma, o vocabulrio do pro- lgicos), correspondendo ao nmero mximo de percur-
grama (n) definido como: sos linearmente independentes em um software. A ideia
que, medindo a complexidade do programa, voc sai-
ba quantos caminhos lgicos deve testar. Isso auxilia no
desenvolvimento e nos testes do software. Essa mtrica
pode ser representada atravs de um grafo de fluxo de
onde controle, onde os ns representam uma ou mais instru-
11
Mtricas de Desenvolvimento de Software
onde
e o nmero de arestas Uma experincia de validao dessa mtrica foi reali-
n o nmero de ns do grafo. zada na concepo e desenvolvimento de um ncleo para
o sistema operacional UNIX. Alm disso, fluxo de informa-
A complexidade ciclomtica pode ter vrias interpre-
taes. Por exemplo, foi verificado que a produtividade o tambm permite estimar, com uma certa preciso, o
diminui de forma no linear proporcionalmente ao au- esforo de manuteno.
mento da densidade dos pontos condicionais. Tambm foi
relacionada com os esforos de depurao e manuteno, Mtricas de Qualidade de Software
podendo ser utilizada para estimar custos a partir do pro-
jeto detalhado dos mdulos. Qualidade uma caracterstica que, nos modelos
O interesse na mtrica de complexidade ciclomtica tradicionais de desenvolvimento de software, pode ser
levou sua normalizao. Posteriormente, foram defi- medida em cada fase do ciclo de desenvolvimento de
nidas outras cinco mtricas: complexidade da unidade software. Mtricas para a qualidade na fase de projeto,
real, complexidade essencial, complexidade do projeto por exemplo, foram propostas h dcadas.
de mdulos, complexidade total do projeto e complexi-
dade de integrao. Essas mtricas foram utilizadas para
Os primeiros estudos sobre mtricas mostram mais re-
identificar e minimizar a complexidade em cdigos no
latos e experincias com mtricas de dimenso e comple-
estruturados, decidindo sobre o nmero de testes neces-
xidade; posteriormente algumas reas que tratam as ca-
srios para uma cobertura total das possveis execues,
ractersticas de qualidade de software foram investigadas.
eliminando a redundncia e restringindo a complexidade
de mdulos produzidos a um nvel aceitvel.
Corretude, eficincia, portabilidade, confiabilidade,
Nmero de Ns usabilidade, modularidade, grau de reutilizao e facilida-
de de manuteno (manutenibilidade) so caractersticas
Corresponde ao nmero de ns em um grafo de fluxo
ligadas qualidade de software.
de controle que representa a sequncia de controle de
execuo de instrues num programa. Um n definido
Mtricas de Funcionalidade
como uma passagem necessria das linhas direcionais
(arestas) no grafo, sendo assim uma proposta de mtrica Funcionalidade pode ser definida como a capacidade
de complexidade de software. de um software ser usado com eficincia e satisfao para
atingir objetivos especficos em um determinado ambien-
Fluxo de Informao
te. Podem-se destacar as seguintes caractersticas sobre a
funcionalidade do software:
12
Mtricas de Desenvolvimento de Software
Facilidade de aprendizagem: capacidade de um usu- aplicar, partindo das mtricas de manuteno corretiva.
rio atingir rapidamente um grau de proficincia ele- Mtricas tpicas dessa categoria so:
vada;
MTTF - Mean Time To Fail (Tempo Mdio at a
Usabilidade: capacidade do software interagir ami-
Falha): a probabilidade de uma falha ocorrer num
gavelmente com os usurios;
intervalo de tempo especificado;
Controle: capacidade de um produto em responder MTBF - Medium Time Between Failures (Tempo
de uma forma natural e consistente aos comandos e Mdio entre Falhas): o tempo mdio entre falhas.
entradas de dados fornecidos;
Utilidade: capacidade de resolver ou ajudar a resol- Existem modelos para descrever a ocorrncia de erros
ver problemas para os quais o software foi proposto; em funo do tempo, permitindo definir a confiabilidade
e o MTTF. Partindo dos seguintes pressupostos:
Eficincia: capacidade de resolver problemas de for-
ma rpida e econmica.
Entradas de testes so exemplos aleatrios de
Uma questo que bastante discutida em relao a entradas no sistema;
esse tipo de mtrica a subjetividade que pode haver em Todos os erros de software so observados;
seus clculos. Esforos tem sido realizados no sentido de Intervalos de erros so independentes uns dos ou-
minimizar essa questo. tros;
MTBF exponencialmente distribudo.
Mtricas de Manuteno Corretiva
Algumas mtricas foram propostas para medir ou pre- As seguintes equaes so definidas:
ver a manutenibilidade do software, j que erros encon-
trados no sistema e a sua eliminao rpida so caracters-
ticas importantes na avaliao da qualidade do software.
13
Mtricas de Desenvolvimento de Software
e a manuteno pode ser assim explorada no sentido de relao ao nmero total de mtodos acessveis na
conseguir a reduo dos custos de manuteno. classe.
Medida de Abstrao dos Atributos (MAA - Mea-
Mtricas de Orientao a Objetos sure of Attribute Abstraction): razo do nmero de
atributos herdados por uma classe em relao ao
Existem mtricas voltadas especificamente aos aspec-
nmero total de atributos nas classes.
tos relevantes no contexto da programao orientada a
Mtodos ponderados por Classe (WMC - Wei-
objetos: mtricas de classe, mtricas de mtodos, mtri-
ghted Methods per Class): soma ponderada de to-
cas de herana, mtricas de acoplamento e mtricas do
dos os mtodos da classe.
sistema (caractersticas gerais do software orientado a
Mtodos Reusados (PMR - Percent of Potential
objetos), conforme apresentado a seguir.
Method uses actually Reused): percentual de reu-
so dos mtodos da classe.
Mtricas de Classes
Mtrica de Acesso aos Dados (DAM - Data Access
Cdigo Orientado a Funo (FOC - Function Orien- Metric): razo do nmero de atributos privados
ted Code): mede o percentual de cdigo no orien- em relao ao nmero total de atributos declara-
tado a objeto usado no programa. dos na classes.
Coeso de Classe (CCO - Class Cohesion): mede a Nmero de Ancestrais (NOA - Number Of Ances-
relao entre as classes. tors): nmero total de ancestrais de uma classe.
Dados Pblicos (PDA - Public Data): contabiliza o Nmero de Atributos Pblicos (NPA - Number of
nmero de acessos aos dados protegidos e pbli- Public Attributes): contabiliza o nmero de atribu-
cos de uma classe. tos declarados como pblicos em uma classe.
Encapsulamento dos Atributos (AHF - Attribute Nmero de Mtodos de Classe em uma Classe
Hiding Factor): razo entre a soma de todos os (NCM - Number of Class Methods): mede os mto-
atributos herdados de todas as classes do sistema dos disponveis em uma classe, mas no em suas
em considerao ao nmero total de atributos das instncias.
classes disponveis. Nmero de Parmetros por Mtodos (NPM -
Encapsulamento dos Mtodos (MHF - Method Hi- Number of Parameters per Method): nmero m-
ding Factor): razo entre a soma de todos os m- dio de parmetros por mtodo.
todos invisveis em todas as classes em relao ao Nmero de Referncias como Atributo (NRA -
nmero total de mtodos definidos em um deter- Number of Reference Attributes): contabiliza o n-
minado sistema. mero de ponteiros e referncias passadas como
Entropia de Complexidade da Classe (CEC - Class atributos de uma classe.
Entropy Complexity): mede a complexidade da Nmero de Tipos de Dados Abstratos (NAD - Num-
classe, baseada no contedo de suas informaes. ber of Abstract Data types): nmero de objetos de-
Falta de Coeso entre Mtodos (LCM - Lack of Co- finidos pelo usurio como atributos de uma classe
hesion between Methods): indica o nvel de coeso que so necessrios para instanciar um objeto da
entre os mtodos. referida classe.
Linhas de comentrio por Mtodo (CLM - Com- Nmero de Variveis de Instncia em uma Classe
ment Lines per Method): mede o percentual de (NIV - Number of Instance Variables): mede a rela-
comentrios no mtodo. o de uma classe com outro objeto do programa.
Medida de Abstrao das Funes (MFA - Mea- Percentual de Dados Pblicos (PPD - Percentage
sure of Functional Abstraction): razo entre o n- of Public Data): o percentual de dados pblicos
mero de mtodos herdados por uma classe em de uma classe.
14
Mtricas de Desenvolvimento de Software
Ponderao do Tamanho da Classe (WCS - Wei- tambm conhecida como fan-out da classe, ou
ghted Class Size): nmero de ancestrais mais o ta- como Acoplamento entre Objetos (CBO - Coupling
manho total de mtodos da classe. Between Objects) na famlia de mtricas de CK
Porcentagem de Mtodos Comentados (PCM - (Chidamber-Kemerer).
Percentage of Commented Methods): percentual Acoplamento de Classe (CP - Class Coupling):
de mtodos com comentrios em uma classe. mede as relaes entre as classes com base em
Privacidade Interna (INP - Internal Privacy): refere- suas trocas de mensagens.
se ao uso de funes de acesso classe, incluindo Fator de Acoplamento (CFA - Coupling Factor):
as chamadas da prpria classe. razo entre o nmero mximo possvel de
Respostas para uma Classe (RFC - Response For acoplamentos no sistema e o nmero atual de
a Class): nmero de mtodos dentre todos os acoplamentos possveis por herana.
mtodos que podem ser invocados em resposta
a uma mensagem enviada por um objeto de uma Mtricas de Herana
classe.
Construo Efetiva (FEF - Factoring Effectiveness):
Mtricas de Mtodos nmero de mtodos nicos dividido pelo nmero
total de mtodos.
Complexidade do Mtodo (MCX - Method Com- Potencial de Mtodos Sobrescritos (PMO - Percent
plexity): relaciona a complexidade com o nmero of Potential Method uses Overridden): percentual
de mensagens. de mtodos sobrescritos utilizados.
MAG (MAX V(G)): complexidade ciclomtica Nvel de Aninhamento Hierrquico da Classe
mxima dos mtodos de uma classe. (HNL - Class Hierarchy Nesting Level): mede a
Mdia de Complexidade dos Mtodos (AMC - profundidade de hierarquia em que cada classe
Average Method Complexity): soma da comple-
est localizada.
xidade ciclomtica de todos os mtodos dividido
Mtricas de Reuso de Mtodo (MRE - Method Reu-
pelo nmero total de mtodos.
se Metrics): indica o nvel de reuso dos mtodos.
Mdia do Tamanho dos Mtodos (AMS - Average
Nmero de Mtodos Herdados (NMI - Number of
Method Size): mede o tamanho mdio dos mto-
Methods Inherited): mede o nmero de mtodos
dos do programa.
que uma classe herda.
Medida de Polimorfismo (PFA - Polymorphism
Mtricas de Acoplamento
Factor ): razo entre o nmero atual de possibili-
dades de polimorfismo diferentes de uma classe
Acoplamento Aferente (AC - Afferent Coupling):
e o nmero mximo de possveis polimorfismos
nmero total de classes externas de um pacote
distintos da referida classe.
que dependem de classes de dentro desse pacote.
Nmero de Mtodos Sobrescritos (NMO - Num-
Quando calculada no nvel da classe, essa medida
ber of Methods Overridden): nmero de mtodos
tambm conhecida como Fan-in da classe,
redeclarados pela classe herdeira.
medindo o nmero de classes das quais a classe
Tipo de Especializao (SIX - Specialisation Index):
derivada e, assim, valores elevados indicam uso
indica o tipo de especializao.
excessivo de herana mltipla.
Acoplamento Eferente (EC- Efferent Coupling): Medida de Herana de Atributos (AIF - Attribute
nmero total de classes dentro de um pacote Inheritance Factor): razo entre a soma dos atri-
que dependem de classes externas ao pacote. butos herdados em todas as classes do sistema e
Quando calculada no nvel da classe, essa medida o nmero total de atributos disponveis na classe.
15
Mtricas de Desenvolvimento de Software
Profundidade da rvore de Herana (DIT - Depth Problemas Relatados por Classe (PRC - Problem
of Inheritance Tree): mede o nmero de ancestrais Reports per Class): mede os relatos de erros da
de uma classe. classe.
Nmero de Filhos (NOC - Number Of Children): Reuso do Sistema (SRE - System Reuse): percentu-
nmero total de filhos de uma classe. al de reuso de classes.
Categorizao (CAN - Category Naming): divide as
Proporo de Reuso (RER - Reuse Ratio): razo
classes em um conjunto semanticamente significa-
entre o nmero de superclasses dividido pelo
tivo.
nmero total de classes.
Profundidade Mdia de Herana (ADI - Average
Proporo de Especializao (SPR - Specialisation
Depth of Inheritance): diviso entre a soma de n-
Ratio): razo entre o nmero de subclasses dividi- veis de aninhamento de todas as classes pelo n-
do pelo nmero de superclasses. mero de classes.
Medida de Herana de Mtodo (MIF - Method Mdia de Ancestrais (ANA - Average Number of
Inheritance Factor): razo entre a soma dos Ancestors): determina o nmero mdio de ances-
mtodos herdados em todas as classes e o nmero trais de todas as classes.
total de mtodos disponveis em todas as classes. Densidade Funcional (FDE - Functional Density):
Proporo entre Profundidade e Largura (RDB - razo entre o nmero de linhas de cdigo e pontos
Ratio between Depth and Breadth): razo entre a de funo.
Nmero de Rejeio de Classe (NCT - Number of Total de Linhas de Cdigo de Teste (TLCT): repre-
Classes Thrown away): mede o nmero de vezes senta o nmero total de pontos de teste do siste-
que uma classe rejeitada at que seja aceita. ma. Um ponto de teste considerado como um
16
Mtricas de Desenvolvimento de Software
passo do cenrio de um teste de aceitao, auto- A aplicao manual das mtricas bastante trabalhosa,
matizado ou como uma linha de cdigo de teste envolvendo uma srie de clculos e anotaes, o que
de unidade automatizado, descartando linhas em dificulta e torna essa atividade de medio propensa a
branco e comentrios. erros.
Sob esse prisma, torna-se bastante interessante a
Nmero de Linhas Alteradas: representa o nmero utilizao de ferramentas que automatizem e/ou orientem
de linhas (no apenas cdigo-fonte) adicionadas, tal processo de medio.
removidas e atualizadas no Repositrio de Cdigo
Unificado.
Esforo: uma medida que leva em conta o tamanho Assista a um vdeo sobre um caso prtico de uso de
da equipe durante um certo intervalo de tempo, mtricas ligadas s Mdias Sociais.
geralmente medido em pessoas-ms ou pessoas- http://youtu.be/9O8D3zY59w4 329
ano. Consideraes Sobre Mtricas
Ferramentas para Extrao de Mtricas
17
Mtricas de Desenvolvimento de Software
Independentemente das mtricas adotadas muito especifique as dependncias intertarefas que pre-
importante para as organizaes a coleta efetiva dessas cisam ter um forte acompanhamento do progresso
mtricas e o registro histrico dos projetos, formando
uma base de conhecimento que auxilie nos processos de
anlise, melhoria e tomada de deciso.
Vimos diferentes mtricas at o momento, porm mui-
tos fatores devem ser levados em considerao para a es-
colha das mtricas. Recomendamos que voc identifique
qual a necessidade de medio do projeto (qualidade,
produtividade, erros, falhas, etc) para, em seguida, adotar
mecanismos que permitam uma medio mais significati-
va e mais efetiva.
Estimativas conceitos fundamentais A estimativa de software vista tanto como arte quan-
to como cincia e o desenvolvedor conta com vrias tcni-
Caro aluno, quando estamos envolvidos em projeto cas teis para auxili-lo. As mtricas de processo e projeto
de software, antes mesmo de comearmos a realiz-lo, coletadas ao longo de projetos anteriores fornecem uma
precisamos lidar com alguns aspectos decisivos para o seu base importante para a gerao de estimativas quantita-
sucesso ou fracasso. Alguns destes pontos, estudados em tivas. Mas importante ressaltar, caro aluno, que a expe-
gerenciamento de projetos, so: escopo, custo, recursos rincia do pessoal envolvido pode ajudar imensamente
e cronograma. Observe que para lidar com estes pontos medida que as estimativas so desenvolvidas e revistas.
18
Mtricas de Desenvolvimento de Software
informao qualitativa, em alguns casos, tudo o que Facilitated Application Specification Technique que uma
pode se ter disponvel. abordagem que visa encorajar a criao de uma equipe
conjunta de clientes e desenvolvedores que trabalham
Toda estimativa tem incerteza e isso acaba acarretando juntos para identificar o problema, propor elementos de
riscos ao projeto. Se o escopo do projeto mal entendido soluo, negociar diferentes abordagens e especificar um
ou se os requisitos esto sujeitos a mudanas frequentes, conjunto preliminar de requisitos.
a incerteza e o risco podem se tornar perigosamente al-
tos. Discutiremos riscos no prximo captulo. Uma vez entendido o escopo, importante determinar
a viabilidade do projeto dentro das dimenses delimitadas
(tecnolgica, financeira, de tempo e de recursos). Isso
Planejamento do Projeto: definio do
importante para evitar dedicar esforo e dinheiro em um
escopo projeto que pode estar condenado ao fracasso desde o
incio.
Pressman (2010), faz uma interessante pergunta sobre
estimativas: Voc construiria uma casa sem saber quanto
iria gastar?. E fao a mesma pergunta a voc, caro alu-
Planejamento do Projeto: Estimativa de
no. Certamente sua resposta seria: no. Como a maioria Recursos
dos sistemas e produtos de software pode custar consi-
deravelmente mais do que construir uma casa, muito Uma tarefa importante no planejamento a estimativa
razovel fazer uma estimativa antes de se comear a criar de recursos necessrios para o desenvolvimento do
software. software. A figura 2, proposta por Pressman (2006), ilustra
os recursos com que devemos nos preocupar.
Pois bem, caro aluno, podemos dizer que o objetivo
do planejamento de projeto fornecer uma estrutura que
permita ao gerente fazer estimativas razoveis de recur-
sos, custo e cronograma (prazos).
19
Mtricas de Desenvolvimento de Software
Use tcnicas de decomposio: essas tcnicas utili- Em relao s tcnicas de estimativa baseadas em LOC
zam uma abordagem do tipo dividir para conquis- e PF, elas diferem quanto ao nvel de detalhe necessrio
tar, que seria decompor o projeto em suas fun- para a decomposio:
es principais e atividades relacionadas.
Estimativa LOC: a decomposio considera que
Use um ou mais modelos empricos.
todas as funes podem ser decompostas em
importante ressaltar que essas opes dependem subfunes semelhantes a entradas de uma base
fundamentalmente dos dados histricos usados para ali- de dados histrica (quanto maior for o grau de
mentar a estimativa. Se no existem dados histricos, as particionamento, mais provvel ser que estimati-
estimativas sero precrias. vas precisas de LOC possam ser desenvolvidas)
20
Mtricas de Desenvolvimento de Software
Estimativa PF: ao invs de focalizar a funo, es- a varivel de estimativa tamanho (T), para cada funo
timada cada uma das caractersticas do domnio (LOC) ou valor do domnio de informao (PF).
de informao (entradas, sadas, arquivos de da-
dos, consultas, interfaces externas), bem como os Um exemplo de clculo de um valor esperado para T
14 valores de ajuste de complexidade. pode ser a mdia ponderada:
O ideal que a mdia de cada mtrica deva ser calcu- Suponha um determinado software que ser desen-
lada por domnio de projeto. Os projetos devem ser agru- volvido. Este software do tipo CAD Computer-Aided
pados por tamanho de equipe, rea de aplicao, comple- Design, ou seja, tem uma aplicao cientfica. Aps a an-
xidade e outros parmetros relevantes. A seguir, mdias lise do escopo do software, suas funes principais foram
locais dos domnios devem ser calculadas. identificadas e so relacionadas na tabela 1.
No caso de estimativas de um novo projeto, ele deve Em seguida, um intervalo de estimativa de LOC de-
ser primeiro classificado num domnio e depois a mdia senvolvido para cada funo.
da mtrica do domnio adequado deve ser usada para ge-
rar a estimativa. Esse intervalo considera as estimativas como otimista,
mais provvel e pessimista.
Independente da varivel de estimativa que usada
(LOC, PF, nmero de classes, nmero de casos de uso, Os valores das estimativas apresentados na tabela 1,
etc), o planejador comea estimando um intervalo de va- para cada funo, foram obtidos utilizando a expresso
lores para cada funo (LOC, por exemplo) ou o valor do para T j apresentada (T = ( Tot + 4Tmp + Tpess ) / 6).
domnio de informao (PF, por exemplo).
Por exemplo, para a funo Recursos de Anlise 3D,
Usando dados histricos e/ou intuio, so estimados foram obtidas estimativa otimista = 3800 LOC; mais prov-
um valor de tamanho otimista (Tot), um mais provvel vel= 6500 LOC; pessimista= 8600 LOC.
(Tmp) e um pessimista (Tpess) para cada funo (LOC) ou
contagem (PF - para cada valor do domnio de informa- Estes valores, aplicados na equao para T, produzem
o). Isso possibilita o clculo de um valor esperado para um valor esperado de 6400 LOC.
21
Mtricas de Desenvolvimento de Software
Tabela 1: Principais funes identificadas Tabela 2: Estimativas de Tamanho Otimista, Mais Pro-
vvel e Pessimista (em LOC)
Exemplo 2
22
Mtricas de Desenvolvimento de Software
domnio de informao ao invs das funes do software. Para cada fator de ajuste, um nmero atribudo con-
Neste mtodo, a estimativa registrada numa tabela, forme sua influncia no fator em anlise, de acordo com a
como a tabela 4, com os valores estimados do domnio de escala mostrada no quadro 2.
informao e com atribuio de valores aos 14 fatores de
ajuste de complexidade (veja quadro 1). Quadro 2: Escala de Influncia
23
Mtricas de Desenvolvimento de Software
Considere que a produtividade mdia para sistemas Estimativa de PF = 321 PF. Dessa forma, podemos
desse domnio seja de 5 PF/pm. calcular as estimativas de Custo Total Estimado do projeto
e Esforo necessrio para desenvolv-lo, conforme
Tabela 6: Valores obtidos na base de dados da empresa apresentado a seguir.
24
Mtricas de Desenvolvimento de Software
E = esforo em pessoas-ms
ev = varivel de estimativa (LOC ou PF)
E agora, alguns exemplos de modelos empricos orien- Considerando isso e utilizando os dados fornecidos na
tados a LOC para esforo (E): tabela 8, calcule:
25
Mtricas de Desenvolvimento de Software
Dessa forma, chegamos aos resultados mostrados na O COCOMO 81 apresentado na forma de um conjunto
Tabela 9. de modelos divididos hierarquicamente em trs nveis:
Bsico, Intermedirio e Avanado.
Tabela 9: Clculo do tamanho de cada funo a ser im-
plementada no software O modelo 1 COCOMO Bsico, calcula o esforo
do desenvolvimento de software em funo do ta-
manho estimado do programa expresso em linhas
de cdigo estimadas.
O modelo 2 COCOMO Intermedirio, calcula o
esforo de desenvolvimento de software em fun-
o do tamanho do programa e de um conjunto de
b. Esforo = E = 5,2 x (KLOC)0,91 = 5,2 x (34,317) 0,91 @ direcionadores de custo, alternativamente chama-
129,81 PM dos atributos ou fatores de software, que incluem
avaliaes subjetivas do produto, do hardware, do
c. Durao do Projeto = D = 4.1 x (KLOC) 0.36
= 4,1 x
pessoal e dos atributos do projeto.
(34,317)0,36 @ 14,64 meses
O modelo 3 COCOMO Avanado, incorpora to-
d. Tamanho da Equipe = S = 0.54 x (E) 0.6
= 0,54 x
das as caractersticas da verso intermediria, in-
(129,81)0,6 @ 10 pessoas
cluindo a avaliao do impacto dos atributos do
e. Pginas de Documentao: DOC = 49 x (KLOC) 1.01 software e da equipe desenvolvedora em cada
= 49 x (34,317)1,01 @ 1742 pginas passo do processo de engenharia de software.
Note que nas expresses acima deve-se utilizar KLOC Depois da anlise dos requisitos funcionais do sof-
(e no LOC) e que PM significa pessoa-ms. tware, o tamanho da aplicao deve ser estimado em
milhares de linhas de cdigo (KLOC) e o projeto deve ser
Modelo COCOMO - Conceitos Bsicos classificado em um dos trs modos de desenvolvimento,
identificados por Boehm (1981): orgnico, embutido ou
COCOMO- COnstructive COst MOdel (Modelo de semi destacado.
Custo Construtivo) um modelo emprico de estimativa
de software que foi derivado atravs da coleta de dados No modo orgnico, equipes relativamente peque-
de um grande nmero de projetos de software. bem nas desenvolvem sistemas num ambiente alta-
documentado, compatvel com ferramentas comerciais e mente familiar, in-house. Nesse modo de desen-
de domnio pblico e amplamente utilizado. volvimento, a maior parte das pessoas engajadas
Sua primeira verso data de 1981 e por isso referen- no projeto tem experincia prvia com sistemas
ciado como COCOMO 81 (tambm conhecido como CO- similares na organizao e entendimento comple-
COMO bsico). A verso atual denominada COCOMO 2. to do sistema. Outras caractersticas do modo or-
gnico so: ambiente estvel de desenvolvimento
Apresentaremos a seguir detalhes desse modelo. com pouca necessidade de inovao e inexistncia
de requisitos de entrega rgidos; uso de algoritmos
COCOMO 81 simples; tamanho relativamente pequeno, com
Apresentado por Boehm (1981), o COCOMO um projetos na faixa de at 50.000 linhas de cdigo.
modelo desenvolvido para estimar esforo, prazo, custo O principal fator que distingue um projeto de sof-
e tamanho da equipe para um projeto de software. Todas tware de modo embutido ou restrito a neces-
as referncias ao COCOMO encontradas na literatura sidade de seguir restries rigorosas. O produto
publicadas at 1995 so citaes desse modelo. a ser desenvolvido dever operar dentro de um
26
Mtricas de Desenvolvimento de Software
contexto complexo de hardware, software e regras Direcionador de custo uma caracterstica de desen-
e procedimentos operacionais. So projetos de volvimento de software que tem efeito aumentativo ou
software caracterizados por serem relativamente diminutivo na quantidade de esforo de desenvolvimento
grandes, com muita necessidade de inovao, que final do projeto. Boehm (1981) definiu 15 direcionadores
demandam altos custos de verificao e validao. de custo para o COCOMO que, segundo ele, provocam im-
Caro aluno, podemos citar como exemplos de pro- pacto significativo na produtividade e nos custos do pro-
jetos do modo embutido: projeto de sistema de jeto. O fator m(X) da equao de estimativa de esforo de
transferncia eletrnica de fundos e projeto de desenvolvimento o produto dos 15 direcionadores de
sistema de controle de trfego areo. custo. Definies completas dos direcionadores de custo
O modo semidestacado aplicado em projetos de esto descritas no trabalho de Boehm (1981).
software com caractersticas situadas entre os mo-
dos orgnico e embutido. Suas caractersticas bsi-
Estimativa do prazo de desenvolvimento
cas so: a equipe mescla grande e pouca experincia Alm de estimar o esforo, o COCOMO tambm apre-
com a aplicao e com a tecnologia e o tamanho do senta equaes para estimar o prazo de desenvolvimento
software pode chegar a 300.000 linhas de cdigo. nominal do projeto em meses e a diviso do esforo por
fases e atividades do projeto.
Estimativa de esforo de desenvolvimento Os modos de desenvolvimento Bsico e Intermedirio
As equaes de estimativa de esforo de desenvolvi- utilizam as mesmas equaes para determinar o prazo. As
mento so da forma apresentada na equao: equaes de estimativa de prazo de desenvolvimento so
da forma apresentada na equao:
onde
S o tamanho do software expresso em milhares de onde
linhas de cdigo, excludos os comentrios T o tempo de desenvolvimento, e
m(X) um multiplicador composto que depende de 15 E o esforo j calculado.
direcionadores de custo
Os modos de desenvolvimento e os valores de ai e bi
No COCOMO Bsico, m(X) = 1 para cada direcionador para os nveis Bsico e Intermedirio so apresentados na
de custo; no COCOMO Intermedirio devem ser atribudos Tabela 11.
valores especficos para cada atributo.
Tabela 11: valores de ai e bi para os nveis Bsico e In-
Os modos de desenvolvimento e os valores de ai e bi termedirio do COCOMO
para os nveis Bsico e Intermedirio so apresentados na
tabela 10.
27
Mtricas de Desenvolvimento de Software
seo 3.1.1 para calcular o esforo necessrio para desen- composio rpida de aplicaes de software auxiliadas
volver o software proposto naquele exemplo. Suponha por computador ou ICASE Integrated Computer-Aided
que o projeto de nvel bsico e o modo de desenvolvi- Software Environment.
mento semidestacado.
Para fazer esse clculo, fazemos uso da expresso E = O modelo prev a contagem de Pontos de Objeto,
ai Sbim(X), conforme seo 3.3.1. Como o exemplo uma uma nova abordagem de medio de tamanho de softwa-
aplicao do COCOMO Bsico, m(X) igual a 1. re para estimar custo e prazo de projetos. um tipo de
contagem funcional de telas, relatrios e de mdulos de
Os valores de ai e bi so obtidos da tabela 10 (ai = 3,0 linguagem de terceira gerao, em que cada um dos ele-
e bi = 1,12) e o valor de S, estimativa do tamanho do sof- mentos contados recebe uma classificao em nveis de
tware, igual a 34.317 LOC, ou seja, aproximadamente 34 complexidade (simples, mdia e alta).
KLOC (esse valor foi calculado no exemplo da seo 3.1.1).
Segundo os projetistas do COCOMO II, estimativas
Substituindo esses valores na equao de esforo aci- de Pontos de Objeto foram comparadas a estimativas de
ma, teremos: Pontos de Funo e mostraram resultados mais adequa-
dos aos tipos de aplicao a que se destina o modelo Ap-
plication Composition [CSSE, 2012].
28
Mtricas de Desenvolvimento de Software
O modelo Early Design permite que o tamanho da apli- O coeficiente b calculado atravs da equao:
cao possa ser estimado em pontos de funo no ajus-
tados, posteriormente convertidos em linhas de cdigo
pelo modelo.
O modelo Early Design utiliza um conjunto reduzido Para ajustar o tamanho efetivo do produto de softwa-
de direcionadores de custo. As escalas correspondentes e re, o COCOMO utiliza vrias expresses que levam em
os multiplicadores de esforo desses direcionadores man- considerao a volatilidade dos requisitos, o reuso de
tm relacionamento consistente com os direcionadores componentes, alm de calcular o esforo de manuteno.
combinados do modelo Post-Architecture, para assegurar
Maiores detalhes sobre essas expresses podem ser en-
a consistncia das estimativas dos dois modelos, confor-
contradas no manual do COCOMO II.
me mostra a tabela 12.
Para estimar o cronograma de desenvolvimento de
Tabela 12: Direcionadores de Custo aplicados no mo-
projetos, os modelos de estimativa do COCOMO II utili-
delo Early Design e Post-Architecture
zam a expresso:
onde:
a = constante, provisoriamente ajustada em 3,0
Fonte: [CSSE, 2012] SCED% = porcentagem de compreenso/expanso do
multiplicador de esforo SCED
A equao seguinte utilizada para calcular o esforo PM = estimativa de pessoas-ms
de desenvolvimento em projetos estimados pelo modelo b = fator escalar
Early Design: TDEV = tempo de desenvolvimento
29
Mtricas de Desenvolvimento de Software
30
Mtricas de Desenvolvimento de Software
4. Taxa(s) de mo-de-obra (so) atribuda(s) (para o em processo. Considere um valor bruto mdio de
projeto como um todo ou para cada atividade do mo de obra de 4.000 reais por pessoa-ms.
processo).
Estime o custo de cada funo do software (sem
5. Custo e esforo so calculados.
considerar as atividades iniciais de desenvolvi-
mento: Comunicao com o Cliente, Planejamen-
Normalmente, profissionais mais experientes (mais
to, Anlise de Risco).
bem remunerados) esto envolvidos nas primeiras ativi-
dades do processo e pessoal menos experiente est en- Estime o custo de cada atividade de arcabouo
volvido com gerao de cdigo e primeiros testes. do processo.
onde:
RVCG = Recursos de Visualizao de Computao
Grfica
Fonte: baseado em PRESSMAN [2010]
AG2D = Anlise Geomtrica 2D
AG3D = Anlise Geomtrica 3D
Exemplo de Estimativa Baseada em Processo
RCIU = Recursos de Controle e Interface Grfica
com o Usurio
Suponha um determinado software de CAD que ser
GBD = Gesto de Base de Dados
desenvolvido. Atravs da anlise do escopo do software,
FCP = Funo de Controle de Perifricos
suas funes principais foram identificadas e so relacio-
MAP = Mdulos de Anlise de Projeto
nadas na tabela 14. O processo a ser utilizado tambm
PM = Pessoa-ms
foi decomposto e suas atividades principais esto relacio-
nadas na tabela 14. Consultando dados histricos para
o domnio de aplicao do software a ser desenvolvido,
Soluo:
estimativas de esforo foram obtidas, conforme apresen-
tado na tabela 14.
A tabela 15 apresenta as somas dos esforos de cada
coluna e tambm a soma dos esforos de cada linha for-
Fazendo uso dos dados fornecidos, estime o es-
necidos na tabela 14. Na ltima linha da tabela apresen-
foro e o custo totais necessrios para construir o
tado o clculo para obter o esforo total para desenvolver
software usando a tcnica de estimativa baseada
31
Mtricas de Desenvolvimento de Software
o software. Note, ento, que a soma dos esforos de cada Conciliao de Modelos de Estimativas
linha resultar no esforo necessrio para desenvolver cada
uma das funes do software a ser desenvolvido. E a soma Normalmente estimativas de projeto precisas usam
dos esforos de cada coluna resultar no esforo necessrio pelo menos duas das tcnicas de estimativas apresenta-
para executar cada atividade de arcabouo do processo.
das anteriormente. Valores mdios (conciliao) de esti-
mativas so ento calculados atravs dos valores de esti-
Tabela 15: Soma dos esforos necessrios para desen-
mativa obtidos das tcnicas consideradas.
volver cada funo e cada atividade de arcabouo
A conciliao realizada quando a variao mxima a
partir da mdia obtida no ultrapasse 20%. Nesses casos,
h forte razo para acreditar que as estimativas so con-
fiveis. Caso contrrio, mais pesquisa e anlise devem ser
realizadas. Pela comparao e conciliao das estimativas
derivadas usando diferentes tcnicas mais provvel que
o planejador consiga derivar uma estimativa precisa. Caro
aluno, vale lembr-lo que a estimativa de projetos de sof-
tware no uma cincia exata. Mas, conforme vimos, da-
dos histricos e tcnicas sistemticas podem melhorar a
Fonte: baseado em PRESSMAN [2010] preciso da estimativa
Dados Fornecidos :
Soluo:
a)
32
Mtricas de Desenvolvimento de Software
33
Mtricas de Desenvolvimento de Software
mum medidas como treinamentos especficos, incentivos Boehm (1991) prope a subdiviso mostrada na figura
certificao de profissionais, implantao de programas 3, no gerenciamento de riscos:
de qualidade, padronizaes, etc. Figura 3 Gerenciamento de Riscos
34
Mtricas de Desenvolvimento de Software
Segundo o guia SWEBoK 2004 (IEEE Computer Socie- Avaliar riscos envolve, caro aluno, a definio de quais
ty, 2012), avaliar os riscos simplesmente identificar os deles so prioritrios. Engloba tambm a tomada de de-
mais crticos. Para fazer isso, deve-se avaliar a criticidade ciso envolvendo mltiplas variveis e incertezas. Neste
de cada varivel de risco. Esse processo de avaliao c- campo minado, tanto as tcnicas quantitativas quanto as
clico, j que, conforme o projeto se desenvolve, fatores de qualitativas tm limitaes e crticas.
risco tanto podem surgir como desaparecer, assim como
os graus de gravidade e ocorrncia dos mesmos podem As principais tcnicas quantitativas para gerncia de
sofrer alteraes relevantes. riscos so o clculo da exposio ao risco, aliado ou no
a rvores de deciso e simuladores. A aplicao correta
A identificao dos fatores ou variveis de risco pode ser dessas tcnicas promete resultados precisos, possibilida-
feita por meio de uma srie de tcnicas tais como checklists des de fazer anlises de sensibilidade e o teste de cen-
padronizados disponveis, o exame de tomadores de deci- rios alternativos com uma ou mais de uma deciso en-
so, comparao com a experincia e decomposio. cadeadas. O que se nota que as tcnicas de avaliao
de risco tm se diversificado, aprimorado e incorporado
Uma vez identificados os fatores de risco, a anlise maior robustez.
desses fatores tenta definir as probabilidades de ocorrn-
A maior dificuldade no uso dessas tcnicas a neces-
cia e gravidade dos mesmos. Para isso pode-se utilizar de
sidade de garantia de boas estimativas. Para isso, ne-
modelos de performance e custo, anlise de redes, anli-
cessrio que haja todo um suporte baseado em dados
se estatstica e qualitativa, dentre outras. O PMBoK (2008)
estatsticos de projetos similares (envolve critrios como
recomenda a adoo de procedimentos tanto quantitati-
escopo e tecnologia utilizada), cotaes de preos e le-
vos quanto qualitativos, enquanto o CMMI e a ISO deixam
vantamentos de custos atualizados, alm de medies de
a escolha da abordagem organizao.
variveis de desenvolvimento (esforo de programao,
tempo de execuo de tarefas semelhantes, etc).
Avaliao e Priorizao de Riscos
A satisfao de todas essas premissas exige um am-
A ltima etapa do processo de avaliao de risco- a biente maduro de produo de software e certa abundn-
priorizao dos riscos - produz uma listagem por ordem cia e qualidade de dados, algo nem sempre possvel. A
de urgncia de tratamento (veja a figura 3 para identificar aplicao de tcnicas sem este tipo de suporte pode no
estas etapas). Isso pode ser feito atravs do emprego atingir os objetivos propostos.
de tcnicas como anlise de grau de exposio ao risco,
processos de obteno de consenso e anlise de custo- Em relao s tcnicas qualitativas, a maior crtica
benefcio. baseada na falta de preciso nos resultados decorrente da
Os mtodos de priorizao de riscos podem ser tanto subjetividade inerente sua aplicao. Segundo o PMBoK
quantitativos, como a aplicao da mtrica de exposio (2008), o uso de tcnicas qualitativas deve sempre pres-
ao risco, como podem ser qualitativos, como no Carne- supor uma anlise posterior da preciso dos dados. Com
ggie Mellon Risk-Ranking Method [FLORIG et al, 2001] isso, consegue-se contornar parcialmente os problemas
[BOEHM, 1991]. de preciso e a tendenciosidade das decises.
A etapa da avaliao de riscos importante principal- Dentre as principais tcnicas qualitativas temos
mente quando se est diante de um grande nmero de o levantamento das probabilidades de ocorrncia e
possibilidades de risco, exigindo esforo adicional de fil- gravidade dos riscos e o uso de matrizes de probabilidade
tragem e priorizao. e impacto.
35
Mtricas de Desenvolvimento de Software
Riscos so objetos complexos. Possuem como atributo Sabemos que risco envolve duas caractersticas:
uma descrio, probabilidades de ocorrncia, estimativa
Incerteza o risco pode ou no acontecer.
de gravidade, gatilhos, planos de controle relacionados e
Perda se o risco tornar-se real, consequncias
os resultados prticos obtidos na sua aplicao, histricos
indesejadas ou perdas ocorrero.
de variaes dentro de projetos, etc.
Existem vrias categorizaes de risco. Por exemplo,
O IEEE (2009) recomenda a manuteno de dados re- segundo Pressman (2010), podemos categoriz-los em:
trospectivos dos riscos (o chamado risk profile), enquanto
o PMBOK (2008) cita como sada do controle de riscos um Riscos de Projeto: problemas potenciais oramen-
repositrio de dados para a gerao de um programa de trios, de cronograma, de pessoal (quantidade e
lies aprendidas de risco. Outros autores sugerem uma organizao), de recursos, de interessados e de re-
maior nfase no armazenamento adequado de informa- quisitos e seu impacto em um projeto de software.
o como guia para o subsequente refinamento de esti- Ameaam o plano do projeto.
mativas e anlises. Riscos Tcnicos: problemas potenciais de imple-
Categorizaes de Risco mentao, de interface, de verificao e de manu-
teno. Ameaam a qualidade e a pontualidade do
Caro aluno, pelo que vimos at aqui, podemos dizer que: software a ser produzido.
Riscos do Negcio: ameaam a viabilidade do sof-
risco um problema potencial que pode ou no tware a ser construdo.
ocorrer.
o desenvolvimento de software normalmente Principais riscos do negcio so:
envolve vrios riscos.
riscos podem comprometer o projeto (atraso, Risco de Mercado: construir um produto ou siste-
custo, concretizao,). ma excelente que no interesse a ningum.
36
Mtricas de Desenvolvimento de Software
Risco Estratgico: construir um produto que no Os requisitos esto bem entendidos pela equipe
se encaixa mais na estratgia geral de negcios da de desenvolvimento e pelo cliente?
empresa. Os clientes envolveram-se na definio dos requisitos?
Risco de Marketing: construir um produto que a
Os usurios finais tm expectativas realsticas?
equipe de vendas no sabe como vender.
O escopo do projeto estvel?
Risco Gerencial: perda de apoio da gerncia supe-
rior por causa de modificao de enfoque ou de A equipe de desenvolvimento tem as aptides ne-
pessoal. cessrias?
Risco de Oramento: perda de comprometimento Os requisitos do projeto so estveis?
oramentrio ou de pessoal. A equipe de projeto tem experincia com a tecno-
logia a ser implementada?
Outra categorizao possvel de risco inclui os seguintes: A quantidade de pessoal adequada para fazer o
servio?
Riscos Conhecidos: podem ser descobertos aps a
Todos os membros envolvidos (cliente/usurio)
avaliao do plano de projeto, do ambiente tcnico
concordam com a importncia do projeto e com
e comercial (prazo de entrega irreal, falta de docu-
os requisitos do sistema a ser construdo?
mentao dos requisitos e/ou do escopo, ambiente
de desenvolvimento ruim ou desfavorvel, etc).
Se qualquer uma das questes for respondida negati-
Riscos Previsveis: obtidos de experincia de pro-
vamente, os passos de atenuao, monitorao e gesto
jetos anteriores (rotatividade de pessoal, diluio
devem ser formalizados. O grau em que o projeto est em
do esforo de pessoal medida que os pedidos de
risco diretamente proporcional ao nmero de respostas
manuteno surgem).
negativas dadas s questes.
Riscos Imprevisveis: extremamente difceis de se-
rem identificados antecipadamente.
Caro aluno, faa uma pequena pausa e se divirta
Avaliao do Risco Global do Projeto com o filme sobre Gesto de Riscos em projetos...
talvez ele tenha sido feito por estagirios...
Caro aluno, dissemos que os riscos podem ser ava-
liados atravs de uma abordagem quantitativa ou quali- http://youtu.be/e_QgCSDuhu4 532
tativa. Um exemplo de avaliao qualitativa de risco a
avaliao do risco global do projeto, que foi derivada de Matriz de Riscos
dados de risco obtidos por levantamento feito com geren-
tes de projeto de software experientes, em vrias partes A previso (estimativa) de risco avalia cada risco de
do mundo. De acordo com Pressman (2010) , essa ava- dois modos:
liao consiste nas respostas dadas s questes abaixo, 1. A probabilidade de que o risco seja real.
as quais esto ordenadas por sua importncia relativa ao 2. As consequncias dos problemas associados ao
sucesso de um projeto: risco, se ele ocorrer.
37
Mtricas de Desenvolvimento de Software
Uma matriz de risco pode ser utilizada como uma uma priorizao de segunda ordem. Um fator de risco
tcnica para previso de risco. A matriz mostrada na figura que tem alto impacto, mas probabilidade de ocorrncia
4 um exemplo de matriz para previso de risco. muito baixa, no demandar muita ateno. Riscos de alto
impacto, com probabilidade moderada a alta e riscos de
A elaborao da matriz segue os passos: baixo impacto, com alta probabilidade, demandaro maior
ateno. Conforme dissemos, a probabilidade de risco pode
a listagem de todos os fatores de risco (no ser determinada fazendo-se estimativas individuais e depois
importando quo remotos sejam) colocada na desenvolvendo um nico valor de consenso. Existem tcnicas
1 coluna da matriz. mais sofisticadas para determinao de probabilidades que
cada fator de risco categorizado na 2 coluna. fazem uso da Estatstica para seus clculos.
na 3 coluna, coloca-se a probabilidade de
ocorrncia de cada fator de risco. Para isso, Exposio ao Risco (ER)
vrias tcnicas podem ser utilizadas. Dentre elas,
a tcnica Delphi, que utiliza valores estimados A Exposico ao Risco (ER) ou Risk Exposure (RE) de-
individualmente por cada membro da equipe para terminada atravs da seguinte expresso:
se chegar num valor de consenso.
na 4a coluna estimado o impacto de cada risco,
seguindo, por exemplo, as seguintes categorias:
Exemplo de clculo de ER
Problema:
38
Mtricas de Desenvolvimento de Software
Problema:
Dessa forma, a ER ser de: A seguir, verifique se o projeto vivel ou se novas an-
lises devem ser realizadas, considerando que o Custo Total
Estimado do projeto de R$ 120.000,00 (120 mil reais).
Soluo:
Exposio ao Risco Total (ERT)
Uma vez que a tabela tenha sido ordenada e estabele-
A Exposio ao Risco Total (ERT), para todos os riscos
acima da linha de corte na matriz de riscos, pode forne- cida a linha de corte, os riscos de primeira ordem so os
cer um modo de ajustar a estimativa final de custo de um listados na tabela 16.
projeto.
Tabela 16: Riscos de primeira ordem
Pode tambm ser usada para prever o aumento prov-
vel nos recursos de pessoal necessrios em vrios pontos
do cronograma do projeto.
Cada risco deve ser reavaliado em intervalos regulares A seguir, calculamos a Exposio ao Risco (ER) de cada
para determinar se novas circunstncias causam modifi- fator de risco, de acordo com a tabela 17.
caes na sua probabilidade e impacto (pode ser neces- Tabela 17: Clculo da Exposio ao Risco
39
Mtricas de Desenvolvimento de Software
Uma vez que o Custo Total Estimado do projeto de R$ Os passos de atenuao, monitorao e gerenciamento
120.000,00 notamos que a Exposio ao Risco Total est de risco (RMMM) implicam em custos adicionais ao projeto.
abaixo dos 50% estabelecidos como critrio de viabilidade Por exemplo, gastar tempo para se buscar um substi-
do projeto, ou seja, R$ 37.600,00) < (50% de R$ 120.000,00 tuto para cada tcnico essencial custa dinheiro. Devido
= R$ 60.000,00). Assim, a princpio, em relao aos riscos, a isso, o planejador do projeto deve efetuar uma anlise
o projeto se mostra vivel. custo/benefcio. Se a exposio ao risco especfico for me-
nor que o custo da atenuao deste, melhor no tentar
RMMMRisk Mitigation, Monitoring atenu-lo, mas sim monitor-lo.
and Management
Todas as atividades de anlise de risco tm uma nica Cronogramao
meta: ajudar a equipe de projeto a desenvolver uma es-
tratgia para lidar com o risco. Conceitos Bsicos sobre Cronogramao
Uma estratgia efetiva para lidar com risco deve consi- Em sua forma mais simples, um cronograma uma lista
derar 3 pontos: Atenuao, Monitorao e Gerenciamen- de atividades e eventos organizados em funo do tempo.
to do risco. Isso conhecido como RMMMRisk Mitiga- Em sua forma mais complexa, um cronograma examina
tion, Monitoring and Management, ou seja: todas as atividades de um projeto e suas relaes entre si
em termos de restries de tempo, oramento e pessoas,
Mitigation: evitar risco. Elabora plano para atenu-
isto , recursos.
ao de risco.
Monitoring: monitorar risco. Monitora fatores
Na execuo de projetos, o cronograma uma impor-
que podem tornar o risco mais ou menos prov-
tante ferramenta de planejamento, controle e comunica-
vel. Monitora tambm passos elaborados no plano
o que, quando adequamente utilizada, suporta estima-
para atenuao de risco.
tivas de tempo e custo, facilita a comunicao entre as
Management: gerenciar risco e planejar para a
pessoas envolvidas nas atividades do projeto e estabelece
contingncia. Considera que o risco tornou-se re-
um compromisso com essas atividades.
alidade.
40
Mtricas de Desenvolvimento de Software
ser capazes de compreender e analisar cronogramas cria- Vrios produtos so gerados no processo de planeja-
dos por outros, como por exemplo, aqueles produzidos mento, dentre eles:
por contratados num processo de terceirizao. Portanto,
voc deve estar percebendo, caro aluno, que a cronogra- Planos Funcionais: so planos detalhados que
mao uma das mais teis ferramentas disponibilizadas estabelecem a abordagem a ser considerada nas
para a execuo de um projeto e sua aplicao efetiva diferentes reas funcionais (como por exemplo,
essencial para atingir as metas estabelecidas. testes e avaliaes, controle, comunicao, su-
porte, logstica, etc)
Cronogramao e Planejamento de Estrutura Analtica de Projeto ou Work Breakdo-
Projetos wn Structure (WBS): fornece uma estrutura bsica
para identificar cada elemento de um projeto em
Planejamento de projeto uma atividade relacionada nvel crescente de detalhes. Em essncia, descreve
a determinar qual trabalho necessita ser realizado, por a maneira na qual o trabalho deve ser realizado. A
quem, quando e sob quais restries de recursos. WBS tambm fornece um mtodo coerente para
relatar o progresso em direo s metas do plano.
, sem dvida, a mais importante atividade de um pro-
Cronogramas: uma srie de cronogramas de-
jeto. Sem um planejamento slido e abrangente prati-
senvolvida durante o processo de planejamento.
camente impossvel desenvolver um oramento realista,
organizar, compor e conduzir efetivamente uma equipe, e Esses cronogramas so elaborados para mostrar
monitorar e controlar o projeto. os detalhes requeridos para executar as ativida-
des e marcos principais.
Sem um planejamento slido e abrangente pratica- Oramento: o oramento reflete o custo da
mente impossvel desenvolver um oramento realista, or- integrao do escopo, cronograma e recursos
ganizar, compor e conduzir efetivamente uma equipe, e para realizar o trabalho.
monitorar e controlar o projeto.
Cronogramao um elemento crtico no processo de
planejamento. Alm de ser uma sada (output) do proces-
so, tambm contribui para o desenvolvimento de outras
sadas. O envolvimento em um projeto de pessoas que tm
conhecimento e experincia em tcnicas de cronograma-
o pode contribuir para a traduo efetiva dos conceitos
e ideias estratgicas do projeto em diagramas lgicos deta-
lhados, representando as atividades desse projeto e seus
relacionamentos mtuos.
41
Mtricas de Desenvolvimento de Software
O cronograma pode servir como uma linha base (ba- Exemplo de uma Anlise do Valor
seline) atravs da qual o progresso medido. Se houver
indcios que uma atividade est atrasada, essa informa-
Agregado
o poder ser usada pela gerncia como uma base para
Considere que voc est participando de um deter-
aes corretivas.
minado projeto e que entendeu suas caractersticas b-
Contudo, considerar isoladamente uma informao do sicas. A seguir voc desenvolve o planejamento, que re-
cronograma pode levar a interpretaes errneas. O ge- sulta em uma durao de 10 dias a um custo de 100.000.
renciamento adequado requer a integrao de aspectos importante que nesse momento voc calcule o custo
tcnicos, de cronograma e de custos de um projeto. dirio do projeto. Para isto voc dever ter uma WBS bem
detalhada e que reflita a situao real de seu projeto.
Assim, uma forma de medida de desempenho integra-
Voc monta a WBS e obtm o planejamento mostrado no
do necessria para monitorar e controlar um projeto. A
grfico 1.
tcnica do Valor Agregado (EVM) fornece essa capacidade.
Grfico 1- Planejamento do Projeto
EVM - Earned Value Management
A tcnica EVM Earned Value Management ou Ge-
renciamento do Valor Agregado o uso de um sistema
de gerenciamento integrado que coordena o escopo, o
cronograma e as metas de custo e mede objetivamente o
progresso em face dessas metas.
42
Mtricas de Desenvolvimento de Software
Ao ver o grfico 2 seu gerente pede explicaes do bom lembrar que para utilizar EVM corretamente
porque o projeto j ter ultrapassado R$ 10.000, 00 de seu voc precisar:
custo.
Criar uma WBS detalhada
E...voc provavelmente no vai conseguir dar uma
Definir milestones (marcos)
explicao que o convena.
Realizar estimativa de custos, esforo e prazo de
cada atividade
Vamos fazer uma pausa aqui. Este cenrio
Monitorar constantemente seu projeto
bem comum em muitas empresas de TI e voc
Gerenciar o projeto tomando aes sempre que
provavelmente j se deparou com uma situao
necessrio
similar. O que acontece que s se olha o
E o mais difcil, saber quanto do seu projeto foi
custo, e no se est vendo aqui um ponto muito
produzido (agregado) a cada dia.
importante: a produo.
Porm, voc est preparado e vem monitorando seu Parmetros para Anlise do Valor
projeto com EVM, e voc apresenta o grfico 3 ao seu Agregado
gerente.
Caro aluno, alm do que foi dito na seo anterior, para
Grfico 3- Curvas relativas ao Planejado, Realizado e voc realizar a Anlise do Valor Agregado adequadamente,
Agregado voc ter que conhecer alguns parmetros e seguir alguns
passos, que so descritos de uma maneira simplificada no
que se segue.
43
Mtricas de Desenvolvimento de Software
A distino entre BCWS e BCWP que o primeiro re- ndice de Desempenho do Custo (Cost Perfor-
presenta o oramento das atividades que foram planeja- mance Index CPI):
das para estarem completadas at um determinado mo-
CPI = BCWP / ACWP
mento e o ltimo representa o oramento das atividades
que realmente foram completadas at aquele momento.
(CPI prximo de 1 indica de que o projeto est dentro
Completados os passos anteriores, podem-se calcular os
do oramento definido)
seguintes indicadores:
Varincia do Custo (Cost Variance CV):
44
Mtricas de Desenvolvimento de Software
ndice de Desempenho do Cronograma (SPI) De posse desses valores, podemos ento calcular os
Varincia do Cronograma (SV) parmetros solicitados.
Porcentagem Programada para Concluso ndice de Desempenho do Cronograma (SPI)
Porcentagem Completada
ndice de Desempenho do Custo (CPI) SPI = BCWP / BCWS = 105,5 / 146,5 = 0,72
Varincia do Custo (CV)
Lembrando que quanto mais SPI estiver prximo de
um maior ser a eficincia com a qual o projeto est utili-
Soluo:
zando os recursos cronogramados
Antes de comearmos, temos que obter os valores de
Varincia do Cronograma (SV)
BCWS, BCWP, ACWP e BAC que so os parmetros bsicos
atravs dos quais os outros parmetros so calculados. SV = |BCWP BCWS|= |105,5 146,5| = 41 PD
Lembrando que o valor de BCWS a soma dos BCWSi Quanto mais prximo de zero estiver SV mais prximo
de todas as tarefas de trabalho que deveriam ter sido do planejado estar o andamento (ou custo) do projeto.
completadas at aquele momento no cronograma do
projeto, teremos que somar os esforos planejados das Porcentagem Programada para Concluso
tarefas 1 at a tarefa 14, que deveriam ser as tarefas
finalizadas no momento da anlise do projeto. BCWS / BAC = 146,5 / 648 = 0,2261 = 22,61 %
45
Mtricas de Desenvolvimento de Software
Indicao absoluta das economias num custo (em A figura 5 ilustra o formato de um diagrama de Gantt
relao aos custos planejados) ou dos excessos do custo simplificado. H vrios softwares que facilitam a criao
(para um tempo qualquer)) de diagramas de Gantt. Um dos mais conhecidos o MS
Project. Nele, quando uma tarefa introduzida, ela
Diagrama de Gantt programada para comear na data de incio do projeto.
Ou seja, no momento que voc entra com as tarefas, a
Caro aluno, vamos recapitular: uma vez que voc tenha data de incio de cada uma delas , por padro, a data
determinado o conjunto de tarefas a serem executadas, estabelecida para o incio do projeto.
voc ter que atribuir valores especficos de esforo e
durao para cada uma delas. A seguir, uma rede de Estabelecendo a durao de cada tarefa e as vinculan-
tarefas dever ser criada de modo a permitir que a equipe do, voc estabelece uma dependncia que determina a
sequncia de execuo das tarefas. Assim, o Project agen-
de software satisfaa a data de entrega estabelecida.
da as tarefas definindo as datas de incio e de trmino
de cada tarefa. As barras de Gantt so, ento, movidas
Um cronograma adequado exige que:
para as datas apropriadas na escala de tempo, e linhas
de vnculo so desenhadas para mostrar a dependncia,
todas as tarefas figurem na rede conforme se pode ver na figura 5.
o esforo e durao sejam adequadamente atribu-
dos a cada tarefa
as interdependncias entre as tarefas sejam indica-
das
recursos (humanos e materiais) sejam alocados ao
trabalho a ser feito
marcos de referncia pouco espaados sejam es-
tabelecidos de modo que o progresso possa ser
acompanhado
46
Mtricas de Desenvolvimento de Software
O diagrama de Gantt sobreviveu em seu formato bsi- Paralelamente ao desenvolvimento das redes PERT, a
co e hoje em dia continua a ser largamente utilizado como indstria de construo desenvolveu um outro sistema de
ferramenta de cronogramao em todos os nveis organi- cronogramao utilizando redes baseado no conceito de
zacionais. caminho crtico.
Um dos aspectos-chave dessa rede o uso de tcnicas Figura 7 Elementos de uma rede de atividades
probabilsticas para desenvolver um conjunto de estima-
tivas de tempo para cada atividade, tornando-a particu- Na rede de atividades temos dois tipos de atividades:
larmente adequada para projetos em que difcil fazer atividades dependentes e atividades paralelas, que esto
estimativas acuradas com alta preciso. explicitadas nos diagramas apresentados na figura 8.
47
Mtricas de Desenvolvimento de Software
48
Mtricas de Desenvolvimento de Software
Figura 10 Definio e exemplos de Cedo, Tarde, Folga dos processos utilizados na sua organizao, bem como
do evento e Caminho Crtico na conduo de cada projeto individual executado dentro
Alm dessa definio de caminho crtico, que origi- da empresa.
nada da teoria dos grafos, h uma outra definio que
o define como os eventos por onde ele passa tm folga Um programa de mtricas que seja baseado nas metas
zero. Notamos que por essa ltima definio, pode haver de uma organizao auxiliar na comunicao e na medi-
mais de um caminho crtico em uma rede de atividades. da de progresso em relao a essas metas. As equipes tra-
balharo focadas no que considerado importante para
Atravs do uso de uma ferramenta de software ade- a organizao.
quada, voc poder atualizar e retrabalhar, caso neces-
srio, essas redes, tendo informao do status e controle Mtricas bem projetadas, com objetivos bem docu-
sobre as atividades e cronograma do projeto. mentados, podem auxiliar a organizao a obter a infor-
mao que ela necessita para a melhoria contnua de seus
interessante comentar que h vrias outras possibili- produtos, processos e servios, mantendo o foco no que
dades de representaes grficas para redes de atividades importante.
alm daquelas apresentadas aqui. A despeito de sua gran-
de utilidade, h limitaes no uso das redes de atividades. Um mtodo prtico e sistemtico de selecionar, proje-
O valor de uma rede de atividades estar diretamente tar e implementar mtricas de software um auxlio va-
dependente da validade das estimativas de tempo feitas lioso na busca dos objetivos de melhoria organizacional. E
para cada atividade. Alm disso, s vezes difcil retratar para isso, pessoas com conhecimento e treinamento ade-
acuradamente todas as atividades e relacionamentos, es- quados so necessrias.
pecialmente em projetos grandes e complexos.
Podemos dizer que, com a concluso dessa discipli-
Por fim, uma vez desenvolvida uma rede de atividades na, voc deu um passo importante nesse sentido e, caso
detalhada, ela tende a ser o foco da ateno dos gerentes, tenha oportunidade, poder auxiliar a sua organizao a
quando, na verdade, haver vrios outros fatores no retra- atingir suas metas de melhoria nas vrias reas do desen-
tados na rede que requerero especial ateno no proces- volvimento de software.
so de gerenciamento. Portanto, caso voc venha a geren-
ciar um projeto, tenha o cuidado para no cair nesse erro. Prof. Marcelo Pintaud
49
Mtricas de Desenvolvimento de Software
50