Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 6 ESTIMATIVAS DE ESFORÇO E PRAZO COCO MO/COCO MO II Nesta aula, você irá: 1.Aprender a fazer estimativas de prazo e esforço, utilizando métodos COCOMO. 2.Analisar as limitações de estimativas, dependendo da fase do projeto que a estimativa é feita (erro estimado). 3.Aprender a utilização dos métodos de estimativa com ponto função. 4.Classificar o software em grau de dificuldade, segundo critérios do COCOMO, para produzir à estimativa. 5.Aprender a diferença do COCOMO II e o COCOMO. 6.Como determinar a complexidade. 7.Tratar o fator de ajuste. 8.Definir o número de ponto função por tipo de contagem. Estimativas COCOMO 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. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 1 Existem muitos aspectos que podem influenciar nas est imat ivas. Um erro na est imat iva pode comprometer o projeto e ser desastroso para os desenvolvedores. As estimativas, normalmente, são feitas a partir de uma série histórica, baseada em projetos feitos anteriormente. Nesse caso, registraram-se várias informações, tempo por fase do projeto, tempo de codificação, quantidade de programadores e outras informações. Essas informações, após tratadas, são a base para estimar e acompanhar a execução de novos projetos. Os dados podem ser colocados em gráficos e estes gráficos definem famílias de curvas. Essas curvas são ajustadas a funções matemáticas. Essas funções matemáticas são usadas para valores que não constam nas tabelas. Quando não se tem nenhuma informação é comum fazer as estimativas baseadas na experiência dos profissionais. Nesse caso, podem-se registrar as estimativas de vários profissionais e trabalharmos com valores resultantes destes valores. Pode-se, por exemplo, usar o valor segundo a média ponderada, segundo a fórmula: PM + Pm + 4*Pmedio Prazo estimado = __________________ 6 onde: PM é o maior prazo dado Pm é o menor prazo dado Pmedio é a média dos prazos dados MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 2 Estimativas, normalmente, são feitas a partir de série histórica baseada nos projetos feitos anteriormente. • Registram-se várias informações (tempo por fase do projeto, de codificação, quantidade de programadores e outras informações). • As informações são a base para estimar e acompanhar a execução de novos projetos. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 3 Base de informações: • Os dados são colocados em gráficos e estes gráficos definem famílias de curvas. • Estas curvas são ajustadas a funções matemáticas. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 4 Nível de erro aceitável Depende da faixa de valores • Quando não se tem nenhuma informação é comum fazer as estimativas baseadas na experiência dos profissionais. - método Delphos Recomendação do PMI para estimativas de prazo Prazo estimado = PM + Pm + 4*Pmedio 6 Onde : PM é o maior prazo dado Pm é o menor prazo dado e Pmedio é a media dos prazos dados Exemplo de aplicação: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 5 Nove técnicos experientes deram uma estimativa de prazo para uma determinada tarefa que não temos nenhum registro. Tec1: 10 dias tec2: 20 dias tec3: 15 dias Téc4: 12 dias tec5: 8 dias tec6: 25 dias Tec7: 15 dias tec8: 12 dias tec9: 15 dias Para estimar o prazo de projeto devemos calcular a média dos prazos: Prazo médio= (10+20+15+12+8+25+15+12+15)/9 = 15 dias Prazo de projeto =( 25 + 8 + 4*15)/6 = 15,5 entendendo: 15 dias + meio dia Se convertermos em horas de trabalho, considerando que um dia tem 8 horas de trabalho, a tarefa está estimada em levar 15*8 + 4 =124 horas MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 6 O processo de estimativa envolve basicamente quatro atividades: 1.estimar o tamanho do produto a ser gerado; 2.Estimar o esforço empregado na execução do projeto; 3.estimar a duração do projeto; 4.estimar o custo do projeto. • Nível de variação de erro de uma estimativa nas diversas fases do projeto. • 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. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 7 Para se fazer estimativa, usam-se duas unidades básicas: 1000 linhas de código (KLOC) e Ponto Função (PF). As estimativas, utilizando o tamanho (KLOC) para serem confiáveis, devem estar presentes em fases adiantadas do projeto, devido à incerteza. Um dos primeiros pesquisadores de software a se preocupar com o assunto de estimativas e estudar os custos envolvidos em projetos foi Barry Boehm, em seu livro sobre engenharia econômica do software em 1891. Nesse trabalho foram estudados mais de 5000 projetos de software. –Estes softwares foram classificados segundo uma hierarquia de modelos; MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 8 –Recebeu o nome de COCOMO. –(COnstructive COst MOdel - Modelo de Custos Construtivos) COCOMO Classificação do tipo do software: • Modelo 1 (básico): é um modelo estático de valor simples que computa o esforço de desenvolvimento de software. • Modelo 2 (intermediário): computa o esforço de desenvolvimento como uma função d o t a m a n h o , e d e u m c o n j u n t o d e direcionadores de custo (definidos em tabelas) que incluem avaliações subjetivas do produto, hardware, experiência do pessoal e dos atributos do projeto. • 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...) Mais sobre modelos usados para classificar o tipo do software MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 9 Usando a terminologia de Boehm, o COCOMO pode ser aplicado em três classes de projeto: 1– Modo Orgânico ou Convencional: 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. 2– Modo Semidestacado ou Difuso: Projetos de software intermediário (em tamanho e complexidade), nos quais temos 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. 3– Modo Embutido ou Restrito : Um projeto que deve ser desenvolvido dentro de restrições operacionais, como por exemplo, sistema de controle de telefonia. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 10 As equações para o COCOMO básico são: Para N éo número de pessoas recomendadas no projeto; E é o esforço aplicado em pessoas-mês; D é o tempo de desenvolvimento em meses cronológicos; KLOC é o número estimado de linhas de código do projeto (em milhares). Os coeficientes ab e cb, e as exponenciais bb e db são fornecidos de acordo com a tabela abaixo: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 11 No modelo intermediário, o básico é ampliado, considerando-se 4 grandes categorias direcionadoras de custos: A–Atributos do produto: I–Confiabilidade exigida do software. II–Tamanho do Banco de dados. III–Complexidade do software. B–Atributos do Hardware I–Restrições de desempenho de run-time. II-Restrições de memória. III–Mudanças do ambiente de software. IV–Tempo de resposta–turnaround. C–Atributos de pessoal I-Capacidade dos analistas. II–Capacidade dos programadores. III–Experiência na aplicação. IV–Experiência no ambiente de Hardware. V - E x p e r i ê n c i a c o m a l i n g u a g e m d e programação. D–atributos de projeto I–Uso de ferramenta de software. II–técnicas modernas de programação. III–Prazo requerido para o desenvolvimento. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 12 Cada um dos itens acima (15) deve ser avaliado (em importância e valor) numa escala de 6 pontos: - Muito baixo - Baixo - Normal - Alto - Muito alto - Extra alto Com esta avaliação para cada um dos 15 itens, entra-se na tabela de Multiplicadores de Esforço de Desenvolvimento de Software e um multiplicador de esforço é determinado para cada item: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 13 O produto dos índices encontrados na tabela torna-se o EAF E a fórmula de determinação do esforço (E) fica (deve-se usar KLOC) Onde o coeficiente a e a exponencial b são fornecidos pela tabela: Projeto de software !! ! a ! ! ! b Orgânico ! ! ! ! ! 3,2 !! ! 1,05 Semidestacado!! ! ! 3,0 !! ! 1,12 Embutido ! ! ! ! ! 2,8 !! ! 1,20 Exemplo de uso do COCOMO 81. Considere um software com 33,3 Kloc, usando o modelo semidestacado, temos: E = 3,0 (kloc)1,12 = 3,0 (33,3)1,12 = 152 pessoas-mês Duração do projeto: D = 2,5 (E)0,35 = 2,5 *(152)0,35 = 14 meses MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 14 O número ideal de pessoas no projeto N = E/D. = 152/14,5 = 11 pessoas Pode-se balancear o número de pessoas, variando o prazo de duração. Exemplo 2: Considere que se deseja fazer estimativas de esforços para um software que irá apoiar o controle de equipamentos de uma empresa. Após uma análise de ponto função, determinou-se que o tamanho do software é de 236 PF não ajustado. Como as fórmulas do COCOMO81 foram construídas com KLOC, devemos buscar, em uma tabela de transformação, o número de Linhas para cada função. Se utilizarmos a linguagem ACESS, temos: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 15 Usando o COCOMO intermediário, o gerente considerou o projeto como orgânico. E usaremos as fórmulas: Analisando os 15 direcionadores, o gerente concluiu os seguintes resultados: •Complexidade do software: alta. •Restrições quanto ao uso da memória: alto. •E x p e r i ê n c i a c o m a l i n g u a g e m d e programação: baixa. •Capacidade dos programadores: baixa. Os outros atributos foram considerados normais. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 16 Assim, pode-se determinar o EAF EAF = (1,15 * 1,06*1,14*1,17) = 1,63 Dessa forma, pode-se estimar o esforço: E o prazo MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 17 Com os dados, pode-se concluir que iremos necessitar de: 52,42 / 11,26 - que nos indica 5 profissionais para trabalhar no projeto durante 11 meses. COCOMO II O COCOMO II é uma melhora do COCOMO- 81 •leva em consideração que há abordagens diferentes para o desenvolvimento; •incorpora um conjunto de sub modelos que produzem estimativas detalhadas. • Os sub modelos 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; MODELO DE COMPOSIÇÃO DE APLICAÇÃO MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 18 É 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 capac i tação do desenvo lvedor 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 compos i ção da ap l i cação envo lve , 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: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 19 Experiência e capacitação do desenvolvedor Muito baixa baixa Nominal alta Muito alta Maturidade e capacitação de case Muito baixa baixa Nominal alta Muito alta PROD(NOP/ mês) 4 7 13 25 50 O modelo pressupõe que não há esforços adicionais. MODELO PRELIMINAR MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 20 Modelo de reuso MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 21 MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 22 CONCLUSÃO MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 23 REGISTRO DE PARTICIPAÇÃO 1. Considere a tabela abaixo, que contém dados sobre dez projetos e que será utilizado para estima o esforço e o prazo para um novo projeto. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 24 Baseado na recomendação do PMI sobre estimativas de prazos, pode-se afirmar: 1) O esforço estimado deve ser de 14,63 mês*homem e o prazo 10,73 meses. 2) O esforço estimado deve ser de 14,63 mês*homem e o prazo 8,00 meses. 3) O esforço estimado deve ser de 14,70 mês*homem e o prazo 10,73 meses. 4) O esforço estimado deve ser de 21,00 mês*homem e o prazo 16,00 meses. 5) O esforço estimado deve ser de 8,00 mês*homem e o prazo 6,00 meses. 2. Considere o Gráfico mostrado abaixo (Boehm) Considere as afirmativas abaixo e assinale a afirmativa correta: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 25 1) Ao se estimar o prazo, este valor deve ser constante ao longo das fasesdo projeto. 2) Ao se determinar um valor, por exemplo, 8 meses, o verdadeiro valor, na fase de requisitos, é de 32 meses*homem e para o e meses para o prazo. 3) O gráfico mostra o nível de incerteza q u e t e m o s p a r a c a d a f a s e d o desenvolvimento. 4) A Curva mostra que a entrega do software pode variar de um a 25 meses. 5) As estimativas têm dois limites: inferior e superior. E, nós devemos escolher o limite inferior. 3. Um software do tipo ERP deverá ser desenvolvido por várias equipes. Os requisitos estão formalizados. Nesse caso, para este software de %,8 Kloc. Não temos informações sobre a plataforma de hardware, experiência das pessoas ou método de desenvolvimento. N e s s e c a s o , c l a s s i f i c a r í a m o s o desenvolvimento, segundo Boehm, como: 1) Intermediário e semidestacado. 2) Básico e orgânico. 3) Intermediário e orgânico. 4) Intermediário e restrito. 5) Básico restrito. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 26 AULA 7 ESTIMATIVAS PUTNAM E MÉTODOS VOLTADO PARA PONTO FUNÇÃO Nesta aula, você irá: 1.Aprender sobre o método de Putnam. 2.Analisar a fórmula do método de Putnam. 3.Aprender sobre outras formas de estimativas de projetos orientados a objetos. 4.Aprender sobre estimativas com métodos ágeis. 5.Aprender a usar APF para determinar estimativas. ESTIMATIVAS – OUTROS MODELOS E USO DE PF Esse modelo é um modelo dinâmico de múltiplas variáveis que pressupõem a distribuição do esforço ao longo da existência de um projeto de desenvolvimento. Foi construído, analisando-se grandes projetos. O esforço em grandes projetos é caracterizado como mostrado na figura abaixo, reproduzida do professor Pressmam: Essa figura mostra curvas clássicas que foram apresentadas por Lorde Rayleigh e forma compilados por Norden, por isto a curva é chamada de curva Rayleigh-Nortem. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 27 ESTIMATIVAS PUTNAM E MÉTODOS VOLTADOS PARA O PF Estimativas de projetos orientado a objetos O software orientado a objetos deve ter outra abordagem: 1.D e s e n v o l v e r e s t i m a t i v a s , u s a n d o decomposição de esforço, análise FP que seja aplicável a aplicações convencionais. 2.Desenvolver casos, usos e determine uma contagem. Reconhecer que o número de casos e uso podem modificar à medida que se desenvolve o projeto. 3.A partir do modelo de análise, determinar o número de classes-chave. 4.Categorizar o tipo de interface para aplicação, para as classes de apoio. -Multiplicar o número de classes chaves pelo multiplicador, para obter uma estimativa para o número de classes de apoio. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 28 5.Multiplicar o número total de classes (chave e apoio) pelo número médio de unidades de trabalho por classes. Autores, como Lorenz, sugerem entre 15 a 29 pessoas dia por classe. 6.Fazer a verificação cruzada em estimativas baseadas em classes, multiplicando o número médio de unidades por caso e uso. Tipo de interface Multiplicador Não IGI 2,0 Interface com o usuário 2,25 baseado em texto IGI 2,5 IGU Complexa 3,0 Estimativas com métodos ágeis Um p ro je to usando um p rocesso 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 software. 3 a- Cada tarefa é estimada separadamente. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 29 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 volume de 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ár ios 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. Estimativa usando Caso e USO 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 e x i s t em r eg ra s d e c on t agem MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 30 padronizadas. Tem-se estudado a aplicação em conjunto da PCU e APF, tentando explorar a relação entre elas existente.(EDMÉIA,2004). Estimativas usando ponto função 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: Métricas primitivas utilizadas para medir a qualidade dos processos de software 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 MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 31 condição de padrão internacional, através da norma ISO/IEC 20926. A técnica pode ser cons iderada 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 requer idos para o desenvolv imento e manutenção de software. Sistema de manutenção de clientes Descrição 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ísticas - 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 MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 32 - 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. Lista de ator(es): Usuário (funcionário da empresa). Caso de uso identificados: ➡Exibir Clientes Cadastrados ➡Efetuar Manutenção de Clientes Diagrama de casode uso simplificado: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 33 Usando–se Análise de Pontos de Função, que tem sido cada vez mais utilizada para estimativas de tamanho, esforço e prazo de um s i s t e m a d e s o f t w a r e , c o m b a s e n a funcionalidade fornecida ao usuário. Vamos estimar o preço e prazo para desenvolver o sistema de manutenção de clientes. Suponha que precisamos dar um orçamento para desenvolver o sistema. Para isto vamos usar APF para: 1.Est imativa do tamanho funcional da aplicação. 2.Est imat iva do custo e esforço para desenvolvimento. Determinar o tamanho funcional do sistema de manutenção MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 34 Ent idades e funções do processo de manutenção de clientes: A tecno log ia usada no s i s tema para manutenção de cliente será de implementação em um site (processamento nas nuvens), usando a linguagem PHP (com suporte a objetos), envolvendo 3 camadas : camada de dados , camada de aplicação e camada de apresentação. 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: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 35 MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 36 MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 37 CONCLUSÃO Nesta aula, você aprendeu: •Aprendeu sobre o método de Putnam. •Analisou a fórmula do método de Putnam. •Aprendeu sobre outras formas de estimativas de projetos orientados a objetos. •Aprendeu sobre estimativas com métodos ágeis. •Aprendeu a usar APF para determinar estimativas. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 38 REGISTRO DE PARTICIPAÇÃO 1.Considere a constante CK na formula 1) Representa as condições de trabalho da empresa ref let ido por projetos já realizados 2) Representa um determinado projeto K para os quais devemos analisar as condições 3) Representa uma função que reflete o crescimento de uma empresa 4) Representa o esforço despendido em pessoas-ano 5) Representa a fase do projeto, refletindo a etapa K 2. No Software orientado a objetos, segundo o Prof. Pressman, podemos afirmar: 1) Deve-se usar a estimativa de tamanho para dimensionar um caso e uso. 2) Deve-s analisar cada caso e uso e fazer estimativas de tamanho somando-os no final 3) Deve-se usar a estimativa por PF usando-se a decomposição de casos e uso 4) Deve-se definir um caso e uso padrão e o resultado aplicado ao longo do projeto MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 39 5) Deve-se modelar as classes principais e depois aplicar PF que servirá de unidade para o resto do projeto. 3. Considerando a pesquisa realizada pela Secretaria de Política de Informática – SEPIN , em 2001, cujo resultado é apresentado na tabela: Podemos concluir de forma correta: 1) As empresas que utilizam LOC são todas do governo. 2) As empresas que utilizam Ponto função são todas do governo 3) Todas as empresa do Governo e privadas usam LOC ou Ponto função 4) As estimativas no Brasil ainda são feitas, na sua maioria, sem método 5) As estimativas no Brasil feitas com ponto função tem muita rejeição. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 40 4. A primeira coisa a ser feita em uma empresa que vai implementar um processo de estimativas confiáveis é: 1) definir um processo e determinar valores a serem coletados dos projetos. No inicio tentar buscar uma base histórica em outra empresa. 2) Treinar todos os funcionários no uso de ponto função 3) Fazer sessões de avaliação para novos projetos, de forma estruturada, para obter estimativas 4) Usar métodos baseado em tamanho, com uma linguagem padronizada para uso na empresa. 5 ) E s t i m u l a r o s p r o g ra m a d o r e s e m desenvolverem código, sem método, pois quanto maior o código melhor para a estimativa. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 41 AULA 8 GESTÃO DE PROJETOS USANDO APF Nesta aula, você irá: 1.Dimensionar o valor de um PF para uma empresa. 2.Utilizar PF para dimensionar o custo no processo de desenvolvimento. 3.Controlar custos por ponto função. 4.Controlar e estimar prazos para projetos. 5.Fazer gestão usando APF. Introdução A APF tem o seu uso aceito pela maioria das empresas, pois, estabelece um padrão e uniformidade de contagem, quando se usa o manual de contagem. Isso favorece o uso pelas e m p r e s a s . A l é m d i s s o , n ã o t e m o s inconvenientes que as contagens de LOC apresentam. Trabalhar com a funcionalidade, liberta o profissional que faz orçamentos, de aspectos que só serão definidos na fase de desenho do software e esta é uma vantagem importante. Imagine você ter que decidir, usando a contagem de número de linhas de código se ainda nem decidiu que linguagem irá utilizar. Outro aspecto importante é que o de processo de desenvolvimento seja qualquer um. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 42 As empresas, hoje, buscam padronizar o seu processo de desenvolvimento ou mais de um, dependendo do tipo de produto que pretendem utilizar. No nível três do CMM, que é uma referência mínima para as empresas que desejam trabalhar com qualidade, o processo é estabelecido e os profissionais treinados no processo. Custo de um PF para a empresa Em empreendedorismo, você deve aprender que as empresas têm dois tipos de custo, o fixo e o variado. O custo total da empresa, em um determinado período ou para uma determinada produção, é a soma dos dois custos. Na empresa que trabalha com ponto função, deve- se determinar o valor em termos monetários para o total de PF produzido em um determinado período. Vamos supor, para efeitos didáticos, que uma empresa entregou no prazo de um mês 180,2 PF. E essa mesma empresa tem um custo total de R$ 27580,00. Assim o custo dessa empresa, por ponto função é de: R$ 27580,00/ 180,2 PF O Valor, para fins de controle e orçamentos, é de um custo de: 1515,38 O valor calculado acima, pode ter sido determinado, em determinadas condições, com um valor de aluguel, um nível de salário e outros aspectos que MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 43 podem ser alterados, portanto, deve ser revisto periodicamente como, por exemplo, mensalmente e informado para os gestores. Nesse mês (ou período), segundo o cálculo acima, o nosso custo será de 1515,38/PF. Custo de um PF para a empresa Também, se pode determinar o “BREAK EVENT POINT”, ou ponto de equilíbrio, em termos de PF, determinar o número de PF que se deve produzir para a empresa iniciar a dar lucro. Veja o gráfico abaixo: Pode-se determinar o númerode PF que a empresa deve produzir para iniciar a sua fase de lucro. A importância de uma base estatística de projetos É preciso que se mantenha uma base estatística de projetos realizados e que a tomada de registros para esta base estatística esteja adequada aos processos MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 44 de desenvolvimento da empresa e a metodologia usada em cada etapa, ou template estabelecido. Nesse caso, vamos supor que nossa empresa tem registrado por projeto, dividido por caso e uso, as fases e registrando os respectivos custos por etapa podemos identificar % de utilização valor total para cada fase. A importância de uma base estatística de projetos Dessa forma registrando – se, para cada caso e uso, esses dados, podemos estabelecer um % de utilização médio para a empresa. Você poderia ficar preocupado com aspectos como complexidade ou MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 45 característica do software, mas isto já esta resolvido. Esses aspectos foram considerados, quando se fez a análise de ponto função. Também, determina-se a média de implementar um ponto função, no caso estamos considerando a unidade como dias, do caso e uso, registrado acima, obtém o número de horas pelo total de PF temos: 234 horas/ 180,2 PF = 1,30 horas /PF O mesmo para o custo por PF: R$ 6834/180,2 = R$ 37,93 /PF Tabela de distribuição dos pontos funções Depois de um determinado período de observação, pode-se determinar uma tabela de distribuição dos pontos funções como abaixo: ATENÇÃO Essas tabelas devem ser periodicamente ajustadas para refletirem a realidade da empresa , de modo que a base estatística deve ser ampliada. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 46 Conclusão A organização de parâmetros de decisão, ao longo do processo, é fundamental para se gerar um sistema confiável de estimativas e de controle gerencial, para o acompanhamento de projetos, em termos de custo e prazo. Estudo de casos de contagem de PF Contar o números de PF de um sistema com as seguintes característica: Tem uma tela inicial com um botão: iniciar Tela de logon para identificar usuarios com os campos (username, senha) Tela de seleção com tres botoes (fornecedor, produto,sair) MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 47 Quando o usuario é administrador de sistemas tem uma tela para controlar usuários com as funçoes: criar um novo usuário, bloquear, retirar o usuário, atualizar, trocar senha, listar usuários, listar últimos acessos Definir tipo de contagem MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 48 MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 49 TOTAL DE CONTRIBUIÇAO DOS ALI E AIE = 29 PF MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 50 Tela fornecedor Entrada = 3 (incluir, alterar, deletar) Saida = 2(relatorio de fornecedor. relatorio de produtos) Consulta =2 (cod.prod, cod. Fornecedor) ---------------------------------------------------------- Incluir – 2 arquivos referenciados 9 itens de dados (não contar as repetiçoes Alterar – 1 arquivo referencia – proibido alterar cep 6 itens Deletar – 1 arquivo referenciado 9 itens MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 51 Relatorio for. 1 arquivo referenciado – 9 itens Rel por cod produto – 1 arquivo - 9 itens ----------------------------------------------------- Tela produto Entrada = 3 (incluir, alterar,deletar) Saida = 2 (rel.estoque) Consulta = 1 (cod.prod) ----------------------------------------------------- Entradas Incluir – 1 arquivo referenado + 4 itens deletar – 1 arquivo ref. + 4 itens Alterar – 1 arquivo ref. + 4 itens ----------------------------------------------------- Saidas Rel estoque – 1 arquivo + 4 itens Rel cod produto – 1 arquivo ref + 3 itens (cod-pr, descriçao,quantidade) ----------------------------------------------------- Consulta 1 arquivo ref + 4 itens MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 52 Total por transações: 75 PF Total por arquivos : 29 PF Total : 104 PF (não ajustados) MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 53 Nesta aula, você: •Aprendeu a dimensionar o valor de um PF para uma empresa. •Aprendeu como utilizar PF para dimensionar o custo no processo de desenvolvimento. •Aprendeu a Controlar custos por ponto função. •Aprendeu como Controlar e estimar prazos para projetos. •Aprendeu a gerenciar usando APF. REGISTRO DE PARTICIPAÇÃO 1. Trabalhar com APF tem como principal vantagem em relação ao KLOC. 1) Não existe vantagem sobre um ou outro, são idênticos 2) Trabalhar com a funcionalidade é mais natural pois independe da implementação 3) Trabalhar com linha de código é mais natural pois o código precisa ser implementado 4) Na fase de analise quando se usa KLOC não precisa necessariamente e a previsão é precisa 5) O KLOC pode-se transforma em PF, portanto, pode-se trabalhar com um ou outro, em qualquer fase, e é independente da linguagem escolhida MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 54 2. Considere uma empresa que entregou no mês de outubro de 2010 um total de 980 PF. Esta empresa têm um total de 5 analista que ganham em média R$ 5000,00 e 8 programadores que ganham em média R$ 3000,00, um analista de testes cujo salário é R $ 6000,00 além de dois documentadores cujo salário é R$ 2000,00. O gerente geral de produção ganha R$ 9000,00. Determinou-se que o custo fixo é de R$ 12 000,00 (alugueis, t e l e f o ne , l u z , s e c r e t á r i a s , l impe za , condomínio). Os encargos sociais dos empregados são de 100%. O total de impostos é de 21% sobre a receita bruta. 1) Os dados acima são insuficientes para se determinar o custo da empresa por PF. 2) O custo variável deve incluir todos os dados inclusive aluguel, telefone, luz 3) O custo de gerar um ponto função, na empresa acima, deve levar em consideração apenas os elementos do setor produtivo 4) O custo de um ponto função deve considerar todos os custos inclusive os impostos 5) O custo depende do gerente que vai definir o que pode ou não entrar no custo. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 55 AULA 9 USO DE REGISTROS TABULADOS, INTERPOLAÇÃO E ERRO ASSUMIDO Nesta aula, você irá: 1.Utilizar registros estatísticos para gerar estimativas. 2.D e f i n i r o n í v e l d e e s t i m a t i v a (linear ,exponencial). 3.Aprender a fazer interpolação linear ou não 4.Definir os riscos nas estimativas. 5.Definir nível de erro. 6.Conhecer outro métodos matemáticos para interpolação. Introdução Definir um conjunto de dados que permita se ter gerência do processo e do produto é importante, mas precisamos aprender a trabalhar com estes dados. Suponha que estamos falando de uma empresa com um tempo de vida curto e que entreoutros dados registrou-se os apresentados na tabela abaixo: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 56 projeto total PF estimado total PF realizado homem*horas trabalhadas prazo (dias uteis) modulo de ponto 82,45 112,2 2400 40 sistema estoques 180,90 179,34 8400 70 Gestao de vendas 198,20 215 9600 160 controle de trafego 268,30 265,2 7200 180 sistema academico 431,45 420,78 9600 160 Podemos colocar estas informações em um gráfico para determinarmos novos esforços para uma determinada quantidade de PF. Pode-se também tirar da tabela o gráfico que mostra o grau de erro da estimativa em relação ao realizado, em ponto função. Verificou-se uma tendência linear de 45 graus o que mostra que a estimativa está muito próxima da real izada, com pequenas diferenças. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 57 Os p r o j e t o s da no s sa empre sa s ão relativamente pequenos e estas distorções são absorvidas na margem de segurança que a empresa dá em seus orçamentos. Estes dados, entretanto podem nos levar a sérios prejuízos se não forem tratados tecnicamente. Os pontos (ou falta deles) podem nos levar a uma serie de suposições. Se assumimos que o comportamento é próximo de linear, devemos saber que esta simplificação poderá nos custar caro, pois dificilmente temos este tipo de comportamento. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 58 Se desejamos corre menos risco podemos considerar que os pontos tem a tendência de uma curva de segundo grau: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 59 Ou uma curva logarítmica Na nossa tabela temos ainda poucos dados para definirmos o grau de incerteza e definir por uma das curvas. Quando estimados utilizando estas curvas introduzimos riscos nas nossas estimativas, para valores que ainda não constam na tabela, ou estão fora do intervalo existente até o momento. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 60 Observe que para um número menor de PF usar a tendência linear nos leva a estimar valores de forma mais alta que da forma exponencial, invertendo-se a tendência a partir do momento que os projetos se tornam significativos. Interpolação Considere que temos um levantamento de um produto com 230 PFA e devemos usar a tabela para definir o esforço necessário. Se analisarmos a tabela não temos como obter a informação diretamente, pois nenhum projeto até o momento tem 230PFA. Para isto precisamos deduzir um valor a partir dos dados da tabela. Este processo chama-se de interpolação. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 61 Em Matemática é o método que permite construir um novo conjunto de dados a partir de um conjunto discreto de dados pontuais previamente conhecidos. Em engenharia é comum dispor-se de dados pontuais obtidos a partir de uma amostragem ou de um experimento Tal conjunto de dados pontuais (também denominado conjunto degenerado) não possui continuidade, e isto muitas vezes torna demasiado irreal a representação teórica do fenômeno real e observado. Através da interpolação, pode-se construir uma função que se ajuste nestes dados pontuais, representando a continuidade desejada. Outra ap l i cação da interpo lação é a aproximação de funções complexas por funções mais simples. Suponha que tenhamos uma função, mas que seja complicada demais para que seja possível avaliá-la de forma eficiente. Podemos, então, escolher alguns dados pontuais da função complicada e tentar interpolá-los com uma função mais simples. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 62 Obviamente, quando utilizamos a função mais s imp les pa ra ca l cu l a r novos dados , normalmente não se obtém o mesmo resultado da função original, mas dependendo do domínio do problema e do método de interpolação utilizado, o ganho de simplicidade pode compensar o erro. Funções O desenho mostra que ao se conhecer poucos pontos temos uma série de funções que podem se ajustar. O problema da interpolação consiste em substituir funções intricadas por um conjunto de funções mais simples, de tal forma que m u i t a s o p e r a ç õ e s c o m u n s c o m o a diferenciação e a integração, possam ser realizadas mais facilmente. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 63 A interpolação consiste basicamente em encontrar uma função que seja a expressão lógica de determinados pontos de uma função desconhecida, ou seja, conhecendo-se (x1 , y1), (x2 , y2).....(xn , yn) de uma função desconhecida poderemos calcular o valor numérico intermediário da função num ponto não tabelado com certo grau de erro. O desenho mostra que ao se conhecer poucos pontos temos uma série de funções que podem se ajustar. Exemplo de interpolação polinomial de grau superior a 1. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 64 Pontos de amarração Os pontos de amarração são os pontos em que a função substituta conterá da função tabela, no qual será construída uma função para um respectivo intervalo. Para se fazer escolha de uma infinidade de funções que venham assumir determinados pontos faz-se na verdade a escolha de uma função onde se possa trabalhar com simplicidade, deste modo a função mais simples um polinômio. Nos pontos de amarração f(x) é igual a g(x), g(x) pode ser chamada função substituta. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 65 2 pontos (polinômio de 1º grau) 4 pontos (polinômio de 3º grau) 3 pontos (polinômio de 2º grau) Para (n+1) pontos, existe um e somente um polinômio de grau não superior a n. INTERPOLAÇÃO LINEAR, estamos supondo o comportamento linear entre o dois pares de pontos, E assim, para a tabela inicial tem se o seguinte gráfico Consultando o gráfico, para o nosso exemplo de 230PF, verificamos que este valor fica entre os pontos conhecidos: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 66 projeto total PF estimado total PF realizado homem*horas trabalhadas prazo (dias uteis) modulo de ponto 82,45 112,2 2400 40 sistema estoques 180,90 179,34 8400 70 Gestao de vendas 198,20 215 9600 160 controle de trafego 268,30 265,2 7200 180 sistema academico 431,45 420,78 9600 160 Do projeto gestão de venda: com 198,20 PF com 9600 homem*hora E o projeto controle de trafego: com 268,30 PF e 7200 homem*hora 198,20PF 268,30PF 7200 hh 9600 HH 230 PF198,20PF 268,30PF 7200 hh 9600 HH X MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 67 Considerando os 230 PF e verificando que (268,30 – 230 = 38,30) Por semelhança de triângulos podemos escrever: Assim temos X * 70,10 = 2400 * 38,30 donde X = 1311,27 Assim por interpolação linear temos um acréscimo de 1311,27 acima de 7200 nos mostrando um total de 7200 + 1311,27 = 8511,27 homem*hora Risco assumido •Ao assumirum valor estamos assumindo um risco, que poderá diminuir assumindo-se outro tipo de curva. •Mas as vezes temos que determinar um valor de estimativa além dos limites do domínio de nossa tabela •Neste caso podemos estipular a equação da função e usar o novo valor como entrada da função. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 68 • Sempre lembrando que estamos assumindo um risco que pode ser diminuído a medida que vamos aumentando nossa base de dados Suponha para fins de exemplo que desejamos achar o esforço em Homem*hora para um novo projeto de 600 PF. Observando a tabela este valor está acima do maior valor existente. Neste caso precisamos determinar a função que melhor atende. Vamos supor que vamos trabalhar com uma reta que passa pelos pontos: 268,30 PF, 7200 H*H 431,45 PF 9600 H*H Identificar a função A equação geral da reta é: y = a * x +c Aplicando os pontos temos: 7200 = a * 268,30 + b 9600 = a * 431,45 + b Com os dois pontos podemos manipular algebricamente para achar a: 7200 = a * 268,30 + 9600 – a *431,45 MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 69 7200 – 9600 = a * (268,30 - 431,45) a = -2400/-163,15 donde a= 14,71 Da outra equação tiramos o valor de b b = 9600 – 14,71 * 431,45 donde b = 3253,37 Assim temos a equação da nossa reta: y = 14,71 * a + 3253,37 Com a equação da nossa reta: y = 14,71 * a + 3253,37 Usando a função para acharmos o esforço para 600 pontos temos: Y = 14,71*600 + 3253,37 O ESFORÇO ESTIMADO SERÁ: 12079,31 HOMEM * HORA ERROS DAS ESTIMATIVAS INTERPOLADAS Uma vez que entendemos que a partir de uma tabela, em geral, não vamos conseguir obter uma função que modele o fenômeno de maneira exata mas somente uma de uma forma aproximada, surge outro problema: como escolher o tipo de função que aproxima o fenômeno? Em outras palavras: que tipo de interpolação devemos fazer? MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 70 Veja que o fato da aproximação ser razoável (boa) ou não para modelar o fenômeno estudado dependerá da resposta a esta pergunta. Por outro lado, a pista para esta resposta deve estar contida na tabela. Os pontos listados na tabela podem mostrar uma tendência que devemos respeitar se desejamos que a função de interpolação represente de forma razoável o fenômeno estudado. A interpolação consiste basicamente em encontrar uma função que seja a expressão lógica de determinados pontos de uma função desconhecida, ou seja, conhecendo-se (x1 , y1), (x2 , y2).....(xn , yn) de uma função desconhecida poderemos calcular o valor numérico intermediário da função num ponto não tabelado com certo grau de erro. Assim o erro em um ponto qualquer é o módulo de f(x) – G(x). Existem vários processos matemáticos para tratar a interpolação e o seu erro. De uma maneira simplista podemos definir uma curva, no nosso gráfico, que seja limite para considerarmos o erro. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 71 A medida que aumentamos nossa base estatística podemos ir aproximando as duas curvas limites (mínimo e Máximo) pra perto da estimativa diminuindo a faixa de erro. Conclusão As interpolações de dados devem ser feitos com muita técnica, ao se estimar uma valor, estamos assumindo um risco. Pode-se aprofundar a teoria matemática. Existe teoria, com métodos bem estabelecidos para se trabalhar com segurança. O nível de erro não deve ser desprezado, pois pode levar a altos prejuízos, quando se tem uma base de dados com pouca informação. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 72 Exemplo Considere que uma empresa deduziu a partir de seus dados a seguinte curva: Calcule para esta tendência qual o valor d esforço necessário para 144 PF. 4690,88 Nesta aula, você: •Aprendeu como fazer estimativas para pontos fora da tabela de amostragem. •Aprendeu sobre interpolação linear e de outro polinômios. •Aprender a determinar uma função para estimar dados fora do espaço de amostragem. •Aprendeu a fazer interpolação linear e avaliar os riscos. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 73 REGISTRO DE PARTICIPAÇÃO 1. Considere a curva abaixo obtida de um conjunto de pontos de uma tabela de ponto função por esforça e podemos concluir corretamente. 1) A curva é uma função edeveria passar por todos os pontos portanto o gráfico está errado. 2) A curva é uma função, que foi ajustada por métodos estatísticos e serve para mostrar a tendência entre PF e o esforço 3) A curva só serve para se estimar valores entre 100pf e 500 pf, não podendo se usar por exemplo para 700 PF 4) Acima de 500 PF pode-se afirmar que o erro é zero se estimarmos com esta curva 5) A curva estaá errada pois o númro de pontos é suficiente para garantir que o comportamento da tendencia é logaritmo MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 74 2. Em relação as estimativas e a medida do realizado o gráfico abaixo mostra que podemos afirmar de forma correta: 1) que os esforço para se deenvolver um software segue a tendência linear 2) O comportamento linear observado é devido ao esforço dispendido em homem*hora 3) A empresa deve-se limitar a fazer produtos até 500 PF e acima de 80 PF 4) Ada pode-se deduzir observando o gráfico 5) as estimativas estão sendo feitas com um alto nível de acerto MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 75 3. A primeira atividade em uma empresa que deseja ter um processo de estimativas para o projeto de software é: 1) organizar os projetos por profissionais mais experientes. 2) Estabelecer um processo de software e manter o desenvolvimento sobre controle de um bom gerente 3) definir um conjunto de métricas e montar uma grande base de dados voltados para estimativas 4) Melhorar o método de desenvolvimento de software 5) Tre inar as pessoas no método de desenvolvimento de software MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 76 AULA 10 CONCORRÊNCIAS PÚBLICAS E OUTROS ASPECTOS DE CONTRATAÇÃO USANDO PF Nesta aula, você irá: 1.Aprender sobre fatores que podem afetar um contrato. 2.Quais as formas de contratação usando ponto função. 3.Como são fe i tas as med ições para faturamento. 4.Verificamos em concorrências públicas algumas métricas especificas para as concorrências. Concorrências públicas e contratação usando PF O trabalho para produzir , atualizar, testar e gerar a documentação pode ser feita na empresa interessada ou contratada de uma outra empresa. Em qualquer das duas situações o controle da produtividade, prazos e qualidade precisam ser estabelecidos. Assim, as características de acompanhamento que vamos desenvolver para uma empresa externa, devem ser usada na empresa que não contrata com o mesmo ou um pouco menos de rigor. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 77 O trabalho de software, quando se trata de empresa externa deve levar em consideração o risco que a empresa contratante deseja correr.Em termos de risco o contratante visa minimizá-lo. Se uma empresa contratante não se importa com o risco como principio do contrato, pode fazer a contratação por homem hora ou transferir o risco para o fornecedor com outro tipo de contratação. No relacionamento são muitos os fatores que introduzem riscos no estabelecimento do relacionamento de contratante e contratado, alias estes riscos já existem quando se atua com profissionais dentro da própria empresa. São fatores de risco para a determinação do trabalho os seguintes fatos, entre outros: I. O trabalho é mal especificado não definindo l imites do que precisa ser fe i to e geralmente o contratante pode pedir outros “quebra galhos” do contratado o que leva ao desentendimento. II. A falta de clareza ou entendimento dos requisitos. Devem-se aplicar metodologias que esclareçam os requisitos (analise, completude e consistência) para se minimizar este aspecto. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 78 III.As estimativas na contratação são feitas com nível de erro. Normalmente quem contrata sub dimensiona o trabalho para minimizar o seu custo. IV.Pressões feitas por usuários internos devido a prazos políticos causando instabilidade nos profissionais da empresa contratada. V. Falta de processo de contro le nas modificações solicitada. Uma modificação, na maioria das vezes, implica em aumento do custo e prazo. Assim as divergências entre fornecedor e c l i e n t e t e n d e m a s e a g r a v a r. O estabelecimento de um fator de medida comum aceito por fornecedor e cliente já é o inicio do estabelecimento de uma forma de contratação que minimize estes conflitos. Neste caso PF é uma medida que vem se tornado padrão de negociação. 1- Contratação por homem hora Neste t ipo de contratação a empresa fornecedora estabelece um preço por hora para seus profissionais que são alocados na contratante. O profissional recebe ordens dos gerentes de TI da empresa contratante e comporta-se como funcionário da contratante. Este tipo de modelo é simples de ser administrado. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 79 Algumas empresas não fazem nenhum controle sobre o contratado e outras procuram controlar como o recurso esta sendo utilizado e usam planilhas que são estabelecidas para controlar o trabalho como a mostrada abaixo: Tabela tempo por projeto (TIME SHEET) O modelo é flexível pois permite ao contratante solicitar modificações e novos serviços, pois esta pagando por hora. Os erros também são absorvidos pelo contratante. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 80 O que se coloca contra este modelo é como controlar a produtividade dos profissionais alocados. O estabelecimento do controle por ponto função nos permite medir se as horas registradas estão compatíveis com o número de pon tos f unção t raba lhados pe l o s contratados. Desta forma pode-se acompanhar para cada profissional e o número de PF. Pode-se criar a métrica: Produtividade = PF/hora Pode-se acompanhar a produtividade de cada profissional. A aplicação de PF neste caso traz visibilidade a problemas como queda de produtividade. Deve-se ainda destacar o alto risco deste tipo de contratação, pois os profissionais são colocados na empresa cumprindo Horário, subordinado a outros gerentes e isto gera problemas trabalhistas pois podem criar vínculos de emprego do terceirizado com o contratante. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 81 MODALIDADE DE PREÇO FIXO Esta modalidade o risco é totalmente transferido para o fornecedor. O contratante negocia com o contratado um preço e as formas de pagamento. O contratante estabelece os pontos de avaliação e pagamento do projeto. Neste caso precisa-se de uma unidade que permita medir o quanto já foi feito do trabalho. O contratado procura estabelecer controles para evitar os riscos, principalmente os introduzidos por mudança de requisitos. A mudança de um requisito implica em uma nova negociação. Muitas vezes se estabelece aditivos contratuais para estas modificações ( ou preços diferenciados). Assim PF se aplica para medir o tamanho do projeto, e principalmente para acompanhar o projeto e liberar o pagamento por fase do projeto. É comum trabalhar-se com distribuições percentuais do total de PF estimado para o projeto estabelecidos entre o contratante e contratado para se controlar o projeto (pagamento, avaliação...). As tabelas abaixo mostram estas formas de distribuição: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 82 Nesse caso, para um projeto de R$ 200 000,00 ao se terminar a análise de requisitos deverá ser pago o valor de 20 %, portanto, R$ 40 000,00. Em outra situação que detalha um outro ciclo de vida para um projeto de R$ 100000,00. Esta estipulado que se pagará R$ 10 000,00 no final do levantamento de Dados., conforme mostrado na tabela abaixo: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 83 PREÇO POR PONTO FUNÇÃO Na aula anter ior v imos que podemos estabelecer um valor de custo da empresa por PF. Mas o preço de venda da empresa poderá ter valores diferenciados dependendo do tipo de profissional envolvido ou mesmo do grau de risco que o fornecedor esta assumindo. A determinação do preço por ponto função é certamente um dos mais importantes aspectos para o fornecedor. Pode-se criar uma tabela de valores, para fases do ciclo de vida do projeto, estes valores podem facilmente serem obtidos por engenharia reversa. CONTRATAÇÃO POR PREÇO UNITÁRIO Neste modelo o fornecedor paga por elementos do projeto. Um elemento é uma tela, um relatório, tabela, caso e uso, linhas de código alteradas, store procedure ou um ponto função. Este modelo é intermediár io entre a contratação por homem hora e o preço fixo. Neste modelo a produtividade é um risco do fornecedor, se o contrato é feito por ponto função, o prazo, e o recurso dependem do fornecedor. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 84 Por outro lado a modificação de requisitos e os pedidos do contratante são transformados em PF, portanto o risco de aumento é do contratante. Como a Análise de Ponto Função é um método padrão de contagem, as empresas e profissionais de todo o mundo acompanham a padronização de contagem proposta pelo IFPUG faz com que se estabeleça uma referencia para criar uma unidade de contratação - O PF. Assim busca-se consistência e uniformidade na aplicação deste padrão que tem sido a base de contratação das empresas públicas e privadas. CONCORRÊNCIA PÚBLICA A lei 8666 determina que se estabeleça a análise de serviço e se contrate o menor preço. Neste caso as concorrências de contratação de software tem estabelecido condições de participação baseada em Ponto Função. MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 85 Nesta aula, você: •Aprendeu as formas de contratação de um profissional e como medir o trabalho com PF. •Aprendeu como se faz o controle em caso de serviços fechados. •Aprendeu sobre os riscos envolvendo uma ou outra forma de contratação. •Constatou como o conceito de pf é usado em concorrências.•Analisou partes de uma concorrência pública. REGISTRO DE PARTICIPAÇÃO 1. Marque a opção que destaque uma vantagem de se fazer a contratação homem/ hora 1) Tratamento de ações trabalhistas de forma padronizada 2) A contratação com volume de serviço estável e bem definido 3) O estabelecimento do aumento de produtividade do contratado 4) normalidade na alteração de requisitos de software 5) a aplicação de PF para determinar a quantidade de negociação MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 86 2. Quanto aos riscos podemos afirma que: 1) Se os riscos são baixos podemos contratar por homem hora 2) Se não desejamos riscos contratamos por Preço unitário em PF 3) Se contatar por preço fixo assume-se os riscos 4) Se contratar por preço fixo assume-se parte dos riscos 5) Não importa a forma de contratar o contratante sempre ficara com os riscos 3. Considere as afirmativas: I. A falta de tratamento correto na definição de requisitos é um dos maiores riscos do projeto. II. O Risco introduzido pela falta de tratamento correto nos requisitos pode ser eliminada na forma de contratação III.Normalmente a contratação por preço fixo conduz ao estabe lec imento de um r e l a c i onamen to ha rmon i o so en t r e contratante e fornecedor IV.O maior problema de trabalhar com PF é garantir a mesma forma de contar. As afirmativas absolutamente corretas são: MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 87 1) Todas certas 2) I e IV 3) todas erradas 4) I e III 5) III e IV MEDIDAS DE ESFORÇO DE DESENVOLVIMENTO DE SOFTWARE 88
Compartilhar