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

Post on 22-Apr-2015

111 views 3 download

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

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.

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

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.

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.

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

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

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

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

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

Estados aninhados

Subestado 1 Subestado 2

Subestado 3

superestado

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.

Subestado concorrente

selecionando itens de carga

montando carga

Emitindo romaneio

Romaneio emitido

Cargamontada

Itensselecionados

Preparando despacho de mercadoria

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

Transição complexa

A1 A4

B2 B1

Exemplo -Diagrama de Estado para o objeto MáquinaAgrícola

Exemplo - Diagrama de Estado para o objeto Máquina

Exemplo -Diagrama de Estado Aninhado

Exemplo - Símbolo de História(Máquina de lavar)

Exemplo - 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

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)