Introdução ao CMM (CapabilityMaturityModel) e CMMI (Capability Maturity Model Integration)
CMM CapabilityMaturityModel O CMM é um modelo desenvolvido pelo Software Engineering Institute (SEI) em parceria com a universidade Carnegie-Mellon. Não é uma metodologia e sim um modelo fundamentado nas melhores práticas de desenvolvimento e manutenção de sistemas e softwares
O CMM descreve atributos essenciais e esperados para diagnosticar uma organização em níveis de maturidade do desenvolvimento de software. Não é prescritivo, ou seja, não diz à organização como melhorar seus processos e sim descreve a organização em cada nível de maturidade. Ouseja,nãodizcomofazeresimoquefazer.
O CMM descreve os estágios de maturidade enquanto evoluem, através de avaliação contínua, identificação de problemas e ações corretivas, dentro de uma estratégia de melhoria dos processos de Software.
OquesãoosProcessosdeSoftware? Um processo de software pode ser definido com sendo um conjunto de métodos, práticas, atividades, entre outros que os profissionais utilizam para desenvolver e manter um software e seus complementos, tais como: projeto e seus documentos, códigos, testes e manuais. Métodos:Como fazer? Ferramentas: apoio automatizado aos métodos; e Procedimentos : ligação entre os métodos e ferramentas.
Maturidade dos Processos A maturidade dos processos reflete a evolução da organização. Em uma organização madura, o processo de software é bem compreendido. A maturidade de um processo de Software implica que a produtividade e a qualidade resultantes do processo possam ser continuamente melhoradas. Quando os ganhos são visíveis a organização define políticas e pode redefinir a infra-estrututura bem como a cultura corporativa para que possam dar suporte as práticas e procedimentos do negócio. OCMMindica5níveisdematuridade
Segundo Sodré e Notari(2003), os níveis do modelo são: Nível 1 : neste nível não há um processo efetivo de desenvolvimento e manutenção de software. Depende do esforço individual partindo direto para a codificação e alguns testes. Nível 2 : neste nível já existem processos básicos de gestão de projetos, tais como acompanhamento de custos, cronogramas de execução e funcionalidade. Nível 3 : neste nível já está implantado um processo de software padronizado e consistente, pois tanto as atividades de gestão como as de engenharia de software são estáveis e passíveis de repetição.
Nível 4 : neste nível medidas detalhadas do processo de software e da qualidade são realizadas, pois o processo é medido e opera dentro de limites mensuráveis. Nível 5 : neste nível é empregado uma melhoria contínua nos processos de gestão e desenvolvimento de software.
CMMI- Capability Maturity Model Integration Desde de 1991, começaram a surgir diversos tipos de CMM, voltados para assuntos específicos, tais como: desenvolvimento de sistemas, aquisição, desenvolvimento de softwares, entre outros. O CMMI é uma evolução do CMM e procura estabelecer um modelo único para o processo de melhoria corporativo, integrando diferentes modelos e disciplinas. Há uma ênfase tanto em engenharia de sistemas quanto em engenharia de software, e há uma integração necessária para o desenvolvimento e a manutenção. As áreas de processo requeridas para engenharia de sistemas normalmente são as mesmas para engenharia de software, podendo variar o nível de maturidade.
CMMI é um conjunto de modelos integrados de maturidade e capacidade para diversas disciplinas, tais como: Engenharia de Sistemas Engenharia de Software Desenvolvimento integrado de produtos e processos Fontes de aquisição Estruturado em 5 níveis de maturidade, o CMMI abrange 25 áreas de processo divididas em 4 categorias: Gerenciamento de projetos; Gerenciamento de processos; Engenharia; Suporte.
Possui dois modelos de representação Representação Continua Possibilita à organização utilizar a ordem de melhoria que melhor atende os objetivos de negócio da empresa. É caracterizado por Níveis de Capacidade (Capability Levels): Nível 0: Incompleto Nível 1: Executado Nível 2: Gerenciado Nível 3: Definido
Representação Continua Área do Processo Metas Genéricas Metas Específicas Níveis de Capacidade Práticas Genéricas Práticas Específicas
Representação Por Estágios Disponibiliza uma seqüência pré-determinada para melhoria baseada em estágios que não deve ser desconsiderada, pois cada estágio serve de base para o próximo. É caracterizado por Níveis de Maturidade (Maturity Levels): Nível 1: Inicial Nível 2: Gerenciado/ Gerido Nível 3: Definido Nível 4: Quantitativamente gerenciado / Gerido quantitativamente Nível 5: Em otimização
Representação por Estágios Área do Processo Níveis de Maturidade Metas Genéricas Metas Específicas Práticas Genéricas Práticas Específicas
Referências Software Engineering Institute disponível em: http://www.sei.cmu.edu/ Sodré, J. and Notari, D. L. "Proposta de Integração entre o PMBOK e o CMM para a Fase de Levantamento de Requisito", 2003. FIORINI, Soeli T.; STAA, Arndt Von; BAPTISTA, Renan Martins. Engenharia de software com CMM. Rio de Janeiro: Brasport, c1998. 346p. GONÇALVES, José Marcos; BOAS, André Villas. Modelo de Maturidade de Capabilidade de Software(CMM) Campinas, 2001.