CMM Capability Maturity Model: : Um Modelo para Melhoria do Processo (de Produção) de Software Odisnei Galarraga odisnei@atlas.unisinos.br 8/3/2002 Pró-Reitoria de Administração - Diretoria de Serviços de Informação 1
Objetivos z Explorar os conceitos básicos de qualidade de software z Ter uma visão geral do Capability Maturity Model (CMM) quanto a filosofia, estrutura e componentes do modelo z Rápido comparativo com normas ISO equivalentes/complementares 8/3/2002 2
Tópicos z Origem do CMM z Conceitos básicos de Qualidade de Software z CMM - Estrutura e seus componentes z Modelo IDEAL z Team Software Process (TSP) & Personal Software Process (PSP) 8/3/2002 3
Tópicos z Últimas mudanças (CMMs) z CMM x ISO z Futuro z Para mais informações... 8/3/2002 4
Origem Software Engineering Institute (SEI) Carnegie Mellon University Pittsburgh - PA Baseado nas idéias de Watts S. Humphrey MATURIDADE CAPACIDADE DO PROCESSO 8/3/2002 5
Juntando as partes B A C D Procedimentos e métodos definindo o relacionamento das tarefas Processo Pessoas com habilidades, treinamento e motivação Ferramentas e equipamentos 8/3/2002 6
Previsibilidade Melhorando a previsibilidade Probabilidade Alvo Probabilidade Alvo Medida de tempo/custo/qualidade/... Medida de tempo/custo/qualidade/... 8/3/2002 7
Controle Probabilidade Alvo Melhorando o controle Probabilidade Medida de tempo/custo/qualidade/... Alvo Medida de tempo/custo/qualidade/... 8/3/2002 8
Efetividade Melhorando a efetividade Probabilidade Alvo Probabilidade Alvo Medida de tempo/custo/qualidade/... Medida de tempo/custo/qualidade/... 8/3/2002 9
Níveis de maturidade Processo disciplinado Processo previsível Processo padronizado, consistente 2 3 Melhoria contínua Repetível 4 Definido 5 Gerenciado Otimização 1 Inicial 8/3/2002 10
Visibilidade 4 In Out 3 In Out 2 In Out 1 In Out 8/3/2002 11
Visibilidade 5 In Out 8/3/2002 12
Nível de maturidade = capacidade Probabilidade 2 Alvo N+a Tempo/$/... Os planos baseados na performance do passado são mais realistas em organizações Nível 2 Probabilidade 1 Alvo N Tempo/$/... O Cronograma e a previsão de custos normalmente estouram em organizações Nível 1 8/3/2002 13
Nível de maturidade = capacidade Probabilidade Probabilidade 3 2 Alvo N-x Alvo N+a Tempo/$/... Tempo/$/... Com processos bem definidos, a performance aumenta em organizações Nível 3 Os planos baseados na performance do passado são mais realistas em organizações Nível 2 8/3/2002 14
Nível de maturidade = capacidade Probabilidade 4 Alvo N-y Tempo/$/... Com base na análise quantitativa do processo e do produto, a performance continua a evoluir em organizações Nível 4 Probabilidade 3 Alvo N-x Tempo/$/... Com processos bem definidos, a performance aumenta em organizações Nível 3 8/3/2002 15
Nível de maturidade = capacidade Probabilidade 5 Alvo N-z Tempo/$/... A performance evolui continuamente em organizações Nível 5 Probabilidade 4 Alvo N-y Tempo/$/... Com base na análise quantitativa do processo e do produto, a performance continua a evoluir em organizações Nível 4 8/3/2002 16
Estrutura Indicam Capacidade do processo Níveis de maturidade Metas Atingem Contêm Key process areas Levam a São organizadas por Common features Contêm Implementação ou institucionalização Descrevem Key practices Atividades ou infra-estrutura 8/3/2002 17
Processo disciplinado Níveis de maturidade (vistos anteriormente) Processo previsível Processo padronizado, consistente 2 3 Melhoria contínua Repetível 4 Definido 5 Gerenciado Otimização 1 Inicial 8/3/2002 18
Estrutura Indicam Capacidade do processo Níveis de maturidade Metas Atingem Contêm Key process areas Levam a São organizadas por Common features Contêm Implementação ou institucionalização Descrevem Key practices Atividades ou infra-estrutura 8/3/2002 19
Key process areas 2 Repetível Gerenciamento de requisitos Planejamento de projeto de software Acompanhamento e supervisão de projeto de software Gerenciamento de subcontratação (terceiros) Garantia da qualidade de software Gerenciamento de configuração de software 1 Inicial 8/3/2002 20
Key process areas 3 Definido Foco nos processos da organização Definição dos processos da organização Programa de treinamento Gerenciamento integrado de software Engenharia de produto de software Coordenação interequipes Revisão por pares 2 Repetitivo 8/3/2002 21
Key process areas Gerenciado 4 Gerenciamento quantitativo dos processos Gerenciamento da qualidade de software 3 Definido 8/3/2002 22
Key process areas 5 Otimização Prevenção de defeitos Gerenciamento de mudanças tecnológicas Gerenciamento de mudanças no processo 4 Gerenciado 8/3/2002 23
Estrutura Indicam Capacidade do processo Níveis de maturidade Metas Atingem Contêm Key process areas Levam a São organizadas por Common features Contêm Implementação ou institucionalização Descrevem Key practices Atividades ou infra-estrutura 8/3/2002 24
z Nível 2 Metas: exemplo Key process area: Planejamento de projeto de software z Meta 1: Estimativas estão documentadas para uso no planejamento e acompanhamento do projeto de software z Meta 2: Atividades e compromissos do projeto de software estão planejados e documentados z Meta 3: Grupos e indivíduos envolvidos concordam com seus compromissos relativos ao projeto de software 8/3/2002 25
Estrutura Indicam Capacidade do processo Níveis de maturidade Metas Atingem Contêm Key process areas Levam a São organizadas por Common features Contêm Implementação ou institucionalização Descrevem Key practices Atividades ou infra-estrutura 8/3/2002 26
Common features z Compromisso de Executar (Commitment to Perform) z Capacidade para Executar (Ability to Perform) z Atividades Executadas (Activities Performed) z Medição e Análise (Measurement and Analysis) z Verificação da Implementação (Verifying Implementation) 8/3/2002 27
Common features z Compromisso de Executar (Commitment to Perform) Descreve as ações que a organização deve adotar para garantir que o processo está estabelecido e vai perdurar. Normalmente envolve políticas organizacionais e liderança. 8/3/2002 28
Common features z Capacidade para Executar (Ability to Perform) Descreve as pré-condições que devem existir no projeto ou organização para implementar o processo de software de forma competente. Normalmente envolve recursos, estruturas organizacionais e treinamento. 8/3/2002 29
Common features z Atividades Executadas (Activities Performed) Descreve as atividades, papéis e procedimentos necessários para implementar a key process area. Normalmente envolve estabelecer planos e procedimentos, executar o trabalho, acompanhá-lo, e tomar ações corretivas quando necessário. 8/3/2002 30
Common features z Medição e Análise (Measurement and Analysis) Descreve as práticas básicas de medição que são necessárias para determinar um status relativo ao processo. Essas medições são usadas para controlar e melhorar o processo. Normalmente inclui exemplos de medidas que poderiam ser obtidas. 8/3/2002 31
Common features z Verificação da Implementação (Verifying Implementation) Descreve as etapas para assegurar que as atividades são executadas de acordo com o processo que foi estabelecido. Normalmente abrange revisões e auditorias pela gerência e garantia da qualidade de software. 8/3/2002 32
Estrutura Indicam Capacidade do processo Níveis de maturidade Metas Atingem Contêm Key process areas Levam a São organizadas por Common features Contêm Implementação ou institucionalização Descrevem Key practices Atividades ou infra-estrutura 8/3/2002 33
Key practices: : exemplo z Nível 2 Key process area: Acompanhamento e supervisão de projeto de software z Common feature: Medição e análise Key practice: São feitas e usadas medições para determinar o status das atividades de acompanhamento e supervisão de software 8/3/2002 34
Estrutura: visão geral CMM 5 níveis de maturidade 1 2 3 4 5 0-7 KPAs por nível de maturidade 5 common features por KPA com 1-n práticas cada 0 6 7 2 3 KPA KPA KPA KPA KPA KPA 3 3 3 3 3 1-n 1-n 1-n 1-n 1-n Meta Atividades que implementam os requisitos processuais e de infra-estrutura para institucionalizar o processo = 18 KPAs = 52 metas 2-4 metas por KPA = 316 key practices 8/3/2002 35
Abordagem IDEAL Leveraging Acting Initiating Diagnosing Establishing 8/3/2002 36
Motivos... z z z z z Initiate (Iniciar) Diagnose (Diagnosticar) Establish (Estabelecer) Act (Agir) Leverage (Influenciar) Uma jornada de 10.000 milhas começa com nada mais do que um simples passo. Se você não sabe onde está, um mapa não vai ajudá-lo. Se você não sabe para onde está indo, qualquer caminho serve. Se você não confere a rota, não saberá quando estiver fora do curso. Se os pioneiros não relatam que o caminho é seguro, os colonizadores não vão segui-los. 8/3/2002 37
Modelo IDEAL Learning Propose Future Actions Analyze and Validate Implement Solution Refine Solution Stimulus for Change Set Context Build Sponsorship Charter Infrastructure Acting Initiating Diagnosing Characterize Current & Desired States Develop Recommendations Pilot/Test Solution Create Solution Set Priorities Develop Approach Plan Actions 8/3/2002 38 Establishing
Team Software Process & Personal Software Process CMM TSP PSP 8/3/2002 39
Últimas mudanças ATÉ AGORA: CMM (versão 1.1) EM ELABORAÇÃO: SW-CMM (versão 2.0) P-CMM SA-CMM SE-CMM IPD-CMM CMMI 8/3/2002 40
Os CMMs z CMMI: CMM Integration z SW-CMM: Capability Maturity Model for Software z P-CMM: People Capability Maturity Model z SA-CMM: Software Acquisition Capability Maturity Model 8/3/2002 41
Os CMMs z SE-CMM: Systems Engineering Capability Maturity Model z IPD-CMM: Integrated Product Development Capability Maturity Model 8/3/2002 42
CMMI P-CMM CMMI SE-CMM SW-CMM SA-CMM IPD-CMM 8/3/2002 43
TQM e os CMMs Organização Software Projeto A Projeto B Projeto C Projeto X Sistema Hardware Aquisição Fornecedor SE-CMM SA-CMM TQM Pessoas Software SW-CMM P-CMM 8/3/2002 44
CMM x ISO/IEC 15504 1 CMM (1.1) 2 3 KPA13 KPA9 KPA6 KPA5 KPA3 4 KPA15 KPA12 KPA8 KPA2 5 KPA18 KPA17 KPA16 KPA11 KPA4 KPA14 KPA10 KPA7 KPA1 8/3/2002 45
CMM x ISO/IEC 15504 Níveis de Capacitação 5 4 3 2 1 0 ISO 15504 (SPICE) 2 1 A B C D E F P Processos 4 1 8/3/2002 46
ISO/IEC 15504 x 12207 Níveis de Capacitação (ISO 15504) 5 4 3 2 1 0 Harmonização 4 2 1 1 A B C D E F P Processos do Ciclo de Vida (ISO 12207) 8/3/2002 47
Futuro z SW-CMM (CMM v 2.0) compatível com a ISO 15504 z ISO 15504 harmonizada com a ISO 12207 z ISO 9000 versão 2000 harmonizada com a ISO 12207 8/3/2002 48
Para mais informações z Site do SEI/CMU - www.sei.cmu.edu z Site de José Barreto Jr. (Ceará) - www.barreto.com.br 8/3/2002 49
Bibliografia GOLDESON Dennis R. HERBSLEB James D. After the appraisal: a systematic survey of process improvement its benefits, and factors that influence success. Pittsburgh: SEI/Carnegie Mellon University, 1995. HAYES, Will. ZUBROW, Dave. Moving ou up: data and experience doing CMM-based process improvement. Pittsburgh: SEI/Carnegie Mellon University, 1995. 8/3/2002 50
Bibliografia HERBSLEB, James et al. Benefits of CMM-based Software process improvement: initial results. Pittsburgh: SEI/Carnegie Mellon University, 1994. NBR ISO/IEC 12207 Tecnologia de informação - Processos de cliclo de vida de software. Rio de Janeiro: ABNT, 1998. 8/3/2002 51
Bibliografia McFEELEY, Bob. IDEAL: a user s guide for software process improvement. Pittsburgh: SEI/Carnegie Mellon University, 1996. PAULK, Mark C. et al. The capability maturity model: guidelines for improving the software process. Pittsburgh: Addison Wesley, 1997. 8/3/2002 52
Bibliografia PAULK, Mark C. et al. Capability maturity model for software, version 1.1. Pittsburgh: SEI/Carnegie Mellon University, 1993. Introduction to the capability maturity model. Pittsburgh: SEI/Carnegie Mellon University. 8/3/2002 53
Bibliografia WINTERS, George R. Executive overview of CMM based software process improvement. SEI/Carnegie Mellon University, Pittsburgh, 1997. WINTERS, George R. Software process improvement overview. SEI/Carnegie Mellon University, Pittsburgh, 1997. 8/3/2002 54