Statecharts

591 visualizações

Publicada em

Apresenta um breve estudo sobre statecharts em sua forma original, um conceito concebido e desenvolvido por David Harel

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
591
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
14
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Statecharts

  1. 1. Um breve estudo sobre STATECHARTSRicardo Luis dos SantosMÉTODOS FORMAISProf. Dr. Daltro José Nunes Instituto de Informática – UFRGS
  2. 2. Agenda• Introdução• Formalismo Visual de STATECHARTS – Conceitos Básicos – Clustering – Refinamento – Estado default – Entrada-pela-história – Ortogonalidade – Entradas de Seleção e Condição – Delays e Timeouts – Ações e Atividades• Exemplos de aplicações – Chamada Telefônica – Relógio Digital 2
  3. 3. Introdução• Concebido e desenvolvido por David Harel• Seu trabalho envolvia pessoas com diferentes conhecimentos – Pilotos – Engenheiros elétricos – Experts em comunicação – Experts em defesa – Experts em armas• A grande diversidade de conhecimentos criou a necessidade para o desenvolvimento de um método simples e de fácil compreensão• Statecharts são indicados para sistemas complexos do tipo reativo 3
  4. 4. Introdução• Segundo Harel, para que uma técnica possa representar um sistema reativo de forma satisfatória, deve ser capaz de descrever eficientemente as seguintes situações – Clustering - Estando o avião em qualquer estado, quando a alavanca amarela for acionada, o assento deverá ser ejetado – Independência ou concorrência de estados - O estado da caixa de câmbio de um carro é independente do sistema de freios – Transições genéricas - Quando o botão de seleção é acionado, entrar no modo que foi selecionado – Refinamento - Modo-de-exibição consiste de exibição-da-hora, exibição-da-data e exibição-do-cronômetro 4
  5. 5. Formalismo Visual statechats = diagramas de estados + profundidade + ortogonalidade + comunicação broadcast• Comparação entre uma especificação utilizando DTE e STATECHARTS 5
  6. 6. Formalismo Visual• Conceitos Básicos – Estado - é a situação em que um sistema se encontra em um determinado instante do tempo. Tal informação é representada por um retângulo com cantos arredondados – Evento – é um acontecimento que ocorre externa ou internamente e provocam transições de estados. Tal informação é representada através das setas que interligam os diferentes estados de um sistema – Condição -- é um predicado opcional associado a um evento que habilita o sistema a efetuar uma transição de estado. Tal informação é representada entre parênteses “( )” 6
  7. 7. Formalismo Visual• Clustering – Mecanismo que permite agrupar estados semelhantes (superestados) – Possibilita capturar tanto a profundidade, quanto a hierarquia – A semântica do superestado criado é um XOR entre os estados internos 7
  8. 8. Formalismo Visual• Refinamento – Mecanismo que permite detalhar superestados – Processo inverso do mecanismo de clustering – O especificador busca analisar e melhor compreender o funcionamento de um estado dos sistema 8
  9. 9. Formalismo Visual• Estado default – Mecanismo que permite explicitar o estado inicial do sistema – Possibilita definir um estado inicial para um sistema e para cada superestado 9
  10. 10. Formalismo Visual• Entrada-pela-história – Ao reentrar em um superestado, o estado mais recentemente visitado é retornado – Possibilita analisar o último estado em diferentes níveis de abstração 10
  11. 11. Formalismo Visual• Ortogonalidade – O mecanismo de clustering descreve superestados que internamente possuem um único estado ativo – Porém, em muitos casos, o especificador precisa representar conjuntos de estados concorrentes que utilizem sincronismo ou independência – Permite simplificar sistemas com estados concorrentes 11
  12. 12. Formalismo Visual• Ortogonalidade – Menor quantidade de estados para representar o mesmo sistema – Menor quantidade de transições – Agrupamento de transições semelhantes – Y é o produto ortogonal de A e D 12
  13. 13. Formalismo Visual• Ortogonalidade – Produtos ortogonais podem resultar em um drástico aumento da complexidade de uma especificação – Mecanismo de zoom-out com setas ultrapassando as bordas dos estados 13
  14. 14. Formalismo Visual• Entradas de Seleção e Condição – O mecanismo de entradas de condição visa agregar eventos semelhantes (porém, não idênticos), reduzindo a complexidade – Basicamente, são eventos idênticos, porém com condições diferentes para cada estado 14
  15. 15. Formalismo Visual• Entradas de Seleção e Condição – O mecanismo de entradas de seleção visa agregar transições simples para a seleção de um “valor” 15
  16. 16. Formalismo Visual• Delays e Timeouts – É possível modelar tanto delays e timeouts explicitando isso no evento ocorrido – Porém, segundo Harel, isso torna a especificação de sistemas de tempo real altamente complexa, visto que tais eventos ocorrem habitualmente nesses sistemas – É possível especificar tempos diferentes através da sintaxe t1 < t2 16
  17. 17. Formalismo Visual• Ações e Atividades – Até o momento os statecharts possibilitam apenas alterar a configuração interna em resposta à ocorrência de eventos e condições – Por definição • Ações são instantâneas • Atividades são executadas em um tempo diferente de 0 – Sintaxe de uma ação é α (P) / S – A representação de ações e atividades tanto nas transições, quanto dentro dos superestados • Entry - ações que deve ser executadas ao entrar em um superestado • Exit - ações que deve ser executadas ao sair em um superestado • Throughout - determina ações que deve ser executadas enquanto estiver em um superestado 17
  18. 18. Formalismo Visual• Ações e Atividades 18
  19. 19. Formalismo Visual• Ações e Atividades 19
  20. 20. Exemplos de Aplicação• Ferramentas – Por ser suportado pela UML, o formalismo STATECHARTS é largamente utilizado – Encontrar ferramentas que possibilitem criar statecharts é relativamente fácil • Betterstate – Versão Limitada • YAKINDU – Plugin gratuito para o Eclipse • ArgoUML – Ferramenta sobre a licensa GPL • Edraw – Versão limitada disponível para testes por 30 dias • Creately – Versão on-line, para ser utilizada no navegador • NetBeans UML – Plugin gratuito para o NetBeans 20
  21. 21. Exemplos de Aplicação• Exemplo de uma conversa entre duas pessoas pelo telefone – Ao levantar o telefone do gancho, é emitido um som para indicar que está aguardando a discagem do número de destino (dial tone) – Ao passar 15 segundos, ocorre uma transição para um estado timeout ou o sistema transita para o estado discando (dialing) – Caso o número discado seja inválido, o sistema transita para o estado invalid emitindo uma mensagem de telefone inválido – Ao digitar um número correto, o sistema tenta conectar com o destinatário (connecting) – Se o destinatário estiver ocupado, o sistema emitirá um som informado ao originador da chamada (busy) – Caso o destinatário não esteja ocupado, o sistema passará a emitir um som informando que está chamando (ringing) – O destinatário atende a chamada e a conversa inicia (talking) 21
  22. 22. Exemplos de Aplicação• Exemplo da Chamada Telefônica 22
  23. 23. Exemplos de Aplicação• Exemplo do Relógio Digital – O exemplo aqui detalhado refere-se a um relógio digital que possui 4 botões representados pelos eventos a, b, c e d – O evento a representa o botão sendo pressionado, enquanto que o evento â representa o botão retornando ao estado inicial – O relógio a ser especificado possui as características indicadas à seguir • Permite exibir a hora atual • Permite exibir a data atual • Possui a opção para habilitar/desabilitar o chime (beep que dura 2 segundos a cada hora exata) • Dois alarmes independentes • Um cronômetro • Uma luz para iluminação • Um indicador para bateria fraca 23
  24. 24. Exemplos de Aplicação• Exemplo do Relógio Digital 24
  25. 25. Exemplos de Aplicação• Exemplo do Relógio Digital 25
  26. 26. Exemplos de Aplicação• Exemplo do Relógio Digital 26
  27. 27. Exemplos de Aplicação• Exemplo do Relógio Digital 27
  28. 28. Exemplos de Aplicação• Exemplo do Relógio Digital 28
  29. 29. Um breve estudo sobre STATECHARTSPerguntas? 29

×