Buscar

Maquinas de Estados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
UML Comportamental - 
Máquina de estados 
Franklin Ramalho 
Universidade Federal de Campina Grande - 
UFCG 
 SI2- UFCG 
2 
Agenda 
- Contexto e Motivação 
- Estado 
- Tipos de estados 
- Pseudo-estados 
- Transições 
- Eventos 
- Guardas 
- Ação 
- Máquinas de estado 
- Meta-modelo de Máquina de estados 
 
 SI2- UFCG 
3 
Contexto e Motivação 
• Objeto tem tempo de vida 
 
• Objetos se comunicam com outros objetos 
– Troca de mensagens 
– Sinais 
 
• Comportamentos ortogonais 
 
• Comportamentos síncronos 
 
• O que fazer quando o comportamento corrente depende de 
comportamento passado? 
 
• O que fazer com comportamentos assíncronos? 
 SI2- UFCG 
4 
Máquina de estados 
• Uma máquina de estados especifica as 
seqüências de estados pelas quais um objeto 
passa durante seu tempo de vida em 
resposta a eventos, juntamente com suas 
respostas a esses eventos. 
 SI2- UFCG 
5 
Máquina de estados 
• Expressar Comportamento 
– Máquina de estados comportamental 
– Classes 
 
• Expressar protocolo de uso do sistema 
– Máquina de estados de protocolo 
– Interfaces e portas 
 SI2- UFCG 
6 
Máquinas de Estado Comportamental e 
de Protocolos 
• Compartilham sintaxe 
 
• Máquinas de Estado Comportamental 
– Especificam o comportamento de um classifier 
 
• Máquinas de Estado de Protocolo 
– Especificam o protocolo para todos os classifiers 
– Não contém ações 
– Não especifica nada sobre a implementação do 
comportamento 
– Especificam como o comportamento aparece para 
entidades externas: 
• condições, resultados de chamadas de operações, ordem 
de chamada, etc. 
2 
 SI2- UFCG 
7 
Máquina de estados comportamental 
• Uma máquina de estados é um comportamento que 
especifica uma seqüência de estados durante o tempo de 
vida de um objeto 
 
• Modela o comportamento de um único objeto 
 
• Formado por: 
– Estado 
– Transição 
– Evento 
– Ação 
– Guardas 
 SI2- UFCG 
8 
Máquina de estados comportamental 
• Um estado é uma condição ou situação durante a vida do 
objeto durante a qual ele satisfaz alguma condição, realiza 
alguma atividade ou aguarda algum evento 
 
• Uma transição é um relacionamento entre dois estados 
– Indica mudança de estado 
 
• Um evento é a especificação de uma ocorrência 
significativa no tempo e no espaço 
– Ocorrência de um estímulo que pode disparar uma transição de 
estados 
 SI2- UFCG 
9 
Máquina de estados comportamental 
• Uma ação é uma computação atômica executável 
– Resulta na mudança de estado; ou 
– Retorna algum valor 
 
• Uma guarda é uma expressão booleana 
– Condição a ser satisfeita ou não 
 
• Durante um estado, um objeto: 
– Satisfaz alguma condição; ou 
– Executa alguma atividade; ou 
– Espera por um evento 
 
 SI2- UFCG 
10 
Transição 
• Uma transição leva à mudança de estado quando: 
– Um evento específico ocorre; 
– Condições especificadas são satisfeitas 
 
• Partes de uma transição: 
– Estado origem (podem ser múltiplos – fork) 
– Evento (0 ou mais) 
– Condição - guarda (0 ou uma) 
– Ação (0 ou mais) 
– Estado destino (podem ser múltiplos – join) 
 
 
 SI2- UFCG 
11 
Transição - sintaxe 
Evento 
Guarda 
Ação 
Transição 
 SI2- UFCG 
12 
Transição em Máquinas de estado de 
protocolos - sintaxe 
Transição 
[precondição] evento / [poscondição] 
3 
 SI2- UFCG 
13 
Evento 
• Eventos disparam transições em máquinas de estados 
 
• Eventos podem incluir: 
– Chamada 
– Sinais 
– Passagem do tempo (when e after) 
• when(data = 30/09/2009), after(02 meses) 
– Mudança no estado : condições booleanas (false to true) 
 
• Eventos podem ser síncronos ou assíncronos 
 
• Transições podem não conter eventos 
 
• Um evento pode apresentar polimorfismo 
Podem possuir parâmetros cujos valores 
estão disponíveis para transição 
 SI2- UFCG 
14 
Sinal 
• Sinal é um tipo de evento que representa a especificação de 
um estímulo assíncrono comunicado entre instâncias 
 
• Um sinal pode ter atributos 
 
• Classes com estereótipo <<signal>> 
– Informações a serem transmitidas como valores de atributos 
 
• Podem ser enviados através de operações de classes ou 
interfaces 
 SI2- UFCG 
15 
Sinais 
 SI2- UFCG 
16 
Guarda 
• Expressão booleana 
 
• Avaliada apenas uma vez 
 
• Avaliada apenas após o evento ocorrer 
 
• Diferentes transições podem ocorrer entre os mesmos 
estado fonte e destino a partir do mesmo evento, desde 
que: 
– As guardas sejam diferentes 
 
• Pode incluir condições sobre o estado do objeto 
 SI2- UFCG 
17 
Ação 
• Executada quando uma transição é acionada 
 
• Atômica 
– Não pode ser interrompida por um evento 
 
• Pode incluir: 
– Chamadas de operações 
– Criação de objetos 
– Destruição de objetos 
– Envio de sinal para outro objeto 
– Outras (semântica de ações e OCL) 
 SI2- UFCG 
18 
Ações 
• Existem ações internas específicas que 
podem ocorrer em estados: entry e exit 
 
• Atividade interna específica: do 
 
• Pode conter outras ações internas 
4 
 SI2- UFCG 
19 
Estado 
• Um estado é composto por: 
– Nome 
– Ação de entrada 
– Ação de saída 
– Transições internas 
– Sub-estados (seqüenciais ou concorrentes) 
– Eventos adiados 
 
 
 
• Estado final 
 
Possui apenas um nome 
 SI2- UFCG 
20 
Sinais e evento adiado 
Envio de 
sinal 
Chegada 
de sinal 
Evento 
adiado 
 SI2- UFCG 
21 
Região 
• Região é uma parte ortogonal de um estado composto 
ou de uma máquina de estados 
– Pode conter estados e transições 
– Pode conter um estado inicial e um final 
 
 SI2- UFCG 
22 
Estado 
• Sub-estado é um estado definido dentro de um outro estado 
 
• Estado composto é formado por sub-estados 
 
• Estado composto pode ter uma ou mais regiões 
 
• Um estado definido em uma região de um estado composto é um 
sub-estado deste último 
 
• Sub-máquina de estados é uma máquina de estados aninhada 
dentro de uma outra máquina de estados 
 
• Sub-máquina de estados é um tipo especial de estado 
– Uma sub-máquina de estados é um estado composto 
 
• Lista de estados 
 SI2- UFCG 
23 
Estado 
• Um estado pode ser, então: 
– Simples 
– Composto 
 
• Um estado simples 
– Não tem sub-estados 
– Não tem sub-máquinas 
– Possui apenas uma região 
 
• Um estado composto possui: 
– Um ou mais sub-estados 
– Uma (seqüencial) ou mais regiões (concorrente) 
 SI2- UFCG 
24 
Sub-máquina de estados 
• Uma sub-máquina de estados é um 
mecanismo que permite fatorar 
comportamentos comuns permitindo um 
maior grau de reuso 
5 
 SI2- UFCG 
25 
Estado - sintaxe 
Estado 
Estado 
Lista de estados 
 SI2- UFCG 
26 
Estado - sintaxe 
Região 
Estado final 
 SI2- UFCG 
27 
Estado 
• Um estado composto pode ser:– Seqüencial (apenas uma região) 
 
– Ortogonal (mais de uma região) 
 SI2- UFCG 
28 
Estado composto seqüencial 
 SI2- UFCG 
29 
Estado composto ortogonal 
 SI2- UFCG 
30 
Pseudo-estados 
• Pseudo-estado é um tipo de estado usado para conectar 
múltiplas transições em um estado mais complexo 
 
• Tipos de pseudo-estado: 
– Ligação (junction) 
– Escolha 
– Bifurcação (fork) 
– Junção (join) 
– Estado inicial 
– Histórico superficial 
– Histórico profundo 
– Nodo final 
– Ponto de entrada 
– Ponto de saída 
6 
 SI2- UFCG 
31 
Ligação (junction) 
Pode ser usado para 
convergir várias 
transições em uma 
única ou para dividir 
uma única transição 
em várias outras 
 SI2- UFCG 
32 
Ligação (junction) 
Se houver mais de 
uma transição de 
saída, estas devem ser 
protegidas por guardas 
mutuamente 
exclusivos, de forma 
que apenas um 
caminho seja seguido. 
 SI2- UFCG 
33 
Escolha 
Branchs sem merges Apenas um caminho 
a ser seguido. 
 SI2- UFCG 
34 
Bifurcação e junção (fork and join) 
Divide uma 
transição 
em várias 
outras 
Transições saindo de uma bifurcação e 
alcançando uma junção não podem ter 
eventos nem guardas 
Une várias 
transições 
em uma 
única 
 SI2- UFCG 
35 
Outros pseudo estados 
Ponto de entrada de uma máquina de estados 
Ponto de saída de uma máquina de estados 
Nodo final: Final da execução de todo estado composto 
contendo aquela região 
Estado inicial indicando o início da execução da máquina de 
estados 
Histórico permite a um estado composto, que 
contém sub-estados seqüenciais, se lembrar do 
último sub-estado que estava ativo antes de uma 
transição envolvendo o estado composto 
Histórico superficial 
Histórico Profundo : sub-estados de sub-estados são 
memorizados 
 SI2- UFCG 
36 
Uso de pseudo-estados 
7 
 SI2- UFCG 
37 
Máquina de estados 
Inclui uma sub-
máquina de 
estados 
 SI2- UFCG 
38 
Sub-máquina de estados 
 SI2- UFCG 
39 
Máquina de estados comportamental 
Transição herdada 
por todos sub-estados 
Ponto de entrada 
alternativo 
Ponto de saída alternativo 
 SI2- UFCG 
40 
UML 2.0 Superstructure 
• Dividido em 3 pacotes de alto nível: 
– Structure 
 
 
– Behavior 
 
 
– Supplement 
 
 
 
• Sub-dividida em outros sub-pacotes 
Diagramas 
estruturais 
Diagramas 
comportamentais 
Conceitos 
adicionais 
 SI2- UFCG 
41 
UML 2.0 Superstructure – Part II 
Behavior 
Conceitos necessários aos 
aspectos dinâmicos 
Conceitos relativos à Máquina de 
estados 
 SI2- UFCG 
42 
Meta-modelo para máquina de estados 
8 
 SI2- UFCG 
43 
Meta-modelo para máquina de estados 
comportamental 
 SI2- UFCG 
44 
Meta-modelo para máquina de estados 
de protocolo 
 SI2- UFCG 
45 
Exercícios 
• Construa uma máquina de estados, modelando o 
comportamento de objetos alunos da disciplina de SI2. 
Tente fazer uso de todos os construtores sintáticos que UML 
2 oferece para máquinas de estados comportamentais. 
 
• Construa uma máquina de estados que modele o 
comportamento de um terminal eletrônico de um banco. 
 
• Construa uma máquina de estados que modele o sistema de 
matricula da ufcg 
 
 SI2- UFCG 
46 
Referências 
• Especificação de UML da OMG 
– www.omg.org

Outros materiais