Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
.............................................................................................................................Erro!
Indicador no definido.
Aula 1: Fundamentos de mtricas e medidas ............................................................................
Erro! Indicador no definido.
Introduo ................................................................................Erro! Indicador no definido.
Contedo................................................................................................................................ 7
Mtricas para Software ..................................................................................................... 7
Por que devemos medir? ................................................................................................. 9
Quais so as etapas envolvidas? ..................................................................................... 9
Como garantir que o trabalho seja realizado corretamente? ................................... 9
Avaliao dos atributos internos do produto............................................................. 10
Qualidade de Software ................................................................................................... 10
Custo do reparo ............................................................................................................... 11
Curva de falhas para hardware ou curva da banheira ............................................. 11
Garantia de qualidade ..................................................................................................... 12
Fatores determinantes para a garantia da qualidade ............................................... 12
Fatores de qualidade de McCall .................................................................................... 13
Caractersticas operacionais .......................................................................................... 13
Caractersticas de manuteno .................................................................................... 14
Caractersticas de adaptao a novos ambientes ..................................................... 14
Fatores de Qualidade ISO 9126 ..................................................................................... 15
Mtricas de indicadores e de produto ......................................................................... 15
Controle do software ...................................................................................................... 16
O produto e o processo em relao medio ........................................................ 17
As estimativas mais importantes .................................................................................. 17
Mtricas do processo ...................................................................................................... 17
Mtricas do produto ........................................................................................................ 18
Mtricas diretas e mtricas indiretas............................................................................ 19
Mtricas orientadas ao tamanho .................................................................................. 19
Mtricas orientadas funo ........................................................................................ 20
Princpios de medio .................................................................................................... 20
Atributos de mtricas eficazes de software................................................................ 20
Atividade Proposta........................................................................................................... 22
MTRICAS DE SOFTWARE
Referncias........................................................................................................................... 22
Exerccios de fixao ......................................................................................................... 22
Aula 2: Pontos por Funo ......................................................................................................... 30
Introduo ........................................................................................................................... 30
Contedo.............................................................................................................................. 31
Mtricas baseadas em funo ou Pontos por Funo (PF)...................................... 31
Valores do domnio de informaes ........................................................................... 31
Valores do domnio de informaes Tabela de PF................................................ 32
Exemplo de aplicao de Ponto de Funo No Ajustado (PFNA) ........................ 33
Exemplo de Diagrama de Fluxo de Dados (DFD) simples ........................................ 36
Clculo dos Pontos por Funo .................................................................................... 38
Mtodo para estimativa de custo exemplo SERPRO ............................................. 38
Contagem de Pontos por Funo de Projetos de Manuteno ............................. 40
Pontos de Casos de Uso (PCU) ..................................................................................... 40
Calculando o peso dos Atores do Sistema ................................................................. 41
Atividade Proposta........................................................................................................... 41
Aprenda Mais....................................................................................................................... 42
Referncias........................................................................................................................... 42
Exerccios de fixao ......................................................................................................... 42
MTRICAS DE SOFTWARE
Contedo.............................................................................................................................. 69
COCOMO .......................................................................................................................... 69
COCOMO bsico.............................................................................................................. 69
Exemplos de COCOMO bsico ..................................................................................... 70
COCOMO intermedirio ................................................................................................. 73
COCOMO avanado........................................................................................................ 76
COCOMO avanado: Spider-CoCoMo ........................................................................ 76
COCOMO II ....................................................................................................................... 78
Mtodo de Putnam.......................................................................................................... 79
Complexidade ciclomtica ............................................................................................ 79
Complexidade ciclomtica ............................................................................................ 80
Concluses........................................................................................................................ 81
Atividade Proposta........................................................................................................... 81
Referncias........................................................................................................................... 81
Exerccios de fixao ......................................................................................................... 81
Conteudista ...........................................................................................................................88
MTRICAS DE SOFTWARE
Qualquer empresa nasce com o sonho de ser bem-sucedida, mas nem todas
so vencedoras, e algumas at morrem antes de completar seu primeiro ano.
Empresas de sucesso so aquelas que trabalham com foco na gesto da
qualidade e do conhecimento.
No caso de PROJETO, verificamos que o gerenciamento necessrio, mas no
podemos gerenciar aquilo que impossvel medir.
A gesto do desenvolvimento, da manuteno e da prestao de servios
relacionados ao software que envolve custo, prazo e qualidade passou,
ento, a ser relevante. Afinal, esses fatores se constituem, hoje, como o
diferencial entre as empresas.
Plataformas como ITIL, CMMI e MPS-BR colocam as mtricas e as medies
como prticas fundamentais para a gesto de software com padro de
qualidade o que tornou sua medio uma obrigao.
Nesse sentido, esta disciplina pretende desenvolver no profissional da rea a
viso gerencial baseada na preocupao com o custo, a produtividade, a
qualidade e novas mtricas, bem como com suas formas de medio e suas
limitaes.
MTRICAS DE SOFTWARE
MTRICAS DE SOFTWARE
Introduo
Voc ter oportunidade de desenvolver os Conceitos de mtricas e medies
para software, medidas diretas e indiretas, medidas no software pronto (kloc).
Toda empresa j nasce com o sonho de ser bem-sucedida, porm muitas
delas nem chegam a completar seu primeiro ano. Empresas de sucesso so
aquelas que esto trabalhando com foco na gesto da qualidade e do
conhecimento. No entanto, no se pode gerenciar o que no se pode medir.
Assim, plataformas como ITIL, CMMI, MPS-BR e outras, colocam as mtricas e
medies como prticas fundamentais para a gesto de software com padro
de qualidade.
A qualidade tornou a medio do software nos seus diversos aspectos uma
obrigao. Deve-se desenvolver no profissional de software a viso gerencial,
assim como a preocupao com custo, produtividade, qualidade e novas
mtricas, suas formas de medio e suas limitaes. Ele deve conhecer
conceitos para medir o software (produtividade, qualidade, prazo, tamanho
etc.) desde a fase de especificao de requisitos. Para tal, deve conhecer
tcnicas e ferramentas em suas medidas nas diversas fases do projeto.
Preparado para iniciar a aula? Bons estudos!
Objetivo:
1. Compreender os conceitos das mtricas e das medies de software;
2. Entender o que envolve a qualidade de software.
MTRICAS DE SOFTWARE
Contedo
Mtricas para Software
Ento, o prprio mercado exige, hoje, a gesto da qualidade, do conhecimento
e sabe-se que no se pode gerenciar o que no se pode medir. No entanto,
como medir valores como o conhecimento ou a qualidade?
Sabemos que todo processo de engenharia necessita de medies para
entender melhor os modelos e avaliar a quantidade dos produtos construdos.
No caso da engenharia de software que no fundamentada nas medidas
quantitativas diretas, como voltagem, temperatura, velocidade as suas
medidas e mtricas so na sua maioria indiretas.
Medio o processo pelo qual so atribudos valores numricos ou simblicos
s caractersticas de uma entidade qualquer, definidos de acordo com regras
bem definidas. Na cincia da computao, podemos medir os atributos, antes
considerados incomensurveis ainda que alguns especialistas em software
continuem a argumentar que o software incomensurvel.
O que mtrica?
Por sua natureza, a engenharia uma disciplina quantitativa. A mtrica de
produto ajuda os engenheiros de software a visualizar o projeto e a construo
do software, focalizando atributos especficos e mensurveis dos artefatos da
engenharia de software.
Quem realiza?
Os engenheiros de software usam mtricas de produto para ajud-los a criar
MTRICAS DE SOFTWARE
Ateno
Haver sempre um elemento qualitativo na criao de software.
O problema que a avaliao qualitativa pode no ser
suficiente. Fazem-se necessrios critrios objetivos para
ajudar a direcionar o projeto de dados, arquitetura,
interfaces e componentes. Ao testar, necessitamos de
orientao quantitativa que nos auxiliar na seleo de
casos de teste e seus objetivos.
A mtrica de produto proporciona uma base por meio da qual a
anlise, projeto, codificao e teste podem ser conduzidos mais
objetivamente e avaliados de maneira mais quantitativa.
MTRICAS DE SOFTWARE
MTRICAS DE SOFTWARE
Qualidade de Software
O desenvolvimento de sistemas de software envolve uma srie de atividades
em que as oportunidades de falhas so muito grandes.
Os erros podem aparecer no incio do processo devido a alguns fatores:
Objetivos mal definidos;
Erros em fases de projeto e desenvolvimento.
Ningum tolera erros, por isso o desenvolvimento de software tem que ter
garantia de qualidade.
A atividade de teste de software um elemento crtico da garantia de qualidade
de software e representa a ltima reviso de especificao, projeto e
codificao.
MTRICAS DE SOFTWARE
10
Custo do reparo
Quanto mais cedo for verificado o software durante o seu ciclo de vida,
menores as chances de elevar os custos de reparo.
MTRICAS DE SOFTWARE
11
Garantia de qualidade
A garantia de qualidade de software (Software Quality Assurance) no algo
com a qual comeamos a nos preocupar depois que o cdigo foi gerado, e sim
ao longo de todo o processo de engenharia de software. A SQA ou GQS
abrange:
Estratgia de teste;
Mecanismos de medio.
MTRICAS DE SOFTWARE
12
Conjunto
de
requisitos
que
no
so
mencionados
(ex.:
boa
Caractersticas operacionais
Corretude
Refere-se capacidade de um programa satisfazer sua especificao e cumprir
os objetivos visados pelo cliente. Ele faz aquilo que eu quero?
Confiabilidade
Refere-se capacidade de um programa executar a funo pretendida com a
preciso exigida. Ele se comporta com preciso o tempo todo?
Usabilidade
Refere-se ao esforo necessrio para aprender, operar, preparar a entrada e
interpretar a sada de um programa. Ele foi projetado para o usurio?
MTRICAS DE SOFTWARE
13
Integridade
Refere-se capacidade de controlar o acesso ao software ou a dados por
pessoas no autorizadas. Ele seguro?
Eficincia
Refere-se quantidade de recursos computacionais e de cdigo exigida para
que um programa execute sua funo. Ele rodar em meu hardware to bem
quanto possvel?
Caractersticas de manuteno
Manutenibilidade
Refere-se ao esforo exigido para localizar e reparar erros em um programa.
Posso consert-lo?
Flexibilidade
Refere-se ao esforo demandado para modificar um programa. Posso mud-lo?
Testabilidade
Refere-se ao esforo exigido para testar um programa a fim de garantir que ele
execute a funo pretendida. Posso test-lo?
MTRICAS DE SOFTWARE
14
Interoperabilidade
Refere-se ao esforo exigido para se acoplar um sistema a outro. Serei capaz
de compor uma interface com outro sistema?
as
necessidades
indicadas
pelos
seguintes
subatributos:
MTRICAS DE SOFTWARE
15
MTRICA
Segundo o IEEE (Standard Glossary of Software Engineering Terminology),
mtrica busca obter uma medida quantitativa do grau com o qual um
sistema, componente ou processo possui determinado atributo.
Quando coletado um nico ponto de dado (por exemplo, o nmero de erros
descobertos em um componente de software), foi estabelecida uma medida.
A medio ocorre como resultado da coleo de um ou mais pontos de dados
(por exemplo, um conjunto de revises de componentes e testes de unidade
investigado para coletar medidas do nmero de erros para cada um).
Uma mtrica de software relaciona as medidas individuais de alguma maneira
(por exemplo, o nmero mdio de erros encontrados por reviso ou o nmero
mdio de erros encontrados por teste de unidade).
Antes que um projeto possa ser planejado, deve-se:
Estabelecer os objetivos e o escopo do projeto;
Considerar solues alternativas;
Identificar as restries administrativas e tcnicas.
Controle do software
impossvel controlar um software sem medies e feedback. No se pode
controlar o que no se pode medir e a extenso do controle depende da
preciso da medio. Qualquer coisa que no se pode medir est fora de
controle.
As medies e mtricas ajudam a entender o processo usado para se
desenvolver um produto de software e o prprio produto.
MTRICAS DE SOFTWARE
16
Durao do projeto
Custo
Mtricas do processo
As mtricas do processo quantificam atributos do processo de desenvolvimento
e do ambiente de desenvolvimento.
Mtricas
de
recursos:
experincia
do
programador,
custo
de
MTRICAS DE SOFTWARE
17
desenvolvimento e manuteno.
Mtricas do produto
So medidas do produto de software. Podem no revelar nada sobre como o
Ateno
Nesse caso, importante que voc conhea um exemplo:
O nmero de defeitos descobertos durante o teste formal
depende do produto (nmero de segmentos de cdigo que esto
errados) e do processo usado na fase de teste (a extenso do
teste).
MTRICAS DE SOFTWARE
18
Qualidade;
Funcionalidade;
Complexidade;
Eficincia;
Confiabilidade;
Manutenibilidade.
MTRICAS DE SOFTWARE
19
Vantagens:
fcil de calcular;
o fator mais importante para muitos modelos de estimativa.
Desvantagens:
Dependente da linguagem de programao;
Penalizam programas bem estruturados, porm mais curtos.
Princpios de medio
MTRICAS DE SOFTWARE
20
Planejamento
Anlise
Design
Programao
MTRICAS DE SOFTWARE
21
Atividade Proposta
Discuta sobre a importncia da adoo de mtricas no processo de qualidade
de software.
Chave de resposta: O processo de desenvolvimento de software deve ter o
foco na qualidade.
Referncias
PRESSMAN, Roger S. Engenharia de Software. 7. ed. Mc Graw Hill,2011.
SOMMERVILLE, Ian. Engenharia de Software. 8. ed. Mc Graw Hill, 2007.
PADUA Filho, Wilson de. Engenharia de Software: Fundamentos, mtodos e
padres, 3. ed. Rio de Janeiro: Editora LTC, 2009.
Bibliografia Complementar:
PETERS, James F. Engenharia de Software. 3. ed. Campus, 2001.
VAZQUEZ,C.E. , SIMES,G.S. , ALBERT,R.M. Anlise de ponto de funo
medio, estimativa e gerenciamento de projetos de software. So
Paulo: Editora rica, 2009.
Exerccios de fixao
Questo 1
Segundo Pressman, Qualidade de software a satisfao de requisitos
funcionais
de
desempenho
explicitamente
declarados,
normas
de
MTRICAS DE SOFTWARE
22
componentes.
Ao
testarmos,
necessitamos
de
orientao
MTRICAS DE SOFTWARE
23
MTRICAS DE SOFTWARE
24
MTRICAS DE SOFTWARE
25
MTRICAS DE SOFTWARE
26
Aula 1
Exerccios de fixao
Questo 1 - A
Justificativa: Software que no segue os requisitos no oferece qualidade; O
fatores de Mc Call so exatamente operao, reviso e transio de software; A
portabilidade uma exigncia hoje, o que permite que o software possa ser
executado em mais de um sistema operacional.
Questo 2 - A
Justificativa: Para determinarmos o esforo empregado no software devemos
medir custo, prazo, recursos fsicos e pessoas, a complexidade e o tamanho.
Portanto, todas as afirmativas esto corretas.
Questo 3 - A
Justificativa: No incio do desenvolvimento devemos aplicar a caracterstica da
abstrao, isto , nos preocuparmos com o que mais importante para o
momento como, por exemplo, a definio clara dos objetivos e dos requisitos e
a elaborao de um bom planejamento do projeto, e deixar alguns detalhes
para mais adiante. O planejamento de implantao e disponibilizao do
software deve ser feito em outra etapa.
Questo 4 - A
Justificativa: Um dos requisitos da qualidade do software a documentao.
Software sem documentao se distancia das normas de qualidade. Qualidade
MTRICAS DE SOFTWARE
27
MTRICAS DE SOFTWARE
28
Questo 9 - E
Justificativa: KLOC uma mtrica orientada ao tamanho e de fcil obteno e
independente da linguagem usada. pois bastar contar o nmero de linhas,
exceto os comentrios. Por outro lado, programas orientados a objetos e bem
estruturados so penalizados por esta mtrica.
Questo 10 - A
Justificativa: Todas as afirmativas so verdadeiras, porm, a mais completa a
que fala em tempo e custo, isto , a opo a.
MTRICAS DE SOFTWARE
29
Introduo
Nesta aula, voc compreender como devem ser usadas as seguintes mtricas:
Pontos por Funo (PF); Ponto por Funo No Ajustado (PFNA); Pontos por
Funo para Diagrama de Fluxo de Dados (DFD) simples; Mtodo para
Estimativa de Custo; Contagem de Pontos por Funo de Projetos de
Manuteno; Pontos de Casos de Uso (PCU); e Peso dos Atores do Sistema.
Essa abordagem muito importante devido necessidade de justificar prazos e
custos do software.
Bons estudos!
Objetivo:
1. Identificar os Pontos por Funo;
2. Compreender a aplicao dos Pontos por Funo.
MTRICAS DE SOFTWARE
30
Contedo
Mtricas baseadas em funo ou Pontos por Funo (PF)
Para que servem os Pontos por Funo?
Pontos por Funo medem o tamanho funcional do software.
Da mesma forma que somente os metros quadrados so insuficientes para
administrar uma construo, PF so insuficientes para administrar um projeto
de SW.
Para que servem as mtricas Pontos por Funo?
A mtrica Ponto por Funo pode ser usada efetivamente como um meio para
medir a funcionalidade fornecida por um sistema. Por meio de dados histricos,
a mtrica FP pode ser empregada para:
MTRICAS DE SOFTWARE
31
arquivo lgico interno um agrupamento lgico de dados que reside dentro das
fronteiras do aplicativo e mantido atravs de entradas externas.
Sadas externas (number of external outputs - EOs): cada sada externa
formada por dados derivados da aplicao e fornece informaes para o
usurio. So relatrios, telas, mensagens de erro etc.
Consultas externas (number of external inquiries - EQs): uma consulta
externa definida como uma entrada online que resulta na gerao de alguma
resposta imediata do software na forma de uma sada online.
Arquivos lgicos internos (number of internal logical files ILFs): cada
arquivo lgico interno um agrupamento lgico de dados que reside dentro das
fronteiras do aplicativo e mantido atravs de entradas externas.
Arquivos de interface externos (number of external interface files EIFs): cada arquivo de interface externo um agrupamento lgico de dados
que reside fora da aplicao, mas fornece informaes que podem ser usadas
pela aplicao.
MTRICAS DE SOFTWARE
32
MTRICAS DE SOFTWARE
33
MTRICAS DE SOFTWARE
34
Clculo do PFA
Ponto de Funo Ajustado (PFA)
Para calcular Pontos por Funo Ajustado, usa-se a seguinte relao:
PFA = Total de contagem x [0,65 + 0,01 x (Fi)]
Onde a contagem total a soma de todas as entradas FP obtidas da Tabela.
Os Fi (i = 1 a 14) so fatores de ajuste de valor (value adjustment factors VAF) baseados em respostas a 14 questes. Cada uma dessas perguntas
respondida por meio de uma escala que varia de 0 (no importante ou no
aplicvel) a 5 (absolutamente essencial). Observe:
1. O sistema requer salvamento (backup)?
2. So necessrias comunicaes de dados especializadas para transferir
informaes para a aplicao ou da aplicao?
3. H funes de processamento distribudo?
4. O desempenho crtico?
5. O sistema rodar em um ambiente operacional existente e intensamente
utilizado?
6. O sistema requer entrada de dados on-line?
7. A entrada on-line de dados requer que a transao de entrada seja
composta em mltiplas telas ou operaes?
8. Os ILFs (arquivos lgicos) so atualizados on-line?
9. As entradas, sadas, arquivos ou consultas so complexas?
10. O processamento Interno complexo?
MTRICAS DE SOFTWARE
35
MTRICAS DE SOFTWARE
36
entradas
externas
senha,
boto
de
emergncia
ativar/desativar.
arquivos
de
interface
externa
(EIF)
sensor
de
teste,
MTRICAS DE SOFTWARE
37
38
Treinamento
Consultoria
Viagens
Licenas de software
MTRICAS DE SOFTWARE
39
MTRICAS DE SOFTWARE
40
Exemplo
Um sistema projetado para dois tipos de usurios (gerente e usurio comum) e
que fosse acessado por um outro sistema utilizando-se de um protocolo de
comunicao, por exemplo, teria um valor de UAW de 8 (2 atores de nvel
complexo e 1 ator de nvel mdio).
UAW = (2 * 3) + (1 * 2)
UAW = 8
Atividade Proposta
Discuta sobre a importncia da adoo de mtricas no processo de qualidade
de software.
MTRICAS DE SOFTWARE
41
Aprenda Mais
Material complementar
Para saber mais sobre Pontos por Funo, acesse o vdeo
disponvel em nossa biblioteca virtual.
Referncias
PRESSMAN, Roger S. Engenharia de software. 7. ed. Mc Graw Hill, 2011.
SOMMERVILLE, Ian. Engenharia de software. 8. ed. Mc Graw Hill, 2007.
PADUA Filho, Wilson de. Engenharia de software: fundamentos, mtodos e
padres. 3. ed. Rio de Janeiro: Editora LTC, 2009.
PETERS, James F. Engenharia de software. 3. ed. Campus, 2001.
VAZQUEZ, C.E. , SIMES, G.S., ALBERT, R.M. Anlise de ponto de funo
medio, estimativa e gerenciamento de projetos de software. So
Paulo: Editora rica, 2009.
Exerccios de fixao
Questo 1
A Mtrica de software baseadas em Pontos por Funo mede:
a) O tamanho funcional do software.
b) A complexidade dos testes de software.
c) A extenso das sub-rotinas.
d) A quantidade de classes.
e) A qualidade do software.
Questo 2
A mtrica Ponto por Funo usa dados histricos para:
I Estimar o custo necessrio para projetar, codificar e testar o software.
MTRICAS DE SOFTWARE
42
MTRICAS DE SOFTWARE
43
Onde:
PF = Contagem total x (0,65 + 0,01 x Soma Fi)
MTRICAS DE SOFTWARE
44
MTRICAS DE SOFTWARE
45
d) 163
e) 212
Questo 9
A Anlise de Pontos por Funo (APF) uma tcnica para a medio de
projetos de desenvolvimento de software que visa estabelecer uma medida de
tamanho, em PFs, considerando a funcionalidade implementada, sob o ponto
de vista do usurio.
Analise as afirmativas a seguir, relacionadas APF:
I uma ferramenta que permite determinar o tamanho de pacotes de
MTRICAS DE SOFTWARE
46
Aula 2
Exerccios de fixao
Questo 1 - A
Justificativa: Por definio, Pontos por Funo medem o tamanho funcional do
software.
Questo 2 - A
Justificativa: Por melo de dados histricos, a mtrica FP pode ser empregada
para estimar o custo, prever o nmero de erros que sero encontrados durante
o teste e prever o nmero de componentes e/ou o nmero de linhas projetadas
de cdigo-fonte.
Questo 3 - A
Justificativa: Entrada externa no reside dentro do aplicativo. fornecida pelo
usurio e/ou por outra aplicao.
Questo 4 - A
Justificativa: Arquivo lgico interno, conforme o seu nome diz, reside dentro da
fronteira do software.
MTRICAS DE SOFTWARE
47
Questo 5 - F, F, V, V, F
Justificativa: A maioria dos projetos passa por mudanas ao longo do ciclo de
vida. Mtrica de software no pretende obter medidas exatas, mas uma
estimativa de esforo.
A tcnica de reuso recomendada no desenvolvimento de software e na sua
qualidade. Toda alteraes no software deve ser documentada.
Portanto, a resposta correta F-F-V-V-F
Questo 6 - E
Justificativa: Mnimo: (8 x 3) + (10 x 4) + (0 x 3) + (15 x 7) + (2 x 5) = 179
Mximo: (8 x 6) + (10 x 7) + (0 x 6) + (15 x 15) + (2 x 10) = 363
Questo 7 - B
Justificativa: A tcnica Pontos por funo usado pelos desenvolvedores par
determinar o esforo no desenvolvimento do software. Assim, o custo do
software pode ser estimado.
Questo 8 - D
Justificativa: Soluo: (3 x 5) + (5 x 4) + (8 x 6) + 3 x 15) + (7 x 5) = 163
Questo 9 - D
Justificativa: Pontos por funo ajustado definido pelo produto da contagem
por um fator de ajuste, o que contradiz o item III.
A tcnica Pontos por Funo determina o tamanho do software e os custos
correspondentes.
Questo 10 - C
Justificativa: Nos editais das licitaes pblicas para desenvolvimento de
software, pontos por funo tem sido uma exigncia do contratante.
MTRICAS DE SOFTWARE
48
Introduo
Nesta aula, voc compreender :
Mtricas para modelo de projeto;
Fan-out e Fan-in;
Conectividade;
Mtricas de projeto da arquitetura;
Mtricas para projeto orientado a objeto;
Acoplamento e Mtricas orientadas classe.
Esta abordagem muito importante para determinar o tamanho do software.
Bons estudos!
Objetivo:
1. Compreender as mtricas para o modelo de projeto de acordo com os
parmetros de dimenso do software Fan-out e Fan-in;
2. Entender as mtricas para o modelo de projeto de acordo mtricas de
projeto da arquitetura.
MTRICAS DE SOFTWARE
49
Contedo
Contextualizao
inconcebvel que o projeto de um novo avio, um novo chip de computador
ou um novo edifcio comercial...
... seja conduzido sem a definio de medidas, sem determinar mtricas
para os vrios aspectos de qualidade e sem us-las como indicadores para
orientar a maneira pela qual o projeto evoluir.
E, alm disso, o projeto de sistemas complexos baseados em software muitas
vezes realizado praticamente sem nenhuma medio.
A ironia disso tudo que as mtricas de projeto para software esto
disponveis, mas a grande maioria dos engenheiros de software continua
ignorando sua existncia.
As mtricas de projeto para software de computador, como todas as outras
mtricas de software, no so perfeitas.
Continua o debate sobre sua eficcia e a maneira pela qual deveriam ser
aplicadas.
Muitos especialistas argumentam que necessria mais experimentao para
que as medies de projeto possam ser usadas. E, alm disso, projeto sem
medio uma alternativa inaceitvel.
Examinaremos a seguir algumas das mtricas de projeto mais comuns para
MTRICAS DE SOFTWARE
50
Fan-out e Fan-in
A hierarquia de controle, tambm chamada estrutura de programa, representa
a organizao dos mdulos de programa.
Ela no representa aspectos procedimentais de software, tais como sequncia
dos processos, ocorrncia/ordem das decises ou repetio de operaes.
A notao mais comum para representar a hierarquia mostrada na figura.
Notamos que profundidade e largura constituem uma indicao do nmero de
nveis de controle e do espao de controle global, respectivamente.
Fan-out
uma medida do nmero de mdulos que so diretamente controlados por
outro mdulo, isto , o nmero de subordinados imediatos para aquele mdulo.
Fan-in
Indica quantos mdulos controlam diretamente determinado mdulo, isto , o
MTRICAS DE SOFTWARE
51
Visibilidade
Indica o conjunto de componentes de programas que pode ser invocado ou
usado como dados por um determinado componente. Por exemplo, um mdulo
de um sistema orientado a objeto pode ter acesso a uma ampla sucesso de
objetos de dados que ele herdou, mas s faz uso de um pequeno nmero
desses objetos de dados.
Conectividade
Indica o conjunto de componentes que diretamente invocado ou usado como
dados por determinado componente. Por exemplo, um mdulo que faa
diretamente outro mdulo iniciar a execuo conectado a ele.
Fan-out
Deve-se ter no mximo 7 subordinados.
Fan-in
Deve-se manter alto o nmero de superiores. Alto Fan-in a recompensa pelo
MTRICAS DE SOFTWARE
52
software:
Complexidade estrutural: Para arquiteturas hierrquicas (por exemplo,
arquiteturas de chamada e retorno), a complexidade estrutural de um
mdulo i definida da seguinte maneira:
Complexidade de dados: A complexidade dos dados (data complexity)
proporciona uma indicao da complexidade na interface Interna para um
mdulo i e definida como:
Em que v(i) o nmero de variveis de entrada e sada passadas para o do
mdulo i.
Complexidade de sistema: Por fim, a complexidade de sistema (system
MTRICAS DE SOFTWARE
53
Ateno
medida que esses valores de complexidade aumentam, a
complexidade
global
da
arquitetura
do
sistema
tambm
aumenta.
Isso leva a uma maior probabilidade de que o trabalho de
integrao e teste tambm aumente.
Fenton [Fen91] sugere um conjunto de mtricas de morfologia simples (isto ,
forma) que permite que diferentes arquiteturas de programa sejam comparadas
usando uma srie de dimenses diretas. Referindo-se arquitetura de chamada
e retorno na Figura apresentada, podem ser definidas as seguintes mtricas:
Tamanho = n + a
em que n o nmero de ns e a o nmero de arcos.
Para a arquitetura mostrada:
Tamanho = 19 + 24 = 43
Logo, largura = 7
MTRICAS DE SOFTWARE
54
MTRICAS DE SOFTWARE
55
MTRICAS DE SOFTWARE
56
MTRICAS DE SOFTWARE
57
MTRICAS DE SOFTWARE
58
MTRICAS DE SOFTWARE
59
Ateno
Quanto maior for o nmero de mtodos, mais complexa ser a
rvore de herana (todas as subclasses herdam os mtodos de
seus pais). Por fim, conforme o nmero de mtodos cresce para
uma dada classe, ela tende a se tornar cada vez mais especfica
de aplicao, limitando assim sua potencial reutilizao. Por
todas essas razes, o WMC dever ser mantido o mais baixo
possvel.
Embora pudesse parecer relativamente fcil desenvolver uma
contagem para o nmero de mtodos em uma classe, o
problema na realidade mais complexo do que parece. Dever
ser desenvolvida uma abordagem consistente de contagem.
MTRICAS DE SOFTWARE
60
Atividade Proposta
Discuta com seus colegas a importncia da adoo de mtricas no processo de
projeto de software a importncia do fan-in e fan-out em uma estrutura de
mdulos de projeto de software.
Chave
de
resposta:
FAN-OUT,
FAN-IN,
Complexidade
de
dados,
complexidade estrutural.
Referncias
PRESSMAN, Roger S. Engenharia de software. 7. ed. Mc Graw Hill, 2011.
SOMMERVILLE, Ian. Engenharia de software. 8. ed. Mc Graw Hill, 2007.
PADUA Filho, Wilson de. Engenharia de software: fundamentos, mtodos e
padres. 3. ed. Rio de Janeiro: Editora LTC, 2009.
PETERS, James F. Engenharia de software. 3. ed. Campus, 2001.
VAZQUEZ, C.E. , SIMES,G.S., ALBERT, R.M. Anlise de ponto de funo
medio, estimativa e gerenciamento de projetos de software. So
Paulo: Editora rica, 2009.
Exerccios de fixao
Questo 1
A estrutura de programa representa a organizao de seus mdulos. A
profundidade e largura da estrutura constituem uma indicao do nmero de
nveis de controle e do espao de controle global, respectivamente. A medida
que determina o nmero de mdulos que so diretamente controlados por
outro mdulo denominada:
a) Fan-in
b) Fan-out
c) Stubb
d) EAP
e) Hierarquia
MTRICAS DE SOFTWARE
61
Questo 2
A estrutura de programa representa a organizao de seus mdulos. A
profundidade e largura da estrutura constituem uma indicao do nmero de
nveis de controle e do espao de controle global, respectivamente. A medida
que indica quantos mdulos controlam diretamente determinado mdulo, isto ,
indica o nmero de superiores imediatos que ele possui denominado:
a) Fan-in
b) Fan-out
c) Stubb
d) EAP
e) Hierarquia
Questo 3
A caracterstica da hierarquia de controle da estrutura do software que indica o
conjunto de componentes que diretamente invocado ou usado como dados
por determinado componente denominada:
a) Factoring
b) Visibilidade
c) Extenso
d) Conectividade
e) Navegabilidade
Questo 4
No Fan-out, quantos mdulos subordinados devemos ter, no mximo?
a) 3
b) 5
c) 6
d) 7
e) 8
Questo 5
No Fan-in, quantos mdulos superiores, no mximo, devemos ter?
MTRICAS DE SOFTWARE
62
a) O mnimo possvel
b) Alto nmero de superiores
c) 4
d) 5
e) 6
Questo 6
Em um tratamento detalhado de mtricas de software para sistemas orientados
a objeto, Whitmire descreve algumas caractersticas distintas e mensurveis de
um projeto orientado a objeto. Assinale a opo INCORRETA:
a) Volatilidade
b) Hierarquia
c) Similaridade
d) Originalidade
e) Coeso
Questo 7
As mtricas de projeto focalizam as caractersticas da arquitetura do programa
e so verdadeiras caixa-preta no sentido de que elas no requerem qualquer
conhecimento do funcionamento interno de um determinado componente de
MTRICAS DE SOFTWARE
63
Aula 3
Exerccios de fixao
Questo 1 - B
MTRICAS DE SOFTWARE
64
MTRICAS DE SOFTWARE
65
Hierarquia
ordenada
distribuio
dos
poderes
com
subordinao sucessiva.
As caractersticas de Whitmire so: Tamanho, Comprimento, Complexidade,
Acoplamento, Suficincia, Totalidade, Volatilidade, Similaridade, Originalidade e
Coeso.
MTRICAS DE SOFTWARE
66
Questo 7 - D
Justificativa: Card e Glass definem trs medidas de complexidade de projeto de
software: complexidade estrutural, complexidade de dados, complexidade de
sistema.
Essas medidas so determinadas mediante frmulas e cculos simples.
Questo 8 - C
Justificativa: Aplicando a frmula, temos:
D = v / (fout + 1)
D = 19 / (7 + 1)
D = 19 / 8 = 2,37
Questo 9 - D
Justificativa: Complexidade de sistema (ou de um mdulo) definida como a
soma da complexidade estrutural e complexidade de dados. Portanto:
C = 15 + 30 = 45
Questo 10 - D
Justificativa: Tamanho = n + a
em que n o nmero de ns e a o nmero de arcos.
Tamanho = 15 + 12 = 27
MTRICAS DE SOFTWARE
67
Introduo
Nesta aula, voc compreender as seguintes tcnicas de estimativa: COCOMO
(bsico, intermedirio e detalhado); COCOMO II (estimativas de prazo, de custo
e de defeitos); mtodo de Putnam e a complexidade ciclomtica.
Objetivo:
1. Compreender as tcnicas de estimativa COCOMO e COCOMO II;
2. Entender o mtodo de Putnam e a complexidade ciclomtica.
MTRICAS DE SOFTWARE
68
Contedo
COCOMO
O que COCOMO?
COCOMO bsico
COCOMO
bsico
um
modelo
esttico
que
calcula
esforo
de
MTRICAS DE SOFTWARE
69
Ferramentas;
MTRICAS DE SOFTWARE
70
MTRICAS DE SOFTWARE
71
MTRICAS DE SOFTWARE
72
COCOMO intermedirio
O mtodo intermedirio uma extenso do mtodo bsico, porm, com mais
categorias de controle, como: atributos do produto; atributos de hardware;
atributos pessoais; atributos do projeto.
Atributos do produto
I Confiabilidade exigida do software;
II Tamanho do banco de dados;
III Complexidade do software.
Atributos do hardware
I Restries de desempenho de run-time;
II - Restries de memria;
III Mudanas do ambiente de software;
IV Tempo de resposta.
Atributos de pessoal
I Capacidade dos analistas;
II Capacidade dos programadores;
III Experincia na aplicao;
IV Experincia no ambiente de hardware;
V Experincia com a linguagem de programao.
Atributos do projeto
I Uso de ferramenta de software;
II Tcnicas modernas de programao;
III Prazo requerido para o desenvolvimento.
MTRICAS DE SOFTWARE
73
MTRICAS DE SOFTWARE
74
MTRICAS DE SOFTWARE
75
COCOMO avanado
No
COCOMO
avanado,
so
incorporadas
caractersticas
da
verso
planilhas
eletrnicas
e,
com
elas,
no
possvel
atender
MTRICAS DE SOFTWARE
76
MTRICAS DE SOFTWARE
77
COCOMO II
O que o COCOMO II?
O COCOMO II (segunda verso do COCOMO COnstructive COst MOdel) um
modelo objetivo de custos para o planejamento e execuo de projetos de
de
decises
de
negcio
entre
os
envolvidos
em
um
MTRICAS DE SOFTWARE
78
Mtodo de Putnam
O mtodo de Putnam considera mltiplas variveis e o ciclo de desenvolvimento
do projeto.
Com base em anlise estatstica, Putnam relacionou os comportamentos prazo
e esforo.
Equao de Putnam
Complexidade ciclomtica
O que ?
Em 1976, McCabe criou uma maneira de testar cada caminho independente de
um programa, de forma que a quantidade de casos de teste ser a
complexidade ciclomtica do programa.
Complexidade ciclomtica ou complexidade condicional uma mtrica usada
para indicar a complexidade do software; mede a quantidade de caminhos de
execuo independentes a partir do cdigo fonte.
Como calculada?
calculada a partir de um grafo de fluxo: os ns do grafo correspondem a
grupos indivisveis de comandos, e uma aresta conecta dois ns.
MTRICAS DE SOFTWARE
79
Complexidade ciclomtica
Vamos a um exemplo?
Veja como calcular a complexidade ciclomtica para um artefato de software
(VG).
Clculo
V(G) = E N + 2P
Para:
E=8P=1
N=7
V(G) = 8 7 + 2 = 3
V(G) = 3
V(G): Complexidade ciclomtica;
G: Grafo (fluxograma);
MTRICAS DE SOFTWARE
80
Concluses
Atividade Proposta
Discuta com seus colegas a importncia da adoo do modelo de estimativa de
ciusto COCOMO no processo de projeto de software a importncia de se
determinar a complexidade ciclomtica.
Chave de resposta: COCOMO, COCOMO II, Complexidade.
Referncias
PADUA Filho, Wilson de. Engenharia de Software: fundamentos, mtodos e
padres. 3. ed. Rio de Janeiro: Editora LTC, 2009.
PETERS, James F. Engenharia de Software. 3. ed. Campus, 2001.
PRESSMAN, Roger S. Engenharia de Software. 7. ed. McGraw Hill, 2011.
SOMMERVILLE, Ian. Engenharia de Software. 8. ed. McGraw Hill, 2007.
VAZQUEZ, C. E.; SIMES, G. S.; ALBERT, R. M. Anlise de ponto de funo
medio, estimativa e gerenciamento de projetos de software. So
Paulo: Editora rica, 2009.
Exerccios de fixao
Questo 1
O mtodo COCOMO um modelo de estimativa do tempo de desenvolvimento
de um software, baseado no estudo de vrios projetos, dos quais foram
MTRICAS DE SOFTWARE
81
MTRICAS DE SOFTWARE
82
e) Embutido
Questo 4
O COCOMO ____________________ mede projetos de software relativamente
pequenos, simples e com pouca inovao, com equipes de dimenso
relativamente pequena.
a) Avanado
b) Semidestacado
c) Orgnico
d) Funcional
e) Embutido
Questo 5
O COCOMO ____________________ aplicado quando as equipes de trabalho
so heterogneas em termo de experincia; por exemplo, um sistema de
processamento de transaes, como o controle de estoque.
a) Avanado
b) Semidestacado
c) Orgnico
d) Funcional
e) Embutido
Questo 6
O COCOMO II (segunda verso do COCOMO COnstructive COst MOdel) um
modelo objetivo de custos para o planejamento e execuo de projetos de
de
decises
de
negcio
entre
os
envolvidos
em
um
MTRICAS DE SOFTWARE
83
__________________
considera
mltiplas
variveis
ciclo
de
ab
bb
cb
db
MTRICAS DE SOFTWARE
84
Semidestacado
3,0
1,12
2,5
0,35
Aula 4
Exerccios de fixao
Questo 1 - B
Justificativa: O modelo COCOMO bsico calcula o esforo do software em
funo das linhas de cdigo estimadas.
MTRICAS DE SOFTWARE
85
Questo 2 - B
Justificativa: Segundo Pressman (Engenharia de Software) as classes de
projetos referentes ao COCOMO bsico so Orgnico, Semi-destacado e
Embutido.
Questo 3 - E
Justificativa: Segundo Pressman (Engenharia de Software) as classes de
projetos referentes ao COCOMO bsico so Orgnico, Semi-destacado e
Embutido.
Questo 4 - C
Justificativa: Segundo Pressman (Engenharia de Software) o COCOMO
MTRICAS DE SOFTWARE
86
MTRICAS DE SOFTWARE
87
Possui
experincia
de
20
anos
nas
reas
de
produo,
MTRICAS DE SOFTWARE
88