CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use...

27
CIn-UFPE CIn-UFPE 1 Statechart Statechart UML UML

Transcript of CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use...

Page 1: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 11

StatechartStatechart

UMLUML

Page 2: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 22

Modelagem ComportamentalModelagem Comportamental

Diagramas de Use Case Diagramas de Seqüência

Diagramas de Colaboração

Statecharts

Diagramas de Atividades

Page 3: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 33

Máquinas de EstadoMáquinas de Estado

Podem ser aplicadas para modelar o comportamento de vários elementos de UML: casos de uso específicos, objetos individuais, conjuntos de objetos, ou um sistema por completo.

Especificam as seqüências de estados de um elemento em resposta aos eventos. Estado Transição Evento Ação e Atividade

Page 4: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 44

É uma situação durante a vida de um elemento, na qual ele satisfaz alguma condição, executa alguma atividade, ou espera por algum evento.

Exemplos: Ocioso Recebendo Pagamento Entregando item

EstadoEstado

Page 5: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 55

Máquina de VendasMáquina de Vendas

OciosaRecebendo R$

Oferendo serviços

Entregando Troco Despachando Item

entrada de moedas(quant.)

cancelar / devolver moedas

[ item vazio ] [ troco < 0 ]selecionar

(item)

[ troco > 0 ]

[ troco = 0 ]

Page 6: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 66

Estado inicialEstado inicial

É um estado especial que, explicitamente, mostra o início da máquina de estado.

Pode existir exatamente um estado inicial em cada diagrama de estado.

O ícone de estado inicial é um círculo compacto com uma flecha.

Page 7: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 77

O estado de parada é um círculo englobando um círculo compacto com uma flecha.

Normalmente, você pode assumir que a máquina de estado associada a uma classe sairá de sua existência quando o estado final é atingido.

Estado finalEstado final

Page 8: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 88

EstadosEstados

Ocisoso ExecutandoteclaPresioanda

término

Estado Inicial

EstadoFinal

Estado

Nome

Nome

desligar

Page 9: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 99

Partes de um EstadoPartes de um Estado

Nome

Ações de entrada (entry): Quando entrar no estado, a ação será executada

Ações da saída (exit): Quando sair do estado, a ação será executada.

Atividades (do): Enquanto no estado, o objeto faz algo que continuará a ser

executado até ser interrompido por um evento

Page 10: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1010

Partes de um estado: exemploPartes de um estado: exemplo

Nome-do-estadoentry/ação-de-entradaexit/ação-de-saídado/atividade

Page 11: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1111

TransiçãoTransição

É um relacionamento entre dois estados, indicando que o objeto no primeiro estado irá executar certas ações e entrar no segundo estado quando o evento especificado ocorrer e as condições especificadas forem satisfeitas.

Uma transição de estado é uma mudança de estado causada por um evento.

Utiliza-se transições de estado para conectar dois estados em um diagrama de estado ou para mostrar transições de um estado para ele mesmo.

Page 12: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1212

Pode-se mostrar uma ou mais transições de estado desde que cada transição seja única.

O ícone para uma transição de estado é uma linha com uma ponta de flecha apontando para o próximo estado.

Ocioso EsfriandoQuente demais

TransiçãoTransição

Page 13: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1313

Partes da transiçãoPartes da transição

Estado fonte

Evento de disparo

Condição de guarda

Ação

Estado alvo

Page 14: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1414

Ocorrência de um estímulo que pode disparar uma transição de estado. Ex: Apertar o botão do mouse; Discar um dígito (número)

É possível haver uma transição sem um evento de disparo.

Evento de disparoEvento de disparo

Page 15: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1515

Condição de guardaCondição de guarda

Expressão booleana entre [ ], colocada após o evento de disparo.

A condição de guarda é avaliada apenas após a ocorrência do evento de disparo da transição.

Page 16: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1616

encerrado o tempo

Norte/Sulseguir em

frente

Norte/Sulvirar à

esquerda

Leste/Oesteseguir em

frente

Leste/Oestevirar à

esquerda

encerrado o tempo [carros na via N/S esq.]

encerrado o tempo [carros na via L/O esq.]

encerrado o tempo

encerrado o tempo [sem carros na via N/S esq.]

encerrado o tempo [sem carros na via L/O esq.]

Exemplo: Sinal de trânsitoExemplo: Sinal de trânsito

Page 17: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1717

Ação e AtividadeAção e Atividade

Ação: uma resposta instantânea a uma transição Usualmente associada a uma transição, embora possa ser

associada a um estado

Atividade (do): Uma operação que tem uma certa duração, normalmente associada a um estado.

Page 18: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1818

Problemas com Maq. EstadosProblemas com Maq. Estados

Máquinas de estados não estruturadas não possuem bom poder de expressão e tornam-se impraticáveis para problemas grandes.

As formas de estruturação: Subestados seqüenciais Subestados concorrentes

Page 19: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 1919

Subestado seqüencialSubestado seqüencial

Ocioso

Manutenção

fazerManutenção

Validando

Selecionando Processando

Imprimindo

H

entry / lerCartão exit / ejetarCartão

cartãoInserido

cancelar

Ativo

Page 20: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 2020

Subestado concorrenteSubestado concorrente

Pode ser mostrado com partições pontilhadas.

Relógio

alarmeON

alarmeOFF

12hs

24hs

Acabou Bateria

Inserir Bateria

Page 21: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 2121

Divisão do Controle:

Subestado concorrenteSubestado concorrente

Subestado 1

Subestado 2 Subestado 4

Subestado 3evento 0

evento 1

evento 2

evento 3

evento 4

Page 22: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 2222

De um estado para um estado no mesmo nível.

Diretamente para um subestado, ou diretamente de um subestado.

Diretamente de um superestado, o que significa que a transição de estado aplica-se para cada subestado do superestado (Supertransição).

Diretamente para um superestado com subestados, o que significa transição para o estado inicial do superestado.

Transições e Estados CompostosTransições e Estados Compostos

Page 23: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 2323

Freqüentemente, quando transiciona-se diretamente para um estado com subestados, você quer retornar ao estado visitado mais recentemente no super-estado.

Use a letra H dentro de um círculo para representar o log da história.

H

HistóriaHistória

Page 24: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 2424

HistóriaHistória

Neste exemplo, quando ocorrer uma falha,Neste exemplo, quando ocorrer uma falha,o super-estado Failure poderá começar em qualquero super-estado Failure poderá começar em qualquer

dos subestados, dependendo da última visita ao super-estado.dos subestados, dependendo da última visita ao super-estado.

Page 25: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 2525

Statecharts especificam uma seqüência permitida de mudanças de estado nos objetos associados às classes do Diagrama de Classes.

Constrói-se um Statechart para cada classe com comportamento temporal significativo.

Objetos se comunicam pelo envio e resposta a eventos.

Relação entre diagrama de classes e Relação entre diagrama de classes e statechartsstatecharts

Page 26: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 2626

Eventos, ações e atividades podem ser representados como operações das Classes.

Diferenças temporais de estado de um objeto são apropriadamente modeladas através de estados diferentes de uma mesma classe.

Relação entre diagrama de classes e Relação entre diagrama de classes e statechartsstatecharts

Page 27: CIn-UFPE1 Statechart UML. 2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas de Colaboração.

CIn-UFPECIn-UFPE 2727

Digramas de Use Cases e Interação ajudam o início do processo de construção de Statecharts.

Somente construa Statecharts para classes de objetos com um comportamento dinâmico significativo.

Nem todas as classes de objeto necessitam de um Statechart.

Somente considere os atributos relevantes quando da definição de um estado. Nem todos os atributos mostrados nas classes precisam ser usados num Statechart.

DicasDicas