0% acharam este documento útil (0 voto)
3 visualizações31 páginas

Diagrama de Classes em UML: Conceitos e Exemplos

O documento apresenta conceitos fundamentais sobre classes em UML, incluindo definições, atributos, operações e associações entre classes. Ele explora a diferença entre classes e tipos, a importância de responsabilidades bem definidas e os conceitos de agregação, composição, herança e polimorfismo. Além disso, aborda estereótipos, classes de associação e restrições, fornecendo uma visão abrangente sobre a modelagem de sistemas orientados a objetos.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações31 páginas

Diagrama de Classes em UML: Conceitos e Exemplos

O documento apresenta conceitos fundamentais sobre classes em UML, incluindo definições, atributos, operações e associações entre classes. Ele explora a diferença entre classes e tipos, a importância de responsabilidades bem definidas e os conceitos de agregação, composição, herança e polimorfismo. Além disso, aborda estereótipos, classes de associação e restrições, fornecendo uma visão abrangente sobre a modelagem de sistemas orientados a objetos.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

UML:

Diagrama de Classes

Professora: Aline Vasconcelos


IFFluminense
SAEG
O que é Classe?
 Abstração sobre um grupo de objetos com mesmas
propriedades (atributos), comportamento (operações),
relacionamentos e semântica.
 As Classes representam o bloco de construção mais importante
de qualquer sistema OO.

Pessoa
Classe
nome: string
dtNascimento:date
Atributos
mostrarIdade()
mostrarPrimNome()
Operações
2
O que é Classe?
 Classes são utilizadas para capturar o vocabulário do
sistema que está sendo desenvolvido.

 Classes podem incluir abstrações que são parte do


domínio do problema ou tipos de objetos que
retratam a implementação do sistema.

 Classes devem possuir responsabilidades bem


definidas, onde responsabilidade representa um
contrato ou obrigações da Classe.

3
Classe x Tipo:
 Classes podem ser vistas como implementação de tipos
de objetos uma vez que elas determinam as operações
aplicáveis a um conjunto de instâncias.

Pessoa
nome: string
dtNascimento:date
verificarIdade()
listarNomes()

Objetos do Tipo Pessoa


Atributos
 Sintaxe:
visibilidade nome: tipo = valor inicial
 Visibilidade:
+ público;
# protegido;
- privado.
 Detalhes sobre tipos de atributos não são
especificados pela UML.
 O tipo do atributo depende da linguagem de
programação na qual o sistema será
implementado.

5
Operações x Métodos
 Operações x Métodos: métodos representam
a implementação da operação.
 Operações são as assinaturas dos métodos,
as quais estão representadas nas Classes.
 Uma operação representa um serviço que
uma instância da classe pode ser solicitada a
realizar.

6
Operações
 Sintaxe:
visibilidade nome (lista de parâmetros) : tipo do valor de retorno
 Sintaxe para os parâmetros:
nome : tipo = valor default
Exemplos:

+ totalPedidoPeríodo (dtInício: Date, dtFim: Date): Real


– Calcula o valor total em Pedidos no Período especificado. Método
de Classe.

+totalPedido(): Real
Escopo de Atributos e Operações
 Atributos e Operações podem ser de Classe ou de
Instância.
 Atributos cujo valor é o mesmo para todos os objetos
da Classe se aplicam à Classe.
 Operações não direcionadas a uma instância
específica, também são tidas como operações de
Classe.
 São declarados como Static no JAVA.
 A UML sublinha atributos e operações de Classe.

8
Exemplo de Atributo e Operação de Classe

Título
nom e
núm e ro

lo caliza r()

Livro Revis ta

autor per iodicidade


$ pra zoEm pré s ti mo = 7 d ia s $ prazoEm prés tim o = 1 0 dias

9
Classes e Operações Abstratas
 Operações abstratas são operações para as quais a
Classe não provê um método (ou seja, a Classe não
implementa a operação).
 A operação deve ser sinalizada com uma restrição
{abstract} ou deve ter seu nome em itálico.
 Classes abstratas são aquelas que não apresentam
instâncias diretas, mas definem um modelo (ou
interface) para que outras Classes possam herdar (ou
fazer uso).

10
Associações entre Classes:

 Associação Simples;
 Agregação;
 Composição.

11
Associações Simples:

 Associações são relacionamentos


estruturais entre classes estabelecendo
conexões entre seus objetos.
Pessoa Empresa
nome: string CGC: string
1..* *
dtNascimento:date endereço: string
mostrarIdade() obterCGC()
verificarPrimNome() atualizarEndereço()
Associações: Principais Propriedades
 Multiplicidade: cardinalidade da
associação;
 Nome;
 Papéis.
Trabalha
1..*
Pessoa *
empregador
Empresa
funcionário

13
Agregação x Composição:
 São associações conhecidas como
“todo/parte”. Agregação é somente
conceitual.

Projeto * 1..*
Funcionário

14
Agregação x Composição:
 Composição apresenta valor semântico.
Determina dependência do ciclo de vida das
partes em relação ao todo.

Pedido 1 * Item de Pedido

15
Restrições em Composições:

 Multiplicidade no lado da composição


deve ser 1;

 Se a mesma classe participar como


“parte” em mais de uma composição,
então a multiplicidade das composições
deve ser 0..1;

16
Generalização e Herança
 Uma classe mais genérica
(superclasse) é especializada em
outras mais específicas (subclasses).
 Subclasses herdam a estrutura,
comportamento e participação em
relacionamentos da superclasse.

17
Generalização e Herança
Pessoa
Relacionamento:
nome: string
dtNascimento: date
“é-um-tipo-de”.
mostrarIdade()
verificarPrimNome()

Aluno Professor
matrícula: integer salário: real
numCarteira: integer formação: string

matricular() reajustarSalário()

18
Generalização e Herança:
Sobreposição e Polimorfismo
 Subclasses podem ainda adicionar
nova estrutura e/ou comportamento, ou
modificar comportamento em relação à
super classe.

19
Polimorfismo - Exemplo
A luno {ab stract}
m atric ula
nomeA luno

geraNu mMatr()

A luno Transferido
A luno Ves tibular
univers i da deO ri gem
c oloc acaoVest periodo
curs oO rigem
geraNum M atr()
gera N um Matr()

20
Diagrama de Classes:
Conceitos Avançados
Estereótipo

 Mecanismo de extensão da UML.


 Amplia as possibilidades de Modelagem, permitindo estender a
semântica de construções (elementos de modelagem) de UML
existentes.
 EXEMPLO: INTERFACE
– A Interface em UML é uma Classe que possui somente operações
públicas, sem métodos nem atributos.
– Correspondente a Interfaces em JAVA, CORBA e COM.
– Tipo especial de Classe, definido como um estereótipo de Classe.

 São mostrados em texto entre os símbolos: «»

22
Exemplos de uso de Estereótipos

(1)

(2)
Classes de Associação

 Classes de Associação (ou classes associativas)


devem ser utilizadas quando uma Associação
apresenta atributos.
 Permitem que você acrescente atributos, operações
e outras características de Classe às associações.
 As propriedades da Classe de Associação
(Association Class) se aplicam a um par de objetos
nas extremidades das associações.

24
Exemplo de Classe de Associação:

* empregador
Pessoa Empresa
0..1

Cargo
função
dtContrato
salário

25
Relacionamentos de Dependência

Uma DEPENDÊNCIA indica a ocorrência de


um relacionamento semântico entre dois ou
mais elementos de modelo onde uma classe
Cliente é dependente de alguns serviços da
classe fornecedora, mas não tem uma
dependência estrutural interna com esse
fornecedor.

Indica uma situação na qual uma mudança


em um elemento (elemento independente,
fornecedor) pode afetar outro elemento da
dependência (elemento dependente – cliente).
26
Representação:

CLASSE A CLASSE B

FORNECEDOR CLIENTE

27
Restrições (Constraints)

 Uma restrição é alguma condição imposta a


elementos do modelo que deve ser satisfeita
para que o sistema encontre-se em estado
de consistência.
 São representadas entre chaves.
 A UML apresenta algumas restrições pré-
definidas, podendo restrições específicas do
Domínio serem definidas pelo
Desenvolvedor.
28
Exemplos de uso de Constraints:

Pessoa
Conta {XOR}
Empresa

29
V enda Cliente
num V enda nom e
dataV enda endereço
valorTotal 1..* telefone

P ess oa Jurídica
P ess oa Física
CGC
rz S ocial dtNasc im ento
CP F
identidade
1..* P roduto

It em Ven da cod Prod


des crição
qtde preço
0..* es toque
Item
Título
num Item có pia de nome

localizarpeloTítulo()
0..* cri ar()
localizarpeloN úm ero()
ver ific aD is pon ível()
criar ()

refere-se a Livro Revis ta


0..*
autor periodicidade
E m présti m o $ pra zoEm prés ti mo = 7 dias $ prazoEm prés tim o = 10 dias
dtEm prés tim o
dtD evoluçãoPrev criar() criar ()
dtD evoluçãoR eal

des ti na-s e a Us uário


criar()
0..* nome
confirm aEm prés tim o()
m atricula
confirm aD evolução()

cri ar()
li sta rD ados ()

Você também pode gostar