Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * Medidas do Esforço de Desenvolvimento de Software Revisão av2 Prof. Horácio Ribeiro Concorrências públicas e outros aspectos de contratação usando PF * * Revisão dos principais pontos * * Para uma nova aplicação : Desejamos saber quanto tempo será necessário? Quanto vai custar? Vale a pena? * * estimativas de custos e prazos em software não é ciência exata; Diminuir o nível de erro da estimativas; Um erro na estimativa pode comprometer o projeto. * * 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. * * 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 Pmedio é a media dos prazos dados * * Exemplo: 9 técnicos experientes estimaram o prazo: Tecnico1:10 dias tecnico2:20 dias tecnico3:15 dias Técnico4:12 dias tecnico5: 8 dias tecnico6:25 dias Tecnico7:15 dias tecnico8:12 dias tecnico9:15 dias 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 (15 dias + meio dia) * * Nível de variação de erro de uma estimativa nas diversas fases do projeto. Pode-se realizar o cálculo da medida em cada fase do desenvolvimento. * * O assunto estimativas e os custos em projetos foi estudado Barry Boehm (1981). Estudou mais de 5000 projetos de software; Estes softwares foram classificados segundo uma hierarquia de modelos; 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. * * COCOMO Classificação do tipo do software: Modelo 2 (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. * * COCOMO Classificação do tipo do software: 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...) * * COCOMO Classificação de classes de projeto (três): 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-se exemplificar pequenos sistemas. * * COCOMO Classificação de classes de projeto (três): 2 - Modo Semi destacado ou difuso: Projetos de software intermediário (em tamanho e complexidade) na qual 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. * * COCOMO Classificação de classes de projeto (três): 3 – Modo Embutido ou restrito: um projeto que deve ser desenvolvido dentro de restrições operacionais, como por exemplo sistema de controle de telefonia. * * COCOMO básico - equações: E = esforço aplicado em pessoas-mês. D = tempo de desenvolvimento em meses cronológicos. * * Exemplo: Considere um software com 33,3 Kloc, usando o modelo semi destacado temos: O número ideal de pessoas no projeto Duração do projeto: D = 2,5 (E) exp (0,35) = 2,5 *(152)elevado a 0,35 = 14 meses Esforço: E = 3,0 (Kloc) exp (1,12) = 3,0 (33,3) elevado a 1,12 = 152 pessoas-mês N = E/D = 152/14,5 = 11 pessoas * * COCOMO intermediário - equações: NO modelo intermediário o básico é ampliado. considerando-se 4 grandes categorias de custos: * * * * Assim pode-se determinar o EAF EAF = (1,15 * 1,06*1,14*1,17) = 1,63 Desta forma pode-se estimar o esforço: Prazo: * * técnicas Técnicas empíricas usam expressões derivadas de dados históricos, para o esforço e o tempo, com o objetivo de prognosticar essas quantidades para o projeto. Ferramentas automatizadas implementam um modelo empírico específico. Estimativas de projeto precisas geralmente fazem uso de pelo menos duas técnicas diferentes de estimativas vistas. * * Estimativas Método de estimativa do Esforço Passos (visão - PMI): Delineamento das funções do software Listagem das tarefas a serem executadas para cada função (análise, projeto, codificação e testes) Esforço estimado para cada tarefa em cada função (pessoa-mês) Taxas de mão de obra aplicadas em cada uma das tarefas Cálculo de custo e o esforço de cada função (e tarefa de engenharia de software) * * Estimativas de Projeto de Software: Modelos de Recursos Existem quatro classes de modelos de recursos (Basili) Modelos estáticos de variáveis simples. Modelos estáticos de múltiplas variáveis Modelos dinâmicos de múltiplas variáveis Modelos teóricos * * Estimativas de Projeto de Software: Modelos Estáticos de Múltiplas Variáveis Recurso = C11e1 + C21e2 + ... Onde e1, e2, e3 ... São características do software Exemplo: C (homem mês) = 0,12*paginas +23,2*linhas +... * Curva de Rayleigh-Putnam Os pontos destacados representam a quantidade de recursos recursos = f( esforço, prazo) * Curva de Rayleigh-Putnam Mesmo com as mudanças de tecnologias o gráfico mostra que existe uma região que é impossível a entrega no prazo dimensionar o valor de um PF para uma empresa - Utilizar PF para dimensionar o custo no processo de desenvolvimento - controlar custos por ponto função. - controlar e estimar prazos para projetos - fazer gestão usando APF * * Implantando a gestão por ponto função definir uma “base line” Artefatos na fase: Custo Prazo Pode-se relacionar: elementos do artefato : objetos, métodos, programas... * * * * depois de uma determinado período de observação e determinar uma tabela de percentual de referencia de pontos funções como abaixo: * * Considerando todo o desenvolvimento pode-se gastar em cada fase: . Assim temos referencias para cada etapa em termos de custos e prazos. E desta forma pode-se determinar QUEM vai fazer o serviço, dependendo do custo e prazo desejável * * * * A curva de acompanhamento de estimativas em PF tendência linear de 45 graus o que mostra que a estimativa está muito próxima da realizada, com pequenas diferenças. (PF estimado X PF realizado) * * Os pontos (ou falta deles) podem nos levar a uma serie de suposições. Ao assumir que o comportamento é próximo de linear, devemos saber que esta simplificação poderá nos custar caro, pois dificilmente temos este tipo de comportamento. * * interpolação É 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 fenomeno real e observado. * * 2 pontos (polinômio de 1º grau) 3 pontos (polinômio de 2º grau) 4 pontos (polinômio de 3º grau) * * Consultando o gráfico, para o nosso exemplo de 230PF, verificamos que este valor fica entre os pontos conhecidos: 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 * * * * Considerando os 230 PF e verificando que (268,30 – 230 = 38,30) Por semelhança de triângulos podemos escrever: X 38,30 ______ = _________ 2400 70,10 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 * * Ao assumir um 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. Sempre lembrando que estamos assumindo um risco que pode ser diminuído a medida que vamos aumentando nossa base de dados Risco assumido * * 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 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 Identificar a função * * A medida que aumentamos nossa base estatística podemos ir aproximando as duas curvas limites (mínimo e Maximo) pra perto da estimativa diminuindo a faixa de erro, como mostrado na figura * * Fatores de risco em uma contratação A – O trabalho é mal especificado não definindo limites do que precisa ser feito e geralmente o contratante pode pedir outros “quebra galhos” do contratado o que leva ao desentendimento. * * Fatores de risco em uma contratação B – 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. * * Fatores de risco em uma contratação C – 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 * * Fatores de risco em uma contratação D – Pressões feitas por usuários internos devido a prazos políticos causando instabilidade nos profissionais da empresa contratada * * Fatores de risco em uma contratação E – Falta de processo de controle 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 cliente tendem a se agravar. 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 tipo 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. * * * * como controlar a produtividade dos profissionais alocados? O estabelecimento do controle por ponto função: pode-se acompanhar para cada profissional e o número de PF. 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. Problema do modelo * * 2 - Modalidade de Preço Fixo 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. Estabelece aditivos contratuais para estas modificações. 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, * * Exemplo: No caso acima, 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 * * - Neste modelo a produtividade é um risco do fornecedor, se o contrato é feito por ponto função, o prazo, e o recurso depende do fornecedor. - 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. * * Concorrências Públicas 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 Norma 4 do TCU * * No edital, estabelece-se o total do contrato para os serviços conforme abaixo: VOLUME ESTIMADO 4.1 O volume total estimado será de 13.800 (treze mil e oitocentos) Pontos por Função, durante os 12 (doze) meses de vigência do contrato. 4.2 A quantidade especificada no item anterior esta distribuída da seguinte forma na atual plataforma tecnológica do BCB: Tabela 4-1 - Quantidade de Pontos de Função estimada separada por Tipo de Serviço * * 33.2.1.1.8 Experiência na prestação de serviços técnicos de desenvolvimento, manutenção e documentação de sistemas utilizando ambiente de integração continua e gerência de configuração, inclusive com regras de qualidade de código semelhantes ou equivalentes as do Banco Central, com esforço mínimo de 6.900 (seis mil e novecentos) Pontos de Função, em regime de fábrica de software, em período ininterrupto de 12 (doze) meses. Modo de comprovação: atestado ou conjunto de atestados que totalizados atendam aos valores mínimos exigidos, conforme o modelo 9 do Anexo 8. * * Esta é a ultima aula sobre medidas e controle da produtividade. - Durante o curso você foi apresentado a APF e a outras formas de medir e estimar os aspectos do software. - Esteja aberto para novas propostas. - medir a funcionalidade (APF) têm se consolidado e cada vez mais é usado nas empresas. O software precisa ser medido com precisão pois só assim poderemos gerenciá-lo se possível busque uma certificação em APF Você verá que o mundo do trabalho lhe acolherá pois poucos profissionais olham o software sob o aspecto da gerência. * * Contactos: Professor Horacio ribeiro www.espacodoprofessor.com Email: profhoracioribeiro@gmail.com Aula revisão da av2 * *