23
UML UML UML UML Diagrama de Classes

Diagrama de Classes - nasaulas.files.wordpress.com · Introdução •Existem dois tipos de diagramas para a modelagem de objetos: –Diagrama de Classes: é um esquema, um padrão

  • Upload
    hanhi

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

UMLUMLUMLUML

Diagrama

de Classes

IntroduçãoIntroduçãoIntroduçãoIntrodução

• A modelagem de objetos incorpora a estrutura

estática de um sistema mostrando:

–os objetos pertencentes ao sistema

–os relacionamentos entre esses objetos

–os atributos de cada objeto

–as operações que caracterizam cada objeto

IntroduçãoIntroduçãoIntroduçãoIntrodução

• Existem dois tipos de diagramas para a modelagem

de objetos:

–Diagrama de Classes: é um esquema, um padrão ou um

modelo que descreve muitas instâncias de objetos.

–Diagrama de Objetos: descreve como os objetos de um

determinado grupo se relacionam entre si.

• serve para documentar casos de teste e exemplos para discussão.

• Ambos os diagramas oferecem uma notação gráfica

formal para a modelagem de objetos e seus

relacionamentos.

• Classe: refere-se a descrição de um conjunto de

objetos que compartilham os mesmos atributos,

operações, relações e semântica.

–outros compartimentos podem ser acrescentados

(responsabilidades, exceções, eventos, etc.)

ClasseClasseClasseClasse

Nome da ClasseFuncionário

nome: stringdata_admissão: dataCPF : stringsalário_base: float = 0.0

calcula_saláriocalcula_IR Operações

Atributos

Nome de classeNome de classeNome de classeNome de classe

• O nome de uma classe distingue uma classe de outra

classe.

–nome simples: nome sozinho

–nome com caminho: o nome da classe é precedido pelo nome

do pacote em que a classe existe.

Sistema_vendas :: ClienteCliente

• Cada objeto de uma classe possui um estado,

representado pelos valores associados a cada um dos

atributos definidos para a classe

Sintaxe para atributos:

[visibilidade] nome [multiplicidade] [:tipo]

[= valor inicial] [{propriedades}]

* atributos de classe são sublinhados

Exemplos:

nome: string

endereço [0..2] : string

CPF : inteiro {frozen}

nro_correntistas: inteiro

AtributoAtributoAtributoAtributo

OperaçãoOperaçãoOperaçãoOperação

• Uma operação é a implementação de um serviço que

pode ser requisitado a qualquer objeto da classe,

afetando o seu comportamento.

–A execução de uma operação por um objeto pode resultar na

alteração do valor de seus atributos.

• Distinção entre operações de classes e objetos:

–Operação de objeto: atua sobre um objeto (instância)

–Operação de classe: atua sobre a classe (conjunto de objetos)

• Exemplos: criação de um novo objeto da classe, pesquisa sobre

os objetos da classe, etc.

OperaçãoOperaçãoOperaçãoOperação

• Sintaxe para Operações:

[visibilidade] nome [(lista-de-parâmetros)] [:tipo-

retorno] {[propriedades]}

* operações de classe são sublinhadas.

Exemplos:

ler_temperatura( ) : numérico

calcula_area(lado: inteiro, altura: inteiro) : inteiro

valor_padrao( ): inteiro

• Responsabilidade de uma classe diz respeito as suas

obrigações dentro do contexto do sistema.

–Ao refinar o modelo, as responsabilidades de uma classe são

traduzidas em um conjunto de atributos e operações que

melhor atendam as suas obrigações.

Sensor de Temperatura

reiniciar

iniciar_alarme

avaliar_temperatura

- Monitorar temperatura

- Disparar alarme quando a temperatura

atingir valores inadequados

Responsabilidade de classeResponsabilidade de classeResponsabilidade de classeResponsabilidade de classe

Relacionamentos entre classesRelacionamentos entre classesRelacionamentos entre classesRelacionamentos entre classes

• Os relacionamentos determinam conexões entre os

objetos.

• Fornecem um caminho para a comunicação entre os

objetos.

• Principais tipos de relacionamentos:

–Associação

–Generalização

–Dependência

• Uma associação é um relacionamento estrutural que

descreve um conjunto de ligações, onde uma ligação

é uma conexão entre objetos.

Funcionário Empresa

10..*

trabalha-para

0..* 1

AssociaçãoAssociaçãoAssociaçãoAssociação

• Multiplicidade

– (1-1): cliente tem sempre 1 (e somente 1) conta

– (0-1): cliente pode ter 1 (e no máximo 1) conta

– (1-N): cliente tem sempre 1 conta, podendo ter mais

– (0-N): cliente pode ter 1 conta, podendo ter mais

1CLIENTE CONTA

0..1CLIENTE

1..*CLIENTE CONTA

*CLIENTE CONTA

AssociaçãoAssociaçãoAssociaçãoAssociação

CONTA

• Papel (opcional)

AssociaçãoAssociaçãoAssociaçãoAssociação

Pessoa

nome

datNasc

Marido

Esposa Casamento

trabalha-para Empresa

nome

endereçoempregado empregador

Funcionário

nome

cartTrab

datNasc

1..* *

• Navegação

–por definição, a navegação entre classes associadas é

bidirecional

–por conveniência, a navegação pode ser restringida a uma

única direção

–não confundir com sentido para leitura de nome de associação!

Usuário Senha1 *

proprietário

AssociaçãoAssociaçãoAssociaçãoAssociação

AgregaçãoAgregaçãoAgregaçãoAgregação

• Tipo especial de associação.

–Representa relacionamentos todo-parte, onde objetos

compostos por outros objetos são modelados como estando

associados com suas partes.

• Agregação é transitiva

–Se A faz parte de B, e B faz parte de C, então A faz parte de C.

• Agregação é não-simétrica

–Se A faz parte de B, então B não faz parte de A.

AgregaçãoAgregaçãoAgregaçãoAgregação

Monitor Teclado

Microcomputador

Mouse

0..10..1

Processador DriveCD Memória Fonte

Gabinete

0..1 1..*

Drive Disquete

0..1 1..*

Exemplo:

• Agregação simples

–A existência de um objeto componente não depende da

existência do objeto agregado;

–Um objeto componente pode ser compartilhado com outro

objeto agregado.

AgregaçãoAgregaçãoAgregaçãoAgregação

EquipeProjeto

AnalistaSistemas

1..*

1..*1..*

1..*

Multiplicidade da

extremidade do composto

pode ser maior que 1

• Agregação de composição

–Quando o todo é criado, as suas partes com multiplicidade não

fixa podem ser criadas posteriormente;

–Quando uma parte é criada, a sua existência deve ser

coincidente com a existência do todo, a não ser que seja

explicitamente removida antes da eliminação do todo;

–Quando o todo é eliminado, as suas partes também devem ser

eliminadas.

–Exemplo:

AgregaçãoAgregaçãoAgregaçãoAgregação

Empresa

1..*

1

1..*

1 Multiplicidade da

extremidade do composto

deve ser igual a 1Departamento

GeneralizaçãoGeneralizaçãoGeneralizaçãoGeneralização

• Abstrai classes genéricas, a partir de classes com

propriedades (atributos e operações) semelhantes.

• Generalização e herança são abstrações que

permitem modelar aspectos semelhantes entre

classes, preservando suas diferenças.

• Numa hierarquia de generalização, as subclasses

herdam todas as propriedades de sua superclasse.

Generalização Generalização Generalização Generalização ---- EspecializaçãoEspecializaçãoEspecializaçãoEspecialização

Eleitor

num_titulo

Pessoa

nome

endereço

sexo

data_nascim

idade

Candidato

numCandidato

Generalização Generalização Generalização Generalização ---- EspecializaçãoEspecializaçãoEspecializaçãoEspecialização

• Processo de generalização:

– Identificar classes com propriedades semelhantes.

–Definir uma nova classe com as propriedades comuns.

–As classes originais tornam-se subclasses da nova classe e

herdam as propriedades desta.

–As associações em comum passam para a superclasse e as

outras continuam nas subclasses.

Especialização Especialização Especialização Especialização ---- GeneralizaçãoGeneralizaçãoGeneralizaçãoGeneralização

• Processo de especialização:

–Definir uma ou mais subclasses a partir de uma classe

existente.

–Adicionar propriedades e associações específicas de cada nova

subclasse.

–Associações comuns ficam ligadas à superclasse.

–Pode existir mais de um tipo de especialização com base em

diferentes características.

• cada hierarquia de generalização/especialização deve abranger

uma única característica.

Processo de GeneralizaçãoProcesso de GeneralizaçãoProcesso de GeneralizaçãoProcesso de Generalização

CarronumChassiplacacornumPasanoFabrictipoComb

CaminhãonumChassiplacanumEixostonelagemano

ProprietárionomeenderCgcCpf

FabricantenomepaísOrigem Carroceria

tipofabricante1..*

1..* 1..*

1..*

CarrocornumPastipoComb

CaminhãonumEixostonelagem

VeículonumChassiplacaanoFabric

Carroceriatipofabricante

ProprietárionomeenderCgcCpf

FabricantenomepaísOrigem

1..*1..*