Você está na página 1de 39

ì

 
Análise  e  Modelação  de  Sistemas  

Classe  T09  Modelação  comportamental:  Diagramas  de  estado  


 
 
 
Referências:  
• Conceptual  Modeling  of  Informa;on  Systems  (Chapter  13)  
• Aulas  AMS  do  IST  
 
 
 
2  

Modelação  comportamental  em  UML  


Comportamento  baseado  em  
fluxos  

Comportamento  baseado  em  estados  e  


transiçoes  entre  estados  

Comportamento  baseado  
em  mensagens  

Modelação  
3  

Programa  

ì Modelação  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  

Modelação  
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  

Modelação  
5  

Outros  tipos  
ì Simples  

ì Composto  
ì Um  estado  composto  tem  estados  embebidos  que  podem  ser  
sequenciais  ou  concorrentes  

Modelação  
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  

Modelação  
7  

Transições  entre  estados  

O A

Modelação  
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

alvo= f(entrada, fonte)


Duração transições = 0

Modelação  
9  

Automátas  finitos  
alfabeto

Modelação  
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)  

Modelação  
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.  

Modelação  
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  

Modelação  
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.  

Modelação  
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.  

Modelação  
15  

Diagrama  de  estados  (UML)  


Estado  
Estado   “Trigger”   des;no  
fonte  

Estado  
Inicial  

Estado  
Final  
Modelação  
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  

Modelação  
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  

[g] e
i f
Modelação  
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)  

Modelação  
19  

Diagrama  de  estados  II  (UML)  

[guarda]  trigger/pós-­‐condição  

Conceptual  Modeling  of  Informa7on  Systems  (chapter  13,  page  307)  


Modelação  
20  

Pseudo-­‐estados  
ì Pseudo-­‐estados:  Estados  abstractos  para  representar  o  
início,  final,  ou  para  interconectar  outros  estados  do  
diagrama.  
ì  Em  UML:    

Modelação  
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.  

Modelação  
22  

Pseudo-­‐estados  

Modelação  
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  

Modelação  
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]  

Modelação  
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  

Modelação  
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  
Modelação  
 
27  

“Statecharts”  

ì Extensão  dos  diagramas  de  estado  e  incluem:  


ì Hierarquias  de  estados  
ì Paralelismo  
ì Podem  ser  representados  em  UML  

Modelação  
28  

“Statecharts”    
hlp://www.sparxsystems.com/uml_tool_guide/uml_dic;onary/statediagram.html  

Modelação  
29  

StateCharts:    
Exemplo  do  carro  de  aluguer    

Modelação  
30  

StateCharts:    
Exemplo  do  carro  de  aluguer  II  
Detalhando  os  estados  

Problema  desta  
abordagem:    
força  a  eliminar  a  
conceptualização  de  alto  
nível  do  estado  InUse  
(perdendo  semântica)  

Modelação  
31  

State  Charts:    
Exemplo  do  Carro  de  Aluguer  III  
Detalhando  os  estado  nos  statecharts  

O  Estado  “InUse”  é  
mantido,  enfatizando  o  seu  
significado  i.e.  a  sua  
semântica!!!  

Modelação  
32  

Statechart  com  Paralelismo  

Modelação  
33  

Estados  e  comportamentos  

ì Comportamentos  
ì entrada/…ac;on…  
ì executar/…ac;on…  
ì saída/…ac;on….  

Modelação  
34  

Um  exemplo:  estados  da  água  

Modelação  
35  

Outro  exemplo  

Modelação  
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  

Modelação  
37  

Como  construir  diagramas  de  estado  


(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.  

Modelação  
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  


Modelação  
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  

Modelação  

Você também pode gostar