Número de Arquivos - Páginas Pessoais

Propaganda
Fundamentos de Engenharia de
SW
Métricas de SW
Prof. Eber
2015/2
Alguns problemas práticos das fábricas de SW





Quanto custa a construção de um produto ?
Quanto tempo demora a construção ?
Qual é a produtividade de nossa equipe ?
Quanto gastamos em retrabalho ?
Nossa produtividade está melhorando?
Medidas, métricas e indicadores

Métrica:


Medida:


define grau com que um sistema, componente, ou
processo possui um determinado atributo [IEEE
93]
indicação quantitativa da extensão, quantidade,
dimensão, capacidade ou tamanho de alguns
atributos de um produto ou processo
Indicador:

combinação de métricas
Métricas de Processo (Grady)

Métricas privadas (individuais):


taxa de defeitos individuais, por módulos, erros
encontrados durante o desenvolvimento, linhas de
código ou pontos por função por módulo ou função
Métricas públicas (consolidação das métricas
privadas):

taxa de defeitos por projeto, esforço, tempo consumido
em uma visão ampla
Exemplos de métricas de Processo






Erros remanescentes
Defeitos relatados por usuários
Produtos entregues
Recursos humanos consumidos
Tempo consumido
Conformidade com os prazos
Métricas de Projeto

Quem usa:


gerente de projeto e equipe de software
Para que servc:




Estimar de esforço baseado em projetos passados
Avaliar progresso (estimado x realizado)
Evitar atrasos através da identificação de problemas potenciais e
riscos
Melhorar qualidade, reduzindo defeitos, retrabalho e custo do
projeto
Métricas orientadas ao tamanho do SW

Registram dados históricos de projetos:





Coletam indicadores úteis:





linhas de código
esforço (pessoas/mês),
custo,
erros
erros e defeitos, custo,
erros por pessoa/mês,
linhas de código por pessoa/mês,
custo por página de documentação e etc.
Problemas:




Dependente a linguagem de programação empregada
Penalizam códigos bem escritos
Não adaptáveis a linguagens visuais
Dificuldade para estimar projetos
Métricas orientadas à funcionalidade

Medem a funcionalidade do sistema (valor)

Ponto de função (Albrecht) :

relação empírica entre tipos de domínio da informação do
software e o seu nível de complexidade estimado
Pontos de função

Criado por Peter Albrecht em 1984

Pressupostos de Albrecht:





FPs isolam os fatores intrínsecos do sistema
Medida é baseada na visão externa e é independente de tecnologia
Medida pode ser feita bem cedo no ciclo do projeto
Compreensível por usuários não-técnicos
Baixo custo de aplicação
Pontos de função
Pontos de função (FP) dependem de:

Unadjusted function points - UFP
parâmetros observáveis pelo usuário

Technical Complexity Factor -TCF
dificuldades da implementação
FP = TCF x UFP
Pontos de função não-ajustados -UFP
UFP =soma ( função observáveis pelo usuário
*
complexidade da função)
Funções observáveis:
arquivos, interfaces, entradas, saídas, consultas
Complexidade:
simples, média, complexa
Pontos de função não-ajustados -UFP

Funções observáveis são de dois tipos:

Arquivos:



internos
interface (externos)
Transacionais:



entradas
saídas
consultas
Mensuração de Software
Parâmetro de medição
Contagem Fator de Peso por complexidade Total
Simples
Média
Complexa
______x
3
4
6
Número de Entradas de usuário
______x
4
5
7
Número de Saídas de usuário
______x
3
4
6
Número de Consulta de usuário
______x
7
10
15
Número de Arquivos
______x
5
7
10
Número de Interface Externas
Total = UFP = número de pontos de função não
ajustados
Contagem dos arquivos internos
Arquivos internos: grupo lógico de dados sob o ponto de vista
do usuário.
Inclui todos os arquivos lógicos que são gerados, usados ou
mantidos pelo sistema.
Equivalente a um tipo de entidade conceitual
Exemplos:
arquivos
tabelas do banco de dados
Contagem dos arquivos internos
Complexidade dos arquivos internos depende de:
número de registros lógicos do arquivo
número de elementos de dados armazenados

R.L.




1
2-5
6+
Elementos de dados
1-19
20-50
S
S
S
M
M
C
51+
M
C
C
Contagem dos arquivos de interface
Interface: Arquivos passados ou compartilhados entre
sistemas.
Exemplos:
arquivos compartilhados
bancos compartilhados
bibliotecas de rotinas
Contagem dos arquivos de interface
Complexidade dos arquivos de interface depende de:
número de registros lógicos do arquivo
número de elementos de dados armazenados

R.L.




1
2-5
6+
Elementos de dados
1-19
20-50
S
S
S
M
M
C
51+
M
C
C
Contagem da entradas
Entrada: transação com dados ou controles do usuário que:
(i) entram pelam borda externa do sistema
(ii) adicionam ou alteram dados num arquivo lógico
interno.

Exemplos:
 arquivos de entrada
 formulários de entrada
Contagem da entradas
Complexidade de uma entrada é uma função de:
-número de elementos de dados que cruzam a interface e
atualizam campos dos arquivos internos
-número de arquivos lógicos referenciados pela transação.
Tabela de complexidade das entradas
Arquivos

0-1
2-3
Elementos de dados
1- 4
5 -15
S
S
S
M
16+
M
C

4+
M
C


C
Contagem da saídas

Saídas: dados ou controles de saída que saem pela interface
do sistema após o processamento ter ocorrido.

Exemplos:
 arquivos de saída
 relatórios de saída: impressos ou em tela, mensagens do
sistema e de erro
Contagem da saídas

Complexidade das saídas é uma função de:
 número de tipos de elementos de dados distintos
apresentados na saída
 número de arquivos referenciados

Tabela de complexidade

Arquivos




0-1
2-3
4+
Elementos de dados
1-5
S
S
M
6-19
S
M
C
20+
M
C
C
Contagem das consultas
Consultas : entrada de dados que causam uma saída imediata.
É sempre uma combinação de uma entrada com uma saída.
A saída da consulta não deve usar dados derivados.
Exemplos:
prompts
helps
Contagem das consultas

Complexidade das consultas é escolhida como sendo a
maior complexidade entre a sua parte de entrada e sua
parte de saída.

Tabela de complexidade

Arquivos




0-1
2-3
4+
Elementos de dados
1-5
S
S
M
6-19
S
M
C
20+
M
C
C
Exemplo de cálculo de PFs
Estimativa do sistema:
Arquivos: 3 simples
Interfaces: 1 simples
Entradas: 5 simples, 2 médias, 2 complexas
Saídas: 3 simples
Consultas: 1 simples, 2 médias
Cálculo de pontos
Entradas
Saídas
Arquivos
Interface
Consultas
Total
= 5*3+2*4+2*6
= 3*4
=3*7
=1*5
=1*3+2*4
=35
=12
=21
=5
=11
=84 pontos
Fator de complexidade técnica (TCF)

TCF = 0.65 + 0.01 x  Fi

A cada um dos 14 fatores de complexidade técnica atribua um valor entre 0 e 5
significando a importância deste fator no sistema.

Valor 0 (zero) significa que o fator não se aplica e valor 5 (cinco) significa que tem
um peso muito importante.

Quais os limites do fator de correção introduzido pelos
TCFs ?
Fator de complexidade técnica (TCF)

Fatores de complexidade técnica














F1- Comunicação de dados
F2-Processamento distribuído
F3-Desempenho
F4-Utilização do equipamento
F5-Volume de transações
F6-Entrada de dados on-line
F7-Eficiência do usuário final
F8-Atualização on-line
F9-Processamento complexo
F10-Reutilização de código
F11-Facilidade de implantação
F12-Facilidade operacional
F13-Múltiplos locais
F14-Facilidade de alteração
Exemplos de medidas baseadas em PFs







1 PF = 100 linhas de código fonte
1.15
número de páginas de documentação = PF
número de casos de teste = PF 1.2
defeitos = PF 1.25
prazo do projeto(meses)= PF 0.4
equipe (pessoas)= PF/150
equipe de manutenção= PF/500
(Capers Jones)
Pontos de função e linhas de código
Linguagem de
Programação
Média de Linhas de Código/pontos
de função
Assembly
320
C
128
COBOL
106
FORTRAN
106
Pascal
90
C++
64
Ada95
53
Visual Basic
32
Smalltalk
22
Powerbuilder
16
SQL
12
Medidas de produtividade
Planejamento de projeto deve responder:


Qual a duração do projeto?
Quantas pessoas serão necessárias para a sua
execução?
Para responder é necessário saber:

Quanto trabalho um profissional consegue
produzir por unidade de tempo.
Medidas de produtividade
Porque a estimativa da produtividade é difícil?

objetivos conflitantes dos projetos
falta de uma especificação detalhada do produto
variação no esforço de reuso

emergência de novas técnicas, processos e métodos.


(Stutzke)
Medidas de produtividade
Baseadas em linhas de código


DSI - “delivered source instructions”
NCSS - “non-commented source statements”
Baseadas em funcionalidade

pontos de função
Estimando esforço de desenvolvimento
Dados:
1-Uma estimativa para o número de pontos de função de um
sistema. (NPF)
2-Uma estimativa da produtividade da equipe em Pontos de
função / homem.mês (PR) ( obtida a partir do histórico da
empresa)
Calcular a distribuição de probabilidade para a variável
“esforço”(E) :
E= NPF/PR
Estimando esforço
Fatores do esforço necessário para uma atividade

E = Esforço (Pessoas.Mes ou PM)

S= Tamanho da atividade (p.ex. M2)

P = Produtividade da equipe (p.ex. M2/PM)

E = S/P
Bibliografia



1-Jones, C.; "Applied software measurement", McGraw-Hill, 1991
2-International Function Point Users Group - Function Point Counting
Practices Manual (Release 4.0), January, 1994
(www.bannister.com/ifpug/home/docs/docs.html)
3- Symons, C. Function Point Analysis: Difficulties and
improvements; IEEE Transactions on Software Engineering (TSE),
Volume 14. Volume 14, Number 1, January 1988
Download