Modelos de Qualidade para indivíduos e grupos: PSP & TSP Qualidade de Software Alexandre Vasconcelos 1/27 PSP – Personal Software Process Qualidade de Software Alexandre Vasconcelos 2/27 O Modelo PSP Um modelo desenvolvido pelo SEI para melhoria e otimização do processo individual de trabalho. Estruturado como um curso, onde os conceitos, metodologia e documentação são introduzidos gradativamente via treinamento O PSP representa para o indivíduo, enquanto processo de amadurecimento, o que o CMM/CMMI é para a empresa Qualidade de Software Alexandre Vasconcelos 3/27 O Modelo PSP Baseado no CMM, possui também níveis de maturidade. Os níveis representam fases de evolução a serem seguidas até se alcançar o pleno controle sobre as atividades de desenvolvimento. 1995 - Livro “A Discipline for Software Engineering” , de Watts Humphrey Qualidade de Software Alexandre Vasconcelos 4/27 Objetivos e Características do PSP Objetivos: – Preencher a lacuna deixada pelos modelos de processo de software, com relação ao processo pessoal. – Tornar o trabalho mais produtivo, adequado e satisfatório ao desenvolvimento de sistemas em escala individual, fazendo com que o próprio engenheiro de software encontre os seus limites. Características – Suporta desenvolvimento individual. – Possibilita que o próprio engenheiro encontre seu processo de desenvolvimento. – Institucionaliza o controle total das atividades. Qualidade de Software Alexandre Vasconcelos 5/27 Estratégia do PSP Identificação de métodos e técnicas utilizados em sistemas de grande escala que possam ser úteis para os sistemas individuais. Definição de um subconjunto destes métodos e técnicas para serem aplicados no desenvolvimento de pequenos programas. Estruturação destes métodos para que sejam gradualmente introduzidos. Fornecimento de um conjunto de exercícios a serem realizados, possibilitando o aprendizado do PSP. Qualidade de Software Alexandre Vasconcelos 6/27 PSP – Níveis de Maturidade Qualidade de Software Alexandre Vasconcelos 7/27 PSP0 - Medição Pessoal Construir uma base de medidas para suporte à evolução, com foco na medição do tempo gasto, defeitos inseridos e encontrados. – Utiliza tabelas para medição e documentação – Base para todo o processo de melhoria – Coleta de dados • tempo • defeitos – Delineação do perfil do engenheiro – Basicamente uma fase de coleta de informações Qualidade de Software Alexandre Vasconcelos 8/27 PSP - Template Qualidade de Software Alexandre Vasconcelos 9/27 PSP1 - Planejamento Pessoal Adiciona planejamento ao PSP0 com base nos dados históricos Registro de teste e estimativa de tamanho e recursos. – Perceber a relação entre o tamanho do programa desenvolvido e o tempo gasto para desenvolve-lo. – Ajudar o engenheiro de software a só assumir compromissos que possa cumprir. – Fornecer um planejamento ordenado das tarefas a serem cumpridas. – Fornecer dados para avaliação do trabalho realizado. Qualidade de Software Alexandre Vasconcelos 10/27 PSP2 - Qualidade Pessoal Foco em técnicas de revisão de código para encontrar possíveis defeitos, antes que seja tarde demais para consertá-los. Principais dados gerados nas revisões: – – – – – – Tamanho do programa. Tempo de revisão. Número total de defeitos encontrados. Número de erros encontrados após a revisão. Número médio encontrado por hora de revisão. Número médio de linhas de código revistas por hora. Qualidade de Software Alexandre Vasconcelos 11/27 PSP3 - Processo Cíclico Estratégia – desenvolver programas incrementalmente. A cada iteração, o processo de PSP2 é completado, incluindo desenvolvimento, codificação, revisão e teste. Objetivos – Tornar o PSP aplicável a tarefas médias e grandes. – Melhoria contínua através de avaliações sucessivas. Qualidade de Software Alexandre Vasconcelos 12/27 PSP X CMM O PSP suporta, em escala individual, 12 das 18 KPAs do modelo CMM CMM 2 - PSP0 – Planejamento do Projeto – Acompanhamento do Projeto – Gerenciamento quantitativo dos processos – Gerenciamento da qualidade de software CMM 3 - PSP1 – Foco no processo organizacional – Definição do processo organizacional – programa de Treinamento – gerenciamento de software integrado – Revisão conjunta Qualidade de Software CMM 4 - PSP2 CMM 5 - PSP3 – Prevenção de defeitos – Gerenciamento de mudanças tecnológicas – Gerenciamento de mudanças no processo Alexandre Vasconcelos 13/27 Ferramentas para PSP http://processdash.sourceforge.net/ http://www.laura-art.com/Studio/ Qualidade de Software Alexandre Vasconcelos 14/27 Como Avaliar PSP? Cursos – An Introduction to PSP – Livro “A Discipline for Software Engineering” , de Watts Humphrey, 1995 Iniciativas – Individual – Disciplinas em cursos universitários Livros são self-study! Qualidade de Software Alexandre Vasconcelos 15/27 Benefícios do PSP Incorporação, no processo de trabalho do engenheiro de software, de procedimentos para codificação, e revisões de código e projeto. Geração de dados históricos obtidos através das tabelas e relatórios. Uso de dados históricos acumulados para planejamento de trabalho e escalonamento de tarefas. O processo de desenvolvimento de software pode ser definido pelo próprio engenheiro. Qualidade de Software Alexandre Vasconcelos 16/27 PSP - Pontos Críticos As tabelas e roteiros do PSP são fortemente voltados para o paradigma imperativo de programação. Foco em codificação e teste Carência nas fases de requisitos e especificação de projetos. Tempo para treinamento e utilização do PSP. Dificuldade em garantir cultura disciplinar e comprometimento das pessoas. Qualidade de Software Alexandre Vasconcelos 17/27 TSP – Team Software Process Qualidade de Software Alexandre Vasconcelos 18/27 Motivação: Por que o PSP não é suficiente? Pessoas trabalham em grupo Integração e planejamento de Times de desenvolvimento Necessidade de estimativas compostas Qualidade de Software Alexandre Vasconcelos 19/27 Team Software Process (TSP) Proposto por Watts Humphrey, criador do CMM Voltado para a formação de equipes de desenvolvimento de alta produtividade Focado em métricas e inspeções Atividades descritas na forma de scripts Qualidade de Software Alexandre Vasconcelos 20/27 PSP + TSP Qualidade de Software Alexandre Vasconcelos 21/27 TSP – Ciclo de Vida 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 Qualidade de Software Alexandre Vasconcelos 22/27 CMM x TSP x PSP Qualidade de Software Alexandre Vasconcelos 23/27 TSP e SW-CMM Práticas de Projeto Fonte: SEI - TR 008/2002 Qualidade de Software Alexandre Vasconcelos 24/27 TSP e SW-CMM Práticas da Organização Fonte: SEI - TR 008/2002 Qualidade de Software Alexandre Vasconcelos 25/27 TSP – Pontos Fortes Formação de uma equipe coesa, que busca um objetivo comum Suas práticas melhoram o gerenciamento do projeto Completamente alinhado com o SW-CMM, funcionando como “catalisador” Qualidade de Software Alexandre Vasconcelos 26/27 TSP – Pontos Fracos Requer treinamento prévio em Personal Software Process (PSP) Não possui modelos de documentos Não entra em detalhes sobre a execução das atividades Qualidade de Software Alexandre Vasconcelos 27/27