1 gerência de projetos: métricas de software engenharia de software inês ap.g.boaventura 1 o...

42
1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

Upload: renato-montalvo

Post on 07-Apr-2016

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

1

Gerência de Projetos: Métricas de

SoftwareEngenharia de Software

Inês Ap.G.Boaventura 1o Semestre/2001

Page 2: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

2

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

.

Page 3: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

3

O Processo de gerência de projetosA 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

Page 4: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

4

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.

Page 5: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

5

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• o próprio produto

Page 6: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

6

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.

Page 7: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

7

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?

Page 8: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

8

Estimativa é uma das principais atividades do planejamento de software.

Estima-se:

1.1. Esforço humano exigido Esforço humano exigido

2. 2. Duração cronológica do projetoDuração cronológica do projeto

3. 3. CustoCusto

Estimativa é a essência da dificuldade em controlar projetos de software

Estimativas

Page 9: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

9

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

Estimativas

Page 10: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

10

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 .

Estimativas

Page 11: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

11

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

Page 12: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

12

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

Page 13: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

13

Determinação de PrazosEnvolve 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.

Page 14: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

14

Monitoração e ControleAtividades 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.

Page 15: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

15

Métricas e Modelos de SoftwareMedir é 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 é medir a produtividade e a qualidade

Planejamento e estimativa - medida é histórica (experiências em projetos passados)

Page 16: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

16

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

Page 17: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

17

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.

Page 18: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

18

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.

Page 19: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

19

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.).

Page 20: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

20

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).

Page 21: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

21

Medidas diretas do processo de engenharia de software - custo e esforço aplicados.

Medidas diretas do produtoNú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 produtoqualidadefuncionalidadecomplexidadeeficiênciaconfiabilidaademanutenibilidade, etc.

Métricas diretas e métricas indiretas

Page 22: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

22

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 memória necessária para armazenamento.

• número de linhas de código.• número de tokens.

Métricas de Software - Uma classificação

Page 23: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

23

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.

Métricas de Software métricas orientadas ao tamanho

Page 24: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

24

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

Métricas de Software métricas orientadas ao tamanho

Page 25: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

25

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 de Software métricas orientadas ao tamanho

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

Page 26: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

26

A.1) Contagem de Tokens (Ciência de Software de Halsteaad)

Métricas de Software - métricas orientadas ao tamanho

Operadores:

-símbolos e palavras chaves que especificam uma ação

- pontuações

-simbolos aritméticos

- comandos

- símbolos especiais

- nomes de funções

Operandos:

-símbolos que representam dados

- variáveis

-constantes

- rótulos

Tamanho (em termos de tokens) =

N = N1 + N2

Vocabulário = n1 + n2

Page 27: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

27

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.

Métricas de Software - uma classificação

Page 28: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

28

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:

Métricas de Software - métricas orientadas à função

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

Page 29: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

29

B.1) Método do Ponto por Função (Albrecht)

Métricas de Software - métricas orientadas à função

Parâmetro de Medida Contagem Fator Simples

de Médio

PonderaçãoComplexo

Número de entradasdo usuário X 3 4 6 =

Número de saídasDo usuário X 4 7 7 =

Número de consultasDo usuário X 3 4 6 =

Número de arquivos X 7 10 15 =

Número de interfacesExternas X 5 7 10 =

Contagem total

Page 30: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

30

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.

Page 31: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

31

Métricas de Software - métricas orientadas à função

Pontue cada fator numa escala de 0 a 5

Fi:

1. O sistema requer backup e recuperação confiáveis?2. São exigidas comunicações de dados?3. O desempenho é crítico?4. Há funções de processamento distribuída?5. 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?

Page 32: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

32

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

Page 33: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

33

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

Page 34: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

34

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 post-mortem da efetividade do processo de engenharia de software. Concentram-se :

- no número de defeitos descobertos

- na manutenibilidade do sistema

Page 35: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

35

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)

Page 36: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

36

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

Page 37: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

37

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.

Page 38: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

38

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

Page 39: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

39

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.

Page 40: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

40

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 de mudanças.

Page 41: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

41

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

Page 42: 1 Gerência de Projetos: Métricas de Software Engenharia de Software Inês Ap.G.Boaventura 1 o Semestre/2001

42

Coleta, computação e avaliação das métricas

Processo de engenharia de software

SoftwareColeta dos

dados Computação das métricas

Profissionais

GerentesAvaliação dos dados

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.