Qualidade de Software
CMMI
Marcelo Marinho
marinho@deinfo.ufrpe.br
FAA iCMM Software CMM Systems Security Engr CMM Systems Engr CMM People CMM SE CM IPD CMM Software Acq CMM EIA 731 • Diferentes estruturas, formatos, termos, maneiras de medir maturidade • Causa confusão, especialmente quando mais de um modelo é utilizado • Difícil de integrar num único programa de melhoria
Motivação
• Proliferação de Modelos e Padrões em
diversas áreas
Objetivos do CMMI
• Eliminar inconsitências • Reduzir duplicações
• Aumentar entendimento
• Fornecer terminologia comum • Prover estilo consistente
• Assegurar consistência com a norma ISO 15504
Representações
• Contínua
– Níveis de Capacidade
– Agrupamento de Áreas de Processo por Categoria
– Avaliação do Nível da Capacidade das Áreas de Processo individuais
• Por Estágios
– Níveis de Maturidade
– Agrupamento de Áreas de Processo por Nível
– Avaliação do Nível de Maturidade da Organização como um todo
Comparando as Representações
Staged ML 1 ML2 ML3 ML4 ML5. . .para um conjunto de áreas de processo estabelecidas pela organização. PA PA Process Are a Ca pa bility PA Continuous
. . .para uma única área de
processo ou um conjunto de áreas de processo.
Por que duas representações?
• Escolher uma única abordagem para representação tornou-se “muito difícil”;
• Ficou acordado que inicialmente seriam abordadas duas representações do modelo com conteúdos
equivalentes;
• Herança de Modelos
– Software CMM – Staged – SECM – Continuous
– IPD CMM – Hybrid
• Proponentes de cada representação participaram do time de desenvolvimento do CMMI.
Representações - Vantagens
• Contínua
– Fornece maior flexibilidade focando em áreas de processo específicas de acordo com metas e
objetivos de negócio
– Permite a comparação de áreas de processo entre diferentes organizações
– Foco bem definido nos riscos específicos de cada área de processo
Representações - Vantagens
• Por estágios:
– Fornece uma rota de implementação através de:
• grupos de área de processo • implementação em seqüência
• cada nível funciona como a fundação para o próximo nível
– Estrutura familiar para aqueles que estavam migrando do SW-CMM
– Atribui uma nota de classificação do nível de maturidade em que a organização se encontra através dos resultados das avaliações:
• permitindo dessa forma a comparação de forma direta entre as organizações
Componentes do Modelo
• Os componentes do modelo são os mesmos para a representação contínua e por estágios
• São eles:
– áreas de processo, metas específicas, práticas específicas, metas genéricas, práticas genéricas, produtos de trabalho típicos, sub-práticas, amplificações de disciplinas,
Dimensões para Medição do
Processo de Melhoria
• Níveis de Capacidade (representação
contínua)
– Um nível de capacidade descreve a capacidade de uma área de processo;
– Existem quatro níveis de capacidade;
– Cada nível representa uma camada na base para a melhoria contínua do processo;
– Assim, níves de capacidade são cumulativos, ou seja, um nível de capacidade mais alto inclui os atributos dos níveis mais baixos.
Dimensões para Medição do
Processo de Melhoria
• Níveis de Capacidade
3 Defined 2 Managed 1 Performed0 Incomplete Um processo que não está sendo executado ainda, ou está sendo parcialmente
executado. Uma ou mais metas específicas da área de processo não são satisfeitas. Um processo executado é um processo que satisfaz todas as metas específicas de uma área de processo.
Um processo gerenciado é planejado e sua execução é acompanhada através do planejamento inicial.
Um processo adaptado a partir do conjunto de processos padrões da organização de acordo com as diretrizes definidas pela organização.
Dimensões para Medição da
Melhoria do Processo
• Níveis de Maturidade (representação por
estágio)
– Grau de melhoria de processo (maturidade organizacional) através de um conjunto pré-definido de áreas de processo
– Um nível de maturidade provê a fundação necessária para a implementação efetiva dos processos dos níveis de maturidade superiores
– Processos de um nível de maturidade superior podem ser
implementados em níveis inferiores com o risco de não serem aplicados de forma consistente em períodos de crise
– Um nível de maturidade define um caminho para tornar a organização mais madura
Processo imprevisível, pouco controlado Processo caracterizado para projetos e frequentemente reativo Processo proativo e caracterizado para a organização Processo medido e controlado Foco na melhoria do processo Quantitatively Managed Performed Managed Defined 1 2 3 4 5 Optimizing
Dimensões para Medição da
Melhoria do Processo
O Nível 1 de Maturidade
Nível 1 – Executado
• Processos executados freqüentemente de maneira ad-hoc
• Poucos processos definidos, sucesso dependente de iniciativas individuais
Nível 1 - Executado
• O processo utilizado é uma caixa preta
• Dificuldade em determinar progresso do projeto • Requisitos fluem para dentro
• Um produto de software é (normalmente) produzido através de algum processo disforme.
• O produto flui para fora e (espera-se que) funciona
O Nível 1 de Maturidade
O Nível 2 de Maturidade
Nível 2 – Gerenciado
• Gerência de projetos disciplinada
• Políticas organizacionais estabelecidas e institucionalizada nos projetos
• Planos e processos do projeto são documentados e seguidos
• Existência de recursos apropriados
• Responsabilidades e autoridades são atribuídas
• Planejamento e gerenciamento de novos projetos pode ser baseado na experiência de projetos similares
O Nível 2 de Maturidade
Nível 2 - Gerenciado
• A disciplina faz com os processos sejam mantidos em tempos de “crise”
• Os status das atividades e dos produtos de trabalho são visíveis à gerência em etapas pré-definidas
• Os requisitos fluem para dentro e o produto flui para fora e (normalmente) funciona
O Nível 2 de Maturidade
Nível 2 - Gerenciado
• Medidas são coletadas e analisadas para se
entender e gerenciar as atividades e resultados do projeto
– Limites são definidos, mas sem a utilização de técnicas estatísticas
O Nível 3 de Maturidade
Nível 3 - Definido
• Processo para desenvolvimento de software é
estabelecido, padronizado e documentado pela
organização (adaptado quando necessário)
• Todos os projetos utilizam uma versão deste processo, personalizada para o tipo do projeto a ser desenvolvido • Atividades de gerenciamento e engenharia de software
O Nível 3 de Maturidade
Nível 3 - Definido
• Funções e responsabilidades no processo são bem entendidas
• A produção do produto de software é visível através do processo de software
• Papéis, responsabilidades e interação entre atividades são bem entendidos por todos
Nível 4 – Gerenciado Quantitativamente
• O processo de software é previsível e gerenciado quantitativamente (estável)
• Métodos estatísticos e quantitativos são utilizados no nível de projetos e da organização para:
– Entender os resultados de performance, a qualidade do produto e do serviço de projetos passados
– Prever a performance e a qualidade do produto e dos serviços de projetos futuros
• Base de dados organizacional para coletar e analisar dados dos projetos
O Nível 4 de Maturidade
Nível 4 – Gerenciado Quantitativamente
• Utilização de objetivos quantitativos, para atender as necessidades dos clientes, usuários finais e da organização
• Atenção: A implementação do nível 4 deve ser
considerada antecipadamente
– As medições requeridas no nível 4 podem (ou não) ser diferentes das medições requeridas desde o nível 2
– As análises requeridas no nível 4 demandam uma grande base de dados de medições
– É indicado um alinhamento das atividades do nível três com os objetivos futuros do nível 4
O Nível 4 de Maturidade
Nível 4 – Gerenciado Quantitativamente
• Progresso e problemas são medidos
• A gerência tem bases objetivas para tomada de decisão
O Nível 5 de Maturidade
Nível 5 – Em Otimização
• No nível 4 a análise é direcionada às causas especiais de variação do processo => No nível 5, a análise é
direcionada às causas comuns de variação do processo
• As medições são utilizadas para:
– Selecionar melhorias e inovações, estimar seus custos e acompanhar os gastos reais
• Os processo definidos na organização são alvos das atividades de melhoria
O Nível 5 de Maturidade
Nível 5 – Em Otimização
• Estabelecimento e acompanhamento de objetivos
quantitativos para a melhoria de processos
“A Melhoria de processo contínua e ‘mensurável’ é um estilo de vida...”
Áreas de Processo
• Área de Processo (PA): é um conjunto de práticas relacionadas, que quando implementadas de forma coletiva, satisfazem um conjunto de metas consideradas importantes e críticas para caracterizar a melhoria na área de processo em questão
• Em ambas as representações, na contínua e na por estágios, as áreas de processo são as mesmas
Áreas de Processo -
Representação por Estágios
Staged Grouping Acronyms Processes Areas Maturity Level 2 REQM
PP PMC SAM MA PPQA CM Requirements Management Project Planning
Project Monitoring and Control Supplier Agreement Management Measurement and Analysis
Process and Product Quality Assurance Configuration Management Maturity Level 3 RD TS PI VER VAL OPF OPD +IPPD OT IPM +IPPD RSKM DAR Requirements Development Technical Solution Product Integration Verification Validation
Organizational Process Focus
Organizational Process Definition + IPPD Organizational Training
Integrated Project Management +I PPD Risk Management
Decision Analysis and Resolution Maturity Level 4 OPP
QPM
Organizational Process Performance Quantitative Project Management Maturity Level 5 OID
CAR
Organizational Innovation and Deployment Causal Analysis and Resolution
Áreas de Processo -
Representação Contínua
Continuous Grouping
Acronyms Processes Areas Process Management OPF OPD +IPPD OT OID
Organizational Process Focus
Organizational Process Definition + IPPD Organizational Training
Organizational Innovation and Deployment
Project Management PP PMC SAM IPM +IPPD RSKM QPM Project Planning
Project Monitoring and Control Supplier Agreement Management Integrated Project Management +I PPD Risk Management
Quantitative Project Management
Engineering OPP REQM RD TS PI VER VAL
Organizational Process Performance Requirements Management Requirements Development Technical Solution Product Integration Verification Validation Support CM PPQA MA DAR CAR Configuration Management
Process and Product Quality Assurance Measurement and Analysis
Decision Analysis and Resolution Causal Analysis and Resolution
Metas e Práticas - Específicas e
Genéricas
• Metas Específicas e Práticas Específicas
– aplicam-se a uma Área de Processo particular – relacionadas à dimensão do processo
– descrevem o que deve ser implementado para satisfazer a área de processo
– uma prática específica representa uma atividade considerada importante no atendimento da meta específica associada à mesma
• Metas Genéricas e Práticas Genéricas
– aplicam-se a todas as áreas de processo
– relacionadas à dimensão da capacidade ou maturidade
– são chamadas genéricas por que são as mesmas para todas as áreas de processo
– Uma para cada nível de maturidade ou capacidade
– Na representação por estágios apenas 4 se aplicam, pois o nível 1 de maturidade não possui meta genérica
Exemplo: Meta Específica e Prática
Específica
• Meta Específica (da AP Gerenciamento de
Requisitos)
– Requisitos são mantidos e refletem-se
cuidadosamente nos planos de projeto, atividades e produtos.
• Prática Específica (da AP Gerenciamento de
Requisitos)
– Manter rastreabilidade entre requisitos e fontes de requisitos.
Exemplo: Meta Genérica e Prática
Genérica
• Meta Genérica GG2 (do Nível 2 de Capacidade ou Maturidade)
– Institucionalizar um processo gerenciado.
• Prática Genérica (GP2.1) Estabelecer uma política organizacional
– Estabelecer e manter uma política organizacional para o planejamento e execução dos processos <xxx>
• Prática Genérica (GP2.2) Planejar o processo
– Estabelecer e manter o planejamento para a execução dos processos <xxx>
Estrutura do CMMI -
Representação por Estágios
Nível de Maturidade
Área de Processo Área de Processo Área de Processo
Metas Genéricas Metas Específicas
Estrutura do CMMI -
Representação Contínua
… …
Área de Processo 1 … Área de Processo n
Meta Específica 1 Prática Específica 1 Prática Específica n Meta Específica n Meta Genérica 1 Meta Genérica 2 Meta Genérica 3 Práticas Genéricas Nível 1 Práticas Genéricas Nível 2 Práticas Genéricas Nível 3
Equivalência entre as
Representações
Requirements Development Technical Solution Product Integration Verification ValidationOrganizational Process Focus Organizational Process Definition Organizational Training
Integrated Project Management Risk Management
Decision Analysis and Resolution
RD TS PI VER VAL OPF OPD OT IPM RSKM DAR
Considerações Finais
• O CMMI foi construído sobre a estrutra do CMM, o modelo de melhoria de processo mais difundido e
utilizado na comunidade de software
– É mais abrangente, engloba diversas disciplinas em um único modelo, com uma única estrutura, metodologia comum de avaliação,
nomenclatura padrão…
– Pode ser utilizado no desenvolvimento de produtos, serviços e manutenção
– Reune melhores práticas de outros modelos – Hoje está na versão 1.3
Considerações Finais
• Tempo médio para Implantação do CMMI
– Da fase de inicio do processo de melhoria ao processo de avaliação oficial => 1 a 2 anos (por nível, no modelo em estágios)
• Etapas para adoção:
– Diagnóstico inicial
– Definição do plano de ação de melhoria de processos – Definição dos processos de acordo com o modelo
– Institucionalização dos processos – Mini Avaliação
– Ajustes nos processos – Avaliação oficial