Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo...

93
Linguagem de Modelagem Unificada Rosemary Silveira Filgueiras Melo [email protected] 1 UML Parte 1

Transcript of Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo...

Page 1: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Linguagem de Modelagem Unificada

Rosemary Silveira Filgueiras Melo

[email protected]

1

UML

Parte 1

Page 2: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Tópicos abordados

Paradigma Orientado a Objetos

Linguagem UML e seus principais diagramas

Diagramas de Casos de Uso

Diagramas de Classes

2

Page 3: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Contextualização

Sistemas de Informação cada vez mais complexo

Necessidade de planejamento e organização prévio para

desenvolver sistemas de informação

O uso da modelagem de Sistemas permite pensar, planejar e

organizar as soluções antes de implementar o software

A modelagem de sistemas está intimamente relacionada ao

paradigma de desenvolvimento e ao processo de

desenvolvimento em uso.

3

Page 4: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Contextualização - continuação

O foco do desenvolvimento de sistema sob o paradigma

orientado objetos está voltada para identificação e a

modelagem dos objetos do mundo real que afetam o

sistema.

A linguagem UML é mundialmente aceita para

modelagem de sistemas baseado no Paradigma

Orientado a Objetos.

4

Page 5: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Paradigma Orientado a Objetos

5

Page 6: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Objeto

Classe

Encapsulamento

Herança

Polimorfismo

Visibilidade

Princípios Fundamentais

Page 7: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

• Representa as “coisas” a serem modeladas do mundo

real.

• Pode ser algo concreto ou abstrato

Concreto -> Ex.: aluno, professor, etc

Abstrato -> Ex.: turma, disciplina, etc

Objetos

Page 8: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Objetos

Page 9: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Objetos tem um estado (atributos)

Objetos possuem um comportamento (métodos)

Objetos possuem uma identidade

Objetos

Page 10: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Classes

Abstração da realidade na qual representamos algo do

mundo real.

Descrição de um conjunto de objetos que

compartilham os mesmos atributos, operações,

relacionamentos e semântica.

Page 11: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Objetos x Classes

Objeto é uma instância de uma classe

Classe é o Molde Objeto é a coisa real

CONJUNTO DE PESSOAS

Page 12: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

• capacidade de ocultar dados de acesso indevido de

outros objetos.

• só permite que estes dados sejam acessados por

operações implementadas pelos seus próprios

métodos.

• protege os dados do objeto do uso arbitrário ou não

intencional.

• usuários tem conhecimento das operações que

podem ser requisitadas e o que elas realizam

• não é necessário saber como foram implementadas.

Encapsulamento

Page 13: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Interação entre objetos sem conhecimento dofuncionamento interno.

Encapsulamento

Page 14: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

• Mecanismo usado para derivar novas classes a partir dadefinição de classes existentes.

• Uma classe derivada herda os atributos (dados) emétodos (operações) da classe base ou ancestral.

• Garante reutilização de código propiciando economiade tempo, dinheiro e mais segurança.

Herança

Page 15: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Herança

Page 16: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

• Palavra derivada do grego, significa ”muitas formas”.

• Possibilidade de ter método com mesmo nome emclasses distintas com comportamentos diferente.

• Se uma classe herda atributos e métodos de uma oumais classe base ela tem o poder de alterar ocomportamento destes métodos.

Polimorfismo

Page 17: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Polimorfismo

Page 18: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

• Define o que uma classe pode visualizar de outra classe.

• A visibilidade envolve a possibilidade de visualização tantode atributo, como de método.

• Tipos de Visibilidade:

- Pública: atributos e métodos podem ser visível a todasas classes.

- Privada: atributos e métodos só podem ser visível pelaprópria classe.

- Protegida: atributos e métodos visível somente pelasclasses descendentes.

Visibilidade

Page 19: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

• o atributo Valor e método Pagar_conta da classe Pagamentosomente podem ser vistas pelas classes filhas ou subclasses destaclasse.

Visibilidade

Page 20: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Linguagem UML e seus principais diagramas

20

Page 21: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

UML - Unified Modeling Language.

Desenvolvida pela Rational Software

Rumbaugh

Booch

Jacobson

Reconhecida pela OMG – Object Management Group em

1997.

UML

Page 22: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Booch – Grady Booch

OMT – James Rumbaugh / General Eletric

OOSE – Ivar Jacobson / Ericsson

UML – Rational Software / OMG

Origem da UML

Page 23: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

23

Outros

Métodos

Booch’91 OMT-1 OOSE

UML reconhecida pela OMG

e com feedback do público.Nov/97

Set/97

Jan/97

Out/96

Jun/96

Out/95

Jan/91 Framentação

Unificação

Padronização

Industrialização

Booch’93 OMT-3

Unified Method 0.8

UML 0.9 & 0.91

UML 1.0

Parceiros

Da UML

UML 1.1

23

UML – Histórico

Page 24: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

24

UML não é uma Metodologia

UML é uma Linguagem de Modelagem:Não proprietária e aberta

Independente da linguagem de programação

Independente do processo de desenvolvimento

Predominantemente visual e de fácil leitura

Apropriada para uso de conceitos OO

Abrange desde a modelagem conceitual até a implementação física

Composta por diagramas 24

UML - Características

Page 25: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

2525

UML - Diagramas

Page 26: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

26

Através da UML é possível:

Explicitar as fronteiras do sistema e suas principaisfuncionalidades (casos de uso e atores)

Ilustrar a realização dos casos de usos (diagramas deinteração)

Representar as estruturas estáticas do sistema(diagramas de classes)

26

UML – Expressividade

Page 27: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

27

Além disso...

Modelar o comportamento dos objetos (diagramas detransição de estados)

Mostrar a arquitetura física da implementação(diagramas de componentes)‏

Capturar a topologia de hardware do sistema (diagramade implantação)‏

27

UML – Expressividade

Page 28: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Diagrama de

Casos de Uso

28

Page 29: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

29

Apresenta uma visão das principais funções ou serviços oferecidas

pelo sistema

Considerado o mais abstrato e informal.

Utilizado principalmente nas etapas de Levantamento de requisitos e

Análise

Ajuda na identificação dos requisitos do sistema

Ferramenta para troca de informações entre clientes e equipe de desenvolvimento

Fornece a base para o planejamento dos testes29

Diagrama de Casos de Uso

Page 30: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

30

Visa identificar:

o Os usuários que irão interagir com o sistema

o Os papéis que eles irão assumir

o As funcionalidades que serão requisitadas por cada

usuário específico.

30

Diagrama de Casos de Uso

Page 31: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

31

Principais elementos do diagrama de Casos de Uso:

31

Diagrama de Casos de Uso

Page 32: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

3232

Diagrama de Casos de Uso - Representação

Sistema Bancário

Realizar saque

Realizar depósito

Cliente

Ator Casos de uso

Associação

Page 33: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

33

Agente externo que interage com o sistema

Comunica-se com o sistema enviando e recebendomensagens

Pode representar: pessoas, papéis, um hardware especial, outros sistemas, outros órgãos,etc...

Exemplo de Atores:

33

Diagrama de Casos de Uso - Atores

Gerente Funcionário Cliente

Caixa EletrônicoSistema de Contas

a Pagar e Receber

Page 34: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

34

Tipos de atores:

principal: interessado nos resultados produzidospelo sistema (quem solicita o serviço), mas nãonecessariamente interage com o sistema.

Ex.: cliente

secundário: interage com o sistema e que não tem interesse em seus resultados.

ex.: funcionário contratado para atender os clientes

34

Diagrama de Casos de Uso - Atores

Page 35: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

35

Referem-se aos serviços, tarefas ou funções que podem serutilizados de alguma maneira pelos usuários do sistema.

Utilizados para expressar e documentar oscomportamentos pretendidos para as funções do sistema.

35

Diagrama de Casos de Uso – Casos de Uso

Obter extrato de conta

Abrir conta

Casos de uso

Page 36: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

36

Diagrama de Casos de Uso – Relacionamentos

O diagrama de Casos de Uso possibilita o

relacionamento entre:

o Atores e Casos de Uso

o Atores

o Casos de Uso

36

Page 37: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

37

Diagrama de Casos de Uso – Relacionamentos

Tipos de relacionamento:

o Comunicação

Entre Ator e Caso de Uso

o Generalização/Especialização

Entre Atores

Entre Casos de Uso

o Inclusão

Entre Casos de Uso

o Extensão

Entre Casos de Uso

37

Page 38: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

38

Diagrama de Casos de Uso – Relacionamentos

38

Relacionamento entre Ator e Casos de Uso

Page 39: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

3939

Diagrama de Casos de Uso – Relacionamentos

Sistema de Matrícula

Emitir Comprovante de matrícula

Efetuar matrícula

Cliente

Ator Casos de uso

Relacionamento entre Ator e Casos de Uso

Só é permitido o relacionamento tipo Comunicação

Pode ser navegável:

em uma direção

em duas direções

Page 40: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

40

Diagrama de Casos de Uso – Relacionamentos

40

Relacionamento entre Atores

Page 41: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

41

Diagrama de Casos de Uso – Relacionamentos

Relacionamento entre Atores - tipo Generalização

Só é permitido o relacionamento tipo Generalização

usada para representar a relação entre atores que realizaçãotarefas comuns, com pequenas diferenças entre si.

Ocorre a sobreposição de papéis no Ator que atua comoEspecialização.

41

Page 42: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

42

Diagrama de Casos de Uso – Relacionamentos

Relacionamento entre Atores – tipo Generalização

42

Page 43: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

43

Diagrama de Casos de Uso – Relacionamentos

43

Relacionamento entre Casos de Uso

Page 44: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

44

Diagrama de Casos de Uso – Relacionamentos

Relacionamento entre Casos de Uso – Tipo Generalização

usada para representar a relação entre dois ou mais Casos de

Uso com características semelhantes, com algumas diferenças

entre si.

Pode ocorrer sobreposição de funcionalidade

44

Page 45: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

45

Diagrama de Casos de Uso – Relacionamentos

Relacionamento entre Casos de Uso – Tipo Generalização

45

Page 46: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

46

Diagrama de Casos de Uso – Relacionamentos

Relacionamento entre Casos de Uso – Tipo Inclusão

Utilizado quando existe um serviço comum a mais de um Casode Uso.

Deve ser colocado em um caso de uso específico para queoutros Casos de Uso utilizem-se desse serviço

A relação de inclusão implica em obrigatoriedade de execução

46

Page 47: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

47

Diagrama de Casos de Uso – Relacionamentos

Relacionamento entre Casos de Uso – Tipo Inclusão

47

Page 48: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

48

Diagrama de Casos de Uso – Relacionamentos

Relacionamento entre Casos de Uso – Tipo Extensão

Utilizado para descrever cenários opcionais de um Caso de Uso

Indica a necessidade de testar uma condição para determinarse é necessário executar o caso de uso estendido ou não.

Representam eventos que não ocorrem sempre, o que nãosignifica que eles sejam incomum

48

Page 49: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

49

Diagrama de Casos de Uso – Relacionamentos

Relacionamento entre Casos de Uso – Tipo Extensão

49

Page 50: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

50

Diagrama de Casos de Uso - Exemplo

50

Page 51: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

51

Diagrama de Casos de Uso – Outro Exemplo

51

Page 52: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Documento de Especificação de Casos de Uso

Documento com a descrição textual de como ocorre a interação entre atores e sistema na realização de um caso de uso

Nele é possível :Indicar COMO e QUANDO o caso de uso se inicia e termina

quando o caso de uso interage com atores

quais objetos são transferidos

fluxo básico e alternativos do comportamento

Page 53: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Modelo de Documentação de Casos de Uso

Descrição detalhadaNomeDescrição sucintaAtoresPré-Condições Pós-Condições Fluxo Básico Fluxos Alternativo Fluxos de Exceção Estrutura de dados Regras de negócio Observações

Page 54: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Documentação de Casos de Uso

Fluxo Alternativo Alternativa ao fluxo principal

Fluxo de Exceção Possível consequência de uma alternativa escolhida previamente ou de um erro.

Regras de NegócioModo como realiza o negócio.

Page 55: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

Diagrama de

Classes

55

Page 56: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

56

Considerado o diagrama mais importante e utilizado da UML.

Enfoque na visualização das classes pertencentes ao sistema e

nas relações entre estas classes.

Fornece uma visão de como as classes pertencentes a um

sistema estão organizadas (visão estática do sistema).

Pode ser representado em vários níveis diferentes: nível

conceitual ou de domínio e nível de projeto.

Serve como base para a construção da maioria dos outros

diagramas da UML.56

Diagrama de Classes

Page 57: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

5757

Diagrama de Classes

Exemplo de diagrama de classes representando um Sistema de Vendas

Page 58: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

58

conjunto de objetos com propriedades comuns (atributos,

operações e relacionamentos).

representa os estados e comportamentos que os objetos podem

assumir:

o estado corresponde os atributos

o comportamento corresponde as operações

As classes podem ser usadas para representar: software,

hardware ou puramente itens conceituais.

58

Classes

Page 59: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

5959

Representação básica

A classe é representada graficamente com um retângulo

contendo nome, atributos e operações.

A apresentação dos atributos e operações pode variar conforme

as necessidades e objetivos.

Nome

Atributos

Operações

Page 60: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

6060

Nomes de Classes

Cada classe deve ter um nome único;

Classes em pacotes diferentes podem ter o mesmo nome;

Procure usar substantivos;

A primeira letra de cada palavra deve ser maiúscula.

Exemplos: Produto

Cliente

ItemPedido

Page 61: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

6161

Atributos da Classe

Representam o estado das instâncias da classe

São valores que a classe e ou instâncias (objetos)

contém

Uma classe pode conter nenhum ou vários atributos;

Page 62: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

6262

Operações da Classe

implementação de um serviço que pode modificar o

comportamento do objeto

pode ter nenhuma ou várias operações

Os nomes das operações inicia-se com verbos

Mesmo que não tenha parâmetros, finalizar com

parênteses “()”

Page 63: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

6363

Operações da Classe

Sua assinatura é composta pelo seu nome, quantidade

de parâmetros e pelos tipos dos parâmetros

Iniciado em minúsculo, demais palavras com inicial

maiúsculo.

Exemplos:

apresentarCliente()

incluirNotaFiscal()

consultarPedido()

Page 64: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

64

As marcações de acesso servem para especificar o tipo de

acesso permitido aos atributos e operações:

+ publico: visível a todos os classificadores

# protegido: visível ao próprio classificador e seus

descendentes

- privado: visível apenas ao próprio classificador

64

Visibilidade

Page 65: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

65

vínculo que ocorre entre as classes com o intuito de

compartilhar informações e colaborarem umas com as outras

para executar tarefas.

Tipos de relacionamentos em diagramas de classes:

oAssociação

oGeneralização

oDependência

65

Relacionamentos

Page 66: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

66

descreve o vínculo que ocorre entre as classes

Tipos de Associação:

o associação unária ou reflexiva (entre uma classe)

o associação binária (entre duas classes)

o associação ternária ou N-ária (entre três ou váriasclasses)

66

Associação

Page 67: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

67

determina que as instâncias de uma classe estão de alguma formaligadas às instâncias das outras classes envolvidas na associação

pode haver troca de informações entre as classes e ocompartilhamento de métodos.

Nas extremidades da assoicação deve conter:

oOs papéis das classes naquela associação

oA multiplicidade

oA navegabilidade da associação.67

Associação

Page 68: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

6868

Exemplo – Associação com Papel

Neste exemplo a classe estudante assume dois papéis

diferentes.

Page 69: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

69

Define o limite de vezes que as instâncias de uma classe devemse relacionar com as instâncias de outra classe

Tipos de cardinalidade:

0..1 - Cardinalidade pode ser 0 ou 1

1 - Cardinalidade só pode ser 1

0..* - Cardinalidade pode variar de 0 até infinito

* - Cardinalidade pode variar de 0 até infinito

1..* - Cardinalidade pode variar de 1 até infinito

1..6 - Cardinalidade pode variar de 1 até 6

69

Multiplicidade

Page 70: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

70

Quando não for definida a multiplicidade na extremidade darelação considera que a multiplicidade é 1.

70

Exemplo - Associação com Multiplicidade

Page 71: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

71

Representada por uma seta na extremidade da linha que indica orelacionamento entre duas classes.

Expressa o sentido em que as informações são transmitidas entreas classes envolvidas.

Indica também as classes que cada classe pode enviarmensagem.

71

Navegabilidade

Page 72: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

72

Associação Unidirecional (com navegabilidade em uma únicadireção)

o indica que só uma classe está ciente da relação

o as informações trafegam em uma única direação.

Associação Bidirecional (com navegabilidade nas duasdireçãoes ou sem navegabilidade)

o todas as classes estão ciente da relação

o as informações podem trafegar em todas as direções entre asclasses da associação

Por padrão as associações são bidirecional.

72

Navegabilidade

Page 73: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

7373

Exemplo – Associação com Navegabilidade

A empresa sabe quais são seus funcionários, mas o funcionárionão sabe a que empresa pertence.

public class Empresa {

private string NomEmpresa;

public funcionario empregado[];

}

public class Funcionário {

private long Codigo;

private char Nome;

private long codChefe;

}

Page 74: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

74

As associações podem ser modeladas da seguinte forma:

Associação Unária ou Reflexiva

Associação Binária

Classe de Associação (Classe Associativa)

Agregação

Composição

74

Associação

Page 75: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

75

Uma mesma classe pode se relacionar com ela própria através deuma associação.

75

Associação Unária ou Reflexiva

Page 76: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

76

Ocorre quando são identificados relacionamentos entre duasduas classes.

Constitui-se o tipo de relacionamento mais comum encontradonos diagramas de classe.

76

Associação Binária

Page 77: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

77

Classes produzidas quando da ocorrência de associações quepossuem multiplicidade muitos (*) em todas as suasextremidades.

Necessárias para armazenar as informações produzidas pelaassociação, além dos atributos próprios da relação.

Válidas somente quando existe um único objeto associado a

duas instâncias associadas.

77

Classe de Associação (Classe Associativa)

Page 78: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

78

.

78

Classe Associativa - Exemplo

Podem ser substitídas por classes normais só que permite vários objetosrelacionados a duas instâncias associadas.

No caso acima, um ator pode atuar no mesmo filme com vários papéisdiferentes.

.

Page 79: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

79

Tipo especial de associação usado para modelar

relacionamentos do tipo todo-parte.

Usado para indicar que as informações de um objeto (objeto-

todo) precisam ser completadas pelas informações contidas em

um ou mais objetos de outra classe (objeto-parte).

Os objetos-parte podem ser compartilhados por mais de um

objeto-todo.

Indica obrigatoriedade de complementação das informações de

um objeto-todo por seus objeto-parte.

79

Agregação

Page 80: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

8080

Agregação - Exemplos

Indica que sempre que uma pessoa for consultada, além de suas

informações serão apresentadas todas as contas referentes a esta

pessoa .

Page 81: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

81

Constitui-se em uma variação da associação de agregação.

Representa um vínculo mais forte entre os objetos-todo e os

objetos-parte.

Demonstra que os objetos-parte tem de pertencer

exclusivamente a um único objeto-todo com que se relacionam

Em uma composição os objeto-parte não podem ser destruídos

por um objeto diferente do objeto-todo ao qual estão

relacionados.

81

Composição

Page 82: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

8282

Composição - Exemplo

Page 83: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

8383

Composição - Exemplo

Page 84: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

84

Relacionamento utilizado para a modelar Herança

Herança é a habilidade de uma classe (classe filha) deherdar as propriedades de outra classe (classe pai), podendopossuir atributos e métodos próprios.

84

Generalização / Especialização

Page 85: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

8585

Generalização / Especialização

Page 86: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

86

Expressa um certo grau de dependência de uma classe com relação a

outra.

Implica que sempre que ocorrer uma alteração na classe da qual

uma outra depende, esta deverá também sofrer uma alteração.

Não costuma ser encontrado com muita frequência nos diagramas

de classes.

Deve-se modelar dependência apenas quando for relevante para o

contexto da aplicação.

86

Relacionamento de Dependência

Page 87: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

8787

Dependência - Exemplo

O método Incluir da classe Disciplina usa o objeto Aluno como

parâmetro da classe Estudante

Qualquer mudança na classe Estudante poderá afetar a classe

Disciplina

Page 88: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

8888

Representação de Restrição

Informações extras que definem condições a serem validadas

durante a implementação dos relacionamentos entres as classes.

Em geral, são representadas nos diagramas de classes por

textos limitados por chaves.

Page 89: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

8989

Representação de Restrição - Exemplo

Page 90: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

9090

Representação de Restrição - Exemplo

Indica que uma conta corrente pode tanto ser possuída por uma

pessoa física como uma pessoa jurídica, mas uma determinada

conta só pode pertencer a uma única pessoa.

Page 91: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

9191

Representação de Restrição para classes especializadas

.

Indica que se uma pessoa for física, ela não pode ser jurídica e

vice-versa.

Page 92: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

9292

Representação de Restrição para classes especializadas

.

Indica que um veículo pode ser tanto aéreo como aquático,

como é o caso de um hidro-avião.

Page 93: Linguagem de Modelagem Unificada UML - Webnode.com.br...Encapsulamento Herança Polimorfismo Visibilidade Princípios Fundamentais •Representa as “coisas”a serem modeladas do

9393

Visão Geral – Diagrama de Classes e seus elementos