Baixe o app para aproveitar ainda mais
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
Compartilhar