PSP- Personal Software Process Maria Cláudia F. P. Emer PSP: Personal Software Process z Já foram vistas ISO/IEC 9126 foco no produto ISO 9001 e CMM foco no processo de desenvolvimento z Critica a essas abordagens Difícil aplicação em pequenas empresas ou no nível individual PSP: Personal Software Process z Surgimento do PSP z SEI (Software Engineering Institute), por Watts Humphrey z Objetivo Æ ajudar as pessoas a serem melhores engenheiros de software PSP: Personal Software Process z Visa melhorar, no nível pessoal: Capacidade de planejamento Acompanhamento Qualidade dos resultados z Benefícios Melhoria de produtividade Melhoria do perfil de qualidade dos produtos Os quatro níveis do PSP PSP0: Processo referencial (Baseline process) z Estabelecimento de práticas de medidas z Formatos de relatórios base para melhoria contínua pessoal 1
PSP0: Processo referencial (Baseline process) z PSP0.1: Padrões de programação Práticas de medida de tamanho de produto de trabalho Proposta de melhoria de processo (PIP Process Improvement Proposal) registro de problemas nos processos, experiências e propostas de melhoria PSP1: Processo de planejamento pessoal z Práticas de planejamento z Relatório de teste z Práticas de estimativa de tamano e recurso PSP1: Processo de planejamento pessoal z PSP1.1: Planejamento de tarefas Elaboração de cronogramas O planejamento no nível pessoal permite: z Melhor compreensão do tamanho do programa e tempo gasto no seu desenvolvimento z Assumir compromissos com certeza de seu cumprimento z Organizar o trabalho z Acompanhar melhor o status do desenvolvimento PSP2: Processo de gestão pessoal de qualidade z Gerenciamento dos próprios erros z Técnicas de inspeção e revisão para detecção de defeitos Coleta e análise de dados de defeitos de compilação e teste detectados em programas anteriores Avaliação da evolução do nível de qualidade do programador PSP2: Processo de gestão pessoal de qualidade z PSP2.1: Processo de design Auxilia no estabelecimento de critérios de completitude e de técnicas de verificação e consistência PSP3: Processo pessoal cíclico z Subdividir o programa em módulos z Desenvolvimento incremental z Cada módulo é um ciclo completo de design, codificação e teste (PSP2) z Controle de qualidade de cada módulo z Uso de relatórios z Testes de regressão 2
Utilização do PSP z Benefícios concretos para os desenvolvedores [Humphrey 95]: Melhor entendimento do trabalho, através da definição, medição e acompanhamento Uso de uma estrutura de processos definida e critérios mensuráveis Æ avaliação de experiências anteriores Possibilidade de selecionar métodos e técnicas que melhor se adaptem ao trabalho Maior produtividade e eficácia nas equipes de desenvolvimento Utilização do PSP z Princípios que influenciam a produtividade e qualidade do processo de desenvolvimento Um processo bem definido e estruturado pode melhorar a eficiência no trabalho O processo pessoal deve ser ajustado ao conhecimento e preferência de cada um O desenvolvedor se sente à vontade com o processo se participar de sua definição Na medida que o conhecimento e habilidade de um profissional evoluem, o processo utilizado deve evoluir A melhoria contínua fica facilitada com um processo de realimentação permanente PSP e CMM z PSP foi criado a partir do CMM z A idéia é trazer ao nível de programador os conceitos de processo tratados pelo CMM SPICE ISO/IEC 15504 Maria Cláudia F. P. Emer SPICE ISO/IEC 15504 z SPICE Software Process Improvement and Capability determination z Nome dado ao projeto de elaboração da futura norma ISO/IEC 15504 z Surgiu pela necessidade de uma norma de avaliação de processo de software SPICE ISO/IEC 15504 z Objetivo: Ser mais geral e abrangente que modelos existentes Ser mais específica que a ISO 9001 z É dividida em duas dimensões: Processo Capacidade de processo 3
Documentos que formam o SPICE Uso da ISO/IEC 15504 z Pode ser usada para avaliação quanto a: Melhoria de processo Gerar um perfil dos processos que serão usados em um plano de melhorias O perfil deve conter objetivos e contexto para avaliação, modelo e método para avaliação e objetivos de melhoria Uso da ISO/IEC 15504 z Melhoria de processo Uso da ISO/IEC 15504 z Pode ser usada para avaliação quanto a: Determinação da capacidade dos processo de uma organização Avaliar um possível fornecedor Perfil de capacidade objetivos e métodos de avaliação, modelos e métodos de avaliação e requisitos esperados O perfil de capacidade permite estimar o risco associado a contratação do fornecedor Uso da ISO/IEC 15504 z Determinação da capacidade Estrutura do Modelo de Referência z Dimensão de processo Processos de desenvolvimento são vistos conforme a norma ISO/IEC 12207 (ciclo de vida de software) z Dimensão de capacidade Modelo de medição com base na identificação de um conjunto de atributos que permite determinar a capacidade de um processo para atingir seus propósitos 4
Dimensão de processos z Três agrupamentos básicos : categorias de engenharia de software e de ralação cliente-fornecedor : categoria de processos de apoio : categorias de processos de gestão e processos organizacionais Dimensão de processos z Cinco categorias de processos CUS: cliente-fornecedor (customer-supplier) ENG: engenharia de software (engineering) SUP: apoio (support) MAN: gestão (management) ORG: organizacionais (organization) primários z Categoria CUS z CUS: processos que afetam diretamente o cliente CUS.1Æ processo de aquisição: obtenção de um produto que satisfaça as necessidades expressas pelo cliente z Preparação para aquisição z Seleção do fornecedor z Monitoramento do fornecedor z aceitação z Categoria CUS CUS.2Æ processo de fornecimento: fornecimento do software para o cliente, satisfazendo suas necessidades z Preparação de um contrato z Entrega z Instalação do produto z Categoria CUS CUS.3Æ elicitação de requisitos: indica coletar, processar, controlar e acompanhar os requisitos do cliente z Mecanismos de comunicação com o cliente z Mecanismos de contro de mudanças de requisitos 5
z Categoria CUS CUS.4Æ processo de operação: fazer operar o software no ambiente de software e hardware para o qual ele foi desenvolvido e fornecer suporte ao cliente z Processo de uso operacional z Processo de suporte ao usuário z Categoria ENG z ENG: processos relacionados à construção e manutenção do produto de software ENG.1Æ processo de desenvolvimento: objetivo de transformar os requisitos em um produto de software z Processo de análise de requisitos do sistema z Processo de análise de requisitos de software z Categoria ENG ENG.1Æ continuação z Processo de projeto de software z Processo de construção de software z Processo de integração de software z Processo de teste de software z Processo de integração e teste de sistema z Categoria ENG ENG.2Æ processo de manutenção de software e de sistema: gerenciar modificações, migrações e desativações de software e sistema, a pedido do usuário Processos apoio z SUP: processos relacionados ao apoio ou suporte SUP.1Æ processo de documentação: desenvolver e manter documentos que registrem informações produzidas por outro processo ou atividade z Elaboração, controle, manutenção, revisão, aprovação e publicação de documentos e seu acesso 6
SUP.2Æ gestão de configuração: estabelecer e manter a integridade de todos os produtos de trabalho de algum processo ou do projeto z Estratégia de gestão da configuração z Identificação de itens de configuração z Controle de acesso e de mudanças de itens z Registro da situação de todos os itens z Controle do armazenamento e manuseio desse registro SUP.3Æ garantia da qualidade: assegurar que os produtos de trabalho e atividades de um processo ou projeto estão de acordo com os requisitos especificados e satisfazem aos palnos e regras estabelecidos z Estabelecimento de procedimentos para o tratamento de desvios encontrados em relação as regras, procedimentos e padrões z Pode fazer uso de resultados de processos de verificação, validação, revisão conjunta, auditoria e resolução de problemas z Os envolvidos com a garantia de qualidade devem ter autonomia na execução de suas tarefas SUP.4Æ processo de verificação: examinar se cada produto de trabalho ou serviços obtidos de um processo reflete as especificações de entrada do processo z Definição de uma estratégia de verificação z Definição de critérios de verificação z A verificação deve assegurar que os defeitos encontrados serão removidos e que os resultados serão disponibilizados para elementos relevantes z Processo relacionado com os processos ENG1.6 e ENG1.7 SUP.5Æ processo de validação: examinar se estão satisfeitos os requisitos para o uso pretendido de cada produto de trabalho ou serviço, resultado de um processo z Definição de uma estratégia de validação z Definição de critérios de validação z A verificação deve assegurar que os defeitos encontrados serão removidos, que os resultados serão disponibilizados para elementos relevantes e que os produtos são adequados para o uso pretendido z Processo relacionado ao processo ENG1.7 SUP.6Æ processo de revisão conjunta: permitir ao cliente a visibilidade do andamento do desenvolvimento quando comparado ao especificado no contrato z Aspectos técnicos e administrativos z Realização de revisões periódicas da situação de produtos e atividades por todas as partes interessadas em datas preestabelecidas z Solução de todas as pendências, problemas e desvios detectados SUP.7Æ processo de auditoria: determinar a conformidade de produtos identificados e atividades com planos, requisitos e com o contrato z Definição da estratégia de programação da auditoria z Especificação dos itens que serão auditados e por quais regras z O pessoal que conduz a auditoria deve ser independente àquele que executa o desenvolvimento z Os problemas detectados devem ser comunicados aos responsáveis para sua correção 7
SUP.8Æ processo de resolução de problemas: assegurar que todos os problemas encontrados sejam analisados, resolvidos e que tendências sejam observadas, para planejamento e execução de ações corretivas z Categoria MAN z MAN: processos que contêm práticas de natureza geral MAN.1Æ processo de gestão: organizar, monitorar e controlar a execução de qualquer processo ou função dentro da organização para garantir a satisfação de seus objetivos e dos objetivos de negócio da organização z Planejamento das atividades e dos recursos necessários z Análise da viabilidade de se atingir os objetivos associando às restrições técnicas, de custo e de prazo z Categoria MAN MAN.2Æ processo de gestão de projeto: identificar, estabelecer, coordenar e monitorar atividades, tarefas e recursos necessários para que um projeto produza serviços ou produtos de acordo com requisitos especificados z Definição do contexto de trabalho z Realização de análise de viabilidade z Produção de estimativas de recursos e esforço necessário para realização das tarefas z Categoria MAN MAN.3Æ processo de gestão da qualidade: monitorar a qualidade dos produtos e serviços do projeto e garantir a satisfação do cliente z Estabelecimento de metas conforme necessidades explícitas e implícitas dos clientes z Definição de pontos intermediários de verificação z Estabelecimento de uma estratégia contendo práticas de verificação e de garantia de qualidade, monitorando os resultados, comparando-os com as metas estabelecidas e coordenando as correçãoes necessárias z Categoria MAN MAN.4Æ processo de gestão de risco: identificar, analisar, priorizar e monitorar riscos continuamente, desenvolvendo planos de contingência para os mais críticos z Níveis organizacionais e de projeto z Definição de uma estratégia de gestão de riscos z Monitoramento contínuo dos riscos z Análise e priorização dos riscos z definição de métricas quantitativas de risco (evolução e variação) z Planejamento e execução de planos de contingência para prevenção de problemas 8
z Categoria ORG z ORG: processos associados às atividades gerais da organização, desde os objetivos do negócio até a gestão de recursos humanos ORG.1Æ processo de alinhamento gerencial: assegurar que os indivíduos na organização conheçam e entendam o seu papel e trabalhem para alcançar os objetivos de negócio da empresa, e também, compreendam a visão da empresa e sua missão z Categoria ORG ORG.2Æ processo de melhoria: estabelecer, medir, controlar e aperfeiçoar os processos do ciclo de vida de software z Processo para o estabelecimento de processos z Processo para a avaliação de processos z Processo de melhoria de processos z Categoria ORG ORG.3Æ processo de gestão de recursos humanos: prover para organização indivíduos capacitados para exercer os seus papéis, como indivíduos e em grupo z Avaliação periódica da necessidade de treinamento z Verificação da necessidade de recrutamento e contratação z Apoio à interação produtiva e hamônica entre grupos z Avaliação do desempenho dos profissionais da organização z Categoria ORG ORG.4Æ processo de infra-estrutura: manter de forma estável e confiável a infra-estrutura necessária para apoiar a execução de outros processos z A infra-estrutura inclui: hardware, software, métodos, ferramentas, técnicas, padrões e facilidade para o o desenvolvimento, operação e manutenção z Categoria ORG ORG.5Æ processo de medida: coletar e analisar dados relacionados aos produtos desenvolvidos e processos implementados na organização, apoiar a sua gestão e demonstrar de forma objetiva a qualidade dos produtos z Categoria ORG ORG.6Æ processo de reuso: promover e facilitar o reuso de produtos de trabalho de software novos ou existentes z Desenvolvimento de estratégia de reuso z Identificação de atividades relacionadas z Estabelecimento de infra-estrutura de apoio (rede de computadores, repositórios e gestão de configuração) 9
processo processo descrição dos atributos de processo z Estabelece uma escala de capacidade de processo z Seis níveis crescentes z Roteiro claro para orientar a melhoria de um processo z Medida de capacidade atributos de processo z Nível 0: processo incompleto Processo não implementado Processo não gera os produtos esperados Não há atributos de processo z Nível 1: processo executado Processo consegue alcançar os objetivos de alguma forma Processo gera os produtos esperados Atributo: z PA 1.1 Æ atributo de execução de processo: transformação de produtos de entrada em produtos de saída e os resultados esperados do processo são alcançados z Nível 2: processo gerenciado Processo executado de modo planejado, controlado, acompanhado, verificado e corrigido z PA 2.1 Æ atributo de execução de processo: mede até que ponto o processo é gerenciado para produzir os produtos que satisfazem ao seu objetivo Características: objetivos do processo em termos de qualidade, prazo e uso de recursos identificados, atribuição de responsabilidade pelo produto de trabalho feita, execução do processo é gerenciada z Nível 2: processo gerenciado z PA 2.2 Æ atributo de gestão dos produtos de trabalho: mede até que ponto os produtos de trabalho são documentados, controlados e verificados Características: requisitos dos produtos de trabalho documentados, requisitos para documentação e controle de produtos de trabalho definidos, dependências entre produtos de trabalho estão definidas, os produtos de trabalho têm suas mudanças controladas e são distribuídos em baselines, os produtos são verificados 10
z Nível 3: processo estabelecido Processo executado e gerenciado, é definido com base em princípios de engenharia de software z PA 3.1 Æ atributo de definição de processo: mede até que ponto o processo é definido com base em um processo padronizado Características: existe um processo padronizado na empresa, no qual as adaptações podem ser feitas; o processo é executado conforme um processo padronizado ou adaptado de acordo com orientações para adaptações; dados históricos do processo são coletados para auxiliar na compreensão do comportamento estatístico do processo; a experiência acumulada é usada para refinar o processo z Nível 3: processo estabelecido z PA 3.2 Æ atributo de recursos de processo: mede até que ponto o processo faz uso de recursos humanos e materiais para ser executado com sucesso Características: os papéis, responsabilidades e competências necessárias para execução do processo são identificados e documentados; a infra-estrutura necessária para a execução do processo é identificada e documentada; os recursos necessários são alocados e utilizados na execução do processo z Nível 4: processo previsível Processo executado, gerenciado e definido, é executado dentro de limites quantitativos bem definidos z PA 4.1 Æ atributo de medida: mede até que ponto métricas e objetivos de processo/produto são usados para assegurar que a execução do processo é efetiva, alcançando os objetivos de negócio da empresa Características:métricas são identificadas e coletas; as tendências observadas são analisadas; a capacidade de processo é medida z Nível 4: processo previsível z PA 4.2 Æ atributo de controle de processo: mede até que ponto o processo é controlado por intermédio da coleta, análise e uso de medidas para servir de base para ações corretivas, quando necessário Características: técnicas de medida são estabelecidas; características de produto e processo são medidas e usadas como insumo para permitir o controle de processo dentro de limites de variabilidade; o processo é gerenciado de forma quantitativa z Nível 5: processo em otimização Processo executado, gerenciado, definido e executado dentro de limites quantitativos, pode ser mudado e evoluído de maneira dinâmica e sob controle z PA 5.1 Æ atributo de mudança de processo: mede até que ponto mudanças na definição, gerência e execução do processo são controladas Características: impacto de mudança versus objetivos do processo e de seus produtos é avaliado; mudanças realizadas de forma controlada e prevenida; eficácia das mudanças é medida em relação ao planejado z Nível 5: processo em otimização z PA 5.2 Æ atributo de melhoria contínua: mede até que ponto as mudanças de processo contribuem para melhoria contínua Características: metas de melhoria de processo são estabelecidas conforme objetivos de negócio; possíveis fontes de risco e de problemas são identificadas; estratégia de melhoria contínua é estabelecida 11
Mecanismos de Pontuação z Baseia-se na verificação do grau de satisfação dos atributos de processo z Escala ordenada de quatro valores: N (not achieved) ou não atendido: 0% a 15% P (partially achieved) ou parcialmente atendido: 16% a 50% L (largely achieved) ou largamente atendido: 51% a 85% F (fully achieved) ou totalmente atendido: 86% a 100% Nível de capacidade z Processo pontuado em determinado nível se todos os atributos de processo dos níveis inferiores estiverem totalmente atendidos e que os atributos de processo desse nível sejam pelo menos largamente atendidos Nível de capacidade Perfil de nível de capacidade por projeto z Exemplo: PA 1.1 F PA 3.2 P PA 2.1 F PA 4.1 L PA 2.2 L PA 4.2 L PA 3.1 F PA 5.1 N Qual o nível desse processo? Perfil de nível de capacidade por projeto z Situação dos processos ENG1.1, ENG 1.2, ENG 1.3 e ENG 1.4 em vários projetos de uma organização 40% dos projetos têm o processo em ENG 1.3 no nível 2 20% dos projetos têm o processo em ENG 1.4 no nível 1, 70% no nível 2 e 10% no nível 3 Evoluções recentes z Foram detectados alguns problemas no TR (Technical Report) z Nova estrutura Prevê a redução do número de partes de nove para cinco z Parte 1: conceitos e vocabulário z Parte 2: realização de uma avaliação z Parte 3: guia para a realização de uma avaliação z Parte 4 guia para a utilização dos resultados de uma avaliaçao z Parte 5 um modelo-exemplo para avaliação Remoção da dimensão de processos 12