Baixe o app para aproveitar ainda mais
Prévia do material em texto
Qualidade de Software SW-CMM e CMMI Eduardo Kinder Almentero ekalmentero@gmail.com Modelo SW-CMM • História – SW-CMM (Capability Maturity Model) é um modelo de capacitação de processo, patrocinado pelo Departamento de Defesa dos EUA para avaliação da capacidade dos seus fornecedores de software. – Baseou-se em ideias importantes do movimento de qualidade industrial. – Alguns princípios do modelo foram inspirados por Crosby no livro Quality is Free, onde são descritos 5 níveis de maturidade. – É específico da área de software (não inclui outras áreas como recursos humanos e finanças). – Sendo assim, sua aplicação não garante a viabilidade da organização, mas pode ser um fator importante para melhoria da eficácia e competitividade. – Seu foco é em processos, fator com maior potencial de melhoria a curto prazo. 26/09/2014 Prof. Eduardo Kinder Almentero 2 Níveis do SW-CMM • O objetivo principal é que as organizações conheçam e melhorem seus processos de desenvolvimento de software. – Através de práticas definidas. • A melhoria é baseada em várias passos pequenos e não em grandes revoluções. • Os passos evolucionários do SW-CMM são divididos em 5 níveis, que servem como uma escala para avaliar a maturidade do processo da organização. 26/09/2014 Prof. Eduardo Kinder Almentero 3 Níveis do SW-CMM Nível inicial Nível repetitivo Nível definido Nível gerenciado quantitativamente Nível Otimizado 26/09/2014 Prof. Eduardo Kinder Almentero 4 Processos ad-hoc Processos disciplinados Processos medidos e controlados quantitativamente Processos padronizados Processos melhorados continuamente Níveis do SW-CMM • Cada nível (exceto o primeiro) é composto de várias Áreas-chave de Processo (Key Process Areas [KPAs]). • Cada KPA identifica um grupo de atividades correlatas que realizam um conjunto de metas. • As KPAs de um nível identificam os objetivos que devem ser cumpridos. • São cumulativas, isto é, uma empresa nível 5 satisfaz todas as KPAs dos níveis 2 a 5. 26/09/2014 Prof. Eduardo Kinder Almentero 5 Nível 1 - Inicial • Poucos processos são definidos e o sucesso depende de desempenho (heroísmo) individual. • As organizações podem ser bem sucedidas, mas normalmente isto acontece no desenvolvimento de produtos qual os quais já estiveram envolvidas anteriormente. • Deficiência de planejamento e dificuldade de realizar previsões (geralmente são erradas). • Cronogramas e prazos irrealistas e acabam sendo alterados várias vezes durante o desenvolvimento do software. • Imprevistos são comuns neste contexto e dependem da capacidade individual para serem resolvidos. • Como há a cultura de que planos e previsões não funcionam, o planejamento não é seguido. • É comum passar diretamente dos requisitos para codificação. • Documentação é considerada inútil e é feita apenas por aqueles que entendem sua importância. 26/09/2014 Prof. Eduardo Kinder Almentero 6 Nível 1 - Inicial • Para que seja possível gerenciar a equipe nestas condições, uma mudança cultural é necessária. – A equipe dificilmente acreditará nos benefícios de processos organizados; – Reações intransigentes à coleta de dados e a uso de padrões de desenvolvimento, documentação e ferramentas; • A mudança deve ocorrer lentamente. • O uso de KPAs pode ajudar. • A introdução de cada KPA pode ser planejada, de forma que a equipe se habitue a seguir padrões organizacionais. 26/09/2014 Prof. Eduardo Kinder Almentero 7 Nível 2 - Repetitivo • Para projetos semelhantes a outros realizados anteriormente, organizações neste nível tem maior probabilidade de cumprir compromissos relacionados a requisitos, custos e prazos. – Ex: • Organizações que desenvolvem software para Web adquirem experiência na área para projetos futuros. • Projetos destas organizações que envolvam, por exemplo, desenvolvimento para mainframes terão menos chances de serem bem sucedidos. – Preocupação com a gerência do projeto • Reuniões, acompanhamento do cronograma. – Com isso, é possível identificar problemas, como dificuldade em atingir prazos, antes que apareçam ou se tornem críticos. • Organizações neste nível são disciplinadas ao executar projetos, mas não estão preparadas para mudanças. – São incapazes de prever o resultado da adoção de novas ferramentas e métodos ou do desenvolvimentos de novos produtos. 26/09/2014 Prof. Eduardo Kinder Almentero 8 Nível 2 - Repetitivo • Áreas-chave (KPAs) – Gestão dos requisitos – Planejamento de projetos – Supervisão e acompanhamento de projetos – Gestão da subcontratação – Grupo de garantia da qualidade – Gestão de configurações 26/09/2014 Prof. Eduardo Kinder Almentero 9 Nível 3 - Definido • Sucessos de projetos anteriores não são apenas repetidos. • Estabelece uma infraestrutura de processos que permite adaptação a mudanças. • Ferramentas passam a ser aplicadas de forma sistemática, padronizada e coerente, contribuindo para melhoria da qualidade e produtividade. • Conhecimento basicamente qualitativo sobre os processos. • Processo bem documentado, onde a equipe sabe bem o seu papel. • Gerentes tem maior conhecimento sobre o progresso, pois as atividades são planejadas, estáveis e repetitivas. • Há preocupação para que todos tenham o conhecimento necessário. • Como consequência, há uma melhora na qualidade de software, pois custos, tarefas e prazos estão sob controle. 26/09/2014 Prof. Eduardo Kinder Almentero 10 Nível 3 - Definido • KPAs – Grupo de engenharia de processos de software – Processo-padrão de software no âmbito da organização. – Programas de treinamento. – Gestão integrada de projetos. – Padronização – Coordenação entre grupos que participam de projetos de sistemas – Coordenação de revisões no âmbito da organização. 26/09/2014 Prof. Eduardo Kinder Almentero 11 Nível 4 - Gerenciado • A administração de processo e produtos evolui para um tratamento quantitativo. • A organização é proficiente na coleta de métricas e gere a base de dados do processo. • A qualidade e produtividade são medidas em todos os projetos. • Bases de dados de processos são utilizadas para coletar e analisar dados disponíveis a partir dos processos definidos. • Métricas quantitativas são estabelecidas para avaliar os processos e produtos. • Riscos são cuidadosamente gerenciados. • Como resultado do maior controle, coleta de dados e gerenciamento dos riscos, produtos tendem a apresentar maior qualidade. 26/09/2014 Prof. Eduardo Kinder Almentero 12 Nível 4 - Gerenciado • KPAs – Gestão quantitativa dos processos – Gestão da qualidade de software 26/09/2014 Prof. Eduardo Kinder Almentero 13 Nível 5 - Otimizado • Processos em melhoria contínua, otimizados para as necessidades de cada momento. • Pontos fracos de cada processo são identificados e ações são tomadas para que sejam melhorados. • A equipe avalia constantemente a adoção de novas tecnologias e processos. • Defeitos são identificados e resolvidos e suas causas são estudadas. • Lições com erros e acertos são utilizadas em processos seguintes. 26/09/2014 Prof. Eduardo Kinder Almentero 14 Nível 5 - Otimizado • KPAs – Prevenção dos defeitos. – Gestão da evolução tecnológica. – Gestão das mudanças de processos. 26/09/2014 Prof. Eduardo Kinder Almentero 15 Modelo CMMI • História – Com o sucesso do SW-CMM modelos semelhantes foram criados para outras áreas • Gestão de recursos humanos (P-CMM), aquisição de software (SA- CMM) e engenharia de sistemas (SE-CMM) – Os diversos padrões apresentam estrutura, termos e formatos diferentes, causando confusão quando eram utilizados em conjunto.– Para integrar os diversos modelos, e como uma evolução do CMM, foi criado o CMMI (Capability Maturity Model Integration). – Durante a construção do CMMI houve preocupação com sua evolução e, por isso, foi projetado prevendo a integração com outros modelos. 26/09/2014 Prof. Eduardo Kinder Almentero 16 CMMI • O objetivo do modelo é servir de guia para a melhoria de processos e também da habilidade dos profissionais em gerenciar o desenvolvimento, aquisição e manutenção de produtos ou serviços. • Assim como no SW-CMM, é esperado que com a adoção do CMMI a organização seja mais eficiente, respeite os prazos e construa software com menos erros. • Estudos indicam que estes objetivos tem sido atingidos. 26/09/2014 Prof. Eduardo Kinder Almentero 17 Termos Importantes do CMMI • Áreas de Processo – Conjunto de práticas que, quando executadas coletivamente, satisfaz um conjunto de objetivos. • Objetivos específicos – Relacionados a uma área de processo e identificam características únicas que descrevem o que deve ser implementado para satisfazer essa área do processo. • Práticas específicas – Práticas importantes para que atingir um determinado objetivo. Cada uma é associada com um nível de maturidade. • Objetivos genéricos – Cada nível de maturidade possuiu um, que descreve o que a organização deve fazer para atingi-lo. • Práticas genéricas – Asseguram que processos serão efetivos e repetíveis. São categorizadas por nível de maturidade. 26/09/2014 Prof. Eduardo Kinder Almentero 18 Disciplinas do CMMI • O modelo CMMI possui quatro corpos de conhecimento (disciplinas). 26/09/2014 Prof. Eduardo Kinder Almentero 19 CMMI Engenharia de Sistemas Engenharia de Software Desenvolvimento integrado do Produto e Processo Fontes de Aquisição Disciplinas do CMMI • Engenharia de sistemas – Abordagem interdisciplinar, cujo objetivo é obtenção bem sucedida de sistemas, envolvendo ou não software – Com base em necessidades, restrições e expectativas apresentadas pelos clientes, os engenheiros de sistemas propõe produtos e soluções por meio da análise, projeto, validação, teste, implementação, treinamento e suporte. • Engenharia de software – Tem o objetivo de disciplinar a produção de software, aplicando princípios de engenharia. – Não aborda apenas processos técnicos de desenvolvimento. Engloba também atividades de gerenciamento de projetos, desenvolvimento de ferramentas, métodos e teorias que deem apoio a produção de software. – De acordo com o IEEE a ES é “aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software.” 26/09/2014 Prof. Eduardo Kinder Almentero 20 Disciplinas do CMMI • Desenvolvimento integrado do produto de do processo. – Abordagem sistemática que se baseia na colaboração dos stakeholders para melhor satisfazer os requisitos e expectativas dos clientes. – Estes processos são integrados aos outros que existentes na organização. • Fontes de aquisição – A medida que os projetos se tornam complexos, pode surgir a necessidade de contratar terceiros para realizar funções específicas ou adicionar modificações em produtos específicos do projeto. – Quando as atividades são críticas, torna-se necessário o monitoramento antes do lançamento. – Esta disciplina atua na aquisição de produtos nestas circunstancias. 26/09/2014 Prof. Eduardo Kinder Almentero 21 CMMI • Representação por estágios x Representação contínua. – A abordagem por estágios segue a mesma estrutura do SW-CMM • Divisão em níveis de maturidade. – Na representação contínua é possível selecionar a sequencia de melhorias adequadas aos objetivos dos negócios da organização. • Divisão em áreas de processo. – Os componentes comuns das representações são: áreas de processo, objetivos específicos, práticas específicas, objetivos genéricos, práticas genéricas, produtos típicos de trabalho, subpráticas, notas, disciplinas, práticas genéricas e referências. 26/09/2014 Prof. Eduardo Kinder Almentero 22 CMMI – Representação por estágios • Organiza as áreas de processo em 5 níveis de maturidade (de forma semelhante ao SW-CMMI). • Estes níveis representam um caminho de melhoria de processos para toda a organização, sugerindo uma ordem. • Em cada nível existem diversas áreas de processo. Em cada área de processo existem objetivos e práticas genéricos ou específicos. • A abordagem possui foco nas práticas para melhoria de processos especificamente para o nível escolhido. 26/09/2014 Prof. Eduardo Kinder Almentero 23 CMMI – Representação por estágios • Um nível consiste em práticas específicas e genéricas para uma área de processo. • Ao satisfazer objetivos específicos e genéricos para uma dada área de processo, a organização obtém os benefícios da melhoria de processos. • Na representação CMMI por estágios, existem 5 níveis de maturidade, representados pelos números 1 a 5. – Inicial, gerenciado, definido, gerenciado quantitativamente e otimizado. • Os níveis de maturidade consistem em um conjunto predefinido de áreas do processo. • Quando uma organização atinge as práticas para estar em um nível, significa que pratica todos os requisitos necessários dos níveis anteriores. 26/09/2014 Prof. Eduardo Kinder Almentero 24 Nível 1 - Inicial • Processo caóticos, ambiente instável de desenvolvimento de software. • Padrões não existem ou não são seguidos. • Problemas para cumprir prazos, custos e requisitos (necessidades e expectativas). • Organização depende de talentos individuais. • Produtos podem ser bons (qualidade) – Mas depende do talento individual. • Dificuldade de repetir sucessos anteriores, pois estes são mais individuais do que da organização. – A ausência de um técnico chave em processos seguintes torna os sucessos anteriores difíceis de alcançar, pois um dos responsáveis não está presente. 26/09/2014 Prof. Eduardo Kinder Almentero 25 Nível 2 - Gerenciado • Projetos possuem requisitos gerenciados e processo planejados, medidos e controlados. – As práticas possibilitam o cumprimento dos planos no desenvolvimento de projetos. • Requisitos, processos e serviços gerenciados. – Significa grande preocupação em planos. – Não conformidades são detectadas com antecedência, permitindo a adoção de ações corretivas. • Ex.: alocar mais pessoas em uma tarefa (problema de prazo). • Datas de entrega intermediárias de partes dos produtos são estabelecidas em acordo com os stakeholders e revisadas sempre que necessário. – O acompanhamento pelo gerente aumenta a probabilidade de que prazos sejam cumpridos, requisitos atendidos, padrões seguidos e objetivos do projeto atendidos. 26/09/2014 Prof. Eduardo Kinder Almentero 26 Nível 3 - Definido • Processos são bem caracterizados e entendidos. – A padronização dos processo permite maior consistência nos produtos gerados pela organização. • A descrição dos processos conta com padrões, procedimentos, ferramentas e métodos bem definidos. • Este aspecto diferencia organizações nos níveis 2 e 3. – No nível 2, padrões, descrições de processo e procedimentos podem variar para cada projeto. – No nível 3 isto não ocorre, pois os procedimentos são padronizados e devem prever a aplicação em projetos diferentes. • Outra diferença para o nível anterior é o maior nível de detalhe e rigor na descrição dos processos. 26/09/2014 Prof. Eduardo Kinder Almentero 27 Nível 4 – Gerenciado Quantitativamente • Processos são selecionados para contribuir com o desempenho dos demais processos. • O controle dos processos é feito com o uso de métodos estatísticos e outras abordagens quantitativas. • Tradução de aspectos qualitativosem números, permitindo que sejam melhor entendidos e comparados. – O uso de valores no lugar de escalas qualitativas permite um entendimento melhor da qualidade e do desempenho de um processo, além de um gerenciamento mais preciso. • Dados sobre todos os processos são coletados e analisados estatisticamente. – Facilita o acompanhamento do desempenho da organização. • Medidas de qualidade e desempenho do processo são armazenadas em uma base histórica, para suportar decisões futuras. – Assim, decisões corretas podem ser lembradas e repetidas. • Uma diferença marcante entre este nível e o anterior é o aumento da previsibilidade do desempenho devido ao controle qualitativo. – No nível 3, previsões são realizadas, mas de forma qualitativa, que são, na maioria das vezes, menos precisas. 26/09/2014 Prof. Eduardo Kinder Almentero 28 Nível 5 – Otimizado • Processos são continuamente melhorados, tendo como base a o entendimento qualitativo de características que influenciam o desempenho. • A melhoria contínua é obtida com inovações e melhora no uso das tecnologias. • Objetivos quantitativos de melhoria de processo são estabelecidos e continuamente revisados com base nos negócios da organização, além de serem utilizados como critério para o gerenciamento. • Efeitos da implantação de melhoria de processos são medidos e avaliados. 26/09/2014 Prof. Eduardo Kinder Almentero 29 CMMI – Representação por estágios • A melhoria de processos é tarefa de todos e não pode ser interpretada como uma ordem específica de níveis hierárquicos mais altos. • Um ciclo de melhoria contínua dos processos deve ser criado, evitando a acomodação e, eventualmente, volta a níveis anteriores. 26/09/2014 Prof. Eduardo Kinder Almentero 30 CMMI – Representação por estágios 26/09/2014 Prof. Eduardo Kinder Almentero 31 Nível de Maturidade 1 Nível de Maturidade 2 Nível de Maturidade 5 Área de Processo 1 Área de Processo n Objetivos específicos Objetivos genéricos Práticas específicas Características comuns Compromisso com Execução Habilidade com execução Direção da implementação Verificação da implementação Práticas genéricas ... ... Áreas de Processo por Estágio Nível 2 Gerência de requisitos Planejamento do projeto Gerência e controle do projeto Gerência de acordos com fornecedores Medição e análise Garantia da qualidade do processo e do produto Gerência de configuração 26/09/2014 Prof. Eduardo Kinder Almentero 32 Nível 3 Desenvolvimento de requisitos Solução técnica Integração do produto Verificação Validação Foco no processo organizacional Treinamento organizacional Gerência de projeto integrada Gerência de riscos Análise de decisão e resolução Desempenho do processo organizacional Definição do processo organizacional Nível 4 Desempenho do processo organizacional Gerência quantitativa do projeto Nível 5 Inovação e implantação na organização Análise e resolução de causas CMMI – Representação contínua • Estabelece 6 níveis de capacitação. • Áreas de processo são agrupadas por categorias afins. • Os perfis de capacitação representam caminhos de melhoria, indicando a evolução para cada uma das áreas. • Em cada área de processo, objetivos e práticas específicas são listados, seguidos por objetivos e práticas genéricas. • As áreas de processo do CMMI para software na representação contínua são agrupadas em quatro categorias: Gerência de processo, Gerência de projeto, Engenharia e Suporte. 26/09/2014 Prof. Eduardo Kinder Almentero 33 CMMI – Representação contínua 26/09/2014 Prof. Eduardo Kinder Almentero 34 Área de Processo 1 Área de Processo 2 Objetivos específicos Objetivos genéricos Práticas específicas ... Área de Processo n Práticas genéricas Níveis de Capacidade CMMI – Representação contínua • Áreas de processo relacionadas a categoria Gerencia de processos possuem atividades relacionadas a definir, planejar, implantar, monitorar, controlar, medir e melhorar processos. • Aquelas relativas a Gerência de projetos possuem atividades relacionadas a planejamento, monitoração e controle do projeto. • A categoria Engenharia se refere às diversas engenharias, como engenharia de software. • Atividades pertinentes a fornecer suporte ao desenvolvimento e à manutenção de produtos estão relacionadas a categoria Suporte. 26/09/2014 Prof. Eduardo Kinder Almentero 35 CMMI – Representação contínua • Cada prática específica e genérica corresponde a um nível de capacitação. • Objetivos e práticas específicos são aplicadas a áreas de processo individuais. • Objetivos e práticas genéricos são aplicadas em múltiplas áreas de processo. • Objetivos e práticas genéricos definem uma sequencia de níveis de maturidade, que representam melhorias na implementação dos processos escolhidos. 26/09/2014 Prof. Eduardo Kinder Almentero 36 CMMI – Representação contínua • Os modelos CMMI são baseados na descrição de níveis discretos de melhoria de processo. • Na representação contínua, os níveis sugerem uma sequência para melhoria de processos em cada área. • Permite uma flexibilidade em relação a ordem que as áreas de processo são abordadas. • Existem 6 níveis de capacitação: – Incompleto, realizado, gerenciado, definido, gerenciado quantitativamente e otimizado. 26/09/2014 Prof. Eduardo Kinder Almentero 37 Níveis de capacidade • Nível 0 – incompleto – Corresponde a não realização de um processo. – Se o processo é implementado pela empresa, significa que um ou mais objetivos específicos da área de processo não foi satisfeito. • Nível 1 – realizado – Para estar no nível 1, cada processo deve cumprir os objetivos específicos de sua área. • Nível 2 – gerenciado – Cada processo cumpre os requisitos do nível 1; – Além disto, cada processo é planejado e executado de acordo com uma política determinada. 26/09/2014 Prof. Eduardo Kinder Almentero 38 Níveis de capacidade • Nível 3 – definido – Cada processo cumpre os requisitos do nível 2; – Além disto, estão adaptados a um conjunto de processos padronizados da organização. • Nível 4 – gerenciado quantitativamente – Cada processo cumpre os requisitos do nível 3; – Processos são definidos e controlados quantitativamente (através de dados estatísticos); – Previsibilidade de desempenho. • Nível 5 – otimizado – Cada processo cumpre os requisitos do nível 4; – Processo adaptado para cumprir os objetivos de negócio da organização; – Otimização de processos – foco na melhoria contínua de desempenho. 26/09/2014 Prof. Eduardo Kinder Almentero 39 CMMI – Representação Contínua x por Estágios 26/09/2014 Prof. Eduardo Kinder Almentero 40 Nível de Maturidade 5 OID, CAR Nível de Maturidade 4 OPP, QPM Nível de Maturidade 3 RD, TS, PI, VER, VAL, OPF, OPD, OT, IPM, RSKM, DAR, OEI, IT, ISM Nível de Maturidade 2 REQM, PP, PMC, MA, PPQA, CM, SAM Nível de Maturidade 1 Inicial: Processo imprevisível, fracamente controlado e reativo AP1 AP2 AP3 AP4 AP5 5 – Otimizado: foco na melhoria de processos. 4 – Gerenciado Quantitativamente: Processo medidos e controlados. 3 – Definido: Processos caracterizados ara organização. 2 – Gerenciado: Processo caracterizado para projetos e reativo. NC5 NC4 NC3 NC2 NC1 inicial NC0 incompleto Contínua Para uma ou um conjunto de áreas de processo Por Estágio Para um conjunto de áreas de processo pré-definido. Outros Modelos • Os modelos CMM e CMMI apresentam foco em organizações. • Após a utilização destes modelos por algum tempo, percebeu-se a necessidade de melhorar processos de trabalhos individuaise de equipe – PSP (Personal Software Process) – TSP (Team Software Process) 26/09/2014 Prof. Eduardo Kinder Almentero 41 Material de apoio • Bibliografia básica – KOSCIANSKI, A. Qualidade de software. 2. ed. São Paulo: Novatec, 2007 – SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Addison Wesley, 2007. • Bibliografia complementar – PFLEEGER, S.L., et al, “Software Engineering”, Prentice Hall, 2005, 3rd edition. – Guide to the Software Engineering Body of Knowledge, IEEE Computer Society, 2004. Disponível em http://swebok.org. 26/09/2014 Prof. Eduardo Kinder Almentero 42
Compartilhar