Top Banner
1 Modelagem Orientada a Objetos UML- Diagrama de Classes Prof. Antonio Felicio Netto [email protected]
43

Modelagem Orientada a Objetos UML- Diagrama de Classes

Mar 29, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Modelagem Orientada a Objetos UML- Diagrama de Classes

11

Modelagem Orientada a Objetos

UML- Diagrama de Classes

Prof. Antonio Felicio Netto

[email protected]

Page 2: Modelagem Orientada a Objetos UML- Diagrama de Classes

2

Diagrama de Classes

- É o Diagrama mais utilizado na UML;

- Seu objetivo é permitir a visualização das estruturas das classes utilizadas pelo sistema;

- A sua visão permite a identificação das classes, os seus relacionamentos, os atributos e métodos que a compõem;

- O diagrama apresenta uma visão estática de como as classes são organizadas, preocupando-se em definir sua estrutura lógica;

Page 3: Modelagem Orientada a Objetos UML- Diagrama de Classes

3

Definição – O que é Classe?

- Classe é uma descrição de um conjunto de objetos que têm os mesmos atributos, operações, relacionamentos e semântica;

- Podemos dizer que uma Classe é uma abstração que define um conjunto de objetos com as mesmas características, mas com valores (atributos) distintos;

- Em outros termos, uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar;

- Permite encapsular o estado de um objeto definindo o que e como atributos podem ser acessados;

Page 4: Modelagem Orientada a Objetos UML- Diagrama de Classes

4

Definição – O que é Objeto?

- O Objeto é uma entidade que possa ser descrita de uma realidade;

- Quando instanciamos uma classe para a memória, temos um objeto para a manipulação;

- Dentro da terminologia das linguagens de programação, um objeto passa a existir a partir de um "molde". Este "molde", definido como classe do objeto, define os limites, seus atributos e suas funções. Podem ser criados vários objetos ou instâncias de uma classe;

Page 5: Modelagem Orientada a Objetos UML- Diagrama de Classes

5

Representação gráfica de uma Classe

- É divida em três seções:

DVD

Atributos

Operações

HoraStatus estrutura

comportamento

Voltar()Pausar()Recuar()Adiantar()Parar()Tocar()

Nome da Classe

Page 6: Modelagem Orientada a Objetos UML- Diagrama de Classes

6

Nome de uma Classe

- O nome da classe é muito importante para identificar um recurso do modelo. Deve ser claro, descrever o tipo de objeto representado e na linguagem mais fácil possível;

- Deve corresponder ao padrão adotado na empresa: espaços viram “_” ou sem espaço?

- O nome da classe será usado para a programação;

- O nome da Classe deve ser único no pacote;

Page 7: Modelagem Orientada a Objetos UML- Diagrama de Classes

7

Atributos de uma Classe

- Definem as características que os objetos possuem;

- Podem definir características de si mesmo, mostrar consciência das suas relações e pode controlar uma certa informação;

- Cada objeto de uma classe possui um estado, representado pelos valores associados a cada um dos atributos definidos para a classe;

Page 8: Modelagem Orientada a Objetos UML- Diagrama de Classes

8

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

Exemplo:- nome[1]: String = sem inicial,{Obrigatório, 1..30

caracteres, espaços e pontuação permitidos}

Derivação

Notação dos atributos de uma Classe

Page 9: Modelagem Orientada a Objetos UML- Diagrama de Classes

9

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

- Define o escopo de acesso para um membro de uma classe. - Privado: na classe; (-)- Pacote: dentro do mesmo pacote (~)- Público: dentro de um sistema (+)- Protegido: dentro de uma árvore de herança. (#)

Notação dos atributos de uma Classe

Page 10: Modelagem Orientada a Objetos UML- Diagrama de Classes

10

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

Sistema

Classe A Classe B

Pacote 1

Classe C Classe D

Pacote 2 <<herança>>

Privado:O atributo privado só é acessível pelas operações do objeto. Normalmente este é oestado inicial dos atributos, depois se necessário, pode ser modificado.

Notação dos atributos de uma Classe

Page 11: Modelagem Orientada a Objetos UML- Diagrama de Classes

11

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

Sistema

Classe A Classe B

Pacote 1

Classe C Classe D

Pacote 2 <<herança>>

Pacote:O atributo pode ser acessado por qualquer outra classe no mesmo pacote.

Notação dos atributos de uma Classe

Page 12: Modelagem Orientada a Objetos UML- Diagrama de Classes

12

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

Sistema

Classe A Classe B

Pacote 1

Classe C Classe D

Pacote 2 <<herança>>

Público:O atributo pode ser acessado por qualquer outra classe do sistema.

Notação dos atributos de uma Classe

Page 13: Modelagem Orientada a Objetos UML- Diagrama de Classes

13

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

Sistema

Classe A Classe B

Pacote 1

Classe C Classe D

Pacote 2 <<herança>>

Protegido:O atributo só pode ser acessado por uma classe que tenha uma relação de generalização/herança,independente do pacote.

Notação dos atributos de uma Classe

Page 14: Modelagem Orientada a Objetos UML- Diagrama de Classes

14

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

- Derivação: indica que um valor é deduzido ou calculado na hora. Se ausente, indica um valor base.

Exemplo: Show

- nome

- dataInicial

- duracao

- /dataFinal

Notação dos atributos de uma Classe

Page 15: Modelagem Orientada a Objetos UML- Diagrama de Classes

15

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

- Nome: é obrigatório e deve ser único dentro da classe. Seja o mais descritivo possível para evitar confusão.Exemplos: cadUsr x cadastraUsuario

Notação dos atributos de uma Classe

Page 16: Modelagem Orientada a Objetos UML- Diagrama de Classes

16

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

- Tipo: Refere-se a qualidade de dados que serão tratados no atributo.- Podem ser padrão UML: (integer ou String)- Enumeração: booleano;- Algum padrão de linguagem: float, long, short,...- Ou até uma referência para outra classe.

Notação dos atributos de uma Classe

Page 17: Modelagem Orientada a Objetos UML- Diagrama de Classes

17

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

Nome Simbologia

Apenas um 1

Zero ou muitos 0..*

Um ou muitos 1..*

Zero ou um 0..1

Intervalo específico li..lf (ex. 2..8)

Notação dos atributos de uma Classe

Page 18: Modelagem Orientada a Objetos UML- Diagrama de Classes

18

- Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão][{Propriedades}]

- Padrão: refere-se ao valor inicial de um atributo, para proteger sua integridade ou facilitar preenchimento.

Show

- nome

- dataInicial

- duracao

- /dataFinal = dataInicial+duracao

Notação dos atributos de uma Classe

Page 19: Modelagem Orientada a Objetos UML- Diagrama de Classes

19

Nome Simbologia

Apenas um 1

Zero ou muitos 0..*

Um ou muitos 1..*

Zero ou um 0..1

Intervalo específico li..lf (ex. 2..8)

Estereótipos de multiplicidade

Page 20: Modelagem Orientada a Objetos UML- Diagrama de Classes

20

• Atributos: Notação[visibilidade] [/] nome [:tipo] [multiplicidade] [=padrão] [{Propriedades}]

-Propriedades: serve para inserir qualquer informação que não é pertinente a nenhuma das seções anteriores. Normalmente são usadas para delimitar regras de integridade e são separados por vírgulas.

Ex.• Multiplicidade

Show

- nome[1]: String =sem inicial, {Obrigatório, 1..30 caracteres}

- dataInicial[1]: Calendário= sem inicial { Obrigatório, >hoje}

- duracao[1]: Int= 1 { >0}

- /dataFinal: Calendário= dataInicial+duracao

Notação dos atributos de uma Classe

Page 21: Modelagem Orientada a Objetos UML- Diagrama de Classes

21

Relacionamentos de uma Classe

- AssociaçãoAgregaçãoComposição

-Dependência

-Generalização

-Realização

Page 22: Modelagem Orientada a Objetos UML- Diagrama de Classes

22

Relacionamentos de uma Classe - Associação

- Modela a conexão semântica entre classes;

Professor

Professor Universidade

Universidade

Trabalha para

Associação

Nome da associação

Classe

Empregado Empregador

Papéis

Page 23: Modelagem Orientada a Objetos UML- Diagrama de Classes

23

Associação do tipo Agregação

- Representa relacionamentos todo-parte , onde objetos compostos por outros objetos são modelados como estando associados com suas partes;

- Ela é transitiva: Se A faz parte de B, e B faz parte de C, então A faz parte de C;

- Ela é não simétrica: Se A faz parte de B, então B não faz parte de A;

DisciplinaEstudante

Todo ParteAgregação

Page 24: Modelagem Orientada a Objetos UML- Diagrama de Classes

24

Associação do tipo Composição

- Uma forma de agregação com uma relação de posse forte, isto é, as partes não vivem sem o todo;

- Quando o todo é criado, as suas partes com multiplicidade nãofixa podem ser criadas posteriormente;

- Quando o todo é eliminado, as suas partes também devem sereliminadas;

DepartamentoEmpresa

Todo ParteComposição

Page 25: Modelagem Orientada a Objetos UML- Diagrama de Classes

25

Exemplo Associação

Page 26: Modelagem Orientada a Objetos UML- Diagrama de Classes

26

Multiplicidade da Associação

- Multiplicidade define quantos objetos participam do relacionamento;

-O número de instâncias de uma classe relacionada a uma instância de outra classe;

- Especificado em cada uma das pontas da associação;

Page 27: Modelagem Orientada a Objetos UML- Diagrama de Classes

27

Multiciplidade da Associação

- Não especificada- Exatamente um- Zero ou mais- Muitos (mesmo que 0..*)- Um ou mais- Zero ou um- Intervalo determinado- Valores múltiplos

1

0..*

*

1..*

0..1

2..4

2, 4..6

Page 28: Modelagem Orientada a Objetos UML- Diagrama de Classes

28

Exercícios de Associação

- Modele as seguintes associações:

1 - Dependente e Funcionário?2 - Pedido e Item do pedido?3 - Funcionário e Cartão de ponto?4 – Veículo de passeio: Carro, Roda, Direção e Carburador?

Page 29: Modelagem Orientada a Objetos UML- Diagrama de Classes

29

Relacionamento por dependência

- Uma dependência entre dois elementos indica que mudança em um elemento pode causar mudanças no outro;

- Relacionamento não estrutural (uso) é mais fraco que associação;

- É um relacionamento que determina que uma mudança na especificação de uma classe pode afetar uma outra classe, mas não necessariamente o contrário;

- Os relacionamentos de dependência podem tratar parâmetros de entrada de métodos, tipos de retorno, exceções lançadas, etc

+defineAlarm(in t : Temperature)

TemperatureSensor Temperature

Page 30: Modelagem Orientada a Objetos UML- Diagrama de Classes

30

Relacionamento de Generalização

- Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classes;- Relacionamento “é um tipo de”;

- Classes podem ser organizadas em uma hierarquia onde uma classe (superclasse) é uma generalização de uma ou mais classes (subclasses);

- Uma subclasse herda os atributos e operações da superclasse e pode adicionar novos métodos;

- Generalização em UML é implementada como herança nas OOP ;

Page 31: Modelagem Orientada a Objetos UML- Diagrama de Classes

31

Relacionamento de Generalização

- Uma classe herda os métodos e atributos de uma outra;

Círculoraiocentro

desenhar()

Retânguloverticesdesenhar()diagonal()

Figuracorlargura da linhadesenhar()selecionar()

Subclasses

Superclasse(pai)

Relacionamentode Generalização

Page 32: Modelagem Orientada a Objetos UML- Diagrama de Classes

32

Herança Múltipla

- Classes herdando de mais de uma classe;

Mamífero AnimalVoador

Herançamúltipla

Cachorro Gato Morcego Passarinho Gaviao

Page 33: Modelagem Orientada a Objetos UML- Diagrama de Classes

33

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 asoutras continuam nas subclasses;

Page 34: Modelagem Orientada a Objetos UML- Diagrama de Classes

34

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 emdiferentes características;- Cada hierarquia de generalização/especialização deve abrangeruma única característica.

Page 35: Modelagem Orientada a Objetos UML- Diagrama de Classes

35

Relacionamento de Realização

- É um tipo de relacionamento especial que mistura características dos relacionamentos de generalização e dependência;

- É utilizado para identificar classes responsáveis por executar funções de interfaces;

- Este tipo de relacionamento herda o comportamento de uma classe, mas não sua estrutura;

Placa_mae

<interface>imonitor

Monitor

<realize>

Page 36: Modelagem Orientada a Objetos UML- Diagrama de Classes

36

Exercício

- Dada as classes abaixo identificada realize um processo de Generalização e especialização;

Page 37: Modelagem Orientada a Objetos UML- Diagrama de Classes

37

Resposta

Page 38: Modelagem Orientada a Objetos UML- Diagrama de Classes

38

Estudo de caso

- A equipe deverá se reunir e definir o diagrama de classes do tema sorteado para o grupo;

- A apresentação será realizada no próximo encontro, dia 28/04/2012 as 8:00;

- Alguns requisitos que deverão ser contemplados:

1. Identificação das multiplicidades, dependência, realizações e generalizações;

2. O documento deve conter no mínimo 10 classes contendo os conceitos de herança, associação por composição e associação por agregação;

Page 39: Modelagem Orientada a Objetos UML- Diagrama de Classes

39

Diagramas da UML

- Diagrama de Casos de Uso;

- Diagrama de Classes;

- Diagrama de Objetos;

- Diagrama de Seqüência;

- Diagrama de Máquina de Estados;

- Diagrama de Colaborações;

- Diagrama de Comunicação;

- Diagrama de Atividade;

- Diagrama de Pacotes;

- Diagrama de Implantação;

- Diagrama de Tempo;

Page 40: Modelagem Orientada a Objetos UML- Diagrama de Classes

40

Diagramas de Objetos

- É uma variação do diagrama de classes;

- Em vez de classes, são representadas instâncias e ligações entre instâncias- A finalidade é descrever um conjunto de objetos e seus relacionamentos em um ponto no tempo;

-Contém objetos e vínculos e são usados para fazer a modelagem da visão de projeto (prototipação);

Page 41: Modelagem Orientada a Objetos UML- Diagrama de Classes

41

Diagramas de Objetos

-Exibe o conjunto de objetos e seus relacionamentos;

-Representa retratos estáticos de instâncias de itens encontrados em diagramas de classes;

: Professor

antonio :Professor

antonioApenas o nome daclasse

Apenas o nome doobjeto

Nome da classe e doobjeto

Page 42: Modelagem Orientada a Objetos UML- Diagrama de Classes

42

Diagramas de Objetos

Circuloraiocentroxcentroy

desenhar()

Retanguloverticesdesenhar()diagonal()

FiguracorLargura_linhadesenhar()selecionar()

r1:Retangulo:cor = #FAF0E6 :largura_linha = 1.4raio = 200centrox = 20Centroy = 30

desenhar()

Page 43: Modelagem Orientada a Objetos UML- Diagrama de Classes

43

Diagramas da UML

- Diagrama de Casos de Uso;

- Diagrama de Classes;

- Diagrama de Objetos;

- Diagrama de Seqüência;

- Diagrama de Máquina de Estados;

- Diagrama de Colaborações;

- Diagrama de Comunicação;

- Diagrama de Atividade;

- Diagrama de Pacotes;

- Diagrama de Implantação;

- Diagrama de Tempo;