Transcript
Page 1: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Métricas e estimativasem processos de

Produção de software

Luigi Silva Motawww.luigi.pro.br

[email protected]

Page 2: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Estrutura do curso:

Porque Medir (Motivação)

Tamanho X Esforço - (Estimativas)

Modelos Funcionais (APF & Cia)

Modelos Paramétricos (COCOMO & Cia)

Estimativas a partir do tamanho (O que fazer com os números)

Métricas, Estimativas e MDS (Esforço por fases do processo de

produção de software)

Resultados aplicados ao gerenciamento de projetos de

software - (Usando, registrando e aprendendo)

Programa

Page 3: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Porque Medir

Não se consegue controlar aquilo que não se consegue medir

(Tom de Marco)

Não se consegue medir aquilo que não se consegue perceber objetivamente

(Autor Desconhecido)

Page 4: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Porque MedirAs métricas permitem que um processo ou produto do ciclo de desenvolvimento de um sistema informatizado seja analisado da mesma forma que um objeto físico pode ser caracterizado pelo seu tamanho, cor ou peso

Para: Dimensionar Delimitar Materializar Entender ...

E S T I M A R

Page 5: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Existem várias métricas disponíveis

Efetivamente, qualquer forma de quantificar pode ser considerada como uma métrica. No entanto padrões de medição se tornam necessários para que a métrica se torne útil como elemento de dimensionamento, de estimativa e de comparação

Medir é dimensionar uma realidadeou uma abstração relevante da

realidade.

Page 6: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Qt

QtSala

Serviços

BCozinha

10m

6mM

edi

r

Estimar

Requisitos Funcionais

+

Acabamento ?Jardins ?

... ???

OutrosRequisitos

Esforço

Custos

MateriaisConstrução(programação)

GerenciaisAnalistas

..... !!!!

Planejar / Planejar / GerirGerir

Cliente + Arquiteto

Medidade Tamanho

5 2,5 2,5

3221

3

Engenheiro

Especialistas

Page 7: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

O que medir ? Como medir ?•Linhas de código?•Número de programas, de classes, de objetos, de...?•Como avaliar as complexidades dos elementos que serão usados na medição?

O que se busca na medição de um software?

A dificuldade está em medir algo de características intelectuais e de difícil dimensionamento.

Mas

Dimensionar o seu tamanho para estimar o esforço do trabalho necessário

para a sua fabricação.

Page 8: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Componentes Básicos

Métricas

Estrutura Organizacional

Métodos

Processos

Padrões

Ferramentas

Page 9: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Métricas

O que esperar de um processo de medição

A prática da métrica deve obter um conjunto básico de valores, também chamado de métricas primitivas.

Tamanho

Esforço

Duração

Equipe

Produtividade

Taxa de entrega

Taxa de defeitos

Margem de erro

.......

Métricas primitivas subsidiam

métricas compostas

.......

Page 10: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Métricas

Métricas X Planejamento e acompanhamento X Alocação de recursos

Estimativas

A Integração entre:

Dimensiona o processo de desenvolvimento de software(e seus custos envolvidos)

Page 11: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Métricas - Modelo de atuação sugerido

Unidade Central

Unidade LocalUnidade Local Unidade Local

Contato métricas/projeto

Contato métricas/projeto

Contato métricas/projeto

Define padrões <=

Confecciona métricas corporativas <==> Analisa e compara a organização

=> FeedBack

=> Treinamento operacional=> Suporte e atendimento => Base de dados Histórica=> Casos avançados

=> Coleta de métricas => Submete as métricas a homologação nas unidades Locais=> Apura realizado=> Reporta resultados

=> Homologa métricas coletadas

Page 12: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Escopo

TempoRecursos

CustosFuncionalidades

Identificadas

PrazosEquipe

Quanto ?

Tamanho

Que subsidiam o planejamento efetivo de um projeto, a fim de viabiliza-lo

GESTÕES

Page 13: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Esforço

Tamanho

.

..

. ...

. ..

......

.

Tamanho X Esforço Prazo, Equipe, Custo

Page 14: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Medir e Estimar

Tomadas de decisões, em níveis gerenciais;Subsidiam:

Avaliações, em níveis operacionais.

São atividades que consomem tempo na geração de númerosprecisos e significantes.

Page 15: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Auxiliando no planejamento e controle do processo de desenvolvimento de software.

Aumentando a expectativa de sucesso de um projeto.

Page 16: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

CMM

PMI

MDS

Métricas

Requisitos

Processode

Desenvolvimentode

Software

Estimativas

Page 17: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Pontos de controle em processos de produção de software

Estimativas

Ma r

g em

de

err o

Tempo

Requisitos

Análise

Protótipo

Entrega

A

ntep

roje

t o

Page 18: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Gestão de Integração

Gestão de Escopo

Gestão de Tempo

Gestão de Recursos

Gestão de Custos Gestão de Qualidade

Gestão Ambiental

Gestão de Pessoal

Gestão de Comunicações Gestão de Riscos

Gestão de Suprimento

Gerenciar o Projeto

Planejar

Executar Verificar

Agir

Métrica

Page 19: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Métricas & Estimativas

Tamanho

Prazo

Esforço

Equipe Custo

Projeto

Page 20: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Modelos de Estimativas

Baseados em Analogias

Baseados em Atividades

Relações simples de estimativas

Modelos paramétricos de estimativas

Opiniões de especialistas e Bases Históricas

WBS

Produtividade

COCOMO,SLIMKnowledge Plan

Esforço = Produtividade x Tamanho

Esforço = C x TamanhoE x Fatores multiplicadores

Fatores de performancenão lineares

Constante Fatores de performance llineares

Page 21: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Modelos Funcionais

Funcionalidade

Uma Função

Um Serviço

Uma Capacidade

Algo Visto, Tangível, com sentido tanto para usuários quanto para desenvolvedores

Que trabalhando em conjunto produzemum determinado resultado

Page 22: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

APF & Cia

APF - Análise de Pontos por Função

UCP - Use Case Point

EFPA - Enhancement Function Points - NESMA

FFPA - Full Function Points - COSMIC

MK II - Function Point Analysis - UKSMA

Page 23: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

IntroduçãoAnálise de Ponto de Função

Técnica de métrica que estabelece o tamanho de softwarea partir das funcionalidades definidas pelo

usuários, eindependente de aspectos de implementação tecnológica.

IFPUG - International Function Point User Group

Organização sem fins lucrativos, dirigida por associados, com objetivo de incentivar e

incrementar o uso da técnicaAPF e outras metodologias de métrica.

Page 24: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

O sistema sob a ótica do usuárioVisão do UsuárioRepresenta uma descrição formal do negócio, descrito na sua própria linguagem. Desta forma é uma descrição das Funcionalidades conforme são vistas ou reconhecidas por ele.

Entradas Saídas

Arquivos

Arquivos

É um conjunto de entradas e saídas, além de arquivos que cumprem uma determinada função de armazenagem

Sistema

Page 25: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

1979 - Allan Albrecht, (IBM)

1984 - Criação do IFPUG e estabelecimento do Counting Practices Manual (CPM) - (www.ifpug.org)

1998 - Criação do BFPUG - (www.bfpug.com.br)

1999 - Publicação da Release 4.1.1 do CPM

Histórico:

Page 26: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Objetivos e conceitos básicosMedir o software através da quantificação da funcionalidade solicitada e adquirida pelo cliente tendo como base primária sua visão lógica sobre o negócio;

Medir o desenvolvimento e a manutenção de software independentemente da tecnologia utilizada na sua implementação;

Obter uma medida consistente para o desenvolvimento e manutenção de software entre projetos e organizações diferentes.

Page 27: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

• Independente de tecnologia• Unidade de medida padrão para software• Técnica de estimativa e métrica de software• Simples o suficiente para:

Assim, a medida torna-se:

•Ser compreensível por não-técnicos

•Usada para estimar um projeto antes mesmo dele iniciar

•Ser utilizável desde o início do projeto

•Ser uma medida de comparação entre projetos e empresas

•Facilita negociações de escopo e abrangência de projetos

•Homogeneíza o diálogo cliente/desenvolvedor

Page 28: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Ainda como benefícios do uso da métrica APF temos:

Subsidia estimativas futuras - (bases históricas)Subsidia confecção de cronogramasPermite o estabelecimento e acompanhamento de indicadores de desenvolvimento de software no contexto de FábricaExige qualidade de outras área importantes do ciclo de desenvolvimento de softwareApoia atividades de gerência de projetosApoia atividades de melhoria contínua da qualidade

Page 29: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Análise por Pontos de Função - O Processo de contagem na sua totalidade

APF

Funções de Dados Funções Transacionais

ALIs AIEs EEs CEs SEs

PF não ajustados (PFb)

Determinar Fator de ajuste (FA)

PFajustados = PFb X FA

Reusabilidade

Performance

Interface.........

Funções distribuídasVolume de transações

Processamento Complexo

.........

Classificaçãode

Complexidade

Pontuação

Classificaçãode

Complexidade

Pontuação

Page 30: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

AIEEE

SE

CE

Aplicativo

Outros Aplicativos

SE

EE

CE

ALI AIE

Page 31: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

É definido o tipo de contagem:Novos ProjetosUtilizado para dimensionar o tamanho de um projeto novo de desenvolvimento, medido em PF (pontos por função) Inclui conversão

de dadosProjetos de MelhoriaUtilizado para cálculo de manutenção em uma aplicação já existente. Medeinclusões, alterações e exclusões de funções (dados ou transações)

Inclui conversão de dadosAplicaçõesUtilizado para dimensionar o tamanho real de uma aplicação já construída.

NÃONÃO inclui conversão de dados

Definindo os propósitos de uma contagemEstimar esforço para: Desenvolver novo sistema ou evoluir um já existente ?Contar a base instalada de aplicativos ?

Comparar funcionalidades entre pacotes de aplicativos ?

Aplicativo Conversão(implantação)

Aplicativo

Aplicativo CV

Evoluir um aplicativo já existente ?

Page 32: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

EscopoDefine as funções que serão incluídas em uma contagem em particular.

O escopo define um conjunto (ou subconjunto) do software sendo medidoO propósito de uma contagem influencia na determinação de seu escopoIdentifica quais funcionalidades serão incluídas na contagem assim como provê respostas relevantes aos problemas sob investigação

Pode incluir mais de uma aplicação

Desta forma:

Page 33: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

FronteiraÉ como uma membrana que separa o usuário e o sistema sendo contado

Separa o que é interno e externo a uma aplicação sendo contada. Assim, confina os dados lógicos que são mantidos pela aplicação e auxilia na identificação dos dados lógicos que são referenciados mas não mantidos por ela. É uma interface conceitual sendo definida pela visão do usuário (separações funcionais, isto é, o que o usuário pode perceber e descrever) e não por considerações tecnológicas.

Age como uma membrana por onde passam (fluem) dados processados pelasfuncionalidades (transações)Pode incluir mais de uma aplicação

Desta forma a Fronteira:

No caso de manutenções evolutivas, a fronteira deve ser posicionada de forma coe-rente com a fronteira estabelecida para o sistema original.

A Fronteira pode envolver várias aplicações ou vários módulos de uma mesma aplicação, dependendo do escopo definido para a contagem

Page 34: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Exemplo 1Suponha a seguinte situação:Uma determinada loja de materiais de construção possui um sistema de cadastro de clientes, utilizado para vários fins, inclusive para emissão de malas diretas promocionais. Uma nova forma de venda que permite o cadastramento de pedidos através de uma central telefônica de atendimentos está sendo inaugurada. O operador, ao receber um pedido de fornecimento, procede o seu cadastramento em um sistema de cadastro de solicitações. Este sistema também está disponível para o pessoal responsável por separar o material de cada pedido e embalá-lo adequadamente para ser entregue. Para fazer um pedido pela central telefônica é necessário fazer um cadastramento prévio na própria loja. Uma hora antes do final de cada expediente (matutino e vespertino) o pessoal da área de cobrança, emite as devidas faturas enviando-as ao pessoal da área de entrega. As entregas serão realizadas no próximo período.Segundo esta configuração de processos temos, segundo a visão do usuário, a seguinte configuração de fronteiras para as aplicações citadas:

Page 35: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Exemplo 1Suponha a seguinte situação:Uma determinada loja de materiais de construção possui um sistema de cadastro de clientes, utilizado para vários fins, inclusive para emissão de malas diretas promocionais. Uma nova forma de venda que permite o cadastramento de pedidos através de uma central telefônica de atendimentos está sendo inaugurada. O operador, ao receber um pedido de fornecimento, procede o seu cadastramento em um sistema de cadastro de solicitações. Este sistema também está disponível para o pessoal responsável por separar o material de cada pedido e embalá-lo adequadamente para ser entregue. Para fazer um pedido pela central telefônica é necessário fazer um cadastramento prévio na própria loja. Uma hora antes do final de cada expediente (matutino e vespertino) o pessoal da área de cobrança, emite as devidas faturas enviando-as ao pessoal da área de entrega. As entregas serão realizadas no próximo período.Segundo esta configuração de processos temos, segundo a visão do usuário, a seguinte configuração de fronteiras para as aplicações citadas:

ClientesPedidos

Faturamento

UsuárioSetor de Cadastro

de Clientes

UsuárioSetor de Cadastro

de Pedidos

UsuárioSetor de

FaturamentoFaturamento referencia

dados de clientes cadastradosFaturamento referencia

dados de pedidos cadastrados

Fatura

Lista de material

Setor de Entregas

Page 36: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Exemplo 2

Objetivo da contagem:

Escopo:

Tipo de contagem: Aplicação

A empresa “HPT” possui um sistema informatizado que administra os seus gastos externos (Contas a pagar). Este sistema encontra-se implementado em produção e faz interface com outros aplicativos da empresa. De forma particularmente importante, este sistema faz interface com o sistema de Folha de pagamentos de funcionários. No sistema da folha de pagamentos são referenciados dados sobre os encargos a serem pagos pela empresa, sobre os salários praticados para seus funcionários. Deseja-se identificar o tamanho em pontos por função do sistema de Contas a pagar e um levantamento de suas funcionalidades para subsidiar futuras comparações.

Identificar o tamanho de um sistema já existente, implementado e em produção

As funções que compõem o sistema de contas a pagar

Page 37: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Contas a

Pagar

Folha de

Pagamento

Usuário

Usuário

Usuário

Usuário

Usuário

O usuário do Sistema de Folha de Pagamento pesquisa algumas informações de rubricas contábeis contidas no sistema de Contas a pagar.Em que contagem está inserida esta função transacional ?

O sistema de contas a pagar referencia dados relativos a Encargos de funcionários, a serem pagos pela empresa

E se o objetivo fosse identificar o tamanho de todas as aplicações que administram quaisquer pagamentos (internos e externos). Como ficaria a o escopo e a fronteira da contagem ?

Page 38: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

Tipos de Funções

Funções de dados:

Funções transacionais:

Funções de dados relacionam-se com o armazenamento lógico de dados e sua disponibilização para atualizações, referências e recuperações. Funções de tipos de dados representam as funcionalidades providas aos usuários para satisfazer as exigências de dados internos e externos.

Sistemas são usualmente desenvolvidos para automatizar processos e tarefas. As tarefas que são automatizadas podem ser identificadas como funções transacionais. Elas representam as funcionalidades providas aos usuários pelo processamento de dados efetuado pela aplicação

(ALIs e AIES)

(EEs, CEs, SEs)

Page 39: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

DICAS:Escopo

Reveja o propósito da contagem para auxiliar na determinação do escopo;

Ao identificar o escopo de uma contagem de aplicação (isto é, funcionalidades suportadas pelo time de manutenção), incluir todas as funções correntes em produção e usadas pelos usuários

Page 40: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

DICAS:Fronteira

Usar as especificações externas para obter um fluxo do sistema e desenhar a fronteira ao redor dele para salientar quais as partes são internas e quais são externas à aplicação (Diagramas de contexto e Use Case, são particularmente úteis neste caso)

Observar como os grupos de dados estão sendo mantidos

Identificar áreas funcionais associando suas propriedades (Ex.: entidades ou processos elementares)

Observar os dados medidos e associados a uma aplicação. Outros dados tais como: esforço, custo e erros terão suas fronteiras coincidentes com a da APF.

Page 41: Métricas e Estimativas em processo de produção de Software Métricas e estimativas em processos de Produção de software Métricas e estimativas em processos

Métricas e Estimativas em processo de produção de Software

DICASFronteira

O posicionamento da fronteira da aplicação entre o software sobre investigação pode ser subjetiva. Em algumas ocasiões pode ser difícil delinear onde uma aplicação termina e onde oura começa. Nestes casos tente posicionar a fronteira através de uma perspectiva de negócio ao invés de basea-la em considerações técnicas ou físicas.

O posicionamento da fronteira de uma contagem é um passo crítico e importante causando impacto em toda a análise.


Recommended