Buscar

IC822_-_II_SW-CMM_e_CMMI

Prévia do material em texto

Qualidade de Software
SW-CMM e CMMI
Eduardo Kinder Almentero
ekalmentero@gmail.com
Modelo SW-CMM
• História
– SW-CMM (Capability Maturity Model) é um modelo de capacitação de 
processo, patrocinado pelo Departamento de Defesa dos EUA para 
avaliação da capacidade dos seus fornecedores de software.
– Baseou-se em ideias importantes do movimento de qualidade 
industrial.
– Alguns princípios do modelo foram inspirados por Crosby no livro 
Quality is Free, onde são descritos 5 níveis de maturidade. 
– É específico da área de software (não inclui outras áreas como 
recursos humanos e finanças).
– Sendo assim, sua aplicação não garante a viabilidade da organização, 
mas pode ser um fator importante para melhoria da eficácia e 
competitividade.
– Seu foco é em processos, fator com maior potencial de melhoria a 
curto prazo.
26/09/2014 Prof. Eduardo Kinder Almentero 2
Níveis do SW-CMM
• O objetivo principal é que as organizações 
conheçam e melhorem seus processos de 
desenvolvimento de software.
– Através de práticas definidas.
• A melhoria é baseada em várias passos pequenos 
e não em grandes revoluções.
• Os passos evolucionários do SW-CMM são 
divididos em 5 níveis, que servem como uma 
escala para avaliar a maturidade do processo da 
organização.
26/09/2014 Prof. Eduardo Kinder Almentero 3
Níveis do SW-CMM
Nível 
inicial
Nível 
repetitivo
Nível 
definido
Nível gerenciado 
quantitativamente
Nível 
Otimizado
26/09/2014 Prof. Eduardo Kinder Almentero 4
Processos 
ad-hoc
Processos 
disciplinados
Processos medidos 
e controlados 
quantitativamente
Processos 
padronizados
Processos 
melhorados 
continuamente
Níveis do SW-CMM
• Cada nível (exceto o primeiro) é composto de 
várias Áreas-chave de Processo (Key Process
Areas [KPAs]).
• Cada KPA identifica um grupo de atividades 
correlatas que realizam um conjunto de metas.
• As KPAs de um nível identificam os objetivos que 
devem ser cumpridos.
• São cumulativas, isto é, uma empresa nível 5 
satisfaz todas as KPAs dos níveis 2 a 5.
26/09/2014 Prof. Eduardo Kinder Almentero 5
Nível 1 - Inicial
• Poucos processos são definidos e o sucesso depende de desempenho 
(heroísmo) individual.
• As organizações podem ser bem sucedidas, mas normalmente isto 
acontece no desenvolvimento de produtos qual os quais já estiveram 
envolvidas anteriormente.
• Deficiência de planejamento e dificuldade de realizar previsões 
(geralmente são erradas).
• Cronogramas e prazos irrealistas e acabam sendo alterados várias vezes
durante o desenvolvimento do software.
• Imprevistos são comuns neste contexto e dependem da capacidade 
individual para serem resolvidos.
• Como há a cultura de que planos e previsões não funcionam, o 
planejamento não é seguido.
• É comum passar diretamente dos requisitos para codificação.
• Documentação é considerada inútil e é feita apenas por aqueles que 
entendem sua importância.
26/09/2014 Prof. Eduardo Kinder Almentero 6
Nível 1 - Inicial
• Para que seja possível gerenciar a equipe nestas 
condições, uma mudança cultural é necessária.
– A equipe dificilmente acreditará nos benefícios de 
processos organizados;
– Reações intransigentes à coleta de dados e a uso de 
padrões de desenvolvimento, documentação e 
ferramentas;
• A mudança deve ocorrer lentamente.
• O uso de KPAs pode ajudar.
• A introdução de cada KPA pode ser planejada, de 
forma que a equipe se habitue a seguir padrões
organizacionais.
26/09/2014 Prof. Eduardo Kinder Almentero 7
Nível 2 - Repetitivo
• Para projetos semelhantes a outros realizados anteriormente, 
organizações neste nível tem maior probabilidade de cumprir 
compromissos relacionados a requisitos, custos e prazos.
– Ex: 
• Organizações que desenvolvem software para Web adquirem experiência na 
área para projetos futuros.
• Projetos destas organizações que envolvam, por exemplo, desenvolvimento 
para mainframes terão menos chances de serem bem sucedidos.
– Preocupação com a gerência do projeto
• Reuniões, acompanhamento do cronograma. 
– Com isso, é possível identificar problemas, como dificuldade em atingir prazos, antes
que apareçam ou se tornem críticos.
• Organizações neste nível são disciplinadas ao executar projetos, 
mas não estão preparadas para mudanças.
– São incapazes de prever o resultado da adoção de novas ferramentas e 
métodos ou do desenvolvimentos de novos produtos.
26/09/2014 Prof. Eduardo Kinder Almentero 8
Nível 2 - Repetitivo
• Áreas-chave (KPAs)
– Gestão dos requisitos
– Planejamento de projetos
– Supervisão e acompanhamento de projetos
– Gestão da subcontratação
– Grupo de garantia da qualidade
– Gestão de configurações
26/09/2014 Prof. Eduardo Kinder Almentero 9
Nível 3 - Definido
• Sucessos de projetos anteriores não são apenas repetidos.
• Estabelece uma infraestrutura de processos que permite 
adaptação a mudanças.
• Ferramentas passam a ser aplicadas de forma sistemática,
padronizada e coerente, contribuindo para melhoria da qualidade
e produtividade.
• Conhecimento basicamente qualitativo sobre os processos.
• Processo bem documentado, onde a equipe sabe bem o seu papel.
• Gerentes tem maior conhecimento sobre o progresso, pois as 
atividades são planejadas, estáveis e repetitivas.
• Há preocupação para que todos tenham o conhecimento 
necessário.
• Como consequência, há uma melhora na qualidade de software, 
pois custos, tarefas e prazos estão sob controle.
26/09/2014 Prof. Eduardo Kinder Almentero 10
Nível 3 - Definido
• KPAs
– Grupo de engenharia de processos de software
– Processo-padrão de software no âmbito da 
organização.
– Programas de treinamento.
– Gestão integrada de projetos.
– Padronização
– Coordenação entre grupos que participam de projetos 
de sistemas
– Coordenação de revisões no âmbito da organização.
26/09/2014 Prof. Eduardo Kinder Almentero 11
Nível 4 - Gerenciado
• A administração de processo e produtos evolui para um 
tratamento quantitativo.
• A organização é proficiente na coleta de métricas e gere a 
base de dados do processo.
• A qualidade e produtividade são medidas em todos os 
projetos.
• Bases de dados de processos são utilizadas para coletar e 
analisar dados disponíveis a partir dos processos definidos.
• Métricas quantitativas são estabelecidas para avaliar os 
processos e produtos.
• Riscos são cuidadosamente gerenciados.
• Como resultado do maior controle, coleta de dados e 
gerenciamento dos riscos, produtos tendem a apresentar 
maior qualidade.
26/09/2014 Prof. Eduardo Kinder Almentero 12
Nível 4 - Gerenciado
• KPAs
– Gestão quantitativa dos processos
– Gestão da qualidade de software
26/09/2014 Prof. Eduardo Kinder Almentero 13
Nível 5 - Otimizado
• Processos em melhoria contínua, otimizados
para as necessidades de cada momento.
• Pontos fracos de cada processo são identificados
e ações são tomadas para que sejam 
melhorados.
• A equipe avalia constantemente a adoção de 
novas tecnologias e processos.
• Defeitos são identificados e resolvidos e suas 
causas são estudadas.
• Lições com erros e acertos são utilizadas em 
processos seguintes.
26/09/2014 Prof. Eduardo Kinder Almentero 14
Nível 5 - Otimizado
• KPAs
– Prevenção dos defeitos.
– Gestão da evolução tecnológica.
– Gestão das mudanças de processos.
26/09/2014 Prof. Eduardo Kinder Almentero 15
Modelo CMMI
• História
– Com o sucesso do SW-CMM modelos semelhantes foram 
criados para outras áreas
• Gestão de recursos humanos (P-CMM), aquisição de software (SA-
CMM) e engenharia de sistemas (SE-CMM)
– Os diversos padrões apresentam estrutura, termos e 
formatos diferentes, causando confusão quando eram 
utilizados em conjunto.– Para integrar os diversos modelos, e como uma evolução 
do CMM, foi criado o CMMI (Capability Maturity Model
Integration).
– Durante a construção do CMMI houve preocupação com 
sua evolução e, por isso, foi projetado prevendo a 
integração com outros modelos.
26/09/2014 Prof. Eduardo Kinder Almentero 16
CMMI
• O objetivo do modelo é servir de guia para a 
melhoria de processos e também da habilidade
dos profissionais em gerenciar o 
desenvolvimento, aquisição e manutenção de 
produtos ou serviços.
• Assim como no SW-CMM, é esperado que com a 
adoção do CMMI a organização seja mais 
eficiente, respeite os prazos e construa software 
com menos erros.
• Estudos indicam que estes objetivos tem sido 
atingidos.
26/09/2014 Prof. Eduardo Kinder Almentero 17
Termos Importantes do CMMI
• Áreas de Processo
– Conjunto de práticas que, quando executadas coletivamente, satisfaz um 
conjunto de objetivos.
• Objetivos específicos
– Relacionados a uma área de processo e identificam características únicas que 
descrevem o que deve ser implementado para satisfazer essa área do 
processo.
• Práticas específicas
– Práticas importantes para que atingir um determinado objetivo. Cada uma é 
associada com um nível de maturidade.
• Objetivos genéricos
– Cada nível de maturidade possuiu um, que descreve o que a organização deve 
fazer para atingi-lo.
• Práticas genéricas
– Asseguram que processos serão efetivos e repetíveis. São categorizadas por 
nível de maturidade.
26/09/2014 Prof. Eduardo Kinder Almentero 18
Disciplinas do CMMI
• O modelo CMMI possui quatro corpos de 
conhecimento (disciplinas).
26/09/2014 Prof. Eduardo Kinder Almentero 19
CMMI
Engenharia de 
Sistemas
Engenharia de 
Software
Desenvolvimento 
integrado do 
Produto e 
Processo
Fontes de 
Aquisição
Disciplinas do CMMI
• Engenharia de sistemas
– Abordagem interdisciplinar, cujo objetivo é obtenção bem sucedida de 
sistemas, envolvendo ou não software
– Com base em necessidades, restrições e expectativas apresentadas pelos 
clientes, os engenheiros de sistemas propõe produtos e soluções por meio da 
análise, projeto, validação, teste, implementação, treinamento e suporte.
• Engenharia de software
– Tem o objetivo de disciplinar a produção de software, aplicando princípios de 
engenharia.
– Não aborda apenas processos técnicos de desenvolvimento. Engloba também 
atividades de gerenciamento de projetos, desenvolvimento de ferramentas, 
métodos e teorias que deem apoio a produção de software.
– De acordo com o IEEE a ES é “aplicação de uma abordagem sistemática, 
disciplinada e quantificável para o desenvolvimento, operação e manutenção 
do software.”
26/09/2014 Prof. Eduardo Kinder Almentero 20
Disciplinas do CMMI
• Desenvolvimento integrado do produto de do processo.
– Abordagem sistemática que se baseia na colaboração dos 
stakeholders para melhor satisfazer os requisitos e expectativas
dos clientes.
– Estes processos são integrados aos outros que existentes na 
organização.
• Fontes de aquisição
– A medida que os projetos se tornam complexos, pode surgir a 
necessidade de contratar terceiros para realizar funções 
específicas ou adicionar modificações em produtos específicos do 
projeto.
– Quando as atividades são críticas, torna-se necessário o 
monitoramento antes do lançamento.
– Esta disciplina atua na aquisição de produtos nestas circunstancias.
26/09/2014 Prof. Eduardo Kinder Almentero 21
CMMI
• Representação por estágios x Representação contínua.
– A abordagem por estágios segue a mesma estrutura do 
SW-CMM
• Divisão em níveis de maturidade.
– Na representação contínua é possível selecionar a 
sequencia de melhorias adequadas aos objetivos dos 
negócios da organização.
• Divisão em áreas de processo.
– Os componentes comuns das representações são: áreas 
de processo, objetivos específicos, práticas específicas, 
objetivos genéricos, práticas genéricas, produtos típicos de 
trabalho, subpráticas, notas, disciplinas, práticas genéricas 
e referências.
26/09/2014 Prof. Eduardo Kinder Almentero 22
CMMI – Representação por estágios
• Organiza as áreas de processo em 5 níveis de 
maturidade (de forma semelhante ao SW-CMMI).
• Estes níveis representam um caminho de 
melhoria de processos para toda a organização, 
sugerindo uma ordem. 
• Em cada nível existem diversas áreas de 
processo. Em cada área de processo existem 
objetivos e práticas genéricos ou específicos.
• A abordagem possui foco nas práticas para 
melhoria de processos especificamente para o 
nível escolhido.
26/09/2014 Prof. Eduardo Kinder Almentero 23
CMMI – Representação por estágios
• Um nível consiste em práticas específicas e genéricas para uma 
área de processo.
• Ao satisfazer objetivos específicos e genéricos para uma dada área 
de processo, a organização obtém os benefícios da melhoria de 
processos.
• Na representação CMMI por estágios, existem 5 níveis de 
maturidade, representados pelos números 1 a 5.
– Inicial, gerenciado, definido, gerenciado quantitativamente e 
otimizado.
• Os níveis de maturidade consistem em um conjunto predefinido de 
áreas do processo.
• Quando uma organização atinge as práticas para estar em um 
nível, significa que pratica todos os requisitos necessários dos 
níveis anteriores.
26/09/2014 Prof. Eduardo Kinder Almentero 24
Nível 1 - Inicial
• Processo caóticos, ambiente instável de desenvolvimento 
de software.
• Padrões não existem ou não são seguidos.
• Problemas para cumprir prazos, custos e requisitos 
(necessidades e expectativas).
• Organização depende de talentos individuais.
• Produtos podem ser bons (qualidade)
– Mas depende do talento individual.
• Dificuldade de repetir sucessos anteriores, pois estes são 
mais individuais do que da organização.
– A ausência de um técnico chave em processos seguintes torna 
os sucessos anteriores difíceis de alcançar, pois um dos 
responsáveis não está presente.
26/09/2014 Prof. Eduardo Kinder Almentero 25
Nível 2 - Gerenciado
• Projetos possuem requisitos gerenciados e processo planejados, 
medidos e controlados.
– As práticas possibilitam o cumprimento dos planos no 
desenvolvimento de projetos.
• Requisitos, processos e serviços gerenciados.
– Significa grande preocupação em planos.
– Não conformidades são detectadas com antecedência, permitindo a 
adoção de ações corretivas.
• Ex.: alocar mais pessoas em uma tarefa (problema de prazo).
• Datas de entrega intermediárias de partes dos produtos são 
estabelecidas em acordo com os stakeholders e revisadas sempre 
que necessário.
– O acompanhamento pelo gerente aumenta a probabilidade de que 
prazos sejam cumpridos, requisitos atendidos, padrões seguidos e 
objetivos do projeto atendidos.
26/09/2014 Prof. Eduardo Kinder Almentero 26
Nível 3 - Definido
• Processos são bem caracterizados e entendidos.
– A padronização dos processo permite maior consistência nos 
produtos gerados pela organização.
• A descrição dos processos conta com padrões, 
procedimentos, ferramentas e métodos bem definidos.
• Este aspecto diferencia organizações nos níveis 2 e 3.
– No nível 2, padrões, descrições de processo e procedimentos
podem variar para cada projeto.
– No nível 3 isto não ocorre, pois os procedimentos são 
padronizados e devem prever a aplicação em projetos 
diferentes.
• Outra diferença para o nível anterior é o maior nível de 
detalhe e rigor na descrição dos processos.
26/09/2014 Prof. Eduardo Kinder Almentero 27
Nível 4 – Gerenciado Quantitativamente
• Processos são selecionados para contribuir com o desempenho dos demais 
processos.
• O controle dos processos é feito com o uso de métodos estatísticos e outras 
abordagens quantitativas.
• Tradução de aspectos qualitativosem números, permitindo que sejam melhor 
entendidos e comparados.
– O uso de valores no lugar de escalas qualitativas permite um entendimento melhor da 
qualidade e do desempenho de um processo, além de um gerenciamento mais preciso.
• Dados sobre todos os processos são coletados e analisados estatisticamente.
– Facilita o acompanhamento do desempenho da organização.
• Medidas de qualidade e desempenho do processo são armazenadas em uma base 
histórica, para suportar decisões futuras.
– Assim, decisões corretas podem ser lembradas e repetidas.
• Uma diferença marcante entre este nível e o anterior é o aumento da 
previsibilidade do desempenho devido ao controle qualitativo.
– No nível 3, previsões são realizadas, mas de forma qualitativa, que são, na maioria das 
vezes, menos precisas.
26/09/2014 Prof. Eduardo Kinder Almentero 28
Nível 5 – Otimizado
• Processos são continuamente melhorados, tendo 
como base a o entendimento qualitativo de 
características que influenciam o desempenho.
• A melhoria contínua é obtida com inovações e 
melhora no uso das tecnologias. 
• Objetivos quantitativos de melhoria de processo são 
estabelecidos e continuamente revisados com base 
nos negócios da organização, além de serem utilizados 
como critério para o gerenciamento.
• Efeitos da implantação de melhoria de processos são 
medidos e avaliados.
26/09/2014 Prof. Eduardo Kinder Almentero 29
CMMI – Representação por estágios
• A melhoria de processos é tarefa de todos e 
não pode ser interpretada como uma ordem 
específica de níveis hierárquicos mais altos.
• Um ciclo de melhoria contínua dos processos 
deve ser criado, evitando a acomodação e, 
eventualmente, volta a níveis anteriores.
26/09/2014 Prof. Eduardo Kinder Almentero 30
CMMI – Representação por estágios
26/09/2014 Prof. Eduardo Kinder Almentero 31
Nível de Maturidade 1
Nível de Maturidade 2
Nível de Maturidade 5
Área de Processo 1
Área de Processo n
Objetivos 
específicos
Objetivos 
genéricos
Práticas 
específicas
Características comuns
Compromisso 
com Execução
Habilidade com 
execução
Direção da 
implementação
Verificação da 
implementação
Práticas 
genéricas
...
...
Áreas de Processo por Estágio
Nível 2
Gerência de requisitos
Planejamento do projeto
Gerência e controle do projeto
Gerência de acordos com fornecedores
Medição e análise
Garantia da qualidade do processo e do produto
Gerência de configuração
26/09/2014 Prof. Eduardo Kinder Almentero 32
Nível 3
Desenvolvimento de requisitos
Solução técnica
Integração do produto
Verificação
Validação
Foco no processo organizacional
Treinamento organizacional
Gerência de projeto integrada
Gerência de riscos
Análise de decisão e resolução
Desempenho do processo organizacional
Definição do processo organizacional
Nível 4
Desempenho do processo organizacional
Gerência quantitativa do projeto
Nível 5
Inovação e implantação na organização
Análise e resolução de causas
CMMI – Representação contínua
• Estabelece 6 níveis de capacitação.
• Áreas de processo são agrupadas por categorias afins.
• Os perfis de capacitação representam caminhos de 
melhoria, indicando a evolução para cada uma das 
áreas.
• Em cada área de processo, objetivos e práticas 
específicas são listados, seguidos por objetivos e 
práticas genéricas.
• As áreas de processo do CMMI para software na 
representação contínua são agrupadas em quatro 
categorias: Gerência de processo, Gerência de 
projeto, Engenharia e Suporte.
26/09/2014 Prof. Eduardo Kinder Almentero 33
CMMI – Representação contínua
26/09/2014 Prof. Eduardo Kinder Almentero 34
Área de Processo 1
Área de Processo 2
Objetivos 
específicos
Objetivos 
genéricos
Práticas 
específicas
...
Área de Processo n
Práticas 
genéricas
Níveis de 
Capacidade
CMMI – Representação contínua
• Áreas de processo relacionadas a categoria Gerencia 
de processos possuem atividades relacionadas a 
definir, planejar, implantar, monitorar, controlar, 
medir e melhorar processos.
• Aquelas relativas a Gerência de projetos possuem 
atividades relacionadas a planejamento, monitoração
e controle do projeto.
• A categoria Engenharia se refere às diversas 
engenharias, como engenharia de software.
• Atividades pertinentes a fornecer suporte ao 
desenvolvimento e à manutenção de produtos estão 
relacionadas a categoria Suporte.
26/09/2014 Prof. Eduardo Kinder Almentero 35
CMMI – Representação contínua
• Cada prática específica e genérica corresponde a 
um nível de capacitação.
• Objetivos e práticas específicos são aplicadas a 
áreas de processo individuais.
• Objetivos e práticas genéricos são aplicadas em 
múltiplas áreas de processo.
• Objetivos e práticas genéricos definem uma 
sequencia de níveis de maturidade, que 
representam melhorias na implementação dos 
processos escolhidos.
26/09/2014 Prof. Eduardo Kinder Almentero 36
CMMI – Representação contínua
• Os modelos CMMI são baseados na descrição de 
níveis discretos de melhoria de processo.
• Na representação contínua, os níveis sugerem 
uma sequência para melhoria de processos em 
cada área.
• Permite uma flexibilidade em relação a ordem
que as áreas de processo são abordadas.
• Existem 6 níveis de capacitação:
– Incompleto, realizado, gerenciado, definido, 
gerenciado quantitativamente e otimizado.
26/09/2014 Prof. Eduardo Kinder Almentero 37
Níveis de capacidade
• Nível 0 – incompleto
– Corresponde a não realização de um processo.
– Se o processo é implementado pela empresa, significa que 
um ou mais objetivos específicos da área de processo não 
foi satisfeito.
• Nível 1 – realizado
– Para estar no nível 1, cada processo deve cumprir os 
objetivos específicos de sua área.
• Nível 2 – gerenciado 
– Cada processo cumpre os requisitos do nível 1;
– Além disto, cada processo é planejado e executado de 
acordo com uma política determinada.
26/09/2014 Prof. Eduardo Kinder Almentero 38
Níveis de capacidade
• Nível 3 – definido
– Cada processo cumpre os requisitos do nível 2;
– Além disto, estão adaptados a um conjunto de processos padronizados 
da organização.
• Nível 4 – gerenciado quantitativamente
– Cada processo cumpre os requisitos do nível 3;
– Processos são definidos e controlados quantitativamente (através de 
dados estatísticos);
– Previsibilidade de desempenho.
• Nível 5 – otimizado
– Cada processo cumpre os requisitos do nível 4;
– Processo adaptado para cumprir os objetivos de negócio da 
organização;
– Otimização de processos – foco na melhoria contínua de desempenho.
26/09/2014 Prof. Eduardo Kinder Almentero 39
CMMI – Representação Contínua x por Estágios
26/09/2014 Prof. Eduardo Kinder Almentero 40
Nível de Maturidade 5
OID, CAR
Nível de Maturidade 4
OPP, QPM
Nível de Maturidade 3
RD, TS, PI, VER, VAL, OPF, OPD, OT, 
IPM, RSKM, DAR, OEI, IT, ISM
Nível de Maturidade 2
REQM, PP, PMC, MA, PPQA, CM, SAM
Nível de Maturidade 1
Inicial: Processo imprevisível, fracamente 
controlado e reativo
AP1 AP2 AP3 AP4 AP5
5 – Otimizado: foco na 
melhoria de processos.
4 – Gerenciado Quantitativamente: 
Processo medidos e controlados.
3 – Definido: Processos 
caracterizados ara organização. 
2 – Gerenciado: Processo 
caracterizado para projetos e 
reativo.
NC5
NC4
NC3
NC2
NC1
inicial
NC0
incompleto
Contínua
Para uma ou um conjunto de áreas de processo
Por Estágio
Para um conjunto de áreas de processo pré-definido.
Outros Modelos
• Os modelos CMM e CMMI apresentam foco 
em organizações.
• Após a utilização destes modelos por algum 
tempo, percebeu-se a necessidade de 
melhorar processos de trabalhos individuaise 
de equipe
– PSP (Personal Software Process)
– TSP (Team Software Process)
26/09/2014 Prof. Eduardo Kinder Almentero 41
Material de apoio
• Bibliografia básica
– KOSCIANSKI, A. Qualidade de software. 2. ed. São 
Paulo: Novatec, 2007
– SOMMERVILLE, I. Engenharia de software. 8. ed. São 
Paulo: Addison Wesley, 2007.
• Bibliografia complementar
– PFLEEGER, S.L., et al, “Software Engineering”, Prentice 
Hall, 2005, 3rd edition.
– Guide to the Software Engineering Body of 
Knowledge, IEEE Computer Society, 2004. Disponível 
em http://swebok.org.
26/09/2014 Prof. Eduardo Kinder Almentero 42

Continue navegando