Qualidade de Software Profa. Sandra C.P.F. Fabbri

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto de Sistemas III
Advertisements

BENCHMARKING.
A estrutura do gerenciamento de projetos Introdução
Qualidade de Software Aula 4
Engenharia de Software Qualidade de Software Uma abordagem conceitual André Luis Zanon São Carlos SP – UFSCAR 2010 Engenharia de Software – UFSCAR.
Tecnologia da Informação para Valor de Negócio
ISO Processos do Ciclo de Vida do Software
Prof.ª Adriana dos Santos Caparróz Carvalho
Gestão de Projetos Áreas de conhecimentos Integração
Mitos e Problemas Relacionados ao Software
Qualidade de Software Aula 2
Qualidade de software CMM Capability Maturity Model
CMM(Capabililty Matury Model)
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
SEPG Conference ´97.
Antonio Carlos Tonini Maio / 2004
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Control Objectives for Information and related Technology
Engenharia de Software
UFRPE – Modelos de Qualidade Teresa Maciel
Gerência de Configuração de Software
Engenharia de Software Conceitos
Engenharia de Software
Planejamento e Gerenciamento de Projetos
Modelos de Maturidade de Processos de Software
Cap 2 – Processo de Software
Fase de Elaboração: Fluxo de Requisitos
Capability Maturity Model (CMM)
Qualidade de Software Aula 2 / 2014/1
Análise e Projeto de Sistemas
Introdução à Qualidade
Modelos de Maturidade de Processos de Software
Implantação e Melhoria de Processos de SOFTWARE
Modelos de Maturidade de Processos de Software
Engenharia de Software
Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção.
Modelos de Processo de Software
PSBD II Projeto de Sistemas de Banco de Dados II
Gestão por Competências
Administração de Recursos Humanos II
PLANEJAMENTO As organizações e seus respectivos programas não funcionam na base da improvisação. É preciso estabelecer estratégias que possibilitem a sua.
Aula 2 Gerência de Projeto no Contexto do Modelo de Maturidade e Capacidade de Software - CMM.
Qualidade de Processo de Software CMM e CMMI Aldo Rocha.
CONCEITOS BÁSICOS DE QUALIDADE DE SOFTWARE.
Engenharia de Software
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Gestão de defeitos.
Engenharia de Software
Universidade Salgado de Oliveira Diretória de Pós-Graduação e Pesquisa Especialização em Tecnologia da Informação Prof. MSc. Edigar Antônio Diniz Jr Qualidade.
Técnicas e Projeto de Sistemas
Modelo de Maturidade da Competência
Auditoria de Sistemas Computacionais Professora Jaciara S. Carosia.
Integração.
Qualidade de Software CMM Uma Visão Geral.
Engenharia de Software
Profª Eliane Costa Santana
Prof. Fábio Botelho Metodologia de Desenvolvimento de Software - MDS Padrões de Processo de Software: CMMI.
Qualidade de Produtos de Software
Engenharia de Software
Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 2 Professor: Italo Rodrigues Castro.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
Apresentação Leonardo Brussolo de Paula
TÉCNICAS DE ESTIMATIVAS
Programa criado em Apoio ao programa: Ministério da Ciência e Tecnologia da Finep Banco Interamericano de Desenvolvimento Universidades e Governo.
CMMI Capability Maturity Model – Integration
PROJETO SPICE ISO Integrantes: Erickson Balzaneli
Princípios de gestão da qualidade
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
CMMI Capability Maturity Model Integration
O que é um processo? processo - uma seqüência de passos realizados para um determinado propósito. (IEEE) processo de software - um conjunto de atividades,
Transcrição da apresentação:

Qualidade de Software Profa. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1o. semestre 1999

Visão Geral de Qualidade Década de 90 - Fator Qualidade Necessidade básica na luta pelo mercado “Não basta vender barato, as novas regras de mercado são orientadas à produção de bens e serviços com qualidade, prazo de entrega determinado, atendimento correto, além de um baixo custo (Werneck 1994). “

Visão Popular de Qualidade Qualidade é vista como luxo, classe e questão de gosto. Produtos caros, sofisticados e mais complexos são considerados de maior qualidade que produtos similares mais simples Qualidade pode ser discutida, sentida e julgada, mas não pode ser medida. controlada, nem gerenciada.

Visão Profissional de Qualidade Qualidade está relacionada com os Requisitos designados para o produto. As não conformidades aos requisitos são consideradas defeitos, falta de qualidade Qualidade pode e deve ser definida, medida, monitorada, gerenciada e melhorada

Visão Profissional de Qualidade requisitos PROCESSO DE CONSTRUÇÃO PRODUTO usuário requisitosatendidos PRODUTO COM QUALIDADE

: Qualidade no Software Demanda da vida moderna - os computadores passam a integrar a rotina diária Produção de software vem tendo um aumento constante Exigência por qualidade estende-se à área de software

Visões de Qualidade de Software usuário Facilidade de Uso, Desempenho, Confiabilidade dos Resultados, Preço do Software, etc. desenvolvedor Taxa de defeitos, Facilidade de Manutenção e Conformidade em relação aos Requisitos de Usuários, etc organização Cumprimento de Prazo, Boa Previsão de Custo, Boa Produtividade

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Ele faz aquilo que eu quero?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Ele se comporta com precisão o tempo todo?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Posso consertá-lo?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Posso mudá-lo ?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Posso testá-lo?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Ele rodará no meu hardware tão bem quanto possível ?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Ele é seguro?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Ele foi projetado para o usuário?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Poderei usá-lo em outra máquina?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Poderei reutilizá-lo em outra máquina?

Requisitos do Software Produto usuário desenvolvedor Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Características Operacionais Corretitude Confiabilidade Manutenibilidade Flexibilidade Testabilidade Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Poderei compor uma interface com outro sistema?

Qualidade de Software Produto desenvolvedor usuário requisitos de software produto Processo de Desenvolvimento de Software SOFTWARE PRODUTO requisitosatendidos SOFTWARE PRODUTO COM QUALIDADE

Processo de Desenvolvimento de Software DEFINIÇÃO Análise de Sistema Planejamento Análise de Requisitos CONSTRUÇÃO Projeto Codificação Teste MANUTENÇÃO Entendimento Modificação Revalidação

Requisitos Organizacionais REQUISITOS DE SOFTWARE PRODUTO CUMPRIMENTO DE PRAZO, BOA PREVISÃO DE CUSTO, BOA PRODUTIVIDADE Ferramentas Métodos Pessoas Políticas Responsabilidades Gerência Eficaz Controle das Atividades

Processo de Software Processo de Desenvolvimento Procedimentos e métodos que definem o relacionamento de tarefas. A C B D Ferramentas e Equipamentos Processo de Desenvolvimento Pessoas com habilidades, treinamento e motivação

Processo de Software Consiste em uma série de atividades, práticas, eventos, ferramentas e métodos que garantem, técnica e administrativamente que o software pode ser desenvolvido com qualidade e de maneira organizada, disciplinada e previsível.

Gerenciamento de Processo de Software Processo de Desenvolvimento de Software requisitos organizacionais Controle das Atividades Gerência Eficaz Processo de Software muito bem Definido requisitos de software produto

Processo de Software Uma das maiores dificuldades encontradas pelas empresas de software é o gerenciamento de seus processos de software Modelos de Processo de Software

Modelos de Processo de Software Um modelo de processo procura descrever formalmente e de maneira organizada todas as atividades que devem ser seguidas para a obtenção segura de um produto de software É importante escolher um modelo apropriado às metas da organização e saber o grau em que esse modelo será implementado Modelos CMM e SPICE incluem modelos de processo de software

Benefícios de uma melhoria baseada em um modelo Estabelece uma linguagem comum. Constrói um conjunto de processos e procedimentos desenvolvidos com sugestões de uma ampla participação da comunidade de software. Oferece uma estrutura para se priorizar as ações Auxilia comparações em diversas indústrias.

Riscos de uma melhoria baseada em um modelo Modelos são simplificações do mundo real. Modelos não são suficientemente abrangentes. Interpretação e adaptação à situações particulares devem estar ajustadas aos objetivos do negócio. É necessário bom senso para se utilizar modelos corretamente e com visão.

Qualidade de Processo de Software X Maturidade de Processo de Software A qualidade do processo de software pode ser analisada através do nível de maturidade do processo. A maturidade dos processos de software de uma organização influencia na sua capacidade de atingir metas de custo, qualidade e cronograma

Um Processo de Software Imaturo Processo improvisado por profissionais e gerências. Não é rigorosamente seguido e o cumprimento não é controlado. Altamente dependente dos profissionais atuais. Baixa visão do progresso e da qualidade.

Um Processo de Software Imaturo A qualidade do produto pode ficar comprometida para que prazos sejam cumpridos. Arriscado do ponto de vista do uso de nova tecnologia. Qualidade difícil de se prever.

Organizações com Processo de Software Imaturo o fogo está sob controle, mas estão quase sempre “apagando incêndios” constantemente reagindo (e não agindo pró-ativamente) - não há tempo para melhoria os “ bombeiros” se queimam as cinzas podem voltar a se incendiar mais tarde

Um Processo de Software Maduro Coerente com as linhas de ação, o trabalho é efetivamente concluído. Definido, documentado e melhorando constantemente: compreendido utilizado vivo e ativo

Um Processo de Software Maduro Tem o apoio visível da alta administração e outras gerências. Bem controlado - fidelidade ao processo é objeto de auditoria e de controle São utilizadas medições do produto e do processo. Uso disciplinado da tecnologia.

Processo Institucionalizado “Essa é a maneira como fazemos as coisas aqui.” Existe uma infra-estrutura que possui processos eficazes, utilizáveis e consistentemente aplicados em toda organização. Processos institucionalizados permanecem, mesmo depois que as pessoas que originalmente os definiram, deixam a organização. A cultura organizacional transmite o processo.

Edificação da Cultura Organizacional “Esta é a maneira que fazemos as coisas por aqui .” Pressão Externa: necessidades dos usuários mudança de tecnologia competição Institucionalização e Infra-estrutura: políticas padrões procedimentos treinamento supervisão revisões/auditorias Fatores internos: defensores patrocinadores competência experiência talento ferramentas

Valor da Melhoria de Processo A melhoria do processo de software oferece um retorno no investimento que pode ser medido - quando é medido. O retorno típico no investimento está entre 5:1 e 8:1. Benefícios adicionais são intangíveis e não podem ser quantificados facilmente. O CMM é uma ferramenta útil para orientação no processo de melhoria.

Pontos Comuns no Movimento da Qualidade Melhoria tem o seu foco em ajustar o processo e não em culpar as pessoas. Melhoria deve ser medida e ter sua implementação periodicamente controlada. Melhoria requer constância de investimentos, recompensas e incentivos. Melhoria é um processo contínuo. Se o nível de desconforto não é suficientemente alto, as coisas não mudarão.

Modelos de Melhoria de Qualidade de Processo CMM BOOTSTRAP SPICE ISO PSP

Melhoria de Processo de Software Avaliação do Processo Melhoria do Processo é examinado pela conduz à Estímulo Contexto e Patrocínio Infra-Estrutura INICIALIZAÇÃO 1 Abordagem IDEAL Recomen-dações DIAGNÓSTICO 2 Estado Atual e Desejado DIRETRIZES Abordagem Prioridades Plano de Ação 3 Teste Piloto Refinamento Implementação REALIZAÇÃO 4 Solução Analisar/ Validar Ações futuras ALAVANCAGEM 5 A abordagem IDEAL descreve as fases, atividades e recursos necessários para uma melhoria de processo com sucesso.

Estado Atual e Desejado Abordagem IDEAL ALAVANCAGEM Ações futuras Analisar/ Validar 1 5 INICIALIZAÇÃO Implementação 4 Infra-Estrutura Estímulo Contexto e Patrocínio REALIZAÇÃO Refinamento Teste Piloto Estado Atual e Desejado 2 Solução DIAGNÓSTICO Recomen-dações Plano de Ação CMM 3 Prioridades DIRETRIZES Abordagem

O que é o CMM? Uma estrutura que descreve os elementos chaves de um processo de software eficaz. Um caminho de melhoramento evolucionário (5 níveis de maturidade) para organizações de software mudarem de um processo de software imaturo, ad hoc, para um processo maduro, disciplinado.

CMM - Capability Maturity Model Capability Maturity Model (Modelo de Maturidade da Competência) Maturidade da Competência : competência em controlar o Processo de Software (desenvolvimento, gerenciamento e manutenção). Maturidade da Competência Maturidade do Processo de Software

Maturidade de Processo de Software A maturidade dos processos de software de uma organização influencia na sua capacidade de atingir metas de custo, qualidade e cronograma A qualidade do processo de software pode ser analisada através do nível de maturidade do processo.

CMM - Capability Maturity Model desenvolvido pela SEI (Instituto de Engenharia de Software) Carnegie Mellon University, Pittsburgh, PA SEI Software Engineering Institute Missão da SEI: Exercer liderança nos estágios avançados da prática de engenharia de software para melhorar a qualidade de sistemas que dependam de software.

A Evolução do CMM (a) 1986 - início do desenvolvimento de um modelo de maturidade de processo, para ajudar as organizações a melhorar seus processos de software (por solicitação do governo federal) junho 1987 - liberação de breve descrição do modelo de maturidade de processo de software setembro 1987 - versão preliminar do questionário de maturidade 1991 - 1a versão do CMM (Versão 1.0)

A Evolução do CMM (b) 1993 - depois de 5 anos de experiência, o modelo de maturidade evoluiu para um modelo completamente definido, usando conhecimento adquirido das avaliações de processo de software e de extensivo retorno das indústrias e do governo CMM fevereiro 1993 - Versão 1.1 do CMM - Capability Maturity Model for Software (atualmente usada)

Premissa Básica Premissa básica que está por trás do trabalho da SEI sobre maturidade de processo: A qualidade de um software produto é profundamente determinada pela qualidade do processo de desenvolvimento e de manutenção usado para construí-lo.

Visão Geral do Modelo (a) SEI desenvolveu um modelo de 5 níveis que orienta uma organização em como “amadurecer” seus processos de software. O modelo descreve um caminho evolucionário que vai de um processo indisciplinado para um processo disciplinado. Sem a disciplina descrita no modelo, programas de melhoria podem mostrar-se ineficientes porque os fundamentos necessários para apoiar os melhoramentos sucessivos não foram estabelecidos.

Visão Geral do Modelo (b) Os 5 níveis de maturidade descrevem fundamentos sucessivos para melhoria contínua do processo e definem uma escala ordinal para medir a maturidade de processo de uma organização. As vantagens dos níveis de maturidade é que eles fornecem prioridades claras, as quais orientam na seleção de algumas atividades de melhoramento que serão muito úteis se implementadas imediatamente. Isso é importante porque a maioria das organizações podem focalizar somente algumas poucas atividades de melhoramento de cada vez.

Os 5 Níveis de Maturidade do CMM OTIMIZADO Organizações com Melhoria Contínua GERENCIADO Organizações Previsíveis DEFINIDO Organizações Padronizadas REPETÍVEL Organizações Disciplinadas INICIAL Organizações Caóticas

CMM: Nível 1 de Maturidade O processo de software é caracterizado como ad hoc, e ocasionalmente até mesmo caótico. Poucos processos são definidos e o sucesso depende de esforços individuais e heróicos. INICIAL Organizações Caóticas

CMM Nível 1 - O Gerenciamento de Software é uma Caixa Preta In Out Requisitos fluem para dentro. Um produto de software é (normalmente) produzido através de algum processo disforme. O produto flui para fora e (espera-se) funciona.

CMM - Nível 1 - Inicial Organizações Caóticas A organização não provê um ambiente estável para o desenvolvimento e manutenção de software Cronogramas e orçamentos são frequentemente abandonados por não serem beseados em estimativas realísticas Numa crise para cumprir cronograma, etapas planejadas do ciclo de vida não são realizadas prejudicando a qualidade do software

CMM - Nível 1 - Inicial Organizações Caóticas Desempenho basicamente em função da competência e heroísmo das pessoas que fazem o trabalho. O processo de software é imprevisível, já que é constantemente alterado no decorrer do projeto Os maiores problemas com os quais se defrontam as organizações de software são gerenciais e não técnicos.

CMM: Nível 2 de Maturidade Processos administrativos básicos são estabelecidos para acompanhar custo, cronograma e funcionalidade. A disciplina de processo está em repetir sucessos anteriores em projetos com aplicações similares. REPETÍVEL Organizações Disciplinadas

CMM Nível 2- Está em vigor um Sistema de Gerenciamento de Projeto In Out Processo de construção de software é uma série de caixas pretas com pontos de verificação definidos.

CMM - Nível 2 - Repetível Organizações Disciplinadas Caracterizado pela existência de um processo efetivo de planejamento e gerenciamento do projeto de software onde os controles sobre os procedimentos, compromissos e atividades são bem fundamentados. Os processos de planejamento e gerenciamento do projeto de software devem ser praticados na organização, documentados, treinados e controlados. Neste nível ainda não há preocupação com o processo de engenharia de software

CMM - Nível 2 - Repetível Organizações Disciplinadas O planejamento e gerenciamento de novos projetos são baseados na experiência obtida com projetos similares, que tenham obtido sucesso no passado Um fator relevante para a organização nesse nível é a dependência das experiências anteriores. O desenvolvimento de novos tipos de produtos pode causar um desequilíbrio no projeto, nas estimativas de custos e nos cronogramas

CMM: Nível 3 de Maturidade Os processos de software, tanto para atividades administrativas quanto para de engenharia estão documentados, padronizados e integrados em um processo de software padrão para a organização. Todos os projetos usam uma versão aprovada do processo de software padrão da organização para desenvolvimento e manutenção de software. DEFINIDO Organizações Padronizadas

CMM Nível 3- Desenvolvimento de software de acordo com um processo bem definido Out Funções e responsabilidades no processo são bem entendidas. A produção do produto de software é visível através do processo de software.

CMM - Nível 3 - Definido Organizações Padronizadas Caracterizado principalmente pela existência de um processo de engenharia de software bem definido, documentado e padrão para a empresa. As saídas de uma atividade fluem naturalmente para as entradas da próxima atividade Cada projeto de software utiliza o processo padrão da organização como base para implementar seu próprio processo.

CMM - Nível 3 - Definido Organizações Padronizadas Existe um grupo para processos de software (SEPG) responsável por facilitar atividades de definição e melhoria de processos. Existe um programa de treinamento que assegura que todos tenham o conhecimento e a capacidade requerida para desenvolver suas tarefas, utilizando as ferramentas e os métodos disponíveis Processos que dêem poderes as pessoas para realizarem o trabalho

CMM: Nível 4 de Maturidade GERENCIADO Organizações Previsíveis São coletadas medidas detalhadas da qualidade do processo e do produto. Tanto o processo de software quanto os produtos são quantitativamente compreendidos e controlados.

CMM Nível 4- Produto e processo são gerenciados quantitativamente In Out A gerência tem bases objetivas para tomada de decisão. A gerência é capaz de prever o desempenho dentro de limites quantificados.

CMM - Nível 4 - Gerenciado Organizações Previsíveis Caracterizado pela existência de processos de software passíveis de medida. A produtividade e a qualidade são medidas em todas as etapas do processo de software e para todos os projetos da organização. O controle sobre produtos e processos de todos os projetos são adquiridos através da diminuição da variação do seu desempenho para dentro de limites quantitativos aceitáveis.

CMM - Nível 4 - Gerenciado Organizações Previsíveis A organização começa a aplicar métricas de controle de qualidade para aumentar a qualidade e a produtividade do software entregue aos clientes. À medida que a organização adquire mais conhecimento sobre o produto, tem a oportunidade de remover várias fontes de comprometimento da qualidade final Isto proporciona a oportunidade de colocar o produto sob um controle estatístico de qualidade.

CMM: Nível 5 de Maturidade OTIMIZADO Organizações com Melhoria Contínua Contínua melhoria de processo é possível por retornos quantitativos dos processos e das idéias e tecnologias inovativadoras

CMM Nível 5- Foco na melhoria contínua do processo In Out Mudança disciplinada é um meio de vida.

CMM - Nível 5 - Otimizado Melhoria Contínua Caracterizado pela existência de processos de software com contínua melhoria. Os processos de software são avaliados para prevenir tipos de defeitos conhecidos devido à recorrência, e as lições aprendidas são disseminadas para outros projetos. Tecnologias que proporcionem mais retorno para processos específicos, utilizados pela organização, são selecionadas para serem introduzidas, de maneira gerenciável na organização.

CMM - Nível 5 - Otimizado Melhoria Contínua Apesar de o processo ser maduro, ele é alvo de contínuas melhorias. Os grupos de projetistas analisam o rendimento do projeto para determinar as causas dos defeitos. Nesse nível foi atingido um ambiente de excelência em engenharia de software

Como Melhorar o Processo de Software ? Realizando um grupo de atividades correlatas, denominadas ÁREAS-CHAVE DE PROCESSO - (Key process areas - KPA) que, quando efetuadas coletivamente, alcançam um conjunto de metas consideradas importantes na implementação da competência do processo.

Mudança de Nível de Maturidade REPETÍVEL Organizações Disciplinadas inicial => repetível 6- Gerenciamento da Configuração de Software 5- Garantia da Qualidade de Software 4- Gerenciamento de Subcontrato de Software 3- Acompanhamento de Projeto de Software 2- Planejamento de Projeto de Software 1- Gerenciamento de Requisitos KPAs Organizações Caóticas “Atividades de gerenciamento do projeto são estabelecidas para rastrear custo, prazos e funcionalidade” INICIAL

Exemplo: Áreas-chave de Processo CMM Inicial Repetível Definido Gerenciado Otimizado 3 6 7 2 TOTAL 18 Áreas-chave de Processo GCS GQS GSS APS PPS GR atividades

Níveis de maturidade não podem ser omitidos Processos dos níveis mais altos de maturidade podem ser realizados até mesmo por organizações do nível 1 (embora talvez ineficazmente). Competência em processos é construída em estágios, uma vez que alguns processos não são eficazes quando outros não estão estáveis. Cada nível oferece um fundamento necessário para melhorias a serem implementadas no nível seguinte.

Níveis de maturidade não podem ser omitidos Sem a disciplina de gerenciamento o processo de engenharia é sacrificado. Medidas detalhadas são inconsistentes sem um processo definido. O efeito de inovação de processo não é claro em um processo cheio de ruído.

As Inspirações do CMM A estrutura do modelo de maturidade de processo de software está baseada nos princípios de qualidade de produto que existem há 60 anos. 1930 - Shewart (AT&T) promulgou os princípios de controle estatístico de qualidade. Os princípios de Shewart foram posteriormente desenvolvidos e demonstrados com sucesso no trabalho de Deming e Juran. O trabalho desses pioneiros princípios do TQM (Total Quality Management)

Gerenciamento da Qualidade Total Gerenciamento da Qualidade Total (TQM) é a aplicação de métodos quantitativos e recursos humanos para melhorar : - o material e serviços fornecidos por uma organização - todos os processos dentro de uma organização - o nível de atendimento das necessidades do cliente , no presente e no futuro

Princípios do TQM adaptados no Modelo CMM O CMM estabelece, durante os estágios iniciais, a administração do projeto e os fundamentos de engenharia e durante os estágios mais avançados de maturidade, o controle quantitativo do processo de software.

Aplicando TQM ao Software CMM TQM Projeto C Projeto A hardware software Organização Projeto X Projeto B O processo de melhoria se aplica em todo o contexto do negócio - o CMM se aplica especificamente ao software.