diagramas de estado. tópicos abordados diagramas de estado – introdução – conceitos –...
TRANSCRIPT
![Page 1: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/1.jpg)
Diagramas de Estado
![Page 2: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/2.jpg)
Tópicos Abordados
• Diagramas de Estado– Introdução– Conceitos– Estados Aninhados– Estados Concorrentes e Sincronização
![Page 3: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/3.jpg)
Introdução
• Diagramas de Estado de David Harel (statecharts)– avanço às máquinas de estado tradicionais
planas– Proporcionam uma definição formal explícita
de comportamento, permitindo uma verificação dos eventos e transições de estados aos quais um sistema está sujeito.
![Page 4: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/4.jpg)
Diagramas de Estado
• Mostra os estados que os objetos de uma classe podem assumir
• Mostra as transições permitidas entre pares de estados
• Ideal para objetos que possuem poucos estados
![Page 5: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/5.jpg)
Diagramas de Estado
• Estado em objeto a ordem na qual as operações são executadas é importante (idéia de objetos como máquinas independentes).
• Quando a ordem das operações no tempo é importante, pode-se formalizar o comportamento de um objeto em termos de uma máquina de estado finito equivalente.
![Page 6: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/6.jpg)
Diagramas de Estado
• Desvantagem é necessário definir todos os possíveis estados de um sistema, o que pode levar a uma “explosão” no número de estado para sistemas complexos.
• Na UML contorna-se o problema empregando -se um diagrama de estado individualizado, para cada classe.
![Page 7: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/7.jpg)
ExemploClasse Pedido
Ciclo de vida para um objeto pedido: é gerado, e pode passar por uma série de estados: em análise, pendente, alterado, aprovado, atendido (e daí gera-se faturas), rejeitado ou cancelado (deixando de existir)
Operações subjacentes:
• registrar pedido
• alterar pedido
![Page 8: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/8.jpg)
ExemploClasse Pedido - operações subjacentes:
a) Registrar pedido h) Colocar pedido em pendência
b) alterar pedido i) Tirar pedido de pendência
c) Cancelar pedido j) Colocar pedido para atendimento
d) colocar pedido em análise k) Atender pedido
e) Analisa pedido
f) Colocar pedido para aprovação
g) Aprovar pedido
![Page 9: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/9.jpg)
Diagrama de Estado para a classe Pedido
Alterando pedidoCancelando pedido
Atendendo pedido
Analisando pedido Aprovando pedido
Colocando pedidoem pendência
Registrando pedido
Pedido enviado Alteração de pedidosolicitada
Cancelamento depedido solicitado
Pedido para análise requisitado Pedido será cancelado Pedido cancelado
Pedido paraaprovação
Pedido será atendidoPedido já pode ser atendido
Pedidoatendido
Pedido não pode seratendido no momento
![Page 10: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/10.jpg)
Estados Aninhados
• Alguns diagramas requerem estados internos a outros estados
• Exemplo: Máquina de uma fábrica
Classe Máquina
atributo statusDeOperação // estado de operação atual
atributo statusDeManutenção // estado de manutenção
![Page 11: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/11.jpg)
Notações do diagrama de estado UML
Notação definidas por Harel (Statecharts)
Entrar: ação de entradafazer: atividade-Ano evento 1: ação-1...Sair: saída-da-ação
Nome-do-estado Estado inicial
Estado final
Assinatura-de-evento[condição de guarda]/
expressão-de-ação ^ cláusula-de-envio
![Page 12: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/12.jpg)
Estados aninhados
Subestado 1 Subestado 2
Subestado 3
superestado
![Page 13: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/13.jpg)
Indicador de história
B A
A2
A1
H
Interrompe
Retorna
Obs: O indicador de história pode ser H*, que indica história recursiva.
![Page 14: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/14.jpg)
Subestado concorrente
selecionando itens de carga
montando carga
Emitindo romaneio
Romaneio emitido
Cargamontada
Itensselecionados
Preparando despacho de mercadoria
![Page 15: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/15.jpg)
Subestado seqüêncial
Analisando créditodo associado
Analisando itensde compra
Negociando condição de compra
Crédito OK
Fechamento de negócio
Itens analisadosNegóciofechado
![Page 16: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/16.jpg)
Transição complexa
A1 A4
B2 B1
![Page 17: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/17.jpg)
Exemplo -Diagrama de Estado para o objeto MáquinaAgrícola
![Page 18: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/18.jpg)
Exemplo - Diagrama de Estado para o objeto Máquina
![Page 19: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/19.jpg)
Exemplo -Diagrama de Estado Aninhado
![Page 20: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/20.jpg)
Exemplo - Símbolo de História(Máquina de lavar)
![Page 21: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/21.jpg)
Exemplo - Estados Concorrentes e Sincronização
![Page 22: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/22.jpg)
Exemplo - Diagrama de estados para objeto OfertaCurso
Do/ Finalize cursoFechada
Entrada/ Registrar estudantesaída/ ^TarefaCurso.Adicione_ Estudante(estudante)
Aberta
Do/ Inicialize dados oferta de curso
Inicialização
Cancelado
Adicinar estudante/faça cont =0 ^TarefaCurso.create
[cont = 10]
cancelar
cancelar
Adicionar estudante[cont < 10]TarefaCurso.remove
![Page 23: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização](https://reader036.vdocuments.mx/reader036/viewer/2022081602/552fc17b497959413d8f07c3/html5/thumbnails/23.jpg)
Considerações finais
• Os diagramas de estado são usados para modelar o comportamento interno de um objeto, mostrando os seus estados.
• São usados apenas para modelar o comportamento de classes com comportamento dinâmico “significativo”
• Os diagramas de interação podem ser estudados para determinar os objetos dinâmicos do sistema (aqueles que recebem e enviam muitas mensagens)