3.noções uml
DESCRIPTION
poooTRANSCRIPT
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.
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.
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.
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
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
6
UML
• Visão de distribuição:
– Físicos
• Componentes
• Distribuição/Utilização (Deployment)
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.
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
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
10
UML
• Visibilidade
Java private protected public
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
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
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
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
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
16
UML
• Relacionamentos
– Associação
Associação normal
Figura 7: Associação recursiva
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
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
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
20
UML
• Relacionamentos
– Associação Agregação:
Agregação compartilhada
Figura 13: Agregação de composição
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.
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
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
24
Rational Rose
Together
ArgoUML
System Architect
Microsoft Visio
Astah (antigo Jude)
etc...
Ferramentas
Exercícios
1) Crie as classes abaixo em Java:
25
26
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.
Perguntas
? 28