Modelagem Temporal com UML
UML
Linguagem de Modelagem Unificada
Diagrama de Atividades Aula 6 2004
2
Modelagem Temporal com UML
Diagrama de Atividades – “Tipo especial de diagrama de estados, onde são representados os estados de uma atividade, ao invés dos estados de um objeto.”
3
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
1
Modelagem Temporal com UML
Diagrama de Atividades
– Um diagrama de atividade exibe os passos de uma computação. computação.
Cada estado é um passo da computação, onde o sistema está realizando algo. É orientado a fluxos de controle (ao contrário dos DTEs que são orientados a eventos).
– Fluxogramas estendidos...
Além de possuir toda a semântica existente em um fluxograma, permite representar ações concorrentes e sua sincronização.
– Elementos podem ser divididos em dois grupos: controle seqüencial e controle paralelo. paralelo.
4
5
Modelagem Temporal com UML Estado inicial Selecionar local
Contratar arquiteto
Estado de ação
Concorrência (bifurcação)
Desenvolver plano
Orçar plano
[rejeitado] [aceito]
Fazer trabalho no local
Fazer trabalho em outros setores()
Concluir construção
Fluxo: Construção de uma Casa
Estado da atividade com submáquina Fluxo de Objetos Objeto
:CertificadoDeHabitação [concluído]
Estado
7
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Diagrama de Atividades
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Diagrama de Atividades
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected] UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Modelagem Temporal com UML
Modelagem Temporal com UML
Diagrama de Atividades: Fluxo de Controle Paralelos – Fluxos de controle paralelos: dois ou mais fluxos sendo executados simultaneamente. – Uma barra de bifurcação recebe uma transição de entrada, e cria dois ou mais fluxos de controle paralelos.
cada fluxo é executado independentemente e em paralelo com os demais.
– Uma barra de junção recebe duas ou mais transições de entrada e une os fluxos de controle em um único fluxo.
Objetivo: sincronizar fluxos paralelos. A transição de saída da barra de junção somente é disparada quando todas as transições de entrada tiverem sido disparadas.
6
Modelagem Temporal com UML
Diagrama de Atividades: Swimlanes
8
Geração de código: exemplo (1) – Classe Linha: método interseção Um
parâmetro de entrada (l: Linha) e um de Duas linhas com mesma inclinação são retorno paralelas e não se cruzam
Linha slope delta Slope: inclinação da linha Delta: deslocamento em relação à origem
Cálculo do ponto de interseção
9
Modelagem Temporal com UML
Diagrama de Atividades: Uso – O diagrama de atividades é pouco utilizado na prática para modelagem de aspectos temporais de software – É fortemente utilizado na modelagem de fluxos de trabalho de processos negócio A
própria descrição do Processo Unificado é fortemente baseada em diagramas de atividades 11
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected] UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Diagrama de Atividades
Diagrama de Atividades
Geração de código: exemplo (2)
Point Line:: Line:: intersection (l: Line) Line) { if (slope (slope == l.slope) return Point(0 Point(0, int x = (l.delta - delta) / (slope (slope - l.s l.s int y = (slope (slope * x) + delta; return Point(x,y); Point(x,y); } 10
Modelagem Temporal com UML
12
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Diagramas de Interação: -Diagrama de Seqüência -Diagrama de Colaboração
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
13
Modelagem Temporal com UML
Diagrama de Interação – Identifica os estados de um objeto em um caso de uso específico – Aspectos temporais Decisões Ordem
dos eventos
– Dois tipos Diagrama
de Sequência Diagrama de Colaboração 15
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Modelagem Temporal com UML
Modelagem Temporal com UML
Diagramas de Interação – Interações entre objetos Sequência
de trocas de mensagem entre um conjunto de objetos para realizar um caso de uso.
Ator
Evento de entrada (estímulo)
Objeto
Mensagem
Objeto
Caso de Uso
Evento de Ator saída (resposta)
Tempo
14
Modelagem Temporal com UML
16
Diagrama de Sequência – Há preocupação com ordem das ações – Na Análise, erros e situações de tratamento de exceção não são considerados – Geralmente envolve a interação do sistema com os usários – Cada mensagem é rotulada com
nome argumentos informações de controle – Condições de guarda 17
Modelagem Temporal com UML
Diagrama de Seqüência
19
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected] UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Modelagem Temporal com UML
Modelagem Temporal com UML
Diagrama de Seqüencia – Principal objetivo: identificar quais mensagens devem ser implementadas pelas classes
Classe/Objeto Emissor da mensagem é um Cliente Classe/Objeto Receptor da mensagem é um Servidor Emissor
Receptor
mensagem(parâmetros)
Mensagem deve ser implementado na Classe do objeto receptor! 18
Modelagem Temporal com UML
Diagrama de Seqüência – Tipos de Interação Simples Síncrona Assíncrona
Somente fazem sentido se a linguagem de programação permitir estas alternativas
Retorno
20
Diagrama de Seqüência
janela de entrada de pedido
um pedido
1. preparar()
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
objeto
um item de pedido
: item de estoque
Autodelegação
1.1 *[i=0 to card(item de pedido)] preparar() 1.1.1verificar(): verificação
mensagem Condição de guarda
[verificação = “verdadeiro”] remover()
Remover item()
Criação de objeto
Item excluído [verificação = “verdadeiro”] criar()
uma entrega de item 21
Modelagem Temporal com UML
Reserve(o: Order) { OrderPosition opos; Article article; int number; for (int i=1; i < o.number(); i++) { opos = o.giveOrderPosition(i); article = opos.giveArticle(); number = opos.giveNumber(); articleStock.reserve(article, number); } }
23
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Objeto anônimos (formas alternativas)
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Modelagem Temporal com UML
Modelagem Temporal com UML u1: Usuário
a {b - a < 1 seg.} {c - b < 10 seg.}
{d’ - d < 5 seg.}
: Telefone
u2: Usuário
retira fone do gancho
b
tom de discagem
c
* disca dígito numérico
d
chamada sendo roteada pela rede
d’
chamando
chamando atende chamada som da campainha pára
Som da campainha pára Telefones interligados
telefones interligados Criar(u1,u2,data,hora)
Mensagem d não é instantânea
c: conversação
...
22
Modelagem Temporal com UML
Sistema de Ponto de Vendas Comprar Itens
Caixa
<
>
Cliente
Registrar Pagto.
Administradora de Cartão de Crédito
Pagar com dinheiro Pagar com cartão
Pagar com cheque
Contas a Receber 24
Comprar Itens
PDV
Caixa entrarItem(id, quantidade)
{repetir até que não haja mais itens}
terminarVenda()
25
Modelagem Temporal com UML Pagamento com cheque
Cliente
Serviço de Autorização de Cheque
PDV Caixa
registrarPagamento(rg, cpf,númCheque, númBanco) solicitarAprovação(idPDV, rg, cpf, númCheque, númBanco, valor) resposta [aprovado] solicitarImpressãoCheque [aprovado] impressãoCheque [aprovado] emitirComprovanteVenda() 27
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
Início comum
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected] UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
Modelagem Temporal com UML
Modelagem Temporal com UML Pagamento com Cartão
PDV Cliente
Administradora de Cartão de Crédito
Contas a Receber
registrarPagamento(númeroCC, dataValidade) solicitarAprovação(idPDV, númeroCC, dataValidade, Valor) resposta [aprovado] acrescentarAprovação(resposta) [aprovado] emitirComprovanteCartão() 26
Modelagem Temporal com UML
Diagrama de Colaboração – Apresenta a mesma informação do diagrama de sequência (não representa o tempo como uma dimensão separada) – Utilização: visão geral da interação de objetos
Sem detalhamento da ordem Condensa em um único diagrama toda a troca de mensagens entre um grupo de classes Normalmente é gerado automaticamente pelas ferramentas CASE a partir dos diagramas de seqüência
28
Diagrama de Colaboração – Notação 3: operação(lista de parâmetros) 1: evento
Objeto 1: nome da classe
2: operação
Objeto 2
Nome do ator: classe do ator 4: operação(lista de parâmetros)
Objeto 3: nome da classe
5: operação(lista de parâmetros)
: nome :da nome classe :da nome classe da classe
fluxo de objeto 29
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
Modelagem Temporal com UML
Modelagem Temporal com UML
Integração dos modelos apresentados
30