Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Estimativas de tamanho, esforço e tempo, custo e riscos de software Prof. Maria Augusta Vieira Nelson Prof. César de Ávila Rodrigues PUC Minas Bibliografia � Paula Filho, Wilson de Pádua. Engenharia de Software: fundamentos, métodos e padrões. 2a ed. Rio de Janeiro: LTC - Livros Técnicos Científicos. 2003. � capítulo 10 � Pressman, Roger S. Engenharia de Software. 5a ed. Rio de Janeiro: McGraw Hill. 2002. � capítulo 5, 6 � Pfleeger, Shari Lawrence. Engenharia de Software: Teoria e Prática. 2a ed. São Paulo: Prentice Hall. 2004. � capítulo 3 Estimativas � São feitas durante o planejamento do projeto � Estabelecer estimativas consiste em determinar os parâmetros do planejamento, que incluem todas as informações necessárias para realizar planejamento, organização, escolha de pessoal, direção, coordenação e orçamento. Etapas para realizar estimativas � Primeiro define-se o tamanho do projeto � A partir do tamanho define-se o esforço do projeto � A partir do esforço e expectativas do cliente, define-se os recursos e o cronograma do projeto � A partir do esforço, recursos e cronogramas, define-se o orçamento do projeto. Estimativas diversas � Estimativa do tamanho: Determinação da complexidade do produto, medida em pontos de função. � Estimativa do esforço: determinação do esforço necessário para o projeto, distribuído por iterações e fluxos. � Estimativa dos recursos: Determinação dos recursos necessários para o projeto � Estimativa de cronograma: Determinação dos prazos para as iterações do projeto � Estimativa dos riscos: Determinação dos riscos do projeto, com análise de impacto e previsão de contramedidas Estimadores de tamanho � Os estimadores de tamanho são fortemente relacionadas com o esforço despendido em um projeto � servem como ponto de partida do planejamento. � Um bom estimador deve atender aos seguintes critérios: � Ser contável através de procedimento bem definido � Ser calculável a partir da informação contida na Especificação de Requisitos de Software � Apresentar boa correlação com esforço de desenvolvimento. 2 Estimadores de tamanho � Pontos de Função (FP) � Pontos de Caso de Uso (UCP) � Linhas de código (LOC) � Como resultado de uma estimativa de tamanho, temos um número, que identifica a medida na unidade escolhida. � Por exemplo, podemos ter um software com 150 UCPs, 350 FP ou 35000 LOC. � De posse desse valor, a idéia é estimar o esforço total para o desenvolvimento de software. Estimativas de tamanho � Linhas de código vantagens: � contagem facilmente automatizável; �podem ser medidas e comparadas com as estimativas; � são intuitivas: �têm interpretação física imediata; � são muito difundidas. Estimativas de tamanho � Linhas de código - problemas: �pouco valor preditivo: �difíceis de estimar a partir dos requisitos; � variam com: �linguagem; �padrão de codificação; �padrão de contagem. Estimativas de tamanho � Linhas de código: �aplicações: �complexidade de manutenção ou alteração de requisitos; �cálculos de produtividade; �confirmação da contagem de pontos de função; Estimativas de tamanho � Linhas de código - padrão de contagem: � linhas em branco: �não são contadas; � linhas (exclusivamente) de comentário: �não são contadas; �o padrão de codificação força uma linha lógica por linha física. Estimativas de esforço � cálculo básico do esforço: E = T / P � E é o esforço total, � T o tamanho do software, � P a produtividade de desenvolvimento � formas típicas: � PF/PM (ponto de função por pessoa-mês) � LC/PM (linhas de código por pessoa-mês) � premissa: o método estimador de tamanho deve apresentar boa correlação com o esforço de desenvolvimento. 3 Estimativa de esforço � Obtenção de dados de produtividade: � identificar projetos similares: � tamanho, linguagem, aplicação, experiência da equipe; � principalmente processo; � obter a produtividade para cada projeto: � usar os mesmos métodos de contagem; Produtividade de desenvolvimento � A produtividade é extraída de uma base de dados histórica contendo métricas de projetos passados � isso pode ser um problema para organizações que não possuem tal base ou possuem uma base pouco significativa pois estão começando o mecanismo de predição. � Quando uma base de dados histórica significativa está disponível � estimativas podem ser calculadas com mais garantia, � cronogramas são estabelecidos para evitar dificuldades encontradas nos projetos passados, � os riscos podem ser reduzidos Exemplo de dados de produtividade � determinação da produtividade para um grupo de projetos semelhantes; � previsão do esforço para o projeto corrente. PF 1466 PM 129 Produtividade 11,3990 Pontos de função 139,730 Produtividade 11,3990 Esforço previsto: PM = PF/Produtividade 12,258 Base de dados histórica �Dados significativos: β0 β1 esforço pontos de função Base de dados histórica �Dados pouco significativos: pontos de função esforço Relevância dos dados históricos � A verificação da relevância dos dados pode ser feita por cálculos estatísticos � coeficiente de reta de uma regressão linear, � cálculo de significância � visualização gráfica � Caso os valores medidos não sejam adequados, é aconselhável utilizar dados da literatura. � É esperado que, dados de projetos semelhantes nas mesmas condições, sejam semelhantes. 4 Distorções na base de dados � Distorções graves podem ser introduzidas por: � Diferenças de linguagens, tecnologia, área de aplicação e capacidade da equipe � Grandes diferenças de tamanho � Formas não-padronizadas ou não-confiáveis de coleta de dados � Gestão da qualidade deficiente, que terminam os projetos antes do ponto adequado de qualidade Estimativa de esforço � Convergência de estimativas - técnica de Delphi: � grupo de especialistas: � discute a especificação; � cada especialista: � preenche um formulário de estimativa, separadamente; � os resultados são tabulados e mostrados a todos: � sem identificar os autores; � a especificação é rediscutida; � nova rodada de estimativas; � até convergir. Estimativa de tempo � A estimativa de esforço produz um número total de esforço. � Esse número precisa ser dividido entre os papéis executores do processo. � Como fazer isso, que é necessário para a estimativa de cronograma? Estimativa de tempo Disciplina \ Fase Concepção Elaboração Construção Transição Total Requisitos 3 8 5 1 17 Desenho 1,5 8 8 1 18,5 Implementação 0.5 4 25 9 38,5 Testes 0 5 16 5 25 Total 5 25 54 16 100 � Uma forma: alocação estimada de cada fase / disciplina. � Exemplo: Estimativa de tempo � A partir de cada fase definem-se as alocações por disciplina, papéis e, a partir das considerações do usuário, o cronograma. � Importante: devem ser contabilizados: � Feriados, férias e outros compromissos do projeto. � Atividades de administrativas (reuniões, email, etc) � Horas não-produtivas (não se produz 100% do tempo) � Horas trabalhadas em outros projeto. Estimativa de outros recursos � Outros recursos podem ser necessários ao projeto: � Equipamentos � Ferramentas de suporte � Atividades de treinamento ou contratação específica 5 Estimativa de orçamento � Após a estimativa do esforço de desenvolvimento, da definição do cronograma e dos recursos, pode ser feito o cálculo de orçamento, que envolve: � Os custos de pessoal � Os custos dos diversos recursos necessários, como equipamentos, máquinas, treinamentos, etc. Precisão das estimativas � Estimativas devem ser feitas � o quanto antes no projeto pois afetam a distribuição de recursose a viabilidade do projeto � repetidamente durante o ciclo de vida � a medida que aspectos do projeto se modificam, a estimativa pode ser aprimorada com base em informações mais completas sobre o projeto Precisão das estimativas � Boehm 1995 Estimativas de riscos � Um risco é um evento indesejável que tem consequências negativas � Dez principais itens de risco segundo Boehm 1. Pessoal insuficiente 2. Cronogramas e orçamentos que não são realistas 3. Desenvolvimento das funções do software erradas 4. Interface com o usuário inadequada 5. Simplificação dos requisitos 6. Fluxo contínuo de modificações nos requisitos 7. Insuficiência nas tarefas realizadas externamente 8. Insuficiência nos componentes fornecidos externamente 9. Exceder a capacidade da ciência da computação Estimativas de riscos � Um bom planejamento prevê não só o que vai ocorrer corretamente no projeto, mas o que pode dar errado, quais as consequências dos problemas e o que pode ser feito para combater tais situações. � Fatores de riscos de um projeto: � Legais � Tecnológicos � Oriundos do tamanho e complexidade do produto � De pessoal � Relativos à aceitação pelo usuário Tarefas para a estimativa de riscos � Identificação dos possíveis riscos � distinguimos os riscos de outros eventos do projeto procurando por três aspectos: � uma perda associada ao evento � a probabilidade do evento ocorrer � o grau em que podemos mudar o resultado � pode ser feita através das seguintes atividades: � Checklists � Entrevistas � Brainstorming � Análise dos riscos, definindo probabilidade, impacto e janela de atuação. � Priorização dos riscos, considerando a probabilidade e impacto � Previsão de medidas de mitigação e contingência (contramedidas curativas e preventivas) 6 Fluxo do Praxis de planejamento do projeto
Compartilhar