Você está na página 1de 66

Pontos por Casos de Uso

Mtricas de Software Prof. Joo Alexandre Bonin de Mello alexandre@unipar.br

Referncias
CELEPAR. Guia de Estimativa de Projetos: Metodologia Celepar. 2009. Disponvel em www.celepar.gov.br Karner, Gustav. Resource Estimation for Objectory Projects. 1993. Disponvel em www.bfpug.org.br

Histrico
Dcada de 70 Final da dcada de 70 1986 Alan Albrecht estuda a produtividade em uma srie de projetos da IBM Alan Albrecht publica a tcnica. Capers Jones prope aperfeioamentos. Fundao do IFPUG International Function Point Users Group Lanamento do CPM Counting Pratices Manual

1990

Anlise de Pontos de Funo Metodologias Derivadas


1989 NESMA Netherlands Software Metrics Users Association Mark II Mantido pela UKSMA United Kingdom Software Metrics Association Gustav Karner prope a tcnica de Pontos por Caso de uso ISO/IEC 14143 Adere ao IFPUG No contempla fatores de ajuste

1988

1993

2002

Pontos por Casos de Uso


Baseada na tcnica de pontos de funo Utiliza os casos de uso para calcular o tamanho funcional do sistema Mais fcil de ser aplicada que a tcnica de pontos de funo, apesar de menos precisa

Tamanho Funcional
Mede o tamanho do sistema com base nas funcionalidades proporcionadas ao usurio

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 no ajustados Calcular o fator de complexidade tcnica Calcular o fator de complexidade ambiental Calcular os pontos de caso de uso ajustados

Exerccio Rpido
Cronograma de Desenvolvimento para uma Videolocadora

Exerccio Rpido
Cronograma de Desenvolvimento para uma Videolocadora

Pontos por Casos de Uso Problemas


Padronizao dos Casos de Uso

Possuem valor evidente para o cliente

Casos de Uso Casos de uso de Negcio? CRUD?

No Possuem valor evidente para o cliente. No so casos de uso

Casos de Uso de Crud

So necessrios ao processo de medio

Modelo de Casos de Uso para Clculo dos Pontos por Casos de Uso

Pontos por Casos de Uso


UCP = ucp UCPUa = uucp * TF * tcf * AF * acf
ucp = Pontos por casos de uso uucp = Pontos por casos de uso no ajustados tcf = Fator de complexidade tcnica total taf = Fator de complexidade ambiental total

Objetos de Medio
Pontos de caso de uso no ajustados Complexidade dos Atores Complexidade dos Casos de Uso Fatores Tcnicos Fatores Ambientais

Fator de ajuste

Complexidade dos Atores


Ator Peso Descrio
Outro sistema acessado atravs de uma API de programao Outro sistema interagindo via protocolo de comunicao

Simples

Mdio

Complexo

Ator humano interagindo via GUI web, mobile ou desktop

Atividade 01
Classifique em simples, mdio ou complexo e atribua os UCP para seguintes atores:
Uma secretria de um consultrio dentrio interagindo com um sistema de agendamento de consultas Dois sistemas interagindo via XML Um sistema de vendas gravando dados de vendas chamando um mtodo de uma classe para integrao com o sistema de contas a receber Um sistema de folha de pagamento gravando um arquivo temporrio que dever ser transmitido para a receita federal Um sistema de folha de pagamento enviando dados dos depsitos dos salrios dos funcionrios via https para uma instituio financeira

Complexidade dos Casos de Uso


Caso de Uso Simples Peso Descrio
Caso de uso com at 3 caminhos internos ou acessando menos de 5 classes Caso de uso com 4 a 7 caminhos internos ou acessando de 5 at 10 classes

Mdio

10

Complexo

15

Caso de uso com 7 ou mais caminhos internos ou acessando mais de 10 classes

Complexidade dos Casos de Uso Exemplo

Complexidade dos Atores Exemplo


Ator Simples Mdio Complexo 1 (Peso dos Atores) Quantidade Peso 1 2 3 UCP 0 0 3 3

Complexidade dos Casos de Uso Exemplo


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 Uso Exemplo


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
U C 1

Casos de Uso
U C 2 U C 3 U C 4 U C 5 U C 6

Conta ContaCorrente Categoria SubCategoria Terceiro Movimento


Total de classes

x x

x x x x x x x x x

x x x

x x x x x x

CartaoDeCredito x

x
4

x x x
2 3 7

x
4

x
7

Complexidade dos Casos de Uso Exemplo


Caso de Uso Simples Mdio Complexo
Quanti dade

Peso 5 10 15

Total 20 20

Descrio Caso de uso com at 3 caminhos internos ou acessando menos de 5 classes Caso de uso com 4 a 7 caminhos internos ou acessando de 5 at 10 classes Caso de uso com 7 ou mais caminhos internos ou acessando mais de 10 classes

4 2

(Peso dos Casos de Uso)

40

Pontos por Caso de Uso no ajustados


uucp = (Peso dos Atores) + (Peso dos Casos de Uso)

Uucp = 3 + 40 = 43

Atividade 02
Calcule os pontos por caso de uso no 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 no ajustados

Atividade 03
Calcule os pontos por caso de uso no ajustados para o sistema DATACAR postado no moodle

Fatores Tcnicos
Tcf = 0,6 + (0,01*cf)

Tcf = Onde:

fator de complexidade total

cf = somatrio dos nveis de influncia de cada fator tcnico multiplicados pelo seu respectivo peso

Em geral, os fatores tcnicos esto relacionados a requisitos no funcionais da aplicao

Lista de Fatores Tcnicos


Fator

Descrio Sistema distribudo Objetivos de performance Eficinca on-line Complexidade de processamento Cdigo reusvel em outras aplicaes Facilidade de instalao Facilidade de uso Portabilidade Facilidade de alteraes (changeability) Concorrncia Segurana Interdependncia com software de terceiros Exigncia de Treinamento para os Usurios

Peso

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13

2 1 1 1 1 0,5 0,5 2 1 1 1 1 1

Fatores Tcnicos Nveis de Influncia


Nvel o 1a2 3a4 5 Descrio
Nenhuma Influncia

Pouca Influncia Influncia Moderada Muita Influncia

Fatores Tcnicos Sistema Distribudo


Descreve o nvel em que a aplicao transfere dados entre seus componentes. Funes ou dados distribudos dentro da fronteira da aplicao so caractersticas da aplicao.
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 mltiplos servidores ou processadores, sendo cada um deles selecionado dinamicamente de acordo com sua disponibilidade.

Fatores Tcnicos Objetivos de Performance


Descreve o nvel em que consideraes sobre o tempo de resposta e taxa de transaes influenciam no desenvolvimento da aplicao.
Um sistema bancrio onde uma regra de negcio estabelece que o tempo para a autenticao de um documento pelo caixa no poderia ser superior ao atual sistema, por exemplo, pontuar 5

Fatores Tcnicos Usabilidade


Descreve em que nvel consideraes sobre fatores humanos e facilidade de uso pelo usurio final influenciam no desenvolvimento da aplicao

Aplicaes tipicamente servidoras no possuem interao com usurio final e pontuaro 0. Aplicaes tipicamente padro desktop, web ou mobile pontuaro de 3 a 5.

Fatores Tcnicos Complexidade de Processamento


Descreve em que nvel o processamento lgico ou matemtico influencia o desenvolvimento da aplicao.
Deve-se considerar no apenas funcionalidades individuais mais o total da aplicao Leve em considerao o total das funcionalidades que utilizam processamento complexo em relao ao total das funcionalidades do sistema

Fatores Tcnicos Exigncia de Reusabilidade


Descreve em que nvel a aplicao e o seu cdigo foram especificamente projetados, desenvolvidos e suportados para serem utilizados em outras aplicaes

um fator tipicamente quantitativo difcil avaliar a reusabilidade na ausncia de documentao O objetivo da tcnica de UCP medir o software do ponto de vista do usurio, portanto, este fator contraria o objetivo da tcnica

Fatores Tcnicos Facilidade de Instalao


Descreve em que nvel a converso de ambientes preexistentes influencia o desenvolvimento da aplicao Exemplo: um cliente exige que possa escolher os mdulos que ir instalar ou ento exige que quando h uma nova verso ocorra uma atualizao automtica. Sistemas que substituiro sistemas legados devem pontuar de 3 a 5

Fatores Tcnicos Facilidade de Operao


Descreve em que nvel a aplicao atende a alguns aspectos operacionais
Procedimentos efetivos de inicializao, segurana, backup e recuperao foram desenvolvidos e testados. A aplicao minimiza a necessidade de atividades manuais, tais como montagem de mdias de backup, manuseio de formulrios e interveno manual do operador. Este um caso tpico de defasagem. Aplicaes que no necessitem de operador, mas somente de usurio final devero pontuar como 5.

Fatores Tcnicos Portabilidade


Descreve em que nvel a aplicao foi especificamente projetada, desenvolvida e suportada para ser instalada em mltiplas plataformas de hardware e software
Aplicaes tipicamente web so escritas para terem pelo menos o lado cliente multiplataforma, uma vez que rodam em navegadores. Estas aplicaes pontuam de 3 a 5. Aplicaes JME so extremamente complexas de se testar devido diferenas nas JVM e devem pontuar 5.

Fatores Tcnicos Manutenibilidade


Descreve em que nvel a aplicao foi especificamente desenvolvida para facilitar a mudana de sua lgica de processamento ou estrutura de dados
Verifique se existiro consultas em que o prprio usurio monta relatrios a partir dos dados disponveis no sistema. Verifique se o sistema fornecer parmetros de configurao, tais como adio de novas colunas ou alteraes de regras de negcio pelo usurio. ERPs de propsito geral com poderosos mecanismos de configurao pontuaro como 5

Fatores Tcnicos Concorrncia


Descreve em que nvel a aplicao foi especificamente desenvolvida para proporcionar acessos simultneos
Considere a necessidade de ferramentas de testes de estresse e performance durante o desenvolvimento para simular acessos simultneos O usurio est prevendo um grande nmero de acessos simultneos na aplicao, com isto ir aumentar a complexidade e por conseguinte, este valor Este fator est diretamente ligado ao fator Objetivos de Performance

Fatores Tcnicos Exigncias de Segurana


Descreve em que nvel a aplicao foi especificamente desenvolvida para proporcionar nveis de segurana
O usurio pretende utilizar um sistema de criptografia pesado como SSL? Ou ser que temos de escrever cdigos personalizados e lgica para criptografia? Pontue 0 se nenhum requisito de segurana foi estabelecido. Sistema com acesso permitido apenas a usurios autorizados deve ser pontuado com 2 Pontue 5 se um plano de segurana foi elaborado e testado para suportar o controle de acesso a aplicao e a auditoria.

Fatores Tcnicos
Interdependncia com software de terceiros Indica o grau de interdependncia do projeto em relao a integrao com sistemas externos Avalie em que grau o sistema depender de componentes de terceiros ou realizar integrao com sistemas externos

Fatores Tcnicos
Exigncia de Treinamento para o Usurio
Descreve a complexidade de utilizao da aplicao, sob a perspectiva do usurio, necessitando ou no de treinamento especfico

Pontue 0 se no houver nenhuma exigncia de treinamento Pontue 4 ou 5 se um plano de treinamento foi elaborado e testado para facilitar o uso da aplicao

Fatores Tcnicos Exemplo

Fatores Ambientais
Tef = 1,4 + (-0,03*ef)

Tef = Onde:

fator de complexidade ambiental total

ef = somatrio dos nveis de influncia de cada fator ambiental multiplicados pelo seu respectivo peso

Em geral, os fatores ambientais esto relacionados ao ambiente de desenvolvimento e maturidade do processo

Fatores Ambientais Nveis de Influncia


Nvel o 1a2 3a4 5 Descrio
Nenhuma Influncia

Pouca Influncia Influncia Moderada Muita Influncia

Fatores Ambientais
Fator Descrio Peso

F1

Familiaridade com o processo de desenvolvimento Presena de Analista Experiente Experincia da equipe em sistemas semelhantes Experincia em Orientao a Objetos Motivao Estabilidade dos requisitos
Descrio

1,5 0,5 0,5 1 1 2


Peso

Fatores que auxiliam o projeto

F2 F3 F4 F5 F6
Fator

Fatores que prejudicam o projeto

F7 F8

Estagirios ou funcionrios em tempo parcial Domnio da tecnologia e configurao do ambiente

-1 -1,5

(Parei aqui) Fatores Ambientais


Familiaridade com o processo de desenvolvimento Experincia da equipe com o processo/mtodo utilizado para desenvolvimento do projeto.

0 Sem conhecimento 1 Conhecimento terico 2 a 3 Um ou mais membros com alguma experincia 4 a 5 - De metade a todos os membros com experincia

Fatores Ambientais Presena de Analista Experinte


Presena de analista experiente na liderana da equipe de desenvolvimento 0 - Lder novato 1 a 2 - Experincia em poucos projetos 2 a 3 - Experincia de pelo menos 2 anos em projetos variados 4 a 5 - Experincia de, no mnimo, 3 anos em projetos variados

Fatores Ambientais
Experincia da equipe em sistemas semelhantes Indica o grau de experincia da equipe em sistemas semelhantes ou em sistemas variados Pontue 0 quando todos os membros da equipe so novatos Pontue de 1 a 4 de acordo com o percentual de equipe que possui pelo menos dois anos de experincia Pontue 5 quando todos da equipe tem mais de dois anos de experincia

Fatores Ambientais
Experincia da equipe em Orientao a Objetos Experincia da equipe com anlise e projeto OO, modelagem de casos de uso, classes e componentes
Considere o tempo mdio de experincia da equipe Pontue como 0 para nenhuma experincia Pontue como 5 se todos tiverem pelo menos 2 anos de experincia com OO

Fatores Ambientais Motivao da Equipe


Mede o grau de envolvimento da equipe com 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 considerao a existncia de atividades paralelas que tirem o envolvimento da equipe

Fatores Ambientais Estabilidade dos Requisitos


Mede o grau de mudana de requisitos e inseguranas sobre o significado dos requerimentos.
0 - Requisitos instveis com mudanas frequentes 1 a 2 Requisitos instveis com mudanas ao longo do desenvolvimento 3 a 4 Maioria dos requisitos estveis, poucas mudanas 5 - Requisitos estveis ao longo do desenvolvimento

Fatores Ambientais
Presena de estagirios desenvolvedores em meio perodo

Mede a estabilidade da equipe e a presena de desenvolvedores em meio perodo


0 - No tem membro com dedicao parcial 1 a 2 - Poucos membros (20%) trabalham em perodo parcial 3 a 4 - A metade dos membros da equipe trabalham em perodo parcial 5 - Toda os membros da equipe trabalham em perodo parcial

Fatores Ambientais
Domnio da tecnologia e configurao do ambiente Experincia com ferramentas primrias de desenvolvimento e com a linguagem de programao escolhida
0 - Todos os membros da equipe so programadores experientes 1 - A maioria dos membros da equipe possuem mais de 2 anos de experincia 2 - Todos os membros tem mais de 1 12 ano de experincia 3 - A maioria da equipe tem mais de 1 ano de experincia 4 - poucos membros da equipe tem alguma experincia (1 ano). Os outros so novatos. 5 - Todos os membros da equipe so novatos.

Fatores Ambientais Exemplo

Clculo dos Pontos de Funo Ajustados


ucp = uucp * tcf * acf
ucp = Pontos por casos de uso uucp = Pontos por casos de uso no ajustados = 44 tcf = Fator de complexidade tcnica total = 0,71 taf = Fator de complexidade ambiental total 0,755

Ucp = 44 * 0,71 * 0,755 = 23,58

Clculo do Esforo
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

Clculo do Esforo
O sistema mede 23,58 UCP Estimativa Otimista Mdia Pessimista Horas/UCP 15 20 25 Horas Totais 353,7 471,6 589,5

Atividade 04
Calcule os UCPs ajustados para os sistemas Videolocadora e Datacar Faa as consideraes necessrias quanto aos fatores tcnicos e ao tamanho da equipe

A tcnica de Schneider e Winters para clculo do tempo


Resultado = ntf + nef Quantidade de fatores tcnicos entre T1 e T6 que receberam nvel de influncia maior ou igual a 3 Quantidade de fatores ambientais entre E7 e E8 que receberam nvel de influncia menor que 3

ntf

nef

A tcnica de Schneider e Winters para clculo do tempo - Exemplo


ntf
Fator T1 T2 T3 T4 T5 T6

Quantidade de fatores tcnicos entre T1 e T6 que receberam nvel de influncia maior ou igual a 3
Definio Sistema distribudo Performance (Tempo de Resposta) Usabilidade Complexidade de processamento Exigncia de Reusabilidade Facilidade de instalao Peso 2 1 1 1 1 0,5 Valor Atribudo 0 1 2 0 3 1 Total 0 1 2 0 3 0,5

ntf = 1

A tcnica de Schneider e Winters para clculo do tempo - Exemplo


nef
Fator F7 F8

Quantidade de fatores ambientais entre E7 e E8 que receberam nvel de influncia menor que 3
Descrio Colaboradores em meio perodo Dificuldade da equipe em relao s tecnologias utilizadas Peso Atribudo -1 -1 5 0 Valor -5 -0

nef = 1

A tcnica de Schneider e Winters para clculo do tempo Exemplo


Resultado = ntf + nef ntf = 1 nef = 1 Resultado = 1 + 1 = 2

A tcnica de Schneider e Winters para clculo do tempo


Resultado Horas por UCP

0a2

20 horas por UCP

3a4 5 ou mais

28 horas por UCP 36 horas por UCP (risco para o projeto)

Clculo do Esforo
O sistema mede 23,58 UCP Estimativa Schneider & Winters Horas/UCP Horas Totais 20 471,6

Clculo do Tempo
O sistema mede 23,58 UCP Esforo = 471,6 horas Equipe de 02 pessoas 06 horas dirias de trabalho Total de horas dirias = 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 necessrio ao desenvolvimento dos sistemas DATACAR e Videolocadora, utilizando a tcnica de Schneider & Winters.