qualidade de software prof a. sandra c.p.f. fabbri e-mail [email protected] 1 o. semestre 1999

81
Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail [email protected] 1 o. semestre 1999

Upload: internet

Post on 17-Apr-2015

113 views

Category:

Documents


6 download

TRANSCRIPT

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

Qualidade de Software

Profa. Sandra C.P.F. Fabbri

e-mail [email protected]

1o. semestre 1999

Page 2: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Visão Geral de QualidadeVisã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). “

Page 3: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Visão Popular de QualidadeVisã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.

Page 4: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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

Page 5: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Visão Profissional de Qualidade

requisitosrequisitos

PROCESSO DE CONSTRUÇÃO

PRODUTOusuário requisitosrequisitos

atendidosatendidos

PRODUTO COM QUALIDADE

Page 6: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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

Page 7: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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

Visões de Qualidade de Software

Page 8: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Page 9: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Ele faz aquilo que eu quero?

Page 10: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Ele se comporta com precisão o tempo todo?

Page 11: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Posso consertá-lo?

Page 12: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Posso mudá-lo ?

Page 13: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Posso testá-lo?

Page 14: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Ele rodará no meu hardware tão bem quanto possível ?

Page 15: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Ele é seguro?

Page 16: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Ele foi projetado para o usuário?

Page 17: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Poderei usá-lo em outra máquina?

Page 18: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Poderei reutilizá-lo em outra máquina?

Page 19: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

usuário

desenvolvedorAdaptabilidade a Novos Ambientes

Habilidade de ser Alterado

Características Operacionais

CorretitudeConfiabilidade

ManutenibilidadeFlexibilidadeTestabilidade

EficiênciaIntegridadeUsabilidadePortabilidadeReusabilidadeInteroperabilidade

Requisitos do Software Produto

Poderei compor uma interface com outro sistema?

Page 20: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Qualidade de Software Produto

desenvolvedor

usuáriorequisitos de requisitos de software produtosoftware produto

Processo de Desenvolvimento de Software

SOFTWARE PRODUTO

requisitosrequisitosatendidosatendidos

SOFTWARE PRODUTO COM QUALIDADE

Page 21: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

DEFINIÇÃODEFINIÇÃO

Análise de Sistema Planejamento Análise de Requisitos

CONSTRUÇÃOCONSTRUÇÃO

Projeto Codificação

Teste

MANUTENÇÃOMANUTENÇÃO

Entendimento Modificação

Revalidação

Processo de Desenvolvimento de Software

Page 22: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Requisitos Organizacionais

REQUISITOS DE SOFTWARE PRODUTO

CUMPRIMENTO DE PRAZO, BOA PREVISÃO DE CUSTO,

BOA PRODUTIVIDADE Ferramentas

Métodos

PessoasPolíticasResponsabilidades

Gerência Eficaz Controle das Atividades

Page 23: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Processo de Software

Processode

Desenvolvimento

Procedimentos e métodos que definem o relacionamento de tarefas.

A

C

B

D

Pessoas com habilidades,treinamento e motivação

Ferramentas e Equipamentos

Page 24: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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.

Page 25: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Gerenciamento de Processo de Software

Processo de Desenvolvimento de Software

requisitos organizacionais

Controle das AtividadesGerência Eficaz

Processo de Software muito bem Definido

requisitos de software

produto

Page 26: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

• Uma das Uma das maiores dificuldadesmaiores dificuldades encontradas pelas empresas de encontradas pelas empresas de software é o software é o gerenciamentogerenciamento de seus de seus processos de softwareprocessos de software

Modelos de Processo de Software

Processo de Software

Page 27: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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

Page 28: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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.

Page 29: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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.

Page 30: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

• 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

Qualidade de Processo de Software X Maturidade de Processo de Software

Page 31: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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.

Page 32: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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.

Page 33: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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

Page 34: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Um Processo de Software Maduro

• CoerenteCoerente com as linhas de ação, o com as linhas de ação, o trabalho é efetivamente concluído.trabalho é efetivamente concluído.

• Definido, documentado e Definido, documentado e melhorando constantemente:melhorando constantemente:– compreendidocompreendido– utilizadoutilizado– vivo e ativovivo e ativo

Page 35: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Um Processo de Software Maduro

• Tem o Tem o apoioapoio visível da visível da alta administraçãoalta administração e outras gerências.e outras gerências.

• Bem controladoBem controlado - fidelidade ao processo - fidelidade ao processo é objeto de auditoria e de controleé objeto de auditoria e de controle

• São utilizadas São utilizadas mediçõesmedições do do produtoproduto e do e do processoprocesso..

• Uso Uso disciplinado disciplinado da tecnologia.da tecnologia.

Page 36: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Processo Institucionalizado

• Existe uma infra-estrutura infra-estrutura que possui processos eficazes, utilizáveis e consistentemente aplicados em toda organização.

• Processos institucionalizados permanecempermanecem, mesmo depois que as pessoas que originalmente os definiram, deixam a organização.

• A cultura organizacionalcultura organizacional transmite o processo.

“Essa é a maneira como fazemos as coisas aqui.”

Page 37: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Edificação da Cultura Organizacional

CULTURA ORGANIZACIONAL“Esta é a maneira que fazemos as coisas por aqui .”

PressãoExterna:

• necessidades dos usuários• mudança de tecnologia• competição

Institucionalizaçãoe Infra-estrutura:• políticas• padrões• procedimentos• treinamento• supervisão• revisões/auditorias

Fatoresinternos:

• defensores• patrocinadores• competência• experiência• talento• ferramentas

Page 38: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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.

Page 39: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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.

Page 40: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Modelos de Melhoria de Qualidade de Processo

• CMMCMM

• BOOTSTRAPBOOTSTRAP

• SPICESPICE

• ISOISO

• PSPPSP

Page 41: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Melhoria de Processo de Software

ProcessoProcesso

Avaliação Avaliação do do

ProcessoProcesso

Melhoria Melhoria do do

ProcessoProcesso

éé examinadoexaminado

pelapela

conduzconduz àà

Estímulo Contexto e Patrocínio

Infra-Estrutura

INICIALIZAÇÃOINICIALIZAÇÃO

11

Abordagem Abordagem IDEALIDEAL

Recomen-dações

DIAGNÓSTICODIAGNÓSTICO

22Estado Atual e

Desejado

DIRETRIZESDIRETRIZESAbordagem

Prioridades

Plano de Ação33

Teste Piloto

Refinamento

Implementação

REALIZAÇÃOREALIZAÇÃO

44

Solução

Analisar/ Validar

Ações futuras

ALAVANCAGEMALAVANCAGEM

55

A abordagem IDEALIDEAL descreve as fases, atividades e recursos necessários para uma melhoriamelhoria de processo com sucesso.

Page 42: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Estímulo Contexto e Patrocínio

Infra-Estrutura

INICIALIZAÇÃOINICIALIZAÇÃO11

Teste Piloto

Refinamento

Implementação

REALIZAÇÃOREALIZAÇÃO

44

Solução

Analisar/ Validar

Ações futuras

ALAVANCAGEMALAVANCAGEM

55

Abordagem IDEAL

Recomen-dações

DIAGNÓSTICODIAGNÓSTICO22

Estado Atual e

Desejado

DIRETRIZESDIRETRIZESAbordagem

Prioridades

Plano de Ação33

CMMCMM

Page 43: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

O que é o CMM?

• Uma estrutura que descreve os elementoselementos chaveschaves de um processoprocesso de software eficazeficaz.

• Um caminho de melhoramentomelhoramento evolucionárioevolucionário (5 níveis de maturidade) para organizações de software mudaremmudarem de um processo de software imaturo, adad hochoc, para um processo maduro, disciplinadodisciplinado..

Page 44: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Capability Maturity Model

• Capability Maturity ModelCapability Maturity Model (Modelo de Maturidade da Competência)

• Maturidade da CompetênciaMaturidade da Competência : competência em controlar o Processo de Software (desenvolvimento, gerenciamento e manutenção).

• Maturidade da CompetênciaMaturidade da Competência Maturidade do Processo de SoftwareMaturidade do Processo de Software

Page 45: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Maturidade de Processo de Software

• A maturidade dos processosmaturidade dos processos de software de uma organização influencia na sua capacidade de atingir metas de custocusto, qualidadequalidade e cronogramacronograma

• A qualidade do processo de softwarequalidade do processo de software pode ser analisada através do nível de nível de maturidade do processomaturidade do processo.

Page 46: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Capability Maturity Model

desenvolvido pela SEISEI (Instituto de Engenharia de Software) Carnegie Mellon University, Pittsburgh, PA

SEI

Software Engineering Institute

Missão da SEISEI: 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.

Page 47: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

A Evolução do CMM (a)

• 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)

• junho 1987junho 1987 - liberação de breve descrição do modelo de maturidademodelo de maturidade de processo de software

• setembro 1987setembro 1987 - versão preliminar do questionárioquestionário de maturidade

• 19911991 - 1a versão do CMMCMM (Versão 1.0)

Page 48: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

A Evolução do CMM (b)

• 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 indústrias e do governo CMMCMM

• fevereiro 1993fevereiro 1993 - Versão 1.1 do CMMCMM - CapabilityCapability MaturityMaturity ModelModel forfor SoftwareSoftware (atualmente usada)

Page 49: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Premissa Básica

• Premissa básicaPremissa básica que está por trás do trabalho da SEISEI 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.

Page 50: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Visão Geral do Modelo (a)

• SEISEI desenvolveu um modelo demodelo de 5 níveis5 níveis que orienta uma organização em como “amadurecer” seus processos de software.

• O modelo descreve um caminhocaminho evolucionário que vai de um processo indisciplinadoindisciplinado para um processo disciplinadodisciplinado.

• Sem a disciplinaSem a disciplina descrita no modelo, programas de melhoria podem mostrar-se ineficientesineficientes porque os fundamentosfundamentos necessários para apoiar os melhoramentos sucessivos não foramnão foram estabelecidosestabelecidos.

Page 51: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Visão Geral do Modelo (b)

• 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.

• 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.

• Isso é importantemportante porque a maioria das organizações

podem focalizar somente algumas poucas atividadespoucas atividades de

melhoramento de cada vezcada vez.

Page 52: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Os 5 Níveis de Maturidade do CMM

INICIAL

Organizações Caóticas

REPETÍVEL

Organizações Disciplinadas

DEFINIDO

Organizações Padronizadas

GERENCIADO

Organizações Previsíveis

OTIMIZADOOrganizações com Melhoria Contínua

Page 53: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM: CMM: Nível 1 de MaturidadeNível 1 de Maturidade

INICIAL

Organizações Caóticas

• 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.

Page 54: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM Nível 1 -CMM Nível 1 - O Gerenciamento de O Gerenciamento de Software é uma Caixa PretaSoftware é uma Caixa Preta

In Out

Requisitos fluem para dentro. Um produto de software é (normalmente)

produzido através de algum processo algum processo disformedisforme.

O produto flui para fora e (espera-se) funciona.

Page 55: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 1 - InicialCMM - Nível 1 - Inicial Organizações CaóticasOrganizações Caóticas

A organização nãonão provê um ambiente estávelambiente estável para o desenvolvimento e manutenção de software

CronogramasCronogramas e orçamentosorçamentos são frequentemente abandonadosabandonados por não serem beseados em estimativas realísticas

Numa crisecrise para cumprir cronograma, etapasetapas planejadas do ciclo de vida não são realizadasnão são realizadas prejudicando a qualidade do software

Page 56: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 1 - InicialCMM - Nível 1 - Inicial Organizações CaóticasOrganizações Caóticas

• DesempenhoDesempenho basicamente em função da competência e heroísmoheroísmo das pessoas que fazem o trabalho.

• O processoprocesso de software é imprevisívelimprevisível,, já que é constantemente alterado no decorrer do projeto

• Os maioresmaiores problemasproblemas com os quais se defrontam as organizações de software são gerenciaisgerenciais e não técnicos.

Page 57: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM: CMM: Nível 2 de MaturidadeNível 2 de Maturidade

REPETÍVEL

Organizações Disciplinadas

• 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.

Page 58: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM Nível 2- Está em vigor um Sistema Está em vigor um Sistema de Gerenciamento de Projetode Gerenciamento de Projeto

In Out

ProcessoProcesso de construção de software é uma série de caixas pretascaixas pretas com pontos de pontos de verificaçãoverificação definidos.

Page 59: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 2 - RepetívelCMM - Nível 2 - Repetível Organizações DisciplinadasOrganizações Disciplinadas

• Caracterizado pela existência de um processoprocesso efetivoefetivo de planejamento e gerenciamento do planejamento e gerenciamento do projetoprojeto de software onde os controles sobre os procedimentos, compromissos e atividades são bem fundamentados.

• Os processosprocessos de planejamento e gerenciamento do projeto de software devem ser praticadospraticados nana organizaçãoorganização, documentados, treinados e controlados.

• Neste nível ainda não háainda não há preocupação com o processo de engenharia de softwareengenharia de software

Page 60: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 2 - RepetívelCMM - Nível 2 - Repetível Organizações DisciplinadasOrganizações Disciplinadas

O planejamento e gerenciamento de novos projetos são baseados na experiência obtida experiência obtida com projetos similarescom projetos similares, que tenham obtido sucesso no passado

Um fator relevante para a organização nesse nível é a dependência das experiências dependência das experiências anterioresanteriores.

O desenvolvimento de novos tiposnovos tipos de produtos pode causar um desequilíbriodesequilíbrio no projeto, nas estimativas de custos e nos cronogramas

Page 61: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM: CMM: Nível 3 de MaturidadeNível 3 de Maturidade

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 manutenção de software.

Page 62: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM Nível 3- Desenvolvimento de software Desenvolvimento de software de acordo com um processo bem definidode acordo com um processo bem definido

In Out

Funções e responsabilidadesFunções e responsabilidades no processo são bem entendidasentendidas.

A produção do produtoprodução do produto de software é visívelvisível através do processo de software.

Page 63: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 3 - DefinidoCMM - Nível 3 - Definido Organizações PadronizadasOrganizações Padronizadas

Caracterizado principalmente pela existência de um processo de engenhariaprocesso de engenharia de software bem definido, documentado e padrãopadrão para a empresa.

As saídassaídas de uma atividade fluemfluem naturalmente para as entradasentradas da próxima atividade

Cada projeto de software utilizautiliza o processo padrão da organização como base para base para implementarimplementar seu próprio processo.

Page 64: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 3 - DefinidoCMM - Nível 3 - Definido Organizações PadronizadasOrganizações Padronizadas

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 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 poderespoderes as pessoas para realizarem o trabalho

Page 65: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM: CMM: Nível 4 de MaturidadeNí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.

Page 66: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM Nível 4- Produto e processo são Produto e processo são gerenciados quantitativamentegerenciados quantitativamente

In Out

A gerênciagerência tem bases objetivasbases objetivas para tomada de decisão.

A gerência é capaz de prever o prever o desempenhodesempenho dentro de limites quantificados.

Page 67: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 4 - GerenciadoCMM - Nível 4 - Gerenciado Organizações PrevisíveisOrganizações Previsíveis

Caracterizado pela existência de processosprocessos de software passíveis de medidapassíveis de medida.

A produtividadeprodutividade e a qualidadequalidade são medidasmedidas em todas as etapas do processo de software e para todos os projetos da organização.

O controle sobre produtos e processoscontrole 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.

Page 68: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 4 - Gerenciado CMM - Nível 4 - Gerenciado Organizações PrevisíveisOrganizações Previsíveis

A organização começa a aplicaraplicar métricas de métricas de controle de qualidadecontrole de qualidade para aumentar a qualidade e a produtividade do software entregue aos clientes.

À medida que a organização adquire mais conhecimento sobre o produtoconhecimento sobre o produto, tem a oportunidade de removerremover várias fontes de fontes de comprometimentocomprometimento da qualidade final

Isto proporciona a oportunidade de colocarcolocar o produto sob um controle estatístico de controle estatístico de qualidadequalidade.

Page 69: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM: CMM: Nível 5 de MaturidadeNível 5 de Maturidade

OTIMIZADOOrganizações com Melhoria Contínua• Contínua melhoria de

processo é possível por retornos quantitativos dos processos e das idéias e tecnologias inovativadoras

Page 70: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM Nível 5- Foco na melhoria contínua Foco na melhoria contínua do processodo processo

In Out

Mudança disciplinadaMudança disciplinada é um meio de vida.

Page 71: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 5 - OtimizadoCMM - Nível 5 - Otimizado Melhoria ContínuaMelhoria Contínua

Caracterizado pela existência de processosprocessos de software com contínua melhoriacontínua melhoria.

Os processosprocessos de software são avaliadosavaliados para prevenirprevenir tipos de defeitos conhecidos devido à recorrência, e as lições aprendidas são disseminadas para outros projetos.

TecnologiasTecnologias que proporcionem mais retorno para processos específicos, utilizados pela organização, são selecionadas para serem introduzidasintroduzidas,, de maneira gerenciávelgerenciável na organização.

Page 72: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

CMM - Nível 5 - OtimizadoCMM - Nível 5 - Otimizado Melhoria ContínuaMelhoria Contínua

Apesar de o processo ser maduro, ele é alvo de contínuas melhoriascontínuas melhorias.

Os grupos de projetistas analisam o rendimento do projeto para determinar as causas dos causas dos defeitosdefeitos.

Nesse nível foi atingido um ambiente de ambiente de excelênciaexcelência em engenharia de software

Page 73: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

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.

Page 74: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Mudança de Nível de Maturidade

INICIAL

Organizações Caóticas

REPETÍVEL

Organizações Disciplinadas

“Atividades de gerenciamento do projeto são estabelecidas para rastrear custo, prazos e funcionalidade”

inicial => repetível

KPAs

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 Software1- Gerenciamento de Requisitos

Page 75: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Exemplo: Áreas-chave de Processo

Inicial Repetível Definido Gerenciado Otimizado

CMM

6 7 2 3

TOTAL18 Áreas-chave de Processo

GCS GQSGSS

APSPPS

GRatividades

Page 76: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Níveis de maturidade não Níveis de maturidade não podem ser omitidospodem 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ê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.

Cada nívelnível oferece um fundamentofundamento necessário para melhorias a serem implementadas no nível seguinte.

Page 77: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Níveis de maturidade não Níveis de maturidade não podem ser omitidospodem ser omitidos

SemSem a disciplina de gerenciamentogerenciamento o processo de engenharia é sacrificadosacrificado.

Medidas detalhadas são inconsistentesinconsistentes sem um processo definido.

O efeito de inovação de processo não é claronão é claro em um processo cheio de ruído.

Page 78: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

As Inspirações do CMM

• A estruturaestrutura do modelo de maturidade de processo de software está baseada nos princípios de princípios de qualidade de produtoqualidade de produto que existem há 60 anos.

• 19301930 - Shewart (AT&T) promulgou os princípios de controle estatístico de qualidadecontrole estatístico de qualidade.

• Os princípios de Shewart foram posteriormente desenvolvidos e demonstradosdesenvolvidos e demonstrados com sucesso no trabalho de Deming e Juran.

O trabalho desses pioneiros princípios do TQMTQM (Total Quality Management)

Page 79: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Gerenciamento da Qualidade Total

• Gerenciamento da Qualidade TotalGerenciamento da Qualidade Total (TQM(TQM) é a aplicação de métodos quantitativosmétodos quantitativos e recursosrecursos humanoshumanos para melhorarmelhorar :

- 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

Page 80: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Princípios do TQM adaptados no Modelo CMM

• O CMMCMM estabelece, durante os estágios estágios iniciaisiniciais, a administração do projetoadministração do projeto e os fundamentos de engenhariafundamentos de engenharia e durante os estágios mais avançadosestágios mais avançados de maturidade, o controle quantitativo do controle quantitativo do processoprocesso de software.

Page 81: Qualidade de Software Prof a. Sandra C.P.F. Fabbri e-mail sandraf@dc.ufscar.br 1 o. semestre 1999

Aplicando TQM ao SoftwareAplicando TQM ao Software

CMMCMM

TQMTQMProjeto CProjeto A

hardware

software

Organização

Projeto X

Projeto B

O processo de melhoriaprocesso de melhoria se aplica em todo o contexto do negócio - o CMMCMM se aplica

especificamente ao softwaresoftware..