You are on page 1of 41

Universidade Federal de Santa Catarina

Curso de Tecnologias da Informao e Comunicao


Campus Ararangu

Diagrama de Classes
Prof Luciana Bolan Frigo

Objetivos

Introduo
Elementos do Diagrama de Classes
Exemplo
Exerccio

Introduo

O diagrama de classes mostra um conjunto de classes e seus


relacionamentos.
o diagrama central da modelagem orientada a objetos.

Turma
est-matriculado-em

cdigo: Texto
sala: Texto
horario: Horario

Aluno
nome: Texto
matrcula: Inteiro
definirNome(nome)
obterNome()
definirMatricula(matricula)
obterMatricula

-ministrada-por
Professor

estaAberta()
definirProfessor(professor)
incluirAluno(aluno)

nome: Texto
titulao: Texto
definirNome(nome)
obterNome()
definirTitulacao(titulo)
obterTitulacao

Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos (operaes de abstrao)
Classificao / Instanciao
Associao
Agregao
Composio

Generalizao
Dependncia

Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos (operaes de abstrao)
Classificao / Instanciao
Associao
Agregao
Composio

Generalizao
Dependncia

Elementos Diagrama de
Classes
Classes
Graficamente, as classes so representadas por retngulos
incluindo nome, atributos e mtodos.
Nome_da_classe
atributo1
atributo2
...
metodo1
metodo2
metodo3
...

Devem receber nomes de acordo com o vocabulrio do domnio do


problema.
comum adotar um padro para nome-las
Ex: todos os nomes de classes sero substantivos singulares
com a primeira letra maiscula

Elementos Diagrama de
Classes
Classes
Mtodos
Representam o conjunto de operaes
(comportamento)
que a classe fornece
Exemplo:
- getNome() : String

Atributos
Representam o conjunto de
caractersticas (estado)
dos objetos daquela classe
Exemplo:
+ nome : String

Visibilidade:
+ pblico: visvel em qualquer classe
de qualquer pacote
# protegido: visvel para classes do
mesmo pacote
- privado: visvel somente para
classe
LES/PUC-Rio

Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos (operaes de abstrao)
Classificao / Instanciao
Associao
Agregao
Composio

Generalizao
Dependncia

LES/PUC-Rio

Elementos Diagrama de
Classes
Relacionamentos
Os relacionamentos possuem:
Nome: descrio dada ao relacionamento (faz, tem, possui,...)

Sentido de leitura
Navegabilidade: indicada por uma seta no fim do relacionamento
Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7

Tipo: associao (agregao, composio), generalizao e dependncia


Papis: desempenhados por classes em um relacionamento

Elementos Diagrama de
Classes
nome

Relacionamentos

Pessoa

multiplicidade

1..*

sentido de leitura

trabalha para

empregado

empregador

Empresa

Tipo: associao

papis
navegabilidade

reside

Cliente

Endereo

O cliente sabe
quais so seus
endereos, mas o
endereo no sabe
a quais clientes
pertence

Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Classificao / Instanciao
Associao
Agregao
Composio

Generalizao
Dependncia

LES/PUC-Rio

Elementos Diagrama de
Classes
Relacionamentos: Classificao/ Instanciao
Classificao: operao que tem por objetivo, atravs da

anlise das caractersticas de um objeto, definir a que


classe ele pertence.
Instanciao: operao que, dada uma determinada
classe, define (ou constri) um objeto pertencente a essa
classe.
Automvel

Classe - categoria

modelo
placa
...
movimento
parado

Classificao

Instanciao

...

Vectra da Maria

Fusca do Jos

Objeto - entidade

Elementos Diagrama de Classes


Relacionamentos: Associao
Uma associao um relacionamento estrutural que indica que os
objetos de uma classe esto vinculados a objetos de outra classe.
Uma associao representada por uma linha slida conectando
duas classes.

Pessoa

Empresa
associao

LES/PUC-Rio

Elementos Diagrama de
Classes
Relacionamentos: Associao
Indicadores de multiplicidade:
1

Exatamente um

1..*

Um ou mais

0..*

Zero ou mais (muitos)

Zero ou mais (muitos)

0..1

Zero ou um

m..n

Faixa de valores (por exemplo: 4..7)


multiplicidade

Pessoa

1..*

trabalha para

Empresa

associao
LES/PUC-Rio

Relacionamentos: Associao
Relacionamentos: Associao

Exemplo:
Um Estudante pode ser
um aluno de uma Disciplina

Cada Disciplina deve ser cursada por no mnimo 1 aluno


Um aluno pode cursar de 0 at 8 disciplinas

Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Associao
Agregao
Composio

Generalizao
Dependncia

Elementos Diagrama de
Classes
Relacionamento: Agregao
um tipo especial de associao
Utilizada para indicar todo-parte

Todo/ classe agregadora

Pedido

Parte/ classe agregada

1..*

Item

agregao

um objeto parte pode fazer parte de vrios objetos todo

LES/PUC-Rio

Elementos Diagrama de
Classes
Relacionamento: Agregao
Motor
+potncia
+cilindrada
+combustvel

Veculo

+ligar()
+desligar()

Placa
+cidade
+estado
+cdigo alfabtico
+cdigo numrico

Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Associao
Agregao
Composio

Generalizao
Dependncia

LES/PUC-Rio

Elementos Diagrama de
Classes
Relacionamento: Composio ou Agregao forte
uma variante semanticamente mais forte da agregao
Os objetos parte s podem pertencer a um nico objeto todo e tm o seu
tempo de vida coincidente com o dele

Notebook

Window
1..*

0..*
0..*

Teclado

Frame
errado

Quando o todo morre todas as suas partes tambm morrem

LES/PUC-Rio

Elementos Diagrama de
Classes
Relacionamento: Composio
Ex:
Empresa

1
1..*

1..*
0..1

Departamento

Escritrio

*
Janela
1
2
Rolagem

0..1
Ttulo

1
Corpo

Elementos Diagrama de
Classes
Agregao X Composio
Sala

Mesa
1

1..n

Andar

1..n

Edifcio

Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Associao
Agregao
Composio

Generalizao
Dependncia

Elementos Diagrama de
Classes
Relacionamento: Generalizao
um relacionamento entre itens gerais (superclasses)
e itens mais especficos (subclasses)

Veculo

superclasse
um
um tipo de
subclasse

Terrestre

Areo

Elementos Diagrama de
Classes
Elementos de um diagrama de classes
Classes
Relacionamentos
Associao
Agregao
Composio

Generalizao
Dependncia

Elementos Diagrama de
Classes
Relacionamento: Dependncia
Representa que a alterao de um objeto (o objeto indepedendente)
pode afetar outro objeto (o objeto dependente)
Ex:

cliente

fornecedor

Obs:
A classe cliente depende de algum servio da classe fornecedor
A mudana de estado do fornecedor afeta o objeto cliente
A classe cliente no declara nos seus atributos um objeto do tipo
fornecedor
Fornecedor recebido por parmetro de mtodo

Exemplo: Sistema de Matrcula

Descrio

A Universidade XYZ deseja informatizar seu sistema de matrculas:


A universidade oferece vrios cursos.
O Coordenador de um curso define as disciplinas que sero oferecidas pelo seu curso num dado
semestre.
Vrias disciplinas so oferecidas em um curso.
Vrias turmas podem ser abertas para uma mesma disciplina, porm o nmero de estudantes
inscritos deve ser entre 3 e 10.
Estudantes selecionam at 4 disciplinas.

Quando um estudante matricula-se para um semestre, o Sistema de Registro Acadmico (SRA)


notificado.
Aps a matrcula, os estudantes podem, por um certo prazo, utilizar o sistema para adicionar ou
remover disciplinas.
Professores usam o sistema para obter a lista de alunos matriculados em suas disciplinas.
Todos os usurios do sistema devem ser validados.

Exemplo: Sistema de Matrcula


Diagrama de Casos de Uso

Exemplo: Sistema de Matrcula


Descrio do Caso de Uso Matricular em Disciplina
Esse caso de uso se inicia quando o Estudante de Curso inicia uma sesso no sistema e apresenta
suas credenciais.
O sistema verifica se a credencial vlida.
O sistema solicita que o estudante realize sua matrcula, selecionando 4 disciplinas.
O estudante preenche um formulrio eletrnico de matrcula e o submete para uma anlise de
consistncia.
O sistema analisa as informaes contidas no formulrio.
Se as informaes so consistentes, o estudante includo em turmas abertas de 4
disciplinas, iniciando pelas preferenciais.
Se as informaes no so consistentes, o sistema informa o motivo da inconsistncia e
solicita que o formulrio seja alterado.

Exemplo: Sistema de Matrcula


Diagrama de Classes: identificando as classes
Professor

Universidade

Coordenador

Disciplina

Estudante

Turma

FormulrioMatrcula

SistemaRegistroAcademico

ListaAlunos

Curso

Exemplo: Sistema de Matrcula

Diagrama de Classes: identificando os relacionamentos

Exemplos de candidatos a relacionamentos:

A parte fsica ou lgica de B.


A est contido fisicamente ou logicamente em B.
A uma descrio de B.
A membro de B.
A subunidade organizacional de B.
A usa ou gerencia B.
A se comunica/interage com B.
A est relacionado com uma transao B.
A possudo por B.
A um tipo de B.

Exemplo: Sistema de Matrcula


Diagrama de Classes: identificando os atributos
Os atributos podem ser encontrados examinando-se as descries dos
casos de uso e tambm pelo conhecimento do domnio do problema.

Cada turma oferecida possui


um cdigo, uma sala e um
horrio.

Turma

cdigo
sala
horrio

Exemplo: Sistema de Matrcula

Diagrama de Classes:

Estudante

est-matriculado-em
3..10

Turma
4

public class Turma {


public class Estudante {
private String nome;
private String codigo;
private String sala;
private String matricula;
private Estudante alunos[];
...
...
}
}

Exemplo: Sistema de Matrcula

Diagrama de Classes:

Acrescentando generalizaes:
Atributos, operaes e/ou relacionamentos comuns podem ser movidos para
uma classe mais geral.

Usuario
nome : Texto
definirNome(nome)
obterNome()

Estudante

Professor

matricula : Inteiro

titulacao : Texto

definirMatricula(matricula)
obterMatricula()

definirTitulacao(titulacao)
obterTitulacao()

Atividades
Modele as classes com as respectivas ligaes para os
seguintes estudos de caso:

Ricardo Pereira e Silva

Agncia de turismo
Empresa organizada por projetos

Diagrama de
objetos
Copyright 2002, 2003 Eduardo Bezerra

36

Alm do diagrama de classes, A UML define um segundo tipo


de diagrama estrutural, o diagrama de objetos.
Pode ser visto com uma instncia de diagramas de classes
Representa uma fotografia do sistema em um certo
momento.

exibe as ligaes formadas entre objetos conforme estes


interagem e os valores dos seus atributos.

Copyright 2002, 2003 Eduardo


Bezerra

Diagrama de objetos

37

Notao para Diagrama de objetos


Formato
nomeClasse
nomeObjeto:
NomeClasse

Exemplo
Pedido
umPedido:
Pedido

Copyright 2002, 2003 Eduardo Bezerra

38

item1 : ItemPedido
quantidade = 6
Pedido1 : Pedido
Produto
dataItemPedido
=Pedido
13/09/2002
hora = 10:00am

item2 : ItemPedido
quantidade = 20

item3 : ItemPedido
quantidade = 1

produto20 : Produto
nome = "Caderno M"
descrio = "Caderno em espiral tamanho mdio"
preoUnitrio = 4,50
desconto = 15
produto12 : Produto
nome = "Caneta ESF"
descrio = "Caneta esferogrfica 5mm"
preoUnitrio = 1,20
desconto = 2
produto07 : Produto
nome = "Esquadro"
descrio = "Esquadro de acrlico 20 cm"
preoUnitrio = 2,35
desconto = 10

Copyright 2002, 2003 Eduardo


Bezerra

Exemplo (Diagrama de
objetos)

39

Exemplo (Diagrama de
objetos)

Aline
Empregado
: Empregado

Antnio : Empregado
Jos : Empregado
Maria : Empregado

Rafaela : Empregado
Copyright 2002, 2003 Eduardo
Bezerra

Joo : Empregado

Lucas : Empregado

40

Bibliografia
LES PUC/RIO
BORATTI, Isaias Camilo. Programao Orientada a Objetos em
Java. Florianpolis - Visual Books:2007.
BEZERRA, Eduardo.Princpios de Anlise e Projeto de
sistemas com UML. Editora Campus, 2 edio:2007.

You might also like