UML - Unified Modeling Language

Download Report

Transcript UML - Unified Modeling Language

UML – Unified Modeling
Language
1
Tópicos abordados
Diagramas e elementos UML
relacionados a fase de Análise & Projeto




Diagrama
Diagrama
Diagrama
Diagrama
de
de
de
de
Classes
Estados
Interações
Componentes
Modelagem dos conceitos OO em UML
2
Objetivos
Mapear os conceitos de OO em UML
Ser capaz de modelar um sistema
usando UML
3
O que é a Unified Modeling
Language (UML)?
A UML combina o melhor de




Modelagem
Modelagem
Modelagem
Modelagem
de
de
de
de
Dados
Negócios
Objetos
Componentes
A UML é a linguagem padrão para visualizar,
especificar, construir e documentar artefatos
de um sistema de software
4
História da UML
Nov ‘97
UML aprovada pelo OMG
5
UML: A Linguagem de
Modelagem
6
Modelagem Visual
Modelagem Visual permite que você construa
da forma correta na primeira vez:






Entender os requisitos do usuário
Validar que o design atende as necessidades
Visualizar interface, lógica de negócio e dados
separadamente
Separar domínios de negócio conforme apropriado
Vizualizar todas as dependências
Validar performance antes do código começar
7
Quem deve modelar?
Analista de
Negócios
Requisitos e
Modelos de
Negócio
Modelos de SW
Engenheiro
de Software
Java, C++, etc.
HTML
CGI
XML
JavaScript
Modelos de
Dados
Desenvolved
or de
Conteúdo
Web
Projetista de
Banco de
Dados
8
Conceitos da UML
A UML pode ser usada para modelar
visualmente:





A interação de sua aplicação com o mundo
externo
O comportamento de sua aplicação
A estrutura de seu sistema
Os componentes de seu sistema
A arquitetura de sua empresa
9
Diagramas UML
Digrama de classes
Diagrama de casos de uso
Diagrama de componentes
Diagrama de distribuição
Diagrama de estados
Diagrama de atividades
Diagrama de interação


Diagrama de seqüência
Diagrama de colaboração
10
Diagrama de classes
Um diagrama de classes mostra a
estrutura de seu software
AlgoritmoCalendario
JanelaMatricula
0..*
1 GerenciadorMatricula
adAluno(Curso, AlunoInfo)
Curso
1
nome
UsuarioMatricula
0..* numCreditos
nome
Aluno
aberto()
adAluno(AlunoInfo)
dataGraduacao
1
3..10
Professor
classificacao
4
1
1..*
CursoOferecido
localizacao
0..4 aberto()
adAluno(AlunoInfo)
11
Classe em UML
Classe é representada usando-se um
retângulo
Professor
12
Atributo em UML
Objeto
Valor do Atributo
Classe
: Professor
titulo = “Mestre”
Nome = “Gibeon”
Professor
titulo
nome
Nome do Atributo
: Professor
titulo = “PhD”
nome = “Ivan”
13
Operação em UML
Especificação
das operações
Professor
criar()
atribuirDisc()
getTitulo()
getNome()
14
Resumo de classes
Uma classe é composta por três seções
Nome da Classe
Atributos
Operações
DVD
Hora
Status
Voltar()
Pausar()
Adiantar()
Parar()
Tocar()
estrutura
comportamento
15
Interface em UML (Canônica)
<<interface>>
Forma
Desenhar
Mover
Rotacionar
Cubo
Tubo
Piramide
Relacionamentos de realização
16
Interface em UML (Icônica)
Tubo
Piramide
Forma
Cubo
Relacionamentos
de realização
17
Pacote em UML
Favorece a modularidade
Pode ser aplicado para modularizar
outros elementos de UML
nome do
pacote
18
Relacionamentos
Associação


agregação
composição
Dependência
Generalização
Realização
19
Associação
Modela a conexão semântica entre
classes Nome da associação
Professor
Trabalha para
Universidade
Associação
Papéis
Classe
Professor
Universidade
Empregado Empregador
20
Agregação
Uma forma especial de associação que
modela um relacionamento todo-parte
entre um agregado (todo) e suas partes
Todo
Agregação
Estudante
Parte
Disciplina
21
Composição
Uma forma de agregação com uma
relação de posse forte

As partes não vivem sem o todo
Todo
Composição
Estudante
Parte
Disciplina
22
Associação x Agregação x
Composição
Como você modelaria:




Dependente e Funcionário?
Pedido e Item do pedido?
Funcionário e Cartão de ponto?
Carro, Roda, Direção e Carburador?
Na dúvida, use agregação!
Na dúvida, use associação!
23
Exercicios
Identificar os relacionamentos do
sistema de reserva
24
Multiplicidade
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
25
Tipos de Multiplicidade
Não especificada
Exatamente um
1
Zero ou mais
0..*
Muitos (mesmo que 0..*)
*
Um ou mais
1..*
Zero ou um
Intervalo determinado
0..1
2..4
2, 4..6
Valores múltiplos
26
Exemplo: Multiplicidade
Multiplicidade
Estudante
1
1..*
Disciplina
27
Navegação
Especifica a direção da associação
Associações e agregações são
bidirecionais por default
28
Exemplo: Navegação
Estudante
1
1..*
Disciplina
Navegação
29
Exercicios
Identificar navegação e multiplicidade
30
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
Cliente
Fornecedor
Relacionamento
de Dependência
31
Dependência na prática (OO)
Parâmetros de entrada de métodos
Tipos de retorno de métodos
Utilização dentro do código de métodos
Exceções lançadas
32
Dependência em Java
class Log {
...
void gravar(){
Arquivo a =...;
a.escrever(...);
}
}
33
Dependência
Pode existir relacionamento de
dependência entre vários elementos de
UML
Classe
Cliente
Pacote
PacoteCliente
Componente
Fornecedor
Cliente
PacoteFornecedor
Fornecedor
Dependência
34
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”
35
Herança Simples
Uma classe herda de uma outra
Figura
Superclasse
(pai)
cor
largura da linha
desenhar()
selecionar()
Relacionamento
de Generalização
Subclasses
Círculo
raio
centro
desenhar()
Retângulo
vertices
desenhar()
diagonal()
36
Herança Múltipla
Classes herdando de mais de uma classe
Mamífero
AnimalVoador
Herança
múltipla
Cachorro
Gato
Morcego
Passarinho
Gaviao
37
Herança Múltipla
O que acontece quando as superclasses
possuem o mesmo método (métodos
com o mesmo nome?
O que acontece quando se tenta
executar um método que não está
definido na subclasse? Em que
hierarquia de superclasses deve-se
procurar o método?
38
Realização
Indica que um elemento serve como
contrato que o outro deve seguir
Classe
Subsistema
Componente
Realização
Caso de uso
Realização de Caso de uso
39
Objeto em UML
: Professor
Apenas o nome da
classe
gibeon :
Professor
gibeon
Apenas o nome do
objeto
Nome da classe e do
objeto
40
Diagrama de estados
Um diagrama de estados mostra o ciclo
de vida de um objeto
Adiciona Aluno[ contador < 10 ]
Inicializado
Adiciona Aluno /
contador = 0
do: Incializa Curso
Aberto
Cancel
Cancela
[ contador = 10 ]
Cancelado
do: Notifica Alunos
Cancela
Fechado
do: Finaliza curso
41
Exercício
42
Diagrama de componentes
Diagramas de Componentes ilustram a
organização e dependências entre
componentes de software
43
O que são componentes
Parte não trivial, quase independente,
substituível de um sistema, que provê a
realização de (uma/um conjunto de)
interface(s)
Exemplos



um código fonte
um componente de tempo de execução
um componente executável
44
Componente em UML
Arquivo fonte
<<EXE>>
Arquivo
executável
<<DLL>>
Componente
Interface do
Componente
45
Exemplo de Diagrama de
componentes
Matricula.exe
Cobranca.exe
Sistema
Cobranca
Pessoa.dll
Curso.dll
Usuario
Curso
46
Subsistemas
Uma combinação de pacotes (pode
conter outro elementos) e classe (tem
comportamento)
Realiza uma ou mais interfaces, que
definem o seu comportamento
Facilita o encapsulamento e a
modularidade
47
Subsistema em UML
Realização
Subsistema
<<subsystem>>
Interface
Nome do subsistema
48
Subsistemas e Componentes
Ambos encapsulam um
comportamento modelado
por interfaces
Subsistemas representam
componentes no modelo de
projeto
Componentes são a
realização física dos
subsistemas
Projeto
<<subsystem>>
Nome do
subsistema
Implementação
Nome do
componente
49
Diagramas de Interação
Modelam interações do sistema com seus
atores
A interação é iniciada por um ator e envolve
instâncias (objetos) das classes
Diagramas de interação capturam a
semântica do fluxo de eventos do caso de
uso

Auxiliam a identificar classes, responsabilidades e
relacionamentos
50
Diagramas de iteração
Existem dois tipos


Diagrama de Seqüência
Diagrama de Colaboração
São semanticamente equivalentes
Um pode ser gerado automaticamente a
partir do outro
51
Forma Geral dos Diagramas
de Seqüência
Objeto fornecedor
Objeto cliente
:Cliente
:Fornecedor
Mensagem reflexiva
1: Realize responsabilidade
1.1: Realize outra responsabilidade
Mensagem
Numeração hierárquica para
as mensagens
Foco de controle
52
Exemplo de Diagrama de
Seqüência
: Aluno
janela de
matrícula
controle de
matrícula
mat 101
mat 101
section 1
1: preenche info
2: submete
3: ad curso(Jose, mat 101)
4: ad(Jose)
5: curso aberto?
6: ad(Jose)
53
Forma Geral de Diagramas de
Colaboração
Objeto cliente
Mensagem reflexiva
Link
1.1: Realize outra
responsabilidade
:Cliente
:Fornecedor
1: Realize responsabilidade
Mensagem
Objeto fornecedor
54
Exemplo de Diagrama de
Colaboração
1: informação do curso
2: processa
janela de curso :
JanelaCurso
3: adiciona curso
: Secretaria
gerenciador :
GerenciadorCurriculo
curso :
Curso
4: novo curso
55
Colaboração X Sequência
Colaboração


Melhores para visualizar os relacionamentos e
responsabilidades de um dado objeto
Mais fáceis de desenhar - úteis em sessões de
brainstorm
Seqüência



Melhores para visualizar a seqüência do fluxo no
tempo
Melhores para visualizar o fluxo completo
Mais adequados para cenários complexos
56
Exercício
57
Mecanismos adicionais de UML
Estereótipos
Notas
Propriedades (Tagged values)
Restrições
58
Estereótipos
Mecanismo utilizado para estender os
elementos de UML
Define um novo modelo de elemento
em termos de outro já existente
Pode ser aplicado a todos os elementos
Representado como


um novo ícone
A notação <<novo_elemento>>
59
Estereótipos - Exemplo
Classes de fronteira:
<<boundary>>
ClasseFronteira
ClasseFronteira
60
Notas
Anotação utilizada para adicionar
informação a diagramas


Pode ser afixionada a qualquer elemento
de UML
Pode ser ligada a um elemento com uma
linha tracejada
LeitoraCartao
Esta classe é uma abstração
do dispositivo de hardware
que será usado para ler
efetivamente as informações
do cartão magnético.
61
Propriedades (Tagged Values)
Servem para estender elementos UML,
adicionando informações a eles
Exemplos já definidos em UML:


Persistence
Location (ex: no cliente, no servidor)
Novas propriedade podem ser criadas
Cliente
{persistence}
LeitoraCartao
{location=server}
62
Restrições
Usadas para criação de novas regras
sobre elementos do modelo ou
modificação de regras existentes
Funcionário
Professor
1..*
Coordenador
3
1
Departamento
{subset}
1
63
FIM!!!
64