• Nenhum resultado encontrado

UML: modelagem dinâmica

N/A
N/A
Protected

Academic year: 2021

Share "UML: modelagem dinâmica"

Copied!
13
0
0

Texto

(1)

UML: modelagem dinâmica

2

UML: modelagem dinâmica

Prof.: Clarindo Isaías Pereira da Silva e Pádua

Synergia / Gestus

Departamento de Ciência da Computação - UFMG

Bibliografia

Rumbaugh, J.; Jacobson, I.; Booch, G., The Unified Modeling Language Reference Manual, Addison Wesley, 2nd edition, 2004.

Booch, G.; Rumbaugh, J.; Jacobson, I., "Unified Modeling Language User Guide", 2nd Edition, Addison Wesley, 2005.

Eriksson, H-E, Penker, M. Lyons, B., Fado, D. UML 2 Toolkit, Wiley, 2004

UML: modelagem dinâmica



Atividade



Evento



Máquina de estado



Interação

(2)

5

 O comportamento dinâmico de um objeto tem duas

dimensões:

 mudanças de estado interna.

Descrevem como o objeto altera seu estado, por exemplo, mostrando o valor de seus atributos.

 interações.

Descrevem o comportamento externo e sua interação com outros objetos.

UML: modelagem dinâmica

6

UML: modelagem dinâmica

Atividade



Atividade é um grafo de nodos e fluxos que

mostra o fluxo de controle (e, opcionalmente,

dados) através dos passos de uma

computação.



Atividades são mostradas em diagramas de

atividade.

7

UML: modelagem dinâmica > Atividade

Diagrama de atividade

 Indica fluxo de controle de atividade em atividade.

 Diagramas de interação mostram fluxo de controle de objeto a objeto – diagramas de atividade enfatizam o fluxo de controle de atividade para atividade.

 Pode ser considerado um caso especial de diagramas de

estado onde os estados são estados de atividade e as transições são disparadas pelo término de uma atividade.

8

UML: modelagem dinâmica > Atividade > Diagrama de atividades

Transição

Quando uma atividade termina, o fluxo de controle passa

imediatamente para a atividade seguinte.

A execução começa no estado de partida e termina quando o controle atinge o estado final.

Avalia estoque

(3)

9

Desvio

Indica caminhos alternativos de controle baseados em condições de guarda.

Uma condição de guarda é denotada por: [expressão booleana].

Exemplo:

Avalia estoque

Faz pedido [ Neces sita repo sição? ]

UML: modelagem dinâmica > Atividade > Diagrama de atividades

10

Separação/junção de fluxo de controle

Indica execução concorrente de atividades.

Barras de sincronização são utilizadas para indicar a

separação e a junção de fluxos de controle.

Um fluxo de controle pode se subdividir em dois ou

mais fluxos.

UML: modelagem dinâmica > Atividade > Diagrama de atividades Recebe pe didos Com uni ca recebim ento Analisa p edido s Localiza produtos Providencia produtos faltantes Providencia transação

UML: modelagem dinâmica > Atividade > Diagrama de atividades > Separação/junção de fluxo de controle

Raias

Raias podem ser usadas para indicar entidades

responsáveis pela execução de atividades.

Raias correspondem a entidades do mundo real, em

geral estruturas organizacionais.

UML: modelagem dinâmica > Atividade > Diagrama de atividades

(4)

13 Concepção <<Process>> Desenvolvimento do produ to <<Process>> Lançamento do produto <<Process>> Manufatura Vendas Marketing

Desenv olv imento de produtos Pesquisa

UML: modelagem dinâmica > Atividade > Diagrama de atividades > Raias

14

Fluxo de objetos

É um tipo de fluxo de controle que representa o relacionamento entre o objeto e a atividade ou transição que o criou.

Usa-se o relacionamento de dependência para indicar o fluxo de controle.

Pode-se indicar o estado do objeto entre [ ]s abaixo de seu nome.

Furação : Chapa de Aço

<<Physical>>

[Nova] Placa : Chapa de

Aço <<Physi cal >>

[Furada]

UML: modelagem dinâmica > Atividade > Diagrama de atividades

15

Diretrizes

Um diagrama de atividades bem estruturado:

foca na comunicação de aspectos dinâmicos do sistema;

contêm somente os elementos essenciais para o entendimento desses aspectos;

provê detalhes consistentes com o nível de abstração (usa somente os adornos necessários);

não é minimalista a ponto de omitir detalhes importantes. UML: modelagem dinâmica > Atividade > Diagrama de

atividades

16

Quando usar um diagrama de atividades:dê-lhe um nome que comunique seu propósito;

comece modelando o fluxo primário. Enderece concorrência, desvios e fluxo de objetos como consideração secundária, talvez até em diagramas separados;

busque minimizar cruzamento de linhas;

use notas e cores para chamar atenção para características importantes do diagrama.

UML: modelagem dinâmica > Atividade > Diagrama de atividades > Diretrizes

(5)

17

Eventos

Em um sistema estático nada acontece.

Em um sistema dinâmico as “coisas” acontecem e influenciam o comportamento de outras “coisas”.

“Coisas” acontecem disparadas por eventos internos ou externos.

ou seja, eventos são usados para modelar essas “coisas” que acontecem.

Um evento é a especificação de uma ocorrência significante que tem uma localização no tempo e no espaço.

UML: modelagem dinâmica

18

Eventos podem ser internos ou externos.

Eventos externos são aqueles que passam entre atores e o sistema.

Por exemplo, quando o usuário aciona um comando ou quando um sensor sinaliza um situação importante (colisão de um carro).

Eventos internos são aqueles passados entre objetos que vivem dentro de um sistema.

por exemplo, uma exceção de overflow.

UML: modelagem dinâmica > Eventos

Disparadores

Disparador (trigger) é a especificação de um evento

cuja ocorrência causa a execução de um

comportamento, como por exemplo, tornar uma

transição habilidade a disparar (fire).

A palavra pode ser usada como um nome (como o

evento) ou um verbo (para a ocorrência do evento).

UML: modelagem dinâmica > Eventos

Há quatro tipos de eventos:

sinal;

chamada;

tempo;

mudança.

(6)

21

Sinal

Um sinal é um tipo de evento que representa a especificação de um estímulo assíncrono comunicado entre objetos.

É um meio explicito através do qual objetos podem comunicar entre si assincronamente.

Uma ação assíncrona é uma requisição na qual o objeto

remetente não pára para esperar pelos resultados (ao contrário da ação síncrona)

UML: modelagem dinâmica > Eventos

22

Um sinal é um classificador explicitamente nomeado como Sinal, usado para comunicação explícita entre objetos.

Um sinal tem uma lista de parâmetros, expressos como atributos.

Um sinal é explicitamente enviado por um objeto a outro objeto ou a um conjunto de objetos.

O envio de uma sinal a um conjunto de objetos pode ser considerado como broadcasting (radio ou tele-difusão).

UML: modelagem dinâmica > Eventos > Sinal

23

O remetente especifica os argumentos de um sinal quando este é enviado.

Enviar um sinal significa instanciar um objeto sinal e transmití-lo ao conjunto de objetos alvo.

O recebimento de um sinal é um evento que visa disparar transições na máquina de estados receptora.

Um sinal enviado a um conjunto de objetos pode disparar uma ou nenhuma transição em cada objeto receptor independentemente.

UML: modelagem dinâmica > Eventos > Sinal

24

Um sinal pode ser generalizado.

Um sinal filho herda os parâmetros do sinal pai e pode

criar parâmetros adicionais.

Um sinal filho satisfaz um disparador que requeira um

de seus ancestrais (polimorfismo de eventos).

(7)

25

Hierarquia de eventos

UML: modelagem dinâmica > Eventos > Sinal

26

Um sinal pode ser representado num

diagrama de classes como uma classe

estereotipada e pode-se indicar a classe ou

operação que o gera.

UML: modelagem dinâmica > Eventos > Sinal

Exemplo: cd diagrama-classe «signal» Colisão - Força: float Agente de mov imento - posição: int - velocidade: int

+ move Para() : void

«send»

UML: modelagem dinâmica > Eventos > Sinal

Para usar um sinal como um disparador de uma transição, usa-se a sintax:

nome-do-sinal (lista de parâmetros),

Onde a lista de parâmetros tem a sintax:

nome-do-parâmetro: expressão de tipo

Exemplo: diagrama de estado mostrando um evento disparando uma transição e executando uma ação

sm diagrama-estado

Disponív el Ativ o

tel efone no gancho /cai Conexão

(8)

29

Chamada

Uma chamada representa o despacho de uma operação de um objeto.

Em geral, se um objeto invoca uma operação de um outro objeto que tem uma máquina de estado, o controle passa do remetente para o receptor, a operação é executada, uma transição (se houver) é disparada pela chamada, o receptor muda de estado e o controle volta para o remetente.

UML: modelagem dinâmica > Eventos

30

Evento tempo e mudança

Um evento de tempo é um evento que representa a passagem de tempo, ou seja,

é utilizado para modelar o tempo disparando uma transição.

É representado por uma expressão de tempo.

Um evento de mudança representa a satisfação de uma condição.

É representado por when seguido de uma expressão booleana entre parênteses.

UML: modelagem dinâmica > Eventos

31

Exemplo: diagrama de estados mostrando transição disparada por evento de tempo e de mudança.

sm diagrama-estado

Disponív el Ativ o

evento de tempo Evento de

mudança

after (2 seconds) /cai Conexão When (11:30PM) /auto Teste

UML: modelagem dinâmica > Eventos > Evento tempo e mudança

32

UML: modelagem dinâmica

Máquina de estados

 A UML define dois tipos de máquinas de estados:

 Máquina de estados comportamental.

 Capturam o ciclo de vida de objetos, sistemas e subsistemas.

 Máquina de estados de protocolo.

 São usadas para expressar transições válidas que podem ocorrer em um classificador abstrato como uma interface ou porto.

 Aqui consideramos apenas as máquinas de estado

(9)

33

UML: modelagem dinâmica > Máquinas de estados

Estados e transição



Um objeto passa por uma série de estados em

seu tempo de vida.



Um estado pode ser considerado uma condição

durante a vida de um objeto durante a qual ele

satisfaz alguma condição, executa uma “do

activity”ou espera por algum evento.

34



Todos os objetos têm um estado.

 o estado é o resultado de atividades prévias executadas

pelo objeto.

 tipicamente é determinado pelos valores de seus

atributos e links a outros objetos.

 Um objeto muda de um estado para outro quando

alguma coisa, um evento, acontece.

 Exemplos de evento: uma conta é paga, uma ação

aumenta de valor, um raio cai em um tranformador, etc.

UML: modelagem dinâmica > Máquinas de estados > Estados e transições



Um estado é uma condição ou situação

durante a vida de um objeto durante a qual

ele satisfaz algumas condições, executa

algumas atividades ou espera por eventos.

UML: modelagem dinâmica > Máquinas de estados > Estados e transições

 Estados iniciais e finais.

 Como mostrado no exemplo, são dois estados especiais

que indicam, respectivamente:

 o ponto de partida de uma máquina de estado ou sub-estado.

 que a execução da máquina de estado ou estado envolvente terminou.

UML: modelagem dinâmica > Máquinas de estados > Estados e transições

sm Estados iniciais e finais

Estado A

Ini tial

Estado B

Final Avali a

(10)

37

Transições

 Uma transição é um relacionamento entre dois estados

indicando que o objeto no primeiro estado vai executar certas ações e entrar no segundo estado quando um evento especificado ocorrer e uma condição de guarda for satisfeita.

 Ocorrendo a mudança de estados diz-se que a transição

disparou.

 Um evento disparador pode ser um dos quatro tipos de

eventos mostrados anteriormente.

 No caso de sinais ou chamadas, podem conter parâmetros.

UML: modelagem dinâmica > Máquinas de estados > Estados e transições

38



Sintaxe de uma transição de estados:

Assinatura de evento “[“condição de guarda “]” “/”

expressão de ação “^” cláusula de envio

Onde a assinatura de evento indica o nome do

evento e eventuais parâmetros e a cláusula de envio

indica o destinatário de possíveis eventos gerados

com ação.

UML: modelagem dinâmica > Máquinas de estados > Estados e transições > Transições

39



A condição de guarda é denotada por uma

expressão booleana entre [...].



Ela é avaliada somente depois de ocorrer o

evento disparador.



Ela é avaliada somente uma vez depois do

evento ocorrer, mas pode ser avaliada

novamente se o evento voltar a ser disparado.

UML: modelagem dinâmica > Máquinas de estados > Estados e transições > Transições

40



Uma ação é uma computação executável

atômica (indivisível).



Podem ser chamadas de operações (do objeto

que possui a máquina ou de outro objeto), a

criação ou destruição de outros objetos ou o

envio de um sinal.



No caso de envio de sinal, a palavra send deve

preceder o nome do sinal.

UML: modelagem dinâmica > Máquinas de estados > Estados e transições > Transições

(11)

41

 Uma máquina de estados mostra como um objeto

reage a eventos e como ele muda seu estado interno.

 Exemplo: controle de um elevador.

UML: modelagem dinâmica > Máquinas de estados

sm Statecharts Initial Primeiro andar Subindo Aguardando Descendo Retornando ao primeiro andar Chegou Tempo esgotado Desce Chegou Sobe Chegou Sobe 42

 Uma máquina de estados é a especificação da

seqüencia de estados que um objeto atravessa em resposta a eventos durante sua vida, junto com suas ações como respostas.

 Uma máquina de estados é associada a classes,

colaborações ou métodos fontes e especifica o comportamento das instâncias do elemento fonte.

UML: modelagem dinâmica > Máquinas de estados

 Diagramas de estados mostram máquina de estados.  Objetos têm um tempo de vida – nascem quando são criados

e deixam de existir quando são destruídos.

 Durante seu tempo de vida, objetos que somente recebem ou enviam mensagem de maneira síncrona e cujo

comportamento não depende de seu passado, não

necessitam de uma máquina de estados para descrever seu comportamento.

UML: modelagem dinâmica > Máquinas de estados

 Por outro lado, se o objeto precisa responder a sinais

(assíncronos),

 por exemplo, um telefone celular responde a chamadas de

outros telefones e a eventos de seu teclado.

 ou se o comportamento presente do objeto depende de seu passado,

 por exemplo, o comportamento de um míssil ar-ar depende se o

avião está em terra ( o míssil não pode ser disparado) ou não ou se o míssil está calculando seu alvo (só depois ele poderia ser disparado).

 seu comportamento deve ser especificado por uma máquina de estados.

(12)

45

Exemplo

Pedido criado Pedido colocado no mercado Pedido cancelado Pedido fracassado Pedido

sucedido / Criar propriedade de t ítulo Pedido

recebido

do cliente Colocado no mercado Pedido casado/ marcar como concluído

Fim de dia útil Pedido cancelado / colocar

como cancelado

Colocado de volta no mercado para próximo dia

Aceito como fracasso / marcar como

cancelado

UML: modelagem dinâmica > Máquinas de estados

46

Estado e transições avançados

 Um estado tem várias partes.

 Nome: distingue um estado de outros;

 Ações de entrada e de saída: ações executadas na entrada ou na

saída de estados.

 Transições internas: transições que são trabalhadas sem

mudança de estados.

 Subestados: estrutura aninhada de um estado envolvendo

sub-máquinas de estado.

 Atividades: uma atividade pode ser uma nova máquina de

estados ou uma seqüencia de ações.

 Estados adiados: uma lista de eventos que não são trabalhados

naquele estado – são adiados e colocados em fila para serem trabalhadas em outro estado do objeto.

UML: modelagem dinâmica > Máquinas de estados

47



Ações de entrada e de saída: são usadas para se

disparar as mesmas ações independente de onde

se veio ou para onde se vai.

 Notação (dentro do estado): entry / ação ou

exit / ação



Transições internas: são usadas para se responder

a eventos sem sair do estado. Diferente de uma

auto transição, a transição interna não causa a

execução das ações de entrada ou de saída do

estado.

 Notação: evento / ação

UML: modelagem dinâmica > Máquinas de estados > Estados e transições avançados

48



Subestados: estrutura aninhada de um

estado envolvendo sub-máquinas de

estado.



Notação: máquina de estados aninhada.



Um estado que contém sub-estados é chamado

de estado composto.

UML: modelagem dinâmica > Máquinas de estados > Estados e transições avançados

(13)

49

 Atividades: usado para indicar uma atividade a ser realizada quando o objeto está naquele estado.

 Notação: do / máquina de estados ou

do / ação 1; ação 2; ação 3

 Estados adiados: usado quando um estado não prevê

transição para um evento e deseja-se manter este evento (adiado) até que se atinja um estado onde aquele evento não seja adiado.

 Notação: evento / defer

UML: modelagem dinâmica > Máquinas de estados > Estados e transições avançados

50

Diagrama de Interação

Referências

Documentos relacionados

A abordagem utilizada, dentro da TCS, será o conceito de controle supervisório modular de sistemas a eventos discretos temporizados, conforme proposto por Brandin e Wonham (1993),

Foram 47 menções (16%) (tabela 7) a respeito da preocupação com que as crianças apresentem um padrão de comportamento apropriado ao contexto de interação ao qual pertence

Segundo Araujo (2011) o transporte rodoviário de cargas (TRC) é responsável por mais de 60% do volume de mercadorias movimentadas no Brasil, com o seu custo

No Estado do Pará as seguintes potencialidades são observadas a partir do processo de descentralização da gestão florestal: i desenvolvimento da política florestal estadual; ii

Estes resultados apontam para melhor capacidade de estabelecimento inicial do siratro, apresentando maior velocidade de emergência e percentual de cobertura do solo até os 60

Entendendo, então, como posto acima, propõe-se, com este trabalho, primeiramente estudar a Lei de Busca e Apreensão para dá-la a conhecer da melhor forma, fazendo o mesmo com o

A variação do pH da fase móvel, utilizando uma coluna C8 e o fluxo de 1,2 mL/min, permitiu o ajuste do tempo de retenção do lupeol em aproximadamente 6,2 minutos contribuindo para

III - quem vende, expõe à venda, exporta ou adquire, guarda, tem em cativeiro ou depósito, utiliza ou transporta ovos, larvas ou espécimes da fauna silvestre,