Metricas de Software 2 - Pontos Por Casos de Uso
-
Upload
joalexandremello -
Category
Documents
-
view
29 -
download
3
Transcript of Metricas de Software 2 - Pontos Por Casos de Uso
Referências
• CELEPAR. Guia de Estimativa de Projetos: Metodologia Celepar. 2009. Disponível em www.celepar.gov.br
• Karner, Gustav. Resource Estimation for Objectory Projects. 1993. Disponível em www.bfpug.org.br
Histórico
Alan Albrecht estuda a produtividadeem uma série de projetos da IBM
Década de70
Alan Albrecht publica a técnica.Capers Jones propõe aperfeiçoamentos.
Final dadécada de
70
Fundação do IFPUGInternational Function Point Users Group1986
Lançamento do CPMCounting Pratices Manual1990
Análise de Pontos de FunçãoMetodologias Derivadas
NESMANetherlands Software
Metrics Users Association1989
Mark IIMantido pela UKSMA
United Kingdom Software Metrics Association1988
ISO/IEC 14143Adere ao IFPUG
Não contempla fatores de ajuste2002
Gustav Karner propõe a técnica dePontos por Caso de uso
1993
Pontos por Casos de Uso
Baseada na técnica de pontos de função
Utiliza os casos de uso para calcular o tamanho funcional do sistema
Mais fácil de ser aplicada que a técnica de pontos de função,
apesar de menos precisa
Tamanho Funcional
Mede o tamanho do sistema com basenas funcionalidades proporcionadas ao usuário
Independe da Tecnologia
Pontos por Casos de Uso
Calcular o peso dos atores
Calcular o peso dos casos de uso
Calcular os pontos de Caso de Uso não ajustados
Calcular o fator de complexidade técnica
Calcular o fator de complexidade ambiental
Calcular os pontos de caso de uso ajustados
Exercício RápidoCronograma de Desenvolvimento para uma Videolocadora
Exercício RápidoCronograma de Desenvolvimento para uma Videolocadora
Pontos por Casos de UsoProblemas
Padronização dos Casos de Uso
Casos de Uso de Negócio?
Casos de uso CRUD?
Possuem valorevidente para
o cliente
NãoPossuem valorevidente para
o cliente.
Não sãocasos de uso
Casos de Uso de Crud
São necessários ao processo de medição
Modelo de Casos de Uso para Cálculo dos Pontos por Casos de Uso
Pontos por Casos de Uso
UCP = UCPUa * TF * AF
ucp = Pontos por casos de uso
ucp = uucp * tcf * acf
uucp = Pontos por casos de uso não ajustados
tcf = Fator de complexidade técnica total
taf = Fator de complexidade ambiental total
Objetos de Medição
Complexidade dos Atores
Complexidade dos Casos de Uso
Fatores Técnicos
Fatores Ambientais
Pontos decaso deuso não
ajustados
Fator deajuste
Complexidade dos Atores
Ator Peso Descrição
Simples 1Outro sistema acessado através
de uma API de programação
Médio
Complexo
2Outro sistema interagindo via
protocolo de comunicação
3Ator humano interagindo viaGUI web, mobile ou desktop
Atividade 01
• Classifique em simples, médio ou complexo e atribua os UCP para seguintes atores:–Uma secretária de um consultório dentário interagindo com um
sistema de agendamento de consultas–Dois sistemas interagindo via XML –Um sistema de vendas gravando dados de vendas chamando um
método de uma classe para integração com o sistema de contas a receber–Um sistema de folha de pagamento gravando um arquivo
temporário que deverá ser transmitido para a receita federal–Um sistema de folha de pagamento enviando dados dos
depósitos dos salários dos funcionários via https para uma instituição financeira
Complexidade dos Casos de Uso
Caso de Uso
Peso Descrição
Simples 5Caso de uso com até 3 caminhos
internos ou acessando menosde 5 classes
Médio
Complexo
10Caso de uso com 4 a 7 caminhos
internos ou acessando de 5até 10 classes
15Caso de uso com 7 ou mais
caminhos internos ou acessandomais de 10 classes
Complexidade dos Casos de UsoExemplo
Complexidade dos AtoresExemplo
Ator Quantidade
Simples
Médio
Complexo 1
Peso
1
2
3
UCP
0
0
3
∑(Peso dos Atores) 3
Complexidade dos Casos de UsoExemplo
Lista de Casos de Uso
UC1 - Cadastramento de Contas
UC2 - Cadastrar Terceiros
UC3 - Cadastrar Categorias e Subcategorias
UC4 - Movimentar Contas
UC5 - Consultar Saldos das Contas
UC6 - Consultar Extrato da Conta
Complexidade dos Casos de UsoExemplo
Lista de Casos de Uso
UC1 - Cadastramento de Contas
UC2 - Cadastrar Terceiros
UC3 - Cadastrar Categorias e Subcategorias
UC4 - Movimentar Contas
UC5 - Consultar Saldos das Contas
UC6 - Consultar Extrato da Conta
Classes Casos de UsoUC1
UC2
UC3
UC4
UC5
UC6
Conta x x x x
ContaCorrente x x x x
CartaoDeCredito x x x x
Categoria x x x
SubCategoria x x x
Terceiro x x x
Movimento x x x x x xTotal de classes 4 2 3 7 4 7
Complexidade dos Casos de UsoExemplo
Caso de Uso
Quantidade
Descrição
Simples 4Caso de uso com até 3 caminhos
internos ou acessando menosde 5 classes
Médio
Complexo
2Caso de uso com 4 a 7 caminhos
internos ou acessando de 5até 10 classes
Caso de uso com 7 ou maiscaminhos internos ou acessando
mais de 10 classes
Peso
5
10
15
Total
20
20
∑(Peso dos Casos de Uso) 40
Pontos por Caso de Uso não ajustados
uucp = ∑(Peso dos Atores) + ∑(Peso dos Casos de Uso)
Uucp = 3 + 40 = 43
Atividade 02
• Calcule os pontos por caso de uso não ajustados para o sistema Videolocadora postado no moodle–Calcule o peso dos atores–Calcule o peso dos casos de uso–Some os pesos para obter os UCPs não
ajustados
Atividade 03
• Calcule os pontos por caso de uso não ajustados para o sistema DATACAR postado no moodle
Fatores Técnicos
Tcf = 0,6 + (0,01*∑cf)
Tcf = fator de complexidade total
∑cf = somatório dos níveis de influência de cada fator técnico multiplicados pelo seu respectivo peso
Onde:
Em geral, os fatores técnicos estão relacionados arequisitos não funcionais da aplicação
Lista de Fatores TécnicosFator Descrição Peso
T1 Sistema distribuído 2
T2 Objetivos de performance 1
T3 Eficiênca on-line 1
T4 Complexidade de processamento 1
T5 Código reusável em outras aplicações 1
T6 Facilidade de instalação 0,5
T7 Facilidade de uso 0,5
T8 Portabilidade 2
T9 Facilidade de alterações (changeability) 1
T10 Concorrência 1
T11 Segurança 1
T12 Interdependência com software de terceiros 1
T13 Exigência de Treinamento para os Usuários 1
Fatores TécnicosNíveis de Influência
Nível Descrição
o Nenhuma Influência
1 a 2 Pouca Influência
3 a 4 Influência Moderada
5 Muita Influência
Fatores TécnicosSistema Distribuído
Descreve o nível em que a aplicação transfere dados entre seus componentes. Funções ou dados distribuídos dentro da fronteira da aplicação são características da aplicação.
• Um sistema de desktop isolado pontuará com 0.• Um sistema cliente/servidor, pontuará com 2. • Um sistema de n camadas pontuará com 4. • Para pontuar com 5, o sistema deveria ter componentes executando
em múltiplos servidores ou processadores, sendo cada um deles selecionado dinamicamente de acordo com sua disponibilidade.
Fatores TécnicosObjetivos de Performance
• Um sistema bancário onde uma regra de negócio estabelece que o tempo para a autenticação de um documento pelo caixa não poderia ser superior ao atual sistema, por exemplo, pontuará 5
Descreve o nível em que considerações sobre o tempo deresposta e taxa de transações influenciam
no desenvolvimento da aplicação.
Fatores TécnicosUsabilidade
• Aplicações tipicamente servidoras não possuem interação com usuário final e pontuarão 0. Aplicações tipicamente padrão desktop, web ou mobile pontuarão de 3 a 5.
Descreve em que nível considerações sobre fatores humanos e facilidade de uso pelo usuário final
influenciam no desenvolvimento da aplicação
Fatores TécnicosComplexidade de Processamento
• Deve-se considerar não apenas funcionalidades individuais mais o total da aplicação
• Leve em consideração o total das funcionalidades que utilizam processamento complexo em relação ao total das funcionalidades do sistema
Descreve em que nível o processamentológico ou matemático influencia o
desenvolvimento da aplicação.
Fatores TécnicosExigência de Reusabilidade
• É um fator tipicamente quantitativo• É difícil avaliar a reusabilidade na ausência
de documentação• O objetivo da técnica de UCP é medir o
software do ponto de vista do usuário, portanto, este fator contraria o objetivo da técnica
Descreve em que nível a aplicação e o seu código foram especificamente projetados, desenvolvidos e suportados
para serem utilizados em outras aplicações
Fatores TécnicosFacilidade de Instalação
• Exemplo: um cliente exige que possa escolher os módulos que irá instalar ou então exige que quando há uma nova versão ocorra uma atualização automática.
• Sistemas que substituirão sistemas legados devem pontuar de 3 a 5
Descreve em que nível a conversão de ambientes preexistentes influencia o desenvolvimento da aplicação
Fatores TécnicosFacilidade de Operação
• Procedimentos efetivos de inicialização, segurança, backup e recuperação foram desenvolvidos e testados. A aplicação minimiza a necessidade de atividades manuais, tais como montagem de mídias de backup, manuseio de formulários e intervenção manual do operador.
• Este é um caso típico de defasagem. Aplicações que não necessitem de operador, mas somente de usuário final deverão pontuar como 5.
Descreve em que nível a aplicação atende a alguns aspectos operacionais
Fatores TécnicosPortabilidade
• Aplicações tipicamente web são escritas para terem pelo menos o lado cliente multiplataforma, uma vez que rodam em navegadores. Estas aplicações pontuam de 3 a 5.
• Aplicações JME são extremamente complexas de se testar devido à diferenças nas JVM e devem pontuar 5.
Descreve em que nível a aplicação foi especificamente projetada, desenvolvida e suportada para ser instalada
em múltiplas plataformas de hardware e software
Fatores TécnicosManutenibilidade
• Verifique se existirão consultas em que o próprio usuário monta relatórios a partir dos dados disponíveis no sistema.
• Verifique se o sistema fornecerá parâmetros de configuração, tais como adição de novas colunas ou alterações de regras de negócio pelo usuário.
• ERPs de propósito geral com poderosos mecanismos de configuração pontuarão como 5
Descreve em que nível a aplicação foi especificamente desenvolvida para facilitar a mudança de sua lógica
de processamento ou estrutura de dados
Fatores TécnicosConcorrência
• Considere a necessidade de ferramentas de testes de estresse e performance durante o desenvolvimento para simular acessos simultâneos
• O usuário está prevendo um grande número de acessos simultâneos na aplicação, com isto irá aumentar a complexidade e por conseguinte, este valor
• Este fator está diretamente ligado ao fator “Objetivos de Performance”
Descreve em que nível a aplicação foi especificamente desenvolvida para proporcionar acessos simultâneos
Fatores TécnicosExigências de Segurança
• O usuário pretende utilizar um sistema de criptografia pesado como SSL? • Ou será que temos de escrever códigos personalizados e lógica para criptografia?• Pontue 0 se nenhum requisito de segurança foi estabelecido.• Sistema com acesso permitido apenas a usuários autorizados deve ser pontuado com 2• Pontue 5 se um plano de segurança foi elaborado e testado para suportar o controle de
acesso a aplicação e a auditoria.
Descreve em que nível a aplicação foi especificamente desenvolvida para proporcionar níveis de segurança
Fatores TécnicosInterdependência com software de
terceiros
• Avalie em que grau o sistema dependerá de componentes de terceiros ou realizará integração com sistemas externos
Indica o grau de interdependência do projeto em relação a integração com sistemas externos
Fatores TécnicosExigência de Treinamento para o Usuário
• Pontue 0 se não houver nenhuma exigência de treinamento
• Pontue 4 ou 5 se um plano de treinamento foi elaborado e testado para facilitar o uso da aplicação
Descreve a complexidade de utilização da aplicação, sob a perspectiva do usuário, necessitando ou não
de treinamento específico
Fatores TécnicosExemplo
Fatores Ambientais
Tef = 1,4 + (-0,03*∑ef)
Tef = fator de complexidade ambiental total
∑ef = somatório dos níveis de influência de cada fator ambiental multiplicados pelo seu respectivo peso
Onde:
Em geral, os fatores ambientais estão relacionados aoambiente de desenvolvimento e à maturidade do processo
Fatores AmbientaisNíveis de Influência
Nível Descrição
o Nenhuma Influência
1 a 2 Pouca Influência
3 a 4 Influência Moderada
5 Muita Influência
Fatores AmbientaisFator Descrição Peso
F1 Familiaridade com o processo de desenvolvimento
1,5
F2 Presença de Analista Experiente 0,5
F3 Experiência da equipe em sistemas semelhantes
0,5
F4 Experiência em Orientação a Objetos 1
F5 Motivação 1
F6 Estabilidade dos requisitos 2
Fator Descrição Peso
F7 Estagiários ou funcionários em tempo parcial
-1
F8 Domínio da tecnologia e configuração do ambiente
-1,5
Fatores queauxiliam o
projeto
Fatores queprejudicamo projeto
(Parei aqui) Fatores AmbientaisFamiliaridade com o processo de
desenvolvimento
Experiência da equipe com o processo/método utilizado para desenvolvimento do projeto.
• 0 – Sem conhecimento• 1 – Conhecimento teórico• 2 a 3 – Um ou mais membros com
alguma experiência• 4 a 5 - De metade a todos os
membros com experiência
Fatores AmbientaisPresença de Analista Experinte
Presença de analista experiente na liderançada equipe de desenvolvimento
• 0 - Líder novato• 1 a 2 - Experiência em poucos projetos• 2 a 3 - Experiência de pelo menos 2
anos em projetos variados• 4 a 5 - Experiência de, no mínimo, 3
anos em projetos variados
Fatores AmbientaisExperiência da equipe em sistemas
semelhantes
Indica o grau de experiência da equipe emsistemas semelhantes ou em sistemas variados
• Pontue 0 quando todos os membros da equipe são novatos
• Pontue de 1 a 4 de acordo com o percentual de equipe que possui pelo menos dois anos de experiência
• Pontue 5 quando todos da equipe tem mais de dois anos de experiência
Fatores AmbientaisExperiência da equipe em Orientação a
Objetos
Experiência da equipe com análise e projeto OO, modelagem de casos de uso,
classes e componentes
• Considere o tempo médio de experiência da equipe
● Pontue como 0 para nenhuma experiência
● Pontue como 5 se todos tiverem pelo menos 2 anos de experiência com OO
Fatores AmbientaisMotivação da Equipe
Mede o grau de envolvimento da equipecom o projeto
• Considere o grau de envolvimento da equipe com o projeto:
● Pontue 0 para uma equipe pouco envolvida● Pontue 5 para uma equipe totalmente
envolvida com o projeto
• Leve em consideração a existência de atividades paralelas que tirem o envolvimento da equipe
Fatores AmbientaisEstabilidade dos Requisitos
Mede o grau de mudança de requisitos e inseguranças sobre o
significado dos requerimentos.
• 0 - Requisitos instáveis com mudanças frequentes
• 1 a 2 – Requisitos instáveis com mudanças ao longo do desenvolvimento
• 3 a 4 – Maioria dos requisitos estáveis, poucas mudanças
• 5 - Requisitos estáveis ao longo do desenvolvimento
Fatores AmbientaisPresença de estagiários desenvolvedores em meio
período
Mede a estabilidade da equipe e a presençade desenvolvedores em meio período
• 0 - Não tem membro com dedicação parcial• 1 a 2 - Poucos membros (20%) trabalham em
período parcial• 3 a 4 - A metade dos membros da equipe
trabalham em período parcial• 5 - Toda os membros da equipe trabalham em
período parcial
Fatores AmbientaisDomínio da tecnologia e configuração do
ambiente
Experiência com ferramentas primárias de desenvolvimento e com a linguagem de
programação escolhida• 0 - Todos os membros da equipe são programadores experientes• 1 - A maioria dos membros da equipe possuem mais de 2 anos de
experiência• 2 - Todos os membros tem mais de 1 1⁄2 ano de experiência• 3 - A maioria da equipe tem mais de 1 ano de experiência• 4 - poucos membros da equipe tem alguma experiência (1 ano). Os outros
são novatos.• 5 - Todos os membros da equipe são novatos.
Fatores AmbientaisExemplo
Cálculo dos Pontos de Função Ajustados
ucp = uucp * tcf * acf
ucp = Pontos por casos de uso
uucp = Pontos por casos de uso não ajustados = 44
tcf = Fator de complexidade técnica total = 0,71
taf = Fator de complexidade ambiental total 0,755
Ucp = 44 * 0,71 * 0,755 = 23,58
Cálculo do Esforço
Supondo 20 horas de trabalho por UCP
Supondo uma margem de erro de 25%
Estimativa otimista: 15 horas por UCP
Estimativa pessimista: 25 horas por UCP
O sistema mede 23,58 UCP
Cálculo do Esforço
Estimativa Horas/UCP Horas Totais
Otimista 15 353,7
Média 20 471,6
Pessimista 25 589,5
O sistema mede 23,58 UCP
Atividade 04
• Calcule os UCPs ajustados para os sistemas Videolocadora e Datacar
• Faça as considerações necessárias quanto aos fatores técnicos e ao tamanho da equipe
A técnica de Schneider e Winters para cálculo do tempo
Quantidade de fatores técnicos entre T1 e T6 que receberam nível de influência maior ou igual a 3ntf
Quantidade de fatores ambientais entre E7 e E8 que receberam nível de influência menor que 3nef
Resultado = ntf + nef
A técnica de Schneider e Winters para cálculo do tempo - Exemplo
Quantidade de fatores técnicos entre T1 e T6 que receberam nível de influência maior ou igual a 3ntf
Fator Definição Peso Valor Atribuído
Total
T1 Sistema distribuído 2 0 0
T2 Performance (Tempo de Resposta)
1 1 1
T3 Usabilidade 1 2 2
T4 Complexidade de processamento 1 0 0
T5 Exigência de Reusabilidade 1 3 3
T6 Facilidade de instalação 0,5 1 0,5
ntf = 1
A técnica de Schneider e Winters para cálculo do tempo - Exemplo
Quantidade de fatores ambientais entre E7 e E8 que receberam nível de influência menor que 3nef
Fator Descrição Peso Atribuído Valor
F7 Colaboradores em meio período -1 5 -5
F8 Dificuldade da equipe em relação às tecnologias utilizadas
-1 0 -0
nef = 1
A técnica de Schneider e Winters para cálculo do tempo Exemplo
Resultado = 1 + 1 = 2
Resultado = ntf + nef
nef = 1
ntf = 1
A técnica de Schneider e Winters para cálculo do tempo
20 horas por UCP
28 horas por UCP
Horas por UCP
0 a 2
3 a 4
Resultado
36 horas por UCP(risco para o projeto)5 ou mais
Cálculo do Esforço
Estimativa Horas/UCP Horas Totais
Schneider & Winters 20 471,6
O sistema mede 23,58 UCP
Cálculo do Tempo
Esforço = 471,6 horas
O sistema mede 23,58 UCP
Equipe de 02 pessoas
06 horas diárias de trabalho
Total de horas diárias = 02 * 06 = 12 horas
Dias de trabalho = 471,6 / 12 = 40 dias úteis
40 dias / 5 dias por semana = 8 semanas
Atividade 05
• Calcule o tempo necessário ao desenvolvimento dos sistemas DATACAR e Videolocadora, utilizando a técnica de Schneider & Winters.