O documento descreve o modelo Capability Maturity Model (CMM), incluindo sua história, características, níveis de maturidade, áreas-chave de processo e evolução para o CMMI. O CMM avalia a capacitação de empresas de software através de cinco níveis de maturidade dos processos, desde inicial até otimizado.
1. CMM – Capability Maturity
Model
Alef Menezes
André Teixeira
Danilo Gois
Edton Lemos
Leandro Neto
UNIVERSIDADE FEDERAL DE SERGIPE
Departamento de Computação – DCOMP
Qualidade de Software – T01 – 2016.1
Prof: José Henrique de Melo Cardoso
2. ROTEIRO
1. INTRODUÇÃO;
2. PRINCIPAIS CARACTERÍSTICAS DO CMM;
3. NÍVEIS DE MATURIDADE;
4. ÁREAS CHAVES DE PROCESSO;
5. CARACTERÍSTICAS COMUNS E PRÁTICAS BÁSICAS;
6. CONSIDERAÇÕES FINAIS E EVOLUÇÃO.
2
4. INTRODUÇÃO: O CMM
• O modelo Capability Maturity Model (CMM), ou Modelo de
Maturidade em Capacitação, é uma iniciativa do SEI (Software
Engineering Institute) e apoiado pelo DoD (Department of Defense),
para avaliar e melhorar a capacitação de empresas que produzem
software;
4
5. HISTÓRICO
• O projeto CMM foi apoiado pelo Departamento de Defesa dos EUA por
ser um grande consumidor de software e precisava de um modelo formal
que permitisse selecionar os seus fornecedores de software de forma
adequada;
• Década de 1980 como um modelo para avaliação de risco na
contratação de empresas de software;
• Avaliar os processos de desenvolvimento utilizados pelas empresas que
concorriam em licitações como indicação da previsibilidade da qualidade,
custos e prazos nos projetos contratados;
5
6. HISTÓRICO
• Embora não seja uma norma emitida por uma
Instituição Internacional (como a ISO ou IEEE),
esta norma teve uma grande aceitação mundial,
até mesmo fora do mercado americano;
• O CMM é também chamado de SW-CMM
(Software CMM);
• Divulgado a partir de 1991, tornou-se um dos
modelos de maior prestígio.
6
7. HISTÓRICO: O CMM
• Neste modelo, as organizações de software são enquadradas em
um dos cinco níveis de maturidade que são definidos;
• Essa estrutura, em níveis do CMM, está baseada nos princípios de
qualidade de produto propostos por Walter Shewart, William
Edwards Deming, Joseph Juran e Philip Crosby;
7
8. HISTÓRICO: O CMM
• É um modelo desenvolvido para aplicação
específica em software dentro de um
contexto de qualidade total (TQM – Total
Quality Management) no âmbito de uma
organização;
• Se baseia principalmente na experiência da
comunidade de software da indústria
americana e em conceitos de
gerenciamento de processos de autores
consagrados em aplicação de processos de
qualidade em outras áreas.
8
9. REPERCUSSÃO
• O modelo CMM teve repercutiu tão bem que diversos outros se
baseiam diretamente nele, como é o caso do Bootstrap e do
Trillium, e ainda influenciou fortemente outros como o SPICE.
9
10. MODELO DE MATURIDADE
• O CMM é um modelo para medição da
maturidade de uma organização no que diz
respeito ao processo de desenvolvimento e
administração de software;
• Seu objetivo é definir qual o nível de
maturidade e traçar os planos de ação para
o desenvolvimento da organização;
10
11. MODELO DE MATURIDADE
• A definição do que é “Maturidade” pode ser melhor compreendida
através da análise do quadro abaixo:
11
13. PRINCIPAIS CARACTERÍSTICAS DO CMM
Aspecto Abordado Característica do CMM
Objetivo
Determinar a capacitação da organização e
apoiar a sua evolução de acordo com os
níveis estabelecidos
Abordagem
Avaliação dos processos e enquadramento da
organização em um dos níveis de
maturidade
Organizações alvo
Organizações que necessitam de
comprovação formal de sua capacidade
Definição de processos
Estabelece 18 áreas de processos organizados
em 5 níveis crescentes de maturidade
Instrumento de Avaliação Questionário
13
15. Contextualização
• O CMM classifica as organizações em níveis de maturidade e os
dividi em 5, onde cada um possui suas características próprias;
• A divisão de níveis é feita em ordem crescente, quanto maior o
nível maior a garantia de qualidade.
15
17. Nível 1 - Inicial
• Organização imatura;
• Sem metodologia definida;
• Processo de Software desorganizado;
• Poucos ou nenhum processo definido;
• Sucesso derivado do esforço individual e
heroísmo.
17
18. Nível 1 - Inicial
• Sem garantias:
• Custo;
• Prazo e;
• Funcionalidade;
• Requisitos fluem para dentro e produto flui para fora e espera-se que
ele funcione.
18
19. Nível 2 - Repetível
• Processos básicos de gerenciamento de projeto:
• Custo, cronograma e funcionalidade;
• Sucesso ligado a sucessos anteriores (projetos similares);
• Processos caixa preta com pontos de verificação;
• Possibilidade de produção de software de qualidade.
19
20. Nível 3 - Definido
• Desenvolvimento de software de acordo com um processo bem
definido (Gerenciamento e Engenharia);
• Definição de como cada processo deve ser feito;
• Aproveitamento e adaptação do processo padrão de software da
organização para o desenvolvimento e manutenção.
20
21. Nível 4 – Gerenciado
• Realização de medições detalhadas do processo de software e
qualidade do produto;
• Processo e produto são gerenciados (entendidos e controlados)
quantitativamente;
• A gerência é capaz de prever o desempenho dentro de limites
quantificados.
21
22. Nível 5 – Otimização
• Foco na melhoria contínua do processo;
• Realimentação quantitativa do processo através de ideias e
tecnologias inovadoras;
• Mudança disciplinada é um meio de vida.
22
23. Observações
• Certificação de determinado nível só é obtida ao atingir todos os
seus objetivos;
• Poucas empresas conseguiram atingir os níveis 4 ou 5 do CMM;
23
25. ÁREAS CHAVE DE PROCESSOS (KPA’S)
• As áreas são o foco que a organização deve ter para melhorar seu
processo de desenvolvimento de software;
• O critério para que um empresa possa se qualificar em um
determinado nível de maturidade CMM, é realizar os processos
relacionados às áreas chaves daquele determinado nível.
25
26. ÁREAS CHAVE DE PROCESSOS (KPA’S)
26
Nível CMM Foco Áreas Chave do Processo
Nível 1 – Inicial Pessoas competentes e
“heróis”
27. ÁREAS CHAVE DE PROCESSOS (KPA’S)
27
Nível CMM Foco Áreas Chave do Processo
Nível 2 – Repetitivo Processos de gerenciamento de
projetos
• Gerenciamento de requisitos
• Planejamento de projeto de
software
• Acompanhamento de projeto
de software
• Gerenciamento de
subcontratos
• Qualidade assegurada de
software
• Gerenciamento de
configuração
28. ÁREAS CHAVE DE PROCESSOS (KPA’S)
28
Nível CMM Foco Áreas Chave do Processo
Nível 3 – Definido Processos de engenharia de
apoio
• Foco no processo da
organização
• Definição do processo da
organização
• Programa de treinamento
• Gerenciamento integrado do
software
• Engenharia de produto do
software
• Coordenação entre grupos
• Revisões
29. ÁREAS CHAVE DE PROCESSOS (KPA’S)
29
Nível CMM Foco Áreas Chave do Processo
Nível 4 – Gerenciado Qualidade do produto e do
processo
• Gerenciamento quantitativo
do processo
• Gerenciamento da qualidade
do software
30. ÁREAS CHAVE DE PROCESSOS (KPA’S)
30
Nível CMM Foco Áreas Chave do Processo
Nível 5 – Otimizado Melhoramento contínuo do
processo
• Prevenção de defeitos
• Gerenciamento de mudanças
tecnológicas
• Gerenciamento de mudanças
de processo
32. Características Comuns
• Itens a serem observados para verificar a implementação e
institucionalização de cada área chave de processo.
• Podem indicar se a área chave de processo é eficiente, repetível e
duradoura.
• Estabelece planos e procedimentos para desempenhar e
monitorizar o trabalho, e caso necessário tomar ações corretivas.
32
33. Características Comuns
33
Característica comum Descrição Práticas-base relacionadas
Compromisso de realizar Atitudes a serem tomadas
pela organização para
garantir que o processo se
estabeleça e seja duradouro.
Estabelecimento de políticas
de apadrinhamento de
gerente experiente.
34. Características Comuns
34
Característica comum Descrição Práticas-base relacionadas
Capacidade de realizar Pré-requisitos que devem
existir no projeto ou na
organização para
implementar o processo de
forma competente.
Alocação de recursos,
definição da estrutura
organizacional e de
treinamento.
35. Características Comuns
Característica comum Descrição Práticas-base relacionadas
Atividades realizadas Papéis e o procedimento
necessário para implementar
uma área-chave de processo.
Estabelecimento de planos e
procedimentos, realização do
trabalho, acompanhamento
do trabalho e tomada de
ações corretivas, se
necessário.
35
36. Características Comuns
Característica comum Descrição Práticas-base relacionadas
Medições e análise Necessidade de medir o
processo e analisar as
medições.
Realização de medições para
determinar o estado e a
efetividade das atividades
realizadas.
36
37. Características Comuns
Característica comum Descrição Práticas-base relacionadas
Implementação com
verificação
Passos para garantir que as
atividades são realizadas de
acordo com o processo
estabelecido.
Revisão, auditoria e garantia
de qualidade.
37
38. Práticas Base
• As práticas-base devem descrever “O que” deve ser feito e não
“como” os objetivos devem ser atingidos.
• O modelo CMM inclui um extenso documento em separado,
chamado “Práticas-base para o CMM”, que lista todas as práticas-
chave e sub-práticas para cada uma das áreas chave de processo.
38
41. Evolução do CMM
• Problemas de integração.
• Custos elevados na melhoria de processos.
• Custos elevados no treinamento do pessoal.
41
42. Modelo de Maturidade em Capacitação - Integração
• Criado para suprir os problemas do CMM.
• Aumento do foco das atividades.
• Integração dos processos existentes através de framework.
• Eliminar inconsistências.
• Reduzir duplicações.
42
43. CMM vs CMMI
• Representação Estagiada
• Níveis de maturidade.
• Agrupamento de áreas de processo por nível.
• Avaliação da Organização/Unidade Organizacional como um
todo.
43
44. CMM vs CMMI
• Representação Contínua
• Níveis de capacidade.
• Nível 0 – Incompleto
• Nível 1 – Realizado
• Nível 2 – Gerenciado
• Nível 3 – Definido
• Nível 4 – Gerenciado quantitativamente
• Nível 5 – Otimizado
44
45. CMM vs CMMI
• Representação Contínua
• Agrupamento de áreas de processo por categoria.
• Avaliação da capacidade nas áreas de processo.
• Usada quando deseja-se tornar apenas alguns processos mais
maduros.
45
46. REFERÊNCIAS
• ALMEIDA, K.; AS CARACTERÍSTICAS DO CMM E O
DESENVOLVIMENTO. REVISTA ELETRÔNICA DE
ADMINISTRAÇÃO, ed. 8, jun. 2005.
• RAMOS, R. A.; PADRÕES DE QUALIDADE DE SOFTWARE.
DISCISPLINA ENGENHARIA DE SOFTWARE I. UNIVERSIDADE
FEDERAL DO VALE DO SÃO FRANCISCO.
46
O CMM ajuda a diferenciar uma organização seria com processos bem definidos, planejados e controlados de outra com processos desorganizados e sem garantias da qualidade final.
Consiste em documentar, organizar e rastrear os requisitos afim de verificar se possui todos os elementos necessários para a elaboração;
Definir e acompanhar as etapas;
Assegurar que o software irá atender o que foi definido na especificação;
Engloba o controle de mudança, controle de versão e integração continua;
São definidos os processos e é necessário segui-los, tornar o foco da organização, pois não adianta ter o processo definido e sempre procurar brechas por comodidade;
Novas tecnologias e metodologias;
Aplicar os princípios da eng. de software;
Definir papeis;
Definição de pontos de controle do produto ou artefato;
Segundo o Lord Kelvin “Não se pode gerenciar o que não se pode medir”. Consiste na utilização de estatísticas e gráficos para prever se será possível alcançar os objetivos de desempenho de processos e de qualidade;
Visa assegurar o nível de qualidade;
Eliminar o retrabalho;
Novas tecnologias;
Adequações;