Modelo de Maturidade de Software – Modelos de Maturidade de Software CMMI e MPS-BR
Fundamentos do CMMI (Capability Maturity Model Integration)
É necessário medir a qualidade do software devido:
- A processos maldefinidos;
- À falta de controle sobre o processo;
- Ao caos que aumenta em função da complexidade do produto;
- À falta de métricas para apoio à decisão;
- A projetos malconstruídos;
- A software construído “artesanalmente”;
- A processos ad-hoc (soluções caseiras).
Modelo mais usado pelo mercado: MPS-BR (melhoria de processos de software brasileiro).
Fonte: http://www.softex.br
Qualidade – MPS.BR
Uma das metas do programa MPS.BR é impulsionar a melhoria da capacidade de desenvolvimento de software e serviços nas empresas brasileiras. Considerado um marco que representa a evolução da qualidade do software desenvolvido no país, ele trouxe ganhos comprovados de competitividade para a indústria nacional.
(*) Os sete níveis de maturidade do MSP.BR:
- Em otimização;
- Gerenciado quantitativamente;
- Definido;
- Largamente definido;
- Parcialmente definido;
- Gerenciado;
- Parcialmente gerenciado.
CMMI
O CMMI
- É um modelo que descreve orientações para a definição e implantação de processos;
- O modelo não descreve processo algum; são orientações definidas através das práticas especificadas;
- Método de avaliação utilizado: SCAMPI (Standard CMMI Assessment Method for Process Improvement);
- Proposta de um modelo integrado que pode ser utilizado em várias disciplinas.
Disciplinas do CMMI
- Engenharia de software;
- Engenharia de sistemas: abordagem interdisciplinar cujo objetivo é o desenvolvimento bem-sucedido de sistemas como um todo, envolvendo software ou não;
- Desenvolvimento integrado do produto e processo: abordagem sistemática que utiliza a colaboração dos stakeholders para melhor satisfazer as expectativas e requisitos dos clientes. Usada em conjunto com práticas de produção de um produto específico;
- Fontes de aquisição: aquisição de produtos de fornecedores.
Objetivos de CMMI
- Além da integração dos modelos e redução dos custos com melhorias de processo, os seguintes objetivos também fazem parte do projeto CMMI:
- Aumento do foco das atividades;
- Integração dos processos existentes;
- Eliminar inconsistências;
- Reduzir duplicações;
- Fornecer terminologia comum;
- Assegurar consistência com a norma ISO 15504;
- Flexibilidade e extensão para outras disciplinas.
Conceitos Básicos do CMMI
- Área de processo (Process Area – PA): práticas relacionadas em uma área que, quando executadas de forma coletiva, satisfazem um conjunto de metas consideradas importantes para melhorias;
- Metas específicas: características que descrevem o que deve ser implementado. São utilizadas nas avaliações para determinar se a PA está sendo satisfeita;
- Práticas específicas: atividades que são consideradas importantes na satisfação de uma meta específica associada;
- Metas genéricas: aparecem em diversas PAs;
- Práticas genéricas: assegura que os processos (PA) serão eficientes, repetíveis e duráveis;
- Produtos de trabalho: exemplos de saídas de uma prática específica ou genérica;
- Subpráticas: descrições detalhadas que fornecem um direcionamento para a interpretação de práticas específicas ou genéricas.
CMMI-DEV
O CMMI (versão 1.3) foi publicado em outubro de 2010 e apresenta três modelos:
- CMMI for Development (CMMI-DEV): voltado ao processo de desenvolvimento de produtos e serviços;
- CMMI for Acquisition (CMMI-ACQ): voltado aos processos de aquisição e terceirização de bens e serviços;
- CMMI for Services (CMMI-SVC): voltado aos processos de empresas prestadoras de serviços.
Exemplo: meta e prática específicas
- PA: gerência de requisitos;
- Meta específica: gerenciar requisitos;
- Requisitos são gerenciados, e inconsistências com planos de projeto e produtos de trabalho são identificados;
- Prática específica: manter rastreabilidade bidirecional entre requisitos;
- Manter rastreabilidade bidirecional entre os requisitos, planos de projeto e produtos de trabalho.
- Produtos de trabalho típicos: matriz de rastreabilidade, sistema de acompanhamento de requisitos.
CMMI: representações
O CMMI usa dois tipos de representação dos modelos: por estágios e continuada.
Continuada:
- Níveis de capacidade;
- Agrupamento de áreas de processo por categoria;
- Avaliação da capacidade nas áreas de processo.
Por estágios:
- Níveis de maturidade;
- Agrupamento de áreas de processo por nível;
- Avaliação da organização/unidade organizacional como um todo;
- As PAs do CMMI são as mesmas para ambas as representações.
Áreas de processo do CMMI (PA)
As PAs são organizadas em quatro categorias de processo: gerenciamento de processos, gerenciamento de projetos, engenharia e suporte.
Gerenciamento de processos
São atividades relativas à definição, planejamento, distribuição de recursos, aplicação, implementação, monitoramento, controle, avaliação, medição e melhoria de processos. Envolve as seguintes PAs:
- Foco no processo organizacional (básica);
- Definição do processo organizacional (básica);
- Treinamento organizacional (básica);
- Desempenho do processo organizacional (avançada);
- Inovação e desenvolvimento organizacional (avançada).
Gerenciamento de projetos
São atividades de gerência de projetos relacionadas ao planejamento, monitoramento e controle do projeto. Envolve as seguintes PAs:
- Planejamento de projetos (básica);
- Monitoramento e controle de projetos (básica);
- Gerência de acordos com fornecedores (básica);
- Gerência integrada de projetos (avançada);
- Gerência de riscos (avançada);
- Integração de equipes (avançada);
- Gerência quantitativa de projetos (avançada).
Engenharia de software
São atividades de desenvolvimento e manutenção que são compartilhadas entre as disciplinas de engenharia (por exemplo, engenharia de sistemas e engenharia de software). Envolve as seguintes PAs:
- Gerência de requisitos;
- Desenvolvimento de requisitos;
- Solução técnica;
- Integração de produtos;
- Verificação;
- Validação.
Representação contínua
Vejamos agora as características da representação contínua:
Estrutura
- Metas específicas organizam práticas específicas;
- Metas genéricas organizam práticas genéricas;
- Cada prática (específica/genérica) corresponde a um nível de capacidade;
- Metas e práticas específicas aplicam-se a áreas de processo individuais;
- Metas e práticas genéricas aplicam-se a várias áreas de processo.
Níveis de capacidade
Um nível de capacidade descreve o potencial de uma área de processo. Há seis níveis de capacidade, cada um representando uma camada na base para a melhoria contínua do processo. Assim, níveis de capacidade são cumulativos, ou seja, um nível de capacidade mais alto inclui os atributos dos níveis mais baixos.
Uma vez que os modelos CMMI são projetados para descrever níveis discretos de melhoria de processo, níveis de capacidade provêm uma ordem recomendada para abordar a melhoria de processo dentro de cada área de processo.
- 5 Otimizado
- 4 Gerenciado quantitativamente
- 3 Definido
- 2 Gerenciado
- 1 Realizado
- 0 Incompleto
Representação por estágios
Um nível de maturidade é um plano bem definido de um caminho para tornar a organização mais madura. Existem cinco níveis de maturidade e cada um representa uma camada na base para a melhoria contínua do processo.
As representações por estágios são agrupamentos que oferecem uma maneira de apresentar as seguintes práticas genéricas:
Compromisso: agrupa as práticas genéricas relacionadas à criação de políticas e à garantia de patrocínio;
Habilitação: agrupa as práticas genéricas relacionadas a assegurar que o projeto e/ou organização possui(em) o(s) recurso(s) que necessita(m);
Implementação: agrupa as práticas genéricas relacionadas à gerência do desempenho do processo, gerência da integridade de seus produtos de trabalho e envolvimento dos stakeholders relevantes;
Verificação da implementação: agrupa as práticas genéricas relacionadas a revisões pelo nível mais alto de gerenciamento e a avaliações objetivas de conformidade a descrições de processos, procedimentos e padrões.
CMMI-DEV – representação por estágios
Estágio inicial: os processos são informais e caóticos; neste ponto, ele ainda não possui nenhum processo implementado.
Estágio gerenciado: são estabelecidos processos básicos de gerenciamento de projeto para planejar e acompanhar prazos, custos e funcionalidades.
Estágio definido: os processos são bem caracterizados, entendidos e descritos em padrões, procedimentos, ferramentas e métodos.
Estágio gerenciado quantitativamente: os objetivos quantitativos são utilizados como critérios para o gerenciamento de processos. A qualidade do processo é medida em termos estatísticos, e os desvios são identificados e corrigidos para evitar ocorrências futuras.
Estágio otimizado: melhoramento contínuo dos processos. Os efeitos são medidos e avalizados com objetivos quantitativos de melhoria de processos.
Atividade proposta
O CMMI está voltado para engenharia de sistemas e classifica a maturidade do desenvolvimento de software; além disso, está dividido em cinco níveis de maturidade: inicial, gerenciado, definido, gerenciado quantitativamente e otimizado (este refere-se à melhoria contínua do processo de software). Qual o objetivo do CMMI?
Chave de resposta: O objetivo do CMMI é também melhorar a qualidade do processo de software. (Pressman, Engenharia de Software). O CMMI procura estabelecer um modelo único para o processo de melhoria corporativo, integrando diferentes modelos e disciplina, com aumento do foco das atividades.
Referências
PFLEEGER, Shari Lawrence. Engenharia de Software: Teoria e Prática. 2. ed. São Paulo: Pearson (Livros Universitários), 2003.
PRESSMAN, Roger S. Engenharia de Software: Uma Abordagem Profissional. 7. ed. São Paulo: MCGRAW-HILL BRASIL, 2011.
SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson (Livros Universitários), 2011.
Lista de Exercícios de Modelo de Maturidade de Software – Lista 7