Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos –...

23
Diagramas de Estado

Transcript of Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos –...

Page 1: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização.

Diagramas de Estado

Page 2: Diagramas de Estado. Tópicos Abordados Diagramas de Estado – Introdução – Conceitos – Estados Aninhados – Estados Concorrentes e Sincronização.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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)