Gerência de Projetos: Métricas
de Software
Engenharia de Software
Inês Ap.G.Boaventura
1o Semestre/2001
1
Tópicos
- O processo de gerência de software
- Iniciando um projeto de software
- Métricas e Medidas
- Estimativa
- Análise dos Riscos
- Determinação dos Prazos
- Monitoração e controle
- Metricas e Modelos de Software
.
2
O Processo de gerência de projetos
A gerência é a primeira camada do processo de engenharia
de software
 Para um trabalho bem sucedido deve compreender:
– o trabalho a ser feito
– os riscos envolvidos
– os recursos exigidos
– as tarefas a serem executadas
– os marcos de referência a serem acompanhados
– o esforço necessário
3
Iniciando um projeto de software
Antes que um projeto possa ser planejado deve-se:
• Estabelecer os objetivos e o escopo do projeto.
• Considerar soluções alternativas.
• Identificar as restrições administrativas e
técnicas.
4
Métricas e Medidas
 O controle é impossível sem medições e feedback.
 Não se pode controlar o que não se pode medir
• A extensão do controle depende da precisão da
medição.
• Qualquer coisa que não se pode medir está fora
de controle.
 Medições e Metricas ajudam a entender:
• o processo técnico usado para se desenvolver
um produto
5
• o próprio produto
Métricas e Medidas
Produto  medido para avaliar a sua qualidade
Processo  medido para melhorá-lo
Medição  documentação de efeitos passados
Uso  previsão de quantificação de efeitos futuros
(As estatísticas não podem prever, mas podem deduzir)
A medição e a inferência estatística são usadas em várias áreas
para projetar o desempenho futuro.
6
Métricas e Medidas
Medição  pode levar a controvérsias e discussões.
 Que métricas usar?
 Como os dados compilados devem ser usados?
 É justo usar medições para se comparar pessoas,
processos e produtos?
7
Estimativas
Estimativa é uma das
planejamento de software.
principais
atividades
do
Estima-se:
1. Esforço humano exigido
2. Duração cronológica do projeto
3. Custo
Estimativa é a essência da dificuldade em controlar
projetos de software
8
Estimativas
Causas de estimativas de software mal feitas
 Falta de especialização em estimativas (falta de treino)
 Falta de se fazer provisões adequadas para
contrabalançar o efeito das distorções.
É preciso muito pouco envolvimento do ego para estimativas
mais realistas.
 Falta de conhecimento exato sobre o que vem a ser
uma estimativa.
 Falta de habilidade com os problemas políticos
norma: estimativas devem ser usadas para criarem incentivos
 Falta de informações úteis para o processo de estimativas
9
Estimativas
Atributos comuns de técnicas de estimativas:
• o escopo do software deve ser estabelecido antecipadamente.
• métricas de software são utilizadas.
•histórico de medidas passadas é usado como uma base.
• o projeto é particionado em pequenas partes que são
estimadas individualmente .
10
Análise dos Riscos
 Aspecto crucial para um bom gerenciamento de
projeto de software.
- riscos técnicos
- riscos em extrapolar o tempo previsto
- desvio do cronograma e custo.
Riscos são áreas de incertezas
11
Análise dos Riscos
 Gerenciamento de projeto eficaz envolve
identificar as áreas de risco e administrá-las
adequadamente:
- avaliação dos riscos
- colocá-los em ordem de prioridade
- estabelecer estratégias de administração dos
riscos
- resolução dos riscos
- monitoração dos riscos
12
Determinação de Prazos
Envolve as seguintes atividades:
–
Planejamento da programação a ser realizada
–
Identificação do conjunto de tarefas de projeto
–
Estabelecimento das interdependências entre as tarefas
–
Estimativa do esforço associado a cada tarefa
–
Atribuição de pessoas e outros recursos para a realização e
tarefas específicas.
13
Monitoração e Controle
Atividades que iniciam logo após o estabelecimento da
programação de desenvolvimento:
–
Rastreamento no programa de desenvolvimento.
–
Determinação do impacto do não cumprimento dos prazos.
–
Redirecionamento de recursos, reorganização de tarefas,
modificação nos compromissos de entrega.
14
Métricas e Modelos de
Software
Medir é fundamental em qualquer disciplina de
engenharia.
Métricas de software - referem-se a uma ampla
variedade de medidas de software de computador
Para o gerenciamento - objetivo
produtividade e a qualidade
é
medir
a
Planejamento e estimativa - medida é histórica
(experiências em projetos passados)
15
Medidas Subjetivas e Objetivas
medidas subjetivas baseadas em idéias individuais sobre
o que deveria ser a métrica. O resultado será diferente
com diferentes observadores.
medidas objetivas - ou algoritmicas - é aquela que ode
ser calculada precisamente de acordo com um algoritmo.
Seu valor não se altera devido a alterações no tempo,
local ou observador
16
Métricas do processo e métricas do
produto
Medidas de características do software podem ser útil
ao longo de todo o ciclo de vida do software
Métricas são frequentemente classificadas como
métricas do processo ou métricas do produto, e são
aplicadas durante o processo de desenvolvimento ou ao
prodduto de software desenvolvido.
17
Métricas do Processo
Quantificam atributos do processo de desenvolvimento
e do ambiente de desenvolvimento.
 Métricas de recursos: experiência do programador,;custo
de desenvolvimento e manutenção.
Métricas para o nível de experiência do pessoal:
número de anos que uma equipe está usando uma linguagem de
programação; número de anos que um programador está na
organização; etc.
 Outros fatores relacionados ao desenvolvimento incluem:
técnicas de desenvolvimento.
auxílio para programação.
técnicas de supervisão, etc.
18
Métricas do Produto
São medidas do produto de software. Podem não
revelar nada sobre como o software foi desenvolvido.
Incluem:
 O tamanho do produto (linhas de código, etc.).
 A complexidade da estrutura lógica (recursão, fluxo de
controle e profundidade de laços aninhados).
 A complexidade da estrutura de dados.
 Funções (tais como tipo de software: comercial, científico,
etc.).
19
Métricas do processo e do produto
 Pode ser difícil classificar uma métrica.
Exemplo: o número de defeitos descobertos duranete o
teste formal depende do produto (número de segmentos
de código que estão errados) e do processo usado na fase
de teste (a extensão do teste).
20
Métricas diretas e métricas indiretas
Medidas diretas do processo de engenharia de software custo e esforço aplicados.
Medidas diretas do produto
Número de linhas de código produzidas.
velocidade de execução.
tamanho de memória.
Número de defeitos registrados em um tempo especificado.
Medidas indiretas do produto
qualidade
funcionalidade
complexidade
eficiência
confiabilidaade
manutenibilidade, etc.
21
Métricas de Software - Uma classificação
A) Métricas Orientada ao Tamanho

São medidas diretas do software e do processo por
meio do qual ele é desenvolvido.
 Existem várias maneiras de representar o tamanho (ou
magnitude) de um programa:
• quantidade
de
armazenamento.
memória
necessária
para
• número de linhas de código.
• número de tokens.
22
Métricas de Software métricas orientadas ao tamanho
A.1) Linhas de Código
Definição: uma linha de código é qualquer linha do texto
de um programa, exceto comentários e linhas em
branco, sem levar em conta o número de comandos ou
fragmentos de comandos em uma linha. Estão
incluídas na definição de linhas de código todas as
linhas que contém cabeçalho do programa, declarações
e comandos executáveis.
23
Métricas de Software métricas orientadas ao tamanho
A.1) Linhas de Código
Vantagens:
• É fácil de calcular.
• É o fator mais importante para muitos modelos de estimativa.
Desvantagens:
• Dependente da linguagem de programação.
• Penalizam programas bem estruturados, porém mais curtos
• O uso em estimativas requer um nível de detalhes que pode ser
difícil de conseguir
24
Métricas de Software métricas orientadas ao tamanho
A.1) Contagem de Tokens (Ciência de Software de Halsteaad)
Definição:
Um programa é considerado como sendo uma coleção de tokens
que podem ser classificados como operando e operadores.
Métricas básicas definidas como:
n1 = número de operadores únicos
n2 = número de operandos únicos
N1 = número total de operadores
N2 = número total de operandos
25
Métricas de Software - métricas orientadas ao
tamanho
A.1) Contagem de Tokens (Ciência de Software de Halsteaad)
Operadores:
-símbolos e palavras chaves que
especificam uma ação
Operandos:
-símbolos que representam dados
- variáveis
- pontuações
-constantes
-simbolos aritméticos
- rótulos
- comandos
- símbolos especiais
Tamanho (em termos de tokens) =
- nomes de funções
N = N 1 + N2
Vocabulário = n1 + n2
26
Métricas de Software - uma classificação
B) Métricas orientadas à função

São medidas indiretas do software.

Concentram-se na funcionalidade ou utilidade do
programa.

Função : coleção de comandos executáveis que
realizam uma certa tarefa.
27
Métricas de Software - métricas orientadas à função
B.1) Método do Ponto por Função (Albrecht)

Os pontos por função (FPs) são derivados usando-se uma
relação empírica baseada em medidas de informações e
complexidade de software.
Cinco caractérísticas do domínio da informação são consideradas:
Número de entradas do usuário
Número de saídas do usuário
Número de consultas do usuário
Número de arquivos (ou número de
agrupamentos lógicos em um BD)
Número de interfaces externas
28
Métricas de Software - métricas orientadas à função
B.1) Método do Ponto por Função (Albrecht)
Parâmetro de Medida
Contagem
Fator
Simples
de
Médio
Ponderação
Complexo
Número de entradas
do usuário
X 3
4
6
=
Número de saídas
Do usuário
X 4
7
7
=
Número de consultas
Do usuário
X 3
4
6
=
Número de arquivos
X 7
10
15
=
Número de interfaces
Externas
X 5
7
10
=
Contagem total
29
Métricas de Software - métricas orientadas à função
B.1) Método do Ponto por Função (Albrecht)
Para computar os pontos por função, a seguinte
relação é usada:
FP = contagem total  [0.65 + 0.01 X SOMA(Fi)
onde Fi (i = 1 a 14) são “valores de ajuste da
complexidade”
Os valores da equação e os fatores de peso são
determinados empiricamente.
30
Métricas de Software - métricas orientadas à função
Pontue cada fator numa escala de 0 a 5
Fi:
1.
2.
3.
4.
5.
O sistema requer backup e recuperação confiáveis?
São exigidas comunicações de dados?
O desempenho é crítico?
Há funções de processamento distribuída?
O sistema funcionará em um ambiente operacional existente, intensivamente
utilizado?
6. O sistema requer muitas entradas de dados?
7. Existe muita interação homem-máquina?
8. A entrada, saída, arquivos ou consultas são complexos?
9. O processamento interno é complexo?
10.conversão e instalação estão incluídas no projeto?
11. O sistema é projetado para múltiplas instalações em diferentes organizações?
12. A aplicação é projetada de forma a facilitar mudanças e o uso pelo usuário?
13. O sistema requer muita entrada de dados?
14. Existe muita atualização de arquivos on-line?
31
Métricas de Software - métricas orientadas à função
Vantagens:
– FP é independente da linguagem de programação.
– Baseia-se em dados que tem mais chance de serem
conhecidos logo no início de um projeto.
Desvantagens:
– É baseado em dados subjetivos.
– Dados do domínio da informação são difíceis de serem
compilados a posteriori.
– FP não tem nenhum significado físico
32
Métricas de Qualidade de Software
Qualidade pode ser medida ao longo do processo de
engenharia de software e depois que o software fi
entregue ao cliente.
Métricas derivadas antes da entrega do produto - base
quantitativa para tomadas de decisão referentes a
projeto e testes:
complexidade do programa
modularidade efetiva
33
Métricas de Qualidade de Software
Métricas usadas após a a entrega do produto - dão ao
gerente e ao pessoal técnico uma indicação postmortem da efetividade do processo de engenharia de
software. Concentram-se :
- no número de defeitos descobertos
- na manutenibilidade do sistema
34
Métricas de Qualidade de Software
O sofware deve ser avaliado a partir dos três pontos de
vista :
(1) Operação do Produto
(2) Revisão do Produto (mudando-o)
(3) Transição do Produto (mudando-o para
funcionar em outro ambiente - migrando-o)
35
Algumas medidas da Qualidade
Corretitude
Definição : é o grau em que o software executa a função que é
dele exigida.
Medida mais comum: defeitos/KLOC
defeito: falta verificada de conformidade aos requisitos.
Contado ao longo de um período de tempo padrão
36
Algumas medidas da Qualidade
Manutenibilidade
Definição : é a facilidade com que um programa pode ser
corrigido se um erro for encontrado, adaptado se o sei ambiente se
modificar ou ampliado se o cliente desejar novas funcionalidades.
Medida mais comum: tempo médio para a mudança
tempo para entender a mudança, para projetar uma alteração
adequada, implementar a mudança, testá-la e colocá-la em
operação.
37
Algumas medidas da Qualidade
Integridade
Definição : mede a capacidade que um sisema tem de suportar
ataques (acidentais ou intencionais) à sua integridade. Ataques
podem ser feitos tanto aos programas, dados e documentos
Medida: Integridade =  [ 1- ameaça X (1 - segurança) ]
ameaça - probabilidade de que um ataque de um tipo ocorrerá
dentro de determinado tempo.
segurança - probabilidade de que o ataque de um tipo específico
será repelido.
Ambas são estimada ou derivada a partir de evidência empírica
38
Algumas medidas da Qualidade
Usabilidade
Definição : usabilidade é uma tentativa de medir o quanto um
programa e amigavél ao usuário (user friendliness) e pode ser
medida segundo quatro características:
(1) Habilidade física/e ou intelectual para se aprender a trabalhar
com o sistema
(2) Aumento da produtividade sobre a abordagem que o sistema
substitui.
(3) O tempo exigido para se tornar moderadamente eficiente no
uso do sistema
(4) Avaliação subjetiva dos usuários em relação ao sistema.
39
Integração de métricas no processo de
Engenharia de Software
A realização de medições é uma atividade incomum => o
problema é cultural
Razões para medir o processo de engenharia de software:
• Medir é importante para determinar melhorias (se não
estamos melhorando estamos perdidos).
• A medição faz parte de uma série de medicações que
podem ajudar a aflição de software.
• A medição torna as questões de estimativas de projeto, a
garantia de qualidade e produtos mais econômicos e
desenvlovidos no prazo mais admistráveis
• A nível técnico, medições são importantes para determinar
parâmetros como quantidade de teste necessário e impacto
40
de mudanças.
Estabelecimento de uma linha básica (baseline)
Linha básica  dados compilado de projetos passados de
desenvolvimento de software.
Linha básica de métricas  benefícios em nível estratégico,
técnico e de projeto.
Diretrizes para a coleta de dados históricos:
• Devem ser precisos (evitar chutes)
• Devem ser obtidos do maior número de projetos possível
• As medições devem ser consistentes
• As aplicações devem ser idênticas ao trabalho que será
estimado
41
Coleta, computação e avaliação das métricas
São os passos para se começar um programa de métricas
Linha básica (banco de dados contendo medições do processo
e do produto) - capacitam os profissionais de software e
gerentes ter uma melhor visão do trabalho que realizam e do
produto que produzem.
Processo de engenharia
de software
Coleta dos
Software
dados
Computação
das métricas
Gerentes
Avaliação
dos dados
Profissionais
42
Download

Métricas de software - Departamento de Ciências de Computação e