SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
UML – Diagrama de Classes
• Introdução – Diagrama de classes
• Elementos do diagrama de classes
• Exemplo: Sistema de matrícula
Introdução - Diagrama de Classes
• Mostra um conjunto de classes e seus relacionamentos.
• É o diagrama central da modelagem orientada a objetos.

Turma
está-matriculado-em

Aluno
nome: Texto
matrícula: Inteiro
definirNome(nome)
obterNome()
definirMatricula(matricula)
obterMatricula

código: Texto
sala: Texto
horario: Horario

estaAberta()
definirProfessor(professor)
incluirAluno(aluno)

é-ministrada-por

Professor
nome: Texto
titulação: Texto
definirNome(nome)
obterNome()
definirTitulacao(titulo)
obterTitulacao
Elementos – Diagrama de Classes
• Elementos de um diagrama de classes
– Classes
– Relacionamentos
• Associação
– Agregação
– Composição

• Generalização
• Dependência
Elementos – Diagrama de Classes
• Elementos de um diagrama de classes
– Classes
– Relacionamentos
• Associaçã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
Elementos – Diagrama de Classes
Classes
• Atributos
– Representam o conjunto de características (estado)
dos objetos daquela 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

Exemplo:
+ nome : String
Elementos – Diagrama de Classes
Classes
• Métodos
– Representam o conjunto de operações (comportamento)
que a classe fornece
– 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

Exemplo:
- getNome() : String
Elementos – Diagrama de Classes
• Elementos de um diagrama de classes
– Classes
– Relacionamentos
• Associação
– Agregação
– Composição

• Generalização
• Dependência
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..1, 0..*, 1, 1..*, 2, 3..7
– Tipo: associação (agregação, composição), generalização e
dependência
– Papéis: desempenhados por classes em um relacionamento
Elementos – Diagrama de Classes
• Relacionamentos

nome
multiplicidade

Pessoa

1..*

sentido de leitura

trabalha para

empregado

*

Empresa

empregador

Tipo: associação

papéis

E a navegabilidade?
Elementos – Diagrama de Classes
• Relacionamentos

navegabilidade

reside

Cliente

1

*

Endereço

• O cliente sabe quais são seus endereços, mas o endereço não sabe
a quais clientes pertence
Elementos – Diagrama de Classes
• Elementos de um diagrama de classes
– Classes
– Relacionamentos
• Associação
– Agregação
– Composição

• Generalização
• Dependência
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

Empresa
associação
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)

multiplicidade

Pessoa

1..*

trabalha para

associação

*

Empresa
Relacionamentos: Associação
Relacionamentos: Associação
Exemplo:
• Um Estudante pode ser
um aluno de uma Disciplina e
um jogador da Equipe de Futebol
• Cada Disciplina deve ser cursada por no mínimo 1 aluno
• Um aluno pode cursar de 0 até 8 disciplinas
Elementos – Diagrama de Classes
• Elementos de um diagrama de classes
– Classes
– Relacionamentos
• 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

parte

Pedido

1

1..*

Item

agregação

– um objeto “parte” pode fazer parte de vários objetos “todo”
Elementos – Diagrama de Classes
• Elementos de um diagrama de classes
– Classes
– Relacionamentos
• Associação
– Agregação
– Composição

• Generalização
• Dependência
Elementos – Diagrama de Classes
• Relacionamento: Composição
– É 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

Notebook
Window
1..*

1

1

1

0..*
0..*

Teclado
Frame
errado

– Quando o “todo” morre todas as suas “partes” também morrem
Elementos – Diagrama de Classes
• Relacionamento: Composição
Ex:
Empresa
1
1..*

1..*
0..1

Departamento

Escritório

*
Janela
1
2
Scroll

0..1
Título

1
Corpo
Elementos – Diagrama de Classes
• Agregação X Composição

Sala

Mesa
1

1..n

Andar

1..n

Edifício
Elementos – Diagrama de Classes
• Elementos de um diagrama de classes
– Classes
– Relacionamentos
• 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)

Veículo

superclasse
“é um”
“é um tipo de”
subclasse

Terrestre

Aéreo
Elementos – Diagrama de Classes
• Elementos de um diagrama de classes
– Classes
– Relacionamentos
• 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

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
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 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.
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.
Exemplo: Sistema de Matrícula
Diagrama de Classes: identificando as classes

Professor

Universidade

Coordenador

Disciplina

FormularioMatricula

SistemaRegistroAcademico

Estudante

Turma

AnalisadorMatricula

ListaAlunos

Curso
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.
Exemplo: Sistema de Matrícula
Diagrama de Classes: identificando os relacionamentos

• O formulário de matrícula é processado por um analisador
de matrícula
é-processado-por

FormularioMatricula

0..*

AnalisadorMatricula
1

• O analisador de matrícula gerencia a disciplina
FormularioMatricula

é-processado-por
0..*

AnalisadorMatricula
1

1

0..*

Disciplina
Exemplo: Sistema de Matrícula
Diagrama de Classes

FormularioMatricula

é-processado-por
0..*

1

AnalisadorMatricula
1

1
gerencia
0..*

é-preenchido-por

é-definida-por

Disciplina

1..*

Coordenador

1

1

aluno

1..*

1
está-matriculado-em

Estudante
3..10

Turma
4

é-ministrada-por
0..3

Professor
1
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.

Turma
código
sala
horário
Exemplo: Sistema de Matrícula
Diagrama de Classes

é-processado-por

FormularioMatricula

0..*
1

AnalisadorMatricula
1

1
gerencia
0..*

Disciplina
é-preenchido-por

nome
numCréditos

é-definida-por
1..*

1

Coordenador

1
1..*
aluno

1

Estudante
nome
matricula

Turma
está-matriculado-em
3..10

4

código
sala
horário

é-ministrada-por
0..3

1

Professor
nome
titulação
Exemplo: Sistema de Matrícula
Diagrama de Classes: identificando os métodos
– Somente depois de modelar os diagramas de seqüência

: SIM

: AnalisadorMatricula

AnalisadorMatricula
adicionar(aluno, disciplina)

1: submeterFormulario(f)

2: adicionar(a,d )

SIM
submeterFormulario(formulario)
Exemplo: Sistema de Matrícula
Diagrama de Classes:

• E a navegabilidade?

Estudante

está-matriculado-em
3..10

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

Turma

4
public class Turma {
private String codigo;
private String sala;
private Estudante alunos[];
...
}

OBS: Turma não aparece como atributo de 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.
Us uario
nome : Texto
definirNome(nome)
obterNome()

Estudante

Professor

matricula : Inteiro

titulacao : Texto

definirMatricula(matricula)
obterMatricula()

definirTitulacao(titul acao)
obterTitulacao()
Exemplo: Sistema de Matrícula
FormularioMatricula

é -processado-por

obterEstudante() : Estudante
obterNomeDIsciplina(i : Inteiro) : Texto

0.. *

AnalisadorMatricula
1 adicion ar(alun o, di scipli na) 1
1

1

é-preenchido-por
-aluno

gerencia

1
0..*

Estudante

Disciplina

matricula : Inteiro
definirMatricula(matricula)
obterMatricula()

nome : Texto
numCreditos : Inteiro
3.. 10

estaCompleta()
adicionar(aluno : Estudante)
1

está-matriculado-em

Usuario
nome : Texto
definirNome(nome)
obterNome()

1..*

Turma

Professor

responsável-por

titulacao : Texto
0..3

definirTitulacao(titulacao)
obterTitulacao()

codigo : Texto
sala : Texto
4 horario : Horario
numAlunos : Inteiro
completa : Booleano
1

estaCompleta() : Booleano

SIM

usa
1

Mais conteúdo relacionado

Mais procurados

POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...Marcello Thiry
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02thomasdacosta
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoLeinylson Fontinele
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLNatanael Simões
 
Diagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasDiagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasOctviodeOliveiraJorg
 
E Commerce Apresentacao Final
E Commerce Apresentacao FinalE Commerce Apresentacao Final
E Commerce Apresentacao FinalNuno Mestre
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoRudson Kiyoshi Souza Carvalho
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane FidelixCris Fidelix
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosMessias Batista
 
Sistemas de Informações - Aula 07: Sistemas de Processamento de Transações (SPT)
Sistemas de Informações - Aula 07: Sistemas de Processamento de Transações (SPT)Sistemas de Informações - Aula 07: Sistemas de Processamento de Transações (SPT)
Sistemas de Informações - Aula 07: Sistemas de Processamento de Transações (SPT)Marcus Araújo
 
Redes I - 5.2 Tecnologias de Redes WAN
Redes I - 5.2 Tecnologias de Redes WANRedes I - 5.2 Tecnologias de Redes WAN
Redes I - 5.2 Tecnologias de Redes WANMauro Tapajós
 
Segurança da informação
Segurança da informaçãoSegurança da informação
Segurança da informaçãoEmerson Rocha
 

Mais procurados (20)

POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição  (ver...
POO - Unidade 2 (parte 2) - Classe de Associação, Agregação, Composição (ver...
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Aula 7 banco de dados
Aula 7   banco de dadosAula 7   banco de dados
Aula 7 banco de dados
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
 
Diagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasDiagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas Compostas
 
E Commerce Apresentacao Final
E Commerce Apresentacao FinalE Commerce Apresentacao Final
E Commerce Apresentacao Final
 
Aula 5 banco de dados
Aula 5   banco de dadosAula 5   banco de dados
Aula 5 banco de dados
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
 
Colágeno
Colágeno Colágeno
Colágeno
 
03 mer2
03 mer203 mer2
03 mer2
 
Aula 6 banco de dados
Aula 6   banco de dadosAula 6   banco de dados
Aula 6 banco de dados
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
 
Sistemas de Informações - Aula 07: Sistemas de Processamento de Transações (SPT)
Sistemas de Informações - Aula 07: Sistemas de Processamento de Transações (SPT)Sistemas de Informações - Aula 07: Sistemas de Processamento de Transações (SPT)
Sistemas de Informações - Aula 07: Sistemas de Processamento de Transações (SPT)
 
Aula diagrama de classes
Aula diagrama de classesAula diagrama de classes
Aula diagrama de classes
 
Tecido epitelial
Tecido epitelialTecido epitelial
Tecido epitelial
 
Redes I - 5.2 Tecnologias de Redes WAN
Redes I - 5.2 Tecnologias de Redes WANRedes I - 5.2 Tecnologias de Redes WAN
Redes I - 5.2 Tecnologias de Redes WAN
 
Segurança da informação
Segurança da informaçãoSegurança da informação
Segurança da informação
 

Destaque

Destaque (11)

Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 
Modulo Algorítmica III - Julio Vasquez
Modulo Algorítmica III - Julio VasquezModulo Algorítmica III - Julio Vasquez
Modulo Algorítmica III - Julio Vasquez
 
Diagrama de Classe
Diagrama de ClasseDiagrama de Classe
Diagrama de Classe
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Projeto de sistemas com UML - Parte 2
Projeto de sistemas com UML - Parte 2Projeto de sistemas com UML - Parte 2
Projeto de sistemas com UML - Parte 2
 
Aula7 diagrama classes
Aula7 diagrama classesAula7 diagrama classes
Aula7 diagrama classes
 
Aula 7 diagramas_classes2
Aula 7 diagramas_classes2Aula 7 diagramas_classes2
Aula 7 diagramas_classes2
 
Banco de Dados
Banco de DadosBanco de Dados
Banco de Dados
 
Diagrama de Atividades - UML
Diagrama de Atividades - UMLDiagrama de Atividades - UML
Diagrama de Atividades - UML
 
Aula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoAula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniao
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 

Semelhante a UML Diagrama de Classes - Introdução e Elementos

Diagrama de Classes (8).pdf
Diagrama de Classes (8).pdfDiagrama de Classes (8).pdf
Diagrama de Classes (8).pdfJean440975
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoVinícius de Paula
 
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxAula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxCarlos Albuquerque
 
diagrama-classes definição para curso professional
diagrama-classes definição para curso professionaldiagrama-classes definição para curso professional
diagrama-classes definição para curso professionalJoaquina30
 
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosCláudio Amaral
 
Apresentação sobre Diagrama de Classes com exemplos
Apresentação sobre Diagrama de Classes com exemplosApresentação sobre Diagrama de Classes com exemplos
Apresentação sobre Diagrama de Classes com exemplosmauroladeiafilho
 
Diagrama de classe aula 02 PDF para UML.
Diagrama de classe aula 02 PDF para UML.Diagrama de classe aula 02 PDF para UML.
Diagrama de classe aula 02 PDF para UML.NunoVieira83
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classesMarco Coelho
 
[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UMLChristopher Cerqueira
 
Apostila bancodedados (2)
Apostila bancodedados (2)Apostila bancodedados (2)
Apostila bancodedados (2)Reuel Lopes
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaMoises Omena
 
Aula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdfAula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdfCelestino24
 

Semelhante a UML Diagrama de Classes - Introdução e Elementos (20)

Diagrama de Classes (8).pdf
Diagrama de Classes (8).pdfDiagrama de Classes (8).pdf
Diagrama de Classes (8).pdf
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe
 
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxAula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
 
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de ClassesAnálise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
diagrama-classes definição para curso professional
diagrama-classes definição para curso professionaldiagrama-classes definição para curso professional
diagrama-classes definição para curso professional
 
Aula 5 uml1 (1)
Aula 5   uml1 (1)Aula 5   uml1 (1)
Aula 5 uml1 (1)
 
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e Relacionamentos
 
Apresentação sobre Diagrama de Classes com exemplos
Apresentação sobre Diagrama de Classes com exemplosApresentação sobre Diagrama de Classes com exemplos
Apresentação sobre Diagrama de Classes com exemplos
 
Diagrama de classe aula 02 PDF para UML.
Diagrama de classe aula 02 PDF para UML.Diagrama de classe aula 02 PDF para UML.
Diagrama de classe aula 02 PDF para UML.
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classes
 
[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML
 
Apostila bancodedados (2)
Apostila bancodedados (2)Apostila bancodedados (2)
Apostila bancodedados (2)
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
 
Aula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdfAula 3-IDB - Modelo Conceptual-2.pdf
Aula 3-IDB - Modelo Conceptual-2.pdf
 
Trabalho de análise e projeto 2
Trabalho de análise e projeto 2Trabalho de análise e projeto 2
Trabalho de análise e projeto 2
 
SGBD - Aula 2
SGBD - Aula 2SGBD - Aula 2
SGBD - Aula 2
 

Mais de Luciano Almeida

Reunião tutores avaliação
Reunião tutores   avaliaçãoReunião tutores   avaliação
Reunião tutores avaliaçãoLuciano Almeida
 
Fluxo de Notas no Moodle
Fluxo de Notas no MoodleFluxo de Notas no Moodle
Fluxo de Notas no MoodleLuciano Almeida
 
Oficina de ambientação Moodle
Oficina de ambientação MoodleOficina de ambientação Moodle
Oficina de ambientação MoodleLuciano Almeida
 
Sensibilidade ao contexto na computação ubíqua
Sensibilidade ao contexto na computação ubíquaSensibilidade ao contexto na computação ubíqua
Sensibilidade ao contexto na computação ubíquaLuciano Almeida
 
Módulo Livro no Moodle 2.6
Módulo Livro no Moodle 2.6Módulo Livro no Moodle 2.6
Módulo Livro no Moodle 2.6Luciano Almeida
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoLuciano Almeida
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoLuciano Almeida
 
Oficina de ambientação
Oficina de ambientaçãoOficina de ambientação
Oficina de ambientaçãoLuciano Almeida
 
Apresentação apostila 10 inper sala 15
Apresentação apostila 10   inper sala 15Apresentação apostila 10   inper sala 15
Apresentação apostila 10 inper sala 15Luciano Almeida
 
PRÁTICA DE GESTÃO: ADMINISTRAÇÃO ESTRATÉGICA - Grupo 4
PRÁTICA DE GESTÃO: ADMINISTRAÇÃO ESTRATÉGICA - Grupo 4PRÁTICA DE GESTÃO: ADMINISTRAÇÃO ESTRATÉGICA - Grupo 4
PRÁTICA DE GESTÃO: ADMINISTRAÇÃO ESTRATÉGICA - Grupo 4Luciano Almeida
 
PRÁTICAS DE GESTÃO – Administração Estratégica - GRUPO 3
PRÁTICAS DE GESTÃO – Administração Estratégica - GRUPO 3PRÁTICAS DE GESTÃO – Administração Estratégica - GRUPO 3
PRÁTICAS DE GESTÃO – Administração Estratégica - GRUPO 3Luciano Almeida
 
Tipos de Organização e o processo administrativo - GRUPO1
Tipos de Organização e o processo administrativo - GRUPO1Tipos de Organização e o processo administrativo - GRUPO1
Tipos de Organização e o processo administrativo - GRUPO1Luciano Almeida
 
Oficina de ambientação de tutores no Moodle
Oficina de ambientação de tutores no MoodleOficina de ambientação de tutores no Moodle
Oficina de ambientação de tutores no MoodleLuciano Almeida
 
Erros implantação do SCRUM
Erros implantação do SCRUMErros implantação do SCRUM
Erros implantação do SCRUMLuciano Almeida
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareLuciano Almeida
 

Mais de Luciano Almeida (20)

Reunião tutores avaliação
Reunião tutores   avaliaçãoReunião tutores   avaliação
Reunião tutores avaliação
 
Heuristicas De Nielsen
Heuristicas De NielsenHeuristicas De Nielsen
Heuristicas De Nielsen
 
Fluxo de Notas no Moodle
Fluxo de Notas no MoodleFluxo de Notas no Moodle
Fluxo de Notas no Moodle
 
Oficina de ambientação Moodle
Oficina de ambientação MoodleOficina de ambientação Moodle
Oficina de ambientação Moodle
 
Sensibilidade ao contexto na computação ubíqua
Sensibilidade ao contexto na computação ubíquaSensibilidade ao contexto na computação ubíqua
Sensibilidade ao contexto na computação ubíqua
 
Módulo Livro no Moodle 2.6
Módulo Livro no Moodle 2.6Módulo Livro no Moodle 2.6
Módulo Livro no Moodle 2.6
 
Scrum
ScrumScrum
Scrum
 
Visaogeraldorup
VisaogeraldorupVisaogeraldorup
Visaogeraldorup
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A Objeto
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contexto
 
Oficina de ambientação
Oficina de ambientaçãoOficina de ambientação
Oficina de ambientação
 
Apresentação apostila 10 inper sala 15
Apresentação apostila 10   inper sala 15Apresentação apostila 10   inper sala 15
Apresentação apostila 10 inper sala 15
 
PRÁTICA DE GESTÃO: ADMINISTRAÇÃO ESTRATÉGICA - Grupo 4
PRÁTICA DE GESTÃO: ADMINISTRAÇÃO ESTRATÉGICA - Grupo 4PRÁTICA DE GESTÃO: ADMINISTRAÇÃO ESTRATÉGICA - Grupo 4
PRÁTICA DE GESTÃO: ADMINISTRAÇÃO ESTRATÉGICA - Grupo 4
 
PRÁTICAS DE GESTÃO – Administração Estratégica - GRUPO 3
PRÁTICAS DE GESTÃO – Administração Estratégica - GRUPO 3PRÁTICAS DE GESTÃO – Administração Estratégica - GRUPO 3
PRÁTICAS DE GESTÃO – Administração Estratégica - GRUPO 3
 
Tipos de Organização e o processo administrativo - GRUPO1
Tipos de Organização e o processo administrativo - GRUPO1Tipos de Organização e o processo administrativo - GRUPO1
Tipos de Organização e o processo administrativo - GRUPO1
 
Oficina de ambientação de tutores no Moodle
Oficina de ambientação de tutores no MoodleOficina de ambientação de tutores no Moodle
Oficina de ambientação de tutores no Moodle
 
Erros implantação do SCRUM
Erros implantação do SCRUMErros implantação do SCRUM
Erros implantação do SCRUM
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Todasexta
TodasextaTodasexta
Todasexta
 
Mapas Mentais e GTD
Mapas Mentais e GTDMapas Mentais e GTD
Mapas Mentais e GTD
 

UML Diagrama de Classes - Introdução e Elementos

  • 1. UML – Diagrama de Classes • Introdução – Diagrama de classes • Elementos do diagrama de classes • Exemplo: Sistema de matrícula
  • 2. Introdução - Diagrama de Classes • Mostra um conjunto de classes e seus relacionamentos. • É o diagrama central da modelagem orientada a objetos. Turma está-matriculado-em Aluno nome: Texto matrícula: Inteiro definirNome(nome) obterNome() definirMatricula(matricula) obterMatricula código: Texto sala: Texto horario: Horario estaAberta() definirProfessor(professor) incluirAluno(aluno) é-ministrada-por Professor nome: Texto titulação: Texto definirNome(nome) obterNome() definirTitulacao(titulo) obterTitulacao
  • 3. Elementos – Diagrama de Classes • Elementos de um diagrama de classes – Classes – Relacionamentos • Associação – Agregação – Composição • Generalização • Dependência
  • 4. Elementos – Diagrama de Classes • Elementos de um diagrama de classes – Classes – Relacionamentos • Associação – Agregação – Composição • Generalização • Dependência
  • 5. 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
  • 6. Elementos – Diagrama de Classes Classes • Atributos – Representam o conjunto de características (estado) dos objetos daquela 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 Exemplo: + nome : String
  • 7. Elementos – Diagrama de Classes Classes • Métodos – Representam o conjunto de operações (comportamento) que a classe fornece – 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 Exemplo: - getNome() : String
  • 8. Elementos – Diagrama de Classes • Elementos de um diagrama de classes – Classes – Relacionamentos • Associação – Agregação – Composição • Generalização • Dependência
  • 9. 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..1, 0..*, 1, 1..*, 2, 3..7 – Tipo: associação (agregação, composição), generalização e dependência – Papéis: desempenhados por classes em um relacionamento
  • 10. Elementos – Diagrama de Classes • Relacionamentos nome multiplicidade Pessoa 1..* sentido de leitura trabalha para empregado * Empresa empregador Tipo: associação papéis E a navegabilidade?
  • 11. Elementos – Diagrama de Classes • Relacionamentos navegabilidade reside Cliente 1 * Endereço • O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence
  • 12. Elementos – Diagrama de Classes • Elementos de um diagrama de classes – Classes – Relacionamentos • Associação – Agregação – Composição • Generalização • Dependência
  • 13. 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 Empresa associação
  • 14. 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) multiplicidade Pessoa 1..* trabalha para associação * Empresa
  • 15. Relacionamentos: Associação Relacionamentos: Associação Exemplo: • Um Estudante pode ser um aluno de uma Disciplina e um jogador da Equipe de Futebol • Cada Disciplina deve ser cursada por no mínimo 1 aluno • Um aluno pode cursar de 0 até 8 disciplinas
  • 16. Elementos – Diagrama de Classes • Elementos de um diagrama de classes – Classes – Relacionamentos • Associação – Agregação – Composição • Generalização • Dependência
  • 17. Elementos – Diagrama de Classes • Relacionamento: Agregação – É um tipo especial de associação – Utilizada para indicar “todo-parte” todo parte Pedido 1 1..* Item agregação – um objeto “parte” pode fazer parte de vários objetos “todo”
  • 18. Elementos – Diagrama de Classes • Elementos de um diagrama de classes – Classes – Relacionamentos • Associação – Agregação – Composição • Generalização • Dependência
  • 19. Elementos – Diagrama de Classes • Relacionamento: Composição – É 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 Notebook Window 1..* 1 1 1 0..* 0..* Teclado Frame errado – Quando o “todo” morre todas as suas “partes” também morrem
  • 20. Elementos – Diagrama de Classes • Relacionamento: Composição Ex: Empresa 1 1..* 1..* 0..1 Departamento Escritório * Janela 1 2 Scroll 0..1 Título 1 Corpo
  • 21. Elementos – Diagrama de Classes • Agregação X Composição Sala Mesa 1 1..n Andar 1..n Edifício
  • 22. Elementos – Diagrama de Classes • Elementos de um diagrama de classes – Classes – Relacionamentos • Associação – Agregação – Composição • Generalização • Dependência
  • 23. Elementos – Diagrama de Classes • Relacionamento: Generalização • É um relacionamento entre itens gerais (superclasses) e itens mais específicos (subclasses) Veículo superclasse “é um” “é um tipo de” subclasse Terrestre Aéreo
  • 24. Elementos – Diagrama de Classes • Elementos de um diagrama de classes – Classes – Relacionamentos • Associação – Agregação – Composição • Generalização • Dependência
  • 25. 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 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
  • 26. 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 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.
  • 27. Exemplo: Sistema de Matrícula Diagrama de Casos de Uso
  • 28. 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.
  • 29. Exemplo: Sistema de Matrícula Diagrama de Classes: identificando as classes Professor Universidade Coordenador Disciplina FormularioMatricula SistemaRegistroAcademico Estudante Turma AnalisadorMatricula ListaAlunos Curso
  • 30. 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.
  • 31. Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os relacionamentos • O formulário de matrícula é processado por um analisador de matrícula é-processado-por FormularioMatricula 0..* AnalisadorMatricula 1 • O analisador de matrícula gerencia a disciplina FormularioMatricula é-processado-por 0..* AnalisadorMatricula 1 1 0..* Disciplina
  • 32. Exemplo: Sistema de Matrícula Diagrama de Classes FormularioMatricula é-processado-por 0..* 1 AnalisadorMatricula 1 1 gerencia 0..* é-preenchido-por é-definida-por Disciplina 1..* Coordenador 1 1 aluno 1..* 1 está-matriculado-em Estudante 3..10 Turma 4 é-ministrada-por 0..3 Professor 1
  • 33. 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. Turma código sala horário
  • 34. Exemplo: Sistema de Matrícula Diagrama de Classes é-processado-por FormularioMatricula 0..* 1 AnalisadorMatricula 1 1 gerencia 0..* Disciplina é-preenchido-por nome numCréditos é-definida-por 1..* 1 Coordenador 1 1..* aluno 1 Estudante nome matricula Turma está-matriculado-em 3..10 4 código sala horário é-ministrada-por 0..3 1 Professor nome titulação
  • 35. Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os métodos – Somente depois de modelar os diagramas de seqüência : SIM : AnalisadorMatricula AnalisadorMatricula adicionar(aluno, disciplina) 1: submeterFormulario(f) 2: adicionar(a,d ) SIM submeterFormulario(formulario)
  • 36. Exemplo: Sistema de Matrícula Diagrama de Classes: • E a navegabilidade? Estudante está-matriculado-em 3..10 public class Estudante { private String nome; private String matricula; ... } Turma 4 public class Turma { private String codigo; private String sala; private Estudante alunos[]; ... } OBS: Turma não aparece como atributo de Estudante!
  • 37. 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. Us uario nome : Texto definirNome(nome) obterNome() Estudante Professor matricula : Inteiro titulacao : Texto definirMatricula(matricula) obterMatricula() definirTitulacao(titul acao) obterTitulacao()
  • 38. Exemplo: Sistema de Matrícula FormularioMatricula é -processado-por obterEstudante() : Estudante obterNomeDIsciplina(i : Inteiro) : Texto 0.. * AnalisadorMatricula 1 adicion ar(alun o, di scipli na) 1 1 1 é-preenchido-por -aluno gerencia 1 0..* Estudante Disciplina matricula : Inteiro definirMatricula(matricula) obterMatricula() nome : Texto numCreditos : Inteiro 3.. 10 estaCompleta() adicionar(aluno : Estudante) 1 está-matriculado-em Usuario nome : Texto definirNome(nome) obterNome() 1..* Turma Professor responsável-por titulacao : Texto 0..3 definirTitulacao(titulacao) obterTitulacao() codigo : Texto sala : Texto 4 horario : Horario numAlunos : Inteiro completa : Booleano 1 estaCompleta() : Booleano SIM usa 1