Auditoria de Sistemas Computacionais Professora Jaciara S. Carosia Processo de software: Segundo Watts Humphrey, idealizador do CMM, um processo de software envolve métodos, ferramentas e pessoas. Para um processo funcionar satisfatoriamente ele deve possuir: ◦ Procedimentos e métodos que descrevam a relação entre as tarefas. ◦ Ferramentas e equipamentos que dêem suporte a realização das tarefas, simplificando e automatizando o trabalho. ◦ Pessoas com perfil adequado, treinadas nos métodos e nas ferramentas para poderem realizar as atividades adequadamente. Modelos baseados no CMM: ◦ ◦ ◦ ◦ AS-CMM (Aquisição de Software), SE-CMM (Engenharia de Sistemas), IPD-CMM (Desenvolvimento de Produto Integrado) e P-CMM (Pessoas). Problemas: ◦ Nem todos os modelos usavam a mesma terminologia, um mesmo conceito podia receber nomes diferentes em cada modelo. ◦ Tinham diferentes números de níveis ou formas diferentes de avaliar o processo. ◦ As altos custo de treinamento, avaliação e harmonização para organizações que quisessem usar mais de um modelo. ◦ Identificação de pontos em que o CMM poderia ser melhorado. Surgimento da ISO 15504 (projeto SPICE). CMMI – Capability Maturity Model Integration – publicado em 2002 (ultima versão 1.3 publicada em 2010). Conceitos importantes (os mesmos do CMM, lembrando...): ◦ Capacidade: conjunto de resultados esperados que pode ser atingido quando se segue o processo de software estabelecido (eficácia). ◦ Maturidade: é quando um processo específico é explicitamente definido, documentado, gerenciado, medido, controlado e efetivo (eficiência). Maturidade implica num potencial de crescimento da capacidade . Abordagem em Estágios: mede os Níveis de Maturidade. ◦ Cumprimento de todas as áreas de processo de um nível. ◦ São 5 níveis (do 1 ao 5). ◦ Semelhante ao CMM. Abordagem Contínua: mede os (6) Níveis de Capacidade. ◦ Foco em uma área de processo especifica. ◦ São 6 níveis (0 ao 5). 22 Áreas de Processo. Níveis de Maturidade – CMMI em Estágios: proporciona uma estratégia pré-definida para melhoria organizacional, similar ao SW-CMM existente. Níveis Inicial Descrição O processo é caracterizado como indisciplinado e até caótico. Poucos processos são definidos e o sucesso depende de esforços individuais e heróicos. Gerenciado Processos básicos de gerência são estabelecidos para acompanhar custos, cronogramas e a funcionalidade. É possível repetir o sucesso de um processo utilizado anteriormente em outro processo. O processo de software é documentado, padronizado e integrado em um Definido processo padrão de software da organização. Todos os projetos usam uma versão aprovada e adaptada do processo de software padrão da organização para desenvolvimento e manutenção de software. Quantitativamente São coletadas medidas detalhadas da qualidade do processo e do Gerenciado produto de software, que são quantitativamente compreendidas e controladas. Há estabilidade de processo e medição. Otimizado A melhoria contínua do processo é conseguida pela realimentação quantitativa do processo. Nível 1 – Inicial Nível 2 – Gerenciado - Gerenciamento de Requisitos. - Planejamento de Projeto. - Controle e Monitoração de Projeto. - Gerenciamento de Contrato de Fornecedores. - Medições e Análises. - Garantia de Qualidade de Produto e Processo. - Gerenciamento da Configuração. Nível 3 – Definido - Desenvolvimento de Requisitos. - Solução Técnica. - Integração de Produto. - Verificação. - Validação. - Foco no Processo Organizacional. - Definição de Processo Organizacional. - Treinamento Organizacional. - Gerenciamento de Projeto Integrado. - Gerenciamento de Risco. - Resolução e Análise de Decisão. Nível 4 – Quantitativamente Gerenciado - Desempenho do Processo Organizacional. - Gerenciamento Quantitativo do Projeto. Nível 5 – Otimização - Disposição e Inovação Organizacional. - Resolução e Análise Causal. Não é permitido saltar nenhum nível!! Gerenciamento de Requisitos: gerenciar os requisitos dos produtos do projeto e seus componentes, e identificar inconsistências entre estes requisitos e os estabelecidos no plano. Planejamento de Projeto: estabelecimento e manutenção de planos que definam as atividades do projeto. Controle e Monitoração de Projeto: proporcionar um entendimento do processo e as ações corretivas a serem tomadas quando o desempenho do projeto desvia do plano estabelecido. Gerenciamento de Contrato de Fornecedores: gerenciar a aquisição de produtos de fornecedores de forma que exista um contrato formal. Medições e Análises: desenvolver e sustentar uma capacidade de medição usada para suportar o gerenciamento das informações necessárias. Gerenciamento da Configuração: estabelecer e manter a integridade dos produtos de trabalho usando identificação, controle, relatório de status e auditoria da configuração. Garantia de Qualidade de Produto e Processo: garantir a entrega de produtos e serviços de alta qualidade, através da avaliação da qualidade do processo de desenvolvimento. Definição de Processo Organizacional: estabelecer e manter um conjunto de itens de processo organizacional. Tais itens incluem a descrição do processo e elementos (tarefas e atividades) do processo, descrição de modelos de ciclo de vida, guia de execução de processo, dados e documentação do processo. Treinamento Organizacional: relaciona-se com o desenvolvimento das habilidades e conhecimentos das pessoas para que elas possam desempenhar seu papel efetiva e eficientemente. Gerenciamento de Projeto Integrado: estabelecer e gerenciar o projeto e o envolvimento das pessoas relevantes (indivíduos ou grupos envolvidos com o projeto, como fornecedores, clientes, usuários, e outros), de acordo com um processo definido e integrado baseado nos processos padrões da organização. Gerenciamento de Riscos: identificar potenciais problemas antes que eles ocorram, através do planejamento e execução de atividades específicas em situações de riscos, visando atenuar os impactos adversos que possam influenciar no alcance aos objetivos. Resolução e Análise de Decisão: analisar decisões usando um processo da avaliação formal que avalia as possíveis alternativas e estabelece critérios. Desenvolvimento de Requisitos: analisar os requisitos de modo que eles realmente supram as necessidades das pessoas envolvidas com o projeto. Solução Técnica: projetar, desenvolver e implementar soluções para os requisitos, abrangendo produtos, componentes de produtos e produtos do ciclo de vida do processo, cada um individualmente ou combinados. Integração de Produto: o objetivo é reunir todos os componentes do produto, assegurar que o produto, quando integrado, funciona bem. Verificação: garantir que os produtos de trabalho vão ao encontro de seus requisitos especificados. Validação: demonstrar que um produto ou componentes do produto cumpre seu uso desejado quando mantido em seu ambiente específico. Foco no processo organizacional: planejar e implementar melhorias no processo organizacional, através do entendimento dos pontos positivos e negativos dos processos da organização. Desempenho do Processo Organizacional: estabelecer e manter um entendimento quantitativo da capacidade dos processos padrões em suportar objetivos de qualidade e de desempenho, visando colher os dados necessários ao gerenciamento quantitativo dos projetos da organização. Gerenciamento Quantitativo do Projeto: o propósito desta área é gerenciar quantitativamente o processo definido para o projeto, visando atingir os objetivos de qualidade e de performance estabelecidos para o mesmo. Disposição e Inovação Organizacional: seleção e distribuição ordenada de melhorais (incrementais e inovadoras) que podem aumentar a habilidade da organização para alcançar seus objetivos de qualidade e desempenho do processo. Resolução e Análise das Causas: analisar as causas dos defeitos e outros problemas e tomar atitudes para que eles não voltem a ocorrer no futuro. Para uma organização alcançar um nível de maturidade, ela deve atingir o objetivo genérico e os objetivos específicos de todas as áreas de processo do nível em questão, através da execução das práticas genéricas e práticas específicas do nível em questão. Observações: Os objetivos genéricos são definidos por níveis, isto é, são comuns a todas as áreas do nível em questão. A execução das práticas genéricas determina o quanto a implementação da área de processo é institucionalizada na organização, isto é, o quanto a implementação da área de processo é efetiva, repetitiva e duradoura. Níveis de Maturidade Área de Processo 1 Objetivo Específico Práticas Específicas Área de Processo 2 Área de Processo n Objetivo Genérico Características Comuns Práticas Genéricas Nível 2 – Gerenciado - Gerenciamento de Requisitos. Planejamento de Projeto. Controle e Monitoração de Projeto. Gerenciamento de Contrato de Fornecedores. Medições e Análises. Garantia de Qualidade de Produto e Processo. Gerenciamento da Configuração. Para atingir o Nível 2 de maturidade, a organização deve implementar as sete áreas de processo. Para implementar cada uma destas áreas é necessário atender aos objetivos específicos de cada uma, através da execução de suas práticas específicas. Por exemplo: a área de processo Gerenciamento de Requisitos tem: ◦ Objetivo específico: Gerenciar Requisitos. Práticas específicas: obter um entendimento dos requisitos, obter comprometimento com os requisitos, gerenciar as mudanças de requisitos, manter um controle bidirecional dos requisitos, identificar inconsistência entre os requisitos e os produtos de trabalho. É necessário também implementar os objetivos genéricos do nível, através da execução de suas práticas genéricas. Objetivo genérico do nível 2: Institucionalizar um Processo Gerenciado. ◦ Práticas genéricas: estabelecer uma política organizacional, planejar o processo, fornecer recursos, designar responsabilidades, treinar pessoas, gerenciar configuração, identificar e envolver as pessoas interessadas pelo projeto, monitorar e controlar o processo, avaliar objetivamente o processo, revisar o s situação e comparar com o próximo nível. CMMI Contínuo – Níveis de Capacidade. ◦ Define uma discreta seqüência para melhoria de uma área de processo. ◦ Permite uma flexibilidade na escolha das áreas de processo a serem melhoradas. Assim, a organização pode direcionar seus esforços de melhoria nas áreas que julgar mais relevantes para o desenvolvimento como um todo. Níveis Descrição Nível 0 Incompleto Quando uma área não é executada ou é parcialmente executada. Isto é, um ou mais objetivos específicos da área não é executado. Nível 1 Executado Uma área de processo é executada quando o objetivo genérico e todos os objetivos específicos da área são satisfeitos. Uma área de processo gerenciada é uma área executada que também é planejada, está de acordo com uma política, emprega pessoas com habilidades técnicas para produzir adequadamente seus produtos, envolve as pessoas que tem interesses no projeto, é monitorado, controlado e revisado. Uma área de processo definida é uma área gerenciada e que está de acordo um conjunto de processos padrões da organização. Nível 2 Gerenciado Nível 3 Definido Nível 4 Quantitativament e Gerenciado Uma área de processo quantitativamente gerenciada é uma área definida que é controlada utilizando estatísticas e outras técnicas quantitativas. Os objetivos quantitativos para a qualidade e desempenho do processo são estabelecidos e usados como critério no gerenciamento do processo. Nível 5 Otimizado Uma área de processo otimizada é uma área quantitativamente gerenciada que é modificada e adaptada para atingir os objetivos de negócio. Um processo otimizado focaliza em melhorais tecnológicas incrementais e inovadoras. Organizadas em: Área de Processo 1 Objetivo Específico Área de Processo 2 Área de Processo n Objetivo Genérico -Gerência de Processo: -Foco no processo organizacional -Definição do processo Organizacional. -Treinamento Organizacional. -Desempenho do Processo Organizacional. -Inovação e Melhoria Organizacional. -Gerência de Projeto: Práticas Específicas Práticas Genéricas Níveis de Capacidade -Planejamento do projeto. -Acompanhamento do Projeto. -Gerência de Acordos com Fornecedores. -Gerência Integrada de Projetos. -Gerência de Riscos. -Gerência Quantitativa de Projeto. -Engenharia: -Gerência de Requisitos. -Desenvolvimento de Requisitos. -Solução Técnica. -Integração de Produto. -Verificação. -Validação. -Suporte: -Gerência de Configuração -Garantia de Qualidade de Processo e Produto. -Medição e Análise. -Análise de Decisão e Resolução. -Análise Causal e Resolução. A implementação do CMMI é semelhante ao CMM: Fins de certificação: avaliação formal feito por um auditor credenciado pelo SEI. Fins de melhoria do processo interno (baixo custo). ◦ Melhoria da qualidade de processo sem a necessidade de certificações. ◦ O CMM foi concebido para o desenvolvimento de grandes projetos militares, portanto, para sua aplicação em projetos menores e em outras áreas é necessário um trabalho cuidadoso de interpretação e adequação à realidade da organização. CPqD – Gestão de Recursos e Telecomunicações. http://www.cpqd.com.br/ Software Engineering Institute http://www.sei.cmu.edu/cmmi/ Fonte: http://www.blogcmmi.com.br/avaliacao/como-anda-o-cmmi-no-mundo-2011 DÚVIDAS SOBRE CMMI????? Característica: Modelo de qualidade de processo voltado para a realidade do mercado de empresas de desenvolvimento de software no Brasil. Metas: ◦ é definir e aprimorar um modelo de melhoria e avaliação de processo de software, visando preferencialmente às micro, pequenas e médias empresas, de forma a atender as suas necessidades de negócio, e ◦ ser reconhecido nacional e internacionalmente como um modelo aplicável à indústria de software. Versão atual de 2009. Baseado no CMMI, e em conformidade com ISO/IEC 12207 e ISO/IEC 15504 e na realidade do mercado brasileiro. O CMMI em Estágios prevê o amadurecimento dos processos em apenas 4 níveis. Problema: O amadurecimento é mais lento e gradual no Brasil. Criação: criado em dezembro de 2003, coordenado e projetado pela Associação para Promoção da Excelência do Software Brasileiro (SOFTEX) e universidades brasileiras, que conta com apoio: ◦ Ministério da Ciência e Tecnologia (MCT), ◦ Financiadora de Estudos e Projetos (FINEP), ◦ Serviço Brasileiro de Apoio às Micro e Pequenas Empresas (SEBRAE) e ◦ Banco Interamericano de Desenvolvimento (BID). Solução: dividir os 4 níveis do CMMI em sete, que vão do G ao A. Vantagens: custo reduzido de certificação em relação as normas estrangeiras, sendo ideal para micro, pequenas e médias empresas. “O MPS.BR descreve um modelo de amadurecimento gradual dos processos de desenvolvimento de software. Ou seja, você não precisar melhorar tudo de uma vez. Pode fazer isso aos poucos, de forma gradual. É para isso que servem os níveis de maturidade”. 5 4 3 A Em Otimização Gerenciado Quantitativamente B Definido C Largamente Definido D E Parcialmente Definido 2 F Gerenciado G Parcialmente Gerenciado Relacionamento com o CMMI MPS.BR Nível G (parcialmente gerenciado): gerência de requisitos e a gerência do projeto. Nível F (gerenciado): medição, gerência de configuração, gerência de aquisição e garantia de qualidade. Nível E (parcialmente definido): processos de treinamento, avaliação e melhoria do processo organizacional, definição do processo organizacional e adaptação do processo para gerência de projeto. Nível D (largamente definido): desenvolvimento de requisitos, solução técnica, integração de produto, instalação do produto, liberação do produto, verificação e validação. Nível C (definido): correspondente ao nível 3 do CMMI - analise de decisão e resolução e a gerência de riscos. Nível B (gerenciado quantitativamente): correspondente ao CMMI nível 4 - o desempenho de processo organizacional e a gerência quantitativa do projeto. Nível A (em otimização): correspondente ao nível CMMI nível 5 - inovação e implantação na organização e a análise e resolução de causas. MPS.BR CMMI A Nível 5 – Otimizado B Nível 4 – Gerenciado Quantitativamente C D Nível 3 – Definido E F G Nível 2 – Gerenciado Total de empresas avaliadas: 75 empresas. Fonte: http://www.mct.gov.br/upd_blob/0214/214567.pdf Documentação CMMI, disponível em: SEI: www.sei.cmu.edu/cmmi CPqD: www.cpqd.com.br Documentação MPS.BR: Softex:www.softex.br MCT: www.mct.gov.br “Para que haja luz não bastará temer a presença da sombra. É preciso acendê-la”. (André Luiz) CMMI Capability Maturity Model Integration, Version 1.1, CMMI for Software Engineering, (CMMI-SW, V1.1) Staged Representation, Improving processes for better products (CMU/SEI-2002-TR-029/ESC-TR-2002-029). Carnegie Mellon University. Software Engineering Institute, Pittsburgh, August, 2002a. 639 p. CMMI Capability Maturity Model Integration, Version 1.1, CMMI for Software Engineering (CMMI-SW, V1.1), Continuous Representation, Improving processes for better products (CMU/SEI-2002-TR-028/ESC-TR-2002-028), Carnegie Mellon University. Software Engineering Institute, Pittsburgh, August, 2002b. 645 p. http://www.softex.br/mpsbr/_home/default.asp http://www.blogcmmi.com.br http://www.mct.gov.br