O documento apresenta um resumo sobre o formalismo de STATECHARTS, descrevendo seus principais conceitos como estados, eventos, condições, clustering, refinamento, ortogonalidade e aplicações como um exemplo de chamada telefônica e relógio digital.
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
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
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