Buscar

Qualidade de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Qualidade de 
software
Motivação de Qualidade
Material Teórico
Responsável pelo Conteúdo:
Prof. Ms. Douglas Almendro
Revisão Textual:
Profa. Esp. Márcia Ota
5
•	Motivação de Qualidade
•	Qualidade x tipo de software
•	Avaliação da qualidade do produto
Considerando o conhecimento adquirido por meio dos conceitos iniciais de qualidade e 
algumas metodologias voltadas para software, a proposta desta Unidade é mostrar que a 
qualidade faz parte da vida cotidiana. Vale salientar que a visão popular que se tem do 
conceito de qualidade pode ser muito diferente de como ele é usado profissionalmente. 
Por isso, não deixe de assistir, também, à apresentação narrada do conteúdo e de alguns 
exercícios resolvidos.
Finalmente, e o mais importante: fique atento às atividades avaliativas propostas e ao prazo 
de realização e envio. 
Nesta Unidade, será explanado o conceito de qualidade. Esse 
primeiro passo nos levará ao entendimento de certificações 
dadas às metodologias que são utilizadas no mercado de 
software. Então, não perca nenhum detalhe dessa unidade.
Motivação de Qualidade
6
Unidade: Motivação de Qualidade
Contextualização
Ao desenvolver um software, devemos estar familiarizados com os conceitos de qualidade. 
Entre eles, podemos citar o CMM (Capability Maturity Model), e a ISO/SPICE (Software Process 
Improvement & Capability Determination.
O CMM é o modelo desenvolvido pelo Instituto de Engenharia de Software (SEI) da 
Universidade Carnegie-Mellon, EUA, visando dar às organizações diretrizes sobre como 
aprimorar o processo.
A 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 Avaliação da qualidade do produto.
Com base nos conceitos de qualidade, estaremos mais à frente, optando pela melhor 
metodologia a ser seguida. É assim que seguiremos uma metodologia de qualidade.
7
Motivação de Qualidade
Antes de iniciarmos nossos estudos, vamos primeiro entender o significado de qualidade. Veja:
O Dicionário Aurélio define qualidade como: “propriedade, atributo ou condição das coisas 
ou das pessoas capaz de distingui-las das outras e de lhes determinar a natureza” [Aurélio86]. 
Como um atributo de um item, a qualidade se refere a coisas que podem ser medidas, ou 
seja, comparadas com padrões conhecidos, tais como, tamanho, cor, propriedades elétricas, 
maleabilidade, etc. Entretanto, é mais difícil categorizarmos qualidade em software, que é uma 
entidade intelectual, do que em objetos físicos. 
Quando falamos de qualidade, deparamo-nos com diversas situações. Veja um exemplo:
O que seria um automóvel que tem qualidade? 
Vêm-nos em mente diversos tipos, modelos e marcas tão sonhadas, mas o que devemos observar?
Esses automóveis tão sonhados espelham a qualidade principalmente pela funcionalidade, 
segurança, fácil manutenção e diversas outras conformidades que necessitamos.
Aproveitando o nosso exemplo do automóvel, quando nos deparamos por um aviso no 
rádio, televisão e/ou internet, sobre um recall de um determinado automóvel, qual a sensação 
que é esperada a princípio por todos?
Provavelmente, a sensação de que houve um defeito no projeto do automóvel, pois o 
que nos surpreende é que logo em seguida mostram o lote em que se deve efetuar o recall, 
do número x até o número y desse veículo e modelo... Isso mostra, de fato, que houve 
algum erro, defeito ou bug?
Sim, mas o erro foi identificado a tempo e, mesmo assim, conseguiram saber quais veículos 
produzidos da linha de montagem tiveram esta anomalia.
Isso prova que as maiorias das indústrias (nesse caso, automobilísticas) conseguem ter 
controle de todos os processos efetuados na criação de um veículo.
Vale salientar que as indústrias têm como controlar essas anomalias, mas nem sempre foi 
assim, para chegar a esse grau de excelência, erram muito. 
Bem, mas e quando falamos de software?
Definir qualidade de software é uma tarefa difícil. Muitas definições têm sido propostas e uma 
definição decisiva poderia ser debatida interminavelmente. 
Ao se examinar um item baseado em suas características mensuráveis, dois tipos de qualidade 
podem ser encontradas: qualidade de projeto e qualidade de conformidade [Pressman97]. 
•	 Qualidade	de	projeto	se	refere	a	características	que	projetistas	especificam	para	um	item	
(desempenho, tolerância, etc.). O enfoque maior é nos requerimentos, na especificação e 
no projeto do sistema. 
•	 Qualidade	de	conformidade	é	o	grau,	no	qual,	as	especificações	do	projeto	são	seguidas	
durante o processo de desenvolvimento. O enfoque maior é na implementação. 
8
Unidade: Motivação de Qualidade
 Uma definição de qualidade de software que se encaixa nesse escopo é: “conformidade a 
requisitos funcionais e de desempenho explicitamente declarados, a padrões de desenvolvimento 
claramente documentados e a características implícitas que são esperadas de todo software 
profissionalmente desenvolvido” [Pressman95].
Hoje, temos uma dependência crescente em sistemas computacionais.
Sistemas computacionais dependem cada vez mais do software. Por isso, o mau funcionamento 
do software pode gerar custos altos.
Alguns exemplos do passado: 
•	 bug	do	milênio;
•	 avião	F-16:	voou	de	cabeça	para	baixo	ao	cruzar	o	equador	devido	à	falha	no	software	
de	navegação;
•	 lançamento	do	ônibus	espacial	Columbia	foi	atrasado	em	1981	devido	à	alteração	errada	
em	rotina	de	sincronização;
•	 ao	menos	duas	mortes	causadas	por	overdose	de	radiação	por	causa	de	uma	falha	de	
software	no	Therac-25;
http://www.cs.tau.ac.il/~nachumd/verify/horror.html 
Agora, reflita:
No 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ô	forem	colocados	no	mesmo	trilho,	entre	muitos	outros	exemplos	relacionados	
às consequências do mau funcionamento dos softwares?
Características de Qualidade
Abaixo, temos uma figura que representa as características de qualidade segundo McCall.
Cada item representa uma característica de cada processo. 
Modelo de Qualidade de McCall et al, 1977
9
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.
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 programa.
•	 flexibilidade:	o quanto de esforço é necessário para modificar um programa.
•	 testabilidade: o quanto de esforço é necessário para testar um programa a fim de garantir 
que ele execute a função pretendida.
Com relação às alterações do produto (habilidade para ser alterado):
•	 portabilidade:	o quanto de esforço é necessário para transferir um programa de uma 
plataforma de hardware e/ou software para outra.
•	 reusabilidade: o quanto um programa (ou partes dele) pode ser reutilizado em outros 
programas.
•	 interoperabilidade: o quanto de esforço é necessário para se acoplar um programa a outro. 
Funcionalidade: o software satisfaz às necessidades explícitas e implícitas do usuário?
Confiabilidade:	o software, durante um períodode tempo, funciona de acordo com as 
condições preestabelecidas?
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?
10
Unidade: Motivação de Qualidade
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	o	acesso	não	autorizado,	 acidental	 ou	deliberado	acesso	a	
programa e dados?
Confiabilidade:	o software, durante um período de tempo, funciona de acordo com as 
condições preestabelecidas?
•	 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?
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	?
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?
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?
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?
11
Qualidade x tipo de software
Cada tipo de software tem seu próprio requisito de qualidade, a importância de cada 
característica depende diretamente do tipo de software por exemplo.
No exemplo acima, temos a importância que cada processo em cada sistema, cada um exige 
mais do que o outro de acordo com seus requisitos, em uns mais itens em outros menos itens.
A figura abaixo mostra os diferentes pontos de vista das pessoas envolvidas no processo de 
desenvolvimento de software.
Figura: Diferentes pontos de vista
Quais são os principais objetivos da qualidade?
•	 Aprimorar	o	processo	de	desenvolvimento	e,	em	consequência,	melhorar	a	qualidade	do	
produto resultante.
12
Unidade: Motivação de Qualidade
•	 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.
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 Carnegie-Mellon, 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 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.
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	da	área	de	tecnologia	e	especialistas	da	
área que se utilizará do software (ie, que vão olhar para o software a partir do ponto de 
vista do cliente) ,grupo de Garantia da Qualidade do Software. 
13
- 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.	São,	no	entanto,	mais	acessíveis	e	ágeis	que	os	
organismos credenciados.
Alguns entraves à qualidade segundo o IEEE610.12-1990:
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
Por que 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	das	implementações	das	alterações	aumentam,	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.	
Garantia	da	Qualidade	do	Software
Definição de um arcabouço para se atingir a qualidade do produto de software 
[Sommerville01, 24.1]
Padrão sistemático e planejado de ações que são exigidas para garantir a qualidade do 
software. [Pressman92, 17.1.2]
Visa responder às seguintes questões:
•	 O	software	atende	às	características	de	qualidade	desejadas	?
14
Unidade: Motivação de Qualidade
•	 O	desenvolvimento	do	software	foi	conduzido	conforme	os	padrões	preestabelecidos	?
•	 As	disciplinas	técnicas	cumpriram	adequadamente	seus	papéis	como	parte	da	atividade	de	
Garantia da Qualidade?
Norma ISO/IEC 14598 pode ser usada para definir o processo de Avaliação.
Atividades	da	Garantia	de	Qualidade	segundo	Pressman
Aplicação de métodos, técnicas e ferramentas, uso pelos desenvolvedores de métodos e 
ferramentas que ajudem a conseguir especificações, projetos, etc., de maior qualidade.
Realização	 de	 revisões	 técnicas,	 o	 objetivo	 é	 avaliar	 a	 qualidade	 do	 artefato	 de	 software	
(especificação, projeto, ...) produzido ao longo do desenvolvimento.
Atividades de testes em complemento às revisões e outras técnicas. 
Aplicação de padrões
•	 padrões	 podem	 ser	 usados:	 para	 documentos,	 documentação	 do	 código	 e	 estilo	 de	
codificação (como usar linguagem de programação).
•	 padrões	podem	ser	determinados	pelo	cliente,	por	normas	internacionais	ou	pela	empresa	
de desenvolvimento. 
Atividades de Garantia de Qualidade
Controle de alterações, toda mudança no software tem potencial para introduzir erros ou 
criar efeitos colaterais, que propagam erros no controle de mudanças durante desenvolvimento 
e manutenção, sendo essencial para garantir a qualidade do software.
Medição, obtenção de métricas a fim de rastrear a qualidade do software e avaliar o impacto 
de mudanças nosmétodos e procedimentos usados para desenvolvimento e manutenção.
Anotação e manutenção de registros para manter histórico com resultados de revisões, 
auditorias, controle de alterações e outras atividades de garantia de qualidade, que devem ser 
levados ao conhecimento dos desenvolvedores.
Com isso, conseguimos ter uma noção de qualidade e chegar a uma conclusão de qualidade 
de software que devido ao aumento da competitividade e a preocupação em oferecer ao 
mercado softwares que atendam às expectativas de seus clientes, os desenvolvedores de 
software têm buscado aplicar os conceitos de qualidade em seus produtos. Dada a história e os 
fatos mencionados, notamos que, nos dias de hoje, a qualidade dos softwares desenvolvidos 
devem aumentar significativamente. Algumas certificações existentes no mercado têm dado 
uma atenção especial nos processos de qualidade e mobilizado as organizações a adotarem 
este tipo de processo em todos seus produtos. Espera-se que as organizações comecem a incluir 
em seu processo de desenvolvimento, o processo de qualidade de software, não apenas no 
momento que o produto foi finalizado ou desenvolvido, mas desde o início de sua concepção, 
para não ser surpreendido com a possibilidade de ocorrerem falhas no ciclo de vida do software.
15
Material Complementar
Para aprofundar seus estudos sobre Qualidade, temos abaixo os sites e as seguintes referências:
•	 http://www.sei.cmu.edu/
•	 http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf
•	 http://www.spinsp.org.br/
•	 http://ibpi.org/standard/isoiec-15504/ 
•	 GAMMA, Erich. Padrões	de	projeto:	soluções	reutilizáveis	de	software	orientado	
a	objetivos.	Porto Alegre: Bookman, 2000. 
•	 SOMMERVILLE,	 Ian.	Engenharia	de	software.	8ª ed. São Paulo: Pearson Addison-
Wesley, 2007.
http://www.sei.cmu.edu/
http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf
http://www.spinsp.org.br/
http://ibpi.org/standard/isoiec-15504/
16
Unidade: Motivação de Qualidade
Referências
J.	McCall,	 P.	 Richards	 and	G.	Walters.	Factors	 in	 Software	Quality	 (3 vols.), NTIS AD-
AO49-014, 015, 055, Nov. 1977.
R.S.Pressman.	Software	Engineering,	A	Practicioners	Approach, McGraw-Hill.
Steven	 R.	 Rakitin.	 “Software	 Verification	 and	 Validation:	 a	 Practitioner’s	 Guide”. 
Artech House, 1997.
Nelma S. Gomes.	“Qualidade	de	Software	-	Uma	Necessidade”. Artigo obtido em fev/2003 
em: www.esaf.fazenda.gov.br/cst/arquivos/Qualidade_de_Soft.pdf
PRESSMAN,	Roger	S.	Engenharia	de	software. 6ª ed. Porto Alegre: Bookman, 2006.
GAMMA, Erich. Padrões	de	projeto:	 soluções	 reutilizáveis	de	 software	orientado	a	
objetivos.	Porto Alegre: Bookman, 2000. 
SOMMERVILLE,	Ian.	Engenharia	de	software. 8ª ed. São Paulo: Pearson Addison-Wesley, 
2007.
RESENDE,	Denis	Alcides.	Engenharia	de	software	e	sistemas	de	informação.	3ª	Ed.	Rio	
de Janeiro: Brasport, 2005.
FILHO,	 Wilson	 de	 Pádua	 Paula.	 Engenharia	 de	 software:	 fundamentos,	 métodos	 e	
padrões.	3ª	ed.	Rio	de	Janeiro:	LTC,	2005.	
FERNANDES,	Aguinaldo	Aragon.	
http://www.redepro.rs.gov.br/docs/11177116862Seminario_redepro_palestra_1.pdf 
(22/07/2010, 17:35h)
[SEI2000] Sei, An	Overview	of	Capability	Maturity	Model	Integration	(CMMI) – Version 
1.0,	Tutorial	presented	at	SIMPROS	2000	[23],	2000.
[SEI2002a] Sei, Web	Site	do	software	Engineering	Institute	– SEI, http://www.sei.cmu.
edu/ (CMMI nodels available at www.sei.cmu.edu/cmmm).
[ISO9001:2000]	International	Standard	Organization	Certification	for	IMS	Company.
[ISO12207:2000] International	 Standard	 Organization. ISO/IEC 12207 Amendement: 
Information Technology – Amendement to ISO/IEC 12207, versão PDAM 3, novembro 2000.
17
Anotações
www.cruzeirodosulvirtual.com.br
Campus	Liberdade
Rua	Galvão	Bueno,	868
CEP 01506-000
São Paulo SP Brasil 
Tel: (55 11) 3385-3000
http://www.cruzeirodosulvirtual.com.br
Qualidade de 
Software
CMM - Capability Maturity Model (Modelo de Maturidade 
em Capacitação)
Material Teórico
Responsável pelo Conteúdo:
Prof. Ms. Douglas Almendro
Revisão Textual:
Profa. Ms. Selma Aparecida Cesarin. 
5
• Introdução
• CMM
• Níveis do CMM
Estamos em nossos estudos sobre CMM. A ideia principal é mostrar a descrição deste modelo 
de maturidade e os principais elementos de um processo de desenvolvimento de software. 
Veremos os estágios de maturidade por que passam as organizações enquanto evoluem no 
seu ciclo de desenvolvimento de software, por meio de avaliação contínua, identificação de 
problemas e ações corretivas.
Este caminho de melhoria é definido por cinco níveis de maturidade, que estudaremos em 
nossas aulas.
 · Nesta Unidade, será explanado o conceito de CMM. Este 
passo nos levará ao entendimento da certificação dada ao 
software e que é utilizada no mercado. Então, não perca 
nenhum detalhe dessa Unidade.
CMM - Capability Maturity Model 
(Modelo de Maturidade em Capacitação)
• Chaves do Processo de Produção
• Entendendo os níveis de maturidade
• Métricas de Qualidade de Software
• Sistemas de Gerenciamento de Qualidade
6
Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação)
Contextualização
O CMM fornece às organizações uma orientação sobre como adquirir controle do processo de 
desenvolvimento de software e como avançar para uma cultura padrão na gestão de software. 
O objetivo principal é acompanhar, por meio dos níveis de maturidade, a realização de um 
processo controlado e mensurado que tem como fundamento a melhoria contínua. 
A cada nível de maturidade corresponde um conjunto de práticas de software e de gestão 
específicas, denominadas áreas-chave do processo (KPAs – Key Process Areas). 
Por este estudo, teremos uma boa visão, principalmente sobre como melhor gerir os processos 
de desenvolvimento de software.
7
Introdução
Já temos em mente o que vem a ser qualidade, mas, para reforçarmos o conceito, observe 
como o dicionário Aurélio define qualidade: “propriedade, atributo ou condição das coisas ou 
das pessoas capaz de distingui-las das outras e de lhes determinar a natureza” (Aurélio, 1986). 
Como um atributo de um item, a qualidade se refere àquilo que pode ser medido, ou 
seja, comparado com padrões conhecidos, tais como tamanho, cor, propriedades elétricas, 
maleabilidade etc. 
Entretanto, é mais difícil categorizarmos qualidade em software, que é uma entidade 
intelectual, do que em objetos físicos. 
Vamos começar a nossa Unidade explicando a que nos referimos quando falamos de 
qualidade de software, principalmente no quesito de processos. 
Mas o que seria processo? 
Conjunto de atos por que se realiza uma operação qualquer (química, farmacêutica, industrial 
etc.): um processo de fabricação de nitroglicerina. / Sequência contínua de fatos que apresentam 
certa unidade, ou que se reproduzem com certa regularidade; andamento, desenvolvimento: o 
processo de uma crise econômica (Aurélio, 1986).
Para a engenharia de software, seria um conjunto de passos de procedimentos parcialmente 
ordenados, relacionados a artefatos, pessoas, recursos, estruturas organizacionais e restrições, 
tendo como objetivo produzir e manter o produto de software requisitado.
O CMM ajuda a apontar quais são os procedimentos a serem exigidos para que tenhamos 
excelência na atividade.
CMM
Vamos falar, agora, sobre o CMM.
O CMM surgiu durante a década de 1980, como um modelo para avaliação de risco na contratação 
de empresas de software pelo Departamento de Defesa dos Estados Unidos, que desejava ser capaz 
de avaliar os processos de desenvolvimento utilizados pelas empresas que concorriam em licitações 
como indicação da previsibilidade da qualidade, custos e prazos nos projetos contratados.
Para desenvolver esse processo, o DOD constituiu, junto a Carnegie-Mellon University, o SEI 
(Software Engineering Institute), que, além de ser responsável pela evolução da família CMM, 
também realiza diversas outras pesquisas em engenharia de software.
Observe os dados cronológicos:
• 1986 – início do desenvolvimentode um modelo de maturidade de processo, para ajudar as 
organizações a melhorarem seus processos de software (por solicitação do governo federal);
8
Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação)
• 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 – 1ª. versão 
do CMM (Versão 1.0);
• 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 – Capability Maturity 
Model for Software (atualmente usada).
Premissa básica que está por baixo do trabalho do 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”.
O 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 melhoramentos sucessivos não foram estabelecidos.
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, que 
orientam a 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.
9
 
Níveis do CMM
O CMM fornece às organizações orientação sobre como ganhar controle do processo de 
desenvolvimento de software e como evoluir para uma cultura de excelência na gestão de software. 
O objetivo principal nas transições desses níveis de maturidade é a realização de um processo 
controlado e mensurado como a fundação para melhoria contínua.
Cada nível de maturidade possui um conjunto de práticas de software e gestão específicas, 
denominadas áreas-chave do processo. 
Estas devem ser implantadas para a organização atingir o nível de maturidade em questão.
O nível de maturidade é um estágio evolutivo bem definido, em busca de um processo 
de software maduro. Cada nível de maturidade fornece uma gama de fundamentos para a 
melhoria contínua do processo e um conjunto de práticas de software e gestão específicas, 
denominado áreas-chave do processo, que devem ser implantadas para a organização atingir o 
nível de maturidade em questão. 
Cada nível compreende um conjunto de objetivos de processos que, quando satisfeitos, 
estabilizam um componente importante do processo de software. Alcançando cada nível da 
estrutura de maturidade, estabelecem-se diferentes componentes no processo, resultando em 
um crescimento na capacidade processual da organização. 
A maturidade do processo de software é a extensão para a qual um processo específico é 
explicitamente definido, gerenciado, medido, controlado e efetivado. A maturidade representa 
o potencial de crescimento e indica a riqueza do processo de software da organização e a 
consistência com que o mesmo é aplicado em todos os seus projetos. 
Em uma organização madura, o processo de software é bem compreendido – o que geralmente 
é feito por meio de documentação e treinamento – e está sendo continuamente monitorado e 
melhorado pelos seus usuários. 
A atividade de um processo de software maduro é conhecida e implica que a produtividade e 
a qualidade resultantes do processo possam ser continuamente melhoradas por meio de ganhos 
consistentes na disciplina alcançada com a sua utilização.
Quando uma organização obtém ganhos na maturidade de um processo de software, ela o 
institucionaliza por meio de políticas, padrões e estruturas organizacionais.
A institucionalização exige a construção de uma infraestrutura e de uma cultura corporativa 
que possa dar suporte aos métodos, práticas e procedimentos de negócio, que perdurem após 
possíveis afastamentos daqueles que originalmente os definiram.
Vamos ver o que possuem os níveis de maturidade do CMM.
Nível 1: Inicial 
No nível 1 de maturidade, os processos normalmente são ad hoc e a organização geralmente 
não dispõe de ambiente estável. O sucesso nestas organizações depende da competência e do 
heroísmo dos funcionários e não do uso de processos estruturados. Devido ao imediatismo, 
um ambiente caótico, o nível 1 de maturidade raramente produz um produto ou serviço que 
funcione. Assim, frequentemente, eles excedem o orçamento e o prazo em seus projetos.
10
Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação)
Nível 2: Repetível 
No nível 2 de maturidade, o desenvolvimento do software é repetido. O processo pode não 
se repetir para todos os projetos da organização, que pode usar ferramentas de Gerência de 
Projetos para mapear os custos e o prazo do projeto. 
A adoção de um processo de desenvolvimento ajuda a garantir que práticas existentes são 
utilizadas em momentos de stress. Quando estas práticas são adotadas, os projetos decorrem e 
são gerenciados de acordo com o planejamento inicial. 
O status do projeto e os serviços entregues são visíveis ao gerenciamento (por exemplo: é 
possível a visualização de marcos do projeto e o término da maioria das tarefas). 
Técnicas de gerenciamento de projetos são estabelecidas para mapear custos, prazos e 
funcionalidades. Um mínimo de disciplina nos processos é estabelecido para que se possa repetir 
sucessos anteriores em projetos com escopo e aplicação similar. Ainda há um risco significante 
de exceder os custos e estimativas de prazo de desenvolvimento. 
Nível 3: Definido 
A organização possui um conjunto de processos padrão, que são a base do nível 3 e estão 
estabelecidos e melhorados periodicamente. Estes processos padrão são usados para estabelecer 
uma consistência dentro da organização e os projetos estabelecem seus processos definidos pelo 
conjunto de padrões processuais da organização. 
O gerenciamento da organização estabelece os objetivos dos processos, baseado no 
conjunto de padrões pré-definidos e garante que estes objetivos sejam encaminhados de 
forma apropriada. 
Uma crítica distinção entre os níveis 2 e 3 é o escopo dos padrões, descrição dos processos e 
procedimentos. No nível 2, os padrões, descrições de processos e procedimentos podem ser bem 
diferentes em cada instância específica do processo (por exemplo, em um projeto particular). 
No nível 3, os padrões, descrições de processo e procedimentos para o projeto são guiados pelo 
conjunto padrão de processos da organização. 
Nível 4: Gerenciado 
Utilizando métricas precisas, o gerenciamento pode efetivamente controlar os esforços para 
desenvolvimento de software. Em particular, o gerenciamento pode identificar caminhos para 
ajustar e adaptar o processo para projetos particulares, sem perda de métricas de qualidade ou 
desvios das especificações. 
Organizações neste nível conseguem metas quantitativas para o processo de desenvolvimento 
de software e de manutenção. 
11
Nível 5: Otimizado 
O nível de maturidade 5 foca no contínuo aumento do desempenho dos processos por 
meio de melhorias de inovação tecnológica e incremental. Objetivos de melhoria quantitativa 
dos processos para a organização são estabelecidos, continuamente revisados, refletindo os 
objetivos da organização e usando critérios de gerência de processos. 
Os efeitos da melhoria da revisão dos processos são medidos e acompanhados, utilizando-se 
processos de melhoria de qualidade. Ambos – os processo definidos e o conjunto de processos 
padrão da organização – são alvos de melhoriade métricas.
Chaves do Processo de Produção
Cada nível, com exceção do primeiro, é composto por áreas chave de processo. Essas áreas 
são formadas por sessões, chamadas áreas comuns. As áreas comuns especificam as práticas 
chave necessárias para se alcançar a principal meta da área chave do processo, que são uma 
descrição do caminho que uma organização deve tomar para se tornar madura. Este caminho 
foi baseado em anos de experiência, tanto no processo de produção, quanto no gerenciamento 
do processo.
As áreas chaves de processo do nível repetível são definidas como :
 » Gerenciamento de requisitos: Os requisitos do sistema são controlados de forma 
a estabelecer um perfil mínimo a ser utilizado pela engenharia de software e pela 
administração. Os planos, produtos e atividades do software são sempre consistentes 
com os requisitos de sistema;
 » Planejamento do Projeto: Estimativas relativas ao software são documentadas para 
uso no planejamento e acompanhamento do projeto do software. As atividades de 
projeto de software e compromissos assumidos são planejadas e documentadas;
 » Visão geral e acompanhamento do projeto: Resultados reais são acompanhados 
de acordo com o planejamento do software. Quando os resultados apresentam um 
significativo desvio do planejamento do software, são tomadas ações corretivas, que são 
acompanhadas até o final do projeto. Mudanças nos compromissos assumidos são feitas 
em comum acordo com os grupos e indivíduos afetados;
 » Gerenciamento de subcontratados: O contratante seleciona subcontratos qualificados. 
Ele os subcontratados estão de acordo no que diz respeito aos compromissos assumidos 
um com o outro e mantém uma comunicação constante. O contratante acompanha os 
resultados reais do subcontratado, de acordo com os compromissos assumidos;
12
Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação)
 » Garantia da qualidade do software: As atividades de garantia de qualidade de 
software são planejadas. A conformidade dos produtos de software e atividades com os 
padrões, procedimentos e requisitos é verificada objetivamente. Os grupos e indivíduos 
afetados são informados das atividades de garantia de qualidade de software e de seus 
resultados. Questões relacionadas a não conformidade que não são resolvidas dentro do 
projeto de software são encaminhadas à gerência geral;
 » Gerenciamento de configuração: As atividades de gerenciamento de configuração 
são planejadas. Os produtos de trabalho de software são identificados, controlados e 
estão disponíveis. Mudanças nos produtos de trabalho identificados são controlados. Os 
grupos e pessoas afetadas são informados da situação atual e projetada dos produtos de 
trabalho de software.
As áreas chaves de processo do nível definido são definidas como:
 » Foco do processo organizacional: São coordenadas atividades de desenvolvimento e 
melhoramento do processo de software em toda a organização. Os pontos fortes e fracos 
do processo de desenvolvimento de software utilizado são identificados, de acordo com 
um padrão de processo. São planejadas atividades de desenvolvimento e melhoramento 
do processo em nível de organização;
 » Definição do processo organizacional: O processo padrão de desenvolvimento de 
software da organização é desenvolvido e mantido. A informação relacionada ao uso do 
processo padrão de desenvolvimento de software é coletada, revisada e disponibilizada;
 » Programa de treinamento: As atividades de treinamento são planejadas.
 » É fornecido treinamento para o desenvolvimento de habilidades e conhecimentos 
necessários para realizar o gerenciamento do software e as funções técnicas, tanto para o 
grupo de engenharia de software, quanto para outros relacionados ao desenvolvimento;
 » Gerenciamento de software integrado: O processo de software definido para o 
projeto é uma versão adaptada do processo padrão de desenvolvimento de software da 
organização. O projeto é planejado e gerenciado de acordo com este padrão;
 » Engenharia de produto de software: As atividades de engenharia de software são 
definidas, integradas e consistentemente realizadas para produzir o software;
 » Coordenação intergrupos: Os grupos de engenharia identificam, acompanham e 
resolvem todas as questões intergrupos. Todos os grupos de trabalho afetados concordam 
com os requisitos do cliente e com os acordos entre os grupos de engenharia;
 » Revisão conjunta: Atividades de revisão conjunta são planejadas. Defeitos nos produtos 
de trabalho são identificados e removidos.
As áreas chave de processo do nível gerenciado são definidas como:
 » Gerenciamento quantitativo dos processos: As atividades de gerenciamento 
quantitativo dos processos são planejadas. O desempenho do processo de desenvolvimento 
de software definido é controlada quantitativamente. A capacidade do processo de 
desenvolvimento de software padrão da organização é conhecida em termos quantitativos;
13
 » Gerenciamento da qualidade de software: As atividades de gerenciamento da 
qualidade de software do projeto são planejadas. Objetivos mensuráveis da qualidade 
do produto de software e suas prioridades são definidos.
 » O progresso real em direção à realização dos objetivos de qualidade para os produtos de 
software é quantificado e gerenciado.
As áreas chave de processo do nível otimizado são definidas como:
 » Prevenção de defeitos: As atividades de prevenção de defeitos são planejadas. As 
causas comuns de defeitos são procuradas, identificadas e sistematicamente eliminadas;
 » Gerenciamento de mudanças tecnológicas: A incorporação de mudanças 
tecnológicas é planejada. Novas tecnologias são avaliadas para determinar seu efeito 
na qualidade e na produtividade e as adequadas são incorporadas na prática normal de 
toda a organização;
 » Gerenciamento de mudanças no processo: O melhoramento contínuo do processo 
é planejado. Toda a organização participa das atividades de melhoramento do processo 
de software. O padrão de processo de software da organização e os processos de software 
de cada projeto definido são melhorados continuamente.
Entendendo os níveis de maturidade
O CMM é um modelo descritivo, no sentido de descrever atributos essenciais (ou chave) que 
seriam esperados para caracterizar uma organização em um nível particular de maturidade. 
É um modelo normativo, no sentido de que as práticas detalhadas caracterizam os tipos 
normais de comportamento que seriam esperados em uma organização que desenvolve projetos 
em larga escala num contexto de contratação governamental.
 A intenção é que o CMM tenha um nível suficiente de abstração que não restrinja 
desnecessariamente a maneira que o processo de software é implementado pela organização; 
ele simplesmente descreve o que normalmente seria esperado dos atributos essenciais do 
processo de software.
Em qualquer contexto em que o CMM for aplicado, deveria ser utilizada uma interpretação 
razoável das práticas. O CMM deve ser interpretado apropriadamente, utilizando-se o 
conhecimento de peritos quando o ambiente comercial da organização difere significativamente 
de uma grande organização fornecedora.
O CMM não é prescritivo; ele não diz à organização como melhorar. O CMM descreve a 
organização em cada nível de maturidade sem prescrever os meios específicos para consegui-lo. 
Pode levar vários anos para se passar do Nível 1 para o Nível 2; a movimentação entre os outros 
níveis geralmente levará cerca de dois anos.
14
Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação)
A melhoria de processo de software ocorre dentro do contexto dos planos estratégicos e dos 
objetivos de negócio da organização, da sua estrutura organizacional, das tecnologias em uso, 
da sua cultura social e sistema de gestão. 
O CMM está voltado para os aspectos de processo da Gestão da Qualidade Total; a 
melhoria de processo bem sucedida implica que os aspectos fora do escopo de processo de 
software também sejam encaminhados (porexemplo: as questões pessoais envolvidas nas 
mudanças da cultura organizacional que possibilitem a implementação e a institucionalização 
das melhorias de processo).
O que o CMM não cobre
O CMM não é uma bala de prata [BROOKS, 1987] e não trata todos os assuntos que são 
importantes para o sucesso dos projetos. Por exemplo, o CMM não indica peritos em domínios 
específicos de aplicações, não defende tecnologias específicas de software, nem sugere como 
selecionar, contratar, motivar e reter pessoas competentes.
Apesar de esses assuntos serem cruciais para o sucesso do projeto, alguns deles têm sido analisados 
em outros contextos [CURTIS, 1990]. Entretanto, eles não têm sido integrados ao CMM. 
O CMM foi especificamente desenvolvido para prover uma estrutura ordenada e disciplinada 
dentro da qual possa se encaminhar assuntos de processo de gestão e desenvolvimento de software.
Métricas de Qualidade de Software
Um elemento chave de qualquer processo de engenharia é a medição. Nós usamos medidas 
para melhor entendermos os atributos dos modelos que criamos e, o mais importante, é que 
nós usamos medidas para avaliarmos a qualidade dos produtos de engenharia ou sistemas que 
nós construímos.
Ao contrário de outras engenharias, a engenharia de software não é baseada em leis 
quantitativas básicas, medidas absolutas não são comuns no mundo do software. 
Ao invés disso, nós tentamos derivar um conjunto de medidas indiretas que levam a métricas 
que fornecem uma indicação de qualidade de alguma representação do software.
Embora as métricas para software não sejam absolutas, elas fornecem uma maneira de 
avaliar qualidade por meio de um conjunto de regras definidas.
Garantia de qualidade de software (SQA)
Um dos desafios críticos para qualquer programa de qualidade é tornar possível que qualquer 
pessoa possa fazer revisões no trabalho de pessoas experientes. 
15
Gerentes querem os melhores projetistas para projetar o produto, então, em geral, SQA não 
pode tê-los. A necessidade é concentrar esforços em métodos de SQA que permitam que o 
desenvolvimento possa ser revisado por pessoas que não são desenvolvedores. 
O papel de SQA é monitorar os métodos e os padrões que os engenheiros de software 
usam e verificar se eles estão usando apropriadamente seus conhecimentos. Pessoas podem ser 
experientes em SQA sem, no entanto, serem experientes em projeto de software.
Atividades de garantia de qualidade de Software
Em SQA, temos uma variedade de tarefas, que podem se dividir em dois grandes grupos: 
os engenheiros de software, que fazem o trabalho técnico, e o grupo de SQA, que tem 
responsabilidades no plano de qualidade, na inspeção, na conservação de registros históricos, 
na análise e no reporting das atividades de SQA para o gerente do projeto.
Os engenheiros de software buscam qualidade de software, aplicando sólidos métodos e 
medidas, conduzindo revisões técnicas formais e realizando testes de software bem planejados.
O papel do grupo de SQA é ajudar o time de engenharia de software a alcançar um produto 
de alta qualidade. 
O Instituto de Engenharia de Software (SEI) recomenda as seguintes atividades a serem 
realizadas por um grupo de SQA:
 » Preparar um plano de SQA para o projeto. O plano é desenvolvido durante o planejamento 
do projeto e é revisado por todas as partes interessadas;
 » Participar do desenvolvimento da descrição do processo do projeto do software. O time 
de engenharia de software seleciona um processo para o trabalho a ser realizado. O grupo 
de SQA revisa a descrição do processo, verificando se ele está de acordo com a política 
organizacional, os padrões internos para o software, os padrões impostos externamente 
e outras partes do plano de projeto de software;
 » Revisar as atividades dos engenheiros de software para verificar se o processo de software 
definido está sendo seguido. O grupo de SQA identifica, documenta e trilha os desvios do 
processo e verifica quais correções devem ser realizadas;
 » Garantir que os desvios no trabalho do software e nos produtos do trabalho são 
documentados e mantidos de acordo com o procedimento documentado;
 » Registrar qualquer discordância e reportar para o gerente.
Além dessas atividades, o grupo de SQA coordena o controle e o gerenciamento de mudanças 
e ajuda a coletar e analisar métricas de software.
16
Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação)
Sistemas de Gerenciamento de Qualidade
Personal Software Process (PSP)
O estímulo original para desenvolver o PSP surgiu de questões sobre o Capability Maturity 
Model (CMM). Muitos viam o CMM como projetado para grandes organizações e não entendiam 
como ele poderia ser aplicado a trabalhos individuais e em times pequenos de projeto. 
Apesar do CMM poder ser aplicado para ambas, pequenas e grandes organizações, uma 
orientação mais específica se tornava claramente necessária.
Após alguns anos de pesquisa, 12 das 18 áreas chave de processo do CMM foram adaptadas 
para o trabalho de engenheiros de software individuais.
O principal objetivo do PSP é fazer com que os engenheiros de software fiquem atentos no 
processo que eles usam para fazer seus trabalhos e estejam sempre verificando suas performances 
no processo. 
Engenheiros de software são treinados individualmente para um conjunto de objetivos 
pessoais, definindo os métodos a serem usados, medindo seus trabalhos, analisando os 
resultados, e ajustando os métodos para atingir seus objetivos. 
O PSP é uma estratégia para o desenvolvimento pessoal com o objetivo de aumento de produtividade.
Trabalhos experimentais foram iniciados em algumas corporações para verificar como 
engenheiros experientes poderiam reagir ao PSP e explorar a introdução de seus métodos. Foi 
verificado que os engenheiros de software geralmente são atraídos pela estratégia do PSP e 
encontram métodos que ajudam em seus trabalhos. Nas palavras de um engenheiro: “Isto não é 
para a empresa, é para mim”. O leitor interessado pode obter informações adicionais em [SEI] .
O PSP aplica princípios de processo para o trabalho do engenheiro de software por:
 » Fornecer um padrão de processo pessoal definido;
 » Introduzir uma família de medidas de processo;
 » Usar essas medidas para trilhar e avaliar o desempenho;
 » Se esforçar para obter critérios de qualidade e melhorar os objetivos.
Usando o PSP, engenheiros:
 » Desenvolvem um plano para todo o projeto;
 » Registram seu tempo de desenvolvimento;
 » Trilham seus defeitos;
 » Mantêm dados de um projeto em relatórios resumidos;
 » Usam esses dados para planos de projetos futuros;
 » Analisam dados que envolvem seus processos a fim de aumentar suas performances.
17
Visão crítica sobre controle de qualidade de software
O grande problema no controle de qualidade de software é ainda a falta de consciência de 
muitas empresas e profissionais que lidam com sistemas complexos em adotarem uma política 
de qualidade nos trabalhos a serem desenvolvidos.
Como prova disso, uma pesquisa realizada em 1995 pelo Subprograma Setorial da Qualidade 
e Produtividade em Software (SSQP/SW), no qual foi indicado que [CESAR97]:
 » Apenas 38,9% das empresas incluem sistematicamente metas ou diretrizes para qualidade 
em seus planos;
 » 25,1% delas coletam sistematicamente indicadores de qualidade de seus produtos e serviços;
 » Apenas 11,5% têm um programa de qualidade total implantado;
 » A grande maioria (85,9%) não conhece o modelo CMM;
 » 66,6% não adota nenhum procedimento específico de garantia da qualidade do produto 
de software;
 » A avaliação de desempenho dos funcionários é feita periodicamente em apenas 16,4% 
das empresas; 54,1% delas disseram fazê-la informalmente.
O importante não é o modelo a ser seguido. Quando o objetivo é otimizar a qualidade do software, 
deve-se ter cuidado, porém, em definir certos limites para os resultados a serem alcançados. 
A criação de software com qualidade requer um esforço tanto no nível financeiro quantono 
nível de conscientização das pessoas envolvidas no processo, sem, no entanto, sairmos da órbita 
em que o cliente é o termômetro da qualidade de um determinado produto.
Mesmo se o produto (software) alcançar grande parte dos requisitos de qualidade, mas 
ultrapassar uma data que seja de vital importância para o cliente, o produto não terá qualquer 
serventia e, por isso, deve-se ter compromisso com prazos e outras coisas mais e, em certos 
casos, é desejável restringir o escopo da qualidade (partindo do máximo da qualidade para uma 
qualidade muito boa) a ser atingida, a fim de satisfazer as necessidades do cliente. 
Esta é uma visão realística de encarar a qualidade de software nos sistemas a serem desenvolvidos.
18
Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação)
Material Complementar
Para aprofundar seus estudos sobre CMM, consulte os sites e as seguintes referências:
 9 http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf
 9 http://www.spinsp.org.br/ 
 9 http://ibpi.org/standard/isoiec-15504/ 
GAMMA, Erich. Padrões de projeto: soluções reutilizáveis de software orientado a objetivos. 
Porto Alegre: Bookman, 2000. 
SOMMERVILLE, Ian. Engenharia de software. 8.ed. São Paulo: Pearson Addison-
Wesley, 2007.
http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf
http://www.spinsp.org.br/ 
http://ibpi.org/standard/isoiec-15504/ 
19
Referências
FERNANDES, Aguinaldo Aragon. http://www.redepro.rs.gov.br/docs/11177116862Seminario_
redepro_palestra_1.pdf. Acesso em: 22 jul. 2010.
GAMMA, Erich. Padrões de projeto: soluções reutilizáveis de software orientado a objetivos. 
Porto Alegre: Bookman, 2000. 
GOMES, Nelma S. Qualidade de Software - Uma Necessidade. Artigo obtido em fev. 
2003 em: www.esaf.fazenda.gov.br/cst/arquivos/Qualidade_de_Soft.pdf.
MCCALL J.; RICHARDS P.; WALTERS, G. Factors in Software Quality (3 vols.), NTIS AD-
AO49-014, 015, 055, Nov. 1977.
PAULA FILHO, Wilson de Pádua. Engenharia de software: fundamentos, métodos e padrões. 
3.ed. Rio de Janeiro: LTC, 2005. 
PRESSMAN, Roger S. Engenharia de software. 6.ed. Porto Alegre: Bookman, 2006.
_______. Software Engineering, A Practicioners Approach, McGraw-Hill.
RAKITIN, Steven R. Software Verification and Validation: a Practitioner’s Guide. Artech 
House, 1997.
RESENDE, Denis Alcides. Engenharia de software e sistemas de informação. 3.ed. Rio 
de Janeiro: Brasport, 2005.
SOMMERVILLE, Ian. Engenharia de software. 8.ed. São Paulo: Pearson Addison-Wesley, 2007.
[SEI2000] Sei, An Overview of Capability Maturity Model Integration (CMMI) – Version 
1.0, Tutorial presented at SIMPROS 2000 [23], 2000.
[SEI2002a] Sei, Web Site do software Engineering Institute – SEI, http://www.sei.cmu.
edu/ (CMMI Models available at www.sei.cmu.edu/cmmm).
[ISO9001:2000] International Standard Organization Certification for IMS Company.
[ISO12207:2000] International Standard Organization. ISO/IEC 12207 Amendement: 
Information Technology – Amendement to ISO/IEC 12207, versão PDAM 3, novembro 2000.
http://www.redepro.rs.gov.br/docs/11177116862Seminario_redepro_palestra_1.pdf
http://www.redepro.rs.gov.br/docs/11177116862Seminario_redepro_palestra_1.pdf
www.esaf.fazenda.gov.br/cst/arquivos/Qualidade_de_Soft.pdf
http://www.sei.cmu.edu/
http://www.sei.cmu.edu/
www.sei.cmu.edu/cmmm
20
Unidade: CMM - Capability Maturity Model (Modelo de Maturidade em Capacitação)
Anotações
www.cruzeirodosulvirtual.com.br
Campus Liberdade
Rua Galvão Bueno, 868
CEP 01506-000
São Paulo SP Brasil 
Tel: (55 11) 3385-3000
http://www.cruzeirodosulvirtual.com.br
Qualidade de 
Software
Capability Maturity Model – Integration (CMMI) (Modelo de 
Maturidade em Capacitação – Integração)
Material Teórico
Responsável pelo Conteúdo:
Prof. Ms. Douglas Almendro
Revisão Textual:
Prof. Ms. Luciano Vieira Francisco
5
•	Introdução
•	CMMI-DEV
•	A representação contínua
•	Áreas de processo
A ideia principal é mostrar a descrição desse modelo de maturidade de integração. Nesta 
Unidade você verá os estágios de maturidade pelos quais passam as organizações enquanto 
evoluem em seus ciclos de desenvolvimento de software, através de avaliação contínua, 
identificação de problemas e ações corretivas. Este caminho de melhoria é definido por 
níveis de maturidade, que estudaremos em nossas aulas.
Nesta Unidade será explanado o conceito de CMMI, passo que 
lhe levará ao entendimento da certificação dadas aos softwares 
e que é utilizada no mercado, então fique atento(a) a todos os 
detalhes desta Unidade.
A mesma atenção vale aos exemplos e às atividades propostas, 
bem como aos respectivos prazos de entrega. 
Capability Maturity Model – Integration 
(CMMI) (Modelo de Maturidade em 
Capacitação – Integração)
6
Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração)
Contextualização
Os processos e o desenvolvimento de soluções com engenharia de software são o foco 
do CMMI. Dada sua estrutura e abrangência, pode-se até dizer que o CMMI “poderia” ser 
utilizado para outros negócios que não “software”. Ou seja, inúmeras de suas práticas podem 
ser empregadas em projetos de construção civil, administração, marketing e diversos outros.
O CMMI colabora na organização e aprimoramento de processos, tornando-os mais maduros 
e eficientes. Os modelos de capacidade e maturidade atingidos em seus níveis ajudam a prever 
o comportamento de determinado processo diante do cenário ao qual o projeto se encontra. 
Em resumo, torna-se possível saber se o projeto vai ou não dar certo.
7
Introdução
Há anos se tornou vital fazer software com qualidade em um curto prazo de tempo. Com isso 
empresas adotam medidas voltando-se para a redução de custos, qualidade e diminuição de defeitos 
do produto final, satisfação dos envolvidos da equipe, usuários e clientes. Essas medidas utilizadas 
têm como principal objetivo diminuir os riscos e os possíveis fracassos de um projeto.
O modelo Capatibility Maturity Model – Integration (CMMI), em português Modelo 
de Maturidade em Capacitação – Integração, criado pelo Software Enginering Institute (SEI), 
em português Instituto de Engenharia de Software, como inúmeros outros modelos utilizados, 
é uma forte ferramenta para o planejamento e gerenciamento de aquisições, desenvolvimento, 
manutenção e suporte do produto.
Esse modelo tem como missão auxiliar empresas e organizações na prestação de serviços, 
aquisições e, principalmente, no desenvolvimento de produtos, visando a melhoria de seus 
processos internos, considerando desde os processos que são extremamente imprevisíveis e 
futuramente podem acarretar no fracasso do projeto, e modificando-os para que se tornem 
processos bem estabelecidos e seguros, garantindo assim o sucesso do projeto.
Ao longo do tempo foram realizados ajustes no modelo CMMI. Em 27 de outubro de 2010 
foi lançada a versão atual do CMMI (versão 1.3), que possui três modelos:
 » CMMI para Desenvolvimento (CMMI-DEV);
 » CMMI para Aquisição (CMMI-ACQ);
 » CMMI para Serviços (CMMI-SVC).
CMMI-DEV
O CMMI para desenvolvimento tem a missão de melhorar processos que são destinados à 
elaboração de produtos e serviços. É composto pelas melhores práticas de desenvolvimento e 
manutenção do produto final.
O modelo CMMI-DEV possui características de Engenharia de Sistemas, Engenharia de Software, 
Gestão de Projetos, entre outras áreas, além disso, é amplamente utilizado nos setores bancários, 
hardware de computadores, softwares e indústria automobilística, para citar alguns exemplos.
CMMI-ACQ
Neste modelo de CMMI para aquisição o enfoque esta em atividades correlacionadas à 
prestação de serviços conjuntamente à aquisição de desenvolvimento de produtos.
Este modelo contém práticas de Gestão de Projetos, Gestão de Processos e Engenharia de 
Aquisição, onde é utilizado na aquisição e gestão de fornecedores. 
8
Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração)Empresas dos setores aeroespacial, software, defesa, entre outras são o público-alvo desse 
tipo de modelo.
CMMI-SVC
Este modelo é aplicado em atividades de gestão e também prestação de serviços. Nesse estão 
contidas práticas de Gestão de Serviços, Gestão de Projetos, entre outras áreas.
Organizações relacionadas à educação, saúde, hotelaria e telecomunicações são as principais 
usuárias desse modelo.
O CMMI é uma evolução de diversos outros modelos, comumente explicado em dois tipos 
de representações:
 » A primeira é a representação contínua, a qual é similar à norma onde se define o 
processo de desenvolvimento de software chamada ISO/IEC 15504, onde é separada 
por níveis de capacidade para cada processo. O modelo CMMI não foi criado a partir 
da norma ISO/IEC 15504, porém, são dados como modelos compatíveis;
 » A segunda é a representação por estágios, onde se define um caminho para o 
aperfeiçoamento da organização, dividida em áreas e descrita em cinco diferentes 
níveis de maturidade.
Na representação contínua a empresa tem a liberdade de escolha para aplicar os processos 
de acordo com suas necessidades e os objetivos que pretende alcançar, possibilitando processos 
com diferentes níveis. É adequado usar a representação contínua quando a empresa quer 
converter apenas alguns processos, tornando-os mais maduros.
Essa representação é dividida em seis níveis, os quais são chamados de incompleto; realizado 
(ou executado); gerenciado; definido; gerenciado quantitativamente; otimizado. 
A representação contínua
Fonte: Falbo (2008).
Figura 1 – Níveis da representação contínua.
9
Especificando-os, temos:
 » Nível 0: Incompleto – esse nível retrata um processo que comumente não é executado, 
ou é executado parcialmente;
 » Nível 1: Realizado (ou executado) – o processo deve ser executado com o objetivo 
de completar as tarefas necessárias para a execução de um processo;
 » Nível 2: Gerenciado – é o planejamento da execução dos processos, onde a equipe do 
projeto faz a comparação do que foi planejado com o que foi efetivamente executado;
 » Nível 3: Definido – é construído tomando a direção do processo que já existe, porém 
é sustentada uma descrição do processo;
 » Nível 4: Gerenciado quantitativamente – o processo é gerenciado quantitativamente 
por estudos estatísticos;
 » Nível 5: Otimizado – este nível é adaptado para que as necessidades da 
organização sejam plenamente supridas através da alteração e adaptação do 
processo gerenciado quantitativamente.
A representação por Estágios
Nesta representação a sequência é predeterminada e deve ser seguida rigorosamente, pois 
cada estágio depende diretamente do anterior. Divida em cinco níveis de maturidade, pode ser 
assim esquematizada:
Nível 1 – inicial:
O nível inicial pode ser facilmente considerado como um estágio caótico e talvez o mais 
complexo do projeto, onde os processos são mal definidos e os funcionários acabam dedicando 
mais tempo na correção das atividades realizadas.
Nessa fase inicial é necessário que os profissionais se empenhem e deem o máximo de si, 
pois o que salvará o projeto e dará um empurrão inicial será a união dos esforços individuais.
Figura 2 – Níveis da representação por estágios.
Fonte: O QUE É CMMI? ([20--]).
10
Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração)
Essa fase cobra redobrada atenção às possíveis situações:
 » Deficiências no planejamento;
 » Cronogramas impossíveis de cumprimento;
 » Documentação pouco confiável;
 » Ausência de controle de requisitos e avaliação do cliente.
O processo de software é tratado como uma caixa preta, pois nesse momento apenas é 
possível visualizar as entradas e os produtos finais, de modo que todo o trâmite nesse ínterim 
fica impossibilitado de ser visualizado.
Nível 2 – Gerenciado:
Nesta etapa são discutidos e estabelecidos os processos básicos do gerenciamento do projeto, 
como planejamento de custos, aquisições e prazos. Na maioria dos casos a organização é disciplinada, 
porém, por certas resistências pode ocorrer resistência para a implantação de mudanças.
Em inúmeros casos usar projetos que obtiveram sucesso no passado é uma grande ideia, 
levando ao bom encaminhamento e término seguro do projeto.
O processo é visto como diversas caixas pretas interligadas, possibilitando a visualização em 
alguns pontos. Esses pontos são chamados de marcos do projeto.
O avanço do projeto é controlado mediante a evolução dos requisitos. A cada marco realizado 
são aplicadas avaliações onde o progresso e a construção do software são notados e ponderados.
Nível 3 – Definido:
Todas as atividades de um processo padrão de software (ligadas a gerenciamento ou 
engenharia de software) passam pelas etapas de documentação, padronização e integração.
No desenvolvimento e na manutenção do software são utilizadas versões aprovadas ou 
adaptadas desses processos, onde são enquadradas para os requerimentos e características do 
projeto em desenvolvimento.
Figura 3 – Processo de software segundo o nível 1.
Fonte: Falbo (2008).
Figura 4 – Processo de software segundo o nível 2.
Fonte: Falbo (2008).
11
Nesta etapa as funções de cada envolvido no projeto estão bem definidas e claras. Com 
isso, a organização utilizará processos estabelecidos e padronizados. Assim, a porcentagem de 
sucesso do projeto é aumentada significativamente e os riscos diminuem, pois a saída de um 
membro da equipe, por exemplo, pode ser facilmente suprida, dado que existem planos de 
riscos definidos e o impacto de qualquer imprevisto ocorrido se torna mínimo.
Nível 4 – Gerenciado quantitativamente (removido da versão 1.3):
Nesta fase são realizados relatórios estatísticos onde são visualizados os detalhes das métricas 
utilizadas no processo de software. A partir disso são estudados tanto o processo como o produto 
de software, onde são quantitativamente avaliados e controlados.
A qualidade é realizada por um grupo que é apenas alocado para esse tipo de tarefa, onde 
rotineiramente analisam a qualidade e aprimoram o software.
Nível 6 – Otimização (removido da versão 1.3):
O contínuo aperfeiçoamento do processo é estabelecido através de sua avaliação quantitativa 
e também pela implantação de tecnologias e ideias inovadoras.
Nesta etapa os processos estão bem definidos e a compreensão sobre esses ultrapassa os processos 
praticados, tornando facilmente compreensíveis os efeitos causados em qualquer possível alteração. 
Além disso, as tecnologias e melhorias são implantadas como parte de rotinas diárias.
Figura 5 – Processo de software segundo o nível 3.
Fonte: Falbo (2008).
Figura 6 – Processo de software segundo o nível 4.
Fonte: Falbo (2008).
Figura 7 – Processo de software segundo o nível 5.
Fonte: Falbo (2008).
12
Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração)
Nesse tipo de representação a maturidade organizacional é medida pelo conjunto inteiro de 
seus processos. Assim, a empresa necessita que todos seus processos sejam classificados como 
nível 2 para que a instituição seja certificada como uma empresa nível 2.
Com isso, pode-se supor que uma empresa possui 22 processos, onde 21 são classificados 
como nível 4 e o processo restante é classificado como nível 3. Com tal cenário essa empresa 
não poderá ser certificada como nível 4 de maturidade, pois só poderá ser classificada como tal 
se todos os seus processos atingirem o nível 4.
A utilização do modelo por estágio é realizada quando a empresa já faz uso de algum 
outro modelo de maturidade por estágios. Instituições empresariais fazem uso desse tipo de 
representação quando têm a pretensão de alcançar certo nível de maturidade para poderem ser 
comparadas com outras empresas do ramo, ou quando pretendem trazer a experiência e o nível 
de conhecimento ganhos por outras empresas, para então utilizar em suas áreas de aplicação. 
Áreas de processo
O modelo CMMI versão 1.2 (CMMI-DEV)contém 22 áreas de processo. Em sua representação 
por estágios, as áreas são divididas da seguinte forma:
Nível 1 – Inicial:
Não possui áreas de processo.
Nível 2 – Gerenciado:
 » Gerenciamento de requisitos – processo onde são identificadas inconsistências dos 
requisitos e dos produtos de trabalho, onde deve-se realizar a gestão desses;
 » Planejamento de projeto – criar e concretizar planos específicos para aplicação nos projetos;
 » Acompanhamento e controle de projeto – para o gerenciamento eficaz é preciso 
providenciar informações suficientes;
 » Gerenciamento de acordo com fornecedores – fase onde são realizadas negociações 
de acordos de produtos, fornecedores e também toda a gestão das aquisições;
 » Medição de análise – são realizadas medições e, a partir dessas, são executados 
estudos para a verificação de desvios ou variações fora do planejamento;
 » Garantia da qualidade de processo e produto – processo onde é realizada a 
verificação da garantia do projeto, visando garantir se o produto possui os requisitos e 
qualidade desejados;
 » Gerência de configuração – processo onde é mantida a integridade dos produtos 
do projeto.
13
Nível 3 – Definido:
 » Desenvolvimento de requisitos – fase onde é realizada a análise e o desenvolvimento 
dos requisitos para a composição do produto;
 » Solução técnica – processo onde é desenvolvido e implementado o conjunto de 
soluções para os requisitos apontados;
 » Integração de produto – para garantir a entrega do produto, nesta etapa é realizada 
a junção de componentes, funções, módulos e outros produtos;
 » Verificação – processo onde é avaliado se o desenvolvimento do produto é 
realizado corretamente;
 » Validação – realização da demonstração do produto no ambiente definido, 
demonstrando se esse possui todas as especificações e requisitos definidos;
 » Foco de processo organizacional – realização de estudo para a verificação das 
deficiências que os processos e a organização possuem, seguido de um planejamento e 
implantação de melhorias baseadas no estudo elaborado;
 » Definição de processo organizacional – estabelecimento dos padrões da organização;
 » Treinamento organizacional – para a melhor realização de suas funções, os 
envolvidos do projeto devem estar cientes e bem treinados sobre suas funções. Para 
tanto, são ministrados cursos, palestras e reuniões para que os funcionários possam 
adquirir conhecimento e realizar de forma eficaz suas tarefas e atividades;
 » Gerenciamento integrado de projeto – onde é trabalhada a comunicação entre as 
equipes envolvidas no projeto;
 » Gerenciamento de riscos – nesse processo são antecipadamente gerenciados os riscos 
que podem vir a acontecer, funcionando como um plano B ou uma válvula de escape;
 » Análise de decisão e resolução – a tomada de decisões é um fato importante no 
projeto. Nesse processo são realizados os critérios que se devem seguir para uma 
tomada de decisão.
Nível 4 – Quantitativamente gerenciado:
 » Desempenho de processo organizacional – esse processo possui a função de 
estabelecer linhas de base e os modelos para a gestão quantitativa, além de garantir um 
entendimento do conjunto de processos da organização;
 » Gerenciamento quantitativo de projeto – onde são gerenciados quantitativamente 
os processos definidos e que foram realizados para o alcance da qualidade e desempenho.
Nível 5 – Em otimização:
•	 Gestão de processo organizacional – criar condições que comprovem que houve 
melhorias no desempenho dos processos;
•	 Análise casual e resolução – processo onde são identificados os problemas e defeitos 
do produto, assim como são planejadas ações para a prevenção de problemas futuros.
14
Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração)
Material Complementar
Para aprofundar seus estudos sobre CMMI, acesse os sites listados abaixo, assim como tome 
contato com as seguintes referências bibliográficas:
A TECNOLOGIA EVOLUI muito rápido: desafios, moral e ética. 2 jun. 2014. Disponível 
em: <http://www.spinsp.org.br>. Acesso em 26 jul. 2014.
GAMMA, E. Padrões de projeto: soluções reutilizáveis de software orientado a objetivos. 
Porto Alegre, RS: Bookman, 2000. 
ISO/IEC 15504. IBPI, [20--]. Disponível em: <http://ibpi.org/standard/isoiec-15504>. 
Acesso em 26 jul. 2014.
MARQUES, H. M. et al. Fábricas de software e o processo de desenvolvimento segundo 
a experiência da FábricaUm. CIN/UFPE, [20--]. Disponível em: <http://www.cin.ufpe.
br/~in953/olds/relatorios/fabrica1.pdf>. Acesso em 26 jul. 2014.
SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Pearson Addison-Wesley, 2007.
http://www.spinsp.org.br
http://ibpi.org/standard/isoiec-15504
http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf
http://www.cin.ufpe.br/~in953/olds/relatorios/fabrica1.pdf
15
Referências
CMMI para Desenvolvimento (CMMI-DEV) – versão 1.2. Pittsburgh, PA, USA: Carnegie 
Mellon Software Engineering Institute, 2006. Disponível em: <http://cmmiinstitute.com/assets/
CMMI-DEV_1-2_Portuguese.pdf>. Acesso em: 26 jul.2014.
FALBO, R. de A. Qualidade de processo de software CMMI. DI/UFES, 2008. Disponível em: 
<http://webcache.googleusercontent.com/search?q=cache:fM1wEU5ne20J:www.inf.ufes.br/~falbo/
files/Aula%252010%2520-%2520Qualidade%2520de%2520Processo%2520-%2520CMMI.
ppt+&cd=2&hl=pt-BR&ct=clnk&gl=br>. Acesso em: 26 jul.2014.
FIGUEIREDO, E. O modelo CMMI. DCC/UFMG, [20--]. Disponível em: <http://homepages.
dcc.ufmg.br/~figueiredo/disciplinas/aulas/cmmi_v01.pdf>. Acesso em: 26 jul.2014.
GOMES, P. R. M.; RIBEIRO, R. M. C. Introdução a CMMI. LDS/UFCG. Campina Grande, 
PB, 29 set. 2008. Disponível em: <http://www2.lsd.ufcg.edu.br/~renato/CMMI.pdf>. Acesso 
em: 26 jul.2014.
GROFFE, R. J. Maturidade no desenvolvimento de software: CMMI e MPS-BR. Devmedia, 
[20--]. Disponível em: <http://www.devmedia.com.br/maturidade-no-desenvolvimento-de-
software-cmmi-e-mps-br/27010>. Acesso em: 26 jul.2014. 
GUIMARÃES, C. F. O CMMI e o gerenciamento da qualidade de projetos de software. 
O Gerente, 31 jan. 2011. Disponível em:<http://ogerente.com.br/rede/projetos/gerenciamento-
da-qualidade-de-projetos>. Acesso em: 26 jul.2014.
O QUE É CMMI? ISD Brasil, [20--]. Disponível em: <http://www.isdbrasil.com.br/o-que-e-
cmmi.php>. Acesso em: 26 jul.2014.
TRISTACCI, C. CMMI. [20--]. Disponível em: <http://www.carlostristacci.com.br/blog/cmmi>. 
Acesso em: 26 jul.2014.
http://cmmiinstitute.com/assets/CMMI-DEV_1-2_Portuguese.pdf
http://cmmiinstitute.com/assets/CMMI-DEV_1-2_Portuguese.pdf
http://webcache.googleusercontent.com/search?q=cache:fM1wEU5ne20J:www.inf.ufes.br/~falbo/files/Aula%252010%2520-%2520Qualidade%2520de%2520Processo%2520-%2520CMMI.ppt+&cd=2&hl=pt-BR&ct=clnk&gl=br
http://webcache.googleusercontent.com/search?q=cache:fM1wEU5ne20J:www.inf.ufes.br/~falbo/files/Aula%252010%2520-%2520Qualidade%2520de%2520Processo%2520-%2520CMMI.ppt+&cd=2&hl=pt-BR&ct=clnk&gl=br
http://webcache.googleusercontent.com/search?q=cache:fM1wEU5ne20J:www.inf.ufes.br/~falbo/files/Aula%252010%2520-%2520Qualidade%2520de%2520Processo%2520-%2520CMMI.ppt+&cd=2&hl=pt-BR&ct=clnk&gl=br
http://homepages.dcc.ufmg.br/~figueiredo/disciplinas/aulas/cmmi_v01.pdf
http://homepages.dcc.ufmg.br/~figueiredo/disciplinas/aulas/cmmi_v01.pdf
http://www2.lsd.ufcg.edu.br/~renato/CMMI.pdf
http://www.devmedia.com.br/maturidade-no-desenvolvimento-de-software-cmmi-e-mps-br/27010
http://www.devmedia.com.br/maturidade-no-desenvolvimento-de-software-cmmi-e-mps-br/27010
http://ogerente.com.br/rede/projetos/gerenciamento-da-qualidade-de-projetos
http://ogerente.com.br/rede/projetos/gerenciamento-da-qualidade-de-projetos
http://www.isdbrasil.com.br/o-que-e-cmmi.php
http://www.isdbrasil.com.br/o-que-e-cmmi.php
http://www.carlostristacci.com.br/blog/cmmi
16
Unidade: Capability Maturity Model – Integration (CMMI) (Modelo de Maturidade em Capacitação – Integração)
Anotações
www.cruzeirodosulvirtual.com.br
Campus Liberdade
Rua Galvão Bueno, 868
CEP 01506-000
São PauloSP Brasil 
Tel: (55 11) 3385-3000
http://www.cruzeirodosulvirtual.com.br
Qualidade de Serviços
ISO - International Organization for Standardization
Material Teórico
Responsável pelo Conteúdo:
Prof. Ms. Douglas Almendro
Revisão Textual:
Prof. Ms. Claudio Brites
5
•	Organismos Normativos
•	ISO
Nesta unidade, realizaremos estudos sobre os modelos da ISO. A ideia principal é mostrar as 
normas e as descrições desses modelos. Veremos os órgãos normativos e as séries ISO sobre 
os desenvolvimentos de software, seus regulamentos e ações corretivas. 
Não deixe de assistir, também, a apresentação narrada do conteúdo e de alguns 
exercícios resolvidos.
Finalmente, e o mais importante, fique atento às atividades avaliativas propostas e ao prazo 
de realização e envio delas. 
Nesta unidade, serão explanados conceitos relacionados à 
Organização Internacional para Padronização, a ISO. Este 
passo nos levará ao entendimento das certificações dadas a 
softwares utilizadas no mercado.
ISO - International Organization for 
Standardization
6
Unidade: ISO - International Organization for Standardization
Contextualização
Qualquer organização gostaria de melhorar a forma pela qual opera – quer isso signifique 
melhorar a sua participação no mercado, reduzir seus custos, gerenciar o risco mais eficazmente, 
ou ampliar a satisfação dos clientes. Um sistema de gestão lhe dá a estrutura necessária para 
monitorar e melhorar o desempenho em qualquer área de seu interesse.
A ISO 9001 é de longe a estrutura de qualidade melhor estabelecida, sendo utilizada 
atualmente por mais de 750 mil organizações em 161 países. Ela define o padrão não só para 
sistemas de gestão de qualidade, mas para sistemas de gestão em geral.
Ela ajuda todos os tipos de organizações a obterem sucesso através de uma melhora na 
satisfação de seus clientes, na motivação dos colaboradores, entre outras melhorias contínuas.
7
Organismos Normativos
Muito antigamente, os produtos em geral eram construídos de maneira artesanal – o oleiro 
pegava a argila e transformava ela em vasos. Pegava-se a matéria bruta e a transformava em 
produto final. Esse modo de fazer as coisas impossibilitava que os produtos fossem padronizados 
–era quase impossível comprar dois vasos idênticos. Com o passar do tempo, com a revolução 
industrial, produtos começaram a ser construídos de modo padronizado, em um sistema fabril em 
que poucas empresas têm acesso à matéria bruta, pois, na maioria das vezes, uma empresa compra 
vários produtos de outras empresas e, com essas “partes”, compõe ela mesmo um outro produto 
final. Com essa linha de montagem rígida e esquematizada os órgãos normativos foram criados. 
Organismos normativos são instituições que ditam regras criadas com base no trabalho de 
especialistas. Essas regras servem de base para:
 » realizar especificações de produtos;
 » organizar o fornecimento de serviços
 » a elaboração da legislação em diversos países.
A hierarquia de órgãos regulamentadores é feita da seguinte maneira:
 » Órgão Internacional: 
•	 ISO – Organização Internacional para Padronização;
 » Órgãos Nacionais: sendo eles:
•	 ABNT – Associação Brasileira de Normas Técnicas – Brasil;
•	 ANSI – American National Standards Institute – Estados Unidos;
•	 IPQ – Instituto Português de Qualidade – Portugal;
•	 IANORQ – Instituto Angolano de Normalização e Qualidade – Angola;
 » Órgãos Regionais: 
•	 o AMN – Associação Mercosul de Normalização – Mercosul;
•	 o COPANT – Comissão Pan-Americana de Normas Técnicas – Continente Americano.
Quando uma organização pretende verificar se seu produto atende a todas as regras de uma 
norma técnica, deve-se respeitar a hierarquia acima.
Com isso, digamos que a empresa X deseja que seu Sistema de Gestão de Qualidade seja 
qualificado como sendo ISO-9000. Essa empresa deve obter essa certificação por meio de 
organismos de certificação que são conhecidos internacionalmente. Como exemplo, podem ser 
citadas organizações como: BRTUV, Fundação Carlos Alberto Vanzolini, entre outras.
8
Unidade: ISO - International Organization for Standardization
ISO
Em 23 de Fevereiro de 1947, na cidade de 
Genebra, Suíça, foi fundada a Organização 
Internacional para Padronização – ISO . A sigla 
dessa instituição deveria ser IOS e não ISO, 
porém, pela diversidade de línguas, os fundadores 
decidiram que a organização deveria ser conhecida 
por uma só sigla, a qual provém da palavra isos que 
em grego significa igualdade.
Em seu início, a ISO não confeccionava normas 
internacionais, mas sim recomendações. Esses 
documentos eram criados a partir de normas 
nacionais que existiam na época.
O crescimento da organização aconteceu 
rapidamente, na tabela abaixo podemos ter uma 
noção de seu grande crescimento.
Tabela 1
Ano Documentos Produzidos
1952 5
1957 57
1965 1.400
2004 14.941
A ISO é a organização que reúne a comunidade 
de padronização e cria normas de qualidade. Ela está 
presente em mais de 163 países, conforme levantamento 
de 2012, quando já possuía um total de mais de 19.000 
normas publicadas.
IEC
Comissão Eletrotécnica Internacional – IEC – é a 
organização encarregada das padronizações de tecnologias 
elétricas e de tecnologias associadas a essas. Sua sede, 
assim como a da ISSO, está localizada em Genebra, Suíça, 
e foi fundada no ano de 1906.
9
Série ISO 9000
A série ISO 9000 contém a união de cinco normas, são as 
normas: ISO 9000, 9001, 9002, 9003 e 9004. Essas normas 
foram oficializadas em 1987 e desde então vêm sendo 
usadas. Essa série não é considerada como um conjunto 
de normas revolucionárias, pois elas foram baseadas em 
normas britânicas – como a BS5750 e outras que já existiam 
na época.
A função da série ISO 9000 é a satisfação do cliente pela 
transparência do bom andamento do projeto e de todos os 
estágios que mostram a qualidade da empresa.
Qualquer tipo de empresa pode utilizar as normas ISO 9000 
– seja ela pequena ou grande, privada ou governamental.
A série ISO 9000 serve para qualificar o sistema de gestão de qualidade da empresa, 
garantindo que produtos fabricados pelo processo dessa empresa tenham qualidade superior 
aos produtos de outras empresas. Possuir a qualificação ISO 9000 significa que os produtos 
criados por certo processo irão possuir os mesmos padrões de qualidade.
Uma empresa qualificada como ISO 9000 deve possuir alguns princípios básicos, alguns 
deles são: a documentação de fácil acesso; equipamentos em bom estado de conservação 
e manutenção; auditorias internas. Além disso, a empresa deve estar constantemente em 
autoanálise, tomando medidas preventivas e corretivas para o bom funcionamento dos processos 
e para que seja garantido o sucesso dos projetos. 
Com essas ações, a empresa fica possibilitada de atender a demanda de pedidos, possui uma 
documentação concreta e garante a qualidade de seus produtos.
ISO 9001:2008
Pelas constantes revisões e atualizações, adotou-se o padrão de escrever o nome da norma 
e o ano de sua última atualização separados por dois pontos, com isso, a ISO 9001:2008 nada 
mais é do que a atualização do ano de 2008 da norma ISO 9001.
Essa norma utiliza uma abordagem de melhoria no desenvolvimento e na implementação 
de um sistema de gestão de qualidade, visando obter maior grau de satisfação do cliente no 
atendimento de seus objetivos.
A ISO 9001 possui diversas vantagens para a empresa que a adota, dentre essas vantagens 
podemos citar:
 » Melhoria em processos de gerenciamento de riscos, aumentando a porcentagem de 
sucesso do projeto;
 » Redução do desperdício, por conta do bom planejamento, de uma documentação 
ampla e do foco nos processos operacionais;
10
Unidade: ISO - International Organization for Standardization
 » Melhoria em processos intrassetoriais, nos quais a comunicação é altamente valorizada, 
expondo os possíveis problemas que as equipes envolvidas no projeto possam sofrer 
(ou sofrem).
Em seguida, temos um modelo Planejar, Fazer, Checar, Agir – PDCA

Continue navegando