Análise e de Sistemas Classe T09 comportamental: Diagramas de estado Referências: Conceptual Modeling of Informa;on Systems (Chapter 13) Aulas AMS do IST
2 comportamental em UML Comportamento baseado em fluxos Comportamento baseado em estados e transiçoes entre estados Comportamento baseado em mensagens
3 Programa comportamental Conceitos de estado, transição Máquinas de estado Automátas finitos Máquinas de Moore e Mealy Diagramas de transição de estado em UML
4 Estado Estado: situação numa condição invariável durante um intervalo de tempo t Condições invariavéis: propriedades sa;sfeitas pelo sistema em cada estado Está>co ou dinâmico
5 Outros tipos Simples Composto Um estado composto tem estados embebidos que podem ser sequenciais ou concorrentes
6 Mais tipos Espera (está>co) O objecto está simplesmente a espera dum evento Estado baseado em restrições (?) Estados despoletados por valores específicos nos atributos do objecto (Ex. Cartão expirado) Processos em curso (dinâmico) Estado que reflecte a realização duma ac;vidade. Só se sai desse estado quando a ac;vidade é finalizada ou cancelada
7 Transições entre estados e O A
8 Máquinas de estado Máquina finita de estados: máquina que em cada momento está num único estado entre um número finito de estados auto-transição Transições e entradas origem Duração transições = 0 alvo= f(entrada, fonte)
9 Automátas finitos alfabeto
10 Máquinas de Moore e Mealy A máquina de Mealy é semelhante mas a saída é associada às transições A saída depende do símbolo de entrada mas o estado corrente Conceptual Modeling of Informa;on Systems (chapter 13, pages 300/301)
11 Máquinas de Moore e Mealy II Para cada máquina de Moore existe uma máquina de Mealy que produz as mesmas saídas para todas as entradas. Para cada máquina de Mealy existe uma máquina de Moore que produz as mesmas saídas para todas as entradas. Portanto, as máquinas de Moore e Mealy são consideradas equivalentes.
12 Por outras palavras.. A máquina de estados representa comportamento em termos a história de estados e transições entre estados de um objecto As ações invocadas durante a transição, entrada e saída dos estados são especificadas junto dos eventos e condições de guarda associada Exemplo: uma lámpada
13 Diagramas de máquinas de estado As classes podem ser modeladas como máquinas de estado que mostram o ciclo de vida dos objectos Cada classe modelada assim é um máquina de estado diferente mas o diagrama de transição associado é o mesmo para todas as instâncias da mesma classe Não todas as classes precisam ser modeladas como máquinas, só nalguns casos resulta um mecanismo eficaz Por isso, algumas linguagens oferecem formas diferentes de modelar comportamentos.
14 Estados e ciclos de vida das entidades O ciclo de vida duma en;dade e no momento t é a sequência de estados na qual é tem estado desde a sua criação até t O ciclo de vida completa- se quando se chega ao seu estado final Os diagramas de transição definem duas classes de restrições sobre os ciclos de vida das en;dades O conjunto de estados permi;dos. O conjunto de consequências válidas desses estados.
15 Estado fonte Trigger Diagrama de estados (UML) Estado des;no Estado Inicial Estado Final Conceptual Modeling of Informa7on Systems (chapter 13, page 306)
16 Detalhes das Transições Eventos despoletam transições Detalhes Informação: Fornecidas pelo evento Acções: Despoletadas pelo evento Guarda: Condição a verificar aquando a ocorrência do evento
17 Transições e guardas ( ) a maioria das linguagens de modelação conceptual extendem o conceito de transição incluíndo guardas Uma guarda é uma condição sobre a base de informação e/ou os parámetros do evento (trigger) As guardas são definidas com expressões booleanas i [g] e f
18 Exemplo transição com guarda Carro de aluguer: Estado inicial : Disponível Guarda: o carro não está alocado para alugar Trigger: evento de domínio Transferência Estado final: EmTransferência Significa que quando o carro está Disponível e ocorre o evento de domínio Transferência, se o carro naõ está alocado, aceita- se a transferência (estado muda para EmTransferência)
19 Diagrama de estados II (UML) [guarda] trigger/pós- condição Conceptual Modeling of Informa7on Systems (chapter 13, page 307)
20 Pseudo- estados Pseudo- estados: Estados abstractos para representar o início, final, ou para interconectar outros estados do diagrama. Em UML:
21 Pseudo- estados II Estado Inicial: Representa o primeiro estado que ocorre quando se entra numa máquina de estados. Estado Terminal/Final: Representa o estado final de uma region e finaliza a execução de todos os estados duma dada máquina de estados História: Especifica que, quando se sai e se regressa a uma máquina, se entra no estado que estava ac;vo na altura da saída.
22 Pseudo- estados
23 Pseudostados - Junção (Junction) Pseudostate com uma ou várias transições de entrada e uma ou várias transições de saída
24 Pseudostados Junção (Junction) Exemplo de junc>on para simplificar 4 transições: 1 Transição A - C despoletada por e1 e guardada pelas condições [c1 e c3] 2 Transição A D despoletada por e1 e guardada pelas condições [c1e c4] 3 Transição B - C despoletada por e2 e guardada pelas condições [c2 e c3] 4 Transição B- D despoletada por e2 e guardada pelas condições [c2 e c4]
25 Pseudostados (Fork/Join) Join: junta várias transições sem guarda que vêm de vários estados fonte Fork: separa uma transição entrante sem guarda em duas ou mais transições
26 Pseudostados Decisão (Choice) Semelhante à uma junção mas as guardas das transições de saída são avaliadas uma vez que as transições de entrada produziram os seus efeitos Ramificações condicionadas dinâmicas porque o estado final só é conhecido depois que as operações associadas com as transições de entradas são calculadas
27 Statecharts Extensão dos diagramas de estado e incluem: Hierarquias de estados Paralelismo Podem ser representados em UML
28 Statecharts hlp://www.sparxsystems.com/uml_tool_guide/uml_dic;onary/statediagram.html
StateCharts: Exemplo do carro de aluguer 29
StateCharts: Exemplo do carro de aluguer II 30 Detalhando os estados Problema desta abordagem: força a eliminar a conceptualização de alto nível do estado InUse (perdendo semântica)
Detalhando os estado nos statecharts State Charts: Exemplo do Carro de Aluguer III 31 O Estado InUse é mantido, enfatizando o seu significado i.e. a sua semântica!!!
32 Statechart com Paralelismo
33 Estados e comportamentos Comportamentos entrada/ ac;on executar/ ac;on saída/ ac;on.
34 Um exemplo: estados da água
35 Outro exemplo
36 Como construir diagramas de estado 1 Seleccionar uma classe e observar o ciclo de vida dos seus objectos 2 Colocar o estado inicial no canto superior esquerdo do diagrama 3 Iden;ficar os eventos 4 Pense no que fazem os objectos em resposta a cada evento 5 Ordene a lista de estados a. Inicial b. Intermédios c. Final
Como construir diagramas de estado 37 (cont.) 6 Coloque os estados no diagrama ordenados de cima para baixo segundo a ordem iden;ficada em 5 7 Adicione os eventos iden;ficados em 3 como linhas que ligam os estados 8 Iden;fique quando é que o objecto é removido do sistema e ligue este estado ao estado final. 9 Depois de definir estados e eventos normais, pense nos eventos e estados que reflectem excepções 10 Reveja o diagrama e verifique que este faz sen;do.
38 Estados implementados como atributos O diagrama de estado representa a sequência de comportamentos de um objecto resultantes de eventos específicos O estado de uma en;dade pode ser modelado como atributos Os valores do atributo seriam o conjunto dos possíveis estados Exemplo: Os estados de um carro de aluguer seriam respresentados pelo atributo disponibilidade. Os valores possíveis são os estados definidos (disponível, em uso, em manutenção, etc.) Cada carro teria um único valor para este atributo
39 Estado como atributos: exemplo Exemplo de transição do carro de aluguer: Estado inicial: Disponível Trigger: evento de domínio Recolher Estado final: EmUso O significado é que quando um carro está no estado Disponível e o evento do domínio Recolher ocorre, o novo estado do carro é EmUso