Qualidade de Software Aula 8 / 2014/1 Prof. Dr. Luís Fernando Garcia [email protected] www.garcia.pro.br PSP e TSP CMM e CMMI/ MPS-BR – Foco nas empresas/organizações ... PSP e TSP – modelos baseados no indivíduo e na equipe/time/grupo ... PSP PSP (Personal Software Process) – 2000 por Humphrey (um dos pais do CMM...) Foco na melhoria de processos do indivíduo – tornando sua forma de trabalho mais disciplinada ... CMMI – foco no “o que deve ser feito…” PSP/TSP – acrescentam o “como…” PSP Constatação: Qualidade rege-se pelos PIORES elementos/componentes Normalmente, o indivíduo Analista Desenvolvedor Testador PSP Possibilitar: Ao DESENVOLVEDOR Conhecer-se Medir-se Analisar-se Aprender … PSP 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. PSP Um processo pessoal para o desenvolvimento de software Passos definidos Formulários Padrões Uma infra-estrutura de medição e análise para a caracterização deste processo Um procedimento definido para a melhoria da performance PSP – Objetivos 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. PSP – Objetivos PSP – Compromissos PSP – Compromissos PSP Utilizados um conjunto de métodos, formulários e scripts (roteiros) para planejar, medir, gerenciar o trabalho individual/times (grupos) ... PSP - Níveis Nível 0 = fundamentos de medidas e formatos de relatórios; Nível 1 = Planejamento e estimativas de tamanho e tempo; Nível 2 = Controle pessoal de qualidade de projeto; Nível 3 = Extensão a projetos maiores PSP - Níveis PSP - Níveis PSP – 0 – Medição Pessoal Atividades: Registro de tempo Registro de defeitos Padrão de tipos de defeitos Padrão de codificação Medida de tamanho Proposta de melhoramento do processo PSP – 0 – Medição Pessoal No nível de Medição Pessoal, você aprende a registrar o tempo gasto em cada etapa do ciclo do desenvolvimento, registrando ainda os defeitos encontrados. Isto é conseguido através do uso de formulários adequados. O nível PSP0.1 inclui o uso de um padrão de codificação, de medidas padronizadas e do formulário de proposta de melhoramento do processo. 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. PSP – 0 – Medição Pessoal PSP – 1 – Planejamento Pessoal Atividades: Estimativa de tamanho Relatório de testes Planejamento de tarefas Cronogramas PSP – 1 – Planejamento Pessoal No nível de Planejamento Pessoal, você aprende a planejar. A idéia geral é obter a capacidade de estimar quanto tempo levará para realizar uma tarefa baseado nas medições feitas em tarefas semelhantes anteriormente. Neste nível aprendese a assumir compromissos que podem realmente ser cumpridos. O nível PSP1.1 inclui o planejamento de tarefas e a elaboração de cronogramas. 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 PSP – 2 – Qualidade Pessoal Atividades: Revisões de código Revisões de projeto Padrões de Projeto PSP – 2 – Qualidade Pessoal No nível de Qualidade Pessoal você aprende a lidar com seus erros. Deve-se ter uma idéia precisa de quantos erros são cometidos (em média) em cada fase do ciclo de desenvolvimento. O modelo PSP mostra que a forma mais adequada para tratar erros é evitá-los desde a sua origem. Você deve utilizar os dados sobre defeitos já coletados para criar uma lista de verificação (checklist) a ser utilizada em suas revisões de projeto e de código. O nível PSP2.1 inclui a criação de padrões de projeto, bem como métodos de análise e prevenção de defeitos. 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 PSP – 3 – Processo Cíclico Pessoal Atividades: Desenvolvimento cíclico PSP – 3 – Processo Cíclico Pessoal O nível de Processo Cíclico Pessoal é a última etapa do PSP. Neste nível, o PSP sai do desenvolvimento de pequenos programas para tratar do desenvolvimento de projetos maiores, embora ainda em nível pessoal. A idéia é dividir os grandes projetos em pequenos projetos que possam ser tratados no PSP2. Neste caso, o desenvolvimento acontece em passos incrementais. expande os conceitos do PSP para projetos maiores divide um programa maior em pequenas partes aplica o PSP2 a cada uma das partes PSP - Princípios Cada indivíduo é diferente – planejamento baseado em desempenho individual A melhoria do desempenho é baseada no uso de processos bem definidos/medidos A pessoa é responsável pela qualidade de seu trabalho – responsabilidade em erros e atrasos Necessidade de um planejamento prévio das atividades, seguindo um processo bem definido Medir o tempo gasto em cada etapa – os defeitos encontrados – tamanho do sw para entender o desempenho individual Analisar os resultados ao final do processo – feedback e melhoria do processo PSP - Estrutura Requisitos – requisitos do sw Planejar – conjunto de scripts que guiam o trabalho Projetar - * Revisar o projeto - * Codificar - * Revisar o código - * Compilar e corrigir - * Testar - * (armazenar dados sobre tempo e defeitos encontrados) Pós-morte – sintetizar os dados em um resumo de planejamento PSP - Estrutura PSP - Scripts Seqüência de tarefas claramente definidas Permite que mesmo programadores sem experiência consigam desenvolver o projeto Baseado na estrutura acima. Exemplo de script: PSP – Scripts - exemplo PSP – Scripts - exemplo PSP – Scripts Todas as atividades citam o preenchimento de um log para registro de tempo Dados necessários para que a pessoa possa analisar sua produtividade Descrever minuciosamente os tempos dedicados a cada tarefa PSP – Scripts PSP – Plano de Projeto Pilares do PSP ... Planejamento de cada atividade a ser realizada levando ao controle do próprio trabalho ... Realizado com base em um formulário padrão ... PSP – Conclusões PSP procura melhorar e disciplinar o trabalho individual Com o propósito de aumentar a eficiência de desenvolvedor e a qualidade dos produtos Implantado: Profissionais autodidatas Treinamentos formais PSP – Conclusões Estudos indicam: Aumento/melhoria em vários aspectos (estimativas, por ex) Abandono gradual da metodologia no cotidiano Uso do tempo para coleta dos indicadores Solução – uso de programas automáticos para esta tarefa PSP – Resultados PSP x CMM PSP – Referências PSP – Referências TSP TSP (Team Software Process) Baseado na melhoria de processos de uma equipe de desenvolvimento e usa a noção de time – grupo de pessoas com o mesmo objetivo ... TSP O TSP provê um conjunto de Estes elementos guiam os desenvolvedores em scripts de processos formulários métodos métricas criar equipes eficazes estabelecer metas e planos para a equipe acompanhar e reportar o trabalho TSPi Versão simplificada do TSP para equipes e projetos menores TSP – Princípios Estabelecimento de objetivos e papéis comuns; Definição de um processo comum de trabalho; Envolvimento de todos na produção do plano; Negociação do plano entre o time e a gerência; Revisão e aceite final pela gerência; Comunicação livre e freqüente. Exige que a pessoa tenha sido previamente treinada em PSP Pode formar a base para a adoção do CMMI TSP – Estrutura PSP – aquisição de habilidades Planos pessoais Métodos de planejamento Valores aprendidos Dados de processo Medidas de qualidade Processos definidos TSP – Estrutura TSP – construção de times – disciplina de times Comprometimento Planos agressivos Possessão da qualidade Objetivos do projeto Possessão do plano Detalhamento do plano Papéis de time Recursos de time TSP – Estrutura TSP – trabalho em times – disciplinas de administração Prioridade da qualidade Custo da qualidade Respeito dos processos Revisão de status Revisão de qualidade Comunicação Gerência de mudanças TSP – Funcionamento Iterativo Durante um projeto são realizados vários relançamentos Revisados pelo TIME Plano geral e detalhado para cada fase TSPi – Funcionamento Ciclo 1 Lançamento Estratégia Ciclo 2 Planejamento Lançamento Requisitos Estratégia Projeto Planejamento Implementação Requisitos Testes Projeto Planejamento Postmortem Implementação Requisitos Testes Projeto Postmortem Implementação Ciclo Final Lançamento ... Estratégia Testes Postmortem Produto Final