190 likes | 315 Views
Capítulo ... - CMM- Capability Maturity Model. Auditoria de Sistemas Computacionais Professora Jaciara S. Carosia. Qualidade de Software. Importância do software + crescentes exigências dos usuários: tem-se verificado um notável aumento nos interesses pela qualidade do software.
E N D
Capítulo ... - CMM- CapabilityMaturityModel Auditoria de Sistemas Computacionais Professora Jaciara S. Carosia
Qualidade de Software • Importância do software + crescentes exigências dos usuários: • tem-se verificado um notável aumento nos interesses pela qualidade do software. • Qualidade do produto de software é um objetivo do processo de desenvolvimento. • Ao desenvolver-se um produto, deve-se ter previamente estabelecidas, as características de qualidade que se deseja alcançar. • Qualidade???? • Se o processo de desenvolvimento de software considerar as características de qualidade, há uma grande tendência de que o produto final apresente tais características.
Qualidade de Processo • Processo de software: um conjunto de ferramentas, métodos e práticas usadas para produzir software. “O processo de software é representado por um conjunto seqüencial de atividades, objetivos, transformações e eventos que encapsulam estratégias para cumprimento da evolução de software” (Pressman). As falhas nos processos de desenvolvimento de software foram reconhecidas como inibidoras principais no crescimento da qualidade e produtividade (Lamprech). • Justificativa: Um processo de software bem definido e documentado, utilizado para integrar pessoas, tarefas, ferramentas e métodos, pode prover uma base essencial para garantir a qualidade do produto final.
Normas de Qualidade de Processo • Entre os modelos disponíveis os que mais se destacam são: • Norma ISO/IEC 12207 (Processos de Ciclo de Vida de Software). • Norma ISO/IEC 15504. • CMM (CapabilityMaturityModel) • CMMI (CapabilityMaturityModelIntegration). • MPS.BR (Melhoria do Processo de Software Brasileiro)
SW-CMM • Origem: • SW-CMM (CMM para Software) • Proposto por Watts S. Humphey (1991). • Criado por SEI (Software EngineeringInstitute) ligado a Carnegie-MellonUniversity. • Financiado pelo DoD: avaliar empresas fornecedoras de software. • Premissa: a qualidade de um sistema de software é fortemente influenciado pela qualidade do processo utilizado para desenvolvê-lo e mantê-lo. • Histórico: • 1987: Ambiente de Maturidade e um questionário • 1991: CMM v1.0 ou SW-CMM • 1993: CMM v1.1 • 1997: CMM v2.0
Conceitos • Processo (IEEE): seqüência de passos para atingir um objetivo. • Processo de Software(CMM): conjunto de atividades, métodos, práticas e transformações usadas para desenvolver e manter o software. • Capacidade do processo de SW: conjunto de resultados esperados que pode ser atingido seguindo o processo estabelecido. • Maturidade do processo de SW: processo é definido, documentado, gerenciado, medido, controlado e efetivo. • Imaturas: Não há metodologia implementada e tudo ocorre de forma desorganizada. • Maduras: Capacidade de produzir softwares com qualidade em prazos e custos previsíveis. • Em resumo, a maturidade do processo pode ser traduzida como a possibilidade de entregar sistemas de software dentro dos prazos, utilizando os mesmos recursos, planejando e atendendo requisitos e qualidade desejados. • Maturidade (eficiência) mede o potencial de crescimento da capacidade (eficácia).
Características “O CMM baseia-se em um processo gradual, que leva as organizações a se aprimorarem continuamente, na busca de soluções próprias para os problemas existentes no desenvolvimento do software”.
5 4 Gerenciado: Processo medido e controlado. 3 Definido: Processo padronizado, bem definido. 2 Repetível: Repete as tarefas de sucesso. 1 Inicial: Imprevisível e pobremente controlado. Níveis do CMM Otimizado: Foco na melhoria contínua.
Áreas Chaves de Processo • KPA’s - KeyProcessAreas. • Para que uma organização atinja um nível de maturidade, ela deve cumprir TODAS as KPAs deste nível (e dos níveis anteriores). • Cada nível depende dos níveis anteriores. • As KPAs definem o que e não como fazer: o modelo precisa ser estudado, compreendido e adaptado as necessidades de cada empresa.
Nível 1 - Inicial • Características: • A organização é carente de práticas de gerenciamento. • Não há planejamento suficiente. • Há dificuldades elevadas em prever custos, programação, funcionalidade e outros objetivos de qualidade. • Durante uma crise, ocorrem procedimentos de abandono de projetos. • Os sucessos dependem de esforços individuais e heróicos. • Não possui KPAs: todas as empresas que buscam melhoria de processo estão no nível 1, os que nem buscam, estão no nível 0 (zero)
Nível 2 - Repetível • Características: • A organização apresenta uma disciplina no desenvolvimento de software – o processo não é mais caótico. • Estabelecem-se políticas de gerenciamento de projetos com relação a custos, programação e qualidade do produto. • O planejamento do projeto é estável e sucessos anteriores podem ser repetidos para projetos com aplicações semelhantes. • Os problemas são percebidos e corrigidos conforme surgem. • O sucesso depende das pessoas, com o suporte do sistema de gerenciamento. • KPAs Nível 2 - Repetível • Gerenciamento de Requisitos. • Planejamento de Projeto de Software. • Visão Geral e Acompanhamento do Projeto. • Gerenciamento de Subcontratos. • Garantia da Qualidade de Software. • Gerenciamento de Configuração.
Nível 3 - Definido • Características: • Há definição e padronização do processo de software da organização. • As atividades de engenharia de software e gerenciamento são estáveis e repetitivas. • Custos, cronogramas e funcionalidades são controladas e a qualidade é acompanhada. • Há um grupo responsável pelo estabelecimento dos padrões e multiplicação do conhecimento. • Os problemas são antecipados, prevenidos ou minimizados. • O treinamento é planejado. • KPAs Nível 3 - Definido • Foco do Processo Organizacional. • Definição do Processo Organizacional. • Programa de Treinamento. • Gerenciamento Integrado de Software. • Engenharia de Produto de Software. • Coordenação Intergrupos. • Revisão Conjunta.
Nível 4 - Gerenciado • Características: • Existem mecanismos para definir quantitativamente objetivos de qualidade para o processo de software e para o produto. • Há medição constantemente da produtividade e da qualidade. • A capacidade do processo é previsível e variações na produtividade podem ser medidos. • Quando alguma circunstância excepcional ocorre, as causas podem ser identificadas e combatidas. • A qualidade é alta. • Fontes de problemas individuais são percebidas e eliminadas. • KPAs Nível 4 - Gerenciado • Gerenciamento Quantitativo dos Processos. • Gerenciamento da Qualidade de Software.
Nível 5 - Otimizado • Características: • A capacidade do processo de software é continuamente melhorada. • Dados de avaliações estatísticas são usados para análise de custo/benefício e mudanças de processo. • A equipe do projeto avalia os defeitos e determinam suas causas, para evitar que defeitos conhecidos ocorram novamente. • Novas tecnologias e processos de software são constantemente avaliados, e quando relevantes, transferidos à organização, através de planejamento e gerenciamento. • Um forte sentido de equipe existe em toda a organização • KPAs Nível 5 - Otimizado • Prevenção de Defeitos. • Gerenciamento de Mudanças Tecnológicas. • Gerenciamento de Mudanças no Processo.
Análise da situação (Avaliação) Comparação com o nível desejado Planejamento de ações corretivas Execução destas ações Implementação do CMM
Aceitação do CMM • Conhecimento e uso de modelos para melhoria do processo de software. Fonte: PBQP-SW – Programa Brasileiro de Qualidade e Produtividade em Software. Disponível em: 2001 http://www.mct.gov.br/index.php/content/view/4919.html • CMM: método mais conhecido e usado. • Embora não seja uma norma por uma instituição internacional (como ISO e IEEE), esta norma tem tido uma grande aceitação mundial (Rezende, 2002).
CMM Processo de Certificação Formal • Foi criado para atender a grandes empresas. • Processo de Certificação Formal • Realizada por auditores certificados (Lead Assessors). • Não existem entidades certificadoras, apenas pessoas físicas. • Melhorias sem certificação • Documentação totalmente disponível no site do Software EngineeringInstitute. • www.sei.cmu.edu • Iniciativa do CPqD (tradução do modelo). • www.cpqd.com.br
Evolução do CMM • Surgem novos 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). • Surge ISO 15504. Bases para a criação do CMMI
Bibliografia • PAULK, M. C.; CURTIS, B; CHISSIS, M, e WEBER, C. V. CapabilityMaturityModel (Versão 1.1) (CMU/SEI-93-TR-24, ADA 263403) Pittsburgh, Pa.: Software EngineeringInstitute, CarnegieMellonUniversity, Fevereiro 1993. • PAULK, M. C.; CURTIS, B; CHISSIS, M, e WEBER, C. V. A Previewofthe Software CMM Versão 2, Pa.: Software EngineeringInstitute, CarnegieMellonUniversity [1996]. • REZENDE, D. Engenharia de Software e Sistemas de Informação. Rio de Janeiro: Brasport, 2002. “Começar é o passo mais importante e mais difícil de qualquer trabalho” (Frank Herbert)