MD-JPA: Um perfil UML para modelagem do mapeamento objeto ...
5 Uml Modelagem Dinamica
-
Upload
rafael-j-fortes -
Category
Documents
-
view
129 -
download
0
Transcript of 5 Uml Modelagem Dinamica
UML: modelagem dinmicaProf.: Clarindo Isaas Pereira da Silva e PduaSynergia / Gestus Departamento de Cincia da Computao - UFMG
UML: modelagem dinmica
2
Bibliografia
UML: modelagem dinmicaAtividade Evento Mquina de estado Interao4
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
3
1
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.
AtividadeAtividade 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.
5
6
UML: modelagem dinmica > Atividade
UML: modelagem dinmica > Atividade > Diagrama de atividades
Diagrama de atividadeIndica 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.
TransioQuando 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.
7
8
2
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? ]
9
10
UML: modelagem dinmica > Atividade > Diagrama de atividades > Separao/juno de fluxo de controleRecebe 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
3
UML: modelagem dinmica > Atividade > Diagrama de atividades > Raias
UML: modelagem dinmica > Atividade > Diagrama de atividades
Fluxo de objetosPesquisa Desenv olv imento de produtos Marketing Vendas Manufatura
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.
Desenvolvimento do produ to
Pode-se indicar o estado do objeto entre [ ]s abaixo de seu nome. : Chapa de Ao [Nova]
Lanamento do produto
Furao
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
4
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
5
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
6
UML: modelagem dinmica > Eventos > SinalHierarquia 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
7
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 estadosA 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
8
UML: modelagem dinmica > Mquinas de estados
UML: modelagem dinmica > Mquinas de estados > Estados e transies
Estados e transioUm 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
9
UML: modelagem dinmica > Mquinas de estados > Estados e transies
UML: modelagem dinmica > Mquinas de estados > Estados e transies > Transies
TransiesUma 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
ExemploPedido 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 avanadosUm 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 / ao47
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