Buscar

Aula_1_Qualidade_de_Software

Prévia do material em texto

Engenharia de Software
Informática– Modalidade Subsequente
Turma 441
Danilo de Oliveira Gonçalves
Encaminhamentos
• 25/11 – Qualidade Software
• 02/12 – NÃO HAVERÁ AULA
• 09/12 – Teste de Software
• 16/12 – PROVA
• 06/01 – Entrega de resultados / Revisão
• 13/01 – Recuperação (se houver necessidade)
Prof. Msc. Danilo de Oliveira Gonçalves 2
Tópicos da Aula
• Qualidade de Software
• Garantias de Qualidade de Software
Prof. Msc. Danilo de Oliveira Gonçalves 3
QUALIDADE DE SOFTWARE
O que significa?
Prof. Msc. Danilo de Oliveira Gonçalves 4
O que é?
• Conjunto de características 
– que devem ser alcançadas em um determinado 
grau 
• para que o produto atenda às necessidades de seus 
usuários
• Garantia de Conformidade (Pressman)
– Requisitos funcionais e de desempenho
– Padrões e convenções de desenvolvimentos pré-
estabelecidos
– Atributos implícitos que todo o software 
desenvolvido profissionalmente deve possuir
Prof. Msc. Danilo de Oliveira Gonçalves 5
Importância
• Dependência crescente em sistemas 
computacionais 
• Sistemas computacionais dependem cada vez 
mais do software
– Mau funcionamento do software pode gerar 
prejuízos elevados
Prof. Msc. Danilo de Oliveira Gonçalves 6
Importância
O futuro: O que pode acontecer se 
• bancos perderem milhões 
• clientes virem saldos de suas contas sumirem de repente
• telefones pararem de funcionar 
• aviões tiverem suas rotas desviadas 
• vários trens (metrô) sejam colocados no mesmo trilho
Prof. Msc. Danilo de Oliveira Gonçalves 7
O passado: 
• bug do milênio 
• avião F-16: voou de cabeça para baixo ao cruzar o equador 
devido a falha no sw de navegação 
• lançamento do ônibus espacial Columbia foi atrasado em 
1981 devido a alteração errada em rotina de sincronização 
• ao menos 2 mortes causadas por overdose de radiação por 
causa de uma falha de sw no Therac-25
8
Contextualização
• Globalização 
– Novas exigências, alta competitividade, 
concorrência internacional
• Qualidade como Arma Competitiva 
– Equiparação com padrões internacionais, garantia 
de conformidade do produto, garantia da 
satisfação do cliente
• No contexto dos Sistemas de Informação 
– Garantia de conformidade do software com os 
requisitos especificados qualidade de 
software
9
Qualidade: O que é?
• “É atender plenamente os requisitos do 
cliente” 
• “É superar a expectativa do cliente”
“ A totalidade das características de uma entidade 
que lhe confere a capacidade de satisfazer às 
necessidades explícitas e implícitas”
(NBR ISO 8402)
10
Benefícios da Qualidade
• Na visão do fornecedor (ex: equipe interna de TI ou 
fornecedor externo – do mercado)
– Maior produtividade
– Maior precisão nas estimativas
– Redução de defeitos no produto
– Aumento da confiabilidade do produto
– Menos esforço de re-trabalho
– Menos horas extras de trabalho
– Redução do tempo para atender o mercado
– Redução de custo de desenvolvimento e manutenção
– Maior competitividade
– Maior índice de satisfação do cliente/usuário final
11
Benefícios da Qualidade
• Na visão do contratante
– Auxilia a definição de critérios para seleção e 
descredenciamento de fornecedores
– Auxilia a definição de processos de 
acompanhamento do progresso e desempenho 
dos fornecedores nas etapas de desenvolvimento, 
entrega e pós-entrega dos produtos
– Auxilia a definição de critérios para avaliação e 
aceitação dos produtos entregues pelo fornecedor
12
Gurus da Qualidade
• Armand Feigenbaum
• W.Edwards Deming
• Joseph M.Juran
• Karou Ishikawa
• Philip Crosby
• Tom Peters
13
Armand Feigenbaum
• Definiu TQM como um sistema efetivo que 
integra a qualidade do desenvolvimento, 
qualidade de manutenção, e esforços de 
melhoria da qualidade de vários grupos em 
uma organização
14
Joseph M.Juran
• Melhoria estruturada da qualidade 
– Estudar sintomas de defeitos e/ou falhas encontrados
– Desenvolver uma teoria para as causas destes defeitos e/ou 
falhas
– Testar a teoria até que a causa seja encontrada
– Simular ação remediadora por áreas apropriadas
• Preocupou-se com o impacto nos trabalhadores 
individuais e no envolvimento e motivação da força de 
trabalho nas atividades de melhoria da qualidade
15
W.Edwards Deming
• Considerado no Japão o “pai” do controle da 
qualidade
• Afirmou que qualidade inicia com o alto nível 
gerencial e é uma atividade estratégica. 
Enfatiza a necessidade dos métodos 
estatísticos, participação, educação e proposta 
de melhoria
16
Karou Ishikawa
• Baseando seu trabalho nos de Deming, Juran 
e Feigenbaum, Ishikawa criou os conceitos de 
círculos da qualidade e diagramas de causa-e-
efeito. 
• Considerou a participação do trabalhador 
como a chave do sucesso da implementação 
do TQM.
17
Philip Crosby 
• Definiu 4 certezas para o Gerenciamento da 
Qualidade
– Qualidade significa atendimento aos requisitos.
– Qualidade vem através de prevenção.
– Padrão para desempenho da qualidade e “defeito 
zero”.
– A medida de qualidade é o preço da não-
conformidade.
18
Tom Peters
• Focou no atendimento às expectativas do 
cliente
CARACTERÍSTICAS DA QUALIDADE
Prof. Msc. Danilo de Oliveira Gonçalves 19
Características da Qualidade
• Modelo de qualidade de McCall 1977
Prof. Msc. Danilo de Oliveira Gonçalves 20
Características operacionais: 
correção 
confiabilidade 
integridade 
eficiência
Habilidade para ser alterado: 
manutenibilidade
flexibilidade 
testabilidade
Adaptabilidade a novos ambientes: 
portabilidade 
reusabilidade
interoperabilidade
Fatores de Qualidade de McCall
• Com relação ao uso do produto (características 
operacionais): 
– correção: o quanto um programa satisfaz a sua especificação e 
cumpre os objetivos visados pelo cliente 
– confiabilidade: o quanto um programa executa a função 
pretendida com a precisão exigida 
– eficiência: a quantidade de recursos computacionais e de 
código exigida para que um programa execute sua função 
– integridade: o quanto o acesso ao software ou aos dados por 
pessoas não autorizadas pode ser controlado 
– usabilidade: o quanto de esforço é necessário para aprender, 
preparar a entrada e interpretar a saída de um programa
Prof. Msc. Danilo de Oliveira Gonçalves 21
Fatores de Qualidade de McCall
• Com relação às alterações do produto (habilidade 
para ser alterado):
– manutenibilidade: o quanto de esforço é necessário para 
localizar e eliminar erros em um software
– flexibilidade: o quanto de esforço é necessário para 
modificar um software
– testabilidade: o quanto de esforço é necessário para testar 
um software a fim de garantir que ele execute a função 
pretendida
Prof. Msc. Danilo de Oliveira Gonçalves 22
Fatores de Qualidade de McCall
• Com relação às alterações do produto (habilidade 
para ser alterado): 
– portabilidade: o quanto de esforço é necessário para 
transferir um software de uma plataforma de hardware 
e/ou software para outra 
– reusabilidade: o quanto um software (ou partes dele) 
pode ser reutilizado em outros software
– interoperabilidade: o quanto de esforço é necessário para 
se acoplar um software a um outro
Prof. Msc. Danilo de Oliveira Gonçalves 23
A norma ISO/IEC 9126
• Norma ISO/IEC 9126/1991 ou NBR 13596:
– Fornece um modelo de propósito geral 
• Define 6 categorias de características de qualidade de 
software 
– Divididas em subcaracterísticas. 
– Podem ser avaliadas por um conjunto de métricas.
Prof. Msc. Danilo de Oliveira Gonçalves 24
É uma referência mundial para 
qualidade de software
• ISO: The International Standardization
Organization, fundada em 1947, coordena o 
trabalho de 127 países membros para promover 
a padronização de normas técnicas em âmbito 
mundial 
• IEC: The International Electrotechnical
Commission, fundada em 1906, conta com mais 
de 50 países e publica normas internacionais 
relacionadas com eletricidade, eletrônica e áreas 
relacionadas
Prof. Msc. Danilo de Oliveira Gonçalves 25
Características dequalidade
Funcionalidade o software satisfaz às necessidades 
explícitas e implícitas do usuário?
Confiabilidade o software, durante um período de 
tempo, funciona de acordo com as 
condições pré-estabelecidas?
Usabilidade o software é fácil de usar?
Eficiência o software não desperdiça recursos?
Manutenibilidade o software é fácil de alterar?
Portabilidade o software é facilmente adaptável a 
diferentes plataformas?
Prof. Msc. Danilo de Oliveira Gonçalves 26
Características e subcaracterísticas
• Funcionalidade: o software satisfaz às necessidades 
explícitas e implícitas do usuário?
– Adequação: propõe-se a fazer o que é apropriado? 
– Acurácia: gera resultados corretos ou conforme acordado? 
– Interoperabilidade: é capaz de interagir com os sistemas 
especificados? 
– Conformidade: está de acordo com normas e convenções 
previstas em leis, normas e descrições similares? 
– Segurança de acesso: evita acesso não autorizado, acidental ou 
deliberado acesso a programa e dados?
Prof. Msc. Danilo de Oliveira Gonçalves 27
Características e subcaracterísticas
• Confiabilidade: o software, durante um período de 
tempo, funciona de acordo com as condições pré-
estabelecidas ? 
– Maturidade: com que frequência apresenta falhas? 
– Tolerância a falhas: ocorrendo falhas, como ele reage? 
– Recuperabilidade: é capaz de recuperar dados após uma 
falha?
Prof. Msc. Danilo de Oliveira Gonçalves 28
Características e subcaracterísticas
• Usabilidade: o software é fácil de usar? 
– Inteligibilidade: é fácil entender os conceitos utilizados? 
– Apreensibilidade: é fácil de aprender a usar? 
– Operacionalidade: é fácil de operar e controlar a 
operação?
Prof. Msc. Danilo de Oliveira Gonçalves 29
Características e subcaracterísticas
• Eficiência: o software não desperdiça 
recursos? 
– Comportamento em relação tempo: qual é o 
tempo de resposta e de processamento? 
– Comportamento em relação aos recursos: quanto 
recurso usa? Durante quanto tempo?
Prof. Msc. Danilo de Oliveira Gonçalves 30
Características e subcaracterísticas
• Manutenibilidade: o software é fácil de alterar? 
– Analisabilidade: é fácil encontrar um erro quando 
ocorre? 
– Modificabilidade: é fácil modificar e remover erros? 
– Estabilidade: há grandes riscos de erros quando se faz 
alterações? 
– Testabilidade: é fácil testar quando se faz alterações?
Prof. Msc. Danilo de Oliveira Gonçalves 31
Características e subcaracterísticas
• Portabilidade: o software é facilmente adaptável a 
diferentes plataformas? 
– Adaptabilidade: é fácil adaptar a outras plataformas sem 
aplicar outras ações ou meios além dos fornecidos para 
esta finalidade no software considerado? 
– Capacidade para instalar: é fácil instalar em outras 
plataformas? 
– Capacidade para substituir: é fácil substituir por outro 
software? 
– Conformidade: está de acordo com padrões e convenções 
de portabilidade?
Prof. Msc. Danilo de Oliveira Gonçalves 32
Qualidade x tipo de software
• Cada tipo de software tem seu próprio requisito de 
qualidade 
• A importância de cada característica depende do tipo 
de software
Prof. Msc. Danilo de Oliveira Gonçalves 33
Funcionalidade
Confiabilidade
Usabilidade
Eficiência
Manutenibilidade
Portabilidade
Software para 
locadora de 
dvd’s
Sistema 
embarcado para 
satélite
Qualidade x Pontos de Vista
Prof. Msc. Danilo de Oliveira Gonçalves 34
Entraves à qualidade
erro 
(engano)
Ação humana que produz um resultado incorreto mistake
falha
incorreção em um passo, processo ou definição de 
dados; manifestação no software de um engano 
cometido pelo desenvolvedor
fault (bug)
erro
diferença entre o valor obtido e o valor esperado, ou 
seja, qualquer estado intermediário incorreto ou 
resultado inesperado na execução do software
error
defeito
incapacidade de fornecer o serviço conforme 
especificado
failure
Prof. Msc. Danilo de Oliveira Gonçalves 35
Porque surgem as falhas?
• Alterações: 
– alterações degradam a estrutura do software, tornando-o 
cada vez mais difícil de alterar 
• Tempo: 
– com o tempo os custos da implementação de alterações 
aumenta, e a capacidade do sistema em prestar os 
serviços esperados diminui 
• Complexidade: 
– difícil de desenvolver: um único desenvolvedor não é 
capaz de entender o sistema como um todo 
– difícil de usar 
– difícil de entender: código incompreensível, falta de 
documentação
Prof. Msc. Danilo de Oliveira Gonçalves 36
Garantia de qualidade
• Definição de um arcabouço para se atingir a qualidade 
do produto
• Padrão sistemático e planejado de ações que são 
exigidas para garantir a qualidade
• Visa responder às seguintes questões: 
– O software atende às características de qualidade 
desejadas? 
– O desenvolvimento do software foi conduzido conforme os 
padrões pré-estabelecidos? 
– As disciplinas técnicas cumpriram adequadamente seus 
papéis como parte da atividade de Garantia da Qualidade?
Prof. Msc. Danilo de Oliveira Gonçalves 37
Atividades para garantir a qualidade
• Aplicação de métodos, técnicas e ferramentas
– (desenvolvedores): uso de métodos e ferramentas que 
ajudem a conseguir maior qualidade nas 
especificações, projetos, etc.
• Aplicação de padrões 
– podem ser usados: para documentos, documentação 
do código e estilo de codificação (como usar 
linguagem de programação) 
– podem ser determinados pelo cliente, por normas 
internacionais ou pela empresa de desenvolvimento.
Prof. Msc. Danilo de Oliveira Gonçalves 38
Atividades para garantir a qualidade
• Controle de alterações 
– toda mudança no software tem potencial para introduzir erros 
ou criar efeitos colaterais que propagam erros
– controle de mudanças durante desenvolvimento e manutenção 
é essencial para garantir a qualidade do software
• Medição 
– obtenção de métricas para rastrear a qualidade do software e 
para avaliar o impacto de mudanças nos métodos e 
procedimentos usados para desenvolvimento e manutenção 
• Anotação e manutenção de registros 
– manter histórico com resultados de revisões, auditorias, 
controle de alterações e outras atividades de garantia de 
qualidade
– devem ser levados ao conhecimento dos desenvolvedores
Prof. Msc. Danilo de Oliveira Gonçalves 39
40
Garantia da Qualidade
X
Controle da Qualidade
• Controle da Qualidade
– Evita que produtos defeituosos sejam entregues 
aos clientes;
– Natureza reativa.
– Objetiva monitoração de processo, e detecção e 
correção de defeitos.
– Ex: Inspeções, ensaios e testes.
41
Garantia da Qualidade
X
Controle da Qualidade
• Garantia da Qualidade
– Tenta produzir software com uma baixa taxa de 
defeitos;
– Natureza proativa.
– Definição de procedimentos, padrões, 
treinamentos.
– Gerência e melhoria de processo.
42
Evolução
Total Quality Management
Garantia da Qualidade
Controle da Qualidade
Inspeção
Detecção de Erro
Retificação
Métodos estatísticos
Desempenho de processo
Padrões de qualidade
Sistemas da Qualidade
Custo da qualidade
Solução de problemas
Planejamento da qualidade
Estratégia de qualidade
Grupos de trabalho
Envolvimento de clientes e 
fornecedores
43
Elementos-chave do TQM
TQM
Melhoria Contínua
Foco no 
Cliente
Melhoria de
Processo
Lado Humano
da Qualidade
Métricas, Modelos, Medição e Análise
Stephen Kan
44
Total Quality Management (TQM)
• Aspectos Fundamentais
– Atender as necessidades e expectativas do cliente (a mais 
importante “parte” da organização).
– Consideração ao cliente e fornecedor interno.
– Envolver todas as pessoas da organização.
– Examinar custos relacionados com a qualidade.
– Desenvolver sistemas e procedimentos que suportem qualidade 
e melhoria.
– Desenvolver um processo de melhoria contínua.
45
Grupo de SQA
• Grupo de SQA (Software Quality Assurance)
– Grupo de Garantia de Qualidade de Software
• Atividades 
– Preparar um plano de SQA;
– Participar da descrição do projeto de software;
– Revisar as atividades dos engenheiros de 
software;
– Documentar e consertaros desvios;
– Registrar discordâncias e reportar para o gerente;
– Gerenciar mudanças e métricas de software.
46
Custos da Qualidade
• Custos da Prevenção
– Atividades de planejamento e implementação de 
sistemas da qualidade.
• Custos de Avaliação
– Verificações no processo de produção.
• Custos de Falhas e Correção
– Custos de refazer atividades devido a erros 
efetuados.
47
Política da Qualidade
• Alinhada aos objetivos da organização.
• Comprometimento em atender os requisitos.
• Melhoria contínua.
• Comunicação e entendimento.
• Análise crítica.
Avaliação da qualidade
• Objetivos: 
– aprimorar o processo de desenvolvimento e, em 
consequência, melhorar a qualidade do produto 
resultante 
– avaliar a qualidade do produto visando emitir 
documento oficial sobre a qualidade de um software e 
sua conformidade em relação a uma norma ou padrão 
– adquirir um software, com o intuito de escolher o 
produto mais adequado dentre um conjunto de 
produtos selecionados
Prof. Msc. Danilo de Oliveira Gonçalves 48
Aprimoramento do processo de 
Software
• Algumas iniciativas visando melhorias do 
processo de software: 
– SEI/CMM (Capability Maturity Model), modelo 
desenvolvido pelo Instituto de Engenharia de Software 
(SEI) da Universidade CarnegieMellon, EUA, visando dar às 
organizações diretrizes sobre como aprimorar o processo 
– ISO/SPICE (Software Process Improvement & Capability
dEtermination), cujo objetivo é gerar normas ISO/IEC para 
a avaliação de processos de software
– Norma ISO/IEC 12207, define um processo de ciclo de vida 
do software 
– Norma ISO/IEC 9000-3, apresenta diretrizes para a 
aplicação da ISO 9001 (voltada para indústria), por 
empresas que desenvolvem software, para o processo de 
desenvolvimento e manutenção de software
Prof. Msc. Danilo de Oliveira Gonçalves
49
Avaliação da qualidade do produto
• Algumas normas: 
– ISO/IEC 9126 (NBR 13596), define as 
características de qualidade de software que 
devem estar presentes em todos os produtos 
– ISO/IEC 12119, estabelece os requisitos de 
qualidade para pacotes de software e instruções 
para teste, considerando esses requisitos 
– ISO/IEC 14598-5, define um processo de avaliação 
da qualidade de produto de software
Prof. Msc. Danilo de Oliveira Gonçalves 50
Avaliação da qualidade do produto
• Como fazer: 
– Organismos de certificação: no Brasil, para fornecer o 
certificado ISO 9000, existem empresas credenciadas 
pelo INMETRO 
– Avaliar in-house: utilizar equipe multidisciplinar com 
especialistas que se utilizará do software
• Ponto de vista do cliente
• Grupo de Garantia da Qualidade do Software
– Contratar empresas para avaliação: existem empresas 
que fazem avaliação do software 
• mas, por não serem credenciadas pelo INMETRO, não 
emitem certificado oficial. 
• Mais acessíveis e mais ágeis que os organismos 
credenciados.
Prof. Msc. Danilo de Oliveira Gonçalves 51
52
Certificação de Qualidade
• Não basta que a qualidade exista, ela deve ser 
reconhecida pelo cliente;
• Deve existir uma certificação oficial emitida com base em 
um padrão;
• As certificações são dadas por instituições competentes;
• Exemplos de certificação:
– Selo SIF de qualidade de produtos alimentícios;
– Selo ABIC de qualidade do café;
– Classificação da rede hoteleira (estrelas).
53
Certificação da Qualidade
• Por que Normalização Internacional?
– Garantir a confiabilidade do produto.
– Reduzir custos e evitar desperdícios e retrabalhos.
– Implementar e utilizar práticas reconhecidas 
internacionalmente.
– Estabelecer confiança no relacionamento com o 
cliente.
– Cartão de visita para o mercado internacional.
MPS.BR
• O MPS.BR ou Melhoria de Processos do 
Software Brasileiro é simultaneamente 
– um movimento para a melhoria da qualidade 
(Programa MPS.BR)
– um modelo de qualidade de processo (Modelo MPS). 
• Voltado para a realidade do mercado de 
pequenas e médias empresas de 
desenvolvimento de software 
– baseado nas normas ISO/IEC 12207 e ISO/IEC 15504 e 
compatível com o CMMI.
Prof. Msc. Danilo de Oliveira Gonçalves 54
MR-MPS (Modelo de referência para 
melhoria do processo de software)
• O MPS.BR apresenta 7 níveis de maturidade 
– (diferencial em relação aos outros padrões de 
processo):
• A - Em Otimização;
• B - Gerenciado quantitativamente;
• C - Definido;
• D - Largamente Definido;
• E - Parcialmente Definido;
• F - Gerenciado;
• G - Parcialmente Gerenciado.
Prof. Msc. Danilo de Oliveira Gonçalves 55
Prof. Msc. Danilo de Oliveira Gonçalves 56
MR-MPS (Modelo de referência para 
melhoria do processo de software)
• Cada nível de maturidade possui suas 
áreas de processo, onde são 
analisados:
• processos fundamentais
– aquisição;
– gerência de requisitos;
– desenvolvimento de requisitos;
– solução técnica;
– integração do produto;
– instalação do produto;
– liberação do produto.
• processos organizacionais
– gerência de projeto;
– adaptação do processo para gerência 
de projeto;
– análise de decisão e resolução;
– gerência de riscos;
– avaliação e melhoria do processo 
organizacional;
– definição do processo organizacional;
– desempenho do processo 
organizacional;
– gerência quantitativa do projeto;
– análise e resolução de causas;
– inovação e implantação na organização.
• processos de apoio
– garantia de qualidade;
– gerência de configuração;
– validação;
– medição;
– verificação;
– treinamento.
Prof. Msc. Danilo de Oliveira Gonçalves 57
Capacidade
• AP 1.1 - O processo é executado;
• AP 2.1 - O processo é gerenciado;
• AP 2.2 - Os produtos de trabalho do processo são 
gerenciados;
• AP 3.1 - O processo é definido;
• AP 3.2 - O processo está implementado;
• AP 4.1 - O processo é medido;
• AP 4.2 - O processo é controlado;
• AP 5.1 - O processo é objeto de inovações;
• AP 5.2 - O processo é otimizado continuamente.
Prof. Msc. Danilo de Oliveira Gonçalves 58
MA-MPS (Método de avaliação para 
melhoria do processo de software)
• Objetivo: 
– orientar a realização de avaliações
– em conformidade com a norma ISO/IEC 15504
– em empresa e organizações que implementaram o 
MR-MPS
Prof. Msc. Danilo de Oliveira Gonçalves 59
MA-MPS (Método de avaliação para 
melhoria do processo de software)
• Equipe de avaliação: 3 a 8 pessoas, sendo:
– 1 avaliador líder
– No mínimo 1 avaliador adjunto
– no mínimo 1 técnico da empresa
– Duração: 2 a 4 dias;
– Validade: 3 anos;
• Estruturação da Avaliação:
– Planejar e preparar avaliação
• Plano de Avaliação / Descrição dos indicadores de processo
– Conduzir Avaliação
• Resultado da avaliação
– Relatar resultados
• Relatório da avaliação
– Registrar e publicar resultados
• Banco de dados Softex (portal MPS.BR)
Prof. Msc. Danilo de Oliveira Gonçalves 60
MN-MPS (Modelo de negócio para 
melhoria do processo de software)
• Instituições que se propõem a implantar os processos 
MPS.Br (Instituições Implementadoras) 
• Credenciam-se através de um documento 
– onde é apresentada a instituição proponente
– contendo seus dados com ênfase na experiência em processos 
de software 
– estratégia de implementação do modelo
– estratégia para seleção e treinamento de consultores para 
implementação do MR.MPS
– estratégia para seleção e treinamento de avaliadores
– lista de consultores de implementação treinados no modelo e 
aprovados em prova específica
– lista de avaliadores treinados no modelo e aprovados em prova 
específica
Prof. Msc. Danilo de Oliveira Gonçalves 61
Prof. Msc. Danilo de Oliveira Gonçalves 62
CMMI
• Capability Maturity Model Integration
• Foi criado pelo SEI (Software Engineering
Institute)
• Versão 1.3 (Agosto/2012)
• Capacidade de maturidade de processos de 
software
– Está dividido em 5 níveis de maturidade 
• Atestam o grau de evolução em que uma organização se 
encontra num determinado momento
Prof. Msc. Danilo de Oliveira Gonçalves 63
Níveis CMMI
Prof. Msc. Danilo de Oliveira Gonçalves 64
Descrição dos níveis CMMI
• Nível 1 - Inicial: os processos normalmenteestão envoltos num caos 
decorrente da não-obediência ou ainda, inexistência de padrões
• Nível 2 - Gerenciado: os projetos têm seus requisitos gerenciados neste 
ponto. Além disso, há o planejamento, a medição e o controle dos 
diferentes processos
• Nível 3 - Definido: os processos já estão claramente definidos e são 
compreendidos dentro da organização. Os procedimentos se encontram 
padronizados, além de ser preciso prever sua aplicação em diferentes 
projetos
• Nível 4 – Gerenciado: quantitativamente: ocorre o aumento da 
previsibilidade do desempenho de diferentes processos, uma vez que os 
mesmos já são controlados quantitativamente
• Nível 5 - Otimizado: existe uma melhoria contínua dos processos.
Prof. Msc. Danilo de Oliveira Gonçalves 65
Alvo do CMMI
• A implantação do CMMI é recomendável para grandes 
fábricas de software
• Implementar os diversos estágios é uma tarefa árdua 
– não só numa fase inicial, mas também quando se leva em conta 
a migração de um nível para outro. 
• Invariavelmente exige
– vultosos investimentos financeiros, 
– mudança de postura da organização (principalmente quando a 
mesma não contava uma experiência anterior bem-sucedida no 
gerenciamento de processos). 
– consultorias especializadas, 
• visando apoio na obtenção da certificação CMMI 
• Inviável a adoção deste mesmo modelo por pequenas 
companhias
Prof. Msc. Danilo de Oliveira Gonçalves 66
Prof. Msc. Danilo de Oliveira Gonçalves 67
68
Auditorias
• Auditorias de Certificação
– Inicial
• Completa, abrangendo todo o escopo de certificação.
– De Manutenção
• Periódica, conduzida para determinar a manutenção da 
auditoria inicial.
– De Re-certificação
• Realizada no final do período de certificação no sentido 
de re-emitir o certificado para um novo período.
69
Assessments
• “the evaluation or estimation of the nature, 
quality, or ability of someone or something”
• Auxilia a organização a melhorar através da 
identificação de problemas críticos e 
estabelecimento de ações de melhoria.
• Objetivos
– Conhecer como a organização trabalha.
– Identificar principais problemas.
• Foco em revisão e não em auditoria
70
Assessments
• Premissas
– Modelo de processo como base do assessment.
– Confidencialidade.
– Envolvimento da alta gerência.
– Respeito a diferentes pontos de vista.
– Orientação a ações.
71
Assessments
• Estágios
– Preparação
– Avaliação
– Recomendações
• Assessment Report
72
Conclusão
• O principal objetivo da Engenharia de 
Software (ES) é ajudar a produzir software de 
qualidade;
• Empresas que desenvolvem software de 
qualidade são mais competitivas;
• Empresas que utilizam software de alta 
qualidade podem, em geral, oferecer um 
melhor serviço a um preço mais competitivo.
73
Qualidade de Software
• O que o cliente quer?
– Atendimento aos requisitos especificados
– Defeito zero
– Alto desempenho
– Baixo custo
– Desenvolvimento rápido
– Facilidade de uso
– Eficiência nos serviços associados
– Inovação
74
Qualidade de Software: dificuldades
• Características dos projetos de software
– Complexidade
– Custo focado no conhecimento e no 
desenvolvimento
– Produção específica e não em série
– Imaturidade da área de Engenharia de Software
75
Qualidade de Software: processo x 
produto
QUALIDADE DO 
PRODUTO DE 
SOFTWAREQUALIDADE DO 
PROCESSO DE 
DESENVOLVIMENTO
76
Certificação do Produto ou do 
Processo?
• Hoje em dia, a qualidade do processo é mais 
importante do que a qualidade final do 
produto;
• Existem normas e padrões tanto para 
produtos quanto para processos.
77
Qualidade do Processo
• Processo
– uma seqüência de passos realizados para um 
determinado propósito. (IEEE)
– conjunto de recursos e atividades inter-
relacionados que transformam insumos em 
produtos. (ISO 8402)
• Processo de software 
– um conjunto de atividades, métodos, práticas e 
transformações que as pessoas utilizam para 
desenvolver e manter software e produtos 
relacionados. (CMM)
78
Processo de Software
PROCESSO
Ferramentas
Métodos, Procedimentos, 
Padrões, Técnicas
Pessoas habilitadas, treinadas, 
motivadas
FATORES DE QUALIDADE
• o procedimento que descreve 
o método escolhido
• as ferramentas para darem 
apoio e facilitarem o trabalho
• pessoas treinadas, que
compreendam e usem o
processo
79
Desenvolvimento do Software 
REQUISITOS
PRODUTO DE 
SOFTWARE
Análise Projeto …
verificação
validação
Qualidade do Processo de Software
80
Qualidade do Processo de Software
• Pontos Relevantes
– Definição de um ciclo de vida
– Conformidade com requisitos especificados
– Integridade dos produtos do desenvolvimento com os 
requisitos
– Controle de versões
– Padronização
– Testes e Inspeções
– Planejamento e gerenciamento efetivo
– . . .
81
Melhoria de Processo 
de Software 
• Princípios
– Grandes mudanças devem ser iniciadas de cima 
pra baixo.
– Todos devem ser envolvidos.
– Mudanças efetivas devem ser construídas com 
base em conhecimento.
– Mudanças são contínuas.
– Mudanças no processo são incorporadas através 
de motivação e esforço.
– Melhoria de processo de software requer 
investimento.
82
Princípios Básicos da 
Qualidade de Software
Satisfação 
do Cliente
Melhoria Contínua
de Processos
Redução de Custo
de Qualidade
Controle
do Projeto
83
Conclusão
• Qualidade é um conceito complexo, porque significa 
diferentes coisas para diferentes pessoas;
• Não há uma simples medida para qualidade de software que 
seja aceitável para todos os projetos de todas as empresas;
• Apesar dos custos elevados, é importante introduzir sistemas 
de gerenciamento de qualidade de software, pois permitem 
um aumento de produtividade, uma melhoria da qualidade 
do produto final e um aumento da satisfação dos clientes e da 
própria empresa;
• A falta de consciência de muitas empresas e profissionais que 
lidam com sistemas complexos tem sido um dos maiores 
problemas em adotarem uma política de qualidade.
Trabalho próxima aula
• 02/12 – não haverá aula
• Trabalho para ser feito no horário da aula (ou 
quando preferirem)
– Qualquer lugar
– Individual
– Entregar Impresso (colocar nome, disciplina e data) 
– Data de entrega: 09/12/2015
– Mínimo de 3 páginas excluindo figuras
– Vai compor a terceira nota
• Assunto:
– Pesquisa sobre Scrum e FDD (Feature Driven
Development)
• O que é? Como funciona? Pra que serve? Vantagens e 
Desvantagens. Comparativo entre as duas metodologias.
Prof. Msc. Danilo de Oliveira Gonçalves
84
Próxima Aula
• 09/12 – Teste de Software
Prof. Msc. Danilo de Oliveira Gonçalves 85

Continue navegando