Qualidade de Software
CMM
Uma Visão Geral
1
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
2
Qualidade de Software
PROCESSO DE SOFTWARE
requisitos de
software produto
Processo
de
Desenvolvimento
usuário
desenvolvedor
organização
requisitos
atendidos
SOFTWARE
PRODUTO
SOFTWARE COM QUALIDADE
3
Melhoria de Processo de Software
Abordagem
IDEAL
Processo
é
examinado
pela
5
ALAVANCAGEM
Ações
futuras
1
INICIALIZAÇÃO
Avaliação
do
Processo
Melhoria
do
Processo
4
Teste
Piloto
Soluçã
o
Recomen
-dações
Plano de
Ação
3
DIRETRIZES
Refinamento
REALIZAÇÃO
Estado
Atual e
Desejado
DIAGNÓSTICO
conduz à
Implementação
InfraEstímulo Contexto e
Estrutura
Patrocínio
2
Analisar/
Validar
Prioridades
Abordagem
A abordagem IDEAL descreve as fases,
atividades e recursos necessários para
uma melhoria de processo com sucesso.
4
Abordagem IDEAL
Ações
futuras
1
INICIALIZAÇÃO
InfraEstímulo Contexto e
Patrocínio Estrutura
2
DIAGNÓSTICO
CMM
4
Analisar/
Validar
Prioridades
5
Implementação
REALIZAÇÃO
Estado
Atual e
Desejado
Recomendações
3
DIRETRIZES
ALAVANCAGEM
Refinamento
Teste
Solução Piloto
Plano de
Ação
Abordagem
5
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.
6
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
Processo de Software
Maturidade do
7
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.
8
CMM - Capability Maturity Model


desenvolvido pela SEI
(Instituto de Engenharia
de Software)
Carnegie Mellon
University, Pittsburgh, PA
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.
SEI
Software Engineering Institute
9
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)
10
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)
11
Premissa Básica

Premissa básica que está por baixo 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.
12
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
mnelhoramentos sucessivos não foram estabelecidos.
13
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.
14
Os 5 Níveis de
Maturidade do CMM
OTIMIZADO
Organizações
com Melhoria
Contínua
GERENCIADO
DEFINIDO
REPETÍVEL
INICIAL
Organizações
Previsíveis
Organizações
Padronizadas
Organizações
Disciplinadas
Organizações
Caóticas
15
CMM:
Nível 1 de Maturidade
• O processo de software é
caracterizado como
ad hoc, e ocasionalmente
até mesmo caótico.
INICIAL
Organizações
Caóticas
• Poucos processos são
definidos e o sucesso
depende de esforços
individuais e heróicos.
16
CMM Nível 1- Inicial
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.
17
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 baseados 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
18
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.
19
CMM:
Nível 2 de Maturidade
• Processos administrativos
básicos são estabelecidos para
acompanhar custo,
cronograma e funcionalidade.
• A disciplina de processo está
REPETÍVEL
em repetir sucessos anteriores
Organizações em projetos com aplicações
Disciplinadas similares.
20
CMM Nível 2- Repetível
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.
21
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
22
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
23
CMM:
Nível 3 de Maturidade
• Os processos de software, tanto
para atividades administrativas
quanto para de engenharia
estão documentados,
DEFINIDOpadronizados e integrados em
um processo de software padrão
Organizações
Padronizadas
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.
24
CMM Nível 2- Repetível
Desenvolvimento de software de
acordo com um processo bem definido
In


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.
25
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.
26
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
27
CMM:
Nível 4 de Maturidade
GERENCIADO
• São coletadas medidas
detalhadas da qualidade do
processo e do produto.
Organizações
Previsíveis
• Tanto o processo de software
quanto os produtos são
quantitativamente
compreendidos e controlados.
28
CMM Nível 4- Gerenciado
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.
29
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.
30
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.
31
CMM:
Nível 5 de Maturidade
OTIMIZADO
Organizações
com Melhoria
Contínua
• 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.
32
CMM Nível 5- Otimizado
Foco na melhoria contínua do
processo
In

Out
Mudança disciplinada é um meio de vida.
33
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.
34
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
35
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.
36
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.
37
CMM:
capacidade
x
pessoas,
tecnologia e
medidas
Otimizado (5)
Foco na melhoria
contínua do processo
Gerenciado (4)
Processo medido e
controlado
Definido (3)
Processo é caracterizado e
claramente bem entendido
Repetível (2)
Pode repetir tarefas
executadas com sucesso
Inicial (1)
Pobremente controlado
e imprevisível
38
CMM: Capacidade x Pessoas
Nível 1
sucesso
depende de
heróis
individuais
“apagando
incêndio” é
o modo de
viver
relacão entre
disciplinas
são
descordenadas e até
adversas
Nível 2
sucesso
depende de
indivíduos,
apoio
administrativo
comprometi
mentos são
compreendidos e administrados
Nível 3
Nível 4
Nível 5
grupos de
projeto
trabalham
juntos
forte senso
de trabalho
em equipe
dentro de
cada projeto
forte senso
de trabalho
em equipe
na
organização
treinamento
é planejado e
de acordo
com os
papéis
todos estão
envolvidos
na melhoria
do processo
as pessoas
são treinadas
39
CMM: Capacidade x Tecnologia
Nível 1
Nível 2
Nível 3
Nível 4
Nível 5
introdução
de nova
tecnologia é
um risco
tecnologia
apoia
atividades
estáveis e
estabelecidas
novas
tecnologias
são
avaliadas em
bases
qualitativas
novas
tecnologias
são
avaliadas em
bases
quantitativas
novas
tecnologias
são
procuradas e
desenvolvidas
40
CMM: Capacidade x Medidas
Nível 1
coleta de
dados e
análise são
feitas ad
hoc
Nível 2
dados de
administração e
planejamento
usados em
projetos
individuais
Nível 3
dados são
coletados e
usados em
todo
processo
definido
dados são
compartilhados ao longo
do projeto
Nível 4
definição e
coleta de
dados
padronizados na
organização
dados são
usados para
compreender o
processo quantitativamente e
estabilizá-lo
Nível 5
dados são
usados para
avaliar e
selecionar
melhorias de
processo
41
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.
1940 - 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)
42
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
43
Adaptação da reação em cadeia de
Deming 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
44
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
45
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.
46
Aplicando TQM ao Software
Organização
Projeto A
Projeto B
Projeto X
Projeto C
TQM
hardware
software
CMM
O processo de melhoria se aplica em todo o contexto do
negócio - o CMM se aplica especificamente ao software.
47
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.

48
Motivação para o CMM
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:
•
dar suporte à avaliações baseadas no CMM
•
testar e aperfeiçoar o modelo de maturidade
49
Download

CMM