UML- Unified Modeling Language

Download Report

Transcript UML- Unified Modeling Language

UML- Unified Modeling Language
Técnicas UML
Profa. Dra. Rosângela Penteado
1
INTRODUÇÃO
ENFOQUES
PRINCÍPIOS OO
METODOLOGIAS OO
UML
ROSE
ESTUDOS DE CASOS
Sistemas
2
UML
BOOCH
OMT
UML
 Diagrama de Estados
 Diagrama de Objetos
(Colaboração)
 Diagrama de Processo
(Desenvolvimento)
 Diagrama de Módulos
(Componentes)
 Diagrama de Estados
 Diagrama de Classes
OOSE




Use Case
Subsistemas (Package)
Diagrama de Interações
MiniEspecificação
3
Usos de UML
• UML é uma linguagem de modelagem para:
Visualização, Especificação, Construção,
Documentação e Comunicação de artefatos
que façam uso de sistemas complexos de
software.
• Adequada para modelar sistemas de
informação corporativos a serem distribuídos a
aplicações baseadas em WEB e até sistemas
complexos de tempo real.
4
Modelo Conceitual da UML
Para formar um modelo conceitual da linguagem é
necessário aprender três elementos principais
• Blocos de construção
• Regras que determinam como esses blocos
poderão ser combinados
• Mecanismos comuns aplicados na UML
5
Blocos de Construção
• É composto de Itens, Relacionamentos e Diagramas.
• Os itens são abstrações, os relacionamentos reunem esses
itens; os diagramas agrupam coleções interessantes de
item.
• Itens são de 4 tipos:
• Estruturais: parte mais estática do modelo (substantivos)
• Comportamentais: parte dinâmica (verbos)
• de Agrupamento – Pacotes - partes organizacionais dos
modelos da UML.
• de Anotação – Nota - partes explicativas dos modelos da
UML, comentários.
6
Itens Estruturais
• São as partes estáticas de um modelo
representando elementos que são conceituais ou
físicos
• Exemplos
Cadeia de
Classe
responsabilidade
Interface
Use Cases
físicos
Servidor
Nó
Componente
7
Itens Comportamentais
• São partes dinâmicas dos modelos da UML.
São os verbos de um modelo representando
comportamento no tempo e no espaço.
• Tipos:
- Interação - especifica um conjunto de
mensagens trocadas entre objetos
- Máquina de Estado - especifica
seqüências de estados de um objeto
8
Itens de Agrupamento
• São as partes organizacionais dos modelos
de UML. São blocos em que os modelos
podem ser decompostos – Pacotes.
• Pacote – mecanismo de propósito geral para
a organização de elementos de grupo. Os
itens estruturais, comportamentais e até
outros itens de grupos podem ser colocados
em pacotes. É puramente conceitual.
• Ex: agrupamento básico, frameworks,
modelos e subsistemas.
9
Itens de Anotação
• Partes explicativas dos modelos de UML.
São comentários, incluídos para descrever,
esclarecer e fazer alguma observação sobre
qualquer elemento do modelo.
10
Relacionamentos
• Existem 4 tipos de relacionamentos na UML:
– Dependência: alteração de item pode afetar a semântica
de outro.
– Associação: ligações existentes entre os objetos
– Generalização: os objetos dos elementos especializados
(os filhos) são substituíveis por objetos do elemento
generalizado (pai)
– Realização: relacionamento semântico entre
classificadores, em que um classificador especifica um
contrato que outro classificador garante executar.
11
Diagramas
• Diagrama é a apresentação gráfica de um conjunto de
elementos para permitir a visualização de um sistema sob
diferentes perspectivas.
–
–
–
–
–
–
–
–
–
Diagrama de classes
Diagrama de objetos
Diagrama de casos de uso
Diagrama de seqüências
Diagrama de colaborações
Diagrama de gráficos de estados
Diagrama de atividades
Diagrama de componentes
Diagrama de implantação
12
Modelagem da arquitetura do sistema
Vocabulário
Classes, interfaces
Funcionalidade e colaborações
Visão da
Implementação
Visão de Projeto
Comportamento
Gerenciamento da
configuração
Montagem do sistema
Visão de
caso de uso
Visão de Processo
Desempenho Threads e processos que
Escalabilidade formam os mecanismos
de concorrência e de
Throughput
sincronização
Visão da
Implantação
Topologia do sistema
Distribuição
Fornecimento
Instalação
13
Processo de Desenvolvimento de
Software
fases/tempo
dimensão/componente
Concepção
Elaboração
Construção
Transição
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Implementação
Teste
iterações
#1
#2
#3
#n
#m+1
14
Processo de Desenvolvimento de Software
fases/tempo
Fluxo de trabalho do
Processo
Concepção
Elaboração
Construção
Transição
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Implementação
É a primeira fase do processo, em que a
idéia inicial para o desenvolvimento é
levada até o ponto de ser - pelo menos
internamente - suficientemente bem
fundamentada para assegurar a passagem à
fase de elaboração
Teste
15
Processo de Desenvolvimento de Software
fases/tempo
Fluxo de trabalho do
Processo
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Implementação
Teste
Concepção
Elaboração
Construção
Transição
É a segunda fase do processo,
quando a visão do produto e
sua arquitetura são definidas.
Os requisitos do sistema
podem abranger desde
declarações de caráter geral
até critérios precisos de
avaliação, em que cada
requisito especifica
determinado comportamento
funcional ou não funcional e
proporciona a base para a
16
realização de testes
Processo de Desenvolvimento de Software
fases/tempo
Fluxo de trabalho do
Processo
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Implementação
Teste
Concepção
Elaboração
3ª fase do processo, em
que o software chega a
uma arquitetura baseline
executável e destinada à
transferência para a
comunidade de usuários.
Os requisitos do sistema
e seus critérios de
avaliação são sempre
reexaminados com base
nas necessidades
comerciais do projeto e
alocação de recursos.
Construção
Transição
17
Processo de Desenvolvimento de Software
fases/tempo
dimensão/componente
Análise de
Requisitos
Nível de
arquitetura
Design
Nível de
classe
Concepção
Elaboração
Construção
Transição
4ª fase do processo, em que o software
chega às mãos dos usuários. Raramente
o processo termina aqui, pois é quando
o sistema é aprimorado continuamente,
bugs são eliminados e acrescentadas
novas características.
Implementação
Teste
18
Visões da Ferramenta ROSE
• Use Case View - descreve o sistema como
um conjunto de transações do ponto de vista
dos atores externos. (criada na fase de
concepção do ciclo de vida e direciona o
resto do projeto)
• Logical View - contém a coleção de
packages, classes e relacionamentos. (fase
de elaboração e refinada na construção)
19
Visões da Ferramenta ROSE
• Component View: contém módulos e
subsistemas (fase de elaboração e refinada
na de construção)
• Deployment View: contém a parte física do
sistema e a conexão entre essas partes
(elaboração do processo - implementação)
20
Diagramas existentes nas Visões
 Use Case View
Diagrama de
Descrição do
Diagrama de
Diagrama de
Use Case
Use Case
Seqüência
Colaboração
 Logical View
Diagrama de Classes
Diagrama de Estados
 Component View
Diagrama de Componentes
 Deployment View
 Diagrama
Deployment
21
Diagramas USE CASES
• Importantes na organização e modelagem dos
comportamentos de um sistema
• Use Case é a especificação de seqüências de ações
que um sistema, subsistema ou classe pode
realizar, interagindo com um dos agentes.
• Documentam os requisitos dos sistemas
- Delimitam o sistema
- Definem a funcionalidade do sistema
• Podem incluir seqüências alternativas ou
excepcionais (de erros).
22
Use Case: Representação Gráfica
• A coleção de use cases deverá especificar todas as
formas existentes de uso do sistema
• A descrição do sistema é feita por meio de vários
use cases que são executados pelo atores (um ou
mais)
• Atores = entidades do ambiente do sistema,
pessoas ou outros subsistemas que interagem com
o sistema em desenvolvimento
23
UML - Diagrama de Use Cases
Sendo composto por:
Ator
Use Case
CadastrarCliente
Cliente
Relacionamento de Associação
dadosCliente
msg02
Cliente
cadastrarCliente
24
Exemplo de Use Case
dados do cliente
Cadastrar Cliente
AtorCliente
mensagem de cadastro
25
Descrição do Use Case
• Curso Normal:
• 1 - Cliente informa que deseja fazer seu cadastro
• 2 - CPF do cliente é solicitado
• 3 - Cliente informa o CPF
• 4 - Não existe o cliente associado ao CPF
• 5 - Cliente informa seu Nome, Endereço e Telefone
• 6- Uma instância de cliente é criada
• 7. MensagemCadastro “Cliente Cadastrado”
26
Descrição do Use Case
Curso Alternativo:
4 - Existe o cliente associado ao CPF
4.1 - Exibir o cliente associado ao CPF
4.2 –MensagemCadastro “cliente já está cadastrado”
4.6 - Abandonar Use Case
27
UML - Diagrama de Use Cases
Generalização
<<uses>>
Generalização
<<extends>>
dadosPedido
dadosPedido
Cliente
msg02
RealizarPedido
<<uses>>
RealizarPedido
Cliente msg02
<<extends>>
ValidarCliente
CadastrarCliente
28
Diagrama de Use Case -Exemplo
Sistema de Validação de
Cartão de Crédito
RealizaTransacaoCartao
InstituicaoVarejo
AtorCliente
ProcessaContaCliente
AtorClienteFisico
AtorClienteJuridico
RecuperaTransacoes
Inst.Financeira
GerenciaContaCliente
29
Use Case – Reserva de Tipo de
Acomodação em Hotel
InfReserva
Funcionario
ReservarAcomodacao
msg
30
Descrição do Use Case
Curso Normal
1.Obter informações do cliente sobre reserva.
2. Tipo de acomodação desejada está disponivel.
3. Obter informações de nro de dependentes.
4. Efetuar reserva desejada.
5. Emitir msg "Reserva Feita" e enviar comprovante para
hospede com essas informações.
6. Fim do use-case.
Curso Alternativo
2. Não ha disponibilidade do tipo de acomodação desejada.
2.1. Emitir msg "não há disponibilidade do tipo de acomodação
desejada".
2.2. Abandonar use case.
31
UML - Diagramas de Classes
• Classe é uma descrição de um conjunto de
objetos com os mesmos atributos,
relacionamentos, operações e semântica.
• Classes = abstrações do domínio do
problema: “Cliente”, “Banco”, “Conta”
• Toda classe deve ter um nome que a
distinga das outras classes, que pode ser
simples ou precedido pelo nome do pacote
em que a classe está contida.
32
Notação Básica para Classe
Nome (obrigatório)
Forma
Atributos
(opcionais)
origem
mover()
redimensionar()
exibir()
Operações (opcional)
Abstração de alguma coisa
que se pode fazer com um
objeto e que é compartilhada
por todos os objetos da
classe. O número de
operações pode ser
qualquer, inclusive zero.
Pode-se especificar a
assinatura da operação:
seus parâmetros, tipo deles
e o tipo de retorno
33
Visibilidade
• Pode-se usar marcações de acesso para especificar o tipo de
acesso permitido aos atributos e operações
• Classificador pode ser classes, interfaces, componentes, nós, use
cases, subsistemas
público:
uso: por todos os classificadores
protegido: uso: por qualquer descendente do
classificador
privado:
uso: somente pelo próprio
classificador
34
UML - Diagrama de Classes
Classes
Produto
Código : integer
Saldo : float
Preço : float
Observação : String
Cadastrar (cod : integer = default, saldo : float = default) : Produto
ValidarQuantidade (quant : float = default) : boolean
CalcularDesconto (vr : float = default) : valor
ImprimirDetalhe (cod : integer = default, quant : float
BaixarEstoque
(cod : integer = default, quant : float = default)
= default)
: return

Atributos
Nome: Tipo = ValorInicial
 Serviços
Nome (ListaParam): TipoRetorno
35
Relacionamentos
• As classes não vivem sozinhas.
Os relacionamentos ligam as classes/objetos
entre si criando relações lógicas entre elas/eles.
TIPOS DE RELACIONAMENTOS
– Associações
• Agregação
• Composição
– Dependências
– Generalizações
36
Associação
Associação - especifica que objetos de um
elemento estão conectados a objetos de outros
elementos
Fornecedor
1
1..n
Produto
Cardinalidade de uma associação
0..1 (opcional- 0 ou mais)
0..* (muitos- 0 ou mais)
1..n ( de 1 a n)
1 (exatamente 1)
1..* (1 ou mais)
37
Associação com Papéis
• Papéis: um dos lados da associação. Nomes de
papéis são necessários para associação entre dois
objetos de mesma classe.
Companhia
1
subordinado
1 .. * Empregado
0 .. *
1
38
Associação com atributos
Modela as propriedades associadas com uma associação.
As propriedades devem ser representadas por uma classe
Carro
Cliente
CliCPF : String
CliNome : String
CliEndereco : String
CliTelefone : String
CliDivida : Float
Aluga
Aluguel
0..1
0..*
Alugado por
0..*
CarPlaca : String
CarDescricao : String
CarSituacao : Integer = 0
CarAno : Integer
CarKm : Float
CarPrecoKm : Float
CarTaxa : Float
CarBmp : TImage
CarObservacao : TMemo
Aluguel
AluDataInicio : Date = GetDate
39
Agregação/Composição
Agregação (Referência/Valor)- relacionamento fraco do tipo “é parte de”.
Tipo especial de associação.
Composição: relacionamento
forte do tipo “é parte de “. A
composição entre um elemento
(o “todo”) e outros elementos
(“as partes”) indica que as
partes só podem pertencer ao
“todo”e são criadas e
destruídas com ele.
Polígono
agregação
Ponto
Contorno
40
Generalização/Dependência
Herança/Generalização - relacionamento entre um elemento
mais geral (superclasse ou pai) e um mais específico (subclasse ou
filho).
Pessoa
Pessoa Física
Pessoa Jurídica
Dependência - relacionamento de uso, no qual uma mudança na
especificação de um elemento pode alterar a especificação do elemento
dependente
Cursos
AgendaCursos
Remove(c:Cursos)
Add(c:Cursos)
41
UML - Diagrama de Classes
Biblioteca
Pessoa
nome : String
endereço : String
0..*
1
1..*
nome : String
endereco : String
RG : String
0..*
Professor
titulacao : String
Livro
edicao : String
ano : int
titulo : String
autor : String
editora : String
Estudante
numeroMatricula : String
anoIngresso : int
42
Exemplo Diagrama de Classes
Escola
Departamento
1
0..1
1..*
1..*
1..*
*
Aluno
1..*
frequenta
leciona
Curso
*
Instrutor
0..1
responsavel
*
43
Herança Múltipla
• Ocorrem múltiplas superclasses para uma
mesma subclasse
veículo
Veículo Terrestre
Veículo Aquático
Veículo Anfíbio
44
UML - Diagrama de Seqüência
• Enfatizam a ordenação das mensagens trocadas
entre os objetos (num certo tempo). Quando um
objeto envia uma mensagem para outro, o objeto que
recebe a mensagem pode enviar outra mensagens e
assim por diante, formando uma seqüência de
mensagens.
• Um cenário é uma seqüência específica de ações
que ilustra um comportamento.
• Diagramas de seqüência podem modelar apenas um
cenário ou um conjunto de cenários. Podem mostrar
decisões simples e iterações.
45
UML - Diagrama de Seqüência
EmpresaTelefônica:
Central
Jose : Chamador
a
{b - a < 1 seg.}
b
c
{d - c < 1 seg.}
d
Antonio : Chamado
1: retira fone do gancho
2: tom de discar
3: discagem do número chamado
4: tom de controle
5: toque de chamada
6: retira fone do gancho
7: conversação
8: conversação
9: repõe fone no gancho
10: tom de ocupado
11: repõe fone no gancho
46
Diagrama de Seqüência para Use Case –
Reservar Tipo de Acomodação
AtorFuncionario :
Funcionario
TipoAcomodacao :
tipoAcomodacao
Cliente :
hospede
Reserva :
ReservaAcomodacao
ReservaAcomp. :
reservaAcompanhante
acomodacaodesejada
VerificarDisp
InfHospede
InfReservaEfetuada
InfReservaAcomponhantes
msg "Reserva Feita"
47
Mensagens
• Uma mensagem é a especificação de uma
comunicação entre objetos, pelos quais são
passadas informações para que alguma
atividade ocorra.
• Tipos de Mensagens:
–
–
–
–
–
Chamada (Call)
Retorno (Return)
Envio (Send)
Criação (Create)
Destruição (Destroy)
48
Diagramas de Colaboração
• Enfatizam a organização dos objetos em
uma interação.
• Praticamente tudo o que pode ser mostrado
em um Diagrama de Seqüência também
pode ser mostrado em um Diagrama de
Colaboração. Assim a partir de um podese transformar no outro.
49
UML - Diagrama de Sequência e Colaboração
Objetos e Atores:
Pedro : Pessoa
Pedro
Pedro : Chamador
1: retira fone do gancho
3: discagem do número chamado
9: repõe fone no gancho
EmpresaTelefônica : Central
7: conversação
4: tom de controle
2: tom de discar
Jose : Chamador
5: toque de chamada
8: conversação
10: tom de ocupado
11: repõe fone no gancho
6: retira fone do gancho
Antonio :
Chamado
50
Exemplo de Diagrama de Colaboração
Janela de entrada de
pedido
1: preparar ()
1.1.2.1:estoqueBaixo:=
verificEstoqueBaixo
p:Pedido
1.1 itemde pedido.
preparar()
1.1.1:emEstoque:=verificar()
1.1.2:(emEstoque):=remover()
:ItemPedido
1.1.3:emEstoque
<<criar>>
:RemEntrega
:RemEstoque
1.1.2.2[estoqueBaixo]
<<criar>>
:ItemRenovEstoque
51
Diagramas de Estado
• Componentes: Estado e Transição
• Partes de um estado:
– Nome
– Atividades de entrada (Entry)
– Atividades de Saída (Exit)
– Atividades (Do)
• Transição: relacionamento entre dois estados indicando que o
objeto no primeiro estado irá executar certas ações e entrar no
segundo estado quando o evento especificado ocorre e as
condições forem satisfeitas
• Partes de uma transição:
– Estado fonte
– Evento de disparo
– Condição de guarda
– Ação
52
– Estado destino
UML - Diagrama de Estados
Sintaxe de Evento e Ação
evento( argumentos )[ condição ]
/ ação ^eventos(argumentos)
nome do estado
Aguardando com Alarme Desligado
Cancelamento / DesBotãoCancela
IniciaAcerto / HabBotãoConfirma
^DesBotãoConfirma
^HabBotãoCancela
HabBotãoAcerto
DesBotãoAcerto
Cancelamento / DesBotãoCancela
^DesBotãoConfirma
HabBotãoAcerto
Acertando Hora do Alarme
Controlando Alarme Ligado
entry: AcertarHoraAlarme
do: MonitorarAlarmeLigado
IniciaControle / DesBotãoCancela
^DesBotãoConfirma
53
HabBotãoAcerto
UML - Diagrama de Estados
Subestado
Telefonando
Dígito(n)
Iniciando
entry:
IniciaTomDiscagem
Dígito(n)
Discando
[ NúmeroVálido() ]
entry: ComporNúmero(n)
54
Concorrência dentro de um objeto
A
A1
alarme ligado
A2
12 hs
inserir bateria
alarme
desligado
24 hs
fim de bateria
55
UML - Packages
Pacotes
Distribuidora
Pacote = mecanismo de propósito geral
para organizar elementos em modelos , de
maneira que seja fácil compreendê-los,
Pacotes Lógicos
Pacotes Componentes
de código binário
Vendas
Unit1
UML - Packages
Pacotes
package
Runnable.java
Contém o nome de arquivo. Em Java pode-se usar uma
especificação de package para representar as interfaces (classe
abstrata que não possui variáveis de instâncias e os serviços são
declarados sem corpo)
Diagrama de Componentes
Mostra a dependência entre componentes de software.
Interface
Pacotes
Lógico
global
Venda
Compra
58
Dependência de Pacote e
Componente
c:\sistema\financeiro
Cotação.dll
59
UML - Visão Componentes
É composto por:
Distribuidora
Distribuidora.java
Programa Principal
(arquivo raiz [origem]
do programa) .java
que contém o main.
Package
Runnable.java
espec_sub
Especificação do
Package (classes
Especialização
do subprograma
abstratas)
Cliente.java
corpo_sub
Corpo
Package
Corpo
do subprograma
UML - Diagrama de Componentes
Distribuidora.java
Fornecedor.java
Cliente.java
Produto.java
Pedido.java
UML - Visão Deployment
O que é?
É composto por:
1. Processador
2. Dispositivo
3. Conexão
PC
Pentium
300
Modem
PC
Pentium
200
Fibra
Ótica
Impressora
HP 700
UML - Roteiro
Projeto: < Nome do Sistema >
1 - Introdução
1.1
- Descrição do problema
1.2
- Objetivos do Sistema
1.3
- Soluções alternativas
1.4
- Descrição da solução escolhida
2 - Visão “Use Case” – nível Análise
2.1 - Definição dos atores(Quem interage?)
2.2 - Lista de eventos
2.3 - Diagrama de Use Cases geral
(Por assunto e por evento)
63
UML - Roteiro
3 – Visão Lógica – nível Análise
3.1 – Diagramas de Classes
4 - Gerência do Projeto
5 – Visão “Use Case”- nível Projeto
5.1 - Interface
5.2 - Diagramas de Seqüência
5.3 - Diagramas de Colaboração
5.4 - Diagramas de Estados
6- Visão Lógica – nível Projeto
6.1 - Diagramas de Classes
64