Escolar Documentos
Profissional Documentos
Cultura Documentos
DESENVOLVIMENTO DE
SOFTWARE
autor
MARCOS CHIODI
1 edio
SESES
rio de janeiro 2016
Conselho editorial regiane burger; roberto paes; gladis linhares; karen bortoloti;
helcimara affonso de souza
Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida
por quaisquer meios (eletrnico ou mecnico, incluindo fotocpia e gravao) ou arquivada em
qualquer sistema ou banco de dados sem permisso escrita da Editora. Copyright seses, 2016.
isbn: 978-85-5548-210-6
Prefcio 5
1. Mtricas e Medidas 7
1.1 Introduo s mtricas e medidas 9
1.2 Introduo s mtricas e medidas 17
1.3 Boas prticas para o uso de mtricas 24
1.4 Por que utilizar mtricas de software 25
Bons estudos!
5
1
Mtricas e
Medidas
Neste captulo teremos a introduo da nossa disciplina medidas de esforo
de desenvolvimento de software.
Como um captulo introdutrio trataremos da base da nossa disciplina, que
: medidas e mtricas.
Queremos que voc entenda a importncia de se medir no processo de desen-
volvimento de sistemas. Queremos que voc saiba o que uma medida, o que
uma mtrica, qual a diferena entre uma e outra, quais so as caractersticas de
uma mtrica, como criar uma mtrica de boa qualidade.
Assim, voc ter alicerce para continuar na disciplina e ter mais facilidade
para enteder e aplicar as medidas de esforo de desenvolvimento de software,
tanto no mbito acadmico quanto no mbito profissional, por que lgico,
no queremos que esta disciplina seja somente um livro a mais na sua prate-
leira. Queremos que esta disciplina lhe ajude a desenvolver softwares melhores
em processos sistematizados de produo e que com isso voc tenha mais e
mais sucesso na sua carreira profissional.
OBJETIVOS
Entender a importncia das medidas e mtricas no processo de desenvolvimento de
software e no produto de software.
Definir mtricas e medidas.
Entender quais so as caractersticas de uma mtrica.
Aprender a definir uma mtrica.
Aprender boas prticas para a definio de mtricas.
8 captulo 1
1.1 Introduo s mtricas e medidas
Ol, seja bem-vindo ao primeiro captulo da nossa disciplina de medidas de
esforo de desenvolvimento de software, temos certeza que voc ir aprender
bastante e encontrar conhecimentos importantes para o seu futuro acadmico
e profissional na rea de desenvolvimento de sistemas e qualidade de software.
Contudo, agora no comeo, sabemos que as vezes difcil para o aluno en-
tender a importncia desta disciplina e das tecnologias que estudaremos nela
e sabemos que voc pode estar se perguntando: por que eu tenho que estudar
esta disciplina neste curso? Eu quero programar e no medir ....
Ento, iremos aqui estabelecer uma interessante discusso para que possamos
lhe explicar a importncia desta disciplina no seu curso e na sua vida profissio-
nal. Para iniciar a discusso gostaramos que voc pensasse na seguinte pergunta:
voc um bom desenvolvedor de sistema? . Caso voc no desenvolva pense em
uma outra pergunta: voc conhece um bom desenvolvedor de sistema?.
Independente da sua resposta para a pergunta ser SIM ou NO (para qual-
quer uma das perguntas) gostaramos que voc pensasse no que levou voc a
dar esta resposta. No que voc se baseou para julgar a sua performance de de-
senvolvedor? Foi nos sentimentos (feelings), percepo ou outros argumentos?
Para nos ajudar na contextualizao da discusso, gostaramos agora que voc
olhe para a figura abaixo e responda: quem o melhor jogador de basquete? .
JERRY COLI | DREAMSTIME.COM
Figura 1.1 Bogues (esq. primeiro plano) menor jogador que a liga NBA de basket j teve
e Bol (dir.) maior jogador que a NBA j teve. (Lobo, 2013)
captulo 1 9
Voc pode mostrar esta imagem para os seus amigos e tabular as informa-
es, acreditamos que a resposta ser: o da esquerda. Isto por que provavel-
mente voc e seus amigos sero levados a acreditar que o principal fator que
determina se um jogador bom ou no no basquete seja a altura. Contudo, este
indicador de medida direta talvez no seja capaz de dizer quem o melhor jo-
gador e sim apenas quem o mais alto e voc e seus amigos possam ter se con-
fundido com a informao de senso comum (e nem sempre verdadeira) de que
o jogador mais alto o melhor. (Wikipedia, 2011) (Wikipedia, s.d.)
No caso da Imagem 1 talvez seja interessante voc saber que o jogador da di-
reita, Bogues, na poca em que jogou na franquia Charlote Hornets, colecionou
recordes como sendo o jogador que jogou o maior nmero de minutos, o de
maior nmero de assistncias e de roubo de bolas, alm de ser o jogador com a
maior mdia de assistncias por partida e o melhor percentual de acerto de sex-
tas de 3 pontos nos playoffs da NBA. Enquanto o jogador da esquerda, Manute
Bol, coleciona apenas recordes relacionados bloqueios (tocos) no basquete.
(Wikipedia, 2015)
WIKIPEDIA
10 captulo 1
O resultado desta ao do gerente de futebol no time foi a segunda colo-
cao na temporada daquele ano mesmo sendo o terceiro menor oramento
entre os times.
Voltando ento a pergunta se voc era um bom desenvolvedor, ser que a
resposta que voc havia dado inicialmente no foi baseada em ditos populares,
senso comum, percepes e/ou sentimentos que no necessariamente possam
traduzir o que de fato um bom desenvolvedor ou no?
O que queremos explicar que assim como no Okland Athletics voc no
deve determinar se um desenvolvedor bom ou no e/ou se um software tem
qualidade ou no usando apenas percepo ou senso comum. necessrio a
determinao de um sistema de mtricas e medidas que possam lhe oferecer
uma anlise mais correta e um melhor julgamento.
Se voc ainda no se convenceu da importncia de se medir, vamos aqui ini-
ciar uma outra discusso, uma pouco mais aprofundada, colocando o conceito
de medir e mtricas dentro de um sistema de evoluo contnua aplicada em
algumas outras reas. Para tal, vamos utilizar um ensaio que j escrevi em outro
livro e que cabe perfeitamente aqui.
PERGUNTAS
Responda as questes a seguir:
1. Qual a diferena entre cincias e artes?
2. Qual seleo melhor, a seleo brasileira masculina de vlei ou a de futebol?
3. Por que o Japo conseguiu se reerguer to rapidamente da segunda guerra mundial?
captulo 1 11
WIKIMEDIA
O que acontece, como diria Thierry Henry, jogador da seleo francesa de futebol em
2006, ... que os meninos do Brasil jogam futebol das 8:00 as 18:00 e j nascem
com a bola nos ps.... (Terra Esportes, 2006)
12 captulo 1
J a seleo brasileira de vlei masculina no construda apenas por he-
ris brilhantes que se destacam pelo individualismo, mas sim por um time que
treina exaustivamente cada fundamento, planeja e pratica tticas de jogos e
quando termina um jogo no outro dia esto analisando os erros e apurando
as estatsticas. Ou seja, h todo um processo, procedimento e vrias tcnicas
envolvidas por trs das glrias desta seleo.
Podemos dizer que o padro de vitrias da seleo brasileira de vlei mas-
culina ir se repetir enquanto a aplicao desses procedimentos, processos e
tcnicas de treinamento que antecedem cada jogo persistirem.
Por meio desta anlise podemos considerar que ambas as selees so vi-
toriosas por caminhos diferentes, ou seja, uma muito mais pela arte e a outra
muito mais pela tcnica (cincia).
Para concluirmos esta introduo, vamos discutir a ltima questo propos-
ta. Por que os japoneses conseguiram se reerguer to rapidamente aps o terror
da segunda guerra mundial?
bvio que so vrios os fatores que levaram o Japo a se reerguer to rapi-
damente da segunda guerra mundial, mas gostaramos de dar ateno a um
especial, a implantao nas empresas japonesas, principalmente as empresas
automobilsticas, da tcnica da qualidade total.
Esta tcnica busca atuar principalmente no processo de produo dos bens
e servios para conseguir produtos mais baratos e com maior qualidade, ou
seja, busca melhorar a qualidade do processo para consequentemente conse-
guir uma melhora na qualidade do produto.
De forma resumida, a tcnica de qualidade total um conjunto de metodo-
logias e ferramentas que devem ser aplicadas ao processo produtivo de forma
sistemtica para que este torne-se maduro o suficiente para produzir sempre
produtos de qualidade.
Portanto, podemos pensar que o sucesso das empresas japonesas ps-guerra
pode ser atribudo sistematizao do processo de produo (principalmente) para
que a qualidade do produto pudesse se repetir a cada unidade produzida indepen-
dentemente do herosmo das pessoas que esto produzindo cada unidade dessas.
CURIOSIDADE
Sistematizao e melhoria continua de processo no uma inveno do mundo da computa-
o. Na verdade isto vem acontecendo na indstria desde o sculo passado. Iniciou-se com
captulo 1 13
Ford e sua linha de produo e a primeira fase da administrao cientfica onde tudo era
medido e controlado afim de se conseguir maiores desempenhos e passou pelo Japo com
tcnicas como o Just in Time e a Qualidade Total. Para saber mais sobre isso acesse o link:
http://www.infoescola.com/administracao_/historia-da-qualidade/ ou este http://gqp-
gunit.blogspot.com.br/2009/03/historia-da-qualidade.html. Bons estudos!
Discutimos as trs perguntas feitas no incio deste tpico. Mas temos cer-
teza que voc deve estar pensando: Mas por que eu deveria medir aspectos do
meu desenvolvimento? O que eu ganho com isso? E o que essas perguntas tem
a ver com o gerenciamento de projetos de sistemas e medidas de esforo?.
A resposta simples e vem na forma de uma outra pergunta: como voc quer
desenvolver os softwares na sua empresa ou na empresa que voc trabalha? .
Fazendo uma analogia com a discusso que tivemos at aqui, para desen-
volver um sistema/software ns podemos agir pelo lado da arte, dependendo
nica e exclusivamente da competncia e herosmo dos desenvolvedores e ana-
lista de sistemas e torcer, a cada projeto que for realizado, que tudo d certo e
tambm torcer para que os desenvolvedores que saibam desenvolver bem um
sistema nunca saiam da sua empresa, pois se isto acontecer juntamente com a
sada do seu desenvolvedor tambm sairo os conhecimentos sobre como de-
senvolver softwares na sua empresa.
Ou ento, podemos atuar no processo de desenvolvimento de software de
forma a sistematiz-lo e sempre buscar repetir no projeto de desenvolvimento
presente os sucessos de projetos de desenvolvimento anteriores por meio da
utilizao das melhores prticas, ferramentas e metodologias de desenvolvi-
mento de software e sempre buscar melhorar e amadurecer este processo por
meio de medies, de suas mtricas e comparaes com possibilidades inter-
nas e com benchmarks externos.
Na primeira forma, o projeto de software pode dar certo para alguns proje-
tos, mas dificilmente os sucessos anteriores sero repetidos em projetos pre-
sentes, pois quase sempre no h uma sistematizao que indique o motivo
pelo qual o desenvolvimento anterior deu certo e o que deu errado e deve ser
melhorado, por que no h mtricas e muito menos medidas.
De fato, se me permitem a analogia, a primeira forma se assemelha muito a
seleo brasileira de futebol na qual o processo de se jogar bola pertence aos
jogadores e no CBF e a vitria de um time quase nunca se atribuda pelo
14 captulo 1
trabalho da equipe ou de um processo de treinamento, mas sim ao herosmo
de algumas poucas pessoas. E por incrvel que parea isto est mudando no
futebol brasileiro, times como Corinthians e Santos mantm departamentos
responsveis por definir mtricas e realizar medidas sobre o desempenho dos
jogadores. Mtricas estas que vo desde informaes sobre o potencial e vigor
fsico de cada jogador at sobre o desempenho de cada um nas partidas, indi-
cando os pontos fortes e os pontos que devem ser melhorados que so ento
fortemente treinados.
J na segunda forma de se gerenciar um projeto, a instituio (ou a equipe,
ou a organizao ...) define um processo sistemtico e formalizado por meio do
qual TODOS os desenvolvedores devem desenvolver seus sistemas.
Dessa forma, possvel identificar nos projetos findados o que ocorreu de
errado (por meio de medies das mtricas previamente estabelecidas) para
que consertos no processo de desenvolvimento possam acontecer inibindo que
a falha no se repita. E como TODOS os desenvolvedores utilizam o MESMO
processo, TODOS eles iro usufruir desta melhoria. E a identificao desses
pontos que deram errados e os pontos positivos s so possveis quando dentro
do processo de desenvolvimento tenha sido definido mtricas e durante o de-
senvolvimento dos sistemas as medidas tenham sido realizadas e consolidadas.
Alm do mais, utilizando a segunda forma, o conhecimento de como de-
senvolver fica tambm na instituio se tornando um ativo dela e no somente
um ativo da cabea de cada desenvolvedor.
bvio que um desenvolvedor competente ainda essencial para a boa
execuo desse processo de desenvolvimento. Contudo, o treinamento de de-
senvolvedores fica mais facilitado, uma vez que o formalismo do processo de
desenvolvimento e as mtricas de performance definidas permitem a repro-
duo deste conhecimento com o objetivo de atingir os padres de exceln-
cia desejados.
Mais uma vez, se me permitem a analogia, a segunda forma se assemelha
muito a seleo brasileira de vlei, na qual o processo de se jogar bola perten-
ce equipe e h uma tcnica sistematizada de se treinar jogadores competen-
tes e prepar-los para cada novo jogo de forma a buscar o sucesso conquistado
em partidas passadas.
Para resumir tudo o que foi discutido podemos dizer que a produo de
software/sistema de qualidade pode ser realizada de duas formas: 1) montan-
do uma equipe com mitos/artistas do desenvolvimento de software; 2) ou
captulo 1 15
montando um processo de desenvolvimento de software sistematizado, men-
survel e com melhoria contnua. A primeira opo pode dar certo algumas ve-
zes e dar errada em outras vezes e com certeza ser bastante cara, assim como
por exemplo cara uma seleo de futebol brasileira masculina. A segunda op-
o oferece uma forma de produzir produtos de software de qualidade que au-
mentaro a qualidade a cada projeto entregue, com uma equipe de custo com-
petitivo que pode ser financiada por meio de um oramento modesto.
Na primeira opo no h medidas concretas para dizer se o sistema deu
certo ou no e no h como tentar entender o que est dando errado para se
melhorar em um novo projeto (uma vez que no h mtricas/medidas estabe-
lecidas) a no ser pelo uso de percepes e sentimentos (lembre-se do que voc
leu aqui sobre a nica pessoa que ganhou dinheiro com feelings).
J a segunda opo nos permite entender cada ponto do processo por meio
das mtricas previamente estabelecidas e medidas realizadas durante o desen-
volvimento possibilitando diagnosticar o que deu certo (para repetir no prxi-
mo projeto) e o que precisa ser melhorado para que o time possa reconher os
erros e consert-los para os prximos projetos garantindo um ciclo de melhoria
contnua do processo de desenvolvimento de software.
Hoje o mercado entende que a melhor forma de atuar da segunda manei-
ra, haja visto nosso exemplo sobre como o Japo se reergueu aps na segunda
guerra mundial ou nosso exemplo dos times de futebol brasileiro e baseball
americano que j utilizaram muito da primeira forma de atuao contratando
atletas caros baseando a anlise de desempenho em sentimentos e percep-
es e agora j implementaram o estabelecimento de mtricas e medidas para
analisar suas contrataes e melhorar o seu estilo de jogo.
Portanto o grande objetivo desta disciplina capacitar voc nas tcnicas
de mtricas e medidas de desempenho de software de forma que voc possa
aplica-las no seu desenvolvimento de software para o amadurecimento do seu
processo e a gerao de produtos de alta qualidade.
CONEXO
Quer ler um artigo interessante sobre o uso de mtricas em processos de desenvolvimento
de software? Ento acesse http://www.inf.furb.br/seminco/2005/artigos/130-vf.pdf e leia
o artigo. Boa leitura!
16 captulo 1
1.2 Introduo s mtricas e medidas
Muito j falamos sobre mtricas e medidas, mas voc consegue nos dizer o que
uma mtrica e o que uma medida? Ou ainda, qual a diferena entre uma
e outra?
Provavelmente no! Vamos facilitar: voc consegue nos dar um exemplo de
uma mtrica de software?
Agora sim, ficou mais tranquilo, correto? Voc j deve estar pensando em
algo como custo e ou tempo de desenvolvimento.
isso mesmo, se voc pensou nos exemplos acima ou em algo parecido,
voc acertou. Na verdade, o conceito de mtricas e medidas chega a ser intuiti-
vo e por isso mais fcil para voc dar exemplos do que definir ou classificar.
Contudo, perceba que nos exemplos acima citamos mtricas relacionadas ao
processo de desenvolvimento apenas, mas ainda h a possibilidade de mtricas
relacionadas ao produto tambm, como por exemplo tempo de processamen-
to e quantidade de armazenamento.
Por isso, apesar do conceito ser intuitivo, a definio e classificao das
mtricas e medidas se faz importante para que voc entenda profundamente o
conceito e consiga aplica-lo de forma ampla e completa. Ento vamos l.
Segundo (Pressman, 1995) todas as engenharias realizam medies e isto
de extrema importncia nessas disciplinas e na engenharia de software o con-
texto no diferente e, conforme mostramos no tpico anterior, a necessidade
de se medir se mostra importante tambm. (Pressman, 1995) se justifica utili-
zando o trecho abaixo de Lorde Kelvin:
Quando se pode medir aquilo sobre o qual se est falado e express-lo em nmeros,
sabe-se alguma coisa sobre o mesmo; mas quando no se pode medi-lo, quando no
se pode express-lo em nmeros, o conhecimento que se tem de um tipo inade-
quado e insatisfatrio; este pode ser o comeo do conhecimento, mas dificilmente
algum ter avanado em suas ideias para o estgio de cincia.
captulo 1 17
Vamos comear falando sobre mtricas.
Mtricas, segundo (IEEE - The institute of Electrical and Electronics
Engineers , 1990), a indicao de uma medida quantitativa que medir o
quanto um determinado sistema, componente o processo possui de uma deter-
minada caracterstica. Ou seja, uma mtrica uma definio ou indicao do
que se quer conhecer ou acompanhar sobre um processo, sistema ou compo-
nente. Ento, uma mtrica pode ser considerada um conceito que nos ajuda
a determinar algo que se deseja saber.
A definio acima um tanto quanto formal e talvez at um pouco compli-
cado de se entender, ento, vamos a um exemplo:
Suponha que voc deseja saber qual a altura de um quarto. Isso mesmo,
queremos saber qual a distncia entre o teto e cho. Sem uma mtrica bem
definida que explique o conceito da medida estabelecendo como realizar a me-
dida e o que est includo e o que no est includo pode ficar um pouco com-
plicado realizar a medida e confuses podem acontecer.
Vamos supor que voc d esta tarefa para duas pessoas realizar a mesma
medida, ento, a pessoa A vai at o quarto indicado por voc e realiza e medida
solicitada e traz o valor de 2,40 m enquanto a pessoa B vai posteriormente no
mesmo quarto, com a mesma fita mtrica e traz a medida de 98 in (polegadas).
A vem o primeiro problema: a pessoa A trouxe a medida em metros e a pes-
soa B em polegadas. Caso uma mtrica tivesse sido completamente definida
anteriormente esta confuso no estaria acontecendo, pois, na definio de
uma mtrica, um dos pontos que so cobertos o estabelecimento da unidade
na qual a medida que compem a mtrica dever ser tomada.
Supondo ento que as duas pessoas tivessem entrado em um acordo e de-
finiram que o sistema de medida seria o metro. Ento a pessoa B realizar a
transformao da medida em polegadas para metro e chega no resultado de
2,50 m.
Opa! Outra confuso, a medida tomada pela pessoa A est diferente em
10 cm daquela tomada pela pessoa B. Por que isto pode estar acontecendo.
Solicitando para ambas as pessoas explicarem como procederam para rea-
lizar a medida, temos que a pessoa A realizou a medida do cho at a base da
laje, enquanto a pessoa B realizou a medida considerando do cho at o topo da
laje (ou seja, considerou tambm a espessura da laje). E agora, quem est certo?
18 captulo 1
Bom, como no temos uma mtrica formal definida, poderamos conside-
rar que as duas pessoas esto corretas, contudo, estas medidas pouco ajuda-
riam um engenheiro civil que sempre estaria em dvida sobre se a pessoa con-
siderou ou no a espessura da laje.
Ento, como resolver este problema?
Na engenharia civil, foi-se definida a mtrica p-direito, que poderamos
descrever formalmente (e com efeito didtico, uma vez que este no um livro
sobre construo civil) da seguinte forma:
captulo 1 19
NOME DA MTRICA Erros em pedao de software
OBJETIVO DA MTRICA Identificar a qualidade do cdigo que est sendo produzido;
um nmero real com uma casa decimal que determina a quantidade
DESCRIO DA MTRICA de erros crticos encontrados por milhares de linha de cdigo.
KLOC = milhares de linha de cdigo (nmero real com uma casa
SISTEMA DE MEDIDAS decimal) e # de erros crticos (nmero de erros crticos nmero
inteiro).
Medida 1 Linhas de cdigo: Realizar a contagem da quantidade de
NOVAS linhas de cdigo geradas no pacote que foi testado e divid
-las por 1000 para gerar KLOCs.
FORMAS DE SE OBTER A Medida 2 Contar a quantidade de novos erros crticos somada a
MEDIDA quantidade de erros crticos antigos que deveriam ter sido conserta-
dos, mas persistiram.
Realizar a razo: medida 2 / medida 1
Tabela 1.2 Exemplo hipottico de uma mtrica que usa duas medidas diferentes na
sua composio.
Veja que na tabela 1.2 a mtrica em questo composta por duas medidas
diferentes que juntas, ao calcularmos a razo entre elas, nos dar a informao
desejada. Isto bastante comum em software.
De tudo o que foi falado, importante voc entender que uma mtrica, ape-
sar de poder ser composta por vrias medidas, deve ser simples de se entender
e de ser aplicada ou ento no passar de algo terico sem valor prtico. Sendo
simples de entender e aplicar ela conseguir mais facilmente atender o seu ob-
jetivo, que subsidiar a melhoria continua de processos de desenvolvimento e
subsidiar processos de tomada de deciso.
Uma boa mtrica tambm deve ser o menos subjetivo possvel. No pode-
mos criar mtricas cujas medidas sejam baseadas em percepo e sentimentos
(lembre-se, feelings s trouxe resultados concretos para o autor da msica).
A seguir mostramos um quadro que resume as caractersticas de uma
boa mtrica.
20 captulo 1
Uma mtrica sempre deve ter seu benefcio maior do que o custo
MTRICA BOA MTRICA de produzi-la e mant-la. Uma mtrica que tem seu custo maior do
BARATA que o valor que ela d de retorno, no aplicvel.
Uma boa mtrica aquela que independente de quem faa a medi-
da, dar sempre o mesmo resultado. Ou seja, a boa mtrica espe-
MTRICA NO PODE DEPENDER cificada de tal forma que suas medidas independem daqueles que
DE JULGAMENTO PESSOAL a faz, totalmente impessoal, objetiva, clara e lgica. Portanto, no
importa se ser o Joo ou o Jos quem far as medidas da mtrica,
se bem especificada e objetiva ela dar os mesmos resultados.
Tabela 1.3 Cuidados para criar uma boa mtrica (Fernandes, 1995)
Objetivos a serem
Meta 1 Meta 2
alcanados
Questes a serem
Q1 Q2 Q3 Q4 Q5 Q6
feitas
M2 M4 M6 M8 M10
Coisas a serem
medidas
M1 M3 M5 M7 M9
captulo 1 21
PERGUNTA
Entendeu o que uma mtrica e como ela deve ser desenvolvida e documentada? Ento tes-
te os seus conhecimentos, junte-se com seus amigos e determine 3 mtricas interessantes
para saber se o seu estudo esta indo bem ou no, ou seja, coloque como meta Passar na
prova e ai desenvolva as questes sobre o seu processo de estudo e depois defina mtricas
para entender se voc esta desempenhando bem o seu processo de estudo. Boa sorte!
Falamos bastante at aqui sobre mtricas, ainda temos mais o que falar so-
bre elas, mas antes vamos conceitualizar o que vem a ser as medidas.
Uma medida uma tomada de valor de algo que se quer avaliar contra
um padro estabelecido (IEEE - The institute of Electrical and Electronics
Engineers , 1990). Para explicar melhor, vamos pensar na medida de um lpis.
Um lpis possui 17,5 cm de comprimento, ou seja, ele possui 17,5 vezes o pa-
dro centmetro.
No entendeu, ento vamos tentar uma definio de (Pressman, Engenharia
de Software, 2006) que diz que uma medida o processo por meio do qual so
associados smbolos ou nmeros atributos de entidades de modo que os de-
terminem conforme com padres bem definidas.
Ou seja, ambas as definies dizem a mesma coisa, que medida uma for-
ma de atribuir um valor a algo utilizando para isso um padro bem definido
(por exemplo centmetros, gramas e etc.)
Para nosso contexto at agora explorado, a medida ser uma tomada de va-
lor de algo contra um determinado padro de acordo com o especificado por
uma mtrica. Ou seja, as mtricas definem as medidas que quando tomadas
comporo o valor da mtrica segundo o que foi especificado por esta ltima.
Simples no?! Pois . E uma medida pode ser de dois tipos: direta e indireta.
Uma medida direta a mais comuns e mais fcil de ser conseguida. So
aqueles que medem diretamente um fenmeno, como por exemplo esta que
usamos no exemplo anterior: a altura de um lpis. Diretamente com uma rgua
consegue-se proceder com a medida e o padro contra o qual a medida ser rea-
lizada tambm j bem conhecido e estvel: o centmetro; o que gera uma me-
dida absoluta e incontestvel. Isto acontece tambm com medidas de massa
(grama), voltagem (volts), velocidade (metros/segundo) ou temperatura (graus
celsius, farenhait e kelvin). Normalmente quando se faz uma medida como est
22 captulo 1
no h discusso sobre a estabilidade e a certeza da medida, como j dissemos,
ela absoluta. Seu padro muito conhecido e esta medida facilmente re-
produzida por qualquer pessoa que utilize um instrumento calibrado com o
padro usa em princpio (por exemplo, uma fita mtrica calibrada em centme-
tros para medir o lpis da mesma forma que a rgua que fez a primeira medida
estava -> o resultado ser o mesmo para ambos os processos de medio).
J as medidas indiretas so aquelas que conseguimos por meio de outras,
como por exemplo medir a qualidade de um software por meio da quantidade
de tempo que ele fica sem travar, ou ainda medir a velocidade de desenvolvi-
mento por meio da quantidade de linhas de cdigo que o desenvolvedor produz
por hora.
Na verdade, so medidas para as quais precisamos de mais de um passo
para realizar e que geralmente no ofertam resultados absolutos como aqueles
das medidas indiretas (ou seja, no ofertam resultados incontestveis). So me-
didas no to refinadas quanto quelas do mundo das cincias fsicas, contudo
elas tambm so feitas baseadas em um conjunto de regras bastante claras.
Nos exemplos dados h dois pargrafos atrs dissemos que poderamos
medir a velocidade de desenvolvimento por meio da quantidade de linhas de
cdigo desenvolvidas por hora. Veja como esta medida indireta pode ser con-
testada, pois as vezes, um bom desenvolvedor, costuma resolve um grande pro-
blema com menos linhas de cdigo do que um desenvolvedor mdio consegui-
ria. Queremos dizer que as vezes um bom desenvolvedor, em uma hora, resolve
dois problemas utilizando mil linhas de cdigo enquanto um desenvolvedor
medocre poderia hipoteticamente resolver meio problema utilizando 1200 li-
nhas de cdigo em uma hora e por esta mtrica indireta o desenvolvedor me-
docre estaria produzindo mais do que o bom desenvolvedor (definitivamente
linhas de cdigo no uma boa maneira de se medir indiretamente a produo
de um desenvolvedor). Veja como esta medida direta contestvel. Ento ser
que deveramos utiliz-las mesmo?
No mundo dos softwares a maioria das medidas que encontraremos so do
tipo indiretas e (Pressman, Engenharia de Software, 2006) faz uma discusso
em seu livro sobre o uso dessas medidas afirmando que h uma classe de pro-
fissionais dentro da engenharia de software que entende que medir aspectos
de software atualmente seria medir o no-mensurvel e que seria interessan-
te que a comunidade de desenvolvimento de sistemas aguardasse que a cincia
captulo 1 23
entendesse melhor o software e os aspectos que deveriam ser medidos antes de
tentar realizar medidas no diretas ou menos absolutas (mais imaturas).
Contudo, o prprio autor afirma que isto um erro por que mesmo sendo
as mtricas de software no absolutas em sua grande maioria, elas ainda so
apoiadas em um conjunto de regras bem definidas que oferecem uma forma
sistemtica de avaliar, por exemplo, produtos de software e outras aspectos do
desenvolvimento possibilitando um entendimento de imediato sobre a situa-
o do software (ou desenvolvimento) ao invs de a posteriori, o que permite
que o engenheiro de software possa tomar aes (apoia a tomada de deciso)
precocemente em relao ao produto e ao desenvolvimento de software.
E esta posio de (Pressman, Engenharia de Software, 2006) que adota-
remos na disciplina e neste livro. Entendemos que s podemos gerenciar o
que medimos e por mais no absoluta ou indireta que uma mtrica possa
ser desde que ela seja baseada em um conjunto de regras claras e possa trazer
apoio tomada de deciso e evoluo do processo de desenvolvimento ser
algo possvel de ser utilizada dentro do desenvolvimento de sistemas.
24 captulo 1
ele est colaborando para o processo como um todo e possa melhor trabalhar
para se aperfeioar.
Quando as mtricas privadas so consolidadas e perdem a caracterstica
de expor informaes de um indivduo, ento podemos considera-las pblicas,
por exemplo: quantidade de defeito por mdulo do sistema, quantidade de de-
feitos por milhares de linha de cdigo e outros. Essas mtricas podem ser ex-
postas a todos com o objetivo que a equipe do projeto e a organizao no qual
o projeto est inserido possa melhor entender o que est acontecendo e traba-
lhar para aumentar a maturidade do processo de desenvolvimento de software
a ponto de entregar produtos de software com maior qualidade.
Com o intuito de fornecer parmetros para a criao de mtricas de boa
qualidade, (Pressman, Engenharia de Software, 2006) fornece dicas de como
cria-las:
Nmeros devem ser interpretados com bom senso e sensibilidade empre-
sarial. No utilize as mtricas sem antes entende-las.
Mtricas coletadas, feedback fornecido. Seno, a mtrica cai no desuso e
sua aplicao perde fora.
Mtricas no so para avaliao e sim para evoluo. Use as mtricas para
fornecer a indivduos e organizao um direcionador de desenvolvimento e no
um direcionador de avaliao.
As mtricas devem ser claras e objetivas, e aps a sua definio busque
definir metas a serem alcanadas baseando-se nessas as mtricas.
Medidas de mtricas que indicam possveis problemas no devem ser
vistas de forma negativa e sim como uma oportunidade encontrada de aplicar
melhorias em processos e indivduos.
Uma mtrica sozinha no faz vero. No fique obcecado por uma determi-
nada mtrica enquanto outras no esto sendo utilizadas.
captulo 1 25
Ao se medir possvel entender fenmenos que esto acontecendo em um
ENTENDIMENTO processo, produto, recursos e ambientes.
Ao medir processos, produtos, recursos e ambientes em diferentes momentos
no tempo possvel estabelecer base histrica o que permite ao engenhei-
BASE HISTRICA ro de software comparar desempenho e entender se est havendo uma
evoluo.
As mtricas no utilizadas para entender a execuo em relao ao que foi
ACOMPANHAMENTO planejado.
Com mtricas possvel entender tendncias, prever futuras situaes e
TENDNCIA proceder com planos de ao para ajustar o rumo de projetos e produtos de
software.
Por meio de mtricas se torna mais possvel o entendimento de problemas
MELHORIA CONTNUA e causas razes de forma que um plano de ao de correo pode ser criado
com a inteno de se amadurecer processos e produtos de software.
ATIVIDADES
01. Defina uma mtrica para se medir a velocidade de desenvolvimento de um time, segun-
do a forma ensinada neste captulo.
05. Estabelea uma discusso sobre a importncia das medidas indiretas para a engenharia
de software.
06. Veja as mtricas abaixo e determine se elas deveriam ser privadas ou pblicas
a)
26 captulo 1
Medida 1 Linhas de cdigo: Realizar a contagem da quantidade
de NOVAS linhas de cdigo geradas no pacote pelo indivduo e
divid-las por 1000 para gerar KLOCs.
Medida 2 Contar a quantidade de novos defeitos somada a
FORMAS DE SE OBTER A MEDIDA quantidade de erros crticos antigos que deveriam ter sido conser-
tados pelo indivduo, mas persistiram.
Realizar a razo: medida 2 / medida 1.
b)
c)
d)
captulo 1 27
07. Analise as mtricas abaixo e diga se sua medida conseguida de forma direta ou indi-
reta? Por que?
REFLEXO
Parabns, voc conseguiu chegar at o final do nosso primeiro captulo. Aqui voc j deve
estar sabendo o que uma mtrica e a importncia dela para o processo de desenvolvimento
de software e para o produto de software.
Tambm j deve estar sabendo o que uma medida e a diferena existente entre medida
e mtrica. Alm disso, voc j deve estar craque em identificar e descrever mtricas. E no
estamos falando de descrever uma mtrica de qualquer jeito no, mas sim descrever uma
mtrica utilizando o mtodo GQM, baseando a mtrica em seu objetivo e descrevendo-a
baseada no template que foi oferecido neste captulo.
28 captulo 1
Gostaramos de recuperar aqui uma discusso que foi realizada anteriormente neste
captulo sobre a importncia de se medir software e processo de software mesmo que a
medida seja indireta e no absoluta. Voc entendeu bem esta parte? Por que ela o ponto
forte do entendimento da necessidade das mtricas na engenharia de software.
importante que voc entenda que apesar da grande maioria das mtricas que utili-
zaremos na engenharia de software ser mtricas no absolutas e indiretas, o processo de
mensurao realmente muito importante para que o engenheiro de software possa melhor
se guiar na rdua misso de estabelecer um processo de desenvolvimento de qualidade, ma-
duro e que evolua constantemente com o objetivo de gerar produtos de software que sejam
de qualidade e que de fato agreguem valor ao usurio final.
Portanto, deste ponto em diante, queremos dizer, nos prximos captulos, o que faremos
entender quais tipos de mtricas podem existir na engenharia de software de uma forma
geral, apresentar as mtricas de medidas de esforo de desenvolvimento de software, que
so o objetivo desta disciplina e nos aprofundarmos nesta tcnica, tanto no entendimento
das mesmas quanto em como aplica-las no processo de desenvolvimento de software.
J bom adiantar que a grande maioria dessas mtricas de esforo de desenvolvimento
de software so indiretas e no absolutas e que por muitos momentos iremos nos perguntar:
esta medida realmente exata?;Vale a pena a mensurao de algo que no conseguimos
garantir valores absolutos?. Toda vez que esta dvida atentar os nossos estudos pediremos
a voc que volte neste captulo 1 e refaa a leitura das discusses que tivemos e volte a
entender que s podemos gerenciar aquilo que medimos e se queremos de alguma forma
gerenciar o desenvolvimento de software, ento, bom que passemos a medi-lo, e se esta
a forma que conhecemos hoje, ento ser ela que utilizaremos.
LEITURA
Uma leitura bastante interessante que fala sobre como utilizar indicadores para realizar a
gesto (no necessariamente de software) O Verdadeiro Poder do autor Vicente Falconi,
2 Edio. Recomendamos esta leitura para os alunos que querem entender qual o propsito
de se realizar medidas e estimativas no mundo corporativo. Boa leitura.
captulo 1 29
REFERNCIAS BIBLIOGRFICAS
Engenhariacivil.com. (22 de 08 de 2015). P Direito. Acesso em 22 de 08 de 2015, disponvel em
EngenhariaCivil.Com: http://www.engenhariacivil.com/dicionario/pe-direito
Fernandes, A. A. (1995). Gerncia de software atravs de mtricas: garantindo aqualidade do
projeto, processo e produto. So Paulo: Atlas.
IEEE - The institute of Electrical and Electronics Engineers . (1990). IEEE Standart Glossary of
Software Engineering Terminology. New York: IEEE.
Lobo, G. (2013). spinballnet. Acesso em 15 de 07 de 2015, disponvel em spinballnet: http://www.
spinballnet.com.br/2013/01/os-10-jogadores-mais-baixos-da-nba-que.html
Pressman, R. (1995). Engenharia de Software. Sao Paulo: Pearson Makron Books.
Pressman, R. (2006). Engenharia de Software. So Paulo: McGraw-Hill.
Sommerville, I. (2011). Engenharia de Software. So Paulo: Pearson.
Terra Esportes. (29 de 06 de 2006). Selees. Acesso em 19 de 08 de 2015, disponvel em Terra
Esportes: http://esportes.terra.com.br/futebol/copa2006/selecoes/interna/0,,OI1056503-EI5720,00.html
Wikipedia. (2011). Wikipedia - Muggsy Bogues. Acesso em 15 de 07 de 2015, disponvel em
Wikipedia: https://pt.wikipedia.org/wiki/Muggsy_Bogues
Wikipedia. (s.d.). Wikipedia - Manute_Bol. Acesso em 15 de 07 de 2015, disponvel em Wikipedia:
https://pt.wikipedia.org/wiki/Manute_Bol
30 captulo 1
2
Determinao de
Ponto por Funo
Ol, seja bem vindo a mais um captulo do nosso livro e parabns por ter ini-
ciado novamente os estudos da disciplina, temos certeza de que o que temos
para falar para voc agora ser bastante interessante, principalmente na sua
carreira profissional.
Este captulo tratar de uma tcnica bastante interessante para se estimar o ta-
manho/complexidade de um software: pontos de funo.
Por meio desta tcnica voc ser capaz de determinar, de forma indireta,
qual o tamanho de um determinado software antes mesmo de terminar a co-
dificao dele, o que bastante importante para realizar as estimativas de tem-
po e custo de desenvolvimento de sistemas.
OBJETIVOS
Este captulo possui por objetivo:
Transmitir para o aluno uma taxonomia de medidas e mtricas de software e dar nfase
a alguns grupos de mtrica que so essenciais para a estimativa de esforo de desenvolvi-
mento de software;
Discutir as diferenas entre mtricas diretas de medida de tamanho de software e outras
mtricas que tambm podem servir para medir de forma indireta o tamanho do software;
Mostrar ao aluno uma mtrica funcional de software que mede de forma indireta o tama-
nho do software: a anlise de pontos de funo;
Treinar o aluno no processo de realizao das medidas que compem a anlise de pontos
de funo.
32 captulo 2
2.1 Categorizao de mtricas na
engenharia de software e mtricas no ciclo
de vida do software.
No captulo passado falamos muito sobre mtricas e medidas e a importncia
delas no desenvolvimento de software e na engenharia de software. Mas voc
j parou para pensar sobre quais mtricas so possveis dentro da engenharia
de software?
Lgico que deve haver possibilidades infinitas, mas dentro do ciclo de vida
de um software, considerando que este vai da concepo, desenvolvimento e
produo/uso, h vrios autores da literatura de engenharia de software que
busca categorizar os tipos de mtricas possveis. Vamos aqui explicar a catego-
rizao sugerida por (Pressman, Engenharia de Software, 2006).
Para iniciar a nossa explicao, vamos nos atentar ao desenho abaixo:
Engenharia de
requisitos Software em produo-
>Produto de Software
Projeto de
software
Implementao
Testes
Manuteno
captulo 2 33
Pela figura 2.1 possvel entender uma diviso no ciclo de vida de software
de 3 partes:
34 captulo 2
utilizadas para apoiar o design dos casos de testes avaliando o poder dos
testes que foram criados. Incluem: mtricas de cobertura de comando e
MTRICAS DE TESTE desvio; mtricas relacionadas a defeito. Mtricas de efetividade de testes.
Mtricas em processo.
CURIOSIDADE
PDCA
um mtodo de gesto de processos composto por 4 passos (plan, do, check, act) que
acontecem de forma interativa que deve ser utilizado principalmente para atividades de ges-
to de melhoria contnua de processos e produtos.
Este mtodo foi estudado por Dr. W Eduards Deming e foi revolucionrio principalmente
na poca ps guerra na indstria automobilstica principalmente em pases como Japo e
EUA. Atualmente a filosofia do PDCA (que baseado no mtodo cientfico) utilizado em
outros programas de qualidade como o Six Sigma. (Wikipedia, 2015).
Caso queira saber um pouco mais sobre assunto, v at este link e leia um artigo interessan-
te. http://www.portal-administracao.com/2014/08/ciclo-pdca-conceito-e-aplicacao.html
captulo 2 35
CURIOSIDADE
Modelo IDEAL
Ainda falando sobre modelos de melhoria contnua de processo surge o IDEAL que um
modelo de melhoramento organizacional, criado pela SEI (Software Engineering Institute) ba-
seado em 5 passos iterativos, a saber: Initiating, Learning, Acting, Establishing e Diagnosing.
Muito parecido com o PDCA, mas criado por um rgo diretamente ligado s prticas de
engenharia de software, o IDEAL tem objetivo principal guiar organizaes no planejamento
e na implementao de um efetivo programa de melhoramento de processo de software.
(Silva, 2015)
Para saber mais sobre o IDEAL acesse: http://www.cin.ufpe.br/~rls/ideal/ ou https://
resources.sei.cmu.edu/asset_files/handbook/1996_002_001_16433.pdf
36 captulo 2
PROJETO KLOC HORAS/HOMENS CUSTO ERROS PESSOAS
1 10 20000 200000 120 3
2 30 62000 350000 180 5
3 25 60000 300000 150 4
4 37 80000 380000 200 7
5 80 155000 850000 250 10
captulo 2 37
Contudo, muitas controvrsias surgiram em relao a este uso uma vez que
se a linguagem de programao for alterada, a quantidade de linhas de cdigo
tambm pode ser afetada dando a impresso que um software que feito em
C possa ser menor do que o mesmo feito em JAVA, por exemplo (o que pode-
ria ser resolvido com fatores de ajuste), e principalmente por que este tipo de
medida acaba punindo softwares bem projetados e bem desenvolvidos, uma
vez que softwares que so bem projetados e bem desenvolvidos normalmen-
te apresentam uma quantidade menor de linhas de cdigo dando a impresso
que so menores, quando na verdade possuem o mesmo tamanho em requisi-
tos e complexidade do que o mesmo software quando desenvolvido de forma
mal projetada. Por isso, este tipo de medida no caiu nas graas da comunidade
de desenvolvimento de software e at hoje no utilizado em larga escala.
Em 1979 (Albrecht, 1979) props ento uma mtrica que busca medir o ta-
manho do software indiretamente por meio da sua complexidade que seria ba-
seada nas funes que ele oferece. A mtrica proposta foi o Pontos por Funo
(function points FP) e pode ser considerada uma mtrica no domnio da anli-
se, uma vez que no necessrio ter o cdigo pronto para a realizao das medi-
das, o que tornou-se uma grande vantagem para o uso desta mtrica, j que por
meio de uma medida feita na fase de anlise do ciclo de vida do software (que
uma das fases iniciais do software) j possvel realizar estimativas, basean-
do-se em base histrica, da quantidade de linhas de cdigo que espera-se para
o software, do custo e tempo de desenvolvimento, da quantidade de erros es-
peradas e outros. (Pressman, Engenharia de Software, 2006) (Pressman, 1995).
Desta forma, essa mtrica foi bem aceita pela comunidade e profissionais
de engenharia de software incluindo o seu uso como medida de normalizao
de outras mtricas como tempo de desenvolvimento, defeitos, produtividade
e outros.
38 captulo 2
Falaremos detalhadamente mais adiante sobre esta mtrica uma vez que
temos um interesse particular no potencial que ela possui em estimar esforo
de desenvolvimento de software.
captulo 2 39
mtrica de pontos por funo para a determinao do tamanho do esforo para
o desenvolvimento do sistema sendo que este nmero pode ser utilizado como
base para estimar o nmero de homens hora, o nmero de LOC e outros.
Assim como os pontos por funo mencionado anteriormente, os pontos
de caso de uso uma tcnica que desperta particularmente o nosso interesse
pelos mesmos motivos e por isso ser profundamente explorada mais adiante.
40 captulo 2
e para uma classe de apoio e atualmente tem a mdia desses nmeros em 10
homens/hora para uma classe-chave e 8 horas/homem uma classe de apoio.
Utilizando um clculo paramtrico proporcional uma estimativa de horas/ho-
mem para este desenvolvimento seria a seguinte:
captulo 2 41
Muito bom! Voc acertou, a mtrica de Linhas de Cdigo - LOC (ou milha-
res de linha de cdigo KLOC). Esta uma mtrica que por meio de uma medida
direta simples de contagem de linhas de cdigo do sistema nos d o tamanho
do software.
Contudo, conforme j discutimos anteriormente, ela no resolve o proble-
ma de se estimar o tempo de desenvolvimento do software por que para contar
linhas de cdigo o software j deve estar pronto e quando queremos estimar o
esforo justamente antes de iniciar o desenvolvimento do software, ou seja,
antes de saber qual o nmero de linhas de cdigo do software.
Portanto, necessrio utilizar outras mtricas de tamanho de software que
nos d um nmero em momentos iniciais do desenvolvimento de software de
forma a permitir o clculo de estimativas de esforo e custo de desenvolvimen-
to. Voc teria alguma sugesto?
O que acha dos pontos por funo ou dos pontos de caso de uso?
(Martins, 2007) comenta que embora o valor de ambas as mtricas represen-
te a complexidade associada ao software (e no diretamente o seu tamanho),
com base nesse valor possvel calcular vrios indiretamente vrias outras m-
tricas, incluindo mtrica de tamanho do software, j que se pode transformar
esse valor em linhas de cdigo, por exemplo. Por isso podemos dizer que tanto
Pontos por Funo como Pontos de Casos de Uso podem ser consideradas m-
tricas para determinar o tamanho do software.
Considerar ento estas mtricas de complexidade/funo como sendo m-
tricas de tamanho a opo de diversos outros autores, como por exemplo,
(Andrade, 2004) que afirma existir vrias mtricas de estimativa de tamanho
de software sendo que a maioria desenvolvida com base nas funes do soft-
ware como: Anlise de Pontos de Funo, Bang, Feature Points, Boeings ED
Function Points, Mark II, Pontos de Caso de Uso e COSMIC Full Function Point.
(Anda, 2001) (Fetcke. T., 1998) (Smith, 1999).
Ento, nesta disciplina, consideraremos essas duas mtricas, pontos por
funo e pontos de caso de uso, como medidas de tamanho de software que
apoiaro estimativas de esforo e custo.
Desta forma, dando continuidade neste captulo iremos nos aprofundar na
tcnica de medio dos pontos por funo e no prximo captulo estudaremos
um estudo de caso sobre pontos por funo e nos aprofundaremos nas tcnicas
sobre pontos de caso de uso para ento, no captulo subsequente estudarmos
como podemos realizar estimativas baseados nessas duas mtricas.
42 captulo 2
2.2 Determinao de pontos por funo.
Segundo (Martins, 2007) em seu trabalho de dissertao, a mtrica Anlise
de Pontos por Funo caracteriza a complexidade da funcionalidade do soft-
ware a ser desenvolvido, o que de forma indireta nos aponta o tamanho do
software em questo, tendo como base itens que esto presentes nos produtos
de software, como arquivos, transaes de entrada, de sada, etc. e algumas
perguntas que procuram caracterizar outros aspectos que no esto atribu-
dos diretamente funcionalidade do produto, porm que podem interferir na
complexidade de desenvolvimento do produto, como por exemplo exigncia
de disponibilidade de recursos computacionais, processamento de dados dis-
tribudo, entre outros.
CURIOSIDADE
Quem usa pontos de funo no Brasil?
No Brasil pode-se citar empresas como Accenture, Bradesco, Vale, Caixa, Correios,
CPMBraxis, Datamec, Totvs, DBA, EDS, IBM, Petrobras, Politec, OI, Unisys, Xerox, dentre
outras.
O IFPUG possui filiados de mais de 40 pases; sendo que o uso da APF mais in-
tenso na Alemanha, Austrlia, Brasil, Canad, Coria, Estados Unidos, ndia, Inglaterra,
Itlia e Holanda. Exemplos de outras empresas no mundo que usam a APF: IBM, Unisys,
Xerox, EDS, Citigroup, Tata, Lockheed Martin-EIS, Booz Allen & Hamilton, Nielsen Media
Research, Bank of Canada, Ralston Purina Co., Northrop Grumman Corp, Samsung SDS
Co Ltd, BASF Corporation, Accenture, Pepsi Co, Compuware, Pricewaterhouse Cooper.
(Fatto, 2015)
captulo 2 43
Contar
funes do
tipo dados Determinar
contagem
Identicar de PF no
escopo da ajustados Calcular
Determinar contagem Contar
pontos por
o tipo de e as funes do
funo
contagem fronteiras tipo transao
ajustados
da
aplicao Determinar
fator de
ajuste
Figura 2.3 processo de contagem de pontos por funo (Vazques, Simes, & Albert, 2005)
44 captulo 2
Esse limite dever levar em considerao o propsito para o qual a APF ser
usada; como e quais os sistemas iro manter os dados; e a identificao das
regras de negcio que daro suporte aplicao. (Longstreet, 2004). Vamos
aos detalhes:
Fronteira da aplicao: trata-se fronteira uma linha virtual que
delimita o que faz parte do sistema que ser implementado e o que
est fora do sistema que ser implementado e de fato interage com este
sistema.
Tabela 2.3 Dicas para identificar a fronteira da aplicao (Vazques, Simes, & Albert, 2005)
captulo 2 45
Escopo da contagem: busca determinar o que fato ser contato, por
exemplo: contar-se- todas as funcionalidades; ou apenas as funcionali-
dades que de fato sero utilizadas pelos usurios; ou ainda apenas algu-
mas funcionalidades especficas.
46 captulo 2
sentido para o usurio de forma inteira e por isso compem um campo atmico
e conta-se 1 TD).
Com a identificao e contagem de cada TD e TR, pode-se classificar um
ALI, de acordo com o Quadro 1, como sendo de complexidade baixa, mdia ou
alta o que contribui, respectivamente, com 7, 10 ou 15 Pontos por Funo No
Ajustados para a contagem final dos Pontos por Funo No Ajustados.
Um AIE tambm classificado como sendo baixo, mdio ou alto de acordo
com o nmero de itens de dados e registros lgicos identificados contribuindo
respectivamente com 5,7e 10 Pontos por Funo No Ajustados como tambm
mostra a tabela 2.4 [Vazquez et al. 2006].
TIPO DE DADOS
TIPOS DE REGISTRO 1 A 19 20 A 50 51 OU MAIS
1 BAIXA BAIXA MDIA
2a5 BAIXA MDIA ALTA
6 ou mais MDIA ALTA ALTA
captulo 2 47
externa tem como objetivo fundamental a manuteno de uma ou mais ALI e/
ou alterar o comportamento do sistema.
Uma SE (sada externa) um processo elementar que envia dados ou infor-
maes de controle para fora da fronteira da aplicao. Uma sada SE tem como
objetivo fundamental apresentar informaes para o usurio por meio do pro-
cessamento de outras informaes ou ainda apresentar a resposta de um dado
ou informao de controle.
J uma CE (consulta externa) um processo elementar que envia informa-
es de controle ou dados fora da fronteira do sistema. A funo principal de
uma CE mostrar informaes para o usurio por meio do retorno de um dado
ou de uma informao de controle que venha de uma ALI ou de uma AIE.
A seguir segue uma tabela que mostra um resumo dos objetivos primrios
de cada funo de transao explicada aqui anteriormente.
Tabela 2.5 Resumo de objetivos primrios das funes de transao (Universidade Est-
cio de S, 2015)
48 captulo 2
dependente da quantidade de itens de dados e arquivos referenciados que a
funo transacional se relaciona. Quanto mais itens de dados e arquivos refe-
renciados a funo transacional mantr relao, maior ser o nmero de com-
plexidade (que ser classificado em BAIXO MDIO ALTO), quanto menor o
nmero de itens de dados e arquivos referenciados menor ento ser o nmero
de complexidade.
Para que voc tenha um entendimento completo desta contagem acho que
apenas esta faltando dizer o que significa arquivos referenciados (AR).
Um AR : 1) um ALI lido ou mantido pela funo do tipo transao; ou 2) um
AIE lido pela funo do tipo transao.
Agora que voc j entende o que um arquivo referenciado (AR) vamos s
atribuies de complexidades para depois realizar as contagens de pontos de
funo no ajustados. No caso das funes transacionais atribuio de comple-
xidade para uma EE diferente da atribuio de complexidade de uma SE que
por sua vez semelhante a uma atribuio de complexidade de uma CE.
Desta forma, vamos primeiramente entender como funciona a contagem
para a EE e posteriormente para a SE e CE.
Aps contar os itens de dados e os arquivos referenciados de uma EE deve-
se determinar a sua contribuio para a contagem final dos Pontos por Funo
No Ajustados como 3, 4 ou 6 Pontos por Funo No Ajustados respectivamen-
te a uma complexidade BAIXA, MIA ou ALTA que determinada utilizando o
tabela 2.6 logo a seguir.
J o processo para a contagem dos pontos por funo no ajustados das SEs
e CEs, apesar de ser o mesmo da EE, diferente no que tange aos parmetros
de classificao da complexidade, que seguem a tabela 2.7. E a contribuio de
Pontos por Funo No Ajustados para a SE deve ser de 4 para uma complexi-
dade baixa, 5 para a mdia e 6 para a alta. Mas para uma CE a contribuio de
Pontos por Funo No Ajustados deve ser de 3 para a complexidade baixa, 4
para a mdia e 6 para a alta.
captulo 2 49
ARQUIVOS ITENS DE DADOS
REFERENCIADOS 15 6 19 20 - mais
01 Baixa Baixa Mdia
23 Baixa Mdia Alta
4 mais Mdia Alta Alta
TIPO DE
QDDE COMPLEXIDADE CONTRIBUIO MULT TOTAL
FUNO
ALI 0 BAIXA 7 0
0 MDIA 10 0
1 ALTA 15 15 15
AIE 0 BAIXA 5 0
2 MDIA 7 14
1 ALTA 10 10 24
EE 1 BAIXA 3 3
0 MDIA 4 0
0 ALTA 6 0 3
SE 0 BAIXA 4 0
1 MDIA 5 5
0 ALTA 6 0 5
CE 0 BAIXA 3 0
0 MDIA 4 0
2 ALTA 6 12 12
Total PFNA = 59
Tabela 2.8 Exemplo de clculo dos Pontos por Funo No Ajustados [IFPUG, 1999].
50 captulo 2
que podem influenciar o seu tamanho funcional. Portanto, o prximo passo se
justifica exatamente pelo entendimento desses fatores gerais que ajustaro os
pontos de funo contados at ento. (Vazques, Simes, & Albert, 2005)
Ento, ao final, como um template, voc ter um quadro conforme a figura
a seguir:
Fator de Ponderao
Nmero de entradas x 3 4 6 =
do usurio
Nmero de sadas x 4 5 7 =
do usurio
Nmero de consultas x 3 4 6 =
do usurio
Nmero de earquivos x 7 10 15 =
Nmero de interfaces x 5 7 10 =
externas
Contagem total
1 Nenhuma influncia.
2 Influncia mnima.
3 Influncia moderada.
4 Influncia significativa.
5 Grande influncia.
Tabela 2.9 Tabela de nveis de influncia das caractersticas gerais da aplicao (Vaz-
ques, Simes, & Albert, 2005)
captulo 2 51
As caractersticas gerais do sistema, que esto mostradas na tabela, so 14
itens que avaliam, de maneira geral, o grau de complexidade do sistema.
PASSO AES
Avaliar cada uma das 14 caractersticas gerais do sistema em uma escala de zero a cinco
1 correspondendo a no influncia at a fortemente influente respectivamente, determinando
o grau de influncia.
2 Somar os graus de influncia encontrados para gerar o total de grau de influncia (TGI).
Usar a seguinte formula para determinar o VFA:
3
VFA = (TGI * 0,01) + 0,65
Baseado nesta tabela, o VFA para o sistema seria VFA = (39 * 0,01)+0,65 = 1,04.
52 captulo 2
VII. Calcular os Pontos por Funo Ajustados Este o ltimo passo para
a concluso da contagem dos Pontos por Funo. Como visto na etapa i, h trs
tipos de projetos que podem ser contados, a saber: projetos de desenvolvimen-
to, aplicaes em uso ou projetos de manuteno. Sendo assim, tem-se trs fr-
mulas para o clculo dos Pontos por Funo ajustado, uma para cada tipo de
projeto.
Contudo para esta disciplina focaremos apenas a contagem dos Pontos por
Funo para projetos de desenvolvimento.
O clculo dos Pontos por Funo para projetos de desenvolvimento se d
pela seguinte frmula:
MULTIMDIA
Quer ver um exemplo de contagem de pontos por funo em um vdeo aula interessante?
Ento acesse o link abaixo e divirta-se:
https://www.youtube.com/watch?v=N3AO3JKaLa4
ATIVIDADES
01. Faa uma breve discusso sobre a diferena entre mtricas e estimativas. Busque mos-
trar se so conceitos idnticos, semelhantes ou totalmente diferentes e caso seja um dos
dois ltimos casos mostre quais so as diferenas.
captulo 2 53
03. Imagine uma aplicao que possua 10 consultas externas, 10 entradas externas, 10
sadas externas, 5 arquivos lgicos internos, 5 arquivos de interfaces externas todos de com-
plexidade mdia. Qual o valor dos pontos de funo no ajustados para este caso conside-
rando uma contagem para projetos de desenvolvimento?
04. Para a tabela abaixo de caractersticas gerais do sistema (CGS) avaliada para um deter-
minado sistema calcule o valor do fator de ajuste.
05. Faa uma anlise do valor do fator de ajuste encontrado no exerccio anterior e discutin-
do em alguns pargrafos o seu significado.
06. Calcule o valor de pontos por funo para projeto de desenvolvimento para o software
que possui as seguintes caractersticas:
QUANTIDADE
PARMETRO MEDIDO QUANTIDADE SIMPLES QUANTIDADE MDIO
COMPLEXO/ALTO
Arquivo lgico interno 3 2 1
Arquivo de interface externa 6 4 2
Consultas Externas 5 1 1
Sadas Externas 10 3 2
Entradas Externas 15 10 5
54 captulo 2
REFLEXO
Muito bom meu caro aluno, voc chegou ao final de mais uma etapa do aprendizado sobre
medidas de esforo de desenvolvimento de software.
Neste captulo voc encerrou os estudos acerca do que nos alicera para entender me-
didas de esforo: medidas e mtricas.
Foi mostrado a voc que h vrias formas de realizarmos uma taxonomia de medidas
e mtricas de software e escolhemos mostrar para voc aquela defendida por (Pressman,
2006) e (Pressman, Engenharia de Software, 1995).
Na sequncia, lhe mostramos que dentre os tipos de mtricas apresentadas havia uma
que era de principal interesse, a LOC (linhas de cdigo) por que esta era uma medida de ta-
manho de software e que nos serviria de base para calcular estimativas de tempo e custo de
desenvolvimento de sistemas. Contudo vimos que esta medida s pode ser conseguida (sem
ser estimada) ao final da fase de desenvolvimento de sistemas, de forma que no nos serviria
para estimativas de custo e tempo que so quase sempre realizadas no incio do projeto de
desenvolvimento de software.
Ento, foi mostrado para voc que vrias autores iniciaram uma busca por medidas de
sistema que pudessem ser realizadas em momentos mais iniciais do ciclo de desenvolvimen-
to de software, e uma das medidas que passou a se tornar quase que um padro de fato no
uso para estimativas o Pontos por funo, que uma medida funcional (complexidade),
mas que de certa forma, ou melhor, de forma indireta, tambm pode nos mostrar o tamanho
do software (inclusive alguns autores consideram que esta tambm poderia ser considerada
uma mtrica de medida de tamanho de sistema).
Dada a importncia desta mtrica, seguimos no captulo um estudo bastante minucioso
do procedimento para realizar as vrias medidas que esto por trs da mtrica, e mostramos
a voc todos os passos necessrios para chegar at l.
Agora, no prximo captulo, atuaremos em dois pontos especficos, a saber: mostrar es-
tudo de caso pedaggicos da aplicao do procedimento de medidas dos pontos de funo
e introduzir uma outra mtrica (e seu procedimento) que tambm serve para a determinao
da complexidade do software e uma medida indireta para o tamanho do software que a
anlise de pontos de caso de uso.
captulo 2 55
LEITURA
Um timo livro na rea de medidas e estimativas de software que foca na tcnica de pontos
de funo o livro Anlise de Pontos de Funo: Medio, Estimativas e Gerenciamento de
Projetos de Software dos autores Carlos Vasquez, Guilherme Simes, Renato Albert.
REFERNCIAS BIBLIOGRFICAS
Albrecht, A. (1979). Measuring application development productivity. IBM Applic. Dev. Joint
SHARE/GUIDE Symposium, 83-92. Monterey, CA.
Anda, B. D. (2001). Estimating Software Development Effort Based on Use Cases Experiences
from industry. UML 2001 - The Unified Modeling Language. Modeling Languages, Concepts, and
Tools, 4th International Conference (LNCS 2185), p. 487-502. Toronto, Canada.
Andrade, E. L. (2004). Pontos de Caso de Uso e Ponto de Funo na gesto de estimativa de
tamanho de projetos de software orientado a objeto. Dissertao de mestrado, 143 f. Braslia.
Fatto. (20 de 08 de 2015). Fatto FAQ. Fonte: Fatto FAQ: http://www.fattocs.com/pt/faq-11.html
Fetcke. T., A. A. (1998). Mapping the OO-Jacobson Approach into Function Point Analysis.
International Conference on Technology of Object-Oriented Languages and Systems (TOOLS-23).
IEEE Comput. Soc. Los Alamitos, CA, USA.
IFPUG International Function Point Users Group. (1999). Function Point Counting Pratices Manual.
. Ohio: IFPUG.
Kerner, G. (1993). Use Case Points: resource estimation for Objectory projects. Objective Systems SF
AB (copyright owned by Rational/IBM).
Longstreet, D. (October de 2004). Function Points Analysis Training Course. 116 p. Acesso em 21
de 03 de 2004., disponvel em www.softwaremetrics.com
Martins, M. D. (2007). GERAO DE PONTOS DE CASOS DE USO NO AMBIENTE COCCAR.
Dissertao de mestrado. So Carlos, So Paulo, Brasil.
Pressman, R. (1995). Engenharia de Software. Sao Paulo: Pearson Makron Books.
Pressman, R. (2006). Engenharia de Software. So Paulo: McGraw-Hill.
Silva, R. L. (20 de 08 de 2015). O modelo ideal de melhoria de processo. Fonte: CIN: http://www.
cin.ufpe.br/~rls/ideal/
Smith, J. (1999). The Estimation of Effort Based on Use Cases. Rational Software, White paper.
Vazques, C. E., Simes, G. S., & Albert, R. M. (2005). Anlise de Pontos de Funo: medio,
estimativas e gerenciamento de projetos de software. So Paulo: rica.
Wikipedia. (29 de 08 de 2015). Ciclo PDCA. Fonte: Wikipedia: https://pt.wikipedia.org/wiki/Ciclo_PDCA
56 captulo 2
3
Mtricas
Utilizando Pontos
por Funo
Ol caro aluno, estamos impressionados com o seu desempenho, j fechou o
segundo captulo do livro e agora, sem perder tempo, j est iniciando o tercei-
ro. Parabns.
No captulo anterior iniciamos a discusso sobre a tcnica de pontos de fun-
o. Vamos ento aproveitar este captulo para nos aprofundarmos um pouco
mais no tema e tambm estudar alguns estudos de caso acerca da anlise de
pontos de funo.
OBJETIVOS
Este captulo possui por objetivo:
Aprofundar os conhecimentos do aluno no processo da contagem dos pontos de funo
de um determinado sistema. Inclusive dando mais detalhes sobre a forma de identificao de
funes tipo dado e tipo transao.
Aplicar os conhecimentos adquiridos no captulo anterior em um estudo de caso no qual o
aluno poder visualizar a anlise de pontos de funo acontecendo de forma prtica e obje-
tiva e ainda recuperar os conceitos que aprendeu no captulo anterior.
Iniciar as discusses com os alunos sobre estimativas de software, principalmente aquelas
realizadas por mtodo paramtrico proporcional.
a. Mostrar para os alunos a relao entre estimativa de LOC e PF e a influncia da
linguagem de programao nesta estimativa.
b. Realizar a estimativa de custo do estudo de caso em questo.
c. Realizar a estimativa de esforo/produtividade do estudo de caso em questo.
Mostrar com maior profundidade para o aluno os dois tipos adicionais de anlise de pontos
de funo alm do projetos de desenvolvimento.
58 captulo 3
3.1 Estudo de caso exemplo simples de
contagem utilizando um DFD.
Ol caro aluno! Vamos neste captulo falar um pouco sobre a aplicao da anli-
se de pontos de funo por meio de exemplos pedaggicos prticos.
O primeiro estudo de casoque mostraremos aqui o de um sistema de bi-
blioteca modelado por meio de um DFD que baseado no estudo de caso do
material de contedo on-line desta disciplina (Universidade Estcio de S,
2015).
Escolhemos este exemplo por que h um senso comum bastante difundi-
do sobre um sistema de biblioteca que poder ser utilizado aqui para apoiar o
entendimento dos requisitos do sistema que, para no complicar o problema
onde no precisamos (nos requisitos), sero abaixo mostrados em alto nvel.
O sistema em questo possui os seguintes requisitos:
1. Incluir aluno um aluno pode ser includo no sistema para que poste-
riormente ele possa emprestar livros.
2. Emprestar um aluno cadastrado pode tomar um livro emprestado
da biblioteca.
3. Cadastrar livro a bibliotecria pode cadastrar um livro no acervo que
acabou de chegar na biblioteca.
4. Verificar atrasos os livros que esto atrasados podem ser verificados.
A figura 3.1 mostra o modelo DFD (diagrama de fluxo de dados) que modela
o sistema em questo.
Perceba que o modelo tambm traz as interaes que os usurios (aluno e
bibliotecria) fazem com os depsitos de dados, contudo, como o modelo em
questo no traz o dicionrio de dados relativo aos depsitos de dados e ou ao
fluxo de dados, teremos que nos valer de um diagrama adicional, que mostra-
do na figura 3.1.
captulo 3 59
Considere o DFD Livro
Nmero Autor
Cadastrar Nome Nome
Primeiro CPF
Atendente Num.
Volume
Emprestar
Autoria
Usurio CPF
(fornecido pelo Usurio Nmero
Conexo
sistema acadmico) Nome
Matrcula Emprstimo
END
Matrcula
CPF
Livro
Data_EMP
Incluir
Aluno D2 Pedido
Pedido
Emprestar
b. Bibliotecria
D3 Acervo
Livro
D4 Emprstimo
Cadastrar
Livro
vericar
Atrasos
Emprstimos
Multa
c. Sistema
Financeiro
60 captulo 3
CONCEITO
Diagrama de fluxo de dados
Segundo a (Wikipedia, 2015) O diagrama de fluxos de dados (DFD) uma represen-
tao grfica do "fluxo" de dados existente em um sistema de informao, modelando seus
aspectos de processo. Ela fornece apenas uma viso do sistema, a viso estruturada das
funes, ou seja, o fluxo dos dados. Frequentemente, eles so uma etapa preliminar usada
para criar uma viso geral do sistema que pode posteriormente ser elaborado.
Os DFDs so excelentes para definir, detalhar, desenhar e estabelecer limites (suas
fronteiras) e domnios (estrutura e abrangncia) para as funcionalidades do aplicativo a ser
gerado, sendo uma das principais ferramentas utilizadas, com essa finalidade, em projetos
de sistemas de informao. Tambm estabelecem uma viso integrada de todas as relaes
existentes entre os dados e os processos que os transformam, bem como os limites que de-
marcam aquilo que pertence ao sistema ou processo de negcio e aquilo que est fora dele,
da sua utilidade em definir o escopo do projeto.
Para entender melhor este estudo de caso seria interessante que voc entendesse o
DFD, para tal v at o link https://pt.wikipedia.org/wiki/Diagrama_de_fluxo_de_dados e es-
tudo como funciona um diagrama de fluxo de dados.
Preste bastante ateno principalmente nos conceitos de entidade externa, depsito de
dados, processos e fluxo de dados.
Se voc falou 4, ento acertou! Perceba que no exemplo temos vrios depsi-
tos de dados que so representaes de persistncias internas do sistema. Desta
forma, consideraremos estes depsitos de dados como sendo nossos ALIs. Assim
possvel identificarmos: ALUNO VLIDO, PEDIDO, EMPRSTIMO e ACERO.
Relembrando, um ALI :
captulo 3 61
Um ALI no pode ser:
Arquivos temporrios.
Arquivos de trabalho.
Arquivos de classificao.
Arquivos de cpia de segurana requerido pelo CPD.
Arquivos introduzidos somente por causa da tecnologia usada.
Ex.: Arquivos de parmetro para um software WFL, JCL etc.
Operaes de juno e projeo.
Arquivos de ndices alternativos. (Vazques, Simes, & Albert, 2005)
62 captulo 3
Um AIE pode ser:
Dados de referncia externos utilizados pela aplicao. (Vazques, Simes,
& Albert, 2005)
Para uma funo ser identificada como um AIE:
O grupo de dados ou informao de controle logicamente relacionado e
identificvel pelo usurios;
O grupo de dados referenciado pela aplicao sendo contada, porm
externo a ela.
O grupo de dados no mantido pela aplicao sendo contada.
O grupo de dados mantido por outra aplicao, isto , deve ser um ALI
para a outra aplicao. (Vazques, Simes, & Albert, 2005)
captulo 3 63
So exemplos de EE:
Transaes que recebem dados externos utilizados na manuteno
de ALIs;
Janela que permite adicionar, excluir, e alterar registros em arquivos.
Nesse caso contribuem com 3 entradas externas.
Processamento em lotes de atualizao de bases cadastrais a partir de ar-
quivos de movimento. (Vazques, Simes, & Albert, 2005)
No so exemplos de EE
Telas de filtro de relatrios e consultas;
Menus;
Telas de login. (Vazques, Simes, & Albert, 2005)
64 captulo 3
O SISTEMA FINANCEIRO no procede com nenhuma entrada no sistema,
ele simplesmente recebe uma sada do sistema, que ser contabilizada em ou-
tra funo transacional mais frente.
No total teremos ento 3 EEs no sistema que est sendo analisado.
Muito bom, j contamos uma das funes transacionais, agora vamos para
a segunda, no caso, sadas externas (SEs).
Para determinar as SEs deste diagrama mais uma vez olharemos as enti-
dades que interagem com o sistema, mas agora ao invs de prestar ateno nas
setas que saem das entidades externas, iremos prestar ateno nas setas que
chegam essas entidades.
Alm disso, uma SE caracterizada por (Vazques, Simes, & Albert, 2005):
Um processo elementar;
Que envia dados ou informaes de controle para fora da fronteira
da aplicao;
Cuja principal inteno apresentar a informao ao usurio por meio de
lgica de processamento que no seja apenas a recuperao de dados ou infor-
mao de controle. A lgica de processamento deve obrigatoriamente conter
ao menos uma frmula matemtica ou clculo, ou criar dados derivados (no
necessrio que esses dados ou clculo sejam apresentados ao usurio). Pode
tambm manter um ou mais ALI e/ou alterar o comportamento do sistema.
captulo 3 65
Com todas as informaes dadas anteriormente e observando o diagra-
ma de fluxo de dados possvel perceber que a entidade ALUNO no recebe
nenhum fluxo de dados, portanto, no contabilizaremos nenhuma SE para
essa entidade.
J a entidade externa BIBLIOTERCRIA recebe a sada EMPRSTIMO do
processo VERIFICAR ATRASOS que provavelmente foi um clculo efetuado
para saber quem est atrasado, portanto, contm uma frmula matemtica e
por isso pode ser contabilizada como uma SE.
Por fim, a entidade SISTEMA FINANCEIRO recebe um fluxo de dados
MULTA do processo VERIFICAR ATRASO, se partirmos do princpio que esta
MULTA derivada de um clculo dos dias de atraso e do valor atual de multa
ento devemos considerar uma SE tambm.
Desta forma, chegamos concluso que h 2 SEs neste sistema.
Por fim, necessrio contar as consultas externas, que caracterizada por
(Vazques, Simes, & Albert, 2005):
Um processo elementar;
Que envia dados ou informaes de controle para fora da fronteira
da aplicao;
Cuja principal inteno apresentar informao ao usurio por meio de
uma simples recuperao de dados ou informaes de controle de ALIs e/ou
AIEs. A lgica de processamento no deve conter frmulas matemtica ou
clculo, nem tampouco criar dados derivados. Nenhum ALI mantido durante
seu processamento, nem o comportamento do sistema alterado.
66 captulo 3
Tendo em mente todas as informaes que foram faladas anteriormente, ao
analisarmos o sistema em questo possvel perceber que nenhuma das sadas
pode ser caracterizada como como uma consulta externa. Portanto, no conta-
bilizaremos nenhuma consulta externa aqui.
Desta forma, temos a seguinte anlise representada na figura 3.3.
Incluir
Aluno D2 Pedido
Pedido
Emprestar
b. Bibliotecria
D3 Acervo
Livro
D4 Emprstimo
Cadastrar
Livro
vericar
Atrasos
Emprstimos
Legenda Multa
ALI SE
c. Sistema
AIE CE
Financeiro
EE
captulo 3 67
FATOR DE PONDERAO
FUNES TIPO
CONTAGEM NO
DADO E TIPO SIMPLES MDIO ALTO TOTAL
SISTEMA
TRANSAO
EE 3 3 4 6 9
SE 2 4 5 7 8
CE 0 3 4 6 0
ALI 4 7 10 15 28
AIE 1 5 7 10 5
TOTAL 50
Tabela 3.1 Contagem dos pontos de funo no ajustados utilizando SIMPLES como fa-
tor de ponderao (que deve ser multiplicado pela contagem). Utilizamos desta forma por
que o DFD no trouxe informaes para a realizao do clculo da complexidade das fun-
es de dado e de transao. Baseado em (Universidade Estcio de S, 2015)
68 captulo 3
Tendo em vista essas suposies acima realizadas, sugere-se a seguinte me-
dio das configuraes gerais do sistema.
PF_Desenvolvimento = PFNA*Fator_de_Ajuste
captulo 3 69
3.2 Discusses iniciais sobre estimativas.
Magnfico, chegamos ao valor de pontos de funo do sistema analisado.
Mas, ficam as perguntas: o que esse nmero quer dizer? O que devemos fa-
zer agora?.
Na verdade, como dito anteriormente, este nmero mede a complexidade
funcional do software em questo, e, indiretamente, mede o seu tamanho.
Se pudssemos fazer uma analogia com outra mtrica, poderamos utilizar
por exemplo a medida de distncia entre dois pontos. No entendeu ainda?
Vamos melhora a explicao.
Imagine que voc queira medir a distncia, em linha reta, entre o Rio de
Janeiro e Londres (na Inglaterra) utilizando o sistema internacional de medi-
das conhecido como MKS (metro, kilo e segundos). Olhando rapidamente na
Internet pode-se constatar que a distncia em linha reta de:
Resultado
Distncia: 9182 Km
Azimute: 25
Figura 3.4 Distncia entre Rio de Janeiro e Londres em linha reta- uma mtrica de tama-
nho (HorlogeParlante, 2015)
Ou seja, 9.182.000 metros. Veja que esta medida, assim como os pontos de
funo, mede o tamanho de algo. Assim, os 9.182.000 metros medem a distn-
cia entre duas cidades e os 48,5 pontos de funo o tamanho (de forma indireta)
do sistema que analisamos.
Um ponto interessante a se salientar que ambas as medidas acima so
feitas com mtricas que possibilitam que novas medidas cheguem ao mesmo
resultado, ou seja, se outra pessoa realizar a medida (de forma correta) ambas
chegaro aos mesmos nmeros.
70 captulo 3
Com esta medida de tamanho podemos fazer previses, ou melhor, esti-
mativas de vrios aspectos. Por exemplo, com a medida da distncia entre Rio
de Janeiro e Londres podemos tentar prever qual seria o tempo gasto por uma
pessoa que sai do Rio de Janeiro com destino a Londres. Como vimos no captu-
lo anterior, podemos fazer esta estimativa utilizando uma paramtrica propor-
cional, queremos dizer, basta entender qual a velocidade que a pessoa viaja
para depois pegar a medida da distncia e dividir por este valor de velocidade.
Veja a tabela 3.3 que mostra velocidades e tempo estimado para a viagem
dependendo do meio de transporte.
Tabela 3.3 Estimativas de tempo para percorrer o percurso entre Rio de Janeiro e Londres
captulo 3 71
as duas cidades. Portanto, da mesma foram, podemos procurar calcular vrias
estimativas. Podemos por exemplo tentar estimar o nmero de linhas de cdi-
go que este software ter.
Existem diversos estudos que indicam, dependendo da linguagem de pro-
gramao, a quantidade de linhas de cdigo prevista para o sistema baseando-
se no nmero de pontos de funo medidos para o sistema antes da sua imple-
mentao. Abaixo, na mostramos os nmeros de LOC/FP segundo (Pressman,
2011).
LOC/PF
LINGUAGEM DE
MDIA MEDIANA BAIXA ALTA
PROGRAMAO
JAVA 63 53 77
C++ 66 53 29 178
VISUAL BASIC 47 42 16 158
C 162 109 33 704
ADA 154 - 104 205
COBOL 77 77 14 400
CLIPPER 38 39 27 70
INFORMIX 41 31 24 57
LOTUS NOTES 21 22 15 25
72 captulo 3
Utilizando o dado informado no pargrafo anterior, quanto voc estimaria
que seria o esforo em horas para o desenvolvimento do software do nosso es-
tudo de caso?
Bom, se voc respondeu 577,15 horas ento voc acertou! Voc deve ter
chegado a este nmero fazendo o seguinte clculo: multiplicando os pontos
de funo ajustados encontrados no nosso estudo de caso, que foi de 48,5, por
11,9 horas/fp que o trabalho de (Aguiar, 2004) nos indicou. Parabns!
importante lembrar aqui que esta estimativa considera que a capacidade
de desenvolvimento do time constante, ou seja, sempre ser de 11,9 horas/
FP. H outros mtodos de estimativa, como o COCOMO II, que buscam realizar
estimativas que levam em considerao mais fatores e por isso geram uma pa-
ramtrica no proporcional e que tambm podem ser utilizadas para a estima-
tiva de tempo e custo de sistemas.
Por exemplo, sabemos que equipe de desenvolvimento no costumam se
comportar de forma proporcional medida que inserimos mais pessoas, ou
seja, uma pessoa desenvolveria o software em questo em 577,15 horas, se co-
locarmos mais uma pessoa na equipe, a estimativa paramtrica proporcional
que estamos utilizando sugeriria que ento o software seria desenvolvido em
288,58 horas. Contudo, como dissemos, raramente uma equipe se comporta
de forma proporcional e provavelmente este nmero estaria equivocado. Por
isso recomenda-se tambm o uso de outros mtodos de estimativa de software,
como o COCOMO II.
Imagine agora que voc precise tambm estimar o custo do desenvolvimen-
to deste software. Para tal, tambm podemos realizar a estimativa paramtrica
proporcional utilizando o custo/hora. Por exemplo, suponha que o software
em questo seja desenvolvido em uma empresa no qual o custo operacional de
desenvolvimento de software seja de R$ 100,00/hora. Ento, qual seria o custo
estimado para a produo do software em questo?
Se voc disse R$ 57.715,00 ento voc acertou. Para chegar neste nmero
voc provavelmente multiplicou a quantidade de horas estimadas (577,15)
pelo custo por hora de desenvolvimento da empresa em questo. Parabns,
isso mesmo!
captulo 3 73
3.3 Outros tipos de contagem de pontos de
funo.
No captulo anterior foi falado a voc que a anlise de ponto por funo pode
ser feita para 3 tipos de situaes, a saber: projeto de desenvolvimento, projeto
de melhoria, aplicao.
Para a anlise de pontos de funo para projeto de desenvolvimento foi
falado no captulo anterior a sua formula e neste captulo foi realizado um estu-
do de caso bastante interessante para este tipo de anlise de pontos de funo.
Contudo, no foi dito ainda as frmulas e aspectos de contagem para os
outros tipos de projetos. Ento, vamos abaixo discutir um pouquinho as duas
situaes restantes.
74 captulo 3
Deve ser considerado que uma funo do tipo dado (ALI ou AIE) foi alterada
quando ela foi modificada em sua estrutura com alguma incluso, alterao ou
excluso de campos ou atributos.
Frmula para clculo :
EFP = [(ADD + CHGA + CFP) * VAFA] + (DEL * VAFB)
Onde:
EFP Nmero de pontos de funo do projeto de melhoria;
ADD Nmero de pontos de funo no ajustados das funes includas
pelo projeto de melhoria;
CHGA Nmero de pontos de funo no ajustados das funes modifica-
das depois das modificaes;
CFP - Nmero de pontos de funo no ajustados adicionados pela converso;
VAFA Valor do fator de ajuste da aplicao depois do projeto de melhoria;
DEL - Nmero de pontos de funo no ajustados das funes excludas
pelo projeto de melhoria;
VAFB Valor do fator de ajuste da aplicao antes do projeto de melhoria.
(Universidade Estcio de S, 2015)
Para calcular os pontos de funo de uma aplicao existem duas frmulas que
so utilizadas.
Frmula para Contagem Inicial representa todas as funcionalidades re-
queridas pelo usurio de uma aplicao instalada. As funes da converso
de dados no devem ser computadas no tamanho da aplicao entregue, pois,
elas existiro somente para o processo de implantao do aplicativo (Vazques,
Simes, & Albert, 2005).
AFP = ADD * VAF
Onde:
AFP Nmero de pontos de funo ajustados da aplicao;
ADD Nmero de pontos de funo no ajustados das funes instaladas;
VAF Valor do fator de ajuste da aplicao.
Frmula usada aps o projeto de melhoria Aps a concluso de um pro-
jeto de melhoria, os pontos de funo devem ser atualizados para refletir as
captulo 3 75
mudanas na aplicao. Novamente, as funes de converso de dados no de-
vem ser computadas, pois, elas no fazem parte da aplicao (VAZQUEZ, 2005).
AFP = [(UFPB + ADD + CHGA) (CHGB + DEL)] * VAFA
Onde:
AFP Nmero de pontos de funo ajustados da aplicao
UFPB Nmero de pontos de funo no ajustados da aplicao antes do
projeto de melhoria;
ADD Nmero de pontos de funo no ajustados das funes includas
pelo projeto de melhoria;
CHGA Nmero de pontos de funo no ajustados das funes modifica-
das depois do seu trmino;
CHGB Nmero de pontos de funo no ajustados das funes modifica-
das antes do seu trmino;
DEL - Nmero de pontos de funo no ajustados das funes excludas
pelo projeto de melhoria;
VAFA Valor do fator de ajuste da aplicao depois do projeto de melhoria.
(Universidade Estcio de S, 2015)
MULTIMDIA
Gostou do estudo de caso que foi mostrado neste captulo e tambm das outras formas
que existem e contagem da anlise de pontos de funao, a saber: projeto de melhoria,
aplicao?
Sim! timo. Ento acho que voc tambm ir gostar de ver mais um exemplo prtico de
uma contagem de pontos de funo que mostra o processo para os 3 tipos que estudamos:
projeto de desenvolvimento, projeto de melhoria e aplicao.
Para acessar esta aplicao basta clicar neste link:
https://www.youtube.com/watch?v=T2NShJoKJqI
Bom estudo!
76 captulo 3
ATIVIDADES
01. Calcule a estimativa de tempo e custo para um sistema desenvolvido em C++ conside-
rando as caractersticas abaixo. Utilize o mtodo paramtrico proporcional.
PESO PESO
CGS CGS
ATRIBUDO ATRIBUDO
Comunicao de dados 3 Atualizao on-line 5
Processamento distribudo 3 Processamento complexo 5
Desempenho 3 Reutilizao de cdigo 5
Configurao altamente utilizada 3 Facilidade de implantao 1
Volume de transaes 1 Facilidade operacional 1
Entrada de dados on-line 1 Mltiplos locais 5
Eficincia do usurio final 1 Facilidade de mudanas 5
TOTAL
02. Calcule a estimativa de tempo e custo para um sistema desenvolvido em COBOL consi-
derando as caractersticas abaixo. Utilize o mtodo paramtrico proporcional.
captulo 3 77
PESO PESO
CGS CGS
ATRIBUDO ATRIBUDO
Comunicao de dados 5 Atualizao on-line 5
Processamento distribudo 5 Processamento complexo 5
Desempenho 5 Reutilizao de cdigo 5
Configurao altamente utilizada 5 Facilidade de implantao 5
Volume de transaes 5 Facilidade operacional 5
Entrada de dados on-line 5 Mltiplos locais 5
Eficincia do usurio final 5 Facilidade de mudanas 5
TOTAL
05. Alm da estimativa paramtrica proporcional que aprendemos neste captulo, h uma
outra forma de se estimar esforo de software? Qual seria?
REFLEXO
Parabns, voc chegou ao final de mais um captulo, estamos muito orgulhosos de voc.
J percebeu que voc acabou de ultrapassar o marco de metade desta disciplina?
verdade, voc inclusive j caminhou um pouco mais do que a metade.
E voc j percebeu o quanto voc aprendeu? No? Ento vamos ajud-lo a se lembrar.
Veja, at o captulo anterior voc j aprendeu as definies de medidas e mtricas e
tambm a importncia de se medir na engenharia de software.
Tambm aprendeu a classificar os tipos de mtricas que existem na engenharia de soft-
ware segundo a viso de um dos principais autores: Pressman.
Na sequncia voc aprendeu uma nova mtrica, o pontos de funo e tambm apren-
deu todo o procedimento de como realizar uma anlise de pontos de funo em um deter-
minado sistema.
Porm, devo concordar contigo, que at o final do captulo anterior tudo estava muito
terico, correto? Mas neste captulo fomos da teoria prtica usando um exemplo de um
software bastante simples no que tange a quantidade de requisitos para realizar a anlise de
pontos de funo de software. E veja voc, fomos at o final. Executamos todos os passos
do processo.
78 captulo 3
De quebra, tambm iniciamos as discusses sobre estimativas de software. Na verdade,
colocamos a parte mais simples, que a utilizao de tcnicas paramtrica proporcionais
para a realizao de estimativas. Para fazer isso at relacionamos transformao de PF para
LOC para diversas linguagens. Acredito que tenha sido um dos pontos alto deste captulo
para voc, no foi mesmo?
Agora que voc j sabe medir o tamanho e complexidade funcional de sistemas, preci-
samos, nos prximos captulos, nos preocupar em afinar contigo as tcnicas de estimativa de
esforo de desenvolvimento de software, agora no mais apenas baseado em tcnicas pa-
ramtricas proporcionais simples, mas utilizando modelos mais refinados como o COCOMO
II e tcnica estatstica mais apuradas.
, j percorremos bastante o conhecimento necessrio para a disciplina at aqui, mas
isto no quer dizer que no haja mais coisas interessantes pela frente para finalizarmos
o curso.
Por isso, chega de papo e vamos continuando. Bom estudo!
LEITURA
No incio deste captulo voc estudou um estudo de caso que tinha um modelo bastante co-
nhecido na computao: o DFD (diagrama de fluxo de dados). Voc conhece este diagrama
e esta tcnica de modelagem?
Caso no conhea, uma leitura interessante que indicamos o livro Anlise Estruturada
de Sistemas da autora Chris Gane. Neste livro voc encontrar conhecimentos interessan-
tes sobre a anlise estruturada sendo que o DFD um dos diagramas desta anlise que
muito bem explicado, com exemplos inclusive, neste livro que indicamos. Boa leitura!
REFERNCIAS BIBLIOGRFICAS
Aguiar, M. (2004). Functions Point in Brazil. Conference Proceedings IFPUG 2004. Fonte: http://
www.ifpug.org/Conference%20Proceedings/IFPUG-2004/IFPUG2004-01-Aguiar-function-points-in-
Brazil.pdf
HorlogeParlante. (30 de 08 de 2015). Clculo da distncia entre duas cidades. Fonte:
HorlogeParlante: http://www.horlogeparlante.com/dist%C3%A2ncia-c%C3%A1lculo.html
IFPUG International Function Point Users Group. (1999). Function Point Counting Pratices Manual.
. Ohio: IFPUG.
captulo 3 79
Pressman, R. (1995). Engenharia de Software. Sao Paulo: Pearson Makron Books.
Pressman, R. (2006). Engenharia de Software. So Paulo: McGraw-Hill.
Pressman, R. (2011). Engenharia de Software - Uma abordagem profissional. So Paulo:
McGraw Hill - ARTMED.
Universidade Estcio de S. (20 de 08 de 2015). Contedo on line da disciplina Medidas de
Esforo de Desenvolvimento de Software. Fonte: Estcio WebAula.
Vazques, C. E., Simes, G. S., & Albert, R. M. (2005). Anlise de Pontos de Funo: medio,
estimativas e gerenciamento de projetos de software. So Paulo: rica.
Wikipedia. (29 de 08 de 2015). Wikipidia-Diagrama de fluxo de dados. Fonte: https://pt.wikipedia.
org/wiki/Diagrama_de_fluxo_de_dados
80 captulo 3
4
Tcnicas de
Estimativa de
Esforo e Custo
Voc j quase um Jedi em medidas de esforo de desenvolvimento de softwa-
re. Olha s at onde chegou voc. Grande caminhada voc fez!
No captulo anterior fizemos um mergulho profundo na tcnica de pontos de
funo, agora, neste captulo, trataremos de como esta tcnica pode ser utili-
zada para a realizao de estimatitvas de esforo/tempo e custo em projetos de
desenvolvimento de software.
Bom estudo!
OBJETIVOS
Este captulo possui por objetivo:
Introduzir o conceito de tcnica de estimativa;
Apresentar o PMI e o PMBOK.
Apresentar os conceitos de tcnicas de estimativa de tempo/esforo e custo segundo
o PMBOK.
Gerar competncia no aluno para a execuo de estimativas utilizando as tcnicas defen-
didas pelo PMBOK.
82 captulo 4
4.1 Tcnicas de estimativa uma introduo.
Ol caro aluno! Vamos neste captulo falar um pouco sobre a aplicao de tc-
nicas de estimativa.
J parou para pensar o que uma estimativa? Lgico que sim, no ver-
dade? No captulo anterior fizemos uma pequena discusso sobre a diferente
entre estimativa e mtrica e voc j sabe que estimativa algo que traz consigo
um grau de incerteza, mas que de certa forma calculada em cima de mtricas
e medidas atuais e/ou de bases histricas.
Por exemplo, possvel realizar uma estimativa de quanto ir chover em
uma determinada poca do ano que vem baseando-se nas medidas de quanto
choveu (medida) nesta mesma poca em anos anteriores.
Contudo, se fizermos uma anlise dos ltimos anos pode ser que nos depa-
remos com vrios valores e ficaria difcil escolher um para usar como previso
no ano que vir. Ento, o que os engenheiros e estatsticos fazem buscar uma
equao que modele o comportamento dos dados medidos (as vezes inclusive
baseados em outras variveis que influenciam a que estamos estimando por
exemplo a quantidade que choveu no perodo imediatamente anterior) para en-
to fazer uma projeo em tempo futuro de como os dados se comportariam.
Nos aprofundaremos nestas tcnicas estatsticas de estimativa mais a frente, no
captulo 5, contudo, j neste captulo, falaremos sobre os tipos possveis (no esta-
tsticas) de estimativas consideradas em projetos pelo PMBOK (PMI, 2013) e depois,
tambm no captulo 5, falaremos de um mtodo especfico que o COCOMO II.
Ento, vamos seguindo por que tem bastante conhecimento importante e
interessante para voc aprender e depois poder colocar em prtica na sua em-
presa e na sua equipe de desenvolvimento de software.
captulo 4 83
Porm, antes de falarmos especificamente das tcnicas, achamos interes-
sante voc entender um pouco sobre o prprio PMI e o PMBOK, segundo a viso
de (Martins, 2010).
O PMI uma organizao sem fins lucrativos, dedicada ao avano do estado
da arte em gerenciamento de projetos mantendo como compromisso promo-
ver o profissionalismo e a tica em gerenciamento de projeto.
Foi inicialmente criado na Pensilvnia (EUA) em 1969 por 5 voluntrios e
hoje conta com uma comunidade de 265.000 associados e 140.000 certificados
sendo considerada a maior e mais acreditada instituio de educao e desen-
volvimento de padres em gerncia de projetos.
REFLEXO
Em 1969 acontecia no mundo a Guerra Fria, a corrida armamentista e a corrida espacial nos
quais vrios projetos de grande porte estavam sendo executados, como por exemplo: a ida
do homem ao espao, a ida do homem lua, projetos blicos, projetos de infraestrutura como
hidroeltricas, portos, siderrgicas e outros.
Com tantos projetos acontecendo a necessidade de um bom gerenciamento para au-
mentar ficou bvia e da ento o surgimento e rpido crescimento do PMI como sendo uma
organizao que pesquisa e batalha pela profissionalizao do gerenciamento de projeto no
mundo e sempre est na vanguarda do estado da arte do gerenciamento de projetos.
84 captulo 4
Chapter Chapter
CE GO
Chapter Chapter
ES SC
Chapter Chapter
DF AM
PMI
Chapter Chapter
BA MG
Chapter Chapter
SP PR
Chapter Chapter
RJ PE
Chapter
RS
Figura 4.1 Captulos PMI Brasil
captulo 4 85
Ou seja, o que apresentado pelo PMBOK Guide amplamente testado
pelos praticantes de gerncia de projetos e aprovadas por eles sendo considera-
das boas prticas para a gerncia de projeto em muitos projetos na maior parte
do tempo, sendo que existe um consenso por parte dos praticantes sobre seus
valores e aplicabilidade.(PMI, 2013)
O PMBOK Guide, alm de trazer esse conjunto de boas prticas, tambm
busca estabelecer uma linguagem comum para o profissional de gerenciamen-
to de projeto. (PMI, 2013)
O PMI diz que o PMBOK Guide no deve ser considerado como um do-
cumento que contempla a totalidade de conhecimento de gerenciamento de
projetos, uma vez que essa profisso muito dinmica e sofre atualizaes a
todo o momento.
As boas prticas de gerenciamento de projetos so estruturadas no PMBOK
Guide em por meio de 10 grandes reas, a saber:
Gerenciamento da Integrao do Projeto;
Gerenciamento do Escopo do Projeto;
Gerenciamento do Prazo do Projeto;
Gerenciamento do Custo do Projeto;
Gerenciamento da Qualidade do Projeto;
Gerenciamento de Recursos Humanos do Projeto;
Gerenciamento da Comunicao;
Gerenciamento dos Riscos do Projeto;
Gerenciamento de Aquisies.
Gerenciamento de partes interessadas. (PMI, 2013)
86 captulo 4
Viso geral do gerenciamento
do tempo do projeto
captulo 4 87
Viso geral do gerenciamento
dos custos do projeto
Planejar o Determinar o
gerenciamento dos custos Estimar os custos
oramento
3. Sadas
.1 Informaes sobre o
desempenho do trabalho
.2 Previses de custos
.3 Solicitaes de mudana
.4 Atualizaes no plano de
gerenciamento do projeto
.5 Atualizaes nos documen-
tos do projeto
.6 atualizaes nos ativos de
processos organizacionais
88 captulo 4
Perceba a preocupao da estimativa no planejamento de tempo e custo.
Na gesto de tempo h o processo de estimar recursos e o processo de estimar
tempo, j na gesto de custo h o processo de estimar custo. Vamos nos ater
nos processos de estimar tempo e custo.
Olhando mais detalhadamente possvel perceber, principalmente nos
processos de gesto de tempo, que a sequncia sugerida (e no obrigatria) dos
processos acontece de tal forma que quando se alcana o processo 6.5, estimar
a durao das atividades j tudo esta preparado para a aplicao das tcnicas
de estimativas em questo, que a propsito se repetem no processo 7.2, esti-
mar custo que so:
Opinio especializada;
Estimativa anloga;
Estimativa paramtrica;
Estimativa de 3 pontos;
Tcnicas de tomada de deciso em grupo;
Anlise de reservas.
captulo 4 89
Empresa: Podemos tentar sim. Por favor nos responda, quais mdulos o
sr. Gostaria de ter no seu sistema de comrcio eletrnico?
Cliente: Pois bem, gostaria de possuir no lado da administrativo um mdu-
lo de cadastro de produto, promoes (cdigo de promoes) e CRM. Do lado
do cliente o sistema de carrinho de compras.
Empresa: Entendemos a sua necessidade. No passado, fizemos um siste-
ma muito parecido com este que pretende desenvolver. Para tal, foram neces-
srias 1000 horas de esforo de desenvolvimento que performamos em aproxi-
madamente 2 meses com uma equipe de 3 pessoas. O custo final para o cliente
foi de R$ 100.000,00.
Cliente: Ok, obrigado. Agora consigo finalizar o meu plano de negcios,
caso ele seja aprovado venho at aqui para realizarmos uma estimativa mais
precisa de +ou- 5%.
Voc acha que no dialogo acima com o que a empresa que est vendendo o
software fez foi um chute ou uma estimativa?
Sabemos que voc pode ter respondido um chute, principalmente por
que pelo dilogo parece que a empresa cedeu a uma presso do cliente em de-
terminar o prazo.
Contudo, perceba no dilogo que a estimativa saiu com base em um projeto
passado, que provavelmente no igual ao projeto atual, mas parecido, ou
seja, anlogo.
Ento podemos dizer que a situao anterior retratou uma estimativa an-
loga, que usa valores de um projeto anterior semelhante ao atual para estimar
valores do atual como esforo, custo, oramento, durao e outros.
Normalmente a tcnica de estimativa anlogo no muito precisa e por isso
utilizada nas fases iniciais do projeto, quando h poucas informaes dispo-
nveis (conhecidas) sobre o projeto. ento entendida como uma estimativa
de ordem de magnitude com uma margem de erro de -50% a +75%. (PMI, 2013)
(BARBOSA, ABDOLLAHYAN, DIAS, & LONGO, 2007).Em contrapartida, um
tipo de estimativa bastante prtica e rpida e por isso utilizada.
Obviamente quanto mais parecido os dois projetos forem, maior ser a pre-
ciso da estimativa e embora seja uma tcnica quase sempre aplicada para se
estimar o projeto como um todo em uma abordagem top-down (veremos mais
frente o que isto quer dizer) ela tambm pode ser aplicada para partes do pro-
jeto e tambm em conjunto com outras tcnicas.
90 captulo 4
Mas a fica a pergunta: h uma outra tcnica que pode ser utilizada para
conseguirmos estimativas mais precisas? .
H, vamos estuda-las em seguida!
captulo 4 91
Fizemos tambm uma anlise de riscos por meio da qual foi possvel reali-
zar uma anlise de reservas para os riscos identificados e que responderemos
ativamente caso ocorram. Como as informaes que nos foram passadas esto
bem detalhadas, os riscos foram poucos e a anlise de reserva nos apontou buf-
fers que correspondem a 5% tanto de tempo quanto de custo.
Como temos a disponibilidade de montar uma equipe de 4 pessoas para o
seu projeto e considerando um esforo j com as reservas de 1444 horas estima-
mos uma durao de aproximadamente 3 meses. um pouco mais do que os
2,25 meses que uma conta rpida responderia, mas temos que nos atentar ao
diagrama de redes do projeto e ao seu caminho crtico.
Referente aos custos, a nossa hora de desenvolvimento de R$ 100,00, desta
forma, j incluindo as reservas, poderamos fazer o software por R$ 144.400,00.
Cliente: Muito bom, entendi a lgica da sua estimativa e consideraremos a
sua empresa na concorrncia que estamos montando. Obrigado!
Esta uma tcnica que pode oferecer um grau de preciso muito maior do
que a anloga, mas dependente de dois aspectos:
1. Da qualidade da medida de tamanho do trabalho a ser realizado que
produzida.
2. Da qualidade da base histrica de produtividade unitria que ser utili-
zado para a multiplicao pelo tamanho.
92 captulo 4
IV. Anlise de reservas
Percebeu no item anterior que a estimativa paramtrica costuma ser bem pre-
cisa? Lgico que sim. Tambm deve ter percebido que este tipo de estimativa
muito utilizado no ramo da engenharia civil, certo? Costumamos dizer que
este tipo de estimativa a estimativa do pedreiro, ou seja, quando o pedreiro
precisa cobrar o servio ou ver tempo que leva para executar o servio quase
sempre ele faz uma medida de tamanho de rea e multiplica por uma produti-
vidade histrica dele.
Bom, se a estimativa paramtrica to precisa e esta tcnica utilizada em
obras, por que ento as obras costumam atrasar tanto? Pelo menos este o
mito popular dito.
Acontece que estimar durao e estimar esforo so coisas diferentes.
Primeiro precisa analisar se as medidas de tamanho realizadas so boas e
se a base histrica tambm de qualidade. Na verdade, no ramo de engenharia
civil, ambos costumam ser de boa qualidade, o que nos confere estimativas de
esforo razoveis. Contudo, a durao depende do esforo e tambm de uma
anlise de risco, uma vez que se tudo ocorrer bem este esforo poder ser exe-
cutado em oito horas dirias, por exemplo, sem interrupo, no entanto, caso
chova (por exemplo) o pedreiro ter que interromper o trabalho, afetando a du-
rao. Ou ento, caso algum retrabalho seja necessrio, por baixa qualidade de
execuo, a durao e o esforo sero afetados.
Ento, para melhorar a estimativa, a tcnica de anlise de reserva pode ser
utilizada (e tambm a tcnica de anlise de 3 pontos que veremos mais adiante)
e consiste na adio de reservas de tempo (ou buffers ou ainda reservas para
contingencia) s estimativas para contingenciar o risco das incertezas do cro-
nograma. (PMI, 2013)
A quantidade desta reserva pode ser um nmero fixo por tarefa, uma por-
centagem por tarefa ou ainda pode ser adquirido por meio de uma anlise utili-
zando mtodos quantitativos.(BARCAUI, BORBA, SILVA, & NEVES, 2007)
Porm, importante que voc entenda que esta anlise de reserva no pode
ser considerada uma gordura no planejamento. Ela deve vir de uma anlise
de risco, principalmente considerando tcnicas como o VME (valor monetrio
esperado - no caso de custo) calculadas para os riscos para os quais a resposta
foi uma aceitao ativa por meio de plano de contingncia.
captulo 4 93
V. Estimativa de 3 pontos
CONCEITO
Distribuio Normal
Uma varivel aleatria contnua x tem distribuio Normal se sua funo densidade de
probabilidade for dada por:
1 1 x 2
f (x) = exp , x ( , ) .
22 2
Usamos a notao X N ( , 2 )
94 captulo 4
Normal Padro
0,4
0,3
Densidade (x)
0,2
0,1
0,0
4 2 0 2 4
captulo 4 95
estimativa de intervalo de tempo que mais provvel de ocorrer. Ela funciona
assim (Mulcahys, 2011) :
1. Cada atividade deve ser estimada pensando em 3 possibilidades, a sa-
ber: a pessimista, a otimista e a mais provvel. Vamos para um exemplo:
a) para uma atividade de se desenvolver a tela de cadastro de funcion-
rio um determinado desenvolvedor estimou (utilizando pontos por fun-
o e o histrico de produtividade de desenvolvimento dele) que o mais
provvel seria terminar a tarefa em 12 horas.
b) Contudo, ele pesquisou em sua base histrica e j houve momentos
em que a produtividade dele foi bem maior, sendo que se ele atingisse
novamente aquela produtividade provavelmente terminaria em 6 horas.
c) Mas, tambm verificou que em determinados momentos passados,
em virtudes de outras variveis, a produtividade dele no foi to boa, sen-
do que se isso se repetisse ele terminar a 25 horas.
d) Desta forma, as estimativas para esta atividade ficaram assim:
( P + 4 MP + 0 )
DEA =
6
( 25 + 4 12 + 6 )
DEA = = 13,7
6
96 captulo 4
seu grau de confiana. Para calcular o desvio padro a frmula abaixo deve
ser utilizada:
a)
(P 0)
=
6
( 25 6 )
= = 3,17
6
b)
SIGMA CONFIABILIDADE
1 SIGMA 68,26%
2 SIGMA 95,44%
3 SIGMA 99,74%
6 SIGMA 99,99985%
captulo 4 97
c) A mostra a tabela acima de forma grfica, perceba que quanto mais
sigmas (desvio padro) consideramos no intervalo, maior a abran-
gncia da curva normal considerada e ento maior a confiabilidade
da estimativa.
99,74%
95,44%
68,26%
3 2 + + 2 + 3
98 captulo 4
encontrar a VARINCIA de cada uma das atividades, soma-las, e depois
tirar a raiz quadrada para encontrar o desvio padro do projeto. Vamos l!
c) A VARINCIA de cada atividade dada pela frmula:
2
(P 0)
Vari ncia da Atividade =
6
CONCEITO
Caminho crtico do projeto
O caminho crtico a sequncia de atividades que devem ser concludas nas datas progra-
madas para que o projeto possa ser concludo dentro do prazo final. Se o prazo final for ex-
cedido, porque no mnimo uma das atividades do caminho crtico no foi concluda na data
programada. importante entender a sequncia do caminho crtico para saber onde voc
tem e onde voc no tem flexibilidade. Por exemplo, voc poder ter uma srie de atividades
que foram concludas com atraso, no entanto, o projeto como um todo ainda ser concludo
dentro do prazo, porque estas atividades no se encontravam no caminho crtico. Por outro
lado, se o seu projeto est atrasado, e voc alocar recursos adicionais em atividades que no
esto no caminho crtico no far com que o projeto termine mais cedo. (Wikipedia, 2015)
captulo 4 99
VI Opinio especializada e tcnicas de tomada de deciso em
grupo
CONEXO
No tpico anterior voc viu que para gerenciar melhor as opinies e ideias de um grupo
de pessoas algumas tcnicas podem ser utilizadas como brainstorm, tcnica Delphi e Gru-
po Nominal.
Quer saber um pouco mais sobre essas tcnicas? Ento acesse os links abaixo e
bons estudos.
Brainstorm:http://goo.gl/oW9U89
Tcnica Delphi:http://goo.gl/rh38sJ
Grupo Nominal: http://goo.gl/dn9xhL
100 captulo 4
e quanto para acabamento ele poderia utilizar a estimativa anloga top-down
e dividir o R$ 1.000.000,00 de acordo com sua opinio especializada de obras
anteriores percentualmente e dizer, por exemplo, que normalmente para uma
obra daquele tipo e porte gasta-se 20% em fundamento e 35% em acabamento
(valores didticos apenas para exemplificar a tcnica de top-down).
ATIVIDADES
01. Para o projeto exemplo que enunciamos no tpico de estimativa de 3 pontos, calcule o
intervalo para 2 sigmas, 4 sigmas e 6 sigmas conforme abaixo:
INTERVALO
PROJETO DEP D. PAD. PROJETO VAR PROJETO ESTIMATIVA
PROJETO
1 SIGMA 170,17 10,06 101,20 160,11 a 180,23
2 SIGMA 170,17 10,06 101,20
4 SIGMA 170,17 10,06 101,20
6 SIGMA 170,17 10,06 101,20
captulo 4 101
02. Um projeto possuir 4 atividades com dependncia incio-fim em seu caminho crtico, a
saber: A, B, C e D. A atividade A foi estimada para ser realizada em 20 horas na melhor das
hipteses, 80 horas na pior e 70 na mais provvel. Da mesmo forma, a atividade B, que ser
executada aps a A, foi estimada em 80 horas na melhor das hipteses, 90 horas na pior
e 88 na mais provvel. J a atividade C, que ser executada imediatamente aps o trmino
da atividade B foi estimada em 50 horas na melhor das hipteses, 85 horas na pior e 60
na mais provvel. E a atividade D, que dever ser executada logo aps a atividade C foi
estimada em 30 horas na melhor das hipteses, 40 horas na pior e 32 na mais provvel.
Calcule o que se pede:
a) O DEA de cada uma das atividades.
b) O desvio padro de cada uma das atividades.
c) A varincia de cada uma das atividades.
d) O intervalo estimado de cada uma das atividades para a confiabilidade de 1 sigma.
e) A durao total do projeto.
f) O desvio padro do projeto.
g) O Intervalo de durao do projeto para 1, 2, 4 e 6 sigmas de confiabilidade.
INTERVALO
PROJETO DEP D. PAD. PROJETO ESTIMATIVA
PROJETO
1 SIGMA
2 SIGMA
4 SIGMA
6 SIGMA
03. Voc estudou nos captulos anteriores sobre os pontos de funo e aprendeu que esta
uma mtrica indireta para se medir o tamanho do software. Agora voc estudou vrias tc-
nicas de estimativa. Como voc usaria os pontos de funo para estimar software e com qual
das tcnicas de estimativa voc considera que os pontos de funo trabalhariam melhor?
102 captulo 4
04. Qual tcnica de estimativa mais precisa: paramtrica ou anloga? Explique a
sua resposta.
05. Qual tcnica voc utilizaria em conjunto com a tcnica de 3 pontos para realizar as esti-
mativas mais provvel, otimista e pessimista? Por que?
06. Leia o dilogo abaixo e responda qual tcnica de estimativa foi utilizada pela empresa.
Famlia: Ol, boa tarde. Tudo bem? Viemos aqui por que gostaramos de fazer um pas-
seio pelas dunas do deserto da cidade. Esta agncia de turismo realiza o passeio?
Atendente da agncia de turismo: Ol, tudo bem sim, espero que com vocs tambm.
A nossa agncia faz o passeio sim. Voc deseja faz-lo quando? .
Famlia: Gostaramos de fazer amanh pela manh. O problema que o nosso voo de
volta para nossa cidade sai s 17:30. Voc acredita que haja tempo para fazermos o passei
completo? .
Atendente da agncia de turismo: Acredito que sim, aguarde apenas um momento.
Depois de 5 minutos ...
Atendente da agncia de turismo: Conversei com os animadores de turismo que
costumam realizar esse passeio com os nossos clientes e eles disseram que normalmente
uma famlia de 3 pessoas como a de vocs costuma fazer o passeio em 4 horas. Assim, caso
vocs se decidam pelo passei acreditamos que saindo s 08:00 vocs conseguiro finalizar
o passei e ainda ter um tempo razovel para ir at o aeroporto e no perder o voo.
Famlia: Ok, obrigado. Ficaremos com o passeio. .
captulo 4 103
REFLEXO
Olha s! Estamos impressionados com voc. Conseguiu finalizar mais um captulo e conquis-
tar mais conhecimentos sobre medidas de esforo de desenvolvimento de software. Muito
bom mesmo!
Agora, temos certeza que voc consegue entender que estimar desenvolvimento de soft-
ware no uma coisa impossvel ou algum tipo de magia ou feitiaria, h sim muitas tcnicas
e cincia por trs destas estimativas.
Falamos assim por que na rea de desenvolvimento de software muitos profissionais no
acreditam em estimativas ou pensam que isto impossvel ou invivel.
Na nossa opinio achar que estimar software algo que no funciona ou desnecessrio
pura falta de conhecimento. E se durante esses quatro captulos ns conseguimos fomen-
tar em voc opinio diversa a esta, ento entendemos que fomos bem-sucedidos e que voc
est no caminho certo para realizar o desenvolvimento de softwares profissional.
Mas, isto no quer dizer que sua caminhada chegou ao fim. Ainda temos mais um captulo
para estudar e a sim finalizar a jornada que iniciamos no captulo 1.
Neste captulo estudamos os tipos de estimativas que so utilizadas em gerenciamento
de projetos. Perceba que no estudamos nenhum processo de estimativa em si, mas sim ti-
pos/tcnicas de estimativa e debatemos suas potencialidades e debilidades, quando e onde
utiliz-las.
Agora, voc precisa entender que cada tipo de tcnica estudada aqui pode ser realizada
usando procedimentos de estimativas j consagrados.
Por exemplo, voc aprendeu aqui a tcnica de estimativa paramtrica e viu que esta
tcnica se baseia na medida de tamanho daquilo que se quer estimar e utiliza uma medida
de produtividade histrica unitria para se estimar o esforo. Pois bem, no captulo 5 voc
estudar uma forma de se realizar estimativa paramtrica chamada COCOMO II que foi cria-
da especialmente para se realizar estimativas paramtricas em softwares, ou seja, bastante
especfica para a nossa rea.
Alm disso, voc tambm aprenderar outras tcnicas estatsticas para se realizar estima-
tivas alm de tambm debatermos sobre o controle de prazo e custo por meio da tcnica de
anlise do valor agregado.
Percebeu como ainda temos algumas coisinhas para estudar antes de nos declararmos
experts em medidas de esforo de desenvolvimento de software?
Pois , ento, chega de conversa e vamos ao que interessa: captulo 5, a vamos ns!
Bons estudos!
104 captulo 4
LEITURA
Caso voc queira se aprofundar um pouco mais na gesto de tempo e custo em projetos,
sugerimos a leitura dos livros de Gerenciamento de Custo em Projetos e Gerenciamento de
tempo em Projetos da coleo de gerenciamento de projetos da FGV, a saber:
BARBOSA, C., ABDOLLAHYAN, F., DIAS, P. R., & LONGO, O. C. (2007). Gerenciamento de Custos
em projetos. So Paulo: FGV.
BARCAUI, A., BORBA, D., SILVA, I., & NEVES, R. (2007). Gerenciamento do Tempo em projetos.
So Paulo: FGV.
REFERNCIAS BIBLIOGRFICAS
BARBOSA, C., ABDOLLAHYAN, F., DIAS, P. R., & LONGO, O. C. (2007). Gerenciamento de Custos
em projetos. So Paulo: FGV.
BARCAUI, A., BORBA, D., SILVA, I., & NEVES, R. (2007). Gerenciamento do Tempo em projetos.
So Paulo: FGV.
Martins, M. D. (2010). Gerenciamento de projetos. Ribeiro Preto, So Paulo, Brasil: Uniseb.
Mulcahys, R. (2011). Preparatrio para o exame de PMP. RMC Publications Inc.
PMI. (2013). Um guia de conhecimento em gerenciamento de projetos. Pennsylvania: Project
Management Institute Inc.
Portal Action. (29 de 08 de 2015). Distribuio Normal. Fonte: Portal Action: http://www.
portalaction.com.br/probabilidades/62-distribuicao-normal
Pressman, R. (2006). Engenharia de Software. So Paulo: McGraw-Hill.
Pressman, R. (2011). Engenharia de Software - Uma abordagem profissional. So Paulo:
McGraw Hill - ARTMED.
Wikipedia. (30 de 08 de 2015). Wikipedia. Fonte: Caminho crtico do projeto: https://pt.wikipedia.
org/wiki/Caminho_cr%C3%ADtico
Xavier, C. d. (2014). Metodologia de Gerenciamento de Projetos: Methodware. 3. ed. Editora
Brasport.
captulo 4 105
106 captulo 4
5
Tcnicas de
Estimativas e
Estimativas com
Base Estatstica
isso ai! Voc conseguiu chegar no ltimo captulo do curso. Parabns!
No captulo anterior falamos sobre tcnicas de estimativa de esforo/tempo e
custo genricas abordadas e defendidas pelo PMBOK. Neste captulo vamos en-
tender um tipo de tcnica especfica para software, o COCOMO, o COCOMO II
e o Putnam.
Alm disso voc estudar uma tcnica de controle de projetos bastante inte-
ressante e tambm defendida pelo PMBOK que a tcnica da anlise do valor
agregado, ou EVA.
Bons estudos!
OBJETIVOS
Este captulo possui por objetivo:
Apresentar as tcnicas COCOMO e COCOMO II e ensinar o aluno a como aplica-las.
Dar conhecimento ao aluno sobre gerenciamento de projetos e empresas de software uti-
lizando algumas tcnicas de administrao consagradas, como o ponto de equilbrio, porm
utilizando como parmetro o ponto de funo.
Permitir que o aluno tome contato com alguns mtodos estatsticos, como interpolao e
tambm com a tcnica de valor agregado.
108 captulo 5
5.1 Tcnicas de estimativa continuao.
Ol caro aluno! Vamos neste captulo continuar falando sobre tcnicas de es-
timativa e depois ainda falar sobre algumas tcnicas baseadas em estatstica.
Vamos nos explicar melhor! No captulo anterior tambm falamos sobre
tcnicas de estimativa, correto? Sim. Porm, falamos sobre tcnicas, vamos
dizer, gerais, ou seja, tcnicas que podem ser aplicadas em qualquer tipo de
projeto, seja ele de engenharia civil, naval, mecnica ou de software. Queremos
dizer que no importa o contexto do projeto voc pode aplicar uma tcnica pa-
ramtrica de estimativa ou anloga sem nenhum problema.
Contudo, sabemos que o contexto influencia muito nas estimativas, e se de
repente tivssemos tcnicas de estimativa dependente de contexto, estas pode-
riam ser um pouco mais precisas.
Desta forma, na engenharia de software, alguns acadmicos iniciaram es-
tudos para fazer, por exemplo, uma tcnica paramtrica mais especfica para
trabalhar com o desenvolvimento de software, como o caso do COCOMO II. E
so exatamente essas tcnicas que iremos nos aprofundar agora.
Alm disso, tambm gostaramos que voc tivesse algum conhecimento so-
bre outras tcnicas de estimativa com base estatstica e iremos estuda-las tam-
bm aqui neste captulo.
Por fim, h outro assunto importante que no trata especificamente sobre
estimativa e medidas de esforo, mas sim sobre o acompanhamento do projeto
no que diz respeito a comparar as estimativas realizadas com o que est sendo
executado e entender o quanto o projeto est andando dentro do planejado.
essas tcnicas se d o nome de controle de projeto e uma das mais famosas (e uti-
lizadas) o EVA (valor agregado) que enunciada dentro do PMBOK (PMI, 2013).
Viu quantas coisas legais temos pela frente? Ento, vamos iniciar os nos-
sos estudos!
5.2 COCOMO
Como vimos na introduo deste captulo, vamos estudar algumas tcnicas pa-
ramtricas de estimativas que so bem aderentes ao processo de desenvolvi-
mento de software e foram criadas especialmente para ele.
captulo 5 109
importante voc saber que estes modelos que estudaremos daqui para
frente so modelo de estimativa para software que usam frmulas empirica-
mente derivadas (estudaremos mais adiante as interpolaes que nos permi-
tem isso) de um conjunto limitados de projetos medidos. Ou seja, para se che-
gar a essas frmulas o pesquisar rene os dados de N projetos realizados no
passado, plota os dados em um grfico bidimensional e aplica tcnicas esta-
tsticas e matemticas para extrair uma frmula que modelo o comportamen-
to dos dados em questo e que possa ento modelar projetos futuros pareci-
dos com aqueles nos quais a frmula foi baseada. (Pressman, Engenharia de
Software, 1995)
Por isso necessrio que voc saiba que nenhuma dessas frmulas podem
ser aplicadas a qualquer tipo de projeto de software que voc deve ser bastante
criterioso no uso delas e principalmente ter em mente que isto se trata de uma
estimativa e que por isso h sempre um nvel de erro associado ao que se pro-
duziu de fato.
Uma vez que voc j entendeu as premissas do que iremos aprender agora,
acho que j esta na hora de lhe apresentar uma tcnica de estimativa de esforo
e durao bastante famosa e, de certa forma, precursora no desenvolvimento
de software, o COCOMO.
O COCOMO, que significa COnstructive COst MOdel (modelo de custo
construtivo) foi criado por Barry Boehm em 1981 (Boehm, 1981) de fato uma
hierarquia de estimativas que busca realizar a estimativa de esforo e durao
baseada em um modelo estatstico de uma s varivel.
A hierarquia prev 3 tipos de estimativas, a saber:
110 captulo 5
COCOMO Bsico
Vamos analisar o COCOMO bsico que, como dito, composto por uma equa-
o paramtrica simples para se estimar o esforo e durao do desenvolvimen-
to do software.
E = ab (KLOC)bb D = cb (E)db
Tabela 5.1 Valores dos coeficientes e expoentes do COCOMO bsico de acordo com o
modelo de projeto (Pressman, Engenharia de Software, 1995)
captulo 5 111
MODO SEMIDESTACADO OU DIFUSO
Projetos de software intermedirio (em tamanho e complexidade), nos quais temos equipes com v-
rios nveis de experincia, que devem programar uma combinao de requisitos rgidos. Por exemplo:
um sistema de processamento de transaes.
LOC/PF
LINGUAGEM DE PROGRAMAO MDIA MEDIANA BAIXA ALTA
JAVA 63 53 77 -
C++ 66 53 29 178
VISUAL BASIC 47 42 16 158
C 162 109 33 704
ADA 154 - 104 205
COBOL 77 77 14 400
CLIPPER 38 39 27 70
INFORMIX 41 31 24 57
LOTUS NOTES 21 22 15 25
112 captulo 5
COCOMO Intermedirio
captulo 5 113
ESCALA
Muito baixo
Baixo
Normal
Alto
Muito alto
Extra alto
Tabela 5.3 Escala para avaliao qualitativa dos fatores direcionadores de custo
114 captulo 5
Uma vez determinados os valores quantitativos dos fatores direcionadores
de custo, importante definir o EAF (fator de ajustamento de esforo) que ser
dado pela multiplicao dos valores de todos os direcionadores de custo que
foram atribudos para a aplicao que esta sendo estimada.
Agora, s aplicar na equao do COCOMO Intermedirio que dada abaixo:
E = ai (KLOC)bi EAF
PROJETO DE SOFTWARE A B
Orgnico 3,2 1,05
Semidestacado 3,0 1,12
Embutido 2,8 1,20
COCOMO Avanado
captulo 5 115
DISTRIBUIO DE ESFORO (%) TAMANHO
MODO FASE 2KDSI 8KDSI 32KDSI 128KDSO 512 KDSI
Planos e requisitos 8 8 8 8 8
Projeto do Produto 18 18 18 18 18
Programao 60 57 54 51 48
Embutido
Projeto detalhado 28 27 26 25 24
Codificao 32 30 28 26 24
Integrao e teste 22 25 28 31 34
Tabela 5.5 Distribuio de esforo (Fernandes, 1995) apud (Jnior & Sanches, 2000)
Tabela 5.6 Distribuio de prazo (Fernandes, 1995) apud (Jnior & Sanches, 2000)
5.3 COCOMO II
O COCOMO II uma evoluo do COCOMO de 1981 e leva em considerao
abordagens mais modernas para o desenvolvimento de software que agora
usam linguagens dinmicas, componentizao e desenvolvimento em banco
de dados (Sommerville, 2011). E tambm incorporou um conjunto de submo-
delos capaz de produzir estimativas mais detalhadas, a saber:
Um modelo de composio de aplicao;
Um modelo de projeto preliminar;
Um modelo de reuso;
Um modelo de ps arquitetura.
116 captulo 5
Modelo de composio de aplicao
Utilizado para projetos no qual o software ser composto por componentes reu-
sveis, scripts ou programao de banco de dados ou ento para projetos de
prototipao. (Sommerville, 2011)
A frmula para se calcular o esforo em PM (pessoas/ms) dada segundo
a figura 5.4
(NAP (1 %REUSO) )
PM = 100
PROD
Onde:
PM = esforo pessoas/ms
NAP = Nmero total de pontos de aplicao
PROD = produtividade de pontos de aplicao que dada segundo a:
captulo 5 117
TELAS
# e fontes de tabelas e dados
Nmero de vi-
Total < 4 Total < 8 Total ou +
ses contidas
(< srvr e < 3 cint) (2 - 3 srvr e 3 - 5 cint) (> srvr e > cint)
<3 simples simples mdia
3a7 simples mdia difcil
>8 mdia difcil difcil
RELATRIOS
Nmero # e fontes de tabelas e dados
de sees Total < 4 Total < 8 Total ou +
contidas (< srvr e < 3 cint) (2 - 3 srvr e 3 - 5 cint) (> srvr e > cint)
0 ou 1 simples simples mdio
2 ou 3 simples mdia difcil
4 ou . mdia difcil difcil
NOP New Object Points. Novos Pontos de Objetos contados, ajustados para reuso.
Nmero de servidores (mainftrame ou equivalente) de tabelas de dados usados
Srvr
em conjuno com TELA ou RELATRIO.
Nmero de clientes (estao de trabalho pessoal) de tabelas de dados usados em
Clnt
conjuno com TELA ou RELATRIO.
Porcentagem de telas, relatrios e mdulos 3GL (linguagem de terceira gerao)
%reuso
reusados a partir de aplicaes prvias)
PESO DA COMPLEXIDADE
TIPO DE OBJETO
SIMPLES MDIA DIFCIL
TELAS 1 2 3
RELATRIOS 2 5 8
COMPONENTES 3 GL ... ... 10
Tabela 5.9 Peso de complexidade de pontos de objeto (Jnior & Sanches, 2000)
118 captulo 5
A frmula dada a seguir:
PM = A TamanhoB M
PM = Esforo pessoas/ms
Tamanho = dado em KSLOC (kilo source of lines) normalmente uma transforma-
o de pontos de funo para KSLOC. Pode-se utilizar a tabela abaixo para isto no
COCOMO II:
Tabela 5.10 Transformao entre SLOC e Pontos de Funo (Jnior & Sanches, 2000)
FATORES DE ESCALA
Precedncia
Flexibilidade de desenvolvimento
Arquitetura/Resoluo de risco
Coeso da Equipe
Maturidade do processo
captulo 5 119
Para cada um desses fatores de escala atribui-se uma nota de 0 a 5, sendo 0
significa extra alto e 5 muito baixo.
Depois de atribuda a nota, soma-se todas as notas, divide-se o resultado por
100 e some a ele 1,01 e ento voc tem o valor de B. (Sommerville, 2011)
J o fator multiplicador M baseado em sete atributos de projeto e proces-
so, a saber:
Os valores para esses atributos devem ser estimados usando uma escala de
seis pontos, em que 1 corresponde a muito baixo e 6 corresponde a mui-
to alto.
Modelo de reso
Este modelo deve ser utilizado quando o projeto utilizar cdigos reaproveita-
do de outros projetos, o que altamente comum nos dias de hoje.
Segundo o COCOMO II h dois tipos de reutilizao de cdigo possveis:
aquela que se reutiliza 100% do cdigo, chamada de reutilizao caixa preta,
na qual o esforo considerado ZERO; e aquela que se adapta um cdigo j
existente para a situao atual, o que conhecido como reaproveitamento de
cdigo de caixa branca.
H tambm a ser considerada as ferramentas que geram cdigo automa-
ticamente por meio de um modelo realizado, como por exemplo ferramentas
de UML e que tambm deve ter um esforo de integrao do cdigo calculado.
(Sommerville, 2011)
120 captulo 5
Para realizar o clculo de esforo no modelo de reuso a seguinte frmula
deve ser utilizada:
ASLOC AT
PM Auto = 100
ATPROD
Onde:
ASLOC o nmero total de linhas de cdigo reusado, incluindo o cdigo
que gerado automaticamente.
AT a porcentagem de cdigos reusados gerados automaticamente.
ATPROD a produtividade dos engenheiros na integrao do cdigo, que
no COCOMO II foi calculada como sendo 2.400 declaraes-fonte por ms.
(Sommerville, 2011)
Para se chegar ao esforo necessrio para a integrao do cdigo fonte de
outro sistema ao sistema estimado, h a necessidade de se aplicar a frmula
abaixo (Sommerville, 2011):
AT
ESLOC = ALOC 1 AAM
100
Onde:
ESLOC = nmero de linhas equivalente do novo cdigo-fonte
ASLOC = o nmero de linhas de cdigo nos componentes que precisam
ser alterados.
AAM um multiplicador de ajuste de adaptao conforme abaixo:
Tabela 5.14 Clculo do AAM - multiplicador de ajuste de adaptao - coma dos trs com-
ponentes. (Sommerville, 2011)
captulo 5 121
Modelo de ps arquitetura
PM = A Tamanho B M
122 captulo 5
Denio Projeto funcional, Desenvol-
do sistema especicao vimento Operao e manuteno
Figura 5.5 Distribuio do esforo - grandes fases Software Cost Estimating and Life
Cycle Control, IEEE Computer Society Press, 1980. pg 15 apud (Pressman, Engenharia de
Software, 1995)
Onde:
L = nmero de linhas
Ck = representa restries que impedem o progresso do programador e
pode assumir os valores 2000 para um ambiente de desenvolvimento bastante
imaturo; 8000 para um ambiente de desenvolvimento maduro (com metodolo-
gia, documentao e etc); 11000 para um ambiente excelente (com ferramentas
e tcnicas automatizadas por exemplo).
K = esforo despendido (em pessoas-ano) ao longo de todo o ciclo de vida
para desenvolvimento e manuteno do software. Pode ser dada pela equao:
L3
K=
CK3 t d4
captulo 5 123
5.6 Estimativas com mtodos geis
Segundo Universidade Estcio de S, 2015 um projeto usando um processo
de desenvolvimento gil feito com um conjunto de cenrios de usurios.
possvel desenvolver uma estimativa com razovel significado com os seguin-
tes passos:
1. Cada cenrio de usurio considerado separadamente para a estimativa.
2. O cenrio composto de um conjunto de funes e tarefas de engenha-
ria de software.
3 a. Cada tarefa estimada separadamente.
3 b. O tamanho do cenrio pode ser estimado em LOC, PF ou alguma outra
medida orientada a volume
4.a. As estimativas de cada tarefa so somadas para criar uma estimativa
de cenrio
4.b. O volume de esforo estimado para cenrio traduzido para esforo
baseado em dados histricos
5. As estimativas de esforo para todos os cenrios que devem imple-
mentar um incremento de software so somadas para definir a estimativa para
o incremento.
Normalmente, a durao do desenvolvimento de um incremento da or-
dem de 3-6 semanas; a estimativa serve para garantir que o nmero de cenrios
a ser includo no incremento esteja de acordo com os recursos disponveis.
124 captulo 5
Posteriormente, por meio de funes de transformao e tabelas de bases
histricas, possvel realizar a transformao desta medida para pontos de
funo e KLOC.
O pontos de caso de uso inicia propondo a contagem do fator Pontos de
Casos de Uso No Ajustados (PCUNA) que computado por meio da classifica-
o de cada ator como simples, mdio ou complexo de acordo com os critrios
definidos na tabela 5.15.
Tabela 5.15 Forma de classificao dos atores com seus respectivos pesos (Kerner,
1993)
Na sequncia, cada Caso de Uso tambm deve ser classificado como sim-
ples, mdio ou complexo utilizando para isso o critrio proposto na tabela 5.16.
Tabela 5.16 Forma de classificao dos Casos de Uso com seus respectivos pesos [Kar-
ner, 1993]
Agora calcula-se a soma dos pesos dos Atores e Caso de Usos utilizando a Equao
1, para se chegar ao fator PCUNA, na qual ni o nmero de itens de variedade i (sim-
ples, mdio e complexo para atores e casos de uso) e Pi o peso dado a variedade de i.
6
PCUNA = ni Pi
i1
Equao 1
captulo 5 125
Caso haja informaes sobre o ambiente de implementao do projeto e/
ou informaes sobre a complexidade tcnica de se implementar o projeto, os
fatores Fator de Complexidade Tcnica (FCT) e o Fator Ambiental (FA) preci-
sam ser calculados conforme mostra a tabela 5.17.
Tabela 5.17 Fatores que contribuem para a complexidade do sistema [Medeiros, 2004;
Karner, 1993]
13
FCT = C1 + C2 Fi Pi
i1
Equao 2
Onde: C1 = 0.6 e C2 = 0.01.
126 captulo 5
Fi Fatores que contribuem para a eficincia Pi
F1 Familiaridade com o Processo de Interativo Unificado 1.5
F2 Experincia na Aplicao 0.5
F3 Experincia com orientao a objeto 1
F4 Capacidade de Liderana de Anlise 0.5
F5 Motivao 1
F6 Estabilidade de Requisitos 2
F7 Consultores Part-Time 1
F8 Dificuldade de Programao na Linguagem 1
8
FA = C1 + C2 Fi Pi
i1
Equao 3
Equao 4
captulo 5 127
Uma empresa pode querer se medir, e at se comparar com o mercado, por
meio do custo de um ponto de funo produzido por ela. Por exemplo, imagine
uma empresa que mantm um escritrio de gerenciamento de projetos de soft-
ware e quando vende algum projeto contrata pessoal para o desenvolvimento
do software. A tabela abaixo representa o perodo didtico de um determinado
ms da empresa, na qual foram desenvolvidos 200 PFs.
Veja que o custo total da empresa foi de R$ 32000,00. Isto quer dizer que
neste ms cada Ponto de Funo custou 32000/200 = R$ 160,00.
Baseado nisso, possvel inclusive determinar o ponto de equilbrio dessa
empresa, que quanto o custo da empresa empata com a receita da empresa.
Imagine que esta empresa cobre R$ 150,00 para cada ponto de funo de-
senvolvido e entregue ao cliente. Ento diramos que a equao de lucro seria
dada por:
Onde:
#PF_desenvolvido a quantidade de pontos de funo entregue.
128 captulo 5
Como pde ser visto, a empresa teve um prejuzo de R$ 2.000,00. Ento qual
seria o ponto de equilbrio para esta empresa? Na verdade, a pergunta certa se-
ria: qual a quantidade mensal de pontos de funo que a empresa deve desen-
volver para que ela tenha lucro ZERO -> este o ponto de equilbrio, e poderia
ser alcanado da seguinte forma:
150*PF (12000+100*PF) = 0
150PF 12000 100PF = 0
50PF = 12000
PF = 12000/50
PF = 240.
PF
PF produzida
Custo xo
PF.custo.xo
Tempo
captulo 5 129
5.9 Anlise do valor agregado
Estimar projetos de qualquer natureza fundamental para o planejamento.
Contudo, o plano feito para ser seguido e identificar desvios, de forma que
no adiantam as estimativas para o planejamento se no houver acompanha-
mento (monitoramento e controle) da execuo.
(PMI, 2013) indica a tcnica de EVA (gerenciamento do valor agregado) para
o monitoramento de controle do projeto no que tange a escopo, tempo e custo.
Abaixo seguem as frmulas para o EVA.
Os indicadores mais interessantes que podemos explorar da Figura 9 para o
contexto em questo o CPI e o SPI que indicam, respectivamente, se o projeto
est dentro do oramento e dentro do cronograma.
Para esses indicadores UM quer dizer que est tudo certo, ou seja, um CPI
UM significa que o projeto est dentro do oramento e para cada R$ 1,00 gasto,
R$ 1,00 est sendo convertido dentro do projeto, da mesma forma um SPI 1
indica que o cronograma est dentro do esperado.
NOME DESCRIO
PLANED VALUE (PV) Quanto de trabalho deveria ser feito
quanto trabalho foi feito em relao ao que foi
EARNED VALUE (EA) planejado
Quanto custou o que foi planejado para o traba-
ACTUAL COST (AC) lho total
BUDGET AT COMPLETION (BAC) Qual o oramento planejado para o trabalho total
Com os dados de progresso atuais, quanto se es-
ESTIMATE AT COMPLETION (EAC) pera que ser o custo total do trabalho (frmula:
BAC/CPI)
Com os dados de progresso atuais, qanto mais ir
ESTIMATE TO COMPLETE (EC) ser gasto at o final do projeto (frmula: EAC AC)
Qual o valor acima/baixo do planejado espera-se
VARIANC AT COMPLETIO (VAC) consumir at o final do projeto (fmula: BAC
EAC)
Comparao entre o valor estimado para o traba-
COST VARIANCE (CV) lho e o custo atual (frmula: EV AC)
Comparao entre o trabalho realizado e o plane-
SCHEDULE VARIANCE (SV) jado para o momento atual (frmula: EV PV)
ndice que verifica se o projeto est dentro ou
COST PERFOMANCE INDEX (CPI) fora do oramento (frmula: EV/AC)
ndice que verifica se o projeto est dentro ou
SCHEUDULE PERFOMANCE INDEX (SPI) fora do crongrama (frmula: EV/PV)
Tabela 5.19 Indicadores do mtodo EVA (da Silva, Tincani, Camargo, & Jnior, 2013)
130 captulo 5
Caso o CPI seja menor que UM, ento isto significa que o projeto est gas-
tando mais do que previsto. Da mesma forma um SPI menor que UM significa
que o projeto est indo mais devagar do que o previsto.
J no caso do CPI ser maior do que UM, isto significa que o projeto est gas-
tando menos do que o previsto (opa, cuidado com a qualidade ento). E da mes-
ma forma caso o SPI seja maior do que UM, ento quer dizer que o projeto est
indo mais rpido do que o previsto (mais uma vez, cuidado com a qualidade).
Outra forma que os engenheiros costumam utilizar coletar uma base his-
trica daquilo que se quer modelar e posteriormente plotar os dados em um
grfico bidimensional e por meio de tcnicas matemticas gerar uma equao
que modela uma curva que mais se aproxima da nuvem de pontos plotada. Por
exemplo, veja a tabela 5.20 a seguir e se concentre nas colunas de TOTAL de PF
estimados e Homem Horas trabalhados.
captulo 5 131
TOTAL PF HOMEM HORAS
PROJETO TOTAL PF ESTIMADO PRAZO (DIAS UTEIS)
REALIZADO TRABALHADAS
MDULO DE PONTO 82,45 112,2 2400 40
SISTEMA ESTOQUE 180,90 179,34 8400 70
GESTO DE VENDAS 198,90 215 9600 160
CONTROLE DE 268,30 265,2 7200 180
TRAFEGO
SISTEMA 431,45 420,78 9600 160
ACADMICO
Tabela 5.20 Exemplo didtico de base histrica (Universidade Estcio de S, 2015)
12000
10000
8000
6000
4000
2000
0
100 200 300 400 500
0
Homem* horas trabalhadas
CONCEITO
Interpolao
O problema da interpolao consiste em substituir funes intricadas por um conjunto de
funes mais simples, de tal forma que muitas operaes comuns como a diferenciao e a
integrao, possam ser realizadas mais facilmente. A interpolao consiste basicamente em
encontrar uma funo que seja a expresso lgica de determinados pontos de uma funo
132 captulo 5
desconhecida, ou seja, conhecendo-se (x1 , y1), (x2 , y2).....(xn , yn) de uma funo desconhe-
cida poderemos calcular o valor numrico intermedirio da funo num ponto no tabelado
com certo grau de erro.
Outra aplicao da interpolao a aproximao de funes complexas por funes
mais simples. Suponha que tenhamos uma funo, mas que seja complicada demais para
que seja possvel avali-la de forma eficiente. Podemos, ento, escolher alguns dados pon-
tuais da funo complicada e tentar interpol-los com uma funo mais simples. Obviamente,
quando utilizamos a funo mais simples para calcular novos dados, normalmente no se
obtm o mesmo resultado da funo original, mas dependendo do domnio do problema e do
mtodo de interpolao utilizado, o ganho de simplicidade pode compensar o erro. (Universi-
dade Estcio de S, 2015)
Caso para o grfico acima decida-se modela-lo por meio de uma curva li-
near, o que possvel, veja pela figura 5.8 que o erro pode ser enorme, ou seja,
estes nmeros no podem ser representados por uma simples regresso linear
(polinmio do primeiro grau).
10000
8000
6000
4000
2000
0
0,00 100,00 200,00 300,00 400,00 500,00
captulo 5 133
CONCEITO
Interpolao Linear
Em matemtica, denomina-se interpolao linear o mtodo de interpolao que se utiliza de
uma funo linear p(x) (um polinmio de primeiro grau) para representar, por aproximao,
uma suposta funo f(x) que originalmente representaria as imagens de um intervalo des-
contnuo (ou degenerado) contido no domnio de f(x). (Wikipedia, 2015).
Caso para o grfico acima decida-se modela-lo por meio de uma curva li-
near, o que possvel, veja pela figura 5.9a que o erro pode ser enorme, ou seja,
estes nmeros no podem ser representados por uma simples regresso linear
(polinmio do primeiro grau).
Porm, se representarmos a curva utilizando uma interpolao em uma cur-
va de segundo grau ou logartmica correremos menos risco, conforme pode ser
observado nos grficos da figura 5.9b.
10000
8000
6000
4000
2000
0
0 100 200 300 400 500
Homem* horas trabalhadas
Polinmio (homem* horas trabalhadas)
134 captulo 5
Ttulo do Grco
12000
10000
8000
Ttulo do Eixo
6000
4000
2000
0
0,00 100,00 200,00 300,00 400,00 500,00
Ttulo do Eixo
Srie 1 Logaritimo (Srie 1)
Figura 5.9 Nmeros modelados por curva de segundo grau e logartmica (Universidade
Estcio de S, 2015)
CONEXO
Interpolao
Quer saber mais sobre interpolao? Ento acesse: http://estaciodocente.webaula.com.
br/Cursos/gra104/docs/09MEDS_doc01.pdf
Por mais prximo que a curva modelada tenha chegado dos nmeros reais
e dos pontos de amarrao, em uma interpolao ainda haver a presena de
erros. H vrios processos matemticos que podem ser utilizados para tratar
os erros em interpolaes, mas para simplificarmos o assunto, o que pode ser
feito determinarmos curvas de erro limites mximo e mnimo e manter a cur-
va modelada entre as duas. Conforme mais base histrica for coletada, menor
ser a distncia entre as duas curvas de mximo e mnimo.
captulo 5 135
ATIVIDADES
01. O que o COCOMO e quais tipos de COCOMO existem?
03. Se um projeto tem o SPI = 1,5 e o CPI = 0,9, o que podemos dizer dele?
04. Explique o que significa ponto de equilbrio e como ele pode ser calculado para uma
empresa de desenvolvimento de software utilizando o PF.
REFLEXO
Agora sim, parabns em definitivo! Voc conseguiu chegar ao final da disciplina percorrendo
os 5 captulos propostos.
Neste ltimo captulo, tambm o seu ltimo desafio da disciplina, voc aprendeu tcnicas
importantes e consagradas de estimativa de sistemas, como o COCOMO e o COCOMO II,
alm tambm de ter tomado conhecimento sobre controle de projetos de software com o
EVA, algumas tcnicas estatsticas e etc.
Esperamos que o que voc tenha aprendido aqui na disciplina seja bastante til no s
no contexto acadmico, mas tambm na sua carreira profissional e que voc consiga aplicar
com xito tudo o que aprendeu sobre estimativa e medidas de esforo de desenvolvimento
de software.
LEITURA
Para fechar com chave de ouro esta disciplina recomendamos fortemente que voc leia o
relatrio tcnico do ICMC de So Carlos sobre a tcnica COCOMO. um estudo bastante
interessante e detalhado da tcnica que poder fazer o seu entendimento sobre o assunto
muito mais apurado e refinado.
Jnior, W. T., & Sanches, R. (2000). Modelos de Estimativas de Custo de Software - RE-
LATRIOS TCNICOS DO ICMC. So Carlos. Acesso em 30 de 08 de 2015, disponvel em:
http://www.icmc.usp.br/CMS/Arquivos/arquivos_enviados/BIBLIOTECA_113_RT_106.pdf
136 captulo 5
REFERNCIAS BIBLIOGRFICAS
Boehm, B. (1981). Software Engineering Economics. New Jersey: Prentice Hall.
da Silva, L., Tincani, D., Camargo, M., & Jnior, A. (2013). Marketing Estratgico - Mdulo 4.2.
Ribeiro Preto: Uniseb Interativo.
Fernandes, A. A. (1995). Gerncia de Software atravs de mtricas: garantindo a qualidade do
projeto, processo e produto. So Paulo: Atlas.
Jnior, W. T., & Sanches, R. (2000). Modelos de Estimativas de Custo de Software - RELATRIOS
TCNICOS DO ICMC. So Carlos. Acesso em 30 de 08 de 2015, disponvel em http://www.icmc.usp.
br/CMS/Arquivos/arquivos_enviados/BIBLIOTECA_113_RT_106.pdf
Kerner, G. (1993). Use Case Points: resource estimation for Objectory projects. Objective Systems SF
AB (copyright owned by Rational/IBM).
Martins, M. D. (2007). GERAO DE PONTOS DE CASOS DE USO NO AMBIENTE SCORPIUS.
Dissertao de mestrado. So Carlos, So Paulo, Brasil.
PMI. (2013). Um guia de conhecimento em gerenciamento de projetos. Pennsylvania: Project
Management Institute Inc.
Pressman, R. (1995). Engenharia de Software. Sao Paulo: Pearson Makron Books.
Pressman, R. (2011). Engenharia de Software - Uma abordagem profissional. So Paulo: McGraw
Hill - ARTMED.
Sommerville, I. (2011). Engenharia de Software. So Paulo: Pearson.
Universidade Estcio de S. (30 de 08 de 2015). Mais sobre modelos usados para classificar
o tipo do software. Fonte: Notas de aula de Medidas de Esforo de Desenvolvimento de Software:
http://estaciodocente.webaula.com.br/Cursos/gra104/docs/06MEDS_doc02.pdf
Wikipedia. (30 de 08 de 2015). Interpolao linear. Fonte: Interpolao linear: https://pt.wikipedia.
org/wiki/Interpola%C3%A7%C3%A3o_linear
captulo 5 137
GABARITO
Captulo1
01.
NOME DA MTRICA Velocidade de desenvolvimento
Verificar a velocidade de desenvolvimento de um determinado time em
OBJETIVO DA MTRICA para a release de uma determinada verso do software
Determinar a quantidade de pontos de funo desenvolvido por tempo de
DESCRIO DA MTRICA esforo executado
SISTEMA DE MEDIDAS PF/horas
Medida 1 medir os pontos de funo do release que foi desenvolvido
pelo time.
FORMAS DE SE OBTER A Medida 2 medir a quantidade total de horas que o time trabalhou
MEDIDA na release.
Realizar a razo: medida 1 / medida 2.
02. Uma medida direta a mais comuns e mais fcil de ser conseguida. So aqueles que
medem diretamente um fenmeno, como por exemplo esta que usamos no exemplo anterior:
a altura de um lpis.
J as medidas indiretas so aquelas que conseguimos por meio de outras, como por exemplo
medir a qualidade de um software por meio da quantidade de tempo que ele fica sem travar,
ou ainda medir a velocidade de desenvolvimento por meio da quantidade de linhas de cdigo
que o desenvolvedor produz por hora.
03. Tamanho de um prdio, velocidade de um carro, profundidade de um rio.
04. Qualidade de software, tamanho do software por meio de medidas de complexidade
funcional, qualidade do cdigo por meio da medida de complexidade do cdigo.
05. No mundo dos softwares a maioria das medidas que encontraremos so do tipo indire-
tas e (Pressman, Engenharia de Software, 2006) faz uma discusso em seu livro sobre o uso
dessas medidas afirmando que h uma classe de profissionais dentro da engenharia de soft-
ware que entende que medir aspectos de software atualmente seria medir o no-mensur-
vel e que seria interessante que a comunidade de desenvolvimento de sistemas aguardasse
que a cincia entendesse melhor o software e os aspectos que deveriam ser medidos antes
de tentar realizar medidas no diretas ou menos absolutas (mais imaturas).
Contudo, o prprio autor afirma que isto um erro por que mesmo sendo as mtricas
de software no absolutas em sua grande maioria, elas ainda so apoiadas em um conjunto
138 captulo 5
de regras bem definidas que oferecem uma forma sistemtica de avaliar, por exemplo, pro-
dutos de software e outras aspectos do desenvolvimento possibilitando um entendimento
de imediato sobre a situao do software (ou desenvolvimento) ao invs de a posteriori, o
que permite que o engenheiro de software possa tomar aes (apoia a tomada de deciso)
precocemente em relao ao produto e ao desenvolvimento de software.
E esta posio de (Pressman, Engenharia de Software, 2006) que adotaremos na dis-
ciplina e neste livro. Entendemos que s podemos gerenciar o que medimos e por mais no
absoluta ou indireta que uma mtrica possa ser desde que ela seja baseada em um conjunto
de regras claras e possa trazer apoio tomada de deciso e evoluo do processo de
desenvolvimento ser algo possvel de ser utilizada dentro do desenvolvimento de sistemas.
06.
a) Privada
NOME DA MTRICA Defeitos por indivduo
Identificar a quantidade de defeitos que um individuo da equipe de desen-
OBJETIVO DA MTRICA volvimento de software esta gerando para poder melhorar a sua atuao
dentro do time e do processo.
Estabelecer a quantidade de defeitos identificados por milhares de linhas
DESCRIO DA MTRICA de cdigo desenvolvidas.
KLOC = milhares de linha de cdigo (nmero real com uma casa deci-
SISTEMA DE MEDIDAS mal) e # de defeitos (nmero de defeitos nmero inteiro).
Medida 1 Linhas de cdigo: Realizar a contagem da quantidade de
NOVAS linhas de cdigo geradas no pacote pelo indivduo e divid-las por
1000 para gerar KLOCs.
FORMAS DE SE OBTER A Medida 2 Contar a quantidade de novos defeitos somada a quanti-
MEDIDA dade de erros crticos antigos que deveriam ter sido consertados pelo
indivduo, mas persistiram.
Realizar a razo: medida 2 / medida 1.
b) Pblica
NOME DA MTRICA Tamanho de funcionalidade
Identificar o tamanho de uma funcionalidade a ser desenvolvida para
OBJETIVO DA MTRICA entender o seu grau de complexidade e posteriormente estimar o tempo
para o seu desenvolvimento.
Contagem de quantidade de classes e entidades de dados que sero
DESCRIO DA MTRICA construdas para a funcionalidade.
SISTEMA DE MEDIDAS Nmero inteiro
Medida 1 Estimativa de quantidade de classes.
FORMAS DE SE OBTER A Medida 2 Estimativa de quantidade de entidades de dados.
MEDIDA A mtrica dever ser formada pela soma da medida 1 com a 2.
captulo 5 139
c) Privada
NOME DA MTRICA Quantidade de linhas de cdigo por indivduo
Determinar a velocidade de desenvolvimento de um determinado indivi-
OBJETIVO DA MTRICA duo do time;
Contagem de milhares de linhas de cdigo que o indivduo desenvolve
DESCRIO DA MTRICA por semana.
KLOC = milhares de linha de cdigo (nmero real com uma casa
SISTEMA DE MEDIDAS decimal)
A cada semana contar a quantidade de linhas de cdigo novas e alte-
FORMAS DE SE OBTER A radas que um determinado indivduo do time deposita no repositrio de
MEDIDA cdigo do sistema em questo
d) Pblica
NOME DA MTRICA Quantidade de classes por requisitos
Identificar a complexidade mdia de um requisito por sua quantidade de
OBJETIVO DA MTRICA classes;
Nmero que indica a quantidade de classes que foi desenvolvida para
DESCRIO DA MTRICA atender a um determinado requisito.
SISTEMA DE MEDIDAS Nmero inteiro
Contar a quantidade de classe desenvolvida ou alterada para se perfor-
FORMAS DE SE OBTER A mar um determinado requisito documentado no documento de requisitos
MEDIDA do projeto.
07.
INDIRETA: por que consegue a facilidade de uso por meio de uma outra medida que o
tempo que o usurio leva para executar uma determinada funo.
NOME DA MTRICA Facilidade de uso do sistema
OBJETIVO DA MTRICA Determinar se um produto de software fcil de usar ou no.
Entender o tempo mdio que um usurio leva para executar qualquer
DESCRIO DA MTRICA atividade do sistema.
SISTEMA DE MEDIDAS Nmero inteiro em segundos
Solicitar trs atividades aleatrias no sistema para trs usurios
diferentes e calcular o tempo de cada uma das execues, soma-los e
FORMAS DE SE OBTER A depois dividir por 9. Caso a mdia de maior do que 90 segundos, ento
MEDIDA o sistema no tem uma boa usabilidade, caso contrrio ele tem uma boa
usabilidade.
140 captulo 5
DIRETA: pois conta as linhas de cdigo diretamente
NOME DA MTRICA Quantidade de linhas de cdigo por classe
OBJETIVO DA MTRICA Determinar o tamanho de uma classe;
DESCRIO DA MTRICA Contagem de milhares de linhas de cdigo que uma classe possui.
KLOC = milhares de linha de cdigo (nmero real com uma casa deci-
SISTEMA DE MEDIDAS mal) da classe
FORMAS DE SE OBTER A A cada classe contar a quantidade de linha de cdigo que ela possui.
MEDIDA
Captulo2
01. Como j estudamos, uma mtrica pode ser entendida como um conjunto de medidas
diretas e/ou indiretas que se aplica em algo segundo um procedimento utilizando padro e
sistemas para a medida. Portanto, entende-se que uma medida deva acontecer em algo que
j exista.
J uma estimativa uma previso que se faz sobre algo futuro baseando-se, principalmente,
em bases de medidas histricas.
Existem algumas tcnicas generalistas de projeto para se realizar estimativas, uma das
mais utilizadas a tcnica paramtrica, na qual utiliza-se uma base histrica de informaes
paramtricas normalizadas para se calcular a estimativa em questo. Por exemplo, um pe-
dreiro sabe que no passado ele possui a performance de instalar 1 metro quadro de piso por
hora (base histrica normalizada por hora), se agora ele precisa instalar 10 metros quadrados
a estimativa que se faz (utilizando uma paramtrica proporcional a mais comum) de que
ele demorar 10 horas para instalar. Isto tambm extensvel para a estimativa de custo,
sendo que se ele cobrar R$ 100,00 por metro quadrado ento o total ser de R$ 1000,00.
02. Segundo (Pressman, 1995) todas as engenharias realizam medies e isto de extre-
ma importncia nessas disciplinas e na engenharia de software o contexto no diferente
e, conforme mostramos no tpico anterior, a necessidade de se medir se mostra importante
tambm. (Pressman, 1995) se justifica utilizando o trecho abaixo de Lorde Kelvin:
Quando se pode medir aquilo sobre o qual se est falado e express-lo em nmeros,
sabe-se alguma coisa sobre o mesmo; mas quando no se pode medi-lo, quando no
se pode express-lo em nmeros, o conhecimento que se tem de um tipo inade-
quado e insatisfatrio; este pode ser o comeo do conhecimento, mas dificilmente
algum ter avanado em suas ideias para o estgio de cincia.
captulo 5 141
importante que voc entenda que apesar da grande maioria das mtricas que utilizaremos
na engenharia de software ser mtricas no absolutas e indiretas, o processo de mensurao
realmente muito importante para que o engenheiro de software possa melhor se guiar na
rdua misso de estabelecer um processo de desenvolvimento de qualidade, maduro e que
evolua constantemente com o objetivo de gerar produtos de software que sejam de qualida-
de e que de fato agreguem valor ao usurio final.
Portanto, deste ponto em diante, queremos dizer, nos prximos captulos, o que faremos
entender quais tipos de mtricas podem existir na engenharia de software de uma forma
geral, apresentar as mtricas de medidas de esforo de desenvolvimento de software, que
so o objetivo desta disciplina e nos aprofundarmos nesta tcnica, tanto no entendimento
das mesmas quanto em como aplica-las no processo de desenvolvimento de software.
J bom adiantar que a grande maioria dessas mtricas de esforo de desenvolvimento
de software so indiretas e no absolutas e que por muitos momentos iremos nos perguntar:
esta medida realmente exata?;Vale a pena a mensurao de algo que no conseguimos
garantir valores absolutos?. Toda vez que esta dvida atentar os nossos estudos pediremos
a voc que volte neste captulo 1 e refaa a leitura das discusses que tivemos e volte a
entender que s podemos gerenciar aquilo que medimos e se queremos de alguma forma
gerenciar o desenvolvimento de software, ento, bom que passemos a medi-lo, e se esta
a forma que conhecemos hoje, ento ser ela que utilizaremos.
03.
142 captulo 5
04.
TOTAL 30
05. A situao colocada no exerccio anterior nos leva a entender que quanto mais prximo
de 1 o VFA for, menor o seu impacto, ou seja, quanto mais prxima a avaliao de cada
item do TGI for de 2,5, menor o impacto. Quanto maior de 2,5, maior o impacto aumentando
o ponto de funo ajustado. Quanto menor de 2,5 maior o impacto diminuindo o pondo de
funo ajustado em relao ao ponto de funo no ajustado.
06.
captulo 5 143
Captulo3
01.
144 captulo 5
04. Um ALI no pode ser:
Arquivos temporrios.
Arquivos de trabalho.
Arquivos de classificao.
Arquivos de cpia de segurana requerido pelo CPD.
Arquivos introduzidos somente por causa da tecnologia usada.
Ex.: Arquivos de parmetro para um software WFL, JCL etc.
Operaes de juno e projeo.
Arquivos de ndices alternativos. (Vazques, Simes, & Albert, 2005)
Um ALI pode ser:
Tabelas que armazenam dados mantidos pela aplicao;
Arquivos de configurao mantidos pela aplicao;
Arquivos de segurana de acesso aplicao (senhas), mantidos por ela;
Arquivos mantidos no s pela aplicao, mas tambm por outra aplicao.
Uma AIE no pode ser:
Arquivos de movimento recebidos de outra aplicao para manter um ALI (exemplos: arqui-
vos de remessa e retorno). No entanto os processos de carga e de gerao destes arquivos
podem ser funes do tipo transao. O arquivo de movimento simplesmente um relatrio
gerado em formato de arquivo texto.
Dados mantidos pela aplicao e utilizados por outra aplicao;
Dados formatados e processados para uso de outras aplicaes. (Vazques, Simes, & Al-
bert, 2005)
Um AIE pode ser:
Dados de referncia externos utilizados pela aplicao. (Vazques, Simes, & Albert, 2005)
Para uma funo ser identificada como um AIE:
O grupo de dados ou informao de controle logicamente relacionado e identificvel
pelo usurios;
O grupo de dados referenciado pela aplicao sendo contada, porm externo a ela.
O grupo de dados no mantido pela aplicao sendo contada.
O grupo de dados mantido por outra aplicao, isto , deve ser um ALI para a outra apli-
cao. (Vazques, Simes, & Albert, 2005)
05. Sim, h outros trabalhos como o COCOMO e COCOMO II que buscam realizar a estima-
tiva de esforo sem utilizar uma paramtrica proporcional.
captulo 5 145
Captulo4
01.
INTERVALO INTERVALO
ESTIMATIVA ESTIMATIVA
SIGMA DEP D. PADRO VAR PROJETO
PROJETO PROJETO
(MENOR) (MAIOR)
1 170,17 10,06 101,2 91,14 111,26
2 170,17 10,06 101,2 81,08 121,32
4 170,17 10,06 101,2 60,96 141,44
6 170,17 10,06 101,2 40,84 161,56
02.
INTERVALO INTERVALO
ESTIMATIVA ESTIMATIVA
SIGMA DEP D. PADRO VAR PROJETO
PROJETO PROJETO
(MENOR) (MAIOR)
1 245,83 11,81 234,02 257,65 111,26
2 245,83 11,81 222,20 269,46 121,32
4 245,83 11,81 198,58 293,09 141,44
6 245,83 11,81 174,95 316,72 161,56
03. Poderia utilizar os pontos de funo para fazer estimativas de um ponto pela tcnica
paramtrica ou de trs pontos pela mesma tcnica paramtrica, sendo que esta ltima mais
indicada por que minimiza o risco do cronograma de projetos.
04. A tcnica mais precisa a paramtrica, principalmente quando apoiada em uma base
histrica de qualidade. Ela mais precisa do que a anloga por que esta ltima considera
projetos e atividades que so parecidas (e no iguais) de forma que uma estimativa baseada
nessa premissa de semelhana pode trazer altos nveis de erro justamente por que ser seme-
lhante no ser igual. Alm disso a anloga utilizada, usualmente, com a tcnica top-down
a qual tambm tem um alto grau de erro.
05. Em desenvolvimento de software seria interessante utilizar o pontos de funo com a
tcnica de 3 pontos. Tambm poderia ser utilizado o pontos de caso de uso. Em desenvol-
vimento gil, comum o uso de pontos de histria de usurio. Todos esses poderiam ser
utilizados juntamente com a tcnica de 3 pontos.
146 captulo 5
06. Tcnica de estimativa anloga.
07. Foi utilizada a tcnica paramtrica de um ponto. Para maior segurana seria interessan-
te o uso da mesma tcnica paramtrica, porm, utilizando os 3 pontos. Assim consegue-se
um intervalo de estimativa no qual a chance de acerto aumenta, diminuindo assim o risco
do cronograma.
Captulo5
01. O COCOMO, que significa COnstructive COst MOdel (modelo de custo construtivo) foi
criado por Barry Boehm em 1981 (Boehm, 1981) de fato uma hierarquia de estimativas
que busca realizar a estimativa de esforo e durao baseada em um modelo estatstico de
uma s varivel.
A hierarquia prev 3 tipos de estimativas, a saber:
1 Modelo bsico: modelo estatstico simples que computa o esforo (custo) por meio
de uma funo paramtrica simples baseada apenas no tamanho do software. (Pressman,
Engenharia de Software, 1995)
2 Modelo intermedirio: modelo estatstico que computa o esforo de desenvolvimento
baseado no tamanho (como no poderia deixar de ser) e tambm baseado em direciona-
dores de custo que incluem avaliaes subjetivas de: produto, hardware, pessoal e outros
atributos do projeto. (Pressman, Engenharia de Software, 1995)
3 Modelo avanado: modelo estatstico que junta composto por tudo o que falou-se
nos modelos bsicos e intermedirios e ainda j uma avaliao do impacto dos direcionado-
res de custo sobre cada passo do processo de engenharia de software, a saber: engenharia
de requisitos, projeto, implementao e etc). (Pressman, Engenharia de Software, 1995)
Para cada um dos modelos acima h uma frmula/procedimento de clculo.
02. O COCOMO II uma evoluo do COCOMO de 1981 e leva em considerao abor-
dagens mais modernas para o desenvolvimento de software que agora usam linguagens
dinmicas, componentizao e desenvolvimento em banco de dados (Sommerville, 2011).
E tambm incorporou um conjunto de submodelos capaz de produzir estimativas mais deta-
lhadas, a saber:
Um modelo de composio de aplicao;
Um modelo de projeto preliminar;
Um modelo de reuso;
Um modelo de ps arquitetura.
captulo 5 147
03. que para cada uma unidade monetria investida no projeto h um retorno de 0,9 unida-
des monetrias (ou seja, esta custando mais caro do que o esperado) e que para cara uma
unidade de tempo investida o projeto anda 1,5 unidades de tempo (ou seja, esta andando
mais rpido do que o esperado).
04. ponto de equilbrio: momento em que o custo da empresa empata com a receita da
empresa, levando-se em considerao sua receita total, o custo fixo e o custo varivel total,
segundo o grfico abaixo.
PF
PF produzida
Custo xo
PF.custo.xo
Tempo
148 captulo 5
ANOTAES
captulo 5 149
ANOTAES
150 captulo 5
ANOTAES
captulo 5 151
ANOTAES
152 captulo 5