580 likes | 683 Views
P ersonal S oftware P rocess. Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999. AGENDA. 1. Introdução 2. O PSP 3. Baseline 4. Planning 5. Quality. 6. Cyclic 7. Conclusões 8. Referências. 1. Introdução. Objetivo das organizações de software
E N D
Personal SoftwareProcess Uma Visão Geral Sheila S. Reinehr ssr@bsi.com.br Novembro/1999
AGENDA 1. Introdução 2. O PSP 3. Baseline 4. Planning 5. Quality 6. Cyclic 7. Conclusões 8. Referências
1. Introdução Objetivo das organizações de software “Entregar produtos de software de alta qualidade, de acordo com os custos e o cronograma estabelecidos.” [Humphrey97]
1. Introdução O que elas têm feito ? • Programas de Qualidade (TQM) • CMM - The Capability Maturity Model • SPICE (ISO/IEC TR 15504), Trillium, Bootstrap • Normas para Software: ISO/IEC 9126, ISO/IEC 12207, etc.
1. Introdução Qual a deficiência destes métodos? • dizem “o quê” e não “como” fazer • focam a organização e não o indivíduo
1. Introdução PSP - Personal Software Process É um framework para auxiliar o desenvolvedor a estimar e planejar suas tarefas, acompanhar sua performance em relação ao planejado e melhorar a qualidade dos produtos produzidos.
1. Introdução Objetivo do PSP • auxiliar o desenvolvedor a gerenciar seu trabalho, conhecer seus talentos e melhorar suas habilidades; • oferecer métricas e análises métricas; • introduzir gradativamente técnicas de Engenharia de Software.
1. Introdução Como ele é oferecido • Cursos fornecidos pelo SEI e empresas credenciadas (100-150 horas) • Disciplinas no currículo de Universidades (1 ou 2 semestres) • Auto-treinamento com o livro
AGENDA 6. Cyclic 7. Conclusões 8. Referências 1. Introdução 2. O PSP 3. Baseline 4. Planning 5. Quality
Cyclic Personal Process 2. O PSP PSP3Cyclic Development PSP2.1 Design Templates Personal Quality Management PSP2 Code Reviews Design Reviews PSP1.1 Task Planning Schedule Planning Personal Planning Process PSP1 Size estimating Test Report PSP0.1 Coding Standard Size Measurement PIP Baseline Personal Process PSP0 Current Process Time Recording Defect Recording Defect Type Standard
dados de planejamento dados reais REQUERIMENTOS 2. O PSP Planejamento Projeto Orientação Logs Logs Codificação Roteiros (scripts) Compilação dados de tempo e defeito Resumo do Plano de Projeto Teste Finalização (PostMortem) PRODUTO FINAL
AGENDA 6. Cyclic 7. Conclusões 8. Referências 1. Introdução 2. O PSP 3. Baseline 4. Planning 5. Quality
Processo Pessoal Cíclico PSP 3 Desenvolvimento Cíclico 3. Baseline PSP 2.1 Padrões de Projeto PSP 2 Revisões de Código Revisões de Projeto Gestão de Qualidade Pessoal PSP 1.1 Planejamento de Tarefas Cronogramas Processo de Planejamento Pessoal PSP 1 Estimativa de Testes Relatório de Testes PSP 0.1 Padrão de Codificação Medida de Tamanho PIP Processo De Medição Pessoal PSP 0 Processo Atual Registro de Tempo Registro de Defeitos Padrão de Tipos de Defeitos
3. Baseline Baseline Personal Process “Se você não sabe onde está, um mapa não vai ajudá-lo.”
3. Baseline O Baseline Personal Process (PSP0 e PSP0.1) estabelece um ponto de partida para a compreensão do processo de software e, consequentemente, uma base sobre a qual promover as melhorias.
3.1. PSP0 PSP0 Current Process Time Recording Defect Recording Defect Type Standard Elementos do PSP0 • Current Process: processo atual do desenvolvedor (6 fases padrão) • Time Recording: registro de tempos • Defect Recording: registro de defeitos • Defect Type Standard:padrão de classificação dos defeitos
3.1. PSP0 PSP0 Current Process Time Recording Defect Recording Defect Type Standard
3.1. PSP0 PSP0 Current Process Time Recording Defect Recording Defect Type Standard
3.1. PSP0 PSP0 Current Process Time Recording Defect Recording Defect Type Standard Table C20 - Defect Standard Type 10 Documentation 60 Checking 20 Syntax 70 Data 30 Build, Package 80 Function 40 Assignment 90 System 50 Interface 100 Environment
3.1. PSP0 PSP0 Current Process Time Recording Defect Recording Defect Type Standard
3.1. PSP0 PSP0 Current Process Time Recording Defect Recording Defect Type Standard
3.2. PSP0.1 PSP0.1 Coding Standard Size Measurement PIP Novos elementos do PSP0.1 • Coding Standard: C++ (Humphrey), JAVA (Albuquerque), PowerBuilder (Silva) • Size Measurement: LOC novas, deletadas, modificadas e reutilizadas • PIP (Process Improvement Proposal):formulário para o registro de idéias
AGENDA 6. Cyclic 7. Conclusões 8. Referências 1. Introdução 2. O PSP 3. Baseline 4. Planning 5. Quality
Cyclic Personal Process 4. Planning PSP3Cyclic Development PSP2.1 Design Templates Personal Quality Management PSP2 Code Reviews Design Reviews PSP1.1 Task Planning Schedule Planning Personal Planning Process PSP1 Size estimating Test Report PSP0.1 Coding Standard Size Measurement PIP Baseline Personal Process PSP0 Current Process Time Recording Defect Recording Defect Type Standard
4. Planning Personal Planning Process “Se você não sabe onde quer chegar, qualquer caminho serve.”
4. Planning Personal Planning Process • introduz técnicas para o estimativa de tamanho do software e esforço (PROBE) • planejamento de tarefas e cronograma • relatório para registro dos dados de teste
4.1. PSP1 PSP1 Size estimating Test Report Novos elementos do PSP1 • Size estimating: usando PROBE • Test Report: formulário padrão para o registro dos testes
4.1. PSP1 PSP1 Size estimating Test Report PROBE - PROxi Based Estimating • desenvolvido por Humphrey • específico para o PSP • baseado em métodos populares
Identifique Objetos Núm. de métodos Tipo de objeto Tamanho relativo Categorias de reuso PSP1 Size estimating Test Report 4.1. PSP1 Projeto Conceitual Calcule LOC projetadas e modificadas Estime o tamanho do programa Calcule o intervalo de previsão PROBE
4.1. PSP1 PSP1 Size estimating Test Report PROBE - LOC projetadas ( C++)
4.1. PSP1 PSP1 Size estimating Test Report PROBE - Tamanho do programa yk = tamanho estimado do programa xk = qtde de LOC estimadas (LOC total objetos) b0, b1 = parâmetros da regressão yi = qtde de LOC novas e modif. reais (hist.) xi = qtde de LOC estimadas (hist.)
4.2. PSP1.1 PSP1.1 Task Planning Schedule Planning Novos elementos do PSP1.1 • Task Planning: planejamento de tempo por atividade • Schedule Planning: cronograma baseado nas atividades planejadas e no tempo disponível para o projeto
AGENDA 6. Cyclic 7. Conclusões 8. Referências 1. Introdução 2. O PSP 3. Baseline 4. Planning 5. Quality
Cyclic Personal Process 5. Quality PSP3Cyclic Development PSP2.1 Design Templates Personal Quality Management PSP2 Code Reviews Design Reviews PSP1.1 Task Planning Schedule Planning Personal Planning Process PSP1 Size estimating Test Report PSP0.1 Coding Standard Size Measurement PIP Baseline Personal Process PSP0 Current Process Time Recording Defect Recording Defect Type Standard
5. Quality Personal Quality Management “É melhor prevenir do que remediar.”
5. Quality Personal Quality Management • efetua o gerenciamento dos defeitos • introduz técnicas de revisão • tem seu foco no design • não ensina a fazer design, mas a checar se está completo
5.1. PSP2 PSP2 Code Reviews Design Reviews Novos elementos do PSP2 • Code Reviews: revisões de código baseadas em um checklist • Design Reviews: revisões de projeto baseadas em um checklist
5.1. PSP2 PSP2 Code Reviews Design Reviews Por que fazer revisões ? • início do PSP (33% tempo em compilação e teste) e final do PSP (10% tempo em compilação e teste) • economia de tempo ($$) • processo mais previsível • produto de melhor qualidade
5.1. PSP2 PSP2 Code Reviews Design Reviews Medidas das revisões • Básicas: tamanho do programa, tempo da revisão, qtde de defeitos encontrados na revisão e depois • Derivadas: % de defeitos encontrados na revisão, defeitos encontrados/KLOC, defeitos encontrados/hora de revisão, qtde de LOC revisadas/hora
PSP2.1 Design Templates 5.2. PSP2.1 Novos elementos do PSP2.1 • COQ (Cost of Quality) • Design Templates: revisões de projeto baseadas em um checklist
PSP2.1 Design Templates 5.2. PSP2.1 Cost of Quality (COQ) - PSP • Failure Costs: tempo gasto em compilação e teste. • Appraisal Cost: tempo gasto em revisões de código e projeto.
PSP2.1 Design Templates 5.2. PSP2.1 Cost of Quality (COQ) - PSP (cont.) • Failure COQ = 100 * (tempo de compilação + tempo de teste) / (tempo total de desenvolvimento) • Appraisal COQ = 100 * (tempo de revisão de projeto + tempo de revisão de código) / (tempo total de desenvolvimento)
PSP2.1 Design Templates 5.2. PSP2.1 Cost of Quality (COQ) - PSP (cont.) • Total COQ = Failure COQ +Appraisal COQ • A/FR ratio = Appraisal COQ / Failure COQ
PSP2.1 Design Templates 5.2. PSP2.1 Design Templates • Operational Scenario • Functional Specification • State Specification • Logic Specification
AGENDA 6. Cyclic 7. Conclusões 8. Referências 1. Introdução 2. O PSP 3. Baseline 4. Planning 5. Quality
Cyclic Personal Process 6. Cyclic PSP3Cyclic Development PSP2.1 Design Templates Personal Quality Management PSP2 Code Reviews Design Reviews PSP1.1 Task Planning Schedule Planning Personal Planning Process PSP1 Size estimating Test Report PSP0.1 Coding Standard Size Measurement PIP Baseline Personal Process PSP0 Current Process Time Recording Defect Recording Defect Type Standard
6. Cyclic Cyclic Personal Process “Estratégia de Guerra: dividir para conquistar.”
6. Cyclic Cyclic Personal Process • expande os conceitos do PSP para projetos maiores • divide um programa maior em pequenas partes • aplica o PSP2 a cada uma das partes
AGENDA 6. Cyclic 7. Conclusões 8. Referências 1. Introdução 2. O PSP 3. Baseline 4. Planning 5. Quality
7. Conclusões Resultados do PSP em cursos • estimativas de tamanho: 2.5 • estimativas de esforço: 1.75 • redução da qtde total de defeitos: 1.5 • redução de defeitos compilação: 3.7 • redução de defeitos teste: 2.5 FONTE: CMU/SEI-97-TR-001 - DEZEMBRO/1997