Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Rafael Targino rtargino@unicarioca.edu.br @rafatargino QUALIDADE DE SOFTWARE Unidade II - Qualidade do Processo 2 Programa da Aula • Qualidade de Processo de Software • Norma ISO/IEC 12207 • Norma ISO/IEC 15504 • CMMI • MPS.Br • Qualidade do produto não se atinge de forma espontânea. • A qualidade dos produtos de software depende fortemente da qualidade do processo de software usado para desenvolvê-los. • Um bom processo de software não garante que os produtos de software produzidos são de boa qualidade, mas é um indicativo de que a organização é capaz de produzir bons produtos de software . Produto X Processo 3 A implantação de um Programa de Qualidade de Software começa, normalmente, pela definição e implantação de um processo de software. O Significado de Processo • Cada processo recebe entradas • Entradas são transformadas por um processo. • Um processo gera saídas (os produtos do processo). • Clientes são receptores das saídas. • Fornecedores são provedores de serviços ou matérias-primas (entradas do processo). 4 Processo de Software • Sub-processos – Atividades – Sub-atividades – Pré-atividades – Artefatos • Insumos • Produtos – Recursos • Humanos • Software • Hardware – Procedimentos • Métodos • Técnicas • Roteiros Programa da Aula • Qualidade de Processo de Software • Norma ISO/IEC 12207 • Norma ISO/IEC 15504 • CMMI • MPS.Br 5 Norma ISO/IEC 12207 • Em 1989 o JTC1 iniciou o desenvolvimento da ISO 12207, com o objetivo de identificar os Processos do Ciclo de Vida de Software. • Foi desenvolvida com a participação de vários países, dentre eles o Brasil. • Publicada em 1995 (versão NBR em 1998) • Sofreu duas emendas: – Amd 1 (2002): introdução de novos processos e definição de propósitos e resultados esperados para cada processo. – Amd 2 (2004): trata de um número de questões técnicas e editoriais menores na Amd 1. Norma ISO/IEC 12207 • Estabelece uma estrutura comum para os processos de ciclo de vida de software, com terminologia bem definida, que pode ser referenciada pela indústria de software. • Contém um conjunto de processos, atividades e tarefas projetado para ser adaptado de acordo com cada projeto de software. • A estrutura cobre o ciclo de vida do software desde a concepção de ideias até a descontinuação do software. 6 O que não tem na Norma ISO/IEC 12207 • Não pretende prescrever o nome, formato ou conteúdo explícito da documentação a ser produzida. • Não prescreve um modelo específico de ciclo de vida ou métodos de desenvolvimento de software. – As partes envolvidas são responsáveis pela seleção de um modelo de ciclo de vida para o projeto e pelo mapeamento dos processos, atividades e tarefas dentro desse modelo. Estrutura da ISO/IEC 12207 • Processos possuem propósito e resultado(s). Todos os processos possuem pelo menos uma atividade. Os processos, junto com suas declarações de propósito e resultados, constituem um Modelo de Referência de Processo. • Atividades são unidades de construção usadas para agrupar tarefas relacionadas. • Uma tarefa é uma cláusula detalhada para a implementação de um processo. Pode ser um requisito (deve - “shall”), uma recomendação (deveria - “should”) ou uma permissão (pode- “may”). • Notas são usadas quando uma informação explanatória é necessária para melhor descrever a intenção ou os mecanismos de um processo 7 Estrutura da ISO/IEC 12207 • Propósito do Processo: – O principal objetivo da execução do processo. Convém que a implementação do processo forneça benefícios tangíveis aos envolvidos. • Resultado do Processo: – Um resultado observável da realização com sucesso do propósito do processo. – Um resultado pode ser: • um artefato produzido; • uma mudança significativa de estado; e • o atendimento das especificações, como por exemplo: requisitos, metas etc. Estrutura da ISO/IEC 12207 • 24 processos – Agrupados em 4 categorias • 95 atividades • 325 tarefas • 224 resultados 8 Categorias de Processo • Os processos da ISO/IEC 12207 são agrupados em quatro categorias: – Fundamentais: constituem um conjunto de processos que atendem às partes fundamentais (pessoa ou organização / adquirente, fornecedora, desenvolvedora, operadora ou mantenedora do software). – De Apoio: auxiliam um outro processo e contribuem para o sucesso e qualidade do projeto, podendo ser realizados, quando necessário, por outro processo. – Organizacionais: empregados por uma organização para estabelecer e implementar uma estrutura subjacente, constituída de processos de ciclo de vida e pessoal associados, e melhorar continuamente a estrutura e os processos. São tipicamente empregados fora do domínio de projetos e contratos específicos. – Há, ainda, o processo de adaptação, que define as atividades básicas necessárias para executar as adaptações. Processos da ISO/IEC 12207 Processos Fundamentais Processos de Apoio P ro ce sso d e A d a p ta çã o Aquisição Documentação Fornecimento Gerência de Configuração Desenvolvimento Operação Garantia da Qualidade Verificação Validação Revisão Conjunta Manutenção Auditoria Usabilidade Gerência de Resolução de Problemas Gerência de Solicitação de Mudanças Avaliação do Produto Processos Organizacionais Gerência Engenharia de Domínio MelhoriaGestão de Ativos Infra-estrutura Gestão de Programa de Reúso Recursos Humanos 9 Processos Fundamentais e seus Propósitos • Aquisição: obter um produto e/ou serviço que satisfaça a necessidade expressa pelo cliente. • Fornecimento: fornecer um produto ou serviço ao cliente que atenda aos requisitos acordados. • Desenvolvimento: transformar um conjunto de requisitos em um produto de software ou um sistema baseado em software que atenda às necessidades explicitadas pelo cliente. • Operação: operar o produto de software no seu ambiente e fornecer suporte aos clientes desse produto. • Manutenção: modificar um produto de software/sistema após sua entrega para corrigir falhas, melhorar o desempenho ou outros atributos, ou adaptá-lo a mudanças no ambiente. Processos de Apoio e seus Propósitos (1/3) • Documentação: desenvolver e manter registradas as informações do software produzidas por um processo. • Gerência de Configuração: estabelecer e manter a integridade de todos os produtos de trabalho de um processo ou projeto e disponibilizá-los a todos os envolvidos. • Garantia da Qualidade: fornecer garantia de que os produtos de trabalho e processos estão em conformidade com os planos e condições predefinidos. 10 Processos de Apoio e seus Propósitos (2/3) • Verificação: confirmar que cada produto de trabalho de software e/ou serviço de um processo ou projeto reflete apropriadamente os requisitos especificados. • Validação: confirmar que são atendidos os requisitos de um uso específico pretendido para o produto de trabalho de software. • Revisão Conjunta: manter um entendimento comum com os envolvidos (stakeholders) a respeito do progresso obtido em relação aos objetivos acordados e ao que deveria ser feito. • Auditoria: determinar, de forma independente, a conformidade dos produtos e processos selecionados com os requisitos, planos e contratos, quando apropriado. Processos de Apoio e seus Propósitos (3/3) • Gerência de Resolução de Problema: assegurar que todos os problemas identificados são analisados e resolvidos e que as tendências são identificadas. • Usabilidade: garantir que sejam considerados os interesses e necessidades dos envolvidos de forma a proporcionar otimização do suporte e do treinamento, aumento da produtividade eda qualidade do trabalho, melhoria das condições para o trabalho humano e redução das chances de rejeição do sistema por parte do usuário. • Avaliação de Produto: garantir, através de exame e medição sistemáticos, que o produto atende às necessidades especificadas e implícitas dos seus usuários. 11 Processos Organizacionais e seus Propósitos (1/2) • Gerência: organizar, monitorar e controlar a iniciação e a execução de qualquer processo de forma a atingir as suas metas de acordo com as metas de negócio da organização. É estabelecido por uma organização para garantir a aplicação consistente de práticas por parte da organização e dos projetos. • Infraestrutura: manter uma infraestrutura estável e confiável, necessária para apoiar a execução de qualquer outro processo. A infraestrutura pode incluir hardware, software, métodos, ferramentas, técnicas, padrões e instalações para o desenvolvimento, a operação ou a manutenção. • Melhoria: estabelecer, avaliar, medir, controlar e melhorar um processo de ciclo de vida de software. Processos Organizacionais e seus Propósitos (2/2) • Recursos Humanos: fornecer à organização os recursos humanos adequados e manter as suas competências consistentes com as necessidades do negócio. • Gestão de Ativos: gerenciar a vida dos ativos reutilizáveis desde a sua concepção até a sua descontinuação. • Gestão do Programa de Reuso: planejar, estabelecer, gerenciar, controlar e monitorar esse programa em uma organização e sistematicamente explorar as oportunidades de reuso. • Engenharia de Domínio: desenvolver e manter modelos, arquiteturas e ativos de domínio. 12 Exemplo de Atividades de um Processo • Atividades do Processo de Desenvolvimento na ISO/IEC 12207 – Implementação do processo; – Análise dos requisitos do sistema; – Projeto da arquitetura do sistema; – Análise dos requisitos do software; – Projeto de arquitetura do software; – Projeto detalhado do software; – Codificação e testes do software; – Integração do software; – Testes de qualificação do software; – Integração do sistema; – Teste de qualificação do sistema; – Instalação do software; – Apoio à aceitação do software Exemplo de Tarefas de uma Atividade • Tarefas da Atividade “Análise dos requisitos do software” na ISO/IEC 12207: – O desenvolvedor deve estabelecer e documentar os requisitos do software, incluindo as especificações das seguintes características de qualidade: – (i) especificações funcionais e de capacidade, – (ii) interfaces externas ao item de software, – (iii) requisitos de qualificação, – (iv) especificações de proteção, segurança e de engenharia de fatores humanos (ergonomia), – (vi) definição de dados e requisitos de bases de dados, – (vii) requisitos de instalação e aceitação do produto, – (viii) documentação do usuário, – (ix) requisitos do usuário para execução, operação e manutenção. Um guia para especificar as características de qualidade pode ser encontrado na ISO/IEC 9126. 13 Exercício/Discussão em Sala de Aula • Considerando: – A Norma ISO/IEC 12207 não especifica os detalhes de como implementar ou executar as atividades e tarefas incluídas nos processos. – As partes envolvidas são responsáveis pela seleção de um modelo de ciclo de vida para o projeto e pelo mapeamento dos processos, atividades e tarefas dentro desse modelo. • Como ficaria a adaptação dos processos definidos na ISO/IEC 12207 nos modelos de ciclo de vida Cascata, Espiral e Scrum? Programa da Aula • Qualidade de Processo de Software • Norma ISO/IEC 12207 • Norma ISO/IEC 15504 • CMMI • MPS.Br 14 ISO/IEC 15504 • Apresenta uma estrutura para Avaliação (e Melhoria) de Processo • Contextos de Utilização: – Melhoria Contínua: avaliação identifica oportunidades de melhoria. Feita por organizações que buscam melhorias internas – Determinação da Capacidade: avaliação identifica riscos com o fornecedor. Feita por terceiros ao realizarem contratos de prestação de serviços ou fornecimento de produtos. ISO/IEC 15504 • Também conhecida como SPICE • É uma norma internacional. • É genérica, não sendo mais dedicada exclusivamente a software. • Introduz o conceito de Modelo de Referência de Processo, que é externo à norma. • Para ser aplicada a software, deve ser complementada. • A ISO 12207 pode ser o Modelo de Referência de Processo, quando a ISO 15504 for aplicada à software. 15 Melhoria da Organização Decisão e comprometimento para a melhoria Institucionaliza a melhoria Prepara institucionalização da melhoria Inicia ciclo de melhoria Avalia práticas correntes Planeja ações de melhoria Realiza ações de melhoria Abordagem de um Programa de Melhoria de Processo ISO 15504: Processo de Avaliação Modelo de Referência de Processo • Domínio e Escopo • Propósito do Processo • Resultados Esperados Arcabouço de Medição • Níveis de Capacidade • Atributos de Processo • Escala de Classificação Modelo de Avaliação de Processo Processo de Avaliação Planejamento Coleta de Dados Validação dos Dados Classificação dos Atributos de Processo Relatório Papéis e Responsabilidades Entradas Saídas Seção 4.2 Seção 4.3 Seção 4.4 Seção 4.5 Seção 5 16 ISO/IEC 15504: Dimensões • Dimensão de Processo: se limita à verificação da execução ou não dos processos. • Dimensão de Capacidade: permite uma avaliação detalhada dos processos executados por uma organização. Trabalha com: – Atributos de processo – Níveis de capacidade Processo executado dentro de limites de controle definidos e com medições detalhadas e analisadas Processo planejado e acompanhando, e satisfaz requisitos definidos de: ✓ qualidade, ✓ prazo, ✓ e custos Processo executado e gerenciado com uma adaptação de um processo padrão definido, eficaz e eficiente Processo geralmente atinge os objetivos, porém sem padrão de qualidade e sem controle de prazos e custos 5 Otimizando 4 Previsível 3 Estabelecido 2 Gerenciado 1 Executado 0 Incompleto Processo não existe ou falha em atingir seus objetivos Processo melhorado continuamente de forma disciplinada ISO 15504: Níveis de Capacidade 17 Programa da Aula • Qualidade de Processo de Software • Norma ISO/IEC 12207 • Norma ISO/IEC 15504 • CMMI • MPS.Br CMMI (Capability Maturity Model Integration) • É 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. • 22 Áreas de Processo (disciplinas) 18 CMMI (Capability Maturity Model Integration) • Criado pelo SEI (Software Engineering Institute) em 1991 por solicitação do Departamento de Defesa dos EUA para avaliação da capacidade de seus fornecedores. • Inicialmente o modelo focava apenas no software – Chamado de CMM Por que a utilização de modelos de qualidade como o CMMI tiveram grande adoção? • Tendência cada vez maior que as empresas que não tenham a TI como sua atividade fim de passar o desenvolvimento de software para fornecedores externos – Fábricas de Software – Fábricas de Teste • Governo brasileiro adotando a obrigatoriedade da empresa fornecedora de estar em conformidade com o modelo • Processo de Certificação/Auditoria – É caro! • Indústria de consultoria, auditoria e certificadora – As vezes o modelo só é seguido quando a auditoria está sendo feita. 19 Fluxo Típico de Desenvolvimento com Fábrica de Software Engenharia de Software OrganizaçãoCliente Fábrica de Software Requisitos Especificações de Software Verificação das Especificações Código Executável Verificação e Validação (Homologação) Terceirização - Fábrica de Testes • A Fábrica de Testes deve gerenciar todas as demandas de testes e inspeções e estabelecer modelos que suportem tanto os testes manuais quanto os automatizados, estabelecendo uma metodologia única de testes, independente da tecnologia empregada. • A Fábrica de Testes irá trabalhar verificando e validando os artefatos produzidos pela Fábrica de Software. Engenharia de Software 20 Fluxo Típico de Desenvolvimento com Fábrica de Software Engenharia de Software Organização Cliente Fábrica de Software Requisitos Especificações de Software Verificação das Especificações Verificação Fábrica de Testes Código Executável Validação (Homologação) Requisitos Ranking CMMI (Maturity Profile 09/2015) 21 Páises com organizações CMMI nível 5 CMMI – O Processo de Avaliação no Brasil Total de Empresas Certificadas no Brasil por nível (2014) 22 CMMI – Investimento e Tempo de Maturação • O investimento médio para adequação dos processos às práticas do CMMI é de R$ 250 mil, mas existe variação do investimento de acordo com os cenários avaliados. • No Brasil, esse valor já oscilou entre R$ 150 mil e R$ 1,5 milhões. • O tempo médio para chegar a um nível de maturidade oscila entre 12 e 45 meses (tanto o investimento quanto o tempo variam de acordo com o porte da unidade avaliada e o nível de maturidade almejado). 3 modelos divididos em áreas de conhecimento: CMMI for Development - (CMMI-DEV), voltado ao processo de desenvolvimento de produtos e serviços. CMMI for Services (CMMI-SVC), voltado aos processos de aquisição e terceirização de bens e serviços. CMMI for Acquisition (CMMI-AQU), voltado aos processos de empresas prestadoras de serviços. CMMI (Capability Maturity Model Integration) 23 CMMI (Capability Maturity Model Integration) • É definido em termos de áreas de Processo (PAs): – Ex: Planejamento de Projeto, Monitoração e Controle de Projetos, etc. • Cada área de processos (PA) é definida em termos de Objetivos Específicos (SGs) e Práticas Específicas (SPs) que são necessárias para satisfazê-los. • 22 Áreas de Processo (disciplinas) CMMI (Capability Maturity Model Integration) 24 Áreas de Processo de Engenharia: Gerência de Requisitos (REQM) Desenvolvimento de Requisitos (RD) Solução Técnica (TS) Integração do Produto (PI) Verificação (VER) Validação (VAL) CMMI (Capability Maturity Model Integration) Áreas de Processo de Gerência de Projetos: Planejamento de Projeto (PP) Monitoração e Controle de Projeto (PMC) Acordo com Fornecedores (SAM) Gerência Integrada do Projeto (IPM) Gerência de Riscos (RSKM) Gerência Quantitativa do Projeto (QPM) CMMI (Capability Maturity Model Integration) 25 Áreas de Processo de Gerência de Processos: Definição do Processo Organizacional (OPD) Foco no Processo Organizacional (OPF) Treinamento Organizacional (OT) Desempenho do Processo Organizacional (OPP) Implantação de Inovações na Organização (OID) CMMI (Capability Maturity Model Integration) Áreas de Processo de Suporte (Guarda-Chuva): Garantia da Qualidade do Processo e do Produto (PPQA) Gerência de Configuração (CM) Medição e Análise (MA) Análise de Decisão e Resolução (DAR) Análise de Causas e Resolução (CAR) CMMI (Capability Maturity Model Integration) 26 CMMI (Capability Maturity Model Integration) • Exemplo – Área de Processo / Objetivo Específico / Prática Específica – Planejamento do Projeto • OE 1 Estabelecer Estimativas – PE 1.1 Estime o escopo do projeto – PE 1.2 Estabeleça estimativas de produto do trabalho e atributos de tarefas – PE 1.3 Defina o ciclo de vida do projeto – PE 1.4 Determine estimativas de esforço e custo • OE 2 Desenvolver um Plano do Projeto – PE 2.1 Estabeleça o orçamento e o cronograma – PE 2.2 Identifique os riscos de projeto – PE 2.3 Planeje a gestão de dados – PE 2.4 Planeje a gestão de recursos CMMI – Duas formas de Avaliação / Representação por Estágio x Contínua • Por Estágios – 5 Níveis de Maturidade (nível 1 ao 5) – Agrupamento de Áreas de Processo por Nível – Avaliação da Organização / Unidade Organizacional como um todo • Contínua – Níveis de Capacidade (nível 0 ao 5) – Agrupamento de Áreas de Processo por Categoria – Avaliação da Capacidade nas Áreas de Processo • As PAs do CMMI são as mesmas para ambas as representações. 27 Representações por Estágio x Contínua Em Estágios NM1 NM2 NM3 NM4 NM5 Um conjunto de áreas de processo de um nível de maturidade (NM). PA PA C a p a c id a d e PA Contínua Uma única área de processo (PA) ou um conjunto de áreas de processo. Representação por Estágios Nível de Maturidade • Um nível de maturidade é um patamar evolutivo bem definido, que visa a alcançar um processo de software maduro. • Os níveis são uma forma de priorizar as ações de melhoria, de tal forma que se aumente a maturidade do processo de software. • No nível 2 por exemplo, são focados aspectos gerenciais dos projetos. 28 • O conceito de maturidade é baseado na noção de que alguns processos provêm mais estrutura e controle do que outros. CMMI – Níveis de Maturidade Processo continuamente melhorado Processo previsível e controlado Processo consistente e padronizado Processo disciplinado 1- Inicial 2- Repetível 3- Definido 4- Gerenciado 5- Otimizado Processo imprevisível e sem controle CMMI: Nível 1 (Inicial) entrada saída • O processo de software é caracterizado como sendo imprevisível e ocasionalmente caótico. • Poucos processos são definidos e o sucesso depende de esforços individuais e, muitas vezes, heroicos. • O processo de software é uma caixa preta, de forma que somente as entradas e os produtos finais podem ser vistos com clareza. 29 CMMI: Nível 1 • Organizações no nível 1 apresentam deficiências de planejamento e enfrentam dificuldades ao realizarem previsões. • Cronogramas e planos são irrealistas. • Como não há credibilidade no planejamento, mesmo aquilo que foi planejado não é seguido. • Não há controle de requisitos e o cliente só os avalia na entrega do produto. • É comum passar diretamente dos requisitos à codificação. • A documentação é encarada como algo inútil. • São comuns reações intransigentes à coleta de dados e ao uso de padrões, documentação e ferramentas. CMMI: Nível 2 (Repetível) entrada saída • Processos básicos de gerência de projetos são estabelecidos para controle de custos, prazos e escopo. • É possível repetir sucessos de projetos anteriores em aplicações similares. • Ao invés do processo ser uma única caixa preta, ele passa a ser uma sequência de caixas pretas que asseguram a visibilidade em determinados pontos, os marcos do projeto. 30 CMMI: Nível 2 • Neste nível, organizações têm maior probabilidade de cumprir compromissos de requisitos, prazos e custos, mas desde que sejam semelhantes a outros realizados anteriormente. • A organização é disciplinada, mas não está bem preparada para mudanças. • Há preocupação com a gerência do projeto. Os gerentes acompanham custos, cronogramas e funcionalidades de cada um dos projetos. Porém, a gerência ainda não é proativa, tomando ações normalmente quando se está diante de uma crise. • Os projetos podem ter processos diferentes. No entanto, existe uma política para guiar os projetos no estabelecimento dessesprocessos. • Controla-se a evolução dos requisitos, permitindo avaliações ao final de cada marco do projeto, e controla-se, também, a evolução das configurações do software. CMMI: KPAs do Nível 2 • Gerência de Requisitos • Planejamento de Projetos • Supervisão e Acompanhamento de Projetos • Gerência da Subcontratação de Software • Garantia da Qualidade de Software • Gerência de Configuração de Software 31 CMMI: Nível 3 (Definido) entrada saída • Um processo de software, composto por atividades de gerência e engenharia, é documentado, padronizado e integrado em um processo de software padrão da organização. • Todos os projetos utilizam uma versão aprovada e adaptada do processo organizacional para desenvolvimento e manutenção de software. • A organização interna das tarefas está definida e visível CMMI: Nível 3 • Processos utilizados são estabelecidos e padronizados em toda a organização. • Os processos pertencem à organização e não aos projetos. • O Grupo de Processos (Software Engineering Process Group - SEPG) é responsável pelos processos da organização. • Apesar da padronização, é possível adaptar os processos para as necessidades particulares de um projeto. • Processos de engenharia de software são considerados ao lado dos processos gerenciais. • Há treinamento técnico e gerencial. • A organização consegue se manter dentro do processo mesmo em períodos de crise. • Como o processo é bem definido, caso um desenvolvedor abandone o projeto antes de seu término, o impacto é relativamente menor que nos níveis anteriores. • Passagem do nível 2 para o 3: a padronização realizada é a oportunidade de escolher as melhores práticas existentes na organização. 32 CMMI: KPAs do Nível 3 • Foco no Processo da Organização • Definição do Processo da Organização • Programa de Treinamento • Gerência de Software Integrada • Coordenação entre grupos • Engenharia de Produtos de Software • Revisão por Pares CMMI: Nível 4 (Gerenciado) entrada saída • Métricas detalhadas do processo de software e da qualidade do produto são coletadas. • Tanto o processo como o produto de software são quantitativamente compreendidos e controlados. 33 CMMI: Nível 4 • A organização estabelece metas quantitativas de qualidade e produtividade para as atividades do processo e para os produtos produzidos são estabelecidas para cada projeto. • Medidas de qualidade e produtividade são coletadas em todos os projetos como parte de um processo organizacional de medição e estabelecem uma base quantitativa para que os gerentes possam avaliar o progresso do desenvolvimento e a ocorrência de problemas. • Os projetos melhoram o seu controle sobre os produtos e processos e a variância das medidas é diminuída. • É estabelecido o controle estatístico de processos. • Uma organização no nível 4 passa a ter uma gestão feita com bases quantitativas. CMMI: KPAs do Nível 4 • Gerência Quantitativa dos Processos • Gerência da Qualidade de Software 34 CMMI: Nível 5 (Otimizado) entrada saída • A melhoria contínua do processo é estabelecida por meio de sua avaliação quantitativa, e da implantação planejada e controlada de tecnologias e idéias inovadoras. CMMI: Nível 5 • A organização está engajada na melhoria contínua de seus processos, possuindo meios para identificar fraquezas e fortalecer o processo de forma proativa, prevenindo defeitos. • O entendimento do processo ultrapassa os processos praticados, possibilitando compreender os efeitos de alterações potenciais no processo. • Melhorias em processos e tecnologias são planejadas e executadas como parte das atividades de rotina. • Mudanças mais significativas de processos ou de tecnologias são feitas a partir de análises de custo / benefício com base em dados quantitativos cuja coleta iniciou-se no nível 4. 35 CMMI: KPAs do Nível 5 • Prevenção de Defeitos • Gerência da Evolução dos Processos • Gerência da Evolução das Tecnologias CMMI – Representação por Estágios Níveis de Maturidade 36 Áreas de Processo por Cada Estágio Representação Contínua: Motivação • A abordagem estagiada representa que uma organização deverá cumprir todos os objetivos específicos de uma área de processo – Exemplo: Área de Processo de Desenvolvimento de Requisitos • Estabelece 6 Níveis de Capacidade • Cada Área de Processo existem Metas Específicas e Genéricas e para cada uma é definida os níveis de capacidade 37 Representação Contínua: Estrutura Generic Practices Generic Goals Process Area 2Process Area 1 Process Area n Specific Goals Specific Practices Práticas Genéricas Metas Genéricas Área de Processo 2Área de Processo 1 Área de Processo n Metas Específicas Práticas Específicas Níveis de Capacidade Representação Contínua • Um nível de capacidade descreve a capacidade 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. 38 Representação Contínua: Vantagens • Fornece maior flexibilidade focando em áreas de processo específicas de acordo com metas e objetivos de negócio • Permite a comparação de áreas de processo entre diferentes organizações • Foco bem definido nos riscos específicos de cada área de processo • Estrutura compatível com a ISO/IEC 15504 Representação Contínua 5 Otimizado 4 Gerenciado Quantitativamente 3 Definido 2 Gerenciado 1 Realizado 0 Incompleto Níveis de Capacidade 39 Exercício • Considerando o cenário abaixo, discuta quais áreas de processos do CMMI são mais necessárias nesta empresa? Dica: foque no Nível 2 de maturidade por estágios. – A empresa faz o levantamento dos requisitos com o cliente tentando esclarecer todas as ambiguidades. – Após a fase de levantamento dos requisitos, o projeto passa para a fase de codificação. – Ao final da codificação e geração do executável, o projeto é testado. – Só após o teste, o cliente é acionado novamente para a entrega do código gerado. – Durante a fase de codificação e após verificar um atraso no cronograma, mais profissionais foram incluídos na equipe e parte do projeto foi terceirizada. – Após a codificação do produto, toda a equipe foi deslocada para o desenvolvimento de outro projeto. Programa da Aula • Qualidade de Processo de Software • Norma ISO/IEC 12207 • Norma ISO/IEC 15504 • CMMI • MPS.Br 40 MPS.Br - Motivação • Em 2003, dados da Secretaria de Política de Informática do MCT apontavam que apenas 30 empresas no Brasil possuíam avaliação CMM e 214 possuíam certificação ISO 9001. • Claramente, as empresas locais favoreceram a ISO 9000. • Dados de uma pesquisa do MIT 1, apontavam que até 2003, na Índia 32 empresas atingiram o nível 5 do CMM, enquanto a China tinha apenas uma e o Brasil nenhuma. • Em relação ao CMM, a maioria das empresas chinesas e brasileiras não estava em um nível suficientemente alto de maturidade do processo para competir com as empresas indianas. 1 Ref: Slicing the Knowledge-based Economy in Brazil, China and India: a tale of 3 software industries [MIT, 2003] Como atingir níveis de maturidade CMMI no Brasil? Empresas exportadoras e grandes Níveis de maturidade CMMI 4 e 5 Custo não é crítico – 4 a 10 anos Pequenas emédias Níveis de maturidade 2 e 3 Custo é crítico – 2 a 3 anos 41 MPS.Br • Objetivo: Melhoria de processos de software nas micros, pequenas e médias empresas (PMEs), a um custo acessível, em diversos locais do país. Como? • Desenvolvimento (e Aprimoramento) do Modelo MPS.Br. • Implementação e Avaliação do Modelo MPS.BR em Empresas, com foco em grupos de empresas • Criado em 2005 com foco nas pequenas e médias empresas brasileiras. • Objetivo: fornecer um caminho viável para a implementação e avaliação de melhoria de processo. • Mantido por equipe técnica composta de pessoas da indústria, academia e governo. MPS.BR 42 MPS.Br MPS.BR Realidade das Empresas Brasileiras ISO /IEC 12207 ISO /IEC 15504 CMMI SOFTEX Governo Universidades Base Técnica CMMI X MPS.BR • 7 níveis de maturidade, o que possibilita uma implantação mais gradual e uma maior visibilidade dos resultados de melhoria de processo, com prazos mais curtos. • Compatibilidade com CMMI, conformidade com as normas ISO/IEC 15504 e 12207. • Adaptado para a realidade brasileira (foco em micro, pequenas e médias empresas). • Custo acessível (em R$) 43 Estrutura do Modelo MPS.Br Programa MPS.BR Modelo de Negócio (MN-MPS) Método de Avaliação (MA-MPS) Guia de Aquisição Guia Geral Modelo de Referência (MR-MPS) Guia de Avaliação Documento do Programa ISO/IEC 12207 Guias de Implementação ISO/IEC 15504CMMI-DEV Modelo de Referência: MR-MPS • Contém as definições dos níveis de maturidade, processos (com propósitos e resultados esperados) e atributos do processo (com resultados esperados). • As atividades e tarefas necessárias para atender ao propósito e aos resultados esperados de um processo não são definidas, ficando a cargo dos usuários do MR- MPS. 44 Níveis de Maturidade • São uma combinação entre processos e sua capacidade. • O progresso e o alcance de um determinado nível de maturidade do MR-MPS se obtém quando são atendidos os propósitos e todos os resultados esperados dos respectivos processos e dos atributos de processo estabelecidos para aquele nível. • Os níveis de maturidade estabelecem patamares de evolução de processos, caracterizando estágios de melhoria da implementação de processos na organização. Níveis de Maturidade • O MR-MPS define sete níveis de maturidade: – A. Em Otimização – B. Gerenciado Quantitativamente – C. Definido – D. Largamente Definido – E. Parcialmente Definido – F. Gerenciado – G. Parcialmente Gerenciado 45 Equivalência com CMMI Níveis de Maturidade Nível MPS.BR Nível CMMI G 2 F E 3 D C B 4 A 5 Equivalência com CMMI Níveis de Maturidade • A divisão em estágios, embora baseada nos níveis de maturidade do CMMI-DEV, tem uma graduação diferente, com o objetivo de possibilitar uma implementação e avaliação mais adequada às micros, pequenas e médias empresas. • A possibilidade de se realizar avaliações considerando mais níveis também permite uma visibilidade dos resultados de melhoria de processos em prazos mais curtos. 46 Níveis de Maturidade e Processos Garantia da Qualidade / Medição Aquisição / Gerência de Configuração Avaliação e Melhoria do Processo Organizacional / Definição do Processo Organizacional / Gerência de Recursos Humanos / Gerência de Reutilização / Gerência de Projetos (evolução) Desenvolvimento de Requisitos / Integração do Produto/ Projeto e Construção do Produto / Verificação / Validação Análise de Decisão e Resolução / Gerência de Reutilização (evolução) / Desenvolvimento para Reutilização / Gerência de Riscos G F E D C Gerência de Requisitos Gerência de Projeto Gerência de Projeto (evolução) Análise de Causas de Problemas e Resolução A B Parcialmente Gerenciado Gerenciado Parcialmente Definido Largamente Definido Definido Gerenciado Quantitativamente Em Otimização Estrutura do MR-MPS • Estrutura – Cada processo é composto de um propósito e de resultados esperados de sua execução, o que permite avaliar e atribuir graus de efetividade na execução do processo. – A capacidade do processo está relacionada ao atendimento dos atributos de processo associados aos processos de cada nível de maturidade. 47 Capacidade do Processo • Expressa o grau de refinamento e institucionalização com que o processo é executado na organização / unidade organizacional. • Está relacionada com o atendimento aos atributos de processo associados aos processos de cada nível de maturidade. • À medida que a organização / unidade organizacional evolui nos níveis de maturidade, um maior nível de capacidade para desempenhar o processo deve ser atingido pela organização. Capacidade e Atributos de Processo • Atributos de Processo (AP): – AP 1.1 – O processo é executado – AP 2.1 – O processo é gerenciado – AP 2.2 – Os produtos de trabalho do processo são gerenciados – AP 3.1 – O processo é definido – AP 3.2 – O processo está implementado – AP 4.1 – O processo é medido – AP 4.2 – O processo é controlado – AP 5.1 – O processo é objeto de inovações – AP 5.2 – O processo é otimizado continuamente Introduzidos na Versão 1.2 48 Níveis de Maturidade e Capacidade Exemplo – Resultados Esperados para o Nível G – Parcialmente Gerenciado Nível Processos Capacidade G Gerência de Projetos Resultados: GPR 1 a GPR 17 GPR 4, 10 e 13 (até o Nível F) AP 1.1 e AP 2.1 Resultados: RAP 1 a RAP 8 sendo RAP 4 (G) Gerência de Requisitos Resultados: GRE 1 a GRE 5 49 Exemplo Nível G: Gerência de Projetos • Resultados Esperados (GPR 1 a GPR 9): 1. O escopo do trabalho para o projeto é definido. 2. As tarefas e os produtos de trabalho do projeto são dimensionados utilizando métodos apropriados. 3. O modelo e as fases do ciclo de vida do projeto são definidas. 4. O esforço e o custo para a execução das tarefas e dos produtos de trabalho são estimados com base em dados históricos ou referências técnicas. 5. O orçamento e o cronograma do projeto, incluindo marcos e/ou pontos de controle, são estabelecidos e mantidos. 6. Os riscos do projeto são identificados e o seu impacto, probabilidade de ocorrência e prioridade de tratamento são determinados e documentados. 7. Os recursos humanos para o projeto são planejados considerando o perfil e o conhecimento necessários para executá-lo. 8. As tarefas, os recursos e o ambiente de trabalho necessários para executar o projeto são planejados. 9. Os dados relevantes do projeto são identificados e planejados quanto à forma de coleta, armazenamento e distribuição. Um mecanismo é estabelecido para acessá-los, incluindo, se pertinente, questões de privacidade e segurança. Exemplo Nível G: Gerência de Projetos • Resultados Esperados (GPR 10 a GPR 17): 10. Planos para a execução do projeto são estabelecidos e reunidos no Plano do Projeto. 11. A viabilidade de atingir as metas do projeto, considerando as restrições e os recursos disponíveis, é avaliada. Se necessário, ajustes são realizados. 12. O Plano do Projeto é revisado com todos os interessados e o compromisso com ele é obtido. 13. O progresso do projeto é monitorado com relação ao estabelecido no Plano do Projeto e os resultados são documentados. 14. O envolvimento das partes interessadas no projeto é gerenciado. 15. Revisões são realizadas em marcos do projeto e conforme estabelecido no planejamento. 16. Registros de problemas identificados e o resultado da análise de questões pertinentes, incluindo dependências críticas, são estabelecidos e tratados com as partes interessadas. 17. Ações paracorrigir desvios em relação ao planejado e para prevenir a repetição dos problemas identificados são estabelecidas, implementadas e acompanhadas até a sua conclusão. 50 Exemplo Nível G: Gerência de Requisitos • Resultados Esperados (GPR 1 a GPR 5): 1. O entendimento dos requisitos é obtido junto aos fornecedores de requisitos;;. 2. Os requisitos de software são aprovados utilizando critérios objetivos; 3. A rastreabilidade bidirecional entre os requisitos e os produtos de trabalho é estabelecida e mantida;; 4. Revisões em planos e produtos de trabalho do projeto são realizadas visando identificar e corrigir inconsistências em relação aos requisitos. 5. Mudanças nos requisitos são gerenciadas ao longo do projeto. Diferenciais do MPS.BR • 7 níveis de maturidade, o que possibilita uma implantação mais gradual e uma maior visibilidade dos resultados de melhoria de processo, com prazos mais curtos. • Compatibilidade com CMMI, conformidade com as normas ISO/IEC 15504 e 12207. • Adaptado para a realidade brasileira (foco em micro, pequenas e médias empresas). • Custo acessível (em R$) 51 Referências Bibliográficas • KOSCIANSKI, A. e SOARES, M. S. Qualidade de Software. NOVATEC. • PRESSMAN, R. S. Engenharia de Software. McGraw Hill, • Notas de Aula do Prof. David Zanetti, Qualidade de Software - Unicarioca
Compartilhar