SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Um breve estudo sobre STATECHARTS
Ricardo Luis dos Santos




MÉTODOS FORMAIS
Prof. Dr. Daltro José Nunes




                              Instituto de Informática – UFRGS
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
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
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
Formalismo Visual

      statechats = diagramas de estados + profundidade +
             ortogonalidade + comunicação broadcast

• Comparação entre uma especificação utilizando DTE e
  STATECHARTS




                                                           5
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
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
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
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
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
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
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
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
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
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
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
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
Formalismo Visual

• Ações e Atividades




                       18
Formalismo Visual

• Ações e Atividades




                       19
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
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
Exemplos de Aplicação

• Exemplo da Chamada Telefônica




                                  22
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
Exemplos de Aplicação

• Exemplo do Relógio Digital




                               24
Exemplos de Aplicação

• Exemplo do Relógio Digital




                               25
Exemplos de Aplicação

• Exemplo do Relógio Digital




                               26
Exemplos de Aplicação

• Exemplo do Relógio Digital




                               27
Exemplos de Aplicação

• Exemplo do Relógio Digital




                               28
Um breve estudo sobre
   STATECHARTS



Perguntas?
                   29

Más contenido relacionado

Similar a Statecharts

Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
Evandro Júnior
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
Gustavo Souza
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
Carlos Santos
 

Similar a Statecharts (20)

Rational Unfied Process
Rational Unfied ProcessRational Unfied Process
Rational Unfied Process
 
1- Introdução.ppt
1- Introdução.ppt1- Introdução.ppt
1- Introdução.ppt
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcados
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 
Maratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
Maratona JBoss 2010 - Drools Expert : Programação Orientada a RegrasMaratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
Maratona JBoss 2010 - Drools Expert : Programação Orientada a Regras
 
Introdução a Linguagem de Programação
Introdução a Linguagem de ProgramaçãoIntrodução a Linguagem de Programação
Introdução a Linguagem de Programação
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
REPETRO Sys
REPETRO SysREPETRO Sys
REPETRO Sys
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Pro model
Pro modelPro model
Pro model
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de Desempenho
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
bom-1.pdf
bom-1.pdfbom-1.pdf
bom-1.pdf
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
 
Módulo 1 de PSI
Módulo 1 de PSIMódulo 1 de PSI
Módulo 1 de PSI
 
Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...
Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...
Tudo que você sempre quis saber e sempre teve medo de perguntar, sobre Perfor...
 

Más de Ricardo Luis dos Santos

Identifying the Root Cause of Failures in IT Changes: Novel Strategies and Tr...
Identifying the Root Cause of Failures in IT Changes: Novel Strategies and Tr...Identifying the Root Cause of Failures in IT Changes: Novel Strategies and Tr...
Identifying the Root Cause of Failures in IT Changes: Novel Strategies and Tr...
Ricardo Luis dos Santos
 

Más de Ricardo Luis dos Santos (8)

Identifying the Root Cause of Failures in IT Changes: Novel Strategies and Tr...
Identifying the Root Cause of Failures in IT Changes: Novel Strategies and Tr...Identifying the Root Cause of Failures in IT Changes: Novel Strategies and Tr...
Identifying the Root Cause of Failures in IT Changes: Novel Strategies and Tr...
 
Uma Solução para Identificação da Causa Raiz de Problemas no Gerenciamento de...
Uma Solução para Identificação da Causa Raiz de Problemas no Gerenciamento de...Uma Solução para Identificação da Causa Raiz de Problemas no Gerenciamento de...
Uma Solução para Identificação da Causa Raiz de Problemas no Gerenciamento de...
 
A Solution for Identifying the Root Cause of Problems in IT Change Management
A Solution for Identifying the Root Cause of Problems in IT Change ManagementA Solution for Identifying the Root Cause of Problems in IT Change Management
A Solution for Identifying the Root Cause of Problems in IT Change Management
 
Ávores de Decisão
Ávores de DecisãoÁvores de Decisão
Ávores de Decisão
 
Identificação Interativa da Causa Raiz de Problemas no Gerenciamento de Mudan...
Identificação Interativa da Causa Raiz de Problemas no Gerenciamento de Mudan...Identificação Interativa da Causa Raiz de Problemas no Gerenciamento de Mudan...
Identificação Interativa da Causa Raiz de Problemas no Gerenciamento de Mudan...
 
Gerenciamento de problemas e de incidentes
Gerenciamento de problemas e de incidentesGerenciamento de problemas e de incidentes
Gerenciamento de problemas e de incidentes
 
Mibs Disman
Mibs DismanMibs Disman
Mibs Disman
 
Programabilidade em Redes Virtualizadas
Programabilidade em Redes VirtualizadasProgramabilidade em Redes Virtualizadas
Programabilidade em Redes Virtualizadas
 

Statecharts

  • 1. Um breve estudo sobre STATECHARTS Ricardo Luis dos Santos MÉTODOS FORMAIS Prof. Dr. Daltro José Nunes Instituto de Informática – UFRGS
  • 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. 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. 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. Formalismo Visual statechats = diagramas de estados + profundidade + ortogonalidade + comunicação broadcast • Comparação entre uma especificação utilizando DTE e STATECHARTS 5
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Formalismo Visual • Ações e Atividades 18
  • 19. Formalismo Visual • Ações e Atividades 19
  • 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. 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. Exemplos de Aplicação • Exemplo da Chamada Telefônica 22
  • 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. Exemplos de Aplicação • Exemplo do Relógio Digital 24
  • 25. Exemplos de Aplicação • Exemplo do Relógio Digital 25
  • 26. Exemplos de Aplicação • Exemplo do Relógio Digital 26
  • 27. Exemplos de Aplicação • Exemplo do Relógio Digital 27
  • 28. Exemplos de Aplicação • Exemplo do Relógio Digital 28
  • 29. Um breve estudo sobre STATECHARTS Perguntas? 29