PSP Personal Software Process Maria Cláudia F. P. Emer
PSP: Personal Software Process Já foram vistas ISO/IEC 9126 foco no produto ISO 9001 e CMM foco no processo de desenvolvimento Critica a essas abordagens Difícil aplicação em pequenas empresas ou no nível individual
PSP: Personal Software Process Surgimento do PSP SEI (Software Engineering Institute), por Watts Humphrey Objetivo ajudar as pessoas a serem melhores engenheiros de software
PSP: Personal Software Process Visa melhorar, no nível pessoal: Capacidade de planejamento Acompanhamento Qualidade dos resultados Benefícios Melhoria de produtividade Melhoria do perfil de qualidade dos produtos
Os quatro níveis do PSP
PSP0: Processo referencial (Baseline process) Estabelecimento de práticas de medidas Formatos de relatórios base para melhoria contínua pessoal
PSP0: Processo referencial (Baseline process) 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 Práticas de planejamento Relatório de teste Práticas de estimativa de tamanho e recurso
PSP1: Processo de planejamento pessoal PSP1.1: Planejamento de tarefas Elaboração de cronogramas O planejamento no nível pessoal permite: Melhor compreensão do tamanho do programa e tempo gasto no seu desenvolvimento Assumir compromissos com certeza de seu cumprimento Organizar o trabalho Acompanhar melhor o status do desenvolvimento
PSP2: Processo de gestão pessoal de qualidade Gerenciamento dos próprios erros 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 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 Subdividir o programa em módulos Desenvolvimento incremental Cada módulo é um ciclo completo de design, codificação e teste (PSP2) Controle de qualidade de cada módulo Uso de relatórios Testes de regressão
Utilização do PSP 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 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 PSP foi criado a partir do CMM 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 SPICE Software Process Improvement and Capability determination Nome dado ao projeto de elaboração da futura norma ISO/IEC 15504 Surgiu pela necessidade de uma norma de avaliação de processo de software
SPICE ISO/IEC 15504 Objetivo: Ser mais geral e abrangente que modelos existentes Ser mais específica que a ISO 9001 É dividida em duas dimensões: Processo Capacidade de processo
Documentos que formam o SPICE
Uso da ISO/IEC 15504 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 Melhoria de processo
Uso da ISO/IEC 15504 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 Determinação da capacidade
Estrutura do Modelo de Referência Dimensão de processo Processos de desenvolvimento são vistos conforme a norma ISO/IEC 12207 (ciclo de vida de software) 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
Dimensão de processos Três agrupamentos básicos Processos primários: categorias de engenharia de software e de ralação cliente fornecedor Processo de apoio: categoria de processos de apoio Processos organizacionais: categorias de processos de gestão e processos organizacionais
Dimensão de processos Cinco categorias de processos CUS: cliente fornecedor (customer supplier) ENG: engenharia de software (engineering) SUP: apoio (support) MAN: gestão (management) ORG: organizacionais (organization)
Dimensão de processos primários
Dimensão de processos Processos primários Categoria CUS 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 Preparação para aquisição Seleção do fornecedor Monitoramento do fornecedor aceitação
Dimensão de processos Processos primários Categoria CUS CUS.2 processo de fornecimento: fornecimento do software para o cliente, satisfazendo suas necessidades Preparação de um contrato Entrega Instalação do produto
Dimensão de processos Processos primários Categoria CUS CUS.3 elicitação de requisitos: indica coletar, processar, controlar e acompanhar os requisitos do cliente Mecanismos de comunicação com o cliente Mecanismos de controle de mudanças de requisitos
Dimensão de processos Processos primários 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 Processo de uso operacional Processo de suporte ao usuário
Dimensão de processos Processos primários Categoria ENG 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 Processo de análise de requisitos do sistema Processo de análise de requisitos de software
Dimensão de processos Processos primários Categoria ENG ENG.1 continuação Processo de projeto de software Processo de construção de software Processo de integração de software Processo de teste de software Processo de integração e teste de sistema
Dimensão de processos Processos primários 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
Dimensão de processos Processos apoio
Dimensão de processos Processo de apoio Categoria SUP 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 Elaboração, controle, manutenção, revisão, aprovação e publicação de documentos e seu acesso
Dimensão de processos Processo de apoio Categoria SUP SUP.2 gestão de configuração: estabelecer e manter a integridade de todos os produtos de trabalho de algum processo ou do projeto Estratégia de gestão da configuração Identificação de itens de configuração Controle de acesso e de mudanças de itens Registro da situação de todos os itens Controle do armazenamento e manuseio desse registro
Dimensão de processos Processo de apoio Categoria SUP 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 planos e regras estabelecidos Estabelecimento de procedimentos para o tratamento de desvios encontrados em relação as regras, procedimentos e padrões Pode fazer uso de resultados de processos de verificação, validação, revisão conjunta, auditoria e resolução de problemas Os envolvidos com a garantia de qualidade devem ter autonomia na execução de suas tarefas
Dimensão de processos Processo de apoio Categoria SUP 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 Definição de uma estratégia de verificação Definição de critérios de verificação A verificação deve assegurar que os defeitos encontrados serão removidos e que os resultados serão disponibilizados para elementos relevantes Processo relacionado com os processos ENG1.6 e ENG1.7
Dimensão de processos Processo de apoio Categoria SUP 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 Definição de uma estratégia de validação Definição de critérios de validação 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 Processo relacionado ao processo ENG1.7
Dimensão de processos Processo de apoio Categoria SUP SUP.6 processo de revisão conjunta: permitir ao cliente a visibilidade do andamento do desenvolvimento quando comparado ao especificado no contrato Aspectos técnicos e administrativos Realização de revisões periódicas da situação de produtos e atividades por todas as partes interessadas em datas preestabelecidas Solução de todas as pendências, problemas e desvios detectados
Dimensão de processos Processo de apoio Categoria SUP SUP.7 processo de auditoria: determinar a conformidade de produtos identificados e atividades com planos, requisitos e com o contrato Definição da estratégia de programação da auditoria Especificação dos itens que serão auditados e por quais regras O pessoal que conduz a auditoria deve ser independente àquele que executa o desenvolvimento Os problemas detectados devem ser comunicados aos responsáveis para sua correção
Dimensão de processos Processo de apoio Categoria SUP 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
Dimensão de processos Processos organizacionais
Dimensão de processos Processos organizacionais Categoria MAN 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 Planejamento das atividades e dos recursos necessários Análise da viabilidade de se atingir os objetivos associando às restrições técnicas, de custo e de prazo
Dimensão de processos Processos organizacionais 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 Definição do contexto de trabalho Realização de análise de viabilidade Produção de estimativas de recursos e esforço necessário para realização das tarefas
Dimensão de processos Processos organizacionais 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 Estabelecimento de metas conforme necessidades explícitas e implícitas dos clientes Definição de pontos intermediários de verificação 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ções necessárias
Dimensão de processos Processos organizacionais 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 Níveis organizacionais e de projeto Definição de uma estratégia de gestão de riscos Monitoramento contínuo dos riscos Análise e priorização dos riscos definição de métricas quantitativas de risco (evolução e variação) Planejamento e execução de planos de contingência para prevenção de problemas
Dimensão de processos Processos organizacionais Categoria ORG 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
Dimensão de processos Processos organizacionais Categoria ORG ORG.2 processo de melhoria: estabelecer, medir, controlar e aperfeiçoar os processos do ciclo de vida de software Processo para o estabelecimento de processos Processo para a avaliação de processos Processo de melhoria de processos
Dimensão de processos Processos organizacionais 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 Avaliação periódica da necessidade de treinamento Verificação da necessidade de recrutamento e contratação Apoio à interação produtiva e harmônica entre grupos Avaliação do desempenho dos profissionais da organização
Dimensão de processos Processos organizacionais 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 A infra estrutura inclui: hardware, software, métodos, ferramentas, técnicas, padrões e facilidade para o o desenvolvimento, operação e manutenção
Dimensão de processos Processos organizacionais 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
Dimensão de processos Processos organizacionais Categoria ORG ORG.6 processo de reuso: promover e facilitar o reuso de produtos de trabalho de software novos ou existentes Desenvolvimento de estratégia de reuso Identificação de atividades relacionadas Estabelecimento de infra estrutura de apoio (rede de computadores, repositórios e gestão de configuração)
Dimensão de capacidade de processo Estabelece uma escala de capacidade de processo Seis níveis crescentes Roteiro claro para orientar a melhoria de um processo Medida de capacidade atributos de processo
Dimensão de capacidade de processo descrição dos atributos de processo
Dimensão de capacidade de processo Níveis Nível 0: processo incompleto Processo não implementado Processo não gera os produtos esperados Não há atributos de processo
Dimensão de capacidade de processo Níveis Nível 1: processo executado Processo consegue alcançar os objetivos de alguma forma Processo gera os produtos esperados Atributo: 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
Dimensão de capacidade de processo Níveis Nível 2: processo gerenciado Processo executado de modo planejado, controlado, acompanhado, verificado e corrigido Atributos: 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
Dimensão de capacidade de processo Níveis Nível 2: processo gerenciado Atributos: 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
Dimensão de capacidade de processo Níveis Nível 3: processo estabelecido Processo executado e gerenciado, é definido com base em princípios de engenharia de software Atributos: 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
Dimensão de capacidade de processo Níveis Nível 3: processo estabelecido Atributos: 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 infraestrutura 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
Dimensão de capacidade de processo Níveis Nível 4: processo previsível Processo executado, gerenciado e definido, é executado dentro de limites quantitativos bem definidos Atributos: 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
Dimensão de capacidade de processo Níveis Nível 4: processo previsível Atributos: 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
Dimensão de capacidade de processo Níveis 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 Atributos: 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
Dimensão de capacidade de processo Níveis Nível 5: processo em otimização Atributos: 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
Mecanismos de Pontuação Baseia se na verificação do grau de satisfação dos atributos de processo 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 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 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
Perfil de nível de capacidade por projeto 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 Foram detectados alguns problemas no TR (Technical Report) Nova estrutura Prevê a redução do número de partes de nove para cinco Parte 1: conceitos e vocabulário Parte 2: realização de uma avaliação Parte 3: guia para a realização de uma avaliação Parte 4 guia para a utilização dos resultados de uma avaliação Parte 5 um modelo exemplo para avaliação Remoção da dimensão de processos