Modelo de Qualidade CMMI 06 de Setembro de 2007 Aline Fátima Manera RA: 280682 Andressa Tsuruda RA: 281190 Bruno Tosta Abrahão RA: 271217 Carlos Spinetti Moda RA: 281140 Caroline Vitachovic Gracioso RA: 280666 Daniel Chaves Macedo RA: 280844 Lucas Fernando Pizzirani Marola RA: 281018 Murillo Cesário Zerbinato RA: 280992 Renata Tsuruda RA: 280704 Samuel Reghim Silva RA: 271209 Tatiane Tosta Ferreira RA: 280925 Thiago Belon Lazarini RA: 281182 Thiago Henrique Petruccelli RA: 280895 Disciplina: Engenharia de Software I Prof.ª Rosângela Penteado
Resumo 1. Introdução Esse trabalho aborda o modelo de qualidade de software CMMI: definição, características, objetivos e representações (continua e por estágios). Além disso, faz uma análise comparativa entre os Modelos de Qualidade de Software - CMMI, CMM e ISO - e apresenta algumas das empresas brasileiras com qualificação CMMI. Atualmente, com a intensa utilização de software nas mais diversas áreas, inúmeros programas têm sido desenvolvidos para atender essa demanda. Contudo, muitos deles não são produzidos segundo uma norma, uma vez que seus fabricantes estão focados apenas em satisfazer as necessidades inicias do cliente, negligenciando aspectos de manutenção e durabilidade. Isso gera preocupações consideráveis quanto a qualidade desses produtos. Pensando nisso, foram criados os Modelos de Qualidade de Software que têm como objetivo garantir a qualidade do produto através da definição e normatização de processos de desenvolvimento. Os mais conhecidos são: ISO, CMM, CMMI. O CMMI (Capability Maturity Model Integration), desenvolvido pelo SEI (Sofware Engineering Institute), é uma evolução do CMM ( Capability Model Integration) que tenta suprir problemas de integração deste. Para atender aos diversos setores da indústria de software, o SEI divulgou diversos documentos derivados do CMM, tais como: Engenharia de Sistemas (SE-CMM), Aquisição de Software (SA-CMM) e Gestão de Recursos Humanos de Empresas de Softwares (P-CMM). Todavia, tal diversidade gerou problemas de integração e custo de treinamento, já que cada modelo possui características específicas. Com intuito de unificar estes e outros modelos baseados no CMM, o SEI desenvolveu o CMMI. Neste trabalho será apresentado o Modelo de Qualidade CMMI. A seção 2 contém a definição do CMMI, bem como suas características e objetivos. Na seção 3, o CMMI será comparado com o CMM e com a norma ISO. Na seção 4, será discutida as representações do CMMI: continua e em estágios. Na seção 5 consta algumas empresas brasileiras que possuem qualificações CMMI. Na seção 6, serão feitas as considerações finais. 2. Definição, Características e Objetivos do CMMI O CMMI (Capability Maturity Model Integration) é um modelo de referência que fornece orientação para o desenvolvimento de processos de softwares e tem como objetivos eliminar suas inconsistências; aumentar sua clareza e entendimento; fornecer uma terminologia comum e um estilo consistente; estabelecer regras de construção uniformes e assegurar consistência com a ISO/IEC 15504. Como seus antecessores, o CMMI não define como o processo deve ser implementado, mas prescreve suas características estruturais e semânticas em termos de objetivos e de grau de qualidade com que o trabalho deve ser realizado. O CMMI constitui tanto um modelo de capacidade como um modelo de maturidade. O modelo dentro de uma empresa pode ser alcançado em etapas consecutivas, representando a idéia de maturidade ou também de maneira contínua, onde são mensuradas a capacidade em práticas individuais. Quando uma organização atinge um nível de maturidade, considera-se que seus processos alcançaram uma determinada capacidade, ou seja, tem mecanismos que garantem a repetição sucessiva de bons resultados futuros relacionados principalmente à qualidade, custos e prazos.
3. Comparação CMMI, CMM e ISO O CMM é um modelo que visa avaliar se a empresa de desenvolvimento de software é capaz de desenvolver software de qualidade, com custo e prazo pequenos e previsibilidade confiável. A partir de 1991, a SEI - Software Engineering Institute, da Carnegie Mellon University, dos Estados Unidos emitiu vários documentos baseados no CMM voltados para setores específicos da indústria de engenharia de software: Gestão de Recursos Humanos (P-CMM), Engenharia de Sistemas (SE-CMM) e Aquisição de Software (SA-CMM). Embora todos os modelos derivados do CMM tenham eficiência comprovada na prática, usar vários modelos em uma empresa é complicado, logo, os modelos foram integrados no CMMI. O CMM define cinco níveis de maturidade, sendo que no primeiro a empresa desenvolve sistemas baseando-se apenas na experiência das pessoas que trabalham na empresa, e no último existe um processo organizado, flexível, com um planejamento eficiente e continuamente melhorado. Para que uma empresa seja considerada mais madura e aumente seu nível de maturidade, ela deve cumprir metas específicas, chamadas áreas de processo (key process area KPA). Por exemplo, uma área de processo do nível 2 do CMM seria a garantia de qualidade de software. O CMMI está dividido em duas formas de representação diferentes estagiada e contínua. A estagiada divide as áreas de processo em cinco níveis de maturidade, à maneira do CMM; A representação contínua define níveis de capacidade. As diferenças entre ambos são meramente organizacionais; o conteúdo é equivalente. Ambos podem ser usados para conseguir níveis em suas respectivas caracterizações. O ISO/IEC 15504 é um padrão internacional para avaliação de processos criado pelo comitê ISO/IEC (International Organization for Standardization / International Electrotechnical Commission). Esta norma foi desenvolvida desde 1993 em conjunto com a comunidade internacional através do projeto ICE (Software Process Improvement and Capability determination) com base em modelos já existentes, como ISO 9000 e SW-CMM. O propósito deste padrão é harmonizar modelos diferentes (incluindo SW-CMM, CMMI, ISO 9001) e métodos de avaliação. A norma define um guia para orientação da melhoria de processo, avaliando-os segundo um modelo bidimensional, contendo a dimensão dos processos e a dimensão da capacidade. A primeira caracteriza os processos de acordo com os seus objetivos e resultados esperados e é fornecida por um modelo de processos externo à ISO/IEC 15504, gerando um perfil dos processos e identificando os pontos fracos e fortes; estes serão utilizados para a elaboração de um plano de melhorias. A segunda define a forma de medição do estado desses processos. Equivalentemente, a primeira dimensão reúne práticas relacionadas a "o que fazer", organizadas em processos específicos; a segunda agrupa práticas relacionadas ao "quão bem fazer qualquer coisa que seja feita", organizadas em níveis de capacidade genéricos. O ISO/IEC 15504, apesar de ser um esforço independente, não foi projetado para uso autônomo. Seu papel é fornecer uma estrutura que modelos existentes e que venham a ser criados possam seguir. Assim, uma das especificações do CMMI declara que este deve ser consistente e compatível com o ISO/IEC 15504. 4. Representações do CMMI O CMMI possui duas representações: "contínua" ou "por estágios". Elas permitem à organização utilizar diferentes caminhos para a melhoria de acordo com seu interesse. A contínua permite que uma organização selecione uma área (ou um grupo de áreas) de processo e melhore os processos relacionados. Ela usa níveis de capacidade para caracterizar melhorias relativas a uma área de processo individual. A estagiada usa conjuntos pré-definidos de áreas de processo (KPA's) para definir um caminho para uma organização, caracterizado por níveis de maturidade. Cada nível contém um conjunto de áreas de processo que caracterizam diferentes comportamentos organizacionais, correspondendo à capacidade da empresa de realizar projetos grandes e complexos.
4.1 Representação Continua Na representação contínua, o enfoque ou componentes principais são as áreas de processo. Existem metas e práticas de dois tipos: específicas a uma determinada área de processo e genéricas aplicáveis indistintamente a todas as áreas de processo. A partir da avaliação e do atendimento dessas práticas e metas é possível classificar o nível de capacidade de cada área de processo, em níveis de zero a cinco: Nível 0 - Incompleto: um processo é parcialmente realizado ou não realizado. Um ou mais objetivos específicos do processo não estão satisfeitos. Nível 1 - Realizado: um processo realizado satisfaz todos os objetivos específicos da área de processo e produz algum trabalho. Nível 2 - Gerenciado: um processo de capacidade nível 2 é um processo realizado (nível 1) que também é planejado e executado de acordo com políticas pré-definidas. Emprega pessoas hábeis com os recursos adequados para produzir saídas adequadas, envolve os stakeholders principais e é monitorado, controlado, revisto e avaliado quanto à aderência à sua descrição. A gerência do processo é relacionada com a realização de objetivos específicos estabelecidos para o processo, como custo, cronograma e qualidade. Nível 3 - Definido: um processo definido é um processo gerenciado e ajustado para o conjunto padrão de processos da organização de acordo com suas políticas de conduta. Esse conjunto é estabelecido e melhorado com o tempo e descreve os elementos fundamentais de processos que são esperados nos processos definidos. Nível 4 - Gerenciado quantitativamente: um processo neste nível é definido e controlado com a ajuda de técnicas quantitativas e estatísticas. A qualidade e o desempenho do processo são compreendidos em termos estatísticos e são geridos durante sua vida. Objetivos quantitativos para qualidade e desempenho de processos são estabelecidos e usados como critério na gerência do processo. Nível 5 - Otimizado: um processo otimizado é gerenciado quantitativamente, alterado e adaptado para atender aos objetivos de negócio atuais e projetados. Tal processo enfoca a melhoria contínua do desempenho do processo através de aprimoramentos tecnológicos inovadores e incrementais, selecionados com base em uma compreensão quantitativa de sua contribuição esperada à obtenção da melhoria de processos. A figura 01 esquematiza como as práticas e objetivos são organizados: Figura 01 - Modelo contínuo Uma organização pode escolher melhorar o desempenho de um único ponto problemático
de um processo, ou pode trabalhar em diversas áreas fortemente ligadas aos seus objetivos. A representação contínua permite a melhoria de diferentes processos em taxas diferentes. Há dependências entre algumas áreas de processo, o que faz com que seja adequada para situações em que tais dependências são bem compreendidas e os processos que precisam ser melhorados tenham sido identificados. 4.2 Representação por estágios A representação em estágios oferece uma abordagem estruturada e sistemática para a melhoria de um estágio por vez. Atingir um estágio significa que uma estrutura de processo adequada foi estabelecida como base para o próximo estágio. As áreas de processo são organizadas por níveis de maturidade (1 a 5), que definem o caminho de melhoria que uma organização deve seguir do nível inicial ao nível otimizado. Dentro de cada nível, existem áreas de processo que contêm metas, características comuns e práticas. Na representação em níveis, as práticas são caracterizadas pelos atributos: compromisso para execução (práticas que garantem que o processo seja estabelecido e apoiado); habilidade para execução (práticas que criam condições para que o processo seja estabelecido completamente) e atividade para execução (práticas que implementam diretamente o processo); controle e verificação de implementação. A transição entre os níveis resulta em melhorias incrementais e duradouras. A figura 02 esquematiza as metas e práticas desse modelo: Figura 02 - Modelo estagiado Os estágios de maturidade são: Nível 1 - Inicial: É o nível de maturidade CMMI mais baixo. Em geral, as organizações desse nível têm processos imprevisíveis que são pobremente controlados e reativos. Nesse nível de maturidade os processos são normalmente ad hoc e caóticos. A Organização geralmente não fornece um ambiente estável. Neste nível não há KPA's. Nível 2 Gerenciado: No nível de maturidade 2 os projetos da organização têm a garantia de que os requisitos são gerenciados, planejados, executados, medidos e controlados. Quando essas práticas são adequadas, os projetos são executados e controlados de acordo com o planejado. O foco, neste nível, é o gerenciamento básico de projetos e tem as seguintes KPA's desse nível são: gerenciamento de requisitos; planejamento do projeto; controle e monitoração do projeto; gerenciamento de suprimentos; avaliação e análise; garantia da qualidade do processo; configuração do gerenciamento. Nível 3 Definido: No nível de maturidade 3, em que todos os objetivos específicos e genéricos atribuídos para os níveis de maturidade 2 e 3 foram alcançados, os processos são
melhor caracterizados e entendidos e são descritos em padrões, procedimentos, ferramentas e métodos. O foco neste nível é a padronização do processo, tendo como KPA's: requisitos de desenvolvimento; soluções técnicas; integração de produtos; verificação; validação; foco no processo organizacional; definição do processo organizacional; treinamento organizacional; gerenciamento de projeto integrado; gerenciamento de riscos; integração da equipe de trabalho; gerenciamento integrado de suprimentos; análise de decisões; ambiente organizacional para integração. Nível 4 - Quantitativamente Gerenciado: No nível de maturidade 4, em que os objetivos específicos atribuídos para os níveis de maturidade 2, 3 e 4 e os objetivos genéricos atribuídos para os níveis de maturidade 2 e 3 foram alcançados, os processos são medidos e controlados. O foco neste nível é o gerenciamento quantitativo e possui as seguintes KPA's: performance organizacional do processo; gerenciamento quantitativo de projetos. Nível 5 Otimizado: No nível de maturidade 5, o mais alto nível de maturidade CMMI, uma organização atingiu todos os objetivos específicos atribuídos para os níveis de maturidade 2, 3, 4 e 5, e os objetivos genéricos atribuídos para os níveis de maturidade 2 e 3. Os processos são continuamente aperfeiçoados, baseados em um entendimento quantitativo em que a variação de um processo existe devido às interações, normais e presumidas, entre os componentes desse processo. Esse nível de maturidade tem como objetivo a melhoria contínua do processo. As KPA's desse nível são: inovação organizacional e análise de causas e resoluções. 5. Algumas empresas brasileiras qualificadas de acordo com o CMMI Nível 2 Empresa GM Matera Systems TIVIT EMBRAER SERASA G&P - Gennari & Peartree Volans Estado Nível 3 Empresa IBM T-Systems CPM Politec CPqD Itaú Estado e SC DF Nível 5 Empresa IBM Estado RJ 6. Considerações Finais A utilização de metodologias em desenvolvimento de software, mais do que uma ferramenta, é condição obrigatória para se obter a melhoria nos processos, a qualidade
necessária e o cumprimento dos prazos, tão importantes nos ambientes competitivos de hoje. Dessa forma, o objetivo de muitas empresas tem sido obter qualificações CMMI para atender as exigências explicitas do mercado. O CMMI (Capability Maturity Model Integration) descreve princípios e práticas relacionadas ao processo de desenvolvimento de produtos e serviços tecnológicos. O modelo visa ajudar organizações envolvidas com o desenvolvimento de software a melhorar a capacidade de seus processos, por meio de um caminho evolucionário que considera desde processos com resultados imprevisíveis e até mesmo caóticos para processos disciplinados e definidos, com resultados previsíveis e com possibilidade de melhoria contínua. A grande novidade do CMMI é o oferecimento de duas modalidades de representação: continua e por estágios. 7. Referências Bibliográficas CMM - CMMI Principais conceitos diferenças e correlações www.spinbh.com.br/apresentacoes/spin21.pdf(acessado em Ministério da Ciência e Tecnologia Secretaria de Política de Informática Qualificação CMM e CMMI no Brasil www.mct.gov.br/upd_blob/0009/9238.pdf (Acessado em CMMI, O Capability Maturity Model Integration http://www.ic.unicamp.br/%7ecortes/inf310/transp/cap5a.pdf (Acessado em CMM Portal de Entrada para o Mercado Internacional http://www.unicaldas.edu.br/paginas/sistemas/artigo/cmm.pdf (Acessado em Comércio Eletrônico: Uma Análise da Aplicabilidade de Modelos de Qualidade de Software http://www.lbd.dcc.ufmg.br:8080/colecoes/sbqs/2002/009.pdf (Acessado em Uma visão geral do CMMI http://www.dromostg.com.br/cmmi.pdf Análise de uma Organização de Software utilizando o Modelo CMMI/SEI v1.0 http://www2.dem.inpe.br/ijar/qualidade%20de%20software/pdfs/cmmi-artigo.pdf (Acessado em Gerência de Risco em Processos de Qualidade de Software: uma Análise Comparativa www.sbc.org.br/bibliotecadigital/download.php?paper=235 (Acessado em Departamento de Produção POLI O novo modelo CMMI http://www.spinsp.org.br/apresentacao/new_cmmi.pdf (Acessado em Qualidade de Projeto http://www.cin.ufpe.br/~rca6/qualidadedesoftware.pdf (Acessado em Software Engenineering Institute FAQ http://www.sei.cmu.edu/cmmi/faq/15504-faq.html (Acessado em ISO/IEC 15504 www.cin.ufpe.br/~processos/taes3/slides-2006.2/iso15504_v02.ppt (Acessado em CMM - Dificuldades de implantação do modelo; sua aplicação no setor financeiro http://www.mbis.pucsp.br/monografias/monografia_-_mauro_dias.pdf (Acessado em ISD Brasil(Integrated Diagnostics Brasil http://www.isdbrasil.com.br/default.asp (Acessado em Wikipedia Capability Maturity Model Integration http://en.wikipedia.org/wiki/cmmi (Acessado em Expandindo o Agile para se adequar ao CMMI Nível 3 http://www.microsoft.com/brasil/msdn/tecnologias/arquitetura/agilecmmi.mspx(acessado em