Diagrama de Classes (Notação) - Aula 11 (parte...

14
Diagrama de Classes (Notação) - Aula 11 (parte 2) Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX Prof. Fernando Maia da Mota Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin Machado UFMS/FACOM

Transcript of Diagrama de Classes (Notação) - Aula 11 (parte...

Diagrama de Classes

(Notação) - Aula 11

(parte 2)

Universidade Federal de Mato Grosso do Sul

Sistemas de Informação - CPCX

Prof. Fernando Maia da Mota

Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin Machado

UFMS/FACOM

UML - Diagrama de Classes

Classe é uma descrição de um conjunto de

objetos com os mesmos atributos,

relacionamentos, operações e semântica

Classes = abstrações do domínio do problema:

“Cliente”, “Banco”, “Conta”

Classe: Notação

Forma

origem

mover()

redimensionar()

exibir()

Nome

Métodos Atributos

Classe: Visibilidade

• Pode-se usar marcações de acesso para especificar

o tipo de acesso permitido aos atributos e métodos • público: uso por todas as classes

• protegido: uso por qualquer descendente da classe e

classes do mesmo pacote

• privado: uso: somente pela própria classe

Público

Privado

Protegido

Notação da Ferramenta Rational Rose

UML - Diagrama de Classes

• Classes

• Atributos

Nome: Tipo = ValorInicial

• Métodos

Nome (ListaParam): TipoRetorno

ProdutoCódigo : integerSaldo : floatPreço : floatObservação : String

Cadastrar (cod : integer = default, saldo : float = default) : ProdutoValidarQuantidade (quant : float = default) : booleanCalcularDesconto (vr : float = default) : valorImprimirDetalhe (cod : integer = default, quant : float= default)BaixarEstoque (cod : integer = default, quant : float = default): return

Relacionamentos

As classes não existem sozinhas

Os relacionamentos ligam as classes/objetos entre si

criando relações lógicas entre eles

Tipos de relacionamentos

Associações

Agregações

Dependências

Generalizações

UML - Diagrama de Classes

• Relacionamento de Associação

- especifica que objetos de um elemento estão conectados a objetos de outros elementos

Fornecedor Produto

• Multiplicidade

– indica quantos objetos uma classe pode possuir e por quantos

objetos uma classe é possuída

0..1 (opcional- 0 ou mais) 1 (exatamente 1)

0..* (muitos- 0 ou mais) 1..* (1 ou mais)

1..n ( de 1 a n)

1 1..n

UML - Diagrama de Classes

UML - Diagrama de Classes

Navegabilidade de Classes

Mostra, explicitamente, de quem é a responsabilidade de

obter as informações

Dupla navegabilidade: desempenho inaceitável – grande

volume de coleções que aparecem no software

Fornecedor Produto

UML - Diagrama de Classes

Exemplo de Navegabilidade de Classes

novo atributo classe Fornecedor: public Vector produto = new Vector();

1 1..n

Relacionamento de Associação com Papéis

Utilizado em um dos lados da associação

Nomes de papéis são necessários principalmente

para associação entre dois objetos de mesma classe

Companhia Empregado

1

0 .. *

subordinado 1 1 .. *

UML - Diagrama de Classes

possui trabalha

chefia

Fornecimento

DataIUltimoFornecimento: Date

0..*

Produto

Codigo : int

Descricao : String

Categoria : String

Unidade : String

QtdeEstoque: Float

PrecoUnitario: Float 0..*

Fornecedor

CNPJ : String

RazaoSocial : String

Endereco : String

Telefone : String

Contato : Float 0..*

fornece

Relacionamento de Associação com Atributos Modela as propriedades relacionadas a uma associação.

as propriedades devem ser representadas por uma classe

UML - Diagrama de Classes

UML - Diagrama de Classes

Relacionamento de Agregação/Composição

Tipo especial de associação (é parte de)

Agregação/Composição (ou Agregação Composta)

Composição: As partes só podem pertencer ao “todo” e são criadas e destruídas com ele

Apartamento

Garagem

Funcionarios

Dependentes

• Relacionamento de Herança/Generalização -

Especialização

relacionamento entre um elemento mais geral

(superclasse ou pai) e um mais específico (subclasse

ou filho)

Pessoa

Pessoa Física Pessoa Jurídica

UML - Diagrama de Classes

AgendaCursos Cursos

remove(c:Cursos)

add(c:Cursos)

• Relacionamento de Dependência

relacionamento de uso, no qual uma mudança na especificação de um elemento pode alterar a especificação do elemento dependente

UML - Diagrama de Classes