Qualidade de Software
Qualidade de Software
Qualidade de Software
Qualidade de Software
CMM
CMM
CMM
CMM
Sumário
Sumário
Sumário
Sumário
l O que é o CMM
l Os 5 Niveis de Maturidade do CMM l Caracterização Comportamental dos
Níveis de Maturidade
Qualidade de Software
Qualidade de Software
usuário
Processo de
Desenvolvimento
PROCESSO DE SOFTWARE
requisitos de requisitos de software produto software produto
desenvolvedor organização
SOFTWARE PRODUTO
requisitos requisitos atendidos atendidos
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 é é examinado examinado pela pela
Estímulo Contexto e Patrocínio Infra-Estrutura INICIALIZAÇÃO INICIALIZAÇÃO 11 Abordagem Abordagem IDEAL IDEAL Refinamento Implementação 44 Analisar/ Validar Ações futuras ALAVANCAGEM ALAVANCAGEM 55 Avaliação Avaliação do do Processo Processo Melhoria Melhoria do do Processo Processo conduz à conduz à Patrocínio Estrutura Recomen -dações DIAGNÓSTICO DIAGNÓSTICO
22 Atual e Estado Desejado DIRETRIZES DIRETRIZES Abordagem Prioridades Plano de Ação 33 Teste Piloto REALIZAÇÃO REALIZAÇÃO Soluçã o
O que é o CMM?
O que é o CMM?
O que é o CMM?
O que é o CMM?
l Uma estrutura que descreve os elementos chaveselementos chaves de um
processo
processo de software eficazeficaz.
l Um caminho de melhoramento evolucionáriomelhoramento evolucionário (5 níveis
de maturidade) para organizações de software mudaremmudarem
de maturidade) para organizações de software mudaremmudarem
CMM
CMM
-- Capability Maturity Model
Capability Maturity Model
CMM
CMM
-- Capability Maturity Model
Capability Maturity Model
ll Capability Maturity ModelCapability Maturity Model
(Modelo de Maturidade da Competência)
ll Maturidade da CompetênciaMaturidade da Competência : competência em
controlar o Processo de Software controlar o Processo de Software
(desenvolvimento, gerenciamento e manutenção).
ll Maturidade da CompetênciaMaturidade da Competência Maturidade do Maturidade do
Maturidade de Processo de Software
Maturidade de Processo de Software
Maturidade de Processo de Software
Maturidade de Processo de Software
l A maturidade dos processosmaturidade dos processos de software de uma
organização influencia na sua capacidade de atingir metas de custocusto, qualidadequalidade e cronogramacronograma
l A qualidade do processo de softwarequalidade do processo de software pode ser
CMM
CMM
-- Capability Maturity Model
Capability Maturity Model
CMM
CMM
-- Capability Maturity Model
Capability Maturity Model
l desenvolvido pela SEI SEI
(Instituto de Engenharia de Software) Carnegie Mellon
University, Pittsburgh, PA
SEI
University, Pittsburgh, PA
Software Engineering Institute
l Missão da SEISEI:
A Evolução do CMM (a)
A Evolução do CMM (a)
A Evolução do CMM (a)
A Evolução do CMM (a)
ll 19861986 - 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).
governo federal).
ll junho 1987junho 1987 - liberação de breve descrição do modelo de modelo de
maturidade
maturidade de processo de software.
ll setembro 1987setembro 1987 - versão preliminar do questionárioquestionário de
maturidade
A Evolução do CMM (b)
A Evolução do CMM (b)
A Evolução do CMM (b)
A Evolução do CMM (b)
ll 19931993 - 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
de processo de software e de extensivo retorno das indústrias e do governo
CMM
CMM
•• fevereiro 1993 fevereiro 1993 - Versão 1.1 do CMMCMM - Capability Capability Maturity Model for Software
Premissa Básica
Premissa Básica
Premissa Básica
Premissa Básica
ll Premissa básicaPremissa básica que está por baixo do trabalho da SEISEI
sobre maturidade de processo:
A qualidade de um software produto é A qualidade de um software produto é
profundamente determinada pela qualidade do processo de desenvolvimento e de manutenção
Visão Geral do Modelo (a)
Visão Geral do Modelo (a)
Visão Geral do Modelo (a)
Visão Geral do Modelo (a)
ll SEISEI desenvolveu um modelo demodelo de 5 níveis5 níveis que orienta
uma organização em como “amadurecer” seus processos de software.
l O modelo descreve um caminho caminho evolucionário que vai
de um processo indisciplinadoindisciplinado para um processo de um processo indisciplinadoindisciplinado para um processo
disciplinado disciplinado.
ll Sem a disciplinaSem a disciplina descrita no modelo, programas de
melhoria podem mostrar-se ineficientesineficientes porque os
fundamentos
fundamentos necessários para apoiar os
Visão Geral do Modelo (b)
Visão Geral do Modelo (b)
Visão Geral do Modelo (b)
Visão Geral do Modelo (b)
l Os 5 níveis de maturidade5 níveis de maturidade descrevem fundamentos
sucessivos para melhoria contínua do processomelhoria contínua do processo e
definem uma escala ordinalescala ordinal para medir a maturidademedir a maturidade
de processo de uma organização.
l As vantagensvantagens dos níveis de maturidade é que eles l As vantagensvantagens dos níveis de maturidade é que eles
fornecem prioridades clarasprioridades claras, as quais orientam na
seleção de algumas atividades de melhoramentoatividades de melhoramento que serão muito úteis úteis se implementadas imediatamente.
l Isso é importantemportante porque a maioria das organizações
DEFINIDO
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 Caóticas
REPETÍVEL
Organizações Disciplinadas
DEFINIDO
Organizações Padronizadas
CMM:
CMM:
Nível 1 de Maturidade
Nível 1 de Maturidade
• O processo de software é caracterizado como
INICIAL
Organizações
caracterizado como
ad hoc, e ocasionalmente
até mesmo caótico.
CMM Nível 1- Inicial
O Gerenciamento de Software é
O Gerenciamento de Software é
uma Caixa Preta
uma Caixa Preta
In
Out
l Requisitos fluem para dentro.
l Um produto de software é (normalmente) produzido
através de algum processo disformealgum processo disforme.
CMM
CMM -- Nível 1
Nível 1 -- Inicial
Inicial
Organizações Caóticas
Organizações Caóticas
l A organização nãonão provê um ambiente estávelambiente estável para
o desenvolvimento e manutenção de software
ll CronogramasCronogramas e orçamentosorçamentos são frequentemente ll CronogramasCronogramas e orçamentosorçamentos são frequentemente
abandonados
abandonados por não serem baseados em estimativas realísticas
l Numa crisecrise para cumprir cronograma, etapasetapas
planejadas do ciclo de vida não são realizadasnão são realizadas
ll DesempenhoDesempenho basicamente em função da
competência e heroísmoheroísmo das pessoas que fazem o trabalho.
CMM
CMM -- Nível 1
Nível 1 -- Inicial
Inicial
Organizações Caóticas
Organizações Caóticas
trabalho.
l O processoprocesso de software é imprevisível,imprevisível, já que é
constantemente alterado no decorrer do projeto
l Os maiores problemasmaiores problemas com os quais se defrontam as
CMM:
CMM:
Nível 2 de Maturidade
Nível 2 de Maturidade
• Processos administrativos
básicos são estabelecidos para acompanhar custo,
REPETÍVEL
Organizações Disciplinadas
cronograma e funcionalidade.
In
Out
CMM Nível 2- Repetível
Está em vigor um Sistema de
Está em vigor um Sistema de
Gerenciamento de Projeto
Gerenciamento de Projeto
ll ProcessoProcesso de construção de software é uma série de
caixas pretas
l Caracterizado pela existência de um processo efetivoprocesso efetivo
de planejamento e gerenciamento do projetoplanejamento e gerenciamento do projeto de software onde os controles sobre os procedimentos, compromissos e atividades são bem fundamentados.
CMM
CMM -- Nível 2
Nível 2 -- Repetível
Repetível
Organizações Disciplinadas
Organizações Disciplinadas
compromissos e atividades são bem fundamentados.
l Os processosprocessos de planejamento e gerenciamento do
projeto de software devem ser praticados na praticados na organização
organização, documentados, treinados e controlados.
l Neste nível ainda não háainda não há preocupação com o processo
l 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
CMM
CMM -- Nível 2
Nível 2 -- Repetível
Repetível
Organizações Disciplinadas
Organizações Disciplinadas
similares
similares, que tenham obtido sucesso no passado
l Um fator relevante para a organização nesse nível é a
dependência das experiências anteriores dependência das experiências anteriores.
l O desenvolvimento de novos tiposnovos tipos de produtos pode
DEFINIDO
• Os processos de software, tanto para atividades administrativas quanto para de engenharia
estão documentados,
CMM:
CMM:
Nível 3 de Maturidade
Nível 3 de Maturidade
DEFINIDO
Organizações Padronizadas
estão documentados,
padronizados e integrados em um processo de software padrão para a organização.
• Todos os projetos usam uma
In
Out
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
ll Funções e responsabilidadesFunções e responsabilidades no processo são
bem entendidasentendidas.
l A produção do produtoprodução do produto de software é visívelvisível
l Caracterizado principalmente pela existência de um
processo de engenharia
processo de engenharia de software bem definido, documentado e padrãopadrão para a empresa.
CMM
CMM -- Nível 3
Nível 3 -- Definido
Definido
Organizações Padronizadas
Organizações Padronizadas
l As saídassaídas de uma atividade fluemfluem naturalmente para as
entradas
entradas da próxima atividade
l Cada projeto de software utilizautiliza o processo padrão da
l Existe um grupo para processos de softwaregrupo para processos de software (SEPG)
responsável por facilitar atividades de definição e melhoria de processos.
Existe um programa de treinamentoprograma de treinamento que assegura que
CMM
CMM -- Nível 3
Nível 3 -- Definido
Definido
Organizações Padronizadas
Organizações Padronizadas
l Existe um programa de treinamentoprograma 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
l Processos que dêem poderespoderes as pessoas para realizarem
GERENCIADO
Organizações Previsíveis
• São coletadas medidas
detalhadas da qualidade do
CMM:
CMM:
Nível 4 de Maturidade
Nível 4 de Maturidade
Previsíveis
detalhadas da qualidade do processo e do produto.
• Tanto o processo de software quanto os produtos são
quantitativamente
In
Out
CMM Nível 4- Gerenciado
Produto e processo são gerenciados
Produto e processo são gerenciados
quantitativamente
quantitativamente
l A gerência gerência tem bases objetivasbases objetivas para tomada de
decisão.
l A gerência é capaz de prever o desempenhoprever o desempenho
l Caracterizado pela existência de processosprocessos de software
passíveis de medida passíveis de medida.
l A produtividadeprodutividade e a qualidadequalidade são medidasmedidas em todas
as etapas do processo de software e para todos os
CMM
CMM -- Nível 4
Nível 4 -- Gerenciado
Gerenciado
Organizações Previsíveis
Organizações Previsíveis
as etapas do processo de software e para todos os projetos da organização.
l O controle sobre produtos e processoscontrole sobre produtos e processos de todos os
l 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.
CMM
CMM -- Nível 4
Nível 4 -- Gerenciado
Gerenciado
Organizações Previsíveis
Organizações Previsíveis
do software entregue aos clientes.
l À medida que a organização adquire mais conhecimento conhecimento
sobre o produto
sobre o produto, tem a oportunidade de removerremover várias fontes de comprometimento
fontes de comprometimento da qualidade final
l Isto proporciona a oportunidade de colocarcolocar o produto sob
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 utilizando-se as medidas quantitativas de qualidade do processo e produto, e
In
Out
CMM Nível 5- Otimizado
Foco na melhoria contínua do
Foco na melhoria contínua do
processo
processo
l Caracterizado pela existência de processosprocessos de software
com contínua melhoriacontínua melhoria.
l Os processosprocessos de software são avaliados avaliados para prevenir prevenir
tipos de defeitos conhecidos devido à recorrência, e as
CMM
CMM -- Nível 5
Nível 5 -- Otimizado
Otimizado
Melhoria Contínua
Melhoria Contínua
tipos de defeitos conhecidos devido à recorrência, e as lições aprendidas são disseminadas para outros projetos.
ll TecnologiasTecnologias que proporcionem mais retorno para
processos específicos, utilizados pela organização, são selecionadas para serem introduzidas,introduzidas, de maneira
gerenciável
l Apesar de o processo ser maduro, ele é alvo de contínuas contínuas
melhorias melhorias.
CMM
CMM -- Nível 5
Nível 5 -- Otimizado
Otimizado
Melhoria Contínua
Melhoria Contínua
l Os grupos de projetistas analisam o rendimento do
projeto para determinar as causas dos defeitoscausas dos defeitos.
l Nesse nível foi atingido um ambiente de excelênciaambiente de excelência em
Níveis de maturidade não
Níveis de maturidade não
podem ser omitidos
podem ser omitidos
l Processos dos níveis mais altos de maturidade podem
ser realizados até mesmo por organizações do nível 1 (embora talvez ineficazmente).
ll CompetênciaCompetência em processos é construída em estágiosestágios,
uma vez que alguns processos não são eficazes quando outros não estão estáveis.
l Cada nível nível oferece um fundamentofundamento necessário para
ll SemSem a disciplina de gerenciamentogerenciamento o processo de
engenharia é sacrificadosacrificado.
l Medidas detalhadas são inconsistentesinconsistentes sem um processo
Níveis de maturidade não
Níveis de maturidade não
podem ser omitidos
podem ser omitidos
l Medidas detalhadas são inconsistentesinconsistentes sem um processo
definido.
l O efeito de inovação de processo não é claronão é claro em um
capacidade
capacidade
x
x
pessoas,
pessoas,
tecnologia e
tecnologia e
Definido (3)Gerenciado (4)
Otimizado (5)
Processo é caracterizado e
Processo medido e controlado
Foco na melhoria contínua do processo
CMM:
tecnologia e
tecnologia e
medidas
medidas
Inicial (1) Pobremente controlado e imprevisível Repetível (2)Pode repetir tarefas
executadas com sucesso
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” é comprometimentos são treinamento é planejado e todos estão envolvidos
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
incêndio” é o modo de viver
mentos são compreendi-dos e admi-nistrados
é planejado e de acordo com os papéis envolvidos na melhoria do processo relacão entre disciplinas são descordena-das e até adversas
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 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
hoc
individuais definido organização processo dados são
As Inspirações do CMM
As Inspirações do CMM
As Inspirações do CMM
As Inspirações do CMM
l A estruturaestrutura do modelo de maturidade de processo de
software está baseada nos princípios de qualidade de princípios de qualidade de produto
produto que existem há 60 anos.
ll 19401940 - Shewart (AT&T) promulgou os princípios de
controle estatístico de qualidade controle estatístico de qualidade.
controle estatístico de qualidade controle estatístico de qualidade.
l Os princípios de Shewart foram posteriormente
desenvolvidos e demonstrados
desenvolvidos e demonstrados com sucesso no trabalho de Deming e Juran.
l O trabalho desses pioneiros princípios do
TQM
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. A capacidade melhora.
O mercado é conquistado devido a melhores produtos e preços menores
Lucro e mais serviço é conseguido
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
definido e mais consistemente
implementado através da organização.
Gerenciamento da Qualidade Total
Gerenciamento da Qualidade Total
Gerenciamento da Qualidade Total
Gerenciamento da Qualidade Total
ll Gerenciamento da Qualidade Total (TQMGerenciamento da Qualidade Total (TQM) é a
aplicação de métodos quantitativosmétodos quantitativos e recursos recursos humanos
humanos para melhorarmelhorar :
- o material e serviços fornecidos por uma - 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
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
l O CMMCMM estabelece, durante os estágios iniciaisestágios iniciais, a
administração do projeto
administração do projeto e os fundamentos de fundamentos de administração do projeto
administração do projeto e os fundamentos de fundamentos de engenharia
Aplicando TQM ao Software
Aplicando TQM ao Software
CMM
CMM
TQM
TQM
Projeto C Projeto A
hardware
Organização
Projeto X
Projeto B
CMM
CMM
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
ll MelhoriaMelhoria tem o seu focofoco em ajustar o processoprocesso e não
em culpar as pessoas.
ll Melhoria Melhoria deve ser medidamedida e ter sua implementação
periodicamente controladacontrolada. periodicamente controladacontrolada.
ll MelhoriaMelhoria requer constânciaconstância de investimentos, investimentos,
recompensas
recompensas e incentivos.incentivos.
ll Melhoria Melhoria é um processo contínuocontínuo.
l Se o nível de desconfortodesconforto não é suficientemente alto,
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) processo e competência (capacitação)
Fornecer fundamento para: Fornecer fundamento para:
• dar suporte à avaliações baseadas no CMM