Sei sulla pagina 1di 41
Universidade Federal de Santa Catarina Curso de Tecnologias da Informação e Comunicação Campus Araranguá Diagrama

Universidade Federal de Santa Catarina Curso de Tecnologias da Informação e Comunicação

Campus Araranguá

Diagrama de Classes

Profª Luciana Bolan Frigo

Objetivos

Introdução

Elementos do Diagrama de Classes

Exemplo

Exercício

Objetivos • Introdução • Elementos do Diagrama de Classes • Exemplo • Exercício

Introdução

O diagrama de classes mostra um conjunto de classes e seus relacionamentos.

É o diagrama central da modelagem orientada a objetos.

 

Turma

 

código: Texto

 

está-matriculado-em

sala: Texto

é-ministrada-por

 
 

horario: Horario

 

Aluno

   

Professor

nome: Texto matrícula: Inteiro

estaAberta()

definirProfessor(professor)

nome: Texto

titulação: Texto

 

incluirAluno(aluno)

definirNome(nome)

 

definirNome(nome)

obterNome()

obterNome()

definirMatricula(matricula)

definirTitulacao(titulo)

obterMatricula

obterTitulacao

obterNome() definirMatricula(matricula) definirTitulacao(titulo) obterMatricula obterTitulacao

Elementos Diagrama de

Classes

Elementos de um diagrama de classes

Classes

Relacionamentos (operações de abstração)

Classificação / Instanciação

Associação

• Classificação / Instanciação • Associação • Agregação • Composição • Generalização •

Agregação

Composição

Generalização

Dependência

Elementos Diagrama de

Classes

Elementos de um diagrama de classes

Classes

Relacionamentos (operações de abstração)

Classificação / Instanciação

Associação

• Classificação / Instanciação • Associação • Agregação • Composição • Generalização •

Agregação

Composição

Generalização

Dependência

Elementos Diagrama de

Classes

Classes

Graficamente, as classes são representadas por retângulos incluindo nome, atributos e métodos.

Nome_da_classe

atributo1

atributo2

metodo1

metodo2

metodo3

Devem receber nomes de acordo com o vocabulário do domínio do problema.

É comum adotar um padrão para nomeá-las

Ex: todos os nomes de classes serão substantivos singulares com a primeira letra maiúscula

um padrão para nomeá-las Ex: todos os nomes de classes serão substantivos singulares com a primeira

Elementos Diagrama de

Classes

Classes

Métodos Representam o conjunto de operações

(comportamento)

que a classe fornece Exemplo:

- getNome() : String

Atributos Representam o conjunto de características (estado) dos objetos daquela classe Exemplo:

+ nome : String

dos objetos daquela classe Exemplo: + nome : String Visibilidade: + público: visível em qualquer classe

Visibilidade:

+ público: visível em qualquer classe de qualquer pacote # protegido: visível para classes do mesmo pacote - privado: visível somente para classe

© LES/PUC-Rio

Elementos Diagrama de

Classes

Elementos de um diagrama de classes

Classes

Relacionamentos (operações de abstração)

Classificação / Instanciação

Associação

• Classificação / Instanciação • Associação • Agregação • Composição • Generalização •

Agregação

Composição

Generalização

Dependência

© LES/PUC-Rio

Elementos Diagrama de

Classes

Relacionamentos

Os relacionamentos possuem:

Nome: descrição dada ao relacionamento (faz, tem, possui,

Sentido de leitura

Navegabilidade: indicada por uma seta no fim do relacionamento

Multiplicidade: 0

*,

Tipo: associação (agregação, composição), generalização e dependência

2, 3

)

1,

0

*,

1, 1

7

Papéis: desempenhados por classes em um relacionamento

generalização e dependência 2, 3 ) 1, 0 *, 1, 1 7 • Papéis: desempenhados por

Elementos Diagrama de

Classes

nome

• Relacionamentos multiplicidade sentido de leitura 1 * trabalha para Pessoa * Empresa empregado empregador
• Relacionamentos
multiplicidade
sentido de leitura
1
*
trabalha para
Pessoa
* Empresa
empregado
empregador
Tipo: associação

papéis

navegabilidade reside Cliente Endereço 1 *
navegabilidade
reside
Cliente
Endereço
1
*
papéis navegabilidade reside Cliente Endereço 1 * • O cliente sabe quais são seus o

O

cliente

sabe

quais

são

seus

o

endereço não sabe

endereços,

mas

a quais

clientes

pertence

Elementos Diagrama de

Classes

Elementos de um diagrama de classes

Classes

Relacionamentos

Classificação / Instanciação

Associação

• Classificação / Instanciação • Associação • Agregação • Composição • Generalização •

Agregação

Composição

Generalização

Dependência

© LES/PUC-Rio

Elementos Diagrama de

Classes

Relacionamentos: Classificação/ Instanciação

Classificação: operação que tem por objetivo, através da análise das características de um objeto, definir a que classe ele pertence.

Instanciação: operação que, dada uma determinada classe, define (ou constrói) um objeto pertencente a essa classe.

Automóvel modelo placa movimento parado
Automóvel
modelo
placa
movimento
parado

Classe - categoria

modelo placa movimento parado Classe - categoria Instanciação Classificação Vectra da Maria Objeto -

Instanciação

placa movimento parado Classe - categoria Instanciação Classificação Vectra da Maria Objeto - entidade Fusca do

Classificação

movimento parado Classe - categoria Instanciação Classificação Vectra da Maria Objeto - entidade Fusca do José

Vectra da Maria

Objeto - entidade

Fusca do José

movimento parado Classe - categoria Instanciação Classificação Vectra da Maria Objeto - entidade Fusca do José

Elementos Diagrama de Classes

Relacionamentos: Associação

Uma associação é um relacionamento estrutural que indica que os

objetos de uma classe estão vinculados a objetos de outra classe.

Uma associação é representada por uma linha sólida conectando duas classes.

Pessoa

Pessoa
Pessoa Empresa
Pessoa Empresa

Empresa

Empresa
associação é representada por uma linha sólida conectando duas classes. Pessoa Empresa associação © LES/PUC-Rio

associação

© LES/PUC-Rio

Elementos Diagrama de

Classes

Relacionamentos: Associação

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)

1 Zero ou um • m n Faixa de valores (por exemplo: 4 7) multiplicidade Pessoa

multiplicidade

• m n Faixa de valores (por exemplo: 4 7) multiplicidade Pessoa 1 * trabalha para

Pessoa

1

*

trabalha para

*

Empresa

 
(por exemplo: 4 7) multiplicidade Pessoa 1 * trabalha para * Empresa   associação © LES/PUC-Rio

associação

© LES/PUC-Rio

Relacionamentos: Associação

Relacionamentos: Associação

Exemplo:

Um Estudante pode ser um aluno de uma Disciplina

Cada Disciplina deve ser cursada por no mínimo 1 aluno

Um aluno pode cursar de 0 até 8 disciplinas

Disciplina • Cada Disciplina deve ser cursada por no mínimo 1 aluno • Um aluno pode
Disciplina • Cada Disciplina deve ser cursada por no mínimo 1 aluno • Um aluno pode

Elementos Diagrama de

Classes

Elementos de um diagrama de classes

Classes

Relacionamentos

de um diagrama de classes • Classes • Relacionamentos • Associação • Agregação •

Associação

Agregação

Composição

Generalização

Dependência

Elementos Diagrama de

Classes

Relacionamento: Agregação

É um tipo especial de associação

Utilizada para indicar “todo-parte”

Todo/ classe agregadora

Parte/ classe agregada

a r t e / c l a s s e a g r e g
a r t e / c l a s s e a g r e g

1

*

Item

Pedido

1

s s e a g r e g a d a 1 * Item Pedido 1
s s e a g r e g a d a 1 * Item Pedido 1

agregação

um objeto “parte” pode fazer parte de vários objetos “todo”

* Item Pedido 1 agregação • um objeto “parte” pode fazer parte de vários objetos “todo”

© LES/PUC-Rio

Elementos Diagrama de

Classes

Elementos – Diagrama de Classes Relacionamento: Agregação Motor +potência +cilindrada +combustível

Relacionamento: Agregação

Motor

+potência

+cilindrada

+combustível

+ligar()

+desligar()

+cilindrada +combustível +ligar() +desligar() Veículo Placa +cidade +estado +código alfabético

Veículo

Placa

+cidade

+estado

+código alfabético

+código numérico

+combustível +ligar() +desligar() Veículo Placa +cidade +estado +código alfabético +código numérico

Elementos Diagrama de

Classes

Elementos de um diagrama de classes

Classes

Relacionamentos

de um diagrama de classes • Classes • Relacionamentos • Associação • Agregação •

Associação

Agregação

Composição

Generalização

Dependência

© LES/PUC-Rio

Elementos Diagrama de

Classes

Relacionamento: Composição ou Agregação forte

É uma variante semanticamente mais “forte” da agregação

Os objetos “parte” só podem pertencer a um único objeto “todo” e têm o seu tempo de vida coincidente com o dele

1

Notebook

1

Teclado

tempo de vida coincidente com o dele 1 Notebook 1 Teclado 1 0 * Frame Window

1

0

*

Frame

Window

com o dele 1 Notebook 1 Teclado 1 0 * Frame Window 1 * 0 *
1 * 0
1
*
0

*

dele 1 Notebook 1 Teclado 1 0 * Frame Window 1 * 0 * errado •

errado

Quando o “todo” morre todas as suas “partes” também morrem

Frame Window 1 * 0 * errado • Quando o “todo” morre todas as suas “partes”

© LES/PUC-Rio

Elementos Diagrama de

Classes

Relacionamento: Composição

Ex: Empresa 1 1 * 1 * 0 1 Departamento Escritório *
Ex:
Empresa
1
1
*
1
*
0
1
Departamento
Escritório
*
 

Janela

 
1

1

2

   

0

1

1

Rolagem

Título

Corpo

Departamento Escritório *   Janela   1 2     0 1 1 Rolagem Título Corpo

Elementos Diagrama de

Classes

Agregação X Composição

Sala

Mesa

Elementos – Diagrama de Classes • Agregação X Composição Sala Mesa 11 1 1 n n

11

1 1 n n Andar
1
1
n n
Andar

Edifício

Edifício
Edifício

1 1

n n

Elementos – Diagrama de Classes • Agregação X Composição Sala Mesa 11 1 1 n n
Elementos – Diagrama de Classes • Agregação X Composição Sala Mesa 11 1 1 n n

Elementos Diagrama de

Classes

Elementos de um diagrama de classes

Classes

Relacionamentos

de um diagrama de classes • Classes • Relacionamentos • Associação • Agregação •

Associação

Agregação

Composição

Generalização

Dependência

Elementos Diagrama de

Classes

Relacionamento: Generalização

É

um relacionamento entre itens gerais (superclasses)

e

itens mais específicos (subclasses)

(superclasses) e itens mais específicos (subclasses) superclasse “é um” “é um tipo de” subclasse
(superclasses) e itens mais específicos (subclasses) superclasse “é um” “é um tipo de” subclasse

superclasse

“é um” “é um tipo de”

itens mais específicos (subclasses) superclasse “é um” “é um tipo de” subclasse Veículo Terrestre Aéreo

subclasse

itens mais específicos (subclasses) superclasse “é um” “é um tipo de” subclasse Veículo Terrestre Aéreo
Veículo Terrestre Aéreo
Veículo
Terrestre
Aéreo

Elementos Diagrama de

Classes

Elementos de um diagrama de classes

Classes

Relacionamentos

de um diagrama de classes • Classes • Relacionamentos • Associação • Agregação •

Associação

Agregação

Composição

Generalização

Dependência

Elementos Diagrama de

Classes

Relacionamento: Dependência

Representa que a alteração de um objeto (o objeto indepedendente) pode afetar outro objeto (o objeto dependente)

Ex:

 

cliente

  cliente fornecedor  

fornecedor

 

Obs:

A classe cliente depende de algum serviço da classe fornecedor

 

A mudança de estado do fornecedor afeta o objeto cliente

A classe cliente não declara nos seus atributos um objeto do tipo fornecedor

Fornecedor é recebido por parâmetro de método

não declara nos seus atributos um objeto do tipo fornecedor • Fornecedor é recebido por parâmetro

Exemplo: Sistema de Matrícula

Descrição

A Universidade XYZ deseja informatizar seu sistema de matrículas:

A universidade oferece vários cursos.

O Coordenador de um curso define as disciplinas que serão oferecidas pelo seu curso num dado semestre.

Várias disciplinas são oferecidas em um curso.

Várias turmas podem ser abertas para uma mesma disciplina, porém o número 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 Acadêmico (SRA) é

notificado.

Após a matrícula, 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 usuários do sistema devem ser validados.

obter a lista de alunos matriculados em suas disciplinas . • Todos os usuários do sistema

Exemplo: Sistema de Matrícula

Diagrama de Casos de Uso

Exemplo: Sistema de Matrícula Diagrama de Casos de Uso
Exemplo: Sistema de Matrícula Diagrama de Casos de Uso

Exemplo: Sistema de Matrícula

Descrição do Caso de Uso “Matricular em Disciplina”

Esse caso de uso se inicia quando o Estudante de Curso inicia uma sessão no sistema e apresenta

suas credenciais.

O sistema verifica se a credencial é válida.

O sistema solicita que o estudante realize sua matrícula, selecionando 4 disciplinas.

O estudante preenche um formulário eletrônico de matrícula e o submete para uma análise de consistência.

O sistema analisa as informações contidas no formulário.

Se as informações são consistentes, o estudante é incluído em turmas abertas de 4 disciplinas, iniciando pelas preferenciais.

Se as informações não são consistentes, o sistema informa o motivo da inconsistência e solicita que o formulário seja alterado.

não são consistentes, o sistema informa o motivo da inconsistência e solicita que o formulário seja

Exemplo: Sistema de Matrícula

Diagrama de Classes: identificando as classes

Professor

Universidade

Coordenador

Estudante

Disciplina

Turma

Curso

FormulárioMatrícula

SistemaRegistroAcademico

ListaAlunos

Universidade Coordenador Estudante Disciplina Turma Curso FormulárioMatrícula SistemaRegistroAcademico ListaAlunos

Exemplo: Sistema de Matrícula

Diagrama de Classes: identificando os relacionamentos

Exemplos de candidatos a relacionamentos:

A é parte física ou lógica de B.

A está contido fisicamente ou logicamente em B.

A é uma descrição 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 transação B.

A é possuído por B.

A é um tipo de B.

com B . • A está relacionado com uma transação B . • A é possuído

Exemplo: Sistema de Matrícula

Diagrama de Classes: identificando os atributos

Os atributos podem ser encontrados examinando-se as descrições dos casos de uso e também pelo conhecimento do domínio do problema.

Cada turma oferecida possui

um código, uma sala e um

horário.

do problema. • Cada turma oferecida possui um código, uma sala e um horário. Turma código
do problema. • Cada turma oferecida possui um código, uma sala e um horário. Turma código

Turma

código

sala

horário

Exemplo: Sistema de Matrícula

Diagrama de Classes:

Estudante

Turma

está-matriculado-em

Diagrama de Classes: Estudante Turma está-matriculado-em 3 3 10 10 4 public class Estudante { private

3

3

10

10

4

public class Estudante { private String nome; private String matricula;

}

public class Turma {

private String codigo;

private String sala; private Estudante alunos[];

}

private String matricula; } public class Turma { private String codigo; private String sala; private Estudante

Exemplo: Sistema de Matrícula

Diagrama de Classes:

Acrescentando generalizações:

Atributos, operações e/ou relacionamentos comuns podem ser movidos para uma classe mais geral.

comuns podem ser movidos para uma classe mais geral. Usuario nome : Texto definirNome(nome) obterNome()

Usuario

nome : Texto

definirNome(nome)

obterNome()

Usuario nome : Texto definirNome(nome) obterNome() Estudante matricula : Inteiro

Estudante

matricula : Inteiro

definirMatricula(matricula)

obterMatricula()

Inteiro definirMatricula(matricula) obterMatricula() Professor titulacao : Texto

Professor

titulacao : Texto

definirTitulacao(titulacao)

obterTitulacao()

© Ricardo Pereira e Silva

Atividades

Modele as classes com as respectivas ligações para os

seguintes estudos de caso:

Agência de turismo

Empresa organizada por projetos

as respectivas ligações para os seguintes estudos de caso:  Agência de turismo  Empresa organizada

Diagrama de objetos

Copyright 2002, 2003 Eduardo Bezerra

36

Copyright 2002, 2003 Eduardo Bezerra

Diagrama de objetos

Além do diagrama de classes, A UML define um segundo tipo

de diagrama estrutural, o diagrama de objetos.

Pode ser visto com uma instância de diagramas de classes

Representa uma “fotografia” do sistema em um certo

momento.

exibe as ligações formadas entre objetos conforme estes interagem e os valores dos seus atributos.

momento. • exibe as ligações formadas entre objetos conforme estes interagem e os valores dos seus
37
37

Notação para Diagrama de objetos

Formato

Exemplo

nomeClasse

Pedido

nomeObjeto:

umPedido:

NomeClasse

Pedido

Copyright 2002, 2003 Eduardo Bezerra

38
38

Copyright 2002, 2003 Eduardo Bezerra

Exemplo (Diagrama de

objetos)

produto20 : Produto

nome = "Caderno M"

descrição = "Caderno em espiral tamanho médio"

preçoUnitário = 4,50

desconto = 15

médio" preçoUnitário = 4,50 desconto = 15 item1 : ItemPedido quantidade = 6 Pedido1 : Pedido

item1 : ItemPedido

quantidade = 6

4,50 desconto = 15 item1 : ItemPedido quantidade = 6 Pedido1 : Pedido da ta =
4,50 desconto = 15 item1 : ItemPedido quantidade = 6 Pedido1 : Pedido da ta =

Pedido1 : Pedido

data = 13/09/2002

I

tPe mr oPdeudt oi d o

e d i d o

P

da ta = 13/09/20 02 I tPe mr oPdeudt oi d o e d i d

hora = 10:00am

produto12 : Produto

nome = "Caneta ESF"

descrição = "Caneta esferográfica 5mm"

preçoUnitário = 1,20

desconto = 2

produto07 : Produto

nome = "Esquadro"

descrição = "Esquadro de acrílico 20 cm"

preçoUnitário = 2,35

desconto = 10

item2 : ItemPedido

quantidade = 20

preçoUnitário = 2,35 desconto = 10 item2 : ItemPedido quantidade = 20 item3 : ItemPedido quantidade

item3 : ItemPedido

quantidade = 1

preçoUnitário = 2,35 desconto = 10 item2 : ItemPedido quantidade = 20 item3 : ItemPedido quantidade
preçoUnitário = 2,35 desconto = 10 item2 : ItemPedido quantidade = 20 item3 : ItemPedido quantidade
39
39

Copyright 2002, 2003 Eduardo

Bezerra

Exemplo (Diagrama de

objetos)

João : Empregado

Bezerra Exemplo (Diagrama de objetos) João : Empregado Rafaela : Empregado Antônio : Empregado E m

Rafaela : Empregado

(Diagrama de objetos) João : Empregado Rafaela : Empregado Antônio : Empregado E m p r

Antônio : Empregado

E m p r e g a d o

E m p r e g a d o

E m p r e g a d o Aline : Empregado

Aline : Empregado

Antônio : Empregado E m p r e g a d o Aline : Empregado José

José : Empregado

Lucas : Empregado

Maria : Empregado

Antônio : Empregado E m p r e g a d o Aline : Empregado José
40
40

Bibliografia

LES PUC/RIO

BORATTI, Isaias Camilo. Programação Orientada a Objetos em Java. Florianópolis - Visual Books:2007.

BEZERRA, Eduardo.Princípios de Análise e Projeto de sistemas com UML. Editora Campus, 2ª edição:2007.

• BEZERRA, Eduardo. Princípios de Análise e Projeto de sistemas com UML . Editora Campus, 2ª