Planejamento de Software

Slides:



Advertisements
Apresentações semelhantes
Métricas e Medição de Software
Advertisements

Introdução aos Sistemas de Informação Gerencial
Os projetos.
ENGENHARIA DE SOFTWARE Garantia de Qualidade de Software
Engenharia de Software Qualidade de Software Uma abordagem conceitual André Luis Zanon São Carlos SP – UFSCAR 2010 Engenharia de Software – UFSCAR.
Objetivos Medir a Funcionalidade de Sistemas de acordo com a perspectiva do usuário Medir o desenvolvimento e a manutenção de software independentemente.
Gerenciamento do escopo
Gerência de Projetos Wesley Peron Seno Introdução
Tipos de sistemas de Lehman
SISTEMAS DE INFORMAÇÃO
Métricas para o Processo e o Projecto de SW
> Fases de Engenharia de SW > Gestão de Projectos de SW
Garantia de Qualidade do software
Tópicos Motivação para teste Por que algumas empresas não testam
Gestão de Projetos Áreas de conhecimentos Integração
Gerenciamento do escopo do projeto
INTRODUÇÃO A INFORMÁTICA
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Gerenciamento de Configuração
Walter de Abreu Cybis Outubro, 2003
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
TI - Sistemática de Métricas
Requisitos Funcionais e Não-Funcionais/ Documento de Requisitos
Plano de Projeto de Software
Como Desenvolver Sistemas de Informação
Gestão de Defeitos Vanilson Burégio.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Gerenciamento de Requisitos com Casos de Uso
Gerenciamento do Escopo
Configuração de manutenção
Gerência de Configuração de Software
Pontifícia Universidade Católica de Campinas
PMBOK 5ª Edição Capítulo 6
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Planejamento e Gerenciamento de Projetos
Cap 4 – Métricas do Processo e Projeto de Software
1 Cap 5 –Planejamento de Projetos de Software Ricardo L Schneider FES.
Gerenciamento de Configuração
Pontos por Função medindo tamanho de software Prof. Rodrigo Nin
PMBOK 5ª Edição Capítulo 3
PMBOK 5ª Edição Capítulo 5
1 / 23 Controle de ações É o gerenciamento ativo, diário, dos riscos Ocorre ao mesmo tempo do gerenciamento do projeto Inclui a implementação do plano.
Gerenciamento da Integração
Arquitetura do Software
Prof. Alexandre Vasconcelos
 - PSF Grupo: abc, agsj, fcac.
Projeto de Banco de Dados
Gerência de Configuração - GC
Fase de Concepção (Início, Planejamento)
Trabalho Final de Fundamentos da Engenharia de Software Métrica de Pontos de Função André Costa de Jesus & Helena Prudente Bartholo.
Documentação de Software
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Estimativas de Custos e Orçamentação
Gestão de defeitos.
Objetivos do Capítulo Explicar a importância da implementação de processos e tecnologias de gerenciamento de dados numa organização. Explicar as vantagens.
Engenharia de Software
RUP - Cap. 4 – Processo Centrado na Arquitetura
Fase de Concepção Levantamento de Requisitos, Organização de Requisitos, Planejamento dos Ciclos Iterativos.
Gestão de Projetos de Software
IEEE Melhores Práticas para Descrições de Projeto de Software (DPS)
Fase de Concepção (Início, Planejamento)
Engenharia de Software
Gerenciamento de Configuração de Software
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
TÉCNICAS DE ESTIMATIVAS
QUALIDADE DE SOFTWARE Prof. Carlos Augusto da Costa Carvalho.
Estimativa, Teste e Inspeção de Software
1 Estimativa, Teste e Inspeção de Software Gerência de Projetos: Estimativa de Software Marcos Camada
Melo Informática. Copyright© Todos os direitos reservados. 1 1 Interface Homem X Máquina APF - Análise por Pontos de Função É um método padrão para.
Transcrição da apresentação:

Planejamento de Software Leonardo Sameshima Taba Paulo Eduardo Papotti Engenharia de Software        PPG-CC Profa. Dra. Rosângela Aparecida Delloso Penteado

Métricas de Software

O que é métrica? Muitos termos são usados, indistintamente, mas representam conceitos distintos. Medida Medição Métrica Indicador O termo medida, no contexto de engenharia de software, fornece uma indicação quantitativa da extensão, quantidade, dimensão, capacidade ou tamanho de algum atributo de produto ou processo.  Por outro lado, medição pode ser definida como o ato de determinar uma medida.  Por fim, a definição de métrica, de acordo com o IEE Standard Glossary, é “uma medida quantitativa de grau em que um sistema, componente ou processo possui um determinado atributo”. Indicador é uma métrica ou conjunto de métricas que fornece profundidade de visao do processo de software, projeto de sotware ou o produto em si.

Métricas Orientadas a Tamanho Métricas orientadas a tamanho são originadas pela normalização das medidas de qualidade e/ou produtividade, considerando o tamanho do software que foi produzido. Depende de gravação de dados histórico dos projetos. Erros por KLOC (milhares de linhas de código), defeitos por KLOC, $ por KLOC e páginas de documentação por KLOC. Adicionalmente, outras métricas interessantes podem ser calculadas: erros por pessoa-mês, KLOC por pessoa-mês, $ por página de documentação.

Métricas Orientadas a Tamanho Vantagens Desvantagens

Métricas Orientadas a Tamanho Vantagens Fáceis de serem obtidas Vários modelos de medidas Baseados em LOC ou KLOC   Desvantagens LOC depende da linguagem de programação Penalizam programas bem projetados, Mas pequenos Não se adaptam às linguagens não procedimentais Difícil de obter em fase de planejamento

Métricas Orientadas a Função Métricas de software orientadas a função usam uma medida de funcionalidade entregue pela aplicação como valor de normalização. A métrica orientada a função mais amplamente usada é a pontos por função (function point – FP).

Pontos por Função Nr. de entradas de usuário que forneçam dados distintos para a aplicação. Nr. de saídas de usuário que forneçam informações orientadas a aplicações (relatórios, telas, mensagens de erro) Nr. de consultas do usuário entrada on-line que resulte em saída on-line   Nr. de arquivos cada arquivo lógico Nr. de interfaces externas todas as interfaces legíveis por máquina, usadas para transmitir informação para outro sistema.

Fatores de Ajuste - Fi 1. O sistema requer salvamento (backup) e recuperação (recovery)? 2. Comunicações de dados são necessárias? 3. Há funções de processamento distribuídas? 4. O desempenho é crítico? 5. O sistema vai ser executado em um ambiente operacional existente, intensamente utilizado? 6. O sistema requer entrada de dados on-line? 7. A entrada de dados on-line exige que a transação de entrada seja  construída através de várias telas ou operações? 8. Os arquivos mestre são atualizados on-line? 9. As entradas, saídas, arquivos ou consultas são complexas? 10. O processamento interno é complexo? 11. O código é projetado para ser reusado? 12. A conversão e a instalação estão incluídas no projeto? 13. O sistema está projetado para instalações múltiplas em diferentes organizações? 14. A aplicação está projetada para facilitar modificações e para facilidade de uso pelo usuário?

PF = total de contagem x [0,65 + 0,01 x Σ(Fi)] Classificação das Fi Cada resposta deve obedecer a uma escala de 0 a 5., em que 0 significa não-importante ou não-aplicável e 5 absolutamente essencial. PF = total de contagem x [0,65 + 0,01 x Σ(Fi)]  Artigo para consulta Albrecht, A. J. "Measuring Application Development Productivity". Proc. IBM Application Development Sysmposium, Monterey, CA, out. de 1979, p 83-92.

Métricas Orientadas a Função Vantagens Desvantagens

Métricas Orientadas a Função Vantagens Independentes da linguagem; Ideal para aplicações que usam linguagem não procedimental; Se baseiam em dados mais fáceis de serem conhecidos durante a evolução do projeto.  Desvantagens Cálculo baseado em dados subjetivos; Resultado é apenas um número.

Exemplo de utilização de PF

Pontos por caso de uso A análise de sistemas Orientados a Objetos utiliza normalmente, os diagramas de Casos de Uso para descrever as funcionalidades do sistema. Permite que seja possível estimar o tamanho do sistema ainda na fase de levantamento de Casos de Uso. Grau de detalhe dos Casos de Uso  analisados influencia diretamente  na qualidade final da medição.

1. Calcular total de pesos não ajustados dos atores Relacionar os atores, classificá-los de acordo com seu nível de complexidade (simples, médio ou complexo) TPNAA = 1*numAtoresSimples + 2*numAtoresMedio + 3*NumAtoresComplexo

2. Calcular pesos não ajustados dos casos de uso Contar os casos de uso e atribuir o grau de complexidade sendo a complexidade com base no número de classes e transações. TPNAUC= 5*numCasoUsoSimples + 10*numCasoUsoMedio + 15*NumCasoUsoComplexo

3. Calcular pontos de casos de uso não ajustados PCUNA = TPNAA + TPNAUC 

4. Calcular fator de complexidade técnica FCT = 0.6 + (0.01 * Somatório dos Ti*Peso)

5. Calcular fatores de complexidade ambiental FCA = 1.4 + (-0.03 * Somatório dos Fi*Peso)

6. Calcular pontos de casos de uso ajustados PCUA = PCUNA * FCT * FCA 

7. Calculos finais Pessoa-hora por unidade de PCU (Karner sugere 20) Estimativa em pessoa-hora (PCUA * PH-PCU) Tamanho da equipe (dado de entrada Estimativa em horas(EPH/TE) Estimativa em meses (EH/160 - considerando 4 semanas e 40 horas por semana) Artigo para consulta Karner, G. "Resource Estimation for Objectory Projects". Objective Systems SF AB (copyright owned by Rational Software), 1993

Exemplo de utilização de PCU

Estimativas de software

Objetivos do planejamento de projeto Obter estimativas de recursos, custo e tempo Tentar definir cenários de melhor caso, caso mais provável e pior caso

Escopo Primeira atividade do planejamento   Deve ser detalhado, fechado e não ambíguo Definido em acordo com o cliente O projeto é factível?

Recursos

Estimando Atualmente, o software é o componente mais caro de sistemas computacionais É importante estimar o mais precisamente possível Não é uma atividade exata   Técnicas de decomposição Modelos empíricos

Técnicas de decomposição Dimensionamento de software Dim. de "lógica nebulosa" Dim. de pontos de função Dim. de componentes padrão Dim. de modificação Estimativa de três pontos ou valor esperado S = (Sot + 4Spr + Spe) / 6

Estimativa baseada no problema A partir do escopo, decompõe o software em funções do problema LOC ou FP, variáveis de estimativa, são estimadas a partir das funções Métricas de produtividade como LOC/pm ou FP/pm são aplicadas à variavel As estimativas de cada função são combinadas para produzir uma estimativa global do projeto São feitas estimativas otimistas, mais prováveis e pessimistas S = (Sot + 4Spr + Spe) / 6

Estimativa baseada no problema - LOC Produtividade média: 620 LOC/pm Custo médio: $8000/mês Custo por LOC: $13     Custo total: $431.000      Esforço: 54 pm

Estimativa baseada no problema - FP

Estimativa baseada no problema - FP

Estimativa baseada no problema - FP FPestimados = total x [0.65 + 0.01 x E(Fi)] FPestimados = 375 Produtividade média: 6,5 FP/pm Custo médio: $8000/mês Custo por FP: $1230 Custo total: $461.000 Esforço estimado: 58 pm

Estimativa baseada em processo Como na estimação baseada no problema, o software é decomposto em suas funções    O processo de desenvolvimento também é dividido É estimado o esforço necessário para cada parte do processo de cada função Métricas de produtividade como custo por undidade de esforço são aplicadas

Estimativa baseada em processo Custo médio: $8000/mês Custo total: $368.000           Esforço estimado: 46 pm

Modelos empíricos Desenvolvidos através de experimentação com amostras de diversos projetos   Estrutura Seus resultados devem ser analisados com cuidado E = A + B x (ve)c

Modelos empíricos Baseados em LOC Baseados em FP

COCOMO II Pontos por objeto Quantidade de Telas (interface) Relatórios Componentes  Classificação em três níveis de complexidade

COCOMO II NOP = (pontos por objeto) x [(100 - %reúso)/100]   PROD = NOP/pessoas-mês (esforço)      Esforço estimado = NOP/PROD

Equação do software E = [LOC x B0.333/P]3 x (1/t4) E = esforço em pessoas-mês ou pessoas-ano t = duração do projeto em meses ou anos B = “fator de aptidões especiais” Aumenta lentamente à medida que o projeto se torna mais complexo. Para programas pequenos (de 5 a 15 KLOC), B = 0,16. Para programas maiores que 70 KLOC, B =0,39 P = “parâmetro de produtividade” Reflete a maturidade global do processo e práticas de gestão. Valores típicos podem ser P = 2.000 para um sistema embarcado de tempo real, P = 10.000 para software de telecomunicações e P = 28.000 para sistemas comerciais

Comprar ou fazer? Normalmente, comprar um componente pronto é mais barato que desenvolvê-lo Árvore de decisões Terceirização

Árvore de decisão custo estimado = E (probabilidade do caminho)i x (custo estimado do caminho)i

Resumindo Estimar Utilizando o escopo Quanto tempo, Quanto esforço e Quantas pessoas serão necessárias Utilizando o escopo Técnicas de decomposição Modelos empíricos Deve-se utilizar mais de uma estimativa para aumentar a precisão

Gestão de configuração de software

Gestão de configuração de software (SCM)   Controlar mudanças Atidade “umbrella”, ocorrendo por todo o ciclo de vida do software Objetivo: Aumentar ao máximo a facilidade com que mudanças são gerenciadas no decorrer do projeto

Elementos de um sistema de gestão de configuração   Elementos de componente Elementos de processo Elementos de construção Elementos humanos

Item de configuração de software (SCI) Informações que são criadas como parte do processo de desenvolvimento de software São organizados para formar objetos de configuração

Objetos de configuração

Baseline (referenciais) Itens de configuração de software armazenados que passaram por análise e revisões técnicas e foram aprovados. Exemplos de itens de baseline: Especificação do sistema Requisitos do software Especificação do projeto Código fonte Planos e casos de teste Sistema operacional

Baseline

Repositório Além de ser um SGBD, deve auxiliar nas tarefas de SCM Determinação de versão   Acompanhamento de dependências e gestão de modificações  Acompanhamento de requisitos Gestão de configuração Pistas de auditoria

Processo de SCM Identificar Controle de versão Controle de modificação   Controle de versão Controle de modificação Auditoria de configuração Status reporting

Identificação de objetos Abordagem orientada a objetos Dois tipos Objetos simples Unidades de informação Objetos agregados Coleção de objetos simples e agregados   Objeto Nome Descrição Lista de recursos "Realização"

Controle de versão Repositório (banco de dados de projeto) Capacidade de gestão de versão   Facilidade de construir Acompanhamento de tópicos (bugs) Exemplos: CVS, SVN (não são sistemas "de construção")

Controle de modificação Pedido de modificação Relatório de modificação Autoridade de controle de modificação (change control authority, CCA) Ordem de modificação de engenharia (engineering change order, ECO) Modificação é feita Atividades de qualidade (software quality assurance, SQA) Atualização no repositório

Controle de modificação Deve-se tomar cuidado com burocracia demais   Camadas de controle Nível informal SCI não está no baseline Nível de projeto SCI está no baseline Nível formal Produto já foi entregue

Auditoria de configuração Como garantir que as modificações foram adequadamente implementadas?   Revisões técnicas formais Auditoria de configuração

Auditoria de configuração 6 questões: A modificação especificada na ECO foi feita? Uma revisão técnica formal foi conduzida para avaliar a correção técnica? O processo de software foi seguido e as normas de ES foram aplicadas? A modificação foi refletida no SCI? O autor e a data da modificação foram registrados? Os procedimentos da SCM para anotar a modificação, registrá-la e relatá-la foram seguidos? Todos os SCIs relacionados foram adequadamente atualizados?

Status reporting Questões: O que aconteceu? Quem fez? Quando aconteceu? O que mais será afetado?   Relatório de estado de configuração (configuration status reporting, CSR) Todas as modificações no gerenciamento da configuração são relatados Pode ser colocado em um BD on-line ou site

Bibliografia [1] Pressman, R. S. - Engenharia de Software - 6ª edição  [2] Pressman, R. S. - Software Engineering, A Practitioner's Approach - 5th edition [3] Karner, G. "Resource Estimation for Objectory Projects". Objective Systems SF AB (copyright owned by Rational Software), 1993 [4] Albrecht, A. J. "Measuring Application Development Productivity". Proc. IBM Application Development Sysmposium, Monterey, CA, out. de 1979, p 83-92. [5] Heimberg, V. Grahl, E. A. Estudo de Caso de Aplicação da Métrica de Pontos deCasos de Uso numa Empresa de Software. Disponível em: http://www.inf.furb.br/seminco/2005/artigos/130-vf.pdf. Acesso: 03/04/2010