Sie sind auf Seite 1von 13

UML: modelagem dinmica

Prof.: Clarindo Isaas Pereira da Silva e Pdua


Synergia / Gestus Departamento de Cincia da Computao - UFMG

UML: modelagem dinmica

Bibliografia

UML: modelagem dinmica


Atividade Evento Mquina de estado Interao
4

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 dinmica UML: modelagem dinmica

O comportamento dinmico de um objeto tem duas dimenses:


mudanas de estado interna. Descrevem como o objeto altera seu estado, por exemplo, mostrando o valor de seus atributos. interaes. Descrevem o comportamento externo e sua interao com outros objetos.

Atividade
Atividade um grafo de nodos e fluxos que mostra o fluxo de controle (e, opcionalmente, dados) atravs dos passos de uma computao. Atividades so mostradas em diagramas de atividade.

UML: modelagem dinmica > Atividade

UML: modelagem dinmica > Atividade > Diagrama de atividades

Diagrama de atividade
Indica fluxo de controle de atividade em atividade. Diagramas de interao mostram fluxo de controle de objeto a objeto diagramas de atividade enfatizam o fluxo de controle de atividade para atividade.

Transio
Quando uma atividade termina, o fluxo de controle passa imediatamente para a atividade seguinte. A execuo comea no estado de partida e termina quando o controle atinge o estado final.
Faz pedido Avalia estoque

Pode ser considerado um caso especial de diagramas de estado onde os estados so estados de atividade e as transies so disparadas pelo trmino de uma atividade.

UML: modelagem dinmica > Atividade > Diagrama de atividades

UML: modelagem dinmica > Atividade > Diagrama de atividades

Desvio

Separao/juno de fluxo de controle


Indica caminhos alternativos de controle baseados em condies de guarda.

Indica execuo concorrente de atividades. Barras de sincronizao so utilizadas para indicar a separao e a juno de fluxos de controle.

Uma condio de guarda denotada por: [expresso booleana]. Exemplo:


Avalia estoque

Faz pedido

Um fluxo de controle pode se subdividir em dois ou mais fluxos.

[ Neces sita reposio? ]

10

UML: modelagem dinmica > Atividade > Diagrama de atividades > Separao/juno de fluxo de controle
Recebe pedidos

UML: modelagem dinmica > Atividade > Diagrama de atividades

Raias

Raias podem ser usadas para indicar entidades responsveis pela execuo de atividades.

Com uni ca recebimento

Analisa p edido s

Localiza produtos Providencia produtos faltantes

Raias correspondem a entidades do mundo real, em geral estruturas organizacionais.

Providencia transao

11

12

UML: modelagem dinmica > Atividade > Diagrama de atividades > Raias

UML: modelagem dinmica > Atividade > Diagrama de atividades

Fluxo de objetos
Pesquisa Desenv olv imento de produtos Marketing Vendas Manufatura

<<Process>> Concepo

um tipo de fluxo de controle que representa o relacionamento entre o objeto e a atividade ou transio que o criou.

Usa-se o relacionamento de dependncia para indicar o fluxo de controle.

<<Process>> Desenvolvimento do produ to

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


<<Physical>> : Chapa de Ao [Nova]

<<Process>> Lanamento do produto

Furao

<<Physi cal >> Placa : Chapa de Ao [Furada]

13

14

UML: modelagem dinmica > Atividade > Diagrama de atividades

UML: modelagem dinmica > Atividade > Diagrama de atividades > Diretrizes

Diretrizes

Quando usar um diagrama de atividades:


Um diagrama de atividades bem estruturado:


d-lhe um nome que comunique seu propsito; comece modelando o fluxo primrio. Enderece concorrncia, desvios e fluxo de objetos como considerao secundria, talvez at em diagramas separados;

foca na comunicao de aspectos dinmicos do sistema; contm somente os elementos essenciais para o entendimento desses aspectos;

prov detalhes consistentes com o nvel de abstrao (usa somente os adornos necessrios);

busque minimizar cruzamento de linhas; use notas e cores para chamar ateno para caractersticas importantes do diagrama.

no minimalista a ponto de omitir detalhes importantes.

15

16

UML: modelagem dinmica

UML: modelagem dinmica > Eventos

Eventos

Eventos podem ser internos ou externos.

Em um sistema esttico nada acontece. Em um sistema dinmico as coisas acontecem e influenciam o comportamento de outras coisas.

Eventos externos so aqueles que passam entre atores e o sistema.

Por exemplo, quando o usurio aciona um comando ou quando um sensor sinaliza um situao importante (coliso de um carro).

Coisas acontecem disparadas por eventos internos ou externos. ou seja, eventos so usados para modelar essas coisas que acontecem.

Eventos internos so aqueles passados entre objetos que vivem dentro de um sistema.

Um evento a especificao de uma ocorrncia significante que tem uma localizao no tempo e no espao.

por exemplo, uma exceo de overflow.

17

18

UML: modelagem dinmica > Eventos

UML: modelagem dinmica > Eventos

Disparadores

H quatro tipos de eventos:

Disparador (trigger) a especificao de um evento cuja ocorrncia causa a execuo de um comportamento, como por exemplo, tornar uma transio habilidade a disparar (fire).

sinal; chamada; tempo; mudana.

A palavra pode ser usada como um nome (como o evento) ou um verbo (para a ocorrncia do evento).

19

20

UML: modelagem dinmica > Eventos

UML: modelagem dinmica > Eventos > Sinal

Sinal

Um sinal um classificador explicitamente nomeado como Sinal, usado para comunicao explcita entre objetos.

Um sinal um tipo de evento que representa a especificao de um estmulo assncrono comunicado entre objetos.

Um sinal tem uma lista de parmetros, expressos como atributos. Um sinal explicitamente enviado por um objeto a outro objeto ou a um conjunto de objetos.

um meio explicito atravs do qual objetos podem comunicar entre si assincronamente.

Uma ao assncrona uma requisio na qual o objeto remetente no pra para esperar pelos resultados (ao contrrio da ao sncrona)

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

21

22

UML: modelagem dinmica > Eventos > Sinal

UML: modelagem dinmica > Eventos > Sinal

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

Um sinal pode ser generalizado.

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

Um sinal filho herda os parmetros do sinal pai e pode criar parmetros adicionais.

O recebimento de um sinal um evento que visa disparar transies

Um sinal filho satisfaz um disparador que requeira um de seus ancestrais (polimorfismo de eventos).

na mquina de estados receptora.

Um sinal enviado a um conjunto de objetos pode disparar uma ou nenhuma transio em cada objeto receptor independentemente.

23

24

UML: modelagem dinmica > Eventos > Sinal


Hierarquia de eventos

UML: modelagem dinmica > Eventos > Sinal

Um sinal pode ser representado num diagrama de classes como uma classe estereotipada e pode-se indicar a classe ou operao que o gera.

25

26

UML: modelagem dinmica > Eventos > Sinal

UML: modelagem dinmica > Eventos > Sinal

Exemplo:

Para usar um sinal como um disparador de uma transio, usa-se a sintax: nome-do-sinal (lista de parmetros),

cd diagrama-classe Agente de mov imento + posio: int velocidade: int move Para() : void

Onde a lista de parmetros tem a sintax: nome-do-parmetro: expresso de tipo

Exemplo: diagrama de estado mostrando um evento disparando uma transio e executando uma ao

signal Coliso Fora: float send

sm diagrama-estado Ativ o telefone no gancho /cai Conexo Disponv el

27

28

UML: modelagem dinmica > Eventos

UML: modelagem dinmica > Eventos

Evento de Chamada

Evento tempo e mudana

o evento de recebimento de uma chamada de uma operao por um objeto alvo. Pode ser implementada por um mtodo da classe que define o objeto alvo or por aes indicadas em transies de mquinas de estado finitos.

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

utilizado para modelar o tempo disparando uma transio.

representado por uma expresso de tempo.

Em geral, se um objeto invoca uma operao de outro objeto que no tem um disparador associado operao, seu efeito a imediata execuo da

Um evento de mudana representa a satisfao de uma condio.

representado por when seguido de uma expresso booleana entre parnteses.

operao requisitada.

Se houver um disparador associado chamada, a chamada tratada como a ocorrncia de um evento pela mquina de estados associada ao objeto.
29 30

UML: modelagem dinmica > Eventos > Evento tempo e mudana

UML: modelagem dinmica

Exemplo: diagrama de estados mostrando transio disparada por evento de tempo e de mudana.

Mquina de estados
A UML define dois tipos de mquinas de estados:
Mquina de estados comportamental.
Capturam o ciclo de vida de objetos, sistemas e subsistemas.

sm diagrama-estado Evento de mudana When (11:30PM) /auto Teste evento de tempo Disponv el after (2 seconds) /cai Conexo Ativ o

Mquina de estados de protocolo.


So usadas para expressar transies vlidas que podem ocorrer em um classificador abstrato como uma interface ou porto.

Aqui consideramos apenas as mquinas de estado comportamental.

31

32

UML: modelagem dinmica > Mquinas de estados

UML: modelagem dinmica > Mquinas de estados > Estados e transies

Estados e transio
Um objeto passa por uma srie de estados em seu tempo de vida. Um estado pode ser considerado uma condio durante a vida de um objeto durante a qual ele satisfaz alguma condio, executa uma do activityou espera por algum evento.

Todos os objetos tm um estado.


o estado o resultado de atividades prvias 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 ao aumenta de valor, um raio cai em um tranformador, etc.

33

34

UML: modelagem dinmica > Mquinas de estados > Estados e transies

UML: modelagem dinmica > Mquinas de estados > Estados e transies

Estados iniciais e finais.

Um estado uma condio ou situao relevante durante a vida de um objeto durante a qual ele satisfaz algumas condies, executa algumas atividades ou espera por eventos.

Como mostrado no exemplo, so dois estados especiais que indicam, respectivamente: o ponto de partida de uma mquina de estado ou subestado. que a execuo da mquina de estado ou estado envolvente terminou.
sm Estados iniciais e finais Estado A Initial Estado B

Avalia

Final

35

36

UML: modelagem dinmica > Mquinas de estados > Estados e transies

UML: modelagem dinmica > Mquinas de estados > Estados e transies > Transies

Transies
Uma transio um relacionamento entre dois estados indicando que o objeto no primeiro estado vai executar certas aes e entrar no segundo estado quando um evento especificado ocorrer e uma condio de guarda for satisfeita.
Ocorrendo a mudana de estados diz-se que a transio disparou.

Sintaxe de uma transio de estados: Assinatura de evento [condio de guarda ] / expresso de ao ^ clusula de envio Onde a assinatura de evento indica o nome do evento e eventuais parmetros e a clusula de envio indica o destinatrio de possveis eventos gerados com ao.

Um evento disparador pode ser um dos quatro tipos de eventos mostrados anteriormente.
No caso de sinais ou chamadas, podem conter parmetros.

37

38

UML: modelagem dinmica > Mquinas de estados > Estados e transies > Transies

UML: modelagem dinmica > Mquinas de estados > Estados e transies > Transies

A condio de guarda denotada por uma expresso 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.

Uma ao uma computao executvel atmica (indivisvel).


Podem ser chamadas de operaes (do objeto que possui a mquina ou de outro objeto), a criao ou destruio de outros objetos ou o envio de um sinal. No caso de envio de sinal, a palavra send deve preceder o nome do sinal.

39

40

10

UML: modelagem dinmica > Mquinas de estados

UML: modelagem dinmica > Mquinas de estados

Uma mquina de estados mostra como um objeto reage a eventos e como ele muda seu estado interno. Exemplo: controle de um elevador.
sm Statecharts Primeiro andar Initial Chegou Chegou Descendo Sobe Chegou Desce Aguardando Sobe Subindo

Uma mquina de estados a especificao da seqencia de estados que um objeto atravessa em resposta a eventos durante sua vida, junto com suas aes como respostas. Uma mquina de estados associada a classes, colaboraes ou mtodos fontes e especifica o comportamento das instncias do elemento fonte.

Retornando ao primeiro andar

T empo esgotado

41

42

UML: modelagem dinmica > Mquinas de estados

UML: modelagem dinmica > Mquinas de estados

Diagramas de estados mostram mquina de estados. Objetos tm um tempo de vida nascem quando so criados e deixam de existir quando so destrudos. Durante seu tempo de vida, objetos que somente recebem ou enviam mensagem de maneira sncrona e cujo comportamento no depende de seu passado, no necessitam de uma mquina de estados para descrever seu comportamento.

Por outro lado, se o objeto precisa responder a sinais (assncronos),


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 mssil ar-ar depende se o avio est em terra ( o mssil no pode ser disparado) ou no ou se o mssil est calculando seu alvo (s depois ele poderia ser disparado).

seu comportamento deve ser especificado por uma mquina de estados.

43

44

11

UML: modelagem dinmica > Mquinas de estados

UML: modelagem dinmica > Mquinas de estados

Exemplo
Pedido recebido do cliente Pedido criado Pedido sucedido Colocado no mercado Pedido casado/ marcar como concludo Fim de dia til Pedido colocado no mercado / Criar propriedade de t tulo

Estado e transies avanados


Um estado tem vrias partes.
Nome: distingue um estado de outros; Aes de entrada e de sada: aes executadas na entrada ou na sada de estados. Transies internas: transies que so trabalhadas sem mudana de estados. Subestados: estrutura aninhada de um estado envolvendo submquinas de estado. Atividades: uma atividade pode ser uma nova mquina de estados ou uma seqencia de aes. Estados adiados: uma lista de eventos que no so trabalhados naquele estado so adiados e colocados em fila para serem trabalhadas em outro estado do objeto.

Pedido cancelado / colocar como cancelado Colocado de volta no mercado para prximo dia Aceito como fracasso / marcar com o cancelado Pedido fracassado

Pedido cancelado

45

46

UML: modelagem dinmica > Mquinas de estados > Estados e transies avanados

UML: modelagem dinmica > Mquinas de estados > Estados e transies avanados

Aes de entrada e de sada: so usadas para se disparar as mesmas aes independente de onde se veio ou para onde se vai.
Notao (dentro do estado): entry / ao ou exit / ao

Subestados: estrutura aninhada de um estado envolvendo sub-mquinas de estado.


Notao: mquina de estados aninhada. Um estado que contm sub-estados chamado de estado composto.

Transies internas: so usadas para se responder a eventos sem sair do estado. Diferente de uma auto transio, a transio interna no causa a execuo das aes de entrada ou de sada do estado.
Notao: evento / ao
47

48

12

UML: modelagem dinmica > Mquinas de estados > Estados e transies avanados

Diagrama de Interao

Atividades: usado para indicar uma atividade a ser realizada quando o objeto est naquele estado.
Notao: do / mquina de estados ou do / ao 1; ao 2; ao 3

Mostram a interao entre objetos.

Estados adiados: usado quando um estado no prev transio para um evento e deseja-se manter este evento (adiado) at que se atinja um estado onde aquele evento no seja adiado.
Notao: evento / defer

49

50

13

Das könnte Ihnen auch gefallen