Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

U
N
ID
A
D
E
 4
CLASSES E objEtoS Em umL
Carga horária
Nove horas•	 	EAD.
Objetivo
Conhecer,	 identificar	 e	 modelar	 classes	 e	 objetos	 em	•	
diagramas	da	UML.
Conteúdos
Representação	 de	 Classes:	 nomenclatura,	 atributos,	•	
operações	e	relacionamentos.
Representação	de	Objetos.•	
Claretiano – Batatais74
Cursos de graduação
CRC		•	•	•		©	Análise e Projeto de Sistemas
UNIDADE 4
1 Introdução
Na	 unidade	 anterior,	 você	 conheceu	 os	 conceitos	 básicos	 de	 uma	 UML	 e	
compreendeu	todos	os	passos	para	organizar	um	diagrama	de	Caso	de	Uso.
Nesta	 unidade,	 você	 aprenderá	 a	 identificar	 e	modelar	 classes	 e	 objetos	 em	
diagramas	da	UML.	Além	disso,	você	estudará	em	detalhes	a	modelagem	das	classes,	que	
são	os	elementos	mais	importantes	da	Orientação	a	Objeto.
Problematizando o tema 
Como	 se	 configura	 uma	 classe	 de	 objetos	 em	 um	 domínio	 de	 estudo	 de	
determinado	 sistema?	 Por	 que	 as	 classes	 são	 tão	 importantes?	 É	 possível	 uma	 classe	
existir	 sozinha,	 ou	 ela	 pode	 se	 relacionar	 com	 outras?	 Reflita	 sobre	 estas	 questões,	
considerando	o	conhecimento	prévio	que	possui,	e	fique	atento	ao	texto	desta	unidade,	
buscando	a	resposta	para	elas.
2 IntroduzIndo os conceItos de classe, objeto, 
atrIbutos e métodos
Para	 iniciar	nosso	estudo	de	Análise	e	Projeto	Orientados	a	Objeto,	devemos	
entender	 o	 conjunto	 de	 informações	 específicas	 ao	 âmbito	 do	 projeto	 que	 desejamos	
desenvolver,	propondo	uma	solução	em	termos	de	software.	Esse	conjunto	é	chamado	de	
domínio do problema,	o	qual	é	composto	por	um	conjunto	de	objetos	que	têm	atributos	
e	comportamentos	específicos.	
Por	exemplo,	se	quisermos	propor	um	software	para	armazenar	uma	questão	
de	múltipla	escolha,	da	disciplina	Matemática,	do	professor	Paulo,	para	o	aluno	Joel,	o	
domínio	da	informação	será	o	conjunto	de	fatos	que	abrange	a	questão	de	múltipla	escolha	
da	disciplina,	o	professor	e	o	aluno.	
Nessa	situação,	teremos	os	seguintes	objetos	envolvidos:	questão	de	múltipla	
escolha;	 matemática;	 Paulo;	 Joel.	 Desta	 forma,	 percebemos	 que	 todos	 esses	 objetos	
possuem	atributos	 ou	elementos	descritivos	qualificadores	que	podem	ser	específicos	
para	 cada	 tipo	de	objeto.	Um	aluno,	por	exemplo,	possui	 os	atributos:	nome,	 idade	e	
número	da	matrícula.	
Os	objetos	identificados	no	domínio	do	problema	deverão	ser	manipulados	por	
meio	de	uma	coleção	de	funções,	também	chamadas	de	métodos,	operações	ou	serviços.	
Para	tanto,	será	preciso	inserir	dados	do	professor,	da	questão	e	do	aluno.	É	possível	que	
realizemos,	 também,	alguma	alteração	ou,	 ainda,	que	 tenhamos	que	excluir	 dados	de	
algum	objeto.	Dessa	forma,	os	métodos	identificados	no	domínio	do	problema	para	esses	
objetos	serão	os	seguintes:	inserir,	alterar	e	excluir.
Todavia,	além	da	questão	de	múltipla	escolha,	da	disciplina	Matemática	e	do	aluno	
Paulo,	é	possível	que,	com	o	passar	do	tempo,	sejam	registradas	outras	questões,	outras	
disciplinas	e	outros	alunos.	Portanto,	novos	objetos	poderão	eventualmente	ser	criados.	
Para	 resolver	 este	problema,	 vamos,	 inicialmente,	 categorizar	 os	 objetos	 em	
classes	e	em	subclasses.	
Você	saberia	definir	o	que	é	uma	classe?	Pois	bem,	uma	classe	é	um	conjunto	
de	objetos	que	compartilham	uma	estrutura	e	um	comportamento	comum.	Um	objeto	é	
simplesmente	uma	instância	de	uma	classe.	
Cursos de graduação
©	Análise e Projeto de Sistemas		•	•	•		CRC
Batatais – Claretiano 75
UNIDADE 4
 
Veja	que	a	Figura	1,	disposta	a	seguir,	representa	a	idéia	de	classe	como	gabarito	
para	instanciar	objetos.
Figura	1	Representação abstrata de uma classe.
	
Mas,	voltando	ao	nosso	problema	anterior,	as	classes	identificadas	para	ele	são:	
QUEsTõEs,	ALUNOs,	DisCiPLiNAs,	PROFEssOREs.
Ao	 inserir	 o	aluno	Paulo,	 criamos	ou	 instanciamos	um	novo	objeto	da	 classe	
ALUNOs.	 Ao	 criar	 outro	 novo	 aluno,	 por	 exemplo,	 Pedro,	 teremos	 outro	 objeto,	 que	
também	é	outra	instância	dessa	mesma	classe,	com	os	mesmos	atributos	e	métodos	dos	
outros	objetos	que	foram	criados	com	base	na	classe	ALUNOs.
A	utilização	do	conceito	de	classes	permite	que	o	Analista	de	sistemas	abstraia	
características	de	um	problema,	que	propicia	à	modelagem	a	capacidade	de	generalizar	
componentes	de	software a	partir	de	alguns	casos	específicos.	Por	exemplo,	em	um	dado	
caso,	identificamos	as	classes:	carro	de	passeio,	carro	esportivo	e	carro	rural.	Esses	três	
tipos	podem	ser	abstraídos	em	uma	classe	genérica	chamada	veículo.
É	possível,	também,	que	algum	objeto	tenha	que	se	comunicar	com	outro,	o	que	
pode	acontecer	por	diversas	razões.	Essa	comunicação	ocorre	por	meio	de	um	protocolo	
de	mensagens.	Mas,	não	se	preocupe	com	isso	neste	momento,	pois	este	assunto	será	
detalhado	na	próxima	unidade.	
3 conceItos fundamentaIs no paradIgma da orIentação 
a objetos
O	 paradigma	 da	 Orientação	 a	 Objetos	 apresenta	 os	 seguintes	 conceitos	
fundamentais:
identificação.1)	
Classificação.2)	
Herança.3)	
Polimorfismo.4)	
Encapsulamento.5)	
A	seguir,	observe,	de	maneira	detalhada,	a	descrição	desses	conceitos.
atenção!
Se encontrar dificuldades, não 
desanime. Entre em contato 
com seus colegas de curso e 
com seu tutor. Faça parte desta 
comunidade colaborativa de 
conhecimento.
Claretiano – Batatais76
Cursos de graduação
CRC		•	•	•		©	Análise e Projeto de Sistemas
UNIDADE 4
Identificação
Cada	 objeto	 tem	 identidade	 própria,	 ou	 seja,	 dois	 objetos	 são	 diferentes,	
mesmo	que	seus	dados	e	suas	operações	sejam	idênticos,	pois	dois	objetos,	mesmo	que	
idênticos,	não	ocupam	o	mesmo	lugar	no	espaço.	Essa	correspondência,	também,	existe	
em	um	sistema	computacional,	visto	que	cada	objeto	deverá	ocupar	um	endereço	único	
de	memória	e	possuir	um	nome	(identificador)	único.	Por	exemplo,	de	acordo	com	o	nosso	
problema,	o	objeto	Paulo	deverá	ser	único	para	o	sistema.	
Classificação
É	um	processo	inerente	ao	dia-a-dia	do	ser	humano.	se	você	parar	para	pensar,	
descobrirá	que	hoje	utilizou	o	processo	de	classificação	inúmeras	vezes.	Por	exemplo:
na	escolha	da	roupa	que	vestiu	(roupa	esporte,	social,	de	inverno,	de	verão	etc.);•	
na	escolha	do	alimento	que	ingeriu	etc•	 .	
Na	Orientação	a	Objetos,	classificar	significa	agrupar	objetos	em	classes,	uma	
vez	que	se	observou	que	eles	possuem	dados	e	operações	semelhantes.	
Portanto,	 o	 processo	 de	 classificação	 é	 importante	 dentro	 da	 Orientação	 a	
Objetos,	dado	que	é	por	meio	dessa	classificação	que	serão	criadas	as	classes	do	software.	
Conforme	vimos	em	um	exemplo	anteriormente,	os	objetos	do	software	serão	instanciados	
a	partir	das	classes	criadas.	
Herança
O	conceito	de	Herança	nada	mais	é	do	que	o	compartilhamento	de	atributos	
e	operações	entre	classes.	isso	acontece	a	partir	de	um	relacionamento	hierárquico.	Por	
exemplo,	uma	classe	pode	ser	definida	de	maneira	abrangente	(superclasse)	e	depois	ser	
refinada	em	subclasses.	Portanto,	há	uma	hierarquia	ou	subordinação	da	subclasse	para	a	
classe	mais	abrangente.	Atente-se	para	o	fato	de	que	as	propriedades	de	uma	superclasse	
não	precisam	ser	repetidas	em	uma	subclasse,	visto	que	elas,	automaticamente,	herdam	
todas	estas	propriedades.
Agora,	vamos	voltar	ao	exemplo	dos	alunos.	Poderíamos	generalizar	as	classes	
ALUNOs	 e	 PROFEssOREs	 na	 superclasse	 PEssOAs.	 Então,	 ALUNOs	 e	 PROFEssOREs	
seriam	as	subclasses.	Portanto,	a	classe	PEssOAs	é	a	classe	hierarquicamente	superior	
(superclasse),	 mais	 genérica,	 e	 as	 classes	 ALUNOs	 e	 PROFEssOREs,	 as	 classes	
hierarquicamente	inferiores,	mais	específicas	(subclasses).
Observe	que	a	classe	PEssOAs	possui	os	seguintes	atributos:	nome,	data	de	
nascimento	e	número	da	 identidade.	E	os	métodos	dessa	 classe	 são:	 inserir,	 alterar	e	
excluir	pessoas.	Baseados	nessa	classe,	criamos	a	subclasse	ALUNOs,	que,	por	sua	vez,	
herdaria	os	mesmos	atributos	e	métodos,	já	que	um	aluno	não	deixa	de	ser	uma	pessoa.	
Dessa	forma,	a	subclasse	ALUNOs	teria,	também,	outros	atributos	específicos	
de	 um	 aluno,	 como	 númeroda	matrícula	 e	 curso,	 e,	 além	 dos	métodos	 herdados	 da	
classe	PEssOAs,	teria	um	método	específico:	fazer	prova.	O	mesmo	vale	para	a	subclasse	
PROFEssOREs,	que	herda	os	atributos	e	os	métodos	da	classe	PEssOAs	e	poderia	ter	
atributos	específicos,	como,	por	exemplo,	a	sua	titulação,	e	um	método	específico	seria:	
montar	questão	de	múltipla	escolha.
Polimorfismo
Polimorfismo	 é	 uma	 palavra	 derivada	 do	 grego	 que	 significa	 muitas	 (poli)	
formas	(morfos).
atenção!
Você pode verificar no seu 
dia-a-dia que cada objeto 
tem identidade própria, na 
qual duas coisas, mesmo que 
exatamente iguais, não podem 
ser consideradas idênticas, pois, 
minimamente, não ocupam o 
mesmo lugar no espaço.
VocÊ sabIa Que...
A classificação somente é 
possível graças a nossa 
capacidade de abstração.
Cursos de graduação
©	Análise e Projeto de Sistemas		•	•	•		CRC
Batatais – Claretiano 77
 
UNIDADE 4
Em	Orientação	a	Objetos,	o	conceito	de	polimorfismo	significa	que	uma	mesma	
operação	pode	se	comportar	de	maneira	diferente,	dependendo	do	estímulo	recebido	e	
das	classes	nas	quais	se	encontra.	De	acordo	com	esse	conceito,	as	classes	derivadas	de	
uma	mesma	superclasse	podem	herdar	operações	que	tenham	comportamentos	diferentes	
em	cada	subclasse,	produzindo	resultados	diferentes,	dependendo	de	como	cada	objeto	
implementa	a	operação.
Veja	 o	 exemplo	 de	 uma	 superclasse	 APLiCAÇÃO,	 com	 um	método	 chamado	
“saldo”.	suponha	que	esta	superclasse	dê	origem	às	classes	POUPANÇA	e	RENDA	FixA.	
O	método	saldo	terá	comportamentos	diferentes	em	cada	classe.	Portanto,	no	ambiente	
polimórfico,	 todas	 as	 classes	 podem	 conter	 uma	mesma	 operação,	 mas	 ela	 pode	 ser	
implementada	por	métodos	particulares	em	cada	classe.
Encapsulamento
Lembrando	 do	 significado	 da	 palavra	 cápsula,	 que	 significa	 “recipiente”,	
compreendemos	 que	 encapsular	 é	 como	 uma	 operação	 na	 qual	 guardamos	 algo,	
promovendo	o	isolamento	desse	objeto,	o	que	possibilita	a	proteção	do	objeto	em	relação	
ao	comportamento	de	outro	objeto	implementado,	e	isso	é	uma	vantagem	em	termos	de	
proteção	e	propagação	de	erros,	favorecendo	até	a	diminuição	no	esforço	de	manutenção.	O	
encapsulamento	também	promove	a	ocultação	do	usuário	dos	detalhes	de	implementação	
do	objeto.	
 
4 classes
Estudaremos	agora,	com	mais	profundidade,	um	dos	elementos	mais	importantes	
da	Orientação	a	Objetos:	as classes.
Como	você	viu	anteriormente,	em	uma	visão	simplificada,	é	como	se	uma	classe	
fosse	um	gabarito	ou	molde,	a	partir	do	qual	os	objetos	do	sistema	são	criados.	
Formalmente,	uma	classe	é	a	descrição	de	um	tipo	de	objeto.	Em	outras	palavras,	
uma	classe	são	agrupamentos,	também	chamados	de	categorias	ou	grupos,	de	tipos	de	
objetos	com	os	quais	interagimos	no	nosso	dia-a-dia.	
Um	diagrama	de	classes	é	construído	por	um	Analista	de	sistemas	para	descrever	
a	visão	estática	do	sistema	em	termos	de	classes	e	relacionamentos	entre	elas.	Pode-se	
dizer	que	o	diagrama	de	classes	ajuda	a	definir	a	base,	para	que	os	demais	diagramas	
apresentem	outras	visões	do	sistema.
Representação gráfica de uma classe
Uma	 classe	 é	 representada	 graficamente	 por	 um	 retângulo	 dividido	 em	 três	
compartimentos:	
o	primeiro	para	identificação,	ou	seja,	o	nome	da	classe;•	
o	segundo	para	a	especificação	da	relação	de	seus	atributos;	•	
o	terceiro	para	especificar	os	métodos	ou	operações	de	manipulação	de	dados	•	
e	de	comunicação	de	uma	classe	com	outras	classes	do	sistema.
para VocÊ refletIr:
Este tópico apresentou uma 
visão inicial da tecnologia de 
Orientação a Objetos, seus 
principais conceitos e sua 
utilização. 
O objetivo principal do 
desenvolvimento de software 
é produzir um programa 
funcionando, e os diagramas são, 
em primeira instância, apenas 
figuras bonitas. Portanto, quando 
você estiver pensando em utilizar 
a tecnologia de Orientação a 
Objetos é importante que se 
pergunte por que está fazendo 
isso e como isso irá ajudá-lo 
a escrever códigos e produzir 
softwares com qualidade?
Claretiano – Batatais78
Cursos de graduação
CRC		•	•	•		©	Análise e Projeto de Sistemas
UNIDADE 4
Figura	2	Representação gráfica de uma classe.
A	 sintaxe	 utilizada	 para	 descrever	 o	 conteúdo	 de	 cada	 compartimento	 é	
independente	de	 linguagem,	embora	possam	ser	utilizadas	outras	sintaxes,	como	a	do	
C++,	Java	etc.
Por exemplo:
Em	programação	Java,	adota-se	o	padrão	em	que	as	classes	devem	ter	todas	
as	palavras	que	formam	o	seu	nome	iniciadas	em	letra	maiúscula	(ExemploNomeClasse)	
observando	a	ausência	de	espaço	(	)	ou	(_)	entre	as	palavras.	
Para	o	caso	de	atributos	e	métodos,	convém	que	eles	tenham	a	primeira	letra	
minúscula	 e	 a	 primeira	 letra	 da	 segunda	 palavra	 em	 diante,	 maiúscula;	 observa-se,	
também,	a	ausência	de	espaço	(	)	ou	(_)	entre	as	palavras.	Veja	a	sintaxe	a	seguir:
exemploAtributo;•	
exemploMetodo().•	
A	seguir,	você	verá	a	descrição	de	cada	compartimento	de	uma	classe,	conforme	
foi	apresentado	na	Figura	2.
Nome da classe
É	conveniente	que	o	identificador	(nome)	da	classe	seja:	
derivado	do	domínio	da	aplicação;•	
menos	ambíguo	possível;•	
substantivo	e	que	não	contenha	prefixos	ou	sufixos.•	
Depois	 de	 identificar	 os	 objetos	 (ou	 conceitos)	 pertinentes	 ao	 domínio	 do	
problema,	 é	 necessário	 definir	 as	 propriedades	 que	 queremos	 representar.	 Essas	
propriedades	podem	ser	dados	(atributos)	ou	operações.	
Atributos de uma classe
De	maneira	geral,	pode-se	afirmar	que	os	atributos	são	tipos	de	 informações	
específicas	de	um	dado	objeto,	instanciado	ou	categorizado,	a	partir	de	uma	classe.	
Um	atributo	representa	uma	propriedade	que	todos	os	objetos	da	classe	têm	
(por	exemplo:	todas	as	mesas	têm	altura,	número	de	pernas,	posição	na	sala	etc.),	mas	
cada	objeto	possui	valores	particulares	para	seus	atributos	(continuando	nosso	exemplo:	
algumas	mesas	são	muito	baixas,	outras	são	altas,	de	madeira,	de	plástico	etc.).	
Vale	 a	 pena	 ressaltar	 que	 somente	 os	 atributos	 que	 interessam	 ao	 sistema	
devem	ser	representados.
Veja,	a	seguir,	quatro	propriedades	importantes	que	os	atributos	podem	apresentar:
Cursos de graduação
©	Análise e Projeto de Sistemas		•	•	•		CRC
Batatais – Claretiano 79
 
UNIDADE 4
Visibilidade1)	 	–	é	o	escopo	do	atributo:	pode-se	especificar	o	quão	acessível	
é	um	atributo	de	um	objeto	a	partir	de	outros	objetos.	Os	valores	possíveis	
são:	
Tabela	1 Símbolos e seus significados na visibilidade. 
SINAL OU 
SÍMBOLO DE 
VISIBILIDADE
DESCRIÇÃO DA VISIBILIDADE
- Privativo	–	nenhuma	visibilidade	externa,	ou	seja,	não	é	visível	às	outras	
classes.
+ Público	–	visibilidade	externa	total.	Todos	têm	acesso,	e	o	atributo	pode	
ser	utilizado	por	operações	declaradas	dentro	de	outras	classes.
# Protegido	–	visibilidade	externa	limitada.
nomeDoAtributo – 2)	 é	um	identificador	para	o	atributo.	
tipicamente	a	nomeação	de	um	atributo	se	inicia	com	uma	letra	minúscula;•	
concatena-se	 com	as	 demais	 palavras	 que	 compõem	o	 nome,	 iniciando	•	
com	letras	maiúsculas.
Propriedade – 3)	 apresenta	características	aplicáveis	ao	elemento.	Observe,	a	
seguir,	os	itens	que	devem	ser	informados:
descrição•	 	–	informe	descrição	sucinta	da	propriedade;
tipo de dado•	 	–	informe	o	tipo	do	atributo	(inteiro,	real,	caractere,	outra	
classe	etc.;
tipo de atributo•	 	–	informe	se	o	tipo	de	atributo	é	estático,	constante,	normal	
(não	estático	e	não	constante),	matriz,	atributo	final	(utilizado	em	Java);
domínio de valores•	 	–	informe	o	valor	mínimo	e	o	valor	máximo	(finito	ou	
infinito),	bem	como	a	restrição,	se	houver.	
Valor_default4)	 	(ou	valor	inicial)	–	pode-se	especificar	um	valor	inicial	para	
o	atributo.	 
Operações de uma classe
Uma	operação	 também	 é	 referida	 como	método.	 Entretanto,	 temos	 que	 a	
palavra	método	é	mais	adequada	à	implementação	ou	programação.	Quanto	ao	termo	
operação,	é	mais	abstrato	e	designa	um	serviço	que	os	objetos	devem	cumprir.	
Veja,	então,	que	as	operações	podem	mudaros	valores	dos	atributos	do	objeto	
que	a	efetua,	ou	não.	Por	exemplo,	podemos	inserir,	alterar	ou	excluir	dados	de	alunos	etc.	
Uma	classe,	também,	pode	ter	qualquer	número	de	operações.	
Observe	a	seguir,	na	Figura	3,	os	exemplos	das	classe	Usuários,	Avaliações	e	
Questões.	
Vamos	 retomar	 o	 caso	 proposto	 na	 unidade	 anterior	 sobre	 um	 software	
educacional,	 relebrando	 que	 o	 objetivo	 é	 desenvolver	 um	 software	 educacional	 que	
auxilie	 no	 processo	 de	 avaliação	 de	 conteúdos	 ensinados	 pelo	 professor,	 oferecendo	
funcionalidades	de	montagem	e	aplicação	de	avaliações	com	questões	de	múltipla	escolha,	
disponibilizando,	também,	a	correção	automática	da	avaliação	para	o	professor	e	para	os	
alunos,	bem	como	a	geração	de	relatórios	de	desempenho	de	alunos,	e	que,	além	disso,	
controle	o	acesso	aos	usuários	por	questões	de	segurança.
atenção!
A visibilidade é uma informação, 
e é opcional.
atenção!
A propriedade é uma 
informação, e é opcional.
atenção!
O Valor_default é uma 
informação, e é opcional.
Informação 
complementar:
Em termos computacionais, 
operação é algo invocado 
por um objeto (procedimento 
de chamada), e método é 
a implementação de uma 
operação. Portanto, as 
operações são executadas 
sempre que um objeto recebe 
uma mensagem de outro objeto.
Informação:
Como os atributos, duas 
operações em duas classes 
podem ter o mesmo nome. 
Isso se chama polimorfismo, ou 
seja, a mesma operação está 
implementada em dois métodos 
diferentes, em duas classes.
Claretiano – Batatais80
Cursos de graduação
CRC		•	•	•		©	Análise e Projeto de Sistemas
UNIDADE 4
Três	classes	foram	identificadas:
Usuários	(generalização	das	classes:	Aluno,	Professor,	Administrador).	•	
Avaliação.•	
Questão.•	
O	Diagrama	de	Classes	preliminar	do	sistema	está	representado	na	figura	a	seguir.
CURsO:	LiCENCiATURA	EM	COMPUTAÇÃO	
DisCiPLiNA:	ANALisE	E	PROJETOs	DE	sisTEMAs	
AUTOR: WAINE TEIXEIRA JÚNIOR
UNiDADE	4	–	VERsÃO	1-	COPY	
PREPARAÇÃO:	CAMiLA	sANTOs	
REVisÃO:	MARiNA	APARECiDA	BARUFALDi	
8
avaliação	 de	 conteúdos	 ensinados	 pelo	 professor,	 oferecendo	 funcionalidades	 de	 montagem	 e	
aplicação	de	avaliações	com	questões	de	múltipla	escolha,	disponibilizando,	também,	a	correção	
automática	da	avaliação	para	o	professor	e	para	os	alunos,	bem	como	a	geração	de	relatórios	de	
desempenho	 de	 alunos,	 e	 que,	 além	 disso,	 controle	 o	 acesso	 aos	 usuários	 por	 questões	 de	
segurança.	
Três	classes	foram	identificadas:	
 Usuários	(generalização	das	classes:	Aluno,	Professor,	Administrador).		
 Avaliação.
 Questão.	
O	Diagrama	de	Classes	preliminar	do	sistema	está	representado	na	figura	a	seguir.	
�����������
�����������
�����������
�����������
�����������
usuário
- codigoUsuario: int
- emailUsuario: int
- loginUsuario: int
- nomeUsuario: int
- senhaUsuario: int
- tipoUsuario: int
+ alterarUsuario() : void
+ consultarUsuario() : void
+ excluirUsuario() : void
+ inserirUsuario() : void
+ logarSistema() : void
av aliações
- codigoAvaliacao: int
- dataAval iacao: int
- ti tuloAvaliacao: int
+ al terarAval iacao() : void
+ consultarAvaliacao() : void
+ excluirAvaliacao() : void
+ inserirAval iacao() : void
+ l iberarAval iacao() : void
+ l istarDesempenhoAluno() : void
+ l istarDesempenhoAval iacao() : void
Questões
- alternativaA: int
- alternativaB: int
- alternativaC: int
- alternativaD: int
- codigoQuestao: int
- respostaCorreta: int
- tituloQuestao: int
+ alterarQuestao() : void
+ consultarQuestao() : void
+ excluirQuestao() : void
+ inserirQuestao() : void
Figura	3	Representação gráfica das classes do sistema gerenciador de avaliações.
Relacionamentos entre classes 
Ao	 elaborarmos	 um	 diagrama	 de	 classes,	 procuramos	 representar	 todas	 as	 classes	 do	
sistema,	bem	como	todos	os	relacionamentos	que	existem	entre	elas.	Veja,	a	seguir,	os	tipos	de	
relacionamentos	existentes:	
1)	associação;	
2)	agregação	e	composição;	
3)	generalização	e	especialização;	
4)	realização.	
Observe	esses	tipos	de	associação	com	atenção.	Você	verá	uma	grande	correspondência	
com	a	modelagem	de	dados	do	tipo	entidade-relacionamento.	
Associação 
Uma	 associação	 é	 a	 ligação	 entre	 classes.	 A	 partir	 de	 uma	 associação,	 na	 qual	 são	
conectadas	duas	classes,	você	é	capaz	de	navegar	do	objeto	de	uma	classe	até	o	objeto	de	outra	
classe.
Podemos	encontrar	este	tipo	de	associação,	também,	em	nosso	cotidiano.	É	praticamente	
impossível	 não	encontrar	 algum	 tipo	de	ocorrência	que	possa	 conectar	um	objeto	a	outros.	Por	
exemplo,	 uma	 pessoa	 trabalha	 para	 uma	 companhia;	 uma	 companhia	 tem	 vários	 escritórios,	 e	
assim	por	adiante.			
A	 associação,	 portanto,	 é	 a	 documentação	 do	 relacionamento	 entre	 dois	 objetos.	 Para	
melhor	documentar	uma	relação,	podem-se	 incluir	nomes,	destacar	os	papéis	que	cada	objeto	
executa	na	relação,	indicar	a	direção	e,	também,	a	multiplicidade	desse	relacionamento.		
Vamos,	a	seguir,	verificar	os	itens	de	informações	que	documentam	uma	relação.		
Começaremos	pelo	nome	de	uma	associação,	ele	é	importante	porque	descreve	a	própria	
natureza	do	relacionamento.		
Figura	3	Representação gráfica das classes do sistema gerenciador de avaliações.
Relacionamentos entre classes
Ao	 elaborarmos	 um	 diagrama	 de	 classes,	 procuramos	 representar	 todas	 as	
classes	do	sistema,	bem	como	todos	os	relacionamentos	que	existem	entre	elas.	Veja,	a	
seguir,	os	tipos	de	relacionamentos	existentes:
associação;1)	
agregação	e	composição;2)	
generalização	e	especialização;3)	
realização.4)	
Observe	 esses	 tipos	 de	 associação	 com	 atenção.	 Você	 verá	 uma	 grande	
correspondência	com	a	modelagem	de	dados	do	tipo	entidade-relacionamento.
	
Associação
Uma	associação	é	a	ligação	entre	classes.	A	partir	de	uma	associação,	na	qual	
são	conectadas	duas	classes,	você	é	capaz	de	navegar	do	objeto	de	uma	classe	até	o	
objeto	de	outra	classe.	
Podemos	 encontrar	 este	 tipo	 de	 associação,	 também,	 em	nosso	 cotidiano.	 É	
praticamente	impossível	não	encontrar	algum	tipo	de	ocorrência	que	possa	conectar	um	
objeto	a	outros.	Por	exemplo,	uma	pessoa	trabalha	para	uma	companhia;	uma	companhia	
tem	vários	escritórios,	e	assim	por	adiante.		
A	associação,	portanto,	é	a	documentação	do	relacionamento	entre	dois	objetos.	
Para	melhor	documentar	uma	relação,	podem-se	incluir	nomes,	destacar	os	papéis	que	
cada	objeto	executa	na	relação,	indicar	a	direção	e,	também,	a	multiplicidade	desse	
relacionamento.	
Vamos,	 a	 seguir,	 verificar	 os	 itens	 de	 informações	 que	 documentam	 uma	
relação.	
Cursos de graduação
©	Análise e Projeto de Sistemas		•	•	•		CRC
Batatais – Claretiano 81
 
UNIDADE 4
Começaremos	pelo	nome	de	uma	associação,	ele	é	importante	porque	descreve	
a	própria	natureza	do	relacionamento.	
Em	uma	associação,	muitas	vezes	a	informação	é	melhor	documentada	quando	
indicamos	o	papel	que	cada	classe	executa	na	relação.	Por	exemplo,	uma	relação	“Pessoa	
trabalhar	Empresa”	poderia	ser	melhor	explicada	indicando-se	o	papel	de	Pessoa,	que	é	
trabalhador,	e	o	papel	da	Empresa,	que	é	de	empregador.	
A	representação	gráfica	dessa	situação	seria	conforme	mostra	a	figura	a	seguir:
	
Figura	4	Representação gráfica de papéis em uma associação de classes.
Em	seguida,	temos	a	questão	da	direção.	
A	 direção	 de	 uma	 associação	 é	 importante	 porque	 orienta	 a	 navegação	 da	
informação.	 É	 possível	 que	 haja	 apenas	 um	 sentido	 (unidirecional)	 ou,	 então,	 que	 a	
associação	seja	navegável	em	duas	direções	(bidirecional).	Desta	forma,	o	traço	que	une	
as	duas	classes	passa	a	ser	uma	seta	que	apontará	para	uma	ou	para	as	duas	classes.
Por	último,	temos	a	multiplicidade.	
A	multiplicidade,	também	chamada	de	cardinalidade,	é	o	número	de	ocorrências	
entre	um	objeto	qualquer	da	classe	e	os	demais	objetos	da	outra	classe	envolvida.	
Portanto,	a	multiplicidade	determinará	a	quantidade	de	objetos	que	podem	ser	
conectados	ou	participar	de	um	relacionamento.	A	multiplicidade	é	a	quantidadede	vezes	
em	que	se	repete	o	papel	de	uma	associação,	e	é	escrita	como	uma	expressão	equivalente	
a	um	valor	explícito	ou	a	um	intervalo	de	valores.	
Ela	pode	ser	apresentada	de	várias	maneiras,	veja	a	seguir:
(0)	–	zero;
(1)	–	exatamente	uma	ocorrência	(no	mínimo	e	no	máximo);	
(N)	–	sendo	N	um	número	exato;
(*)	–	muitas	ocorrências	(no	mínimo	e	no	máximo);
(0	..	1)	–	zero	(nenhuma)	ou,	então,	no	máximo	uma	ocorrência;
(0	..	*)	–	zero	(nenhuma)	ou,	então,	várias	ocorrências;
(1	..	N)	–	no	mínimo	uma	ou,	então,	um	número	exato;
(1	..	*)	–	no	mínimo	uma	ou,	então,	várias	ocorrências.
No	caso	do	sistema	Gerenciador	de	Avaliações	de	Questões	de	Múltipla	Escolha,	
o	professor	cria	questões	de	múltipla	escolha.	Veja	como	ficaria	a	representação	gráfica	
na	Figura	5.
Claretiano – Batatais82
Cursos de graduação
CRC		•	•	•		©	Análise e Projeto de Sistemas
UNIDADE 4
Figura	5	Representação gráfica do relacionamento das classes 
professor e questões.
Podemos	ler	a	multiplicidade	da	figura	anterior	da	seguinte	forma:
Um	professor	cadastrado	no	sistema	pode	não	ter	nenhuma	questão	cadastrada,	
como	também,	pode	ter	infinitas	(0	..	*).
Todavia,	havendo	uma	questão	cadastrada,	é	obrigatório	que	tenha	um	único	
professor	que	a	cadastrou	(1).
Associação Recursiva
Agora	que	você	compreendeu	o	que	é	uma	associação,	definiremos	a	associação	
recursiva.	
A	recursividade	em	uma	relação	é	um	caso	bem	interessante,	pois	ela	ocorre	
quando	a	outra	classe	associada	é	a	própria	classe.	
Por exemplo:
imagine	que	tenhamos	a	seguinte	situação	para	modelar:	João	é	casado	com	
Maria.	João	e	Maria	foram	abstraídos	em	uma	classe	PEssOA.	Portanto,	PEssOA	é	casada	
com	PEssOA.
Graficamente,	 representamos	a	 recursividade	com	um	traço	apontado	para	a	
própria	classe.	Observe	o	exemplo	a	seguir,	para	que	você	compreenda	melhor	a	informação	
de	como	acontece	a	representação	de	papéis.
CURsO:	LiCENCiATURA	EM	COMPUTAÇÃO	
DisCiPLiNA:	ANALisE	E	PROJETOs	DE	sisTEMAs	
AUTOR: WAINE TEIXEIRA JÚNIOR
UNiDADE	4	–	VERsÃO	1-	COPY	
PREPARAÇÃO:	CAMiLA	sANTOs	
REVisÃO:	MARiNA	APARECiDA	BARUFALDi	
10
																														Figura	5	Representação gráfica do relacionamento das classes professor e questões.
Podemos	ler	a	multiplicidade	da	figura	anterior	da	seguinte	forma:	
Um	 professor	 cadastrado	 no	 sistema	 pode	 não	 ter	 nenhuma	 questão	 cadastrada,	 como	
também,	pode	ter	infinitas	(0	..	*).	
Todavia,	havendo	uma	questão	 cadastrada,	é	obrigatório	que	 tenha	um	único	professor	
que	a	cadastrou	(1).	
Associação Recursiva 
Agora	 que	 você	 compreendeu	 o	 que	 é	 uma	 associação,	 definiremos	 a	 associação	
recursiva.		
A	 recursividade	em	uma	relação	é	um	caso	bem	 interessante,	pois	ela	ocorre	quando	a	
outra	classe	associada	é	a	própria	classe.		
Por exemplo:
imagine	que	tenhamos	a	seguinte	situação	para	modelar:	João	é	casado	com	Maria.	João	
e	Maria	foram	abstraídos	em	uma	classe	PEssOA.	Portanto,	PEssOA	é	casada	com	PEssOA.	
Graficamente,	 representamos	 a	 recursividade	 com	 um	 traço	 apontado	 para	 a	 própria	
classe.	Observe	 o	 exemplo	 a	 seguir,	 para	 que	 você	 compreenda	melhor	 a	 informação	 de	 como	
acontece	a	representação	de	papéis.	
pessoa
+Marido
casar
com
+Esposa
																																										Figura	6	Representação gráfica de uma associação recursiva.
Agregação e Composição 
A agregação	é	um	tipo	de	relacionamento	no	qual	duas	classes	estão	 inseridas	em	um	
contexto	 “todo-parte”.	 As	 classes	 deste	 tipo	 de	 relacionamento	 podem	 viver	 de	 forma	
independente,	de	forma	que	os	objetos	da	parte	constituinte	ou	da	agregada	sejam	independentes	
em	termos	de	vida,	porém	ambas	pertencem	a	um	único	todo.	
Para	 chegarmos	 a	 esse	 nível	 de	 análise,	 dependeremos	 de	 um	 estudo	 aprofundado	 do	
domínio	do	problema.	
Graficamente,	a	agregação	é	representada	por	um	losango	sem	preenchimento,	conforme	
demonstra	a	Figura	7.	
Figura	6	Representação gráfica 
de uma associação recursiva.
Cursos de graduação
©	Análise e Projeto de Sistemas		•	•	•		CRC
Batatais – Claretiano 83
 
UNIDADE 4
Agregação e Composição
A	agregação	é	um	tipo	de	relacionamento	no	qual	duas	classes	estão	inseridas	
em	um	contexto	“todo-parte”.	As	classes	deste	tipo	de	relacionamento	podem	viver	de	
forma	independente,	de	forma	que	os	objetos	da	parte	constituinte	ou	da	agregada	sejam	
independentes	em	termos	de	vida,	porém	ambas	pertencem	a	um	único	todo.
Para	chegarmos	a	esse	nível	de	análise,	dependeremos	de	um	estudo	aprofundado	
do	domínio	do	problema.
Graficamente,	a	agregação	é	representada	por	um	losango	sem	preenchimento,	
conforme	demonstra	a	Figura	7.
CURsO:	LiCENCiATURA	EM	COMPUTAÇÃO	
DisCiPLiNA:	ANALisE	E	PROJETOs	DE	sisTEMAs	
AUTOR: WAINE TEIXEIRA JÚNIOR
UNiDADE	4	–	VERsÃO	1-	COPY	
PREPARAÇÃO:	CAMiLA	sANTOs	
REVisÃO:	MARiNA	APARECiDA	BARUFALDi	
11
Figura	7	Representação gráfica de uma agregação.
Entretanto,	 há	 um	 caso	 particular	 de	 agregação	 que	 é	 muito	 utilizado.	 Trata-se	 do	 caso	
composição.	 Ele	 ocorre	 quando	 duas	 classes	 só	 têm	 sentido	 no	 momento	 em	 que	 estiverem	
associadas.	isso	implica	que,	se	uma	instância	da	classe	deixar	de	existir,	todas	as	outras	associadas	
por	composição	“deixarão”	de	existir	também.	Exemplos	comuns	desse	tipo	de	associação	no	nosso	
dia-a-dia	são	a	Nota	Fiscal	e	o	Recibo	de	Locação	de	Filme.	
Nesses	exemplos,	há	uma	agregação	entre	um	bloco	de	 informação	mais	genérico,	que	
relaciona,	por	exemplo,	a	identificação,	a	organização	e	a	data,	e	outro	bloco	de	informações	mais	
específicas,	 que	 são	 os	 itens	 relacionados	 nesses	 tipos	 de	 documentos.	 Na	 Nota	 Fiscal,	 por	
exemplo,	agregamos	cabeçalho	e	item	de	nota	fiscal.	
Graficamente,	o	símbolo	que	representa	a	composição	é	um	losango preenchido.
No	 caso	 do	 sistema	 Gerenciador	 de	 Avaliações,	 há	 uma	 relação	 de	 agregação	 entre	
Avaliação	 e	 Questão.	 Afinal,	 uma	 avaliação	 só	 tem	 sentido	 se	 houver	 questões	 a	 serem	
respondidas.	As	questões	não	podem	ser	respondidas	individualmente,	sem	estarem	vinculadas	a	
uma	avaliação	específica.	Observe	a	demonstração	da	composição	na	Figura	8.	
							Figura	8	Representação gráfica da composição no sistema gerenciador de avaliações – Avaliações 
e Questões.
Generalização e Especialização 
De	 acordo	 com	 os	 conteúdos	 estudados	 você	 pode	 estar	 ser	 perguntando:	 o	 que	 é	
generalização	 e	 especialização?	 Você,	 possivelmente,	 deve	 ter	 aprendido	 esses	 conceitos	 na	
disciplina Banco de Dados,	na	Modelagem	Entidade-Relacionamento,	na	notação	conhecida	como	
“extendida”.	Generalização	 é	 um	 tipo	 de	 associação	 que	modela	 o	 conceito	 de	 herança	 entre	
classes,	indicando	quais	objetos	foram	abstraídos	em	classes	e,	com	um	estudo	mais	aprofundado,	
percebeu-se	que	essas	classes	poderiam	ser	abstraídas	em	uma	classe	mais	genérica,	daí	o	nome	
generalização.	
Portanto,	a	generalização	é	um	relacionamento	entre	as	superclasses	e	suas	subclasses.	
Essas	 subclasses	 também	podem	 ser	 chamadas	 de	 classes-filha,	 pertencendo	 a	 uma	 hierarquia	
inferior	 à	 classe-mãe.	 Nesse	 relacionamento,	 a	 subclasse	 herda	 todas	 as	 propriedades	 da	
superclasse,	seus	atributos	e	operações.	
No	 caso	 do	 sistema	 Gerenciador	 de	 Avaliações,	 percebemos	 que	 os	 atores	 do	 sistema	
foram	 generalizados	 no	 ator	 usuários.	 Os	 atores	 de	 um	 sistema	 em	 UML	 são	 diretamente	
modelados	em	classes.	Analise	a	representação	gráfica	na	Figura	9.	
Figura	7	Representação gráfica de uma agregação.
Entretanto,	há	um	caso	particular	de	agregação	que	é	muito	utilizado.	Trata-se	
do	caso	composição.	Ele	ocorre	quando	duas	classes	só	têm	sentido	no	momento	em	que	
estiverem	associadas.	isso	implica	que,	se	uma	instância	da	classe	deixar	de	existir,	todas	
as	outras	associadas	por	composição	“deixarão”	de	existir	também.	Exemplos	comuns	desse	
tipo	de	associação	no	nosso	dia-a-dia	são	a	Nota	Fiscal	e	o	Recibo	de	Locação	de	Filme.
Nesses	 exemplos,	 há	 uma	 agregaçãoentre	 um	 bloco	 de	 informação	 mais	
genérico,	que	 relaciona,	por	exemplo,	a	 identificação,	a	organização	e	a	data,	e	outro	
bloco	 de	 informações	mais	 específicas,	 que	 são	 os	 itens	 relacionados	 nesses	 tipos	 de	
documentos.	Na	Nota	Fiscal,	por	exemplo,	agregamos	cabeçalho	e	item	de	nota	fiscal.
Graficamente,	o	símbolo	que	representa	a	composição	é	um	losango preenchido.
No	 caso	 do	 sistema	 Gerenciador	 de	 Avaliações,	 há	 uma	 relação	 de	 agregação	
entre	Avaliação	e	Questão.	Afinal,	uma	avaliação	só	tem	sentido	se	houver	questões	a	serem	
respondidas.	As	questões	não	podem	ser	respondidas	individualmente,	sem	estarem	vinculadas	
a	uma	avaliação	específica.	Observe	a	demonstração	da	composição	na	Figura	8.
	
CURsO:	LiCENCiATURA	EM	COMPUTAÇÃO	
DisCiPLiNA:	ANALisE	E	PROJETOs	DE	sisTEMAs	
AUTOR: WAINE TEIXEIRA JÚNIOR
UNiDADE	4	–	VERsÃO	1-	COPY	
PREPARAÇÃO:	CAMiLA	sANTOs	
REVisÃO:	MARiNA	APARECiDA	BARUFALDi	
11
Figura	7	Representação gráfica de uma agregação.
Entretanto,	 há	 um	 caso	 particular	 de	 agregação	 que	 é	 muito	 utilizado.	 Trata-se	 do	 caso	
composição.	 Ele	 ocorre	 quando	 duas	 classes	 só	 têm	 sentido	 no	 momento	 em	 que	 estiverem	
associadas.	isso	implica	que,	se	uma	instância	da	classe	deixar	de	existir,	todas	as	outras	associadas	
por	composição	“deixarão”	de	existir	também.	Exemplos	comuns	desse	tipo	de	associação	no	nosso	
dia-a-dia	são	a	Nota	Fiscal	e	o	Recibo	de	Locação	de	Filme.	
Nesses	exemplos,	há	uma	agregação	entre	um	bloco	de	 informação	mais	genérico,	que	
relaciona,	por	exemplo,	a	identificação,	a	organização	e	a	data,	e	outro	bloco	de	informações	mais	
específicas,	 que	 são	 os	 itens	 relacionados	 nesses	 tipos	 de	 documentos.	 Na	 Nota	 Fiscal,	 por	
exemplo,	agregamos	cabeçalho	e	item	de	nota	fiscal.	
Graficamente,	o	símbolo	que	representa	a	composição	é	um	losango preenchido.
No	 caso	 do	 sistema	 Gerenciador	 de	 Avaliações,	 há	 uma	 relação	 de	 agregação	 entre	
Avaliação	 e	 Questão.	 Afinal,	 uma	 avaliação	 só	 tem	 sentido	 se	 houver	 questões	 a	 serem	
respondidas.	As	questões	não	podem	ser	respondidas	individualmente,	sem	estarem	vinculadas	a	
uma	avaliação	específica.	Observe	a	demonstração	da	composição	na	Figura	8.	
							Figura	8	Representação gráfica da composição no sistema gerenciador de avaliações – Avaliações 
e Questões.
Generalização e Especialização 
De	 acordo	 com	 os	 conteúdos	 estudados	 você	 pode	 estar	 ser	 perguntando:	 o	 que	 é	
generalização	 e	 especialização?	 Você,	 possivelmente,	 deve	 ter	 aprendido	 esses	 conceitos	 na	
disciplina Banco de Dados,	na	Modelagem	Entidade-Relacionamento,	na	notação	conhecida	como	
“extendida”.	Generalização	 é	 um	 tipo	 de	 associação	 que	modela	 o	 conceito	 de	 herança	 entre	
classes,	indicando	quais	objetos	foram	abstraídos	em	classes	e,	com	um	estudo	mais	aprofundado,	
percebeu-se	que	essas	classes	poderiam	ser	abstraídas	em	uma	classe	mais	genérica,	daí	o	nome	
generalização.	
Portanto,	a	generalização	é	um	relacionamento	entre	as	superclasses	e	suas	subclasses.	
Essas	 subclasses	 também	podem	 ser	 chamadas	 de	 classes-filha,	 pertencendo	 a	 uma	 hierarquia	
inferior	 à	 classe-mãe.	 Nesse	 relacionamento,	 a	 subclasse	 herda	 todas	 as	 propriedades	 da	
superclasse,	seus	atributos	e	operações.	
No	 caso	 do	 sistema	 Gerenciador	 de	 Avaliações,	 percebemos	 que	 os	 atores	 do	 sistema	
foram	 generalizados	 no	 ator	 usuários.	 Os	 atores	 de	 um	 sistema	 em	 UML	 são	 diretamente	
modelados	em	classes.	Analise	a	representação	gráfica	na	Figura	9.	
Figura	8	Representação gráfica da composição no sistema gerenciador de avaliações 
– Avaliações e Questões.
Claretiano – Batatais84
Cursos de graduação
CRC		•	•	•		©	Análise e Projeto de Sistemas
UNIDADE 4
Generalização e Especialização
De	acordo	com	os	conteúdos	estudados	você	pode	estar	ser	perguntando:	o	que	
é	generalização	e	especialização?	Pois	bem,	Generalização	é	um	tipo	de	associação	que	
modela	o	conceito	de	herança	entre	classes,	indicando	quais	objetos	foram	abstraídos	em	
classes	e,	com	um	estudo	mais	aprofundado,	percebeu-se	que	essas	classes	poderiam	ser	
abstraídas	em	uma	classe	mais	genérica,	daí	o	nome	generalização.
Portanto,	 a	generalização	é	um	 relacionamento	entre	as	 superclasses	e	 suas	
subclasses.	Essas	subclasses	também	podem	ser	chamadas	de	classes-filha,	pertencendo	
a	uma	hierarquia	inferior	à	classe-mãe.	Nesse	relacionamento,	a	subclasse	herda	todas	as	
propriedades	da	superclasse,	seus	atributos	e	operações.
No	caso	do	sistema	Gerenciador	de	Avaliações,	percebemos	que	os	atores	do	
sistema	 foram	 generalizados	 no	 ator	 usuários.	Os	 atores	 de	 um	 sistema	 em	UML	 são	
diretamente	modelados	em	classes.	Analise	a	representação	gráfica	na	Figura	9.
CURsO:	LiCENCiATURA	EM	COMPUTAÇÃO	
DisCiPLiNA:	ANALisE	E	PROJETOs	DE	sisTEMAs	
AUTOR: WAINE TEIXEIRA JÚNIOR
UNiDADE	4	–	VERsÃO	1-	COPY	
PREPARAÇÃO:	CAMiLA	sANTOs	
REVisÃO:	MARiNA	APARECiDA	BARUFALDi	
12
	 											Figura	9	Representação gráfica de generalização de classes–Usuários.
Especialização	é	como	se	o	processo	de	generalização	ocorresse	ao	contrário.	Para	você	
entender	 melhor,	 imagine	 que	 objetos	 foram	 abstraídos	 em	 uma	 classe	 genérica	 e,	 com	 um	
estudo	mais	aprofundado,	percebeu-se	que	essa	classe	poderia	 ser	desdobrada	em	duas	outras	
mais	específicas.	Daí	o	nome	de	especialização. (!)
atenção! 
Observe, no caso da generalização, que as operações de manutenção de dados de usuários são específicas para a classe 
Administrador. 
Graficamente,	 não	 há	 diferença	 entre	 a	 generalização	 e	 especialização.	 É	 praticamente	
uma	 questão	 de	 ponto	 de	 partida	 da	 abstração,	 se	 as	 classes	 foram	 generalizadas	 ou	 foram	
especializadas.	Portanto,	a	representação	gráfica	do	processo	é	idêntica.	(!)
atenção! 
Se encontrar dificuldades não desanime. Entre em contato com seus colegas de curso e com seu tutor. Eles estarão sempre prontos
para ajudar você. 
Figura	9	Representação gráfica de generalização de classes–Usuários.
Especialização	é	como	se	o	processo	de	generalização	ocorresse	ao	contrário.	
Para	você	entender	melhor,	imagine	que	objetos	foram	abstraídos	em	uma	classe	genérica	
e,	com	um	estudo	mais	aprofundado,	percebeu-se	que	essa	classe	poderia	ser	desdobrada	
em	duas	outras	mais	específicas.	Daí	o	nome	de	especialização.	
Graficamente,	 não	 há	 diferença	 entre	 a	 generalização	 e	 especialização.	 É	
praticamente	 uma	 questão	 de	 ponto	 de	 partida	 da	 abstração,	 se	 as	 classes	 foram	
generalizadas	ou	foram	especializadas.	Portanto,	a	representação	gráfica	do	processo	é	
idêntica.	
atenção!
Observe, no caso da 
generalização, que as operações 
de manutenção de dados de 
usuários são específicas para a 
classe Administrador.
atenção!
Se encontrar dificuldades não 
desanime. Entre em contato com 
seus colegas de curso e com 
seu tutor. Eles estarão sempre 
prontos para ajudar você.
Cursos de graduação
©	Análise e Projeto de Sistemas		•	•	•		CRC
Batatais – Claretiano 85
 
UNIDADE 4CURsO:	LiCENCiATURA	EM	COMPUTAÇÃO	
DisCiPLiNA:	ANALisE	E	PROJETOs	DE	sisTEMAs	
AUTOR: WAINE TEIXEIRA JÚNIOR
UNiDADE	4	–	VERsÃO	1-	COPY	
PREPARAÇÃO:	CAMiLA	sANTOs	
REVisÃO:	MARiNA	APARECiDA	BARUFALDi	
13
Figura	10	Diagrama de classes do sistema gerenciador de avaliações.
5 Objetos 
Um	diagrama	de	objetos	apresenta	um	conjunto	de	objetos	e	seus	 relacionamentos	em	
determinado	ponto	no	 tempo.	Estes	diagramas	mostram	os	objetos	de	um	sistema	 funcionando	
em	uma	determinada	ocasião	temporal.	Com	isso,	temos	uma	visão	estática	do	projeto	ou	de	um	
processo	do	sistema.	
Vamos	fazer	uma	analogia	com	um	jogo	de	futebol:	são	22	jogadores	correndo	atrás	de	
uma	bola	em	um	campo	limitado,	seguindo	regras	estabelecidas.	se	você	congelar	a	imagem	em	
certo	momento	do	 jogo	e	analisar	 cada	 jogador	 individualmente,	você	poderá	determinar	o	que	
cada	 um	 está	 fazendo	 naquele	 instante.	 Perceba	 que	 estes	 jogadores	 colaboram	 uns	 com	 osoutros,	seguindo	uma	estratégia,	para	marcar	o	gol.	
Tentar	visualizar,	analisar,	construir	ou	documentar	um	sistema	complexo,	é	semelhante	à	
situação	 do	 jogo	 de	 futebol.	 se	 tentarmos	 entender	 apenas	 um	 processo	 do	 sistema	 de	 forma	
isolada,	 podemos	 perder	 a	 visão	 global,	 quanto	 ao	 modo	 como	 as	 partes	 do	 sistema	 estão	
organizadas	e	interagem	entre	si.	Ao	contrário	disso,	é	necessário	estudar	um	retrato	do	objeto,	
seus	vizinhos	e	seus	relacionamentos	entre	eles.	
Graficamente,	 os	 objetos	 são	 diferenciados	 de	 suas	 classes	 por	 terem	 seus	 nomes	
sublinhados.	Cada	objeto	tem	o	nome	da	seguinte	forma:	nome da instância: nome da classe.
Embora	menos	importante	que	o	diagrama	de	classes,	o	diagrama	de	objetos	pode	ajudar	
a	compreender	diagramas	complexos	que	não	estejam	muito	claros.	
Figura	10	Diagrama de classes do sistema gerenciador de avaliações.
5 objetos 
Um	diagrama	de	objetos	apresenta	um	conjunto	de	objetos	e	seus	relacionamentos	
em	determinado	ponto	no	tempo.	Estes	diagramas	mostram	os	objetos	de	um	sistema	
funcionando	em	uma	determinada	ocasião	temporal.	Com	isso,	temos	uma	visão	estática	
do	projeto	ou	de	um	processo	do	sistema.
Vamos	fazer	uma	analogia	com	um	jogo	de	futebol:	são	22	jogadores	correndo	
atrás	 de	 uma	 bola	 em	 um	 campo	 limitado,	 seguindo	 regras	 estabelecidas.	 se	 você	
congelar	a	imagem	em	certo	momento	do	jogo	e	analisar	cada	jogador	individualmente,	
você	poderá	determinar	o	que	cada	um	está	fazendo	naquele	instante.	Perceba	que	estes	
jogadores	colaboram	uns	com	os	outros,	seguindo	uma	estratégia,	para	marcar	o	gol.
Tentar	 visualizar,	 analisar,	 construir	 ou	 documentar	 um	 sistema	 complexo,	 é	
semelhante	à	situação	do	jogo	de	futebol.	se	tentarmos	entender	apenas	um	processo	
do	sistema	de	forma	isolada,	podemos	perder	a	visão	global,	quanto	ao	modo	como	as	
partes	do	sistema	estão	organizadas	e	interagem	entre	si.	Ao	contrário	disso,	é	necessário	
estudar	um	retrato	do	objeto,	seus	vizinhos	e	seus	relacionamentos	entre	eles.
Claretiano – Batatais86
Cursos de graduação
CRC		•	•	•		©	Análise e Projeto de Sistemas
UNIDADE 4
Graficamente,	os	objetos	são	diferenciados	de	suas	classes	por	terem	seus	nomes	
sublinhados.	Cada	objeto	tem	o	nome	da	seguinte	forma:	nome da instância: nome da classe.
Embora	menos	importante	que	o	diagrama	de	classes,	o	diagrama	de	objetos	
pode	ajudar	a	compreender	diagramas	complexos	que	não	estejam	muito	claros.
Para	tanto,	os	diagramas	de	objetos	costumam	conter	os	seguintes	elementos:
objetos;•	
vínculos.•	
Um	diagrama	de	objetos	é	essencialmente	uma	instância	de	um	diagrama	de	
classes,	portanto,	é	comum	incluir	nestes	diagramas	as	classes	do	sistema	que	estão	por	
trás	de	cada	instância.
CURsO:	LiCENCiATURA	EM	COMPUTAÇÃO	
DisCiPLiNA:	ANALisE	E	PROJETOs	DE	sisTEMAs	
AUTOR: WAINE TEIXEIRA JÚNIOR
UNiDADE	4	–	VERsÃO	1-	COPY	
PREPARAÇÃO:	CAMiLA	sANTOs	
REVisÃO:	MARiNA	APARECiDA	BARUFALDi	
14
Para	tanto,	os	diagramas	de	objetos	costumam	conter	os	seguintes	elementos:	
objetos;	
vínculos.	
Um	 diagrama	 de	 objetos	 é	 essencialmente	 uma	 instância	 de	 um	 diagrama	 de	 classes,	
portanto,	 é	 comum	 incluir	 nestes	 diagramas	 as	 classes	 do	 sistema	 que	 estão	 por	 trás	 de	 cada	
instância.	
				Figura	11	Representação de um diagrama de objetos.
Em	 Booch	 et al.	 (2000,	 p.	 197),	 são	 apresentadas	 algumas	 dicas	 para	 modelar	 uma	
estrutura	de	objetos:	
1)	 identifique	 o	 mecanismo	 cuja	modelagem	 você	 deseja	 fazer.	 saiba	
que	um	mecanismo	representa	uma	função	ou	comportamento	da	parte	do	
sistema	 cuja	 modelagem	 você	 está	 realizando,	 e	 que	 é	 resultante	 da	
interação	de	um	conjunto	de	classes.	
2)	 Para	 cada	 mecanismo,	 identifique	 as	 classes	 e	 outros	 mecanismos	
que	participam	desta	colaboração.	Também,	identifique	os	relacionamentos.	
3)	 Analise	 um	 único	 cenário	 neste	 mecanismo,	 congelando-o	 em	 um	
determinado	momento.	
4)	 Exponha	 o	 estado	 e	 os	 valores	 dos	 atributos	 de	 cada	 um	 destes	
objetos	 para	 compreensão	 do	 cenário.	 Do	 mesmo	 modo,	 exponha	 os	
vínculos	existentes	entre	estes	objetos.	(!) 
atenção! 
Adquira o hábito da leitura e da pesquisa. Leia livros, artigos, revistas, pesquise em sites e quando encontrar algo interessante, 
compartilhe com seus colegas de curso. Lembre-se de que na Educação a Distância sua colaboração é fundamental para o seu 
aprendizado.
(CAixA)	
INFORMAÇÃO COMPLEMENTAR: 
Veja	algumas	dicas	e	sugestões	de	um	diagrama	de	objetos	bem	estruturado:	
1)	ter	o	foco	voltado	para	comunicar	um	único	aspecto	da	visão	estática;	
2)	conter	somente	aqueles	elementos	essenciais	para	compreensão	desse	aspecto;	
3)	ter	um	nome	capaz	de	comunicar	seu	propósito;	
4)	distribuir	seus	elementos	para	minimizar	a	ocorrência	de	linhas	cruzadas;	
5)	possuir	anotações	e	cores	para	chamar	a	atenção	das	características	importantes	no	seu	diagrama.	
(FiM	CAixA)	(?)
para VocÊ refletIr: 
Esta unidade apresentou um estudo detalhado sobre as classes e os tipos de relacionamentos entre elas. Este estudo é importante
porque os diagramas de classe são a base das metodologias orientadas a objetos. 
Convidamos você a refletir sobre as classes de um software. Em cada estágio de elaboração dos modelos da UML, você deverá, de 
alguma forma, garantir que fez corretamente. Pense em estratégias que você utilizaria para revisar seus modelos quanto à clareza, 
correção, completeza e consistência com os requisitos. 
Figura	11	Representação de um diagrama de objetos.
Em	Booch	et al.	(2000,	p.	197),	são	apresentadas	algumas	dicas	para	modelar	
uma	estrutura	de	objetos:
1)	identifique	o	mecanismo	cuja	modelagem	você	deseja	fazer.	saiba	que	um	
mecanismo	 representa	 uma	 função	 ou	 comportamento	 da	 parte	 do	 sistema	
cuja	modelagem	você	está	realizando,	e	que	é	resultante	da	interação	de	um	
conjunto	de	classes.
2)	 Para	 cada	 mecanismo,	 identifique	 as	 classes	 e	 outros	 mecanismos	 que	
participam	desta	colaboração.	Também,	identifique	os	relacionamentos.
3)	Analise	um	único	cenário	neste	mecanismo,	congelando-o	em	um	determinado	
momento.
4)	Exponha	o	estado	e	os	valores	dos	atributos	de	cada	um	destes	objetos	para	
compreensão	 do	 cenário.	 Do	mesmo	modo,	 exponha	 os	 vínculos	 existentes	
entre	estes	objetos	.
INFORMAÇÃO COMPLEMENTAR:
Veja	algumas	dicas	e	sugestões	de	um	diagrama	de	objetos	bem	estruturado:
ter	o	foco	voltado	para	comunicar	um	único	aspecto	da	visão	estática;1)	
conter	 somente	 aqueles	 elementos	 essenciais	 para	 compreensão	 desse	2)	
aspecto;
ter	um	nome	capaz	de	comunicar	seu	propósito;3)	
distribuir	seus	elementos	para	minimizar	a	ocorrência	de	linhas	cruzadas;4)	
possuir	 anotações	 e	 cores	 para	 chamar	 a	 atenção	 das	 características	5)	
importantes	no	seu	diagrama.
para VocÊ refletIr:
Esta unidade apresentou 
um estudo detalhado sobre 
as classes e os tipos de 
relacionamentos entre elas. Este 
estudo é importante porque os 
diagramas de classe são a base 
das metodologias orientadas a 
objetos. 
Convidamos você a refletir sobre 
as classes de um software. Em 
cada estágio de elaboração dos 
modelos da UML, você deverá, 
de alguma forma, garantir que 
fez corretamente. Pense em 
estratégias que você utilizaria 
para revisar seus modelos 
quanto à clareza, correção, 
completeza e consistência com 
os requisitos.
Cursos de graduação
©	Análise e Projeto de Sistemas		•	•	•		CRC
Batatais – Claretiano 87
UNIDADE 4
 
6 consIderações
Com	 o	 estudo	 desta	 unidade	 você	 teve	 a	 oportunidade	 de	 compreender	 a	
modelagem	dos	diagramas	mais	importantes	da	Orientação	a	Objetos:	classes	e	objetos.
A	modelagem	de	classes	é	fundamental	para	a	implementação	do	software	em	
uma	linguagem	de	programação	Orientada	a	Objetos.	Assim,	pratique	bastante	e	construa	
uma	base	de	experiências	de	modelagem	para	seu	futuro	profissional.
Resumindo:
Domínio do problema	é	o	conjunto	de	informações	específicas	ao	âmbito	de	
um	projeto	de	software.	Os	conceitosde	classe	e	objeto	são	interdependentes,	
na	qual	uma	classe	é	um	conjunto	de	objetos	que	compartilham	uma	estrutura	
e	um	comportamento	comum,	e	um	objeto	é	simplesmente	uma	instância	de	
uma	classe.
O	paradigma	da	Orientação	a	Objetos	apresenta	alguns	conceitos	fundamentais:	
identificação,	Classificação,	Herança,	Polimorfismo	e	Encapsulamento.	Dessa	
forma,	as	classes	podem	se	relacionar	entre	si	por	meio	de	diversos	tipos	de	
associação.	E	para	concluir,	um	diagrama	de	objetos	apresenta	um	conjunto	
de	objetos	e	seus	relacionamentos	em	determinado	ponto	no	tempo.
7 referÊncIas bIblIográfIcas 
BOOCH,	Grady	et	al.	UML:	guia	do	usuário.	Rio	de	Janeiro:	Campus,	2000.
FURLAN,	J.	D.	Modelagem de objetos através da UML.	são	Paulo:	Makron	Books,	1998.
PREssMAN,	R.	s.	Engenharia de software.	6.	ed.	são	Paulo:	McGraw-Hill,	2006.
atenção!
Adquira o hábito da leitura 
e da pesquisa. Leia livros, 
artigos, revistas, pesquise 
em sites e quando encontrar 
algo interessante, compartilhe 
com seus colegas de curso. 
Lembre-se de que na Educação 
a Distância sua colaboração 
é fundamental para o seu 
aprendizado.
Anotações

Mais conteúdos dessa disciplina