3.noções uml

28
Programação Orientada a Objetos Jaqueline Faria de Oliveira Mestre em Informática E-mail: [email protected] UML Material baseado nas aulas do Professor Moisés Pereira – UNIBH.

Upload: dezitah22

Post on 03-Dec-2015

217 views

Category:

Documents


0 download

DESCRIPTION

pooo

TRANSCRIPT

Page 1: 3.Noções Uml

Programação Orientada a Objetos

Jaqueline Faria de Oliveira Mestre em Informática

E-mail: [email protected]

UML

Material baseado nas aulas do Professor Moisés Pereira – UNIBH.

Page 2: 3.Noções Uml

2

UML

• UML (Unified Modeling Language) é uma linguagem

de modelagem, não é um método.

• É uma linguagem padrão de notação de projetos.

• Por notação entende-se especificar, visualizar e documentar os elementos de um sistema OO.

Page 3: 3.Noções Uml

3

UML

• A UML é importante, pois: – Serve como linguagem para expressar decisões de projeto

que não são óbvias ou que não podem ser deduzidas do código;

– Provê uma semântica que permite capturar as decisões estratégicas e táticas;

– Provê uma forma concreta o suficiente para a compreensão das pessoas e para ser manipulada pelas máquinas;

– É independente das linguagens de programação e dos métodos de desenvolvimento.

Page 4: 3.Noções Uml

4

UML

• UML contém elementos gráficos que podem ser combinados

em diagramas, exibindo seus relacionamentos.

• Cada diagrama UML apresenta uma visão do sistema: – Visão estática – Visão comportamental – Visão de distribuição

Page 5: 3.Noções Uml

5

UML

• Visão Estática: – Diagrama de Classes

– Diagrama de Objetos

• Visão Comportamental: – Casos de uso

– Interação: • Sequência

• Colaboração

– Estados

– Atividades

Page 6: 3.Noções Uml

6

UML

• Visão de distribuição:

– Físicos

• Componentes

• Distribuição/Utilização (Deployment)

Page 7: 3.Noções Uml

7

UML

• Modelos de Elementos

– Os conceitos usados nos diagramas são chamados de modelos de elementos.

– Um modelo de elemento é definido com a semântica, a definição formal do elemento com o exato significado do que ele representa sem definições duvidosas ou ambíguas e também define sua representação gráfica que é mostrada nos diagramas da UML.

– Alguns exemplos de modelos de elementos são Classes, Objetos, Estados, Pacotes e Componentes.

Page 8: 3.Noções Uml

8

UML

• Classes

– Uma classe é a descrição de um tipo de objeto.

– Em UML as classes são representadas por um retângulo dividido em três compartimentos: o compartimento de nome, o de atributos e o compartimento de operações.

Figura 1: Classe

Page 9: 3.Noções Uml

9

UML

• Classes

– Uma classe é a descrição de um tipo de objeto.

– Em UML as classes são representadas por um retângulo dividido em três compartimentos: o compartimento de nome, o de atributos e o compartimento de operações.

Figura 1: Classe

Page 10: 3.Noções Uml

10

UML

• Visibilidade

Java private protected public

UML - # +

Page 11: 3.Noções Uml

11

UML

• Estados

– Todos os objetos possuem um estado que significa o resultado de atividades executadas pelo objeto, e é normalmente determinada pelos valores de seus atributos e ligações com outros objetos.

Figura 3: Estado

Page 12: 3.Noções Uml

12

UML

• Pacotes

– Pacote é um mecanismo de agrupamento, onde todos os modelos de elementos podem ser agrupados.

– Em UML, um pacote é definido como: "Um mecanismo de propósito geral para organizar elementos semanticamente relacionados em grupos”. Figura 4: Pacotes

Page 13: 3.Noções Uml

13

UML

• Componentes

– Um componente pode ser tanto um código em linguagem de programação como um código executável já compilado.

Figura 5: Componentes

Page 14: 3.Noções Uml

14

UML

• Relacionamentos

– Os relacionamentos ligam as classes/objetos entre si criando relações lógicas entre estas entidades.

– Os relacionamentos podem ser dos seguintes tipos: • Associação

• Generalização

• Dependência ou Refinamentos

Page 15: 3.Noções Uml

15

UML

• Relacionamentos

– Associação: • É uma conexão entre classes, e também significa que é uma

conexão entre objetos daquelas classes.

• Em UML, uma associação é definida com um relacionamento que descreve uma série de ligações, onde a ligação é definida como a semântica entre as duplas de objetos ligados.

Figura 6: Associação de classe

Page 16: 3.Noções Uml

16

UML

• Relacionamentos

– Associação

Associação normal

Figura 7: Associação recursiva

Page 17: 3.Noções Uml

17

UML

• Relacionamentos

– Associação qualificada : • Associações qualificadas são usadas com associações de um para

vários (1..*) ou vários para vários (*).

• O "qualificador" (identificador da associação qualificada) especifica como um determinado objeto no final da associação "n" é identificado, e pode ser visto como um tipo de chave para separar todos os objetos na associação.

Figura 8: Associação qualificada

Page 18: 3.Noções Uml

18

UML

• Relacionamentos

– Associação ternária: • Mais de duas classes podem ser associadas entre si, a associação

ternária associa três classes.

– No exemplo abaixo a associação ternária especifica que um cliente poderá possuir 1 ou mais contratos e cada contrato será composto de 1 ou várias regras contratuais.

Figura 11: Associação de classe

Page 19: 3.Noções Uml

19

UML

• Relacionamentos

– Associação Agregação: • A agregação é um caso particular da associação.

• A agregação indica que uma das classes do relacionamento é uma parte, ou está contida em outra classe.

• As palavras chaves usadas para identificar uma agregação são: "consiste em", "contém", "é parte de".

Figura 12: Agregação

Page 20: 3.Noções Uml

20

UML

• Relacionamentos

– Associação Agregação:

Agregação compartilhada

Figura 13: Agregação de composição

Page 21: 3.Noções Uml

21

UML

• Relacionamentos

– Generalização ou Herança: • É um relacionamento de um elemento mais geral e outro mais

específico.

• O elemento mais específico pode conter apenas informações adicionais.

• Uma instância (um objeto é uma instância de uma classe) do elemento mais específico pode ser usada onde o elemento mais geral seja permitido.

Page 22: 3.Noções Uml

22

UML

• Relacionamentos

– Generalização normal: • Na generalização normal a classe mais específica, chamada de

subclasse, herda tudo da classe mais geral, chamada de superclasse.

• Os atributos, operações e todas as associações são herdadas.

• A generalização normal é representada por uma linha entre as duas classes que fazem o relacionamento, sendo que coloca-se um seta no lado da linha onde encontra-se a superclasse

indicando a generalização.

Figura 14: Generalização normal

Page 23: 3.Noções Uml

23

Diagrama de classes

Usuário

nome

login

senha

grupos

Item de Mercadoria

quantidade

/ preço total

preço unitário

Mercadoria

alíquota

código

data de cadastramento

descrição

estoque atual

estoque mínimo

fabricante

modelo

preço de compra

preço de venda

unidade

0..*

1

0..*

1

especifica

Fornecedor

nome

telefone

CPF/CGC

endereço

0..*0..* 0..*0..*

fornecida por

Pedido de Compra

número

data de emissão

data prevista

/ valor total

status

0..*1 0..*1

rec...

Item de Compra

1

1..*

1

1..*Caixa

saldo inicial

valor das vendas

Figura 15: Diagrama de Classes

Page 24: 3.Noções Uml

24

Rational Rose

Together

ArgoUML

System Architect

Microsoft Visio

Astah (antigo Jude)

etc...

Ferramentas

Page 25: 3.Noções Uml

Exercícios

1) Crie as classes abaixo em Java:

25

Page 26: 3.Noções Uml

26

Page 27: 3.Noções Uml

27

Bibliografia

BARNES, David; KÖLLING, Michael.. Programação Orientada a

Objetos com Java: Uma introdução prática usando o BlueJ. São Paulo: Pearson Prentice Hall, 4ª ed., 2009.

DEITEL, H. M.; DEITEL, P. J. Java - Como Programar. 8 ed. Prentice-Hall, 2011. Capítulo 11.

Page 28: 3.Noções Uml

Perguntas

? 28