Baixe o app para aproveitar ainda mais
Prévia do material em texto
Medidas de Esforço de Desenvolvimento de Software Marcos Danilo Chiodi Martins Aulas 01 a 10 Medidas de Esforço de Desenvolvimento de Software Aula 01 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas Você é um bom desenvolvedor de sistemas? (colocar imagem representando desenvolvedor de software) Sim? Não? (colocar imagem representando SIM e Não) Independente da sua resposta, por que você respondeu assim? ( colocar imagens de questionamento) Teste rápido 3 Quem é o melhor jogador de basquete? Borgues – 1,61 m Manute – 2,31 m 4 1) Borgues – menor jogador da liga NBA da história. 2) Recorde do maior número de minutos jogados. 3) Recorde maior número de assistências. 4) Ótima média de acerto de sextas de 3 pontos. Quem é o melhor jogador de basquete? 5 1) Manute – maior jogador da NBA; 2) Recorde de “tocos”. Quem é o melhor jogador de basquete? 6 Ciências Artes Desenvolvimento Vamos lhe ajudar a resolver essa dúvida. Como fazer para saber se sou um bom desenvolvedor ou não? 7 Vamos pensar em três perguntas A) Qual a diferença entre ciências e artes? B) Qual seleção é melhor, a seleção brasileira de vôlei ou a de futebol? C) Por que o Japão conseguiu se reerguer tão rapidamente da Segunda Guerra Mundial? A disciplina - Motivação 8 Uma se relaciona com a outra .... A arte é: a) inspiração; b) pessoal; c) irreproduzível. A ciência é: a)sistematizada; b)reproduzível; c)provada. A ciência pode apoiar a arte A arte inspira a ciência. A diferença entre ciência e arte 9 Futebol no Brasil a) Arte aplicada b) Conhecimento tácito c) Time de heróis Vôlei no Brasil é: a)sistematizado; b)reproduzível; c)PDCA; d)método. Quem é mais vitorioso? A diferença entre seleção brasileira de vôlei e de futebol 10 Qualidade Total a) Melhoria contínua de processos b) Processos “repetitíveis” c) Só melhoramos o que medimos Por que os japoneses se reergueram da 2º GM tão rapidamente? 11 12 Mas o que essas perguntas tem a ver com o gerenciamento de projetos? Podemos fazer desenvolvimento de software: a) pela arte, dependendo de “artistas” do desenvolvimento; b) sem métodos, técnicas e/ou ferramentas padronizadas: todo o conhecimento aplicado no esforço de desenvolvimento depende exclusivamente das pessoas que estão desenvolvendo; c) não buscar a melhoria contínua: cada artista faz a sua forma. Mas o que essas perguntas tem a ver com o desenvolvimento de software? 13 Mas também podemos fazer desenvolvimento: a) como ciência, com a aplicação de: técnicas, ferramentas, boas práticas; b) buscar sistematizar a forma de se atuar no desenvolvimento; c) buscar formas de melhoria contínuas do desenvolvimento com indicadores. Mas o que essas perguntas tem a ver com o gerenciamento de projetos? 14 Medidas de Esforço de Desenvolvimento de Software Atividade 1 Atividades Como saber se uma determinada equipe esta desenvolvendo bem, de forma eficiente e eficaz? 16 Medidas de Esforço de Desenvolvimento de Software Aula 02 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas Você sabe nos dizer o que é métrica de software e medida de software? Ou qual é a diferença entre esses conceitos? 18 • Custo de desenvolvimento. • Tempo de desenvolvimento. • Tempo de processamento. • Quantidade de armazenamento. Muito bom! Você deve ter pensado em: 19 Indicação de uma medida quantitativa que medirá o quanto um determinado sistema, componente o processo possui de uma determinada característica. Então vamos definir formalmente: métrica: 20 Peça para duas pessoas mediar a altura de um quarto: Exemplo: • Pessoa “A” diz: • Pessoa “B” diz: 98 in (polegadas) 2,40 m 98 in O que aconteceu? Quem está certo ? 21 Nenhuma métrica foi definida para as pessoas que iriam medir, e cada qual mediu ao seu jeito: O que houve? • Um mediu em metros outro em polegadas. • Mesmo transformando polegadas em metros a pessoa B teria a medida de 2,50 m. • A pessoa A mediu do teto ao chão. • A pessoa B mediu do chão até a parte superior do teto. É preciso ESPECIFICAR uma BOA MÉTRICA para que uma boa medida seja realizada! 22 O que você viu acima é um exemplo de especificação de métricas diretas. Porém, uma métrica pode ser composta por mais de um procedimento de medidas. Talvez algo assim tivesse ajudado! Nome da métrica Pé direito Objetivo da métrica Determinar o vão entre o chão e o teto interior de uma construção Descrição da métrica Diferença de cota entre o piso inferior e o piso superior, incluindo a espessura da laje superior e desprezando a espessura da laje inferior. (Engenhariacivil.com, 2015) Sistema de medidas Para realizar a medida será utilizado o sistema mks (metro, quilômetros e segundos). Formas de se obter a medida Realizar e medida de uma linha imaginária que cruza o chão e o teto em um ângulo de 90º. A medida deverá se iniciar no chão e terminar na parte superior do teto (ou seja, incluindo a espessura da laje) 23 24 Exemplo de métrica com mais de um procedimento de medida! Nome da métrica Erros em pedaço de software Objetivo da métrica Identificar a qualidade do código que está sendo produzido; Descrição da métrica É um número real com uma casa decimal que determina a quantidade de erros “críticos” encontrados por milhares de linha de código. Sistema de medidas KLOC = milhares de linha de código (número real com uma casa decimal) e “# de erros críticos” (número de erros críticos – número inteiro). (Deveria especificar erro crítico) Formas de se obter a medida Medida 1 – Linhas de código: Realizar a contagem da quantidade de NOVAS linhas de código geradas no pacote que foi testado e dividi- las por 1000 para gerar KLOCs. Medida 2 – Contar a quantidade de novos “erros críticos” somada a quantidade de “erros críticos” antigos que deveriam ter sido consertados, mas persistiram. Realizar a razão: medida 2 / medida 1. 24 Há formas de se escrever uma boa métrica. Ela deve ser clara, simples e objetiva 25 Vamos na sequência mostrar algumas caraterísticas que toda boa métrica possui Primeiro entenda a necessidade daquilo que precisa ser medido, depois, crie a métrica. 1) Atenção ao OBJETIVO da métrica. 26 É possível utilizar o GQM: • Goal: meta que a organização quer atingir. • Question: Questões relacionadas às incertezas que afetam o objetivo. • Metrics.: medidas que devem ser coletadas para responder às questões. 1) Atenção ao OBJETIVO da métrica. 27 As métricas devem sempre ser efetivas em atender o objetivo requerido, contudo, devem ser o mais simples possível. 2) Métrica NÃO deve ser COMPLEXA. 28 Uma métrica sempre deve ter o seu benefício maior do que o custo de produzi-la e mantê-la. 3) Métrica boa é métrica BARATA. 29 Uma boa métrica é aquela que dá o mesmo resultado independente de quem faça a medida.4) Métrica deve ser IMPESSOAL. 30 Boas Práticas Métricas Privadas Métricas Públicas • São aquelas coletadas utilizando base INDIVÍDUO. • Exemplo: • número de linhas de código por desenvolvedor; • Defeitos por desenvolvedor; • Deve ser exposta apenas ao indivíduo que está relacionado a ela. • São aquelas coletadas SEM a utilização da base INDIVÍDUO. • Podem ser as métricas privadas CONSOLIDADAS para o grupo de desenvolvedores da empresa. • Exemplo: • Quantidade de defeitos por módulo do sistema; • Quantidade de defeito por milhares de linha de código. • Podem ser expostas a todos. 31 Dicas Sobre Métricas Números devem ser interpretados com bom senso e sensibilidade empresarial. Métricas coletadas, feedback fornecido. Métricas não são para avaliação e sim para evolução. As métricas devem ser claras e objetivas, e após a sua definição busque definir metas a serem alcançadas. Medidas de métricas que indicam possíveis problemas não devem ser vistas de forma negativa e sim como uma oportunidade. (oportunidade de melhoria, crescimento...) Uma métrica sozinha não faz verão. 32 Entendimento Para entender fenômenos que estão acontecendo em um processo, produto, recursos e ambientes. Base histórica Ao medir em diferentes momentos no tempo é possível estabelecer base histórica o que permite comparação de desempenhos e entender se está havendo uma evolução. Acompanhamento As métricas são utilizadas para entender a execução em relação ao que foi planejado. Tendência Com métricas é possível entender tendências, prever futuras situações e proceder com planos de ação para ajustar o rumo de projetos e produtos de software. Melhoria contínua O entendimento de problemas e causas raízes é mais tranquilo de forma que um plano de ação de correção possa ser criado. 33 Por que utilizar métricas em sw? Métricas OK. E MEDIDAS, você sabe o que são? 34 Uma medida é uma tomada de valor de algo que se quer avaliar contra um padrão estabelecido. é o processo por meio do qual são associados símbolos ou números a atributos de entidades de modo que os determinem conforme padrões bem definidos. 35 Há dois tipos de medidas: Direta e Indireta. DIRETA: São aquelas que medem diretamente um fenômeno. A altura de uma pessoa pode ser conseguida diretamente utilizando uma fita métrica. INDIRETA: São medidas conseguidas por meio de outras medidas. Por exemplo medir a qualidade de um software pelo tempo que ele fica sem “travar”. Este tipo de medida não nos oferece um resultado “tão absoluto” quanto aquele da medida direta. 36 Descrever uma métrica para verificar a quantidade de retrabalho gerada durante a release de uma versão de um determinado software. Atividades 37 Nome da métrica Retrabalho Objetivo da métrica Identificar a quantidade de retrabalho em horas que foi necessário durante o desenvolvimento de uma release de um software Descrição da métrica É um número, no formato de horas, que acumula a quantidade de retrabalho produzida durante uma release Sistema de medidas Horas -> HH:mm Formas de se obter a medida Medida 1 – Identificar a quantidade de tickets de desenvolvimento que foram reabertos pela equipe de teste. Para tanto, basta acessar o sistema de controle de tickets por meio do endereço [endereço]... Medida 2 – Identificar a quantidade de horas que foram lançadas para cada um desses tickets e somar. 38 Exemplo de métrica com mais de um procedimento de medida! 39 40 41 42 43 44 45 Tot_ponto_func_ajustado = tot_contado * (0,65 + 0,01 * ) Observe que o total_contado é multiplicado por um valor que pode variar de 1,35 a 0,65 dependendo dos graus de influencia das 14 características analisadas. Este índice é chamado de fator de ajuste. Essas notas devem ser somadas. Vamos representar essa soma na forma: somatório de i (i variando de 1 a 14) indicando as notas dos 14 itens. Se todos os itens forem considerados sem importância, o somatório é 0 e 70 se todos forem considerados fundamentais. São usadas 14 características gerais de sistemas são: – 1. Comunicação de Dados – 2. Processamento de Dados Distribuído – 3. Desempenho – 4. Utilização do Equipamento (Restrições de Recursos Computacionais) – 5. Volume de Transações – 6. Entrada de Dados On-line – 7. Eficiência do Usuário Final (Usabilidade) – 8. Atualização On-line – 9. Processamento Complexo – 10. Reusabilidade – 11. Facilidade de Implantação – 12. Facilidade Operacional (Proc Oper, como Inicialização, Cópia de Segurança,...) – 13. Múltiplos Locais e Organizações do Usuário – 14. Facilidade de Mudanças (Manutenibilidade) Observando pontos a partir de produtos prontos, atribuiu-se que o total de ponto função é constituído de 65 % do valor da contagem, sendo o restante dependente de um porcento do total da contagem. Assim constitiu-se a formula: 46 A simples contagem dá o valor de ponto função NÃO AJUSTADO. Muitas empresa usam este número para sua gerencia de SW. Dependendo das características necessárias para um determinado setor, pode-se estabelecer o fator de ajuste. Isso permite que se compare totais de ponto função entre SWs de aplicações diferentes. Total de ponto função ajustado= Contagem (ponto função não ajustado) * Fator de ajuste Com o uso de análise de ponto função pode-se definir indicadores que permitem comparar SWs com características diferentes (o que não era possível com LOC). A partir da contagem de PF que reflete o tamanho de um sistema, é possível se definir a produtividade de uma equipe (por exemplo, em horas por ponto de função - H/PF), desde que se utilize métricas de acompanhamento como prazo ou esforço para executar uma determinada tarefa. Os PF são mapeados em KLOC´s baseado no tipo de linguagem. Essas tabelas são atualizadas mundialmente pelo IFPG. 47 48 Medidas de Esforço de Desenvolvimento de Software Aula 03 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas O que estudaremos NESTA aula? Categorização de métricas Pontos de Função Como determinar os pontos de função 50 Categorização de métricas na engenharia de software Gestão de projeto de software Engenharia de requisitos Projeto de software Implementação Processo de desenvolvimento de software e outras atividades guarda chuva Testes Manutenção Software em produção -> Produto de Software Baseado neste ciclo de vida sugere-se uma taxonomia para métricas de software. 51 Categorização de métricas na engenharia de software Métricas de Produto de Software Métricas de Processo de Software Métricas de Projeto de Software 52 Categorização de métricas na engenharia de software Métricas de Produto de Software Métricas de Processo de Software Métricas de Projeto de Software 53 Métricas de Produto de Software Métricas para o modelo de análise: são aplicadas na análise, antes da codificação e incluem: funcionalidades entregues, tamanho do sistema e qualidade da especificação Métricas para o modelo de projeto: métricas para avaliar a qualidade do design (projeto) de software. Ex.: métrica arquitetural.Métricas para o código fonte: avaliam a qualidade do código fonte no que tange à complexidade. Métricas de teste: avaliam o design dos casos de teste avaliando o poder dos testes que foram criados. 54 Categorização de métricas na engenharia de software Métricas de Produto de Software Métricas de Processo de Software Métricas de Projeto de Software 55 Métricas de Processo de Software Medidas dos erros descobertos antes da entrega do software Defeitos entregues ao usuário final Produtividade são medidas criadas para entender e evoluir o processo de desenvolvimento. Usados por exemplo pelo PDA e IDEAL. 56 Categorização de métricas na engenharia de software Métricas de Produto de Software Métricas de Processo de Software Métricas de Projeto de Software 57 Métricas de Projeto de Software Métrica orientada ao tamanho. Métrica orientada à função. Métrica orientada a casos de uso Métricas orientadas a objeto Métricas de projeto de engenharia Web. 58 O que são os “Pontos de Função”? Uma forma de se medir o tamanho do software é a utilização do LOC – Lines of Code. Porém só podemos medir o LOC depois que o software está pronto. Portanto não é uma métrica que nos ajuda para o planejamento de esforço do software. Para tanto podemos utilizar uma métrica de COMPLEXIDADE do software que INDIRETAMENTE nos indique o tamanho que o software terá. Uma das mais famosas é o “Pontos de Função” 59 1) Métrica que caracteriza a complexidade das funcionalidades do software que será desenvolvido. 2) De forma indireta nos apontará o tamanho do SW. 3) Há equações que nos permitem transformar a medida de pontos de função para LOC em uma determinada linguagem. Pontos de Função: 60 Medidas de Esforço de Desenvolvimento de Software Atividade 3 Classifique as métricas abaixo: ◦ Usabilidade; ◦ Manutenibilidade; ◦ Produtividade; ◦ Quantidade de erros encontrados antes da entrega para o usuário; ◦ Quantidade de classes do sistema; ◦ Quantidade de casos de uso identificados. 61 Atividades Classifique as métricas abaixo: ● Métricas de produto de software • Usabilidade; • Manutenibilidade; ● Métricas de processo de software • Produtividade; • Quantidade de erros encontrados antes da entrega para o usuário; ●Métricas de projeto de software • Quantidade de classes do sistema; • Quantidade de casos de uso identificados. 62 Medidas de Esforço de Desenvolvimento de Software Aula 04 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas O que estudaremos NESTA aula? Categorização de métricas Pontos de Função Como determinar os pontos de função Até então fizemos duas aulas por capítulo. Agora, faremos 3 aulas para falar sobre a metade do segundo capítulo. Porque aprender a fazer a APF é importante. 64 O que estudaremos NESTA aula? Então nos organizaremos assim: Aula 4 •PF •Processo de contagem •Determinar escopo de contagem •Determinar tipo de contagem Aula 5 •Contar função tipo dado Aula 6 •Contar função tipo transação •Determinar PF não ajustado •Determinar fator de ajuste •Determinar PF 65 O que estudaremos NESTA aula? Então nos organizaremos assim? Aula 4 •PF •Processo de contagem •Determinar escopo de contagem •Determinar tipo de contagem Aula 5 •Contar função tipo dado Aula 6 •Contar função tipo transação •Determinar PF não ajustado •Determinar fator de ajuste •Determinar PF 66 O que são os “Pontos de Função”? Uma forma de se medir o tamanho do software é a utilização do LOC – Lines of Code. Porém só podemos medir o LOC depois que o software está pronto. Portanto não é uma métrica que nos ajuda para o planejamento de esforço do software. Para tanto podemos utilizar uma métrica de COMPLEXIDADE do software que INDIRETAMENTE nos indique o tamanho que o software terá. Uma das mais famosas é o “Pontos de Função”. Eng. Requisitos Projeto Implementação Testes LOC 67 1) Métrica que caracteriza a complexidade das funcionalidades do software que será desenvolvido. 2) De forma indireta apontará o tamanho do SW. 3) Há equações que nos permitem transformar a medida de pontos de função para LOC em uma determinada linguagem. Pontos de Função: 68 Pontos de Função: Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF Como fazer para medir o SW utilizando PF? 69 Pode-se utilizar a PF para 3 tipos de software: Determinar o tipo de Contagem: 1) Projetos de desen. de software 2) Projetos de melhoria 3) Aplicação Conta-se todos os PF mais todas as conversões de dados (importações e exportações) da aplicação legada para a nova aplicação (caso de nova versão). Conta-se todos os PF do improvement. Diferente do primeiro, conta-se apenas os PFs. 70 Determinar escopo de contagem e fronteira da aplicação. É importante entender o que faz parte do sistema e o que não faz parte do sistema. Isto é determinar a fronteira da aplicação e a contagem: 71 Determinar escopo de contagem e fronteira da aplicação. 72 Quais os tipos de contagem a PF admite e por que a necessidade desses tipos? Atividades Pode-se utilizar a PF para 3 tipos de SW: 1) Projetos de desen. de software 2) Projetos de melhoria 3) Aplicação 73 Medidas de Esforço de Desenvolvimento de Software Aula 05 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas O que estudaremos NESTA aula? Categorização de métricas Pontos de Função Como determinar os pontos de função Até então fizemos duas aulas por capítulo. Agora, faremos 3 aulas para falar sobre a metade do segundo capítulo. Por que aprender a fazer a APF é importante 75 O que estudaremos NESTA aula? Então nos organizaremos assim? Aula 4 •PF •Processo de contagem •Determinar escopo de contagem •Determinar tipo de contagem Aula 5 •Contar função tipo dado Aula 6 •Contar função tipo transação •Determinar PF não ajustado •Determinar fator de ajuste •Determinar PF 76 Pontos de Função: Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 2: ALI e AIE 3: Entradas Externas Saídas Externas Consultas Externas 77 Contar função tipo dado! Funções de dados são funcionalidades solicitadas pelo usuário e que representam requisitos de dados internos e externos. ALI – Arquivo Lógico Interno: AIE – Arquivo Interface Externa: 78 Contar função tipo dado! Grupo lógico de informações de controle ou dados identificados pelo usuário e mantido dentro dos limites da aplicação. CRUDE – CReate, Update, DElete ALI Arquivo Lógico Interno Exemplo:uma tabela do banco de dados que é atualizada pela aplicação, dados da aplicação ... 79 Contar função tipo dado! Grupo lógico de informações de controle ou de dados identificados pelo usuário e relacionado com a aplicação que está sendo contada, mas atualizados e mantidos dentro dos limites de uma outra aplicação. AIE Arquivo de Interface Externa Um AIE de uma aplicação sempre será contado como um ALI em uma outra aplicação. 80 Além de contar os ALI´s e AIE´s é necessário também determinar a COMPLEXIDADE de cada um deles. Como fazer isso? Contar função tipo dado! 81 É necessário contar quantos TD e TR há no ALI ou AIE, sendo que: TR(tipo de registro lógico) = subgrupo de dados de um ALI/AIE reconhecido pelo usuário. TD(tipo de dado lógico) = campo não repetido, único e identificável pelo usuário. Contar função tipo dado! 82 Exemplo: considere um software que tem o cadastro de funcionários em uma clínica dentista sendo que o func. pode ser auxiliar ou dentista. Consideraremos o cadastro um processo elementar do sistema contendo um ALI que será o funcionário O DER ficaria desta forma. Então contamos: TR: 3 – funcionário, auxiliar e Dentista. TD: 4 – id_func, salario, bolsa, crm. Contar função tipo dado! 83 Aplicamos a tabela de complexidade abaixo. No exemplo, teríamos uma complexidade BAIXA. Contar função tipo dado! 84 Regra geral: Uma dica geral e objetiva, mas passível de erro , é contar um arquivo lógico ALI ou AIE para cada tabela reconhecida pelo usuário. Se o usuário não reconhece a tabela, mas reconhece os tipos de dados presente na mesma, provavelmente essa tabela será um tipo de registro Contar função tipo dado! 85 Contar função tipo dado! 86 Contar função tipo dado! (passo a passo) 1: Faça o modelo lógico de dados do seu projeto. 2: Identifique as tabelas reconhecidas pelo usuário (visão de negócio) e classifique-as. 3: Analise as tabelas que não estão na visão do usuário: a) Caso a tabela não pertença à visão do negócio, mas os seus TD pertençam, considere-a uma TR para cada arquivo lógico relacionado a ela e atribua os seus tipos de dados a cada um deles. b) Caso nem a tabela nem os seus TDs pertençam à visão do negócio, descarte-a da contagem. 4: Determine a complexidade 87 Medidas de Esforço de Desenvolvimento de Software Marcos Danilo Chiodi Martins Atividade 5 Descrição Tipo TR TD Complexidade Arquivo 1 ALI 1 51 Arquivo 2 ALI 10 21 Arquivo 3 ALI 1 1 Arquivo 4 ALI 6 51 Dê a complexidade de cada um dos ALI´s abaixo: Atividades 89 Dê a complexidade de cada um dos ALI´s abaixo: Atividades Descrição Tipo TR TD Complexidade Arquivo 1 ALI 1 51 MÉDIA Arquivo 2 ALI 10 21 ALTA Arquivo 3 ALI 1 1 BAIXA Arquivo 4 ALI 6 51 ALTA < 20 20 - 50 > 50 1 Baixa Baixa Média 2 - 5 Baixa Média Alta > 5 Média Alta Alta T ip o s d e R e g is tr o Tipos de Dados 90 Medidas de Esforço de Desenvolvimento de Software Aula 06 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas O que estudaremos NESTA aula? Categorização de métricas Pontos de Função Como determinar os pontos de função Vamos utilizar esta aula para cobrir o capítulo 3 do livro discutindo um estudo de caso de pontos de função e introduzindo o conceito de estimativas. 92 O que estudaremos NESTA aula? Então nos organizaremos assim? Aula 4 •PF •Processo de contagem •Determinar escopo de contagem •Determinar tipo de contagem Aula 5 •Contar função tipo dado Aula 6 •Contar função tipo transação •Determinar PF não ajustado •Determinar fator de ajuste •Determinar PF 93 Estudo de caso: Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 94 Contar Função Tipo Transação! Funções transacionais são as funcionalidades de processamento de dados providas para o usuário através da aplicação. 95 Além de contar os EE´s, SE´s e CE´s é necessário também determinar a COMPLEXIDADE de cada um deles. Sendo que um processo elementar é a menor unidade funcional que possui significado no SW que está sendo desenvolvido: a) é a menor atividade possível e que tenha significado para o usuário. b) é “auto-contido” e deixa as regras de negócio em um estado consistente. Ex: Cadastrar usuário com “Wizard de várias telas”: Conta 1 processo. Contar função tipo transação! podem ser EE – Entrada Externa - é um processo elementar que processa dados ou entradas de controle que vêm de fora (da fronteira) da aplicação SE– Saída Externa - é um processo elementar que envia dados ou informações de controle para fora da fronteira da aplicação. CE– Consulta Externa - é um processo elementar que envia informações de controle ou dados fora da fronteira do sistema 96 Contar os TDs envolvidos: É um campo não recursivo de dado, único e reconhecido pelo usuário, ou seja, é cada campo preenchido ou apresentado ao usuário. Contar função tipo transação! (complexidade) Contar os AR (arquivos referenciados): é todo arquivo lógico lido, pode ser um ALI ou AIE, ou todo arquivo lógico mantido, neste caso só pode ser um ALI. 97 Contar função tipo transação! (complexidade) EE CE SE 98 Estudo de caso: Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 99 O significado dos pontos de função não ajustados é um valor de complexidade que reflete o sistema no que tange aos requisitos específicos de armazenamento e processamento Determinar PF não ajustados! Basta agora somar a contribuição de cada ALI, AIE, EE, SE e CE encontrado, de acordo com a sua complexidade, respeitando a seguinte tabela: Tipo SIMPLES MÉDIO COMPLEXO EE 3 4 6 SE 4 5 7 CE 3 4 6 ALI 7 10 15 AIE 5 7 10 100 Estudo de caso: Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 101 Determinar Fator de Ajuste! O PF não ajustado reflete a complexidade do SW segundo suas funcionalidades. Porém há alguns outros fatores técnicos do SW que podem afetar a sua complexidade. Portanto, calculamos um FATOR DE AJUSTE baseado nessas características para “afinar” a medida Características Gerais do Sistema Comunicação de dados Atualização on-line Processamento distribuído Processamento complexo Desempenho Reutilização de código Configuração altamente utilizada Facilidade de implantação Volume de transações Facilidade operacional Entrada de dados on-line Múltiplos locais Eficiência do usuário final Facilidade de mudanças 1 Nenhuma influência. 2 Influência mínima. 3 Influência moderada. 4 Influência significativa. 5 Grande influência. Para cada uma das características, dar uma notade 1 - 5 102 Exemplo! CGS Peso atribuído CGS Peso Atribuído Comunicação de dados 3 Atualização on-line 2 Processamento distribuído 2 Processamento complexo 4 Desempenho 1 Reutilização de código 2 Configuração altamente utilizada 5 Facilidade de implantação 3 Volume de transações 4 Facilidade operacional 1 Entrada de dados on-line 5 Múltiplos locais 5 Eficiência do usuário final 1 Facilidade de mudanças 1 TOTAL 39 Determinar Fator de Ajuste! 103 Exemplo = VFA = (39 * 0,01)+0,65 = 1,04 CGS Peso atribuído CGS Peso Atribuído Comunicação de dados 3 Atualização on-line 2 Processamento distribuído 2 Processamento complexo 4 Desempenho 1 Reutilização de código 2 Configuração altamente utilizada 5 Facilidade de implantação 3 Volume de transações 4 Facilidade operacional 1 Entrada de dados on-line 5 Múltiplos locais 5 Eficiência do usuário final 1 Facilidade de mudanças 1 TOTAL 39 Determinar Fator de Ajuste! 104 Agora basta aplicar a fórmula abaixo – na qual TGI é a soma das notas. Determinar Fator de Ajuste! 105 Calcular o PF Ajustado Para finalizar, é necessário calcular o PF Ajustado. Para cada tipo de contagem de PF há uma fórmula específica. Aqui, consideraremos o primeiro tipo de contagem = desenvolvimento de novo software. A fórmula será: AjustedeFatorPFNAmentoDesenvolviPF __*_ ALI AIE EE SE CE Complexidade de cada um 1 2 3 ... 14 1 a 5 1 a 5 1 a 5 ... 1 a 5 EE CE SE 106 Medidas de Esforço de Desenvolvimento de Software Marcos Danilo Chiodi Martins Atividade 6 Atividades Imagine uma aplicação que possua 10 consultas externas, 10 entradas externas, 10 saídas externas, 5 arquivos lógicos internos, 5 arquivos de interfaces externas todos de complexidade média. Qual é o valor dos pontos de função não ajustados para este caso considerando uma contagem para projetos de desenvolvimento? 108 SIMPLES MÉDIO COMPLEXO TOTAL ALI 0 7 5 10 0 15 50 AIE 0 5 5 7 0 10 35 SE 0 4 10 5 0 7 50 CE 0 3 10 4 0 6 40 EE 0 3 10 4 0 6 40 TOTAL 215 Tipo SIMPLES MÉDIO COMPLEXO EE 3 4 6 SE 4 5 7 CE 3 4 6 ALI 7 10 15 AIE 5 7 10 109 Medidas de Esforço de Desenvolvimento de Software Aula 07 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas Estudo de Caso de PF e Introdução à Estimativa O que Estudaremos Nesta Aula? Vamos utilizar esta aula para cobrir o capítulo 3 do livro discutindo um estudo de caso de pontos de função e introduzindo o conceito de estimativas. Estudo de caso Introdução a métricas e estimativas usando PF Tipos de PF 111 O que Estudaremos Nesta Aula? Estudo de caso Introdução a métricas e estimativas usando PF Tipos de PF 112 Estudo de caso: Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 113 Estudo de caso: Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 114 Determinar o tipo de contagem! É um desenvolvimento novo, portanto, utilizaremos a primeira forma de PF = Desenvolvimento de um novo sist. 115 Estudo de caso: Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 116 Escopo de Contagem e Fronteira da Aplicação. Biblioteca de uma escola. 117 Biblioteca de uma escola. Escopo de Contagem e Fronteira da Aplicação. REQ 1 – Incluir Aluno – Um aluno pode ser incluído no sistema para que posteriormente ele possa pegar livros emprestados. REQ 2 – Emprestar – Um aluno cadastrado pode emprestar livros REQ 3 – Verificar Atrasos – Verificar livros em atraso. REQ 4 – Cadastrar Livros – A bibliotecária pode cadastrar um livro que acabou de chegar no acervo da biblioteca. 118 Escopo de Contagem e Fronteira da Aplicação. DFD. 119 Escopo de Contagem e Fronteira da Aplicação. Diagrama de auxílio ao DFD. 120 Estudo de caso: Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 121 ALI – Arquivo Lógico Interno: grupo lógico de informações de controle ou dados identificados pelo usuário e mantido dentro dos limites da aplicação. AIE – Arquivo de Interface Externa: grupo lógico de informações de controle ou de dados identificados pelo usuário e relacionado com a aplicação que está sendo contada, mas atualizados e mantidos dentro dos limites de uma outra aplicação. 122 Contar função tipo dado! Um ALI pode ser: • Tabelas de dados mantidos pela aplicação; • Arq. de configuração e segurança mantidos pela aplicação ... ALI 123 Contar função tipo dado! ALI 124 4 por enquanto Contar função tipo dado! ALI 125 Contar função tipo dado! ALI * Não apareceu no modelo, então estamos fazendo uma estimativa. O usuário reconhece No modelo lógico TR TD Aluno válido USUÁRIO 1 4 Pedido - (assumimos 1 TR e <20 TD) 1* <20* Acervo LIVRO,AUTOR,AUTORIA 3 6 7 Empréstimo EMPRÉSTIMO 1 1 126 Contar função tipo dado! ALI O usuário reconhece TR TD Complexidade Aluno válido 1 4 BAIXA Pedido 1 <20 BAIXA Acervo 3 6 BAIXA Empréstimo 1 1 BAIXA 127 Contar função tipo dado! AIE Um AIE pode ser: • Dados de referência externa utilizados pela aplicação 128 Contar função tipo dado! AIE 1 129 Contar função tipo dado! AIE O usuário reconhece TR TD Complexidade Sistema financeiro para as multas. Considerar 1 Considerar<20 BAIXA 130 Contar função tipo dado! Estudo de caso: Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 131 podem ser EE – EntradaExterna - é um processo elementar que processa dados ou entradas de controle que vêm de fora (da fronteira) da aplicação SE– Saída Externa - é um processo elementar que envia dados ou informações de controle para fora da fronteira da aplicação. 132 Contar função tipo transação! podem ser EE 133 Contar função tipo transação! SE Como não temos informações adicionais do dicionário de dados ou de outras fontes sobre a complexidade dos itens, vamos considerar todos de complexidade BAIXA. Estudo de caso: Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 134 Determinar PF não ajustados! Basta agora somar a contribuição de cada ALI, AIE, EE, SE e CE encontrado, de acordo com a sua complexidade, respeitando a seguinte tabela: 135 Determinar PF não ajustados! 136 podem ser EE 137 Contar função tipo transação! SE Como não temos informações adicionais do dicionário de dados ou de outras fontes sobre a complexidade dos itens, vamos considerar todos de complexidade BAIXA. ALI AIE Determinar PF não ajustados! Fator de ponderação Funções tipo dado e tipo transação Contagem no sistema BAIXO MÉDIO ALTO Total EE 3 3 4 6 9 SE 2 4 5 7 8 CE 0 3 4 6 0 ALI 4 7 10 15 28 AIE 1 5 7 10 5 TOTAL 50 138 Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 139 Determinar Fator de Ajuste! • O software deverá ser de alta performance, ou seja, caso o usuário queira consultar um livro ou pega-lo emprestado, o software deve performar as atividades em menos de 1 segundo. • O software terá um volume de transações médio. • Todas as entradas de dados ocorrerão online. • O sistema deve ter uma usabilidade alta de forma que qualquer ação deve ser performada em no máximo 3 cliques de mouse e todas as ações devem ser amparadas por instruções na tela do computador. • O software receberá no futuro várias atualizações, uma vez que esta é uma versão de desenvolvimento inicial. Desta forma, é importante que ele tenha como uma de suas principais características a facilidade de mudança e manutenção. • As demais características do software como por exemplo configurações, atualizações, reutilização e complexidade de processamento influenciam minimamente as funções do software e consequentemente a sua complexidade funcional e tamanho. 140 Subtotal 17 Subtotal 15 TOTAL 32 Determinar Fator de Ajuste! Exemplo = VFA = (32 * 0,01)+0,65 = 0,97 141 CGS Peso atribuído CGS Peso Atribuído Comunicação de dados 1 Atualização online 1 Processamento distribuído 1 Processamento complexo 1 Desempenho 5 Reutilização de código 1 Configuração altamente utilizada 1 Facilidade de implantação 1 Volume de transações 3 Facilidade operacional 5 Entrada de dados on-line 5 Múltiplos locais 1 Eficiência do usuário final 1 Facilidade de mudanças 5 Pontos de Função! Determinar o tipo de contagem Determinar o escopo de contagem e fronteiras da aplicação Contar função tipo dados Contar função tipo transação Det. PF não ajustados Det. Fator de ajuste Det. PF 142 Calcular o PF Ajustado A fórmula será: 5,48_ mentoDesenvolviPF97,0*50_ mentoDesenvolviPF AjustedeFatorPFNAmentoDesenvolviPF __*_ 143 O que Estudaremos Nesta Aula? Estudo de caso Introdução a métricas e estimativas usando PF Tipos de PF 144 O que o 48,5 quer dizer? Esta é uma MEDIDA de tamanho do SW que foi retirada por meio da métrica de pontos de função baseados no DFD, diagrama de apoio e premissas. E como posso fazer estimativa com eles? 145 Posso estimar LOCs LOC/PF Linguagem de programação Média Median a Baixa Alta JAVA 63 53 77 - C++ 66 53 29 178 Visual Basic 47 42 16 158 C 162 109 33 704 Ada 154 - 104 205 Cobol 77 77 14 400 Clipper 38 39 27 70 Informix 41 31 24 57 Lotus Notes 21 22 15 25 146 O que o 48,5 quer dizer? Supondo que faríamos o software em JAVA – média de 63 LOCs/PF 48,5 * 63 = 3055,5 LOCs Por meio de uma paramétrica, podemos estimar ESFORÇO e CUSTO. 147 O que o 48,5 quer dizer? Supondo (base histórica) 11,9 horas/FP Este software demoraria 48,5 * 11,9 = 577,19 horas Considerando o custo de desenvolvimento de R$ 100,00/h Este software teria o custo de R$ 57.719,00 148 O que Estudaremos Nesta Aula? Estudo de caso Introdução a métricas e estimativas usando PF Tipos de PF 149 150 Outros tipos de contagem Projeto de melhoria EFP = [(ADD + CHGA + CFP) * VAFA] + (DEL * VAFB) EFP – Número de pontos de função do projeto de melhoria; ADD – Número de pontos de função não ajustados das funções incluídas pelo projeto de melhoria; CHGA – Número de pontos de função não ajustados das funções modificadas depois das modificações; CFP - Número de pontos de função não ajustados adicionados pela conversão; VAFA – Valor do fator de ajuste da aplicação depois do projeto de melhoria; DEL - Número de pontos de função não ajustados das funções excluídas pelo projeto de melhoria; VAFB – Valor do fator de ajuste da aplicação antes do projeto de melhoria. 150 151 Para uma aplicação AFP = [(UFPB + ADD + CHGA) – (CHGB + DEL)] * VAFA AFP – Número de pontos de função ajustados da aplicação UFPB – Número de pontos de função não ajustados da aplicação antes do projeto de melhoria; ADD – Número de pontos de função não ajustados das funções incluídas pelo projeto de melhoria; CHGA – Número de pontos de função não ajustados das funções modificadas depois do seu término; CHGB – Número de pontos de função não ajustados das funções modificadas antes do seu término; DEL - Número de pontos de função não ajustados das funções excluídas pelo projeto de melhoria; VAFA – Valor do fator de ajuste da aplicação depois do projeto de melhoria. 151 152 Estimativas Putnam e métodos voltados para PF Tipo de Interface Multiplicador Não IGI 2 Interface com usuário baseada em texto 2,25 IGI 2,5 IGU Complexa 3 153 Um projeto usando um processo de desenvolvimento ágil e feito como um conjunto de cenários de usuários. É possível desenvolver uma estimativa com razoável significado com os seguintes passos: 1- Cada cenário de usuário é considerado separadamente para a estimativa. 2- O cenário é composto de um conjunto de funções e tarefas de engenharia de SW. 3 a- Cada tarefa é estimada separadamente. 3 b- O tamanho do cenário pode ser estimado em LOC, PF ou alguma outra medida orientada a volume 4.a- As estimativas de cada tarefa são somadas para criar uma estimativa de cenário 4.b- O volumede esforço é estimado para cenário é traduzido para esforço baseado em dados históricos 5- As estimativas de esforço para todos os cenários que devem implementar um incremento de software são somadas para definir a estimativa para o incremento. Normalmente, a duração do desenvolvimento de um incremento é da ordem de 3-6 semanas; a estimativa serve para garantir que o número de cenários a ser incluído no incremento esteja de acordo com os recursos disponíveis. 154 Estimativas Putnam e métodos voltados para PF Estimativa usando Caso e USO 155 Estimativas Putnam e métodos voltados para PF PCU – Pontos por Caso de Uso – Foram criados por Gustav Karner, em 1993 como uma adaptação específica dos Pontos de Função para medir o tamanho de projetos de software orientados a objeto. Explora o modelo e descrição do caso de uso, substituindo algumas características técnicas proposta pelos Pontos de Função. É um método simples e de fácil utilização mas ainda esta em fase de pesquisas e não existem regras de contagem padronizadas. Tem-se estudado a aplicação em conjunto da PCU e APF, tentando explorar a relação entre elas existente.(EDMÉIA,2004). Considerando que a APF é uma das técnicas funcionais mais antigas que possui um dos grupos de usuários mais bem estruturados e atuantes e que a partir de 2002 passou a condição de padrão internacional, através da norma ISO/IEC 20926. A técnica pode ser considerada como uma das melhores alternativas de medição de tamanho do projeto de software.APF serve como um instrumento para acompanhar estimativas de custo e recursos requeridos para o desenvolvimento e manutenção de software. 156 Estimativas usando ponto função Estimativas Putnam e métodos voltados para PF A estimativa de tamanho de um projeto de software é uma atividade crítica, pois, tem um impacto, tanto na solução técnica apresentada, como no gerenciamento do projeto de software, devendo ser efetuada não somente no início do projeto, mas durante o ciclo de vida do projeto.Uma pesquisa realizada pela Secretaria de Política de Informática – SEPIN , em 2001, indicou que a utilização da APF vem crescendo no Brasil, conforme mostra a tabela 2.1: - O sistema irá permitir o acesso sem restrições para qualquer usuário da empresa , não havendo portanto controle de acesso. - Não existe qualquer interface com outros sistemas existentes- Deverão ser cadastrados os seguintes dados de um cliente: Nome , Endereço, Cidade , Cep , Telefone , E.mail e Observações. - O nome do cliente , endereço , cidade , cep e email são obrigatórios e deverão ser sempre informados. 157 Sistema de manutenção de clientes Estimativas Putnam e métodos voltados para PF Descrição do Sistema: Em um sistema de manutenção de clientes um usuário (funcionário de empresa) registra as entradas, alterações, exclusões e saídas (relatório) dos dados relativos a um cliente da empresa no sistema. Qualquer usuário da empresa poderá acessar o sistema e efetuar o cadastramento (não haverá controle de acesso no sistema). Será emitido um relatório de todos os clientes cadastrados e dos dados de um determinado cliente. Característicasdo Sistema: 158 Lista de ator(es): Estimativas Putnam e métodos voltados para PF Casos de Uso identificados: 159 Determinar o tamanho funcional do sistema de manutenção Entidades e funções do processo de manutenção de clientes: Estimativas Putnam e métodos voltados para PF Determinar o tamanho funcional do sistema de manutenção Para estimar o tamanho, será feita uma contagem estimativa, segundo o modelo que estudamos nas aulas anteriores - IFPUG. Vamos usar o processo de contagem, conforme preconiza o manual do IFPUG, para determinar o número de pontos por função de um projeto de software. Vamos usar as etapas do processo de contagem da APF, conforme a figura abaixo: 160 Conclusão: Estimativas Putnam e métodos voltados para PF Medidas de Esforço de Desenvolvimento de Software Marcos Danilo Chiodi Martins Atividade 7 Atividades Calcule a estimativa de tempo e custo para um sistema desenvolvido em C++ considerando as características abaixo. Produtividade a ser considerada = 15horas/pf. Custo de desenvolvimento = R$ 150,00 162 SIMPLES MÉDIO COMPLEXO TOTAL ALI 4 7 1 10 2 15 68 AIE 10 5 3 7 1 10 81 SE 6 4 3 5 2 7 53 CE 10 3 4 4 3 6 64 EE 13 3 8 4 5 6 101 TOTAL 367 • PFNA = 367 • TGI = 42 -> VFA = (42*0,01)+0,65 = 1,07 • PF ajustados (proj. de desenvolvimento) PFNA*VFA = 367 * 1,07 = 392,69 pontos de função. • Esforço = 15 * 392,69 = 5890,35 • Custo = 5890,35 * 150 = R$ 883.552,50 Atividades 163 Medidas de Esforço de Desenvolvimento de Software Aula 08 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas Técnicas de estimativa de custo e esforço O que Estudaremos Nesta Aula? Vamos utilizar a aula 8 e 9 para cobrir o capítulo 4 do livro PMI/PMBOK Técnicas de estimativa 1 Técnicas estimativas 2 165 1 •PMI 2 •PMBOK 3 •Certificações PMI E seus serviços 166 PMI - Definição Organização sem fins lucrativos, dedicada ao avanço do estado da arte em gerenciamento de projetos. Criado inicialmente na Pensilvânia (EUA) em 1969, tem como compromisso promover o profissionalismo e a ética em GP. 167 Hoje considerada a maior e mais acreditada instituição de educação e desenvolvimento de padrões em gerência de projetos. Mais informações no site: www.pmi.org www.pmisp.org.br O Brasil foi o primeiro país a ter um Chapter fora dos EUA. Esse Chapter durou até 1984 e depois foi reaberto na década de 90. Os Chapters são como filiais agrupadas geograficamente que contribuem nas missões e objetivos do PMI, promovendo o profissionalismo em gerência de projeto. São 15 no BR em 2017. PMI - Organização 168 PMI Chapter RJ Chapter MG Chapter ES Chapter CE Chapter +9*… Chapter SP Chapter SC https://brasil.pmi.org/ 1 •PMI 2 •PMBOK 3 •Certificações PMI E seus serviços 169 Padrão profissionais • Desenvolvimento de padrões para a prática de Gerência de Projetos. • Principal documento é o PMBOK ou A Guide to the Project Manager Base of Knowledge. • O PMBOK é aprovado pela ANS e está na sua quarta edição. (2008) PMI – Produtos e Serviços 170 • O PMBOK apresenta as melhores práticas de gestão de projetos estruturado em 10 áreas de conhecimento • Ger. de Integração • Ger. de Escopo • Ger. de Tempo • Ger. de Custo • Ger. de Qualidade • Ger. de RH • Ger de Comunic. • Ger. de Riscos • Ger. de Aquisições • Ger. Partes Interessadas Padrão profissionais - PMBOK • Cada uma das 10 grandes áreas são agrupadas em 5 grandes grupos de processos, a saber: • Iniciação • Planejamento • Execução • Monitoramento & Controle • Encerramento 171 I P E M E ?desvio OK PMI – Produtos e Serviços 172 Tempo 173 174 175 Técnicas de Estimativas Análoga Paramétrica Análise de reservas Estimativa de 3 pontos Opinião especializada e técnica de tomada de decisão em grupo 176 Est. a dur. das atividades–Ferr. Tec: Análoga Pode ser feita para o projeto como um todo:os últimos 5 projetos parecidos duraram 8 meses, então este também vai durar 177 A mesma coisa pode ser feita para uma atividade Não é muito preciso – usam histórico e opinião especializada. Útil no início do projeto Técnica Análoga ou top down Técnicas de Estimativas Análoga Paramétrica Análise de reservas Estimativa de 3 pontos Opinião especializada e técnica de tomada de decisão em grupo 178 • Normalmente utilizamos juntamente com uma análise bottom-up. • Nesta análise as tarefas são estimadas e depois, de baixo para cima, compõe-se a estimativa do projeto. É a estimativa do pedreiro (base histórica): observa o relacionamento entre variáveis para calcular o tempo Pode ser utilizado em conjunto com a estimativa de três pontos Paramétrica / bottom-up 179 Medidas de Esforço de Desenvolvimento de Software Marcos Danilo Chiodi Martins Atividade 8 Atividades A área de uma sala é de 100m2 e é necessário colocar piso nesta sala. O pedreiro consegue colocar 1m2 de piso por hora. Qual é o esforço estimado no qual o pedreiro conseguirá colocar o piso em toda a sala? 181 • Utilizando a técnica paramétrica o pedreiro colocará o piso em 100 horas. Atividades 182 Medidas de Esforço de Desenvolvimento de Software Aula 09 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas Técnicas de estimativa de custo e esforço O que Estudaremos Nesta Aula? Vamos utilizar a aula 8 e 9 para cobrir o capítulo 4 do livro PMI/PMBOK Técnicas de estimativa 1 Técnicas estimativas 2 184 Técnicas de Estimativas Análoga Paramétrica Análise de reservas Estimativa de 3 pontos Opinião especializada e técnica de tomada de decisão em grupo 185 Análise de Reserva São reservas contingencias de tempo ou buffers aplicados para os riscos que restam após o processo Planejar Respostas aos Riscos. 186 Técnicas de Estimativas Análoga Paramétrica Análise de reservas Estimativa de 3 pontos Opinião especializada e técnica de tomada de decisão em grupo 187 Estimar a duração das atividades–Ferr. Tec: 3 pontos Acertar com exatidão uma determinada duração do projeto ou então a data final é estatisticamente difícil ! 188 Por isso é mais interessante estimar por meio da definição de um intervalo. Então pode-se fazer uma média com a técnica PERT. Procedimento para a técnica: 1) Pegue a estimativa OTIMISTA (Ex: 5min) 2) Pegue uma estimativa PESSIMISTA (30 min) 3) Pegue uma estimativa MAIS PROVÁVEL (10min -média) 4) Calcule a DURAÇÃO ESPERADA (ou PERT) 189 Estimar a duração das atividades–Ferr. Tec: 3 pontos 5) Também é importante calcular o desvio padrão. Desvio Padrão da Atividade =[30+(4x10)+5]/6=75/6 =(30-5)/6=4,17 6) e a variância 7) O intervalo de uma atividade será Intervalo da atividade: 75/6-25/6 a 75/6+25/6= 50/6 a 100/6. 8,33 a 16,67 =[(30-5)/6]²=625/36=17,36 Resumão: DEA Desvio Padrão da Atividade Var. da Atividade Intervalo da atividade 190 Estimar a duração das atividades–Ferr. Tec: 3 pontos Atividade: ATV P M O DEA D. Pad. atv. Var atv. Intervalo Estimativa A 47 27 14 28,17 169/6 5,5 33/6 30,25 22,67 a 33,67 B 89 60 41 61,67 370/6 8 64 53,67 a 69,67 C 48 44 39 43,83 169/6 1,5 2,25 42,33 a 45,33 D 42 37 29 36,5 169/6 2,17 4,70 34,33 a 38,67 191 Estimar a duração das atividades–Ferr. Tec: 3 pontos Determinar o tempo total do projeto: 1)Determine a DURAÇÃO ESPERADA DO PROJETO a) Ela é a soma de todas as DEAs das atividades do caminho crítico. 2)Determine DESVIO PADRÃO DO PROJETO b) Basta somar todas as VARIÂNCIAS e depois tirar a raiz quadrada 3)Eleve o DESVIO PADRÃO ao quadrado para descobrir a VARIÂNCIA DO PROJETO 192 Estimar a duração das atividades–Ferr. Tec: 3 pontos Atividade: Projeto DEP D. Pad. Projeto Var Projeto Intervalo Estimativa Projeto Estimativa de duração do projeto 170,17 10,06 101,20 160,11 a 180,23 193 Estimar a duração das atividades–Ferr. Tec: 3 pontos Soma das variâncias Raiz da Soma das variâncias Consideramos a confiabilidade para 1 SIGMA: SIGMA Confiabilidade 1 SIGMA 68,26% 2 SIGMA 95,46% 3 SIGMA 99,73% 6 SIGMA 99,99985% 194 Estimar a duração das atividades–Ferr. Tec: 3 pontos 195 Estimar a duração das atividades–Ferr. Tec: 3 pontos Técnicas de Estimativas Análoga Paramétrica Análise de reservas Estimativa de 3 pontos Opinião especializada e técnica de tomada de decisão em grupo 196 A opinião especializada não é magia: • São utilizadas principalmente para durações máximas; • Também utilizadas para propor métodos para estimar; • Ajuda a verificar a qualidade de uma estimativa; • Quase sempre guiada por informações históricas • Brainstorms, TGN e outros podem ajudar Est. a dur. das atividades–Ferr. Tec: Opinião especializada 197 Medidas de Esforço de Desenvolvimento de Software Marcos Danilo Chiodi Martins Atividade 9 Atividades Qual a vantagem e desvantagem de se utilizar uma estimativa análoga top down e uma estimativa paramétrica bottom-up? 199 Top-down: No começo do projeto, quando não há muitas informações, é a melhor indicação pela base histórica e análise análoga. O risco de erro é grande pois não tem análise de contingência. A estimativa é para o projeto como um todo e então pode ser quebrada para as fases do projeto (TOP > Down) Paramétrica: Mais precisa, grau de confiança maior porém precisa de ter as atividades já definidas, ou seja, bem mais tarde. Medidas de Esforço de Desenvolvimento de Software Aula 10 Métricas e medidas 1 e 2 Determinação de pontos de função 1 e 2 Métricas utilizando pontos de função Técnicas de estimativa de custo e esforço Téc de estimat de estimat e estimat com base estatísticas Técnicas de estimativa de custo e esforço O que Estudaremos Nesta Aula? Vamos utilizar esta aula para cobrir o capítulo 5 do livro. COCOMO COCOMO II Estimativa de Puttman Estimativas com métodos ágeis Pontos de caso de uso Gestão por métricas Análise do valor agregado Estimativas estatísticas 201 Estimativas COCOMO 202 Para decidir, se devemos fazer um desenvolvimento para uma nova aplicação, devemos saber quanto tempo será necessário e quanto vai custar. Vale a pena? As estimativas de custos e prazos em software não são ciência exata, mas temos necessidades de diminuir, em nível de erro, das nossas estimativas. Existem muitos aspectos que podem influenciar nas estimativas. Um erro na estimativa pode comprometer o projeto e ser desastroso para os desenvolvedores.Estimativas COCOMO 203 O gráfico abaixo [sommerville, Ian] mostra o Nível de variação de erro de uma estimativa nas diversas fases do projeto. Apenas na fase de codificação se torna mais próxima do real. Hierarquia de Modelos 204 Modelo 2 (Intermediário): Chamado de COCOMO intermediário, computa o esforço de desenvolvimento como uma função do tamanho e de um conjunto de direcionadores de custo (definidos em tabelas) que incluem avaliações subjetivas do produto, hardware, experiência do pessoal e dos atributos do projeto (Pressman). Modelo 3 (Avançado): Chamado de COCOMO avançado, incorpora a versão intermediária e faz uma avaliação dos impactos nos direcionadores de custo sobre cada passo do processo de desenvolvimento (analise, projeto, codificação, testes...). Modelo 1 (Básico): Chamado de COCOMO Básico é um modelo estático de valor simples que computa o esforço de desenvolvimento de software como uma função do tamanho expresso em linhas de código (Pressman). COCOMO: que significa COnstructive COst MOdel (modelo de custo construtivo) foi criado por Barry Boehm em 1981 (Boehm, 1981) é de fato uma hierarquia de estimativas que busca realizar a estimativa de esforço e duração baseada em um modelo estatístico de uma só variável. 205 Modelo básico Modelo intermediário Modelo avançado • modelo simples que computa o esforço (custo) por meio de uma função paramétrica baseada apenas no tamanho do software • computa o esforço baseado no tamanho e também baseado em direcionadores de custo que incluem avaliações subjetivas de: produto, hardware, pessoal e outros atributos do projeto • modelo que é composto por pelos modelos básicos e intermediários e ainda uma avaliação do impacto dos direcionadores de custo sobre cada passo do processo de engenharia de software COCOMO Básico. • E = esforço aplicado em pessoas-mês; • D = tempo de desenvolvimento em meses cronológicos; • KLOC =número estimado de milhares de linhas de código do projeto; • ab, cb e bb , db = são os coeficientes e expoentes que se alteram dependendo do tipo de software que está sendo utilizado e que pode ser verificado na próxima tabela 206 • E = esforço aplicado em pessoas-mês; • D = tempo de desenvolvimento em meses cronológicos; • KLOC =número estimado de milhares de linhas de código do projeto; • ab, cb e bb , db = são os coeficientes e expoentes que se alteram dependendo do tipo de software que está sendo utilizado e que pode ser verificado na próxima tabela Modelo de projeto de software ab bb cb db Modelo orgânico 2,4 1,05 2,5 0,38 Modelo semidestacado 3,0 1,12 2,5 0,35 Modelo embutido 3,6 1,20 2,5 0,32 207 COCOMO Básico. Modelo orgânico: projetos de software simples, pequenos, pequenas equipes com relativa experiência. Trabalha-se um conjunto de requisitos não tão rígidos, pode exemplificar pequenos sistemas. 208 COCOMO Básico. Modelo de projeto de software ab bb cb db Modelo orgânico 2,4 1,05 2,5 0,38 Modelo semidestacado 3,0 1,12 2,5 0,35 Modelo embutido 3,6 1,20 2,5 0,32 Modelo semidestacado: projetos de sw intermediários (em tamanho e complexidade), nos quais há equipes com vários níveis de experiência, que devem programar uma combinação de requisitos rígidos. Por exemplo: um sistema de processamento de transações. 209 COCOMO Básico. Modelo de projeto de software ab bb cb db Modelo orgânico 2,4 1,05 2,5 0,38 Modelo semidestacado 3,0 1,12 2,5 0,35 Modelo embutido 3,6 1,20 2,5 0,32 Modelo embutido: Um projeto que deve ser desenvolvido dentro de restrições operacionais, como por exemplo, sistema de controle de telefonia sistemas embutidos ou embarcados. 210 COCOMO Básico. Modelo de projeto de software ab bb cb db Modelo orgânico 2,4 1,05 2,5 0,38 Modelo semidestacado 3,0 1,12 2,5 0,35 Modelo embutido 3,6 1,20 2,5 0,32 211 COCOMO: que significa COnstructive COst MOdel (modelo de custo construtivo) foi criado por Barry Boehm em 1981 (Boehm, 1981) é de fato uma hierarquia de estimativas que busca realizar a estimativa de esforço e duração baseada em um modelo estatístico de uma só variável. Modelo básico Modelo intermediário Modelo avançado • modelo simples que computa o esforço (custo) por meio de uma função paramétrica baseada apenas no tamanho do software • computa o esforço baseado no tamanho e também baseado em direcionadores de custo que incluem avaliações subjetivas de: produto, hardware, pessoal e outros atributos do projeto • modelo que é composto por pelos modelos básicos e intermediários e ainda uma avaliação do impacto dos direcionadores de custo sobre cada passo do processo de engenharia de software COCOMO Intermediário 212 Projeto de Software a b Orgânico 3,2 1,05 Semidestacado 3,0 1,12 Embutido 2,8 1,20 213 COCOMO Intermediário Atributos do projeto M u ito b a ix o B a ix o N o rm a l A lto M u ito A lto E x tra A lto Confiabilidade exigida do software 0,75 0,88 1 1,15 1,40 ---- Tamanho do banco de dados da aplicação - 0,94 1 1,08 1,16 - Complexidade do produto 0,70 0,85 1 1,15 1,30 1,65 Restrições ao desempenho de run-time - - 1 1,11 1,30 1,66 Restrições de memória - - 1 1,06 1,21 1,56 Volatilidade do ambiente de máquina virtual - 0,87 1 1,15 1,30 - Tempo de turnaround exigido - 0,87 1 1,07 1,15 Capacidade de análise 1,46 1,19 1 0,86 0,71 - Capacidade em engenharia de software 1,42 1,17 1 0,86 0,70 - Experiência em aplicações 1,29 1,13 1 0,91 0,82 0 Experiência em máquina virtual 1,21 1,10 1 0,9 - - Experiência em linguagens de programação 1,14 1,07 1 0,95 - - Uso de ferramentas de software 1,24 1,10 1 0,91 0,83 - Aplicação de métodos de engenharia de SW 1,24 1,10 1 0,91 0,82 - Cronograma de atividades de desenv exigido 1,23 1,08 1 1,04 1,10 - 214 COCOMO Intermediário • modelo que é composto por pelos modelos básicos e intermediários e ainda uma avaliação do impacto dos direcionadores de custo sobre cada passo do processo de engenharia de software 215 COCOMO: que significa COnstructive COst MOdel (modelo de custo construtivo) foi criado por Barry Boehm em 1981 (Boehm, 1981) é de fato uma hierarquia de estimativas que busca realizar a estimativa de esforço e duração baseada em um modelo estatístico de uma só variável. Modelo básico Modelo intermediário Modelo avançado • modelo simples que computa o esforço (custo) por meio de uma função paramétrica baseada apenas no tamanho do software • computa o esforço baseado no tamanho e também baseado em direcionadores de custo que incluem avaliações subjetivas de: produto, hardware, pessoal e outros atributos do projeto COCOMO Avançado. • Usa a mesma fórmula do COCOMO Avançado, porém, distribui esforço e custo pelas fases do desenvolvimento de software, conforme a seguir. 216 217 COCOMO Avançado. 218 COCOMO Avançado. O que Estudaremos Nesta Aula? COCOMO COCOMO II Estimativa de Putman Estimativas com métodos ágeis Pontos de caso de uso Gestão por métricas Análise do valor agregado Estimativas estatísticas 219 COCOMO II 220 O COCOMO II é uma melhorado COCOMO-81 e leva em consideração que há abordagens diferentes para o desenvolvimento, incorpora um conjunto de submodelos que produzem estimativas detalhadas. Os submodelos são: A– Um modelo de Composição de aplicação. B – Um modelo de projeto preliminar. C – Um modelo de Reuso. D – Um modelo de pós-arquitetura COCOMOII: Evolução do COCOMO e leva em consideração as abordagens mais modernas para o desenvolvimento de software. Composição de Aplicação Projeto Preliminar Reúso • Usado em projetos nos quais o software será composto por componentes. • utilizado antes do projeto de arquitetura detalhada do sistema estar disponível, mas quando já se tem acordados os requisitos de usuário. • Este modelo deve ser utilizado quando o projeto utilizará códigos reaproveitado de outros projetos. Pós arquitetura • Utilizar quando um modelo de arquitetura do sistema esteja disponível e seja capaz de identificar as estruturas de subsistemas 221 Composição de Aplicação Projeto Preliminar Reúso • Usado em projetos nos quais o software será composto por componentes. • utilizado antes do projeto de arquitetura detalhada do sistema estar disponível, mas quando já se tem acordados os requisitos de usuário. • Este modelo deve ser utilizado quando o projeto utilizará códigos reaproveitado de outros projetos. Pós arquitetura • Utilizar quando um modelo de arquitetura do sistema esteja disponível e seja capaz de identificar as estruturas de subsistemas 222 COCOMOII: Evolução do COCOMO e leva em consideração as abordagens mais modernas para o desenvolvimento de software. COCOMO II – Composição de aplicação PM = esforço pessoas/mês NAP = Número total de pontos de aplicação PROD = produtividade de pontos de aplicação que é dada segundo a tabela abaixo: Experiência e capacidade do desenvolvedor Muito Baixa Baixa Nominal Alta Muito Alta Capacidade e maturidade ICASE Muito Baixa Baixa Nominal Alta Muito Alta PROD (NAP/mês) 4 7 13 25 50 Experiência e capacidade do desenvolvedor Muito Baixa Baixa Nominal Alta Muito Alta Capacidade e maturidade ICASE Muito Baixa Baixa Nominal Alta Muito Alta PROD (NAP/mês) 4 7 13 25 50 223 Modelo de Composição de aplicação 224 É usado para estimar o esforço necessário para projetos de prototipação e projetos em que o software é desenvolvido pela composição de componentes de software que já estão prontos ou usados de outros produtos existentes. A estimativa do software considera a produtividade do programador na linguagem, a experiência e capacitação do desenvolvedor e a capacidade de usar ferramentas para apoiar o desenvolvimento. O método baseia-se na estimativa de pontos de objetos (número de objetos) A composição da aplicação envolve, normalmente, o reuso significativo do software, por isto deve-se ajustar a estimativa baseada do uso total ao percentual de reuso esperado. A fórmula de cálculo de esforço é: PM = (NAP * ( 1 - %reuso)/100)/PROD Onde:PM é o esforço estimado em pessoa-mês.NAP é o número total de pontos de aplicação no sistema PROD é a produtividade em pontos de objeto, consultada na tabela de produtividade.(NOP/mês – Número de pontos de Objeto/mês ) Tabela de produtividade: O modelo pressupõe que não há esforços adicionais. Composição de Aplicação Projeto Preliminar Reúso • Usado em projetos nos quais o software será composto por componentes. • utilizado antes do projeto de arquitetura detalhada do sistema estar disponível, mas quando já se tem acordados os requisitos de usuário. • Este modelo deve ser utilizado quando o projeto utilizará códigos reaproveitado de outros projetos. Pós arquitetura • Utilizar quando um modelo de arquitetura do sistema esteja disponível e seja capaz de identificar as estruturas de subsistemas 225 COCOMOII: Evolução do COCOMO e leva em consideração as abordagens mais modernas para o desenvolvimento de software. Modelo Preliminar 226 COCOMO II – Projeto Preliminar PM = Esforço pessoas/mês Tamanho = dado em KSLOC (kilo source of lines) – normalmente uma transformação de pontos de função para KSLOC A = Coeficiente com o valor 2,94 B = fator de escala que mostra a economia ou “deseconomia” de escala M = Multiplicador baseado em sete atributos de projeto que veremos mais abaixo. 227 Composição de Aplicação Projeto Preliminar Reúso • Usado em projetos nos quais o software será composto por componentes. • utilizado antes do projeto de arquitetura detalhada do sistema estar disponível, mas quando já se tem acordados os requisitos de usuário. • Este modelo deve ser utilizado quando o projeto utilizará códigos reaproveitado de outros projetos. Pós arquitetura • Utilizar quando um modelo de arquitetura do sistema esteja disponível e seja capaz de identificar as estruturas de subsistemas 228 COCOMOII: Evolução do COCOMO e leva em consideração as abordagens mais modernas para o desenvolvimento de software. COCOMO II – Modelo de Reúso ASLOC é o número total de linhas de código reusado, incluindo o código que é gerado automaticamente. AT é a porcentagem de códigos reusados gerados automaticamente. ATPROD é a produtividade dos engenheiros na integração do código, que no COCOMO II foi calculada como sendo 2400 declarações-fonte por mês. 229 Modelo de Reuso 230 Conclusão 231 Composição de Aplicação Projeto Preliminar Reúso • Usado em projetos nos quais o software será composto por componentes. • utilizado antes do projeto de arquitetura detalhada do sistema estar disponível, mas quando já se tem acordados os requisitos de usuário. • Este modelo deve ser utilizado quando o projeto utilizará códigos reaproveitado de outros projetos. Pós arquitetura • Utilizar quando um modelo de arquitetura do sistema esteja disponível e seja capaz de identificar as estruturas de subsistemas 232 COCOMOII: Evolução do COCOMO e leva em consideração as abordagens mais modernas para o desenvolvimento de software. COCOMO II – Modelo de Pós Arquitetura PM = Esforço pessoas/mês Tamanho = dado em KSLOC (kilo source of lines) – normalmente uma transformação de pontos de função para KSLOC A = Coeficiente com o valor 2,94 B = fator de escala que mostra a economia ou “deseconomia” de escala M = Multiplicador baseado em 14 atributos de projeto que veremos mais abaixo. 233 O que Estudaremos Nesta Aula? COCOMO COCOMO II Estimativa de Putman Estimativas com métodos ágeis Pontos de caso de uso Gestão por métricas Análise do valor agregado Estimativas estatísticas 234 Estimativa de Puttnam 235 O que Estudaremos Nesta Aula? COCOMO COCOMO II Estimativa
Compartilhar