Qualidade de Software Qualidade de Software Qualidade de Software Qualidade de Software
CMM CMM
Uma Visão Geral
Uma Visão Geral
Sumário Sumário Sumário Sumário
O que é o CMM
Os 5 Niveis de Maturidade do CMM
Caracterização Comportamental dos Níveis de Maturidade
As inspirações do CMM
Qualidade de Software Qualidade de Software
desenvolvedor usuário
organização
Processo de
Desenvolviment o
SOFTWARE PRODUTO
requisitos requisitos atendidos atendidos
PROCESSO DE SOFTWARE
requisitos de requisitos de software produto software produto
SOFTWARE COM QUALIDADE
Melhoria de Processo de Software Melhoria de Processo de Software Melhoria de Processo de Software Melhoria de Processo de Software
Processo Processo
Avaliação Avaliação
do do Processo Processo
Melhoria Melhoria
do do Processo Processo é é
examinado examinado
pelapela
conduz à conduz à
Estímulo Contexto e Patrocínio
Infra- Estrutura
INICIALIZAÇÃO INICIALIZAÇÃO
11
Abordagem Abordagem
IDEAL IDEAL
Recomen -dações
DIAGNÓSTICO DIAGNÓSTICO
22 Atual e Estado Desejado
DIRETRIZES DIRETRIZES
Abordagem Prioridades
Plano de
3 Ação
3
Teste Piloto Refinamento Implementação
REALIZAÇÃO REALIZAÇÃO
4 4
Soluçã o Analisar/
Validar Ações
futuras
ALAVANCAGEM ALAVANCAGEM
5 5
A abordagem IDEAL descreve as fases, IDEAL atividades e recursos necessários para uma melhoria de processo com sucesso.melhoria
Estímulo Contexto e Patrocínio
Infra- Estrutura
INICIALIZAÇÃO INICIALIZAÇÃO
1 1
Teste Piloto Refinamento Implementação
REALIZAÇÃO REALIZAÇÃO
44
Solução Analisar/
Validar Ações
futuras
ALAVANCAGEM ALAVANCAGEM
55
Abordagem IDEAL
Recomen- dações
DIAGNÓSTICO DIAGNÓSTICO
22
Estado Atual e Desejado
DIRETRIZES DIRETRIZES
Abordagem Prioridades
Plano de
3 Ação
CMM
3CMM
O que é o CMM?
O que é o CMM?
O que é o CMM?
O que é o CMM?
Uma estrutura que descreve os elementos chaves de um elementos chaves processo
processo de software eficaz.eficaz
Um caminho de melhoramento evolucionário (5 níveis melhoramento evolucionário de maturidade) para organizações de software mudarem mudarem de um processo de software imaturo, ad hoc, para um ad hoc
processo maduro, disciplinado.disciplinado.
CMM CMM CMM - Capability Maturity Model - Capability Maturity Model
CMM - Capability Maturity Model - Capability Maturity Model
Capability Maturity ModelCapability Maturity Model
(Modelo de Maturidade da Competência)
Maturidade da Competência : competência em Maturidade da Competência controlar o Processo de Software
(desenvolvimento, gerenciamento e manutenção).
Maturidade da Competência Maturidade da Competência Maturidade do Maturidade do Processo de Software
Processo de Software
Maturidade de Processo de Software Maturidade de Processo de Software Maturidade de Processo de Software Maturidade de Processo de Software
A maturidade dos processos de software de uma maturidade dos processos organização influencia na sua capacidade de atingir metas de custo, custo qualidade e qualidade cronogramacronograma
A qualidade do processo de software pode ser qualidade do processo de software
analisada através do nível de maturidade do processo.nível de maturidade do processo
CMM CMM CMM - Capability Maturity Model - Capability Maturity Model
CMM - Capability Maturity Model - Capability Maturity Model
desenvolvido pela SEI SEI (Instituto de Engenharia de Software) Carnegie Mellon
University, Pittsburgh, PA
SEI
Software Engineering Institute
Missão da SEI: 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) A Evolução do CMM (a) A Evolução do CMM (a) A Evolução do CMM (a)
1986 - início do desenvolvimento de um modelo de 1986 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 junho 1987 modelo de modelo de maturidade
maturidade de processo de software.
setembro 1987 - versão preliminar do setembro 1987 questionário de questionário maturidade
1991 - 11991 a versão do CMM (Versão 1.0)CMM
A Evolução do CMM (b) A Evolução do CMM (b) A Evolução do CMM (b) A Evolução do CMM (b)
1993 - depois de 5 anos de experiência, o modelo de 1993 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 CMM
• fevereiro 1993 - Versão 1.1 do fevereiro 1993 CMM - CMM Capability Capability Maturity Model for Software
Maturity Model for Software (atualmente usada)
Premissa Básica Premissa Básica Premissa Básica Premissa Básica
Premissa básica que está por baixo do trabalho da Premissa básica SEI 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) Visão Geral do Modelo (a) Visão Geral do Modelo (a) Visão Geral do Modelo (a)
SEI desenvolveu um SEI modelo de modelo de 5 níveis que orienta uma 5 níveis organização em como “amadurecer” seus processos de software.
O modelo descreve um caminho evolucionário que vai de caminho um processo indisciplinado para um processo indisciplinado disciplinado.disciplinado
Sem a disciplina descrita no modelo, programas de Sem a disciplina melhoria podem mostrar-se ineficientes porque os ineficientes
fundamentos
fundamentos necessários para apoiar os mnelhoramentos sucessivos não foram estabelecidos.não foram estabelecidos
Visão Geral do Modelo (b) Visão Geral do Modelo (b) Visão Geral do Modelo (b) Visão Geral do Modelo (b)
Os 5 níveis de maturidade descrevem fundamentos 5 níveis de maturidade sucessivos para melhoria contínua do processo e melhoria contínua do processo
definem uma escala ordinal para escala ordinal medir a maturidade de medir a maturidade processo de uma organização.
As vantagens dos níveis de maturidade é que eles vantagens fornecem prioridades clarasprioridades claras, as quais orientam na
seleção de algumas atividades de melhoramento que atividades de melhoramento serão muito úteis se implementadas imediatamente.úteis
Isso é importante porque a maioria das organizações mportante podem focalizar somente algumas poucas atividades de poucas atividades melhoramento de cada vez.cada vez
INICIAL
Organizações Caóticas
REPETÍVEL
Organizações Disciplinadas
DEFINIDO
Organizações Padronizadas
GERENCIADO
Organizações Previsíveis
OTIMIZADO
Organizações com Melhoria Contínua
Os 5 Níveis de Os 5 Níveis de
Maturidade do CMM
Maturidade do CMM
INICIAL
Organizações
CMM:
CMM:
Nível 1 de Maturidade 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.
CMM Nível 1- Inicial
O Gerenciamento de Software é O Gerenciamento de Software é
uma Caixa Preta uma Caixa Preta
In Out
Requisitos fluem para dentro.
Um produto de software é (normalmente) produzido através de algum processo disforme.algum processo disforme
O produto flui para fora e (espera-se) funciona.
CMM - Nível 1 - Inicial
CMM - Nível 1 - Inicial Organizações Caóticas
Organizações Caóticas
A organização não provê um não ambiente estável para ambiente estável o desenvolvimento e manutenção de software
Cronogramas e Cronogramas orçamentos são frequentemente orçamentos abandonados
abandonados por não serem baseados em estimativas realísticas
Numa crise para cumprir cronograma, crise etapas etapas planejadas do ciclo de vida não são realizadas não são realizadas prejudicando a qualidade do software
Desempenho basicamente em função da Desempenho
competência e heroísmo das pessoas que fazem o heroísmo trabalho.
O processo de software é processo imprevisível, já que é imprevisível, constantemente alterado no decorrer do projeto
Os maiores problemas com os quais se defrontam as maiores problemas organizações de software são gerenciais e não gerenciais
técnicos.
CMM - Nível 1 - Inicial
CMM - Nível 1 - Inicial Organizações Caóticas
Organizações Caóticas
REPETÍVEL
Organizações Disciplinadas
CMM:
CMM:
Nível 2 de Maturidade 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.
In Out
Processo de construção de software é uma série de Processo caixas pretas
caixas pretas com pontos de verificação definidos.pontos de verificação
CMM Nível 2- Repetível
Está em vigor um Sistema de Está em vigor um Sistema de
Gerenciamento de Projeto
Gerenciamento de Projeto
Caracterizado pela existência de um processo efetivo processo efetivo de planejamento e gerenciamento do projeto de planejamento e gerenciamento do projeto
software onde os controles sobre os procedimentos, compromissos e atividades são bem fundamentados.
Os processos de planejamento e gerenciamento do processos projeto de software devem ser praticados na praticados na
organização
organização, documentados, treinados e controlados.
Neste nível ainda não há preocupação com o processo ainda não há de engenharia de softwareengenharia de software
CMM - Nível 2 - Repetível
CMM - Nível 2 - Repetível Organizações Disciplinadas
Organizações Disciplinadas
O planejamento e gerenciamento de novos projetos são baseados na experiência obtida com projetos experiência obtida com projetos
similares
similares, que tenham obtido sucesso no passado
Um fator relevante para a organização nesse nível é a dependência das experiências anteriores
dependência das experiências anteriores.
O desenvolvimento de novos tipos de produtos pode novos tipos causar um desequilíbrio no projeto, nas estimativas de desequilíbrio custos e nos cronogramas
CMM - Nível 2 - Repetível
CMM - Nível 2 - Repetível Organizações Disciplinadas
Organizações Disciplinadas
DEFINIDO
Organizações Padronizadas
• 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
CMM:
CMM:
Nível 3 de Maturidade
Nível 3 de Maturidade
In Out
Funções e responsabilidades no processo são Funções e responsabilidades bem entendidas.entendidas
A produção do produto de software é produção do produto visível visível através do processo de software.
CMM Nível 2- Repetível
Desenvolvimento de software de Desenvolvimento de software de
acordo com um processo bem definido
acordo com um processo bem definido
Caracterizado principalmente pela existência de um processo de engenharia
processo de engenharia de software bem definido, documentado e padrão para a empresa.padrão
As saídas de uma atividade saídas fluem naturalmente para as fluem entradas
entradas da próxima atividade
Cada projeto de software utiliza o processo padrão da utiliza organização como base para implementar seu próprio base para implementar processo.
CMM - Nível 3 - Definido
CMM - Nível 3 - Definido Organizações Padronizadas
Organizações Padronizadas
Existe um grupo para processos de software (SEPG) grupo para processos de software responsável por facilitar atividades de definição e
melhoria de processos.
Existe um programa de treinamento que assegura que programa de treinamento 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 poderes o trabalho
CMM - Nível 3 - Definido
CMM - Nível 3 - Definido Organizações Padronizadas
Organizações Padronizadas
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:
CMM:
Nível 4 de Maturidade
Nível 4 de Maturidade
In Out
A gerência tem gerência bases objetivas para tomada de bases objetivas decisão.
A gerência é capaz de prever o desempenho prever o desempenho dentro de limites quantificados.
CMM Nível 4- Gerenciado
Produto e processo são gerenciados Produto e processo são gerenciados
quantitativamente
quantitativamente
Caracterizado pela existência de processos de software processos passíveis de medida
passíveis de medida.
A produtividade e a produtividade qualidade são qualidade medidas em todas medidas as etapas do processo de software e para todos os
projetos da organização.
O controle sobre produtos e processos de todos os controle sobre produtos e processos 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
CMM - Nível 4 - Gerenciado Organizações Previsíveis
Organizações Previsíveis
A organização começa a aplicar métricas de controle de aplicar métricas de controle de qualidade
qualidade para aumentar a qualidade e a produtividade do software entregue aos clientes.
À medida que a organização adquire mais conhecimento conhecimento sobre o produto
sobre o produto, tem a oportunidade de remover várias remover fontes de comprometimento
fontes de comprometimento da qualidade final
Isto proporciona a oportunidade de colocar o produto colocar sob um controle estatístico de qualidade.controle estatístico de qualidade
CMM - Nível 4 - Gerenciado
CMM - Nível 4 - Gerenciado Organizações Previsíveis
Organizações Previsíveis
OTIMIZADO
Organizações com Melhoria Contínua
CMM:
CMM:
Nível 5 de Maturidade Nível 5 de Maturidade
• Melhorias contínuas são realizadas no processo, utilizando-se as medidas quantitativas de qualidade do processo e produto, e
também aplicando-se idéias e tecnologias inovadoras.
In Out
Mudança disciplinada é um meio de vida.Mudança disciplinada
CMM Nível 5- Otimizado
Foco na melhoria contínua do Foco na melhoria contínua do
processo
processo
Caracterizado pela existência de processos de software processos com contínua melhoria.contínua melhoria
Os processos de software são processos avaliados para avaliados prevenir 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 Tecnologias
processos específicos, utilizados pela organização, são selecionadas para serem introduzidas, de maneira introduzidas,
gerenciável
gerenciável na organização.
CMM - Nível 5 - Otimizado
CMM - Nível 5 - Otimizado Melhoria Contínua
Melhoria Contínua
Apesar de o processo ser maduro, ele é alvo de contínuas contínuas melhorias
melhorias.
Os grupos de projetistas analisam o rendimento do projeto para determinar as causas dos defeitos.causas dos defeitos
Nesse nível foi atingido um ambiente de excelência em ambiente de excelência engenharia de software
CMM - Nível 5 - Otimizado
CMM - Nível 5 - Otimizado Melhoria Contínua
Melhoria Contínua
Níveis de maturidade não Níveis de maturidade não
podem ser omitidos 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 Competência estágios, 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 nível fundamento necessário para fundamento melhorias a serem implementadas no nível seguinte.
Sem a disciplina de Sem gerenciamento o processo de gerenciamento engenharia é sacrificado. sacrificado
Medidas detalhadas são inconsistentes sem um processo inconsistentes definido.
O efeito de inovação de processo não é claro em um não é claro processo cheio de ruído.
Níveis de maturidade não Níveis de maturidade não
podem ser omitidos
podem ser omitidos
capacidade capacidade x x
pessoas, pessoas, tecnologia e tecnologia e
medidas medidas
Inicial (1)
Pobremente controlado e imprevisível
Repetível (2)
Pode repetir tarefas
executadas com sucesso
Definido (3)
Gerenciado (4)
Otimizado (5)
Processo é caracterizado e claramente bem entendido
Processo medido e controlado
Foco na melhoria contínua do processo
CMM:
CMM: Capacidade x Pessoas CMM: Capacidade x Pessoas CMM: Capacidade x Pessoas CMM: Capacidade x Pessoas
sucesso depende de heróis
individuais
sucesso depende de indivíduos, apoio
administra- tivo
grupos de projeto trabalham juntos
forte senso de trabalho em equipe dentro de cada projeto
forte senso de trabalho em equipe na organização
“apagando incêndio” é o modo de viver
comprometi mentos são compreendi- dos e admi- nistrados
treinamento é planejado e de acordo com os
papéis
todos estão envolvidos na melhoria do processo
relacão entre disciplinas são descordena- das e até adversas
as pessoas são treinadas Nível 1
Nível 1 Nível 2Nível 2 Nível 3Nível 3 Nível 4Nível 4 Nível 5Nível 5
CMM: Capacidade x Tecnologia CMM: Capacidade x Tecnologia CMM: Capacidade x Tecnologia CMM: Capacidade x Tecnologia
introdução de nova
tecnologia é um risco
tecnologia apoia
atividades estáveis e estabeleci- das
novas
tecnologias são avaliadas em bases
qualitativas
novas
tecnologias são procuradas e desenvolvi- das
Nível 1
Nível 1 Nível 2Nível 2 Nível 3Nível 3 Nível 4Nível 4 Nível 5Nível 5 novas
tecnologias são avaliadas em bases
quantitativas
CMM: Capacidade x Medidas CMM: Capacidade x Medidas CMM: Capacidade x Medidas CMM: Capacidade x Medidas
coleta de dados e análise são feitas ad hoc
dados de
administração e planejamento usados em projetos individuais
dados são coletados e usados em todo
processo definido
definição e coleta de dados
padroniza- dos na
organização
dados são usados para avaliar e selecionar melhorias de processo
dados são compartilha- dos ao longo do projeto
dados são usados para compreender o processo quan- titativamente e estabilizá-lo Nível 1
Nível 1 Nível 2Nível 2 Nível 3Nível 3 Nível 4Nível 4 Nível 5Nível 5
As Inspirações do CMM As Inspirações do CMM As Inspirações do CMM As Inspirações do CMM
A estrutura do modelo de maturidade de processo de estrutura software está baseada nos princípios de qualidade de princípios de qualidade de
produto
produto que existem há 60 anos.
1940 - Shewart (AT&T) promulgou os princípios de 1940 controle estatístico de qualidade
controle estatístico de qualidade.
Os princípios de Shewart foram posteriormente desenvolvidos e demonstrados
desenvolvidos e demonstrados com sucesso no trabalho de Deming e Juran.
O trabalho desses pioneiros princípios do
TQM TQM
(Total Quality Management)A reação em cadeia de Deming A reação em cadeia de Deming A reação em cadeia de Deming A reação em cadeia de Deming
A qualidade do produto melhora
O custo diminui devido a menos re-trabalho, menos
problemas, menos demora, melhores projetos uso eficiente de recursos e materiais.
A capacidade melhora.
O mercado é conquistado devido a melhores produtos e preços menores
Lucro e mais serviço é conseguido Permanência no negócio
Adaptação da reação em cadeia de Adaptação da reação em cadeia de
Deming
Deming ao Projeto de Software ao Projeto de Software
Adaptação da reação em cadeia de Adaptação da reação em cadeia de
Deming
Deming ao Projeto de Software ao Projeto de Software
A organização amadurece
O processo de software torna-se melhor definido e mais consistemente
implementado através da organização.
Software com maior qualidade , aumento de produtividade, menos re-trabalho, melhores planos e melhor administração de projeto de software
Gerenciamento da Qualidade Total Gerenciamento da Qualidade Total Gerenciamento da Qualidade Total Gerenciamento da Qualidade Total
Gerenciamento da Qualidade Total (TQM) é a Gerenciamento da Qualidade Total (TQM aplicação de métodos quantitativos e métodos quantitativos recursos recursos
humanos
humanos para melhorar :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 Princípios do TQM adaptados no
Modelo CMM Modelo CMM
Princípios do TQM adaptados no Princípios do TQM adaptados no
Modelo CMM Modelo CMM
O CMM estabelece, durante os CMM estágios iniciais, a estágios iniciais administração do projeto
administração do projeto e os fundamentos de fundamentos de engenharia
engenharia e durante os estágios mais avançados de estágios mais avançados maturidade, o controle quantitativo do processo de controle quantitativo do processo software.
Aplicando TQM ao Software Aplicando TQM ao Software
CMM CMM TQM TQM
Projeto C Projeto A
hardware
software
Organização
Projeto X
Projeto B
O processo de melhoria se aplica em todo o contexto do processo de melhoria negócio - o CMM se aplica especificamente ao CMM software.software.
Pontos Comuns no Movimento da Pontos Comuns no Movimento da
Qualidade Qualidade
Pontos Comuns no Movimento da Pontos Comuns no Movimento da
Qualidade Qualidade
Melhoria tem o seu Melhoria foco em ajustar o foco processo e não processo em culpar as pessoas.
Melhoria deve ser Melhoria medida e ter sua implementação medida periodicamente controlada.controlada
Melhoria requer Melhoria constância de constância investimentos, investimentos, recompensas
recompensas e incentivos. incentivos.
Melhoria é um processo Melhoria contínuo.contínuo
Se o nível de desconforto não é suficientemente alto, desconforto as coisas não mudarão.não mudarão
Motivação para o CMM Motivação para o CMM
Comunicar a visão de:
Comunicar a visão de:
• o que significa modelo de maturidade
• como ele resulta em melhoria da qualidade
• como ele faz a relação entre maturidade de processo e competência (capacitação)
Fornecer fundamento para:
Fornecer fundamento para:
• dar suporte à avaliações baseadas no CMM
• testar e aperfeiçoar o modelo de maturidade