Unified Modeling Language
Diagramas de Estados
José Correia, Maio 2006
(http://paginas.ispgaya.pt/~jcorreia/)
Questões
„
„
O que são diagramas de estados e em que situações se utilizam?
Qual a diferença entre os diagramas de estados e os diagramas de
sequência e de colaboração?
„
O que é um estado? Como se representa?
„
O que é um evento? Como se representa?
„
O que é uma transição? Como se representa?
„
O que é uma acção? Como se representa?
„
O que é uma condição? Como se representa?
„
O que é uma actividade? Como se representa?
„
O que são sub-estados sequenciais? E sub-estados concorrentes?
„
etc.
José Correia
UML - Diagramas de Estados
2
Introdução
„
„
Os objectos têm estado e comportamentos (como já é sabido...)
Os diagramas de estados permitem modelar a dinâmica de
sistemas, ou objectos, cujo estado evolui por saltos (transições
instantâneas), com um número finito de estados
• é o caso dos objectos computacionais ...
estado
(de sistema
ou objecto)
transição
tempo
José Correia
UML - Diagramas de Estados
3
Exemplo: Login num sistema de Banca on-line
José Correia
UML - Diagramas de Estados
4
Notas sobre o exemplo anterior
„
Login num sistema de Banca on-line
• a ligação (registo no sistema) consiste na introdução de um número
válido da Segurança Social (SSN - social security number) e do número
de identificação pessoal (PIN - personal id number), seguida da
submissão dos dados para validação
• a ligação pode ser dividida em 4 estados não-sobrepostos
- ‘Getting SSN’, ‘Getting PIN’, ‘Validating’ e ‘Rejecting’
• a partir de cada estado resulta um conjunto completo de transições que
determinam o estado seguinte
• enquanto está no estado ‘Validating’, o objecto não espera por um evento
exterior para disparar uma transição. Em vez disso, executa uma
actividade
- o resultado dessa actividade determina o estado seguinte
José Correia
UML - Diagramas de Estados
5
Notação
„
Os Estados são representados por rectângulos de cantos
arredondados contendo o nome do estado
• ‘Getting SSN’, ‘Getting PIN’, ‘Validating’ e ‘Rejecting’
„
As Transições são representadas por setas de um estado para outro
• o diagrama anterior tem duas auto-transições (self-transition), uma em
‘Getting SSN’ e outra em ‘Getting PIN’
„
„
„
„
Os Eventos e Condições, que disparam as transições, são escritos
ao lado das setas (ex: Press Key [key != tab] )
A Acção que ocorre como resultado de um evento ou condição, é
expressa na forma /acção (ex: /Display key)
O estado inicial (círculo preto) é um estado fictício (dummy state)
para iniciar a acção
Os estados finais também são dummy states que terminam a acção
José Correia
UML - Diagramas de Estados
6
Definição
„
Os diagramas de estados são um dos vários tipos de diagramas
disponíveis em UML para modelar os aspectos dinâmicos de um
sistema
• os diagramas de interacção (sequência ou colaboração) focam o fluxo
de controlo de objecto para objecto (numa interacção)
• os diagramas de estados focam o fluxo (passagem) de controlo de
estado para estado (num mesmo objecto ou sistema)
- captura o comportamento dinâmico (event-oriented)
„
Um diagrama de estados …
… é um grafo cujos nós representam os estados possíveis dos objectos
... e cujos arcos dirigidos representam as transições de estado
... provocadas por eventos e/ou condições
José Correia
UML - Diagramas de Estados
7
Diagrama de Transição de Estados
„
Um diagrama de estados
• especifica uma máquina de estados, com estados (duráveis) e transições
entre estados (instantâneas) causadas por eventos (instantâneos)
- a cada transição de estado corresponde um único evento
- se ocorrer um evento a que não corresponda uma transição de estado, esse
evento é ignorado
• descreve o comportamento de uma única classe de objectos
- objectos da mesma classe têm o mesmo ciclo de vida, pelo que basta construir
um diagrama de estados por classe de objectos relevante
- é criado para objectos que tenham um comportamento dinâmico significativo
José Correia
UML - Diagramas de Estados
8
Diagrama de Transição de Estados
„
Objectivo
• modelizar o ciclo de vida de uma classe
• modelizar objectos reactivos (user interfaces, devices, etc)
José Correia
UML - Diagramas de Estados
9
ciclo de vida de objectos ou sistemas
„
Um diagrama de estados permite modelar o comportamento interno
de um objecto, subsistema ou sistema global, isto é, as sequências de
estados por que pode passar durante o seu ciclo de vida em resposta
a uma sequência de eventos, ou seja:
• os estados possíveis
- exemplo do estado civil: solteiro, casado, ...
• as transições entre estados
- exemplo: pode passar de solteiro para casado, mas não o contrário
• os eventos que causam essas transições
- exemplo: o casamento implica a passagem ao estado de casado
• as operações que são executadas, dentro de um estado (actividades) ou
durante uma transição (acções), em resposta a esses eventos
José Correia
UML - Diagramas de Estados
10
Estados
„
„
Um estado é uma condição ou situação na vida de um objecto,
durante a qual o objecto satisfaz alguma condição, realiza alguma
actividade ou espera por algum evento
Escolha dos estados e relação com atributos e ligações
• o estado de um objecto é dado pelos valores de atributos e ligações com
outros objectos que mantém num dado momento
• interessa apenas distinguir estados que apresentam diferentes respostas
a eventos
- os atributos e ligações (possivelmente expressos por condições) que não
afectam o comportamento de um objecto devem ser ignorados
- todas as combinações de valores de atributos e ligações que originam a
mesma resposta a eventos devem ser agrupados num único estado
• só os objectos é que têm estado; as ligações não
José Correia
UML - Diagramas de Estados
11
Eventos
„
„
No contexto de uma máquina de estados, um evento é uma
ocorrência de um estímulo que pode disparar uma transição entre
estados
Os eventos são instantâneos
• ou melhor, têm uma duração desprezável
- em função da escala temporal que estamos a adoptar
„
Um Evento…
… é algo que acontece num dado instante no tempo
… pode ter parâmetros
- exemplo: dígito-marcado(1)
… pode ser interno ou externo
- ver explicação mais à frente...
José Correia
UML - Diagramas de Estados
12
Transições
„
Uma transição é uma relação entre dois estados indicando que um
objecto no 1º estado realizará uma certa acção (opcional) e passará
ao 2º estado quando um evento especificado ocorrer se uma
condição especificada (opcional) for satisfeita
• notação: arco dirigido etiquetado com evento[condição]/acção
„
Duas transições a sair do mesmo estado devem ter eventos
diferentes, ou condições mutuamente exclusivas, para que o diagrama
de estados seja determinístico
• no exemplo do banco on-line, ver transições a sair do estado ‘Validating’
„
Uma transição sem evento tem como evento implícito o fim da
actividade associada ao primeiro estado
• se tiver uma condição, fica à espera que a condição seja satisfeita
José Correia
UML - Diagramas de Estados
13
Exemplo: Jogo de Xadrez
Transição
Estado
Vez das
brancas
jogada das
brancas
perante
xeque-mate
Vitória das pretas
paralisado
jogada das
pretas
Empate
paralisado
Vez das
pretas
perante xeque-mate
Vitória das brancas
Estado inicial
(criação do objecto e início
da máquina de estados)
José Correia
Estado final
(fim da máquina de estados
e destruição do objecto)
UML - Diagramas de Estados
14
Estados, Eventos e Transições
„
Um estado especifica a resposta de um objecto a eventos recebidos
• o estado de um objecto depende da sequência de eventos que foram
recebidos até então
„
A resposta de um objecto a eventos origina uma transição de estado
• e pode incluir o desenrolar de uma determinada acção
„
„
„
„
A cada transição de estado corresponde um único evento
O intervalo de tempo entre dois eventos corresponde a um estado em
que o objecto se encontra
Os eventos representam pontos no tempo (separam estados)
Os estados representam intervalos de tempo (que separam os
eventos)
José Correia
UML - Diagramas de Estados
15
Condições
„
Uma condição é função booleana dos valores dos objectos, válida
num determinado intervalo de tempo
• condições não são eventos!
- os eventos não têm duração temporal
„
„
O estado de um objecto pode ser definido através de uma condição
As condições podem ser usadas como “guardas” nas transições
(condições de guarda) de estado
• uma transição “guardada” dispara quando o evento correspondente ocorre
e a condição booleana é verdadeira
• no exemplo da Banca on-line, ver as transições que dependem das
condições [valid] e [not valid] a partir do estado ‘Validating’
José Correia
UML - Diagramas de Estados
16
Tipos de Eventos
„
Os eventos podem ser internos (passados entre objectos internos ao
sistema) ou externos (passados entre o sistema e os actores)
• evento interno
- exemplo: excepção de overflow
• eventos externos
- exemplos: botão pressionado, interrupt causado por um sensor
„
Os eventos podem ser de vários tipos:
• eventos de mudança (uma condição tornar-se verdadeira)
• eventos temporais (passagem de tempo ou ocorrência de uma datahora)
• chamadas (invocação de operações)
• sinais (eventos sinalizados explicitamente com um nome)
José Correia
Tipos de Eventos:
„
UML - Diagramas de Estados
17
Eventos Temporais
Evento de tempo relativo
• representa a passagem de um certo tempo desde um certo instante
• notação: after(período-de-tempo)
• por omissão, o tempo conta desde a entrada no estado de origem da
transição a que está associado o evento
• também se usa a palavra chave timeout quando não se quer precisar o
período de tempo.
• exemplo: after(5 segundos)
„
Evento de tempo absoluto
• representa a chegada a um certo instante de tempo (data e/ou hora)
• notação: when(instante-de-tempo)
• exemplo: when(11:59PM)
José Correia
UML - Diagramas de Estados
18
Tipos de Eventos:
„
„
„
„
Eventos de Mudança
Um evento de mudança (change event) é um evento que representa
o facto de uma condição se tornar verdadeira
Notação: when(expressão booleana)
A expressão boolena pode ser usada para marcar um tempo absoluto
(ver atrás) ou para o teste contínuo de uma expressão
Exemplo: when(altitude < 1000)
José Correia
UML - Diagramas de Estados
19
Exemplo: Semáforos
N
N
O
E
Norte/Sul pode
seguir em frente
S
timeout [ há carros na
pista esquerda N/S ]
O
Norte/Sul pode
virar à esquerda
E
S
timeout [ sem carros na
pista esquerda N/S ]
timeout
timeout
timeout [ sem carros
na pista esquerda E/O ]
Este/Oeste pode
virar à esquerda
N
O
E
S
José Correia
timeout [ há carros na
pista esquerda E/O ]
Este/Oeste pode
seguir em frente
timeout - passagem de um certo tempo desde
a entrada no estado origem da transição
UML - Diagramas de Estados
N
O
E
S
20
Tipos de Eventos:
„
Chamadas
Uma chamada representa a invocação de uma operação
• para quem faz a chamada (ponto de vista do actuador), trata-se de uma
acção
• para quem testa se a operação foi chamada (ponto de vista do
observador), trata-se de um evento
• a diferença entre evento e acção é feita pelo contexto
„
Uma chamada é, geralmente, síncrona
• quando uma operação de um objecto invoca uma operação noutro
objecto, o controlo passa para o 2º objecto
„
Nome do evento tem a sintaxe da invocação da operação
• exemplo: insert(record)
José Correia
Tipos de Eventos:
„
„
UML - Diagramas de Estados
21
Sinais
Um sinal é a ocorrência de um estímulo (evento) assíncrono
comunicado entre objectos
Um sinal representa um objecto com nome que é lançado (thrown)
assincronamente por um objecto e é recebido (caught) por outro
• modelizado por classe com estereótipo «signal»
• parâmetros do sinal são atributos da classe
• dependência com estereótipo «send» entre operação que lança um sinal
e a classe que representa o sinal
„
Uma excepção é um sinal
• excepções são suportadas pela maioria das linguagens de programação
actuais (ex.: Java, C++)
• são o tipo mais frequente de sinais internos que precisamos de modelar
„
Lançamento de sinal representado por acção send ou throw
José Correia
UML - Diagramas de Estados
22
Actividades
„
Uma actividade é uma operação, associada a um estado, que se
desenvolve durante um certo intervalo de tempo
• as actividades são elementos básicos dos diagramas de actividades
- que iremos ver a seguir...
„
Uma actividade ...
… inicia-se ao entrar no estado (quando é feita a transição)
… tem duração
… termina por si só, ou pode ser interrompida (por eventos)
„
Notação: do/actividade
„
Exemplos:
• no banco on-line: do/validate SSN and PIN
• num telefone: do/dá_sinal_de_marcar
José Correia
UML - Diagramas de Estados
23
Exemplo: Telefone (fazer chamadas)
no descanso
no descanso
Inactivo
levantado
Sinal de marcar
tempo máximo Tempo máximo
do/toca sinal
dígito(n)
dígito(n)
do/ toca apito
tempo máximo
Discando
Sinal de ocupado
do/sinal ocupado lento
Sinal de interrompido
do/ sinal ocupado rápido
número
ocupado
número válido
Mensagem gravada
número
inválido
do/ passa mensagem
Ligando
do/ busca ligação
ramal
ocupado
encaminhada
Tocando
do/ toca campainha
mensagem
dada
resposta/ liga linha
no descanso/ desliga linha
Ligado
chamado desliga/desliga linha
Desligado
José Correia
UML - Diagramas de Estados
24
Acções
„
Uma acção
• ocorre em resposta a um evento
- as acções estão associadas a eventos
• é (representa) uma operação instantânea
- intervalo de tempo insignificante face à granularidade de tempo representada
no diagrama de estados
- não tem duração (pelo menos no modelo) e não pode ser interrompida
• resulta numa mudança de estado ou no retorno de um valor
- a mudança de estado pode ser noutro objecto
„
Notação: evento/acção
„
Exemplos:
• no banco on-line: Cancel/Quit
• num telefone: poisa_auscultador/pára_sinal_de_marcar
José Correia
UML - Diagramas de Estados
25
Exemplo: Porta de Garagem com motor
„
Diagrama com as acções associadas às transições
Porta a
Abrir
comando accionado /
ligar motor no sentido A
Porta
Fechada
porta foi fechada /
desligar o motor
José Correia
porta foi aberta /
desligar o motor
comando accionado /
ligar motor no sentido A
Porta a
Fechar
Porta Aberta
comando accionado /
ligar motor no sentido F
UML - Diagramas de Estados
26
Acções à entrada e saída de estados
„
„
As operações podem estar associadas a um estado ou a uma
transição de estado
Acção à entrada num estado: entry/acção
• equivale a associar a acção a cada transição que entra no estado
„
Acção à saída de um estado: exit/acção
• equivale a associar a acção a cada transição que sai do estado
„
Ordem das operações (Actividades e Acções)
• acções na transição de chegada
• acções na entrada ( entry/ )
• actividade ( do/ )
• acções na saída ( exit/ )
• acções na transição de saída
José Correia
UML - Diagramas de Estados
27
Exemplo: Porta de Garagem com motor
„
Diagrama com acções de entrada e saída
Porta a Abrir
comando
accionado
entry/ ligar motor no sentido A
porta foi aberta
Porta Fechada
entry/ desligar o motor
porta foi fechada
Porta Aberta
comando
accionado
Porta a Fechar
entry/ desligar o motor
comando accionado
entry/ ligar o motor no sentido F
José Correia
UML - Diagramas de Estados
28
Acções internas
„
As acções podem representar operações de controlo internas
(atribuição de valores aos atributos, criação de outros eventos)
• exemplo: incrementar contador sempre que ocorre um dado evento
„
Acção interna
• ocorre em resposta a um evento interno a um estado
• difere de uma auto-transição, porque não são executadas acções à saída
e entrada e não é interrompida a actividade associada ao estado
„
„
Notação: evento/acção
Um evento pode causar uma acção sem disparar a transição de
estado
José Correia
UML - Diagramas de Estados
29
Sequência de operações numa mudança de
estado
Estado 2
Estado 1
do/actividade 1
evento(atributos) [condição]/acção
do/actividade 2
entry/acção 1A
entry/acção 2A
exit/acção 1C
exit/acção 2C
evento/acção 1B
„
„
transição
evento/acção 2B
ocorre o evento associado à transição e a condição de guarda é verdadeira
é interrompida a actividade associada ao estado de origem (actividade 1), se
não tinha já terminado
„
é executada a acção à saída (acção 1C) do estado de origem
„
é executada a acção associada à transição de estados
„
é executada a acção à entrada (acção 2A) no estado de destino
„
é iniciada a actividade associada ao estado de destino (actividade 2)
José Correia
UML - Diagramas de Estados
30
Exemplo: Menu pop-up
„
Acções de um menu pop-up
cursor deslocado /
realça item do menu
botão direito em baixo /
mostra menu pop-up
Menu
visível
Inactivo
botão direito em cima /
apaga menu pop-up e lança acção
associada ao item seleccionado
José Correia
UML - Diagramas de Estados
31
Sub-Estados
„
„
Vários estados de um diagrama (e transições entre esses estados)
podem ser agrupados num único estado composto
Um sub-estado é um estado que se encontra definido dentro de outro
(super)estado
• a ideia subjacente ao conceito de sub-estado é a abstracção
- uma máquina de estados pode ser descrita com diferentes níveis de
abstracção e de detalhe conforme seja necessário ou relevante em cada
momento
„
Um estado que tenha um conjunto de sub-estados mais detalhados
designa-se por estado composto
• o estado composto pode ser visto simplesmente como um contorno
„
Um estado composto pode conter quer sub-estados sequenciais
(disjuntos), quer sub-estados concorrentes (ortogonais)
José Correia
UML - Diagramas de Estados
32
Sub-estados sequenciais
„
„
Os estados e transições agrupados no estado composto formam um
diagrama de estados encaixado, podendo ter estado inicial e final
Também se chama a isto generalização de estados
• o estado composto é também chamado um super-estado
• estar num sub-estado é estar também no respectivo super-estado
„
A generalização de estados é uma associação (composição) “ou”
• estar no estado composto é estar no 1º sub-estado ou,…, ou no n-ésimo
sub-estado
• ou seja, não é possível estar em dois (sub)estados simultaneamente
„
Os sub-estados herdam as transições e acções dos seus superestados
José Correia
UML - Diagramas de Estados
33
Exemplo: Transmissão automática
„
Diagrama de estado do sistema de transmissão de movimento de um
automóvel automático
carrega R
(reverse)
Ponto
morto
Marcha
atrás
carrega N
carrega F
(forward)
carrega N
Frente
subida
subida
Segunda
Primeira
Primeira
paragem
Terceira
Segunda
redução
Terceira
redução
Estado composto
José Correia
UML - Diagramas de Estados
34
Sub-estados sequenciais:
Transições com estados compostos
„
Podem-se definir transições com origem no estado composto
• equivale a repetir a mesma transição com origem em cada um dos subestados (excepto Q)
- por outras palavras, os sub-estados herdam a transição
• simplifica-se o diagrama porque se desenha 1 transição em vez de n
transições (tantas quantos os sub-estados)
• a transição pode ser dirigida a um sub-estado ou a um estado externo
José Correia
UML - Diagramas de Estados
35
Sub-estados sequenciais:
Transições com estados compostos
„
Podem-se definir transições com destino ao estado composto
• equivale a definir a mesma transição com destino ao respectivo estado
inicial (ou melhor, ao estado apontado por Q)
- que tem de estar definido
„
No entanto, também se podem definir transições que atravessam o
estado composto, com origem ou destino em sub-estados
• o estado inicial é apenas um estado inicial por omissão
José Correia
UML - Diagramas de Estados
36
Sub-estados sequenciais:
Propriedades de estados compostos
„
Um estado composto pode ter todas as propriedades dos estados
simples...
... mas, normalmente, só tem o nome, que mesmo assim é opcional
„
Um estado composto pode ter acções à entrada e à saída
• ao entrar no estado composto, executa primeiro as acções à entrada no
estado composto...
... e depois as acções à entrada no sub-estado de destino
• ao sair do estado composto, executa primeiro as acções à saída do subestado de origem...
... e depois as acções à saída do estado composto
José Correia
UML - Diagramas de Estados
37
Sub-estados sequenciais:
Propriedades de estados compostos
„
A actividade do estado composto é detalhada pelos sub-estados e
transições entre eles
• isto é, pelo diagrama de estados encaixado
„
Em alternativa, pode-se dar um nome à actividade do estado
composto (com “do/...”)...
... e detalha-se essa actividade separadamente (com o mesmo diagrama
de estados encaixado)
• as acções à entrada e à saída são representadas no 1º diagrama
• uma actividade pode ser detalhada por um diagrama de estados ou
actividade
José Correia
UML - Diagramas de Estados
38
Sub-estados concorrentes
„
„
Um estado (estado composto) pode ser detalhado através de vários
sub-diagramas concorrentes
Sub-diagramas correspondem a componentes (grupos de atributos e
ligações ou sub-objectos) mais ou menos independentes do objecto
dono do diagrama
• o mesmo evento pode disparar transições em vários sub-diagramas
„
Sub-diagramas também são mais precisamente chamados subestados concorrentes (têm nome, etc., como os estados)
José Correia
UML - Diagramas de Estados
39
Sub-estados concorrentes
„
Dependências entre componentes podem ser expressas através de
condições de guarda
• um componente testar o estado doutro
„
Os componentes são divididos por linhas a traço interrompido
„
Também se chama a isto composição “e”
• estar no estado composto é estar no 1º e ... e no nº sub-estado
concorrente
„
Notar que, a um nível mais global, os vários objectos (e portanto os
respectivos diagramas de estados) são concorrentes entre si
José Correia
UML - Diagramas de Estados
40
Exemplo: Concorrência num objecto
Preparação do despertador
Selecção do programa
comuta(banda)
Selecção
da Banda
banda
escolhida
Subestados
concorrentes de
“Preparação do
despertador”
sintoniza(frequência)
programa
Selecção do escolhido
Programa
Alarme
ligado
Activação do alarme
marca(hora)
Sai quando
terminarem os dois
subdiagramas
concorrentes
hora
escolhida
Selecção
da Hora
Ao entrar, inicia os
dois subdiagramas
concorrentes
José Correia
UML - Diagramas de Estados
41
O mesmo exemplo sem sub-estados concorrentes
Preparação do despertador
sintoniza(frequência)
banda
comuta(banda) escolhida
Selecção
da Hora
hora
escolhida
marca(hora)
hora
escolhida
hora
escolhida
sintoniza(frequência)
comuta(banda)
Selecção da
Banda
José Correia
programa
escolhido
marca(hora)
Selecção da
Banda e Hora
marca(hora)
Selecção do
Programa e Hora
banda
escolhida
Selecção do
Programa
UML - Diagramas de Estados
programa
escolhido
42
Sincronização: separação e fusão
„
Separação (ou bifurcação) - Quando um objecto passa a fazer várias actividades
concorrentemente (ordem irrelevante)
• transição para estado com sub-diagramas concorrentes activa cada um deles
„
Fusão (ou junção) - Quando as actividades concorrentes têm que terminar antes de
passar ao estado seguinte
• sub-diagramas que não estejam na fusão são automaticamente terminados
„
Exemplo: Actividades desenvolvidas por máquina ATM no fornecimento do dinheiro e
cartão
Emissão (Multibanco)
Preparação
pronto
do/ liberta cartão
do/ liberta dinheiro
José Correia
recolhe cartão
Concluído
recolhe dinheiro
UML - Diagramas de Estados
43
Exemplo: Leilão
„
O seguinte diagrama de estados modeliza um leilão (auction) com
dois sub-estados concorrentes:
• processamento da(s) oferta(s) (processing the bid – ‘Bidding’)
• autorização do pagamento (authorizing the payment)
„
„
„
A entrada no leilão implica a bifurcação (fork) em duas sequências
separadas (threads)
Cada sub-estado tem um estado de saída para marcar o fim da
sequência
A não ser no caso de uma saída anormal (Canceled or Rejected), a
saída do estado composto ocorre quando ambos os sub-estados
tiverem terminado
José Correia
UML - Diagramas de Estados
44
Exemplo: Leilão (cont.)
José Correia
UML - Diagramas de Estados
45
Sistemas reactivos
„
Os diagramas de estados são particularmente úteis para modelar o
comportamento de objectos ou sistemas reactivos
• sistemas que funcionam por resposta (reacção) a estímulos (eventos)
• sistemas de interacção com o utilizador (com formulários, botões, etc.)
são tipicamente reactivos
• sistemas reactivos geralmente têm memória
- um estado interno que acumula o efeito dos estímulos recebidos no passado e
afecta a resposta a estímulos futuros
• Sistemas de tempo real (ex.: semáforo) podem ser vistos como sistemas
reactivos que reagem a eventos temporais (timeout, ...)
„
Objectos podem combinar comportamentos reactivos (resposta a
eventos) com comportamentos invocáveis (operações)
• o mesmo comportamento pode ser visto nas duas perspectivas
José Correia
UML - Diagramas de Estados
46
Diagramas de estados vs.
Diagramas de interacção
„
Um diagrama de estados mostra todos os comportamentos possíveis
de um objecto
• passagem de controlo entre estados
„
Um diagrama de interacção (sequência ou colaboração) mostra um
comportamento possível de um conjunto de objectos
• passagem de controlo entre objectos
„
Envio de uma mensagem é uma acção
„
Recepção de mensagem é um evento
„
Intervalo de tempo entre duas mensagens corresponde à
permanência num estado
José Correia
UML - Diagramas de Estados
47
Relação com o modelo de objectos
„
Um diagrama de estados descreve o comportamento de uma dada
classe de objectos
• um objecto pode passar por diferentes estados ao longo do tempo, mas
preserva a sua identidade (não muda de classe)
• diferenças inerentes ao objecto são modelizadas por classes diferentes
• diferenças temporárias são modelizadas por estados
„
„
Os estados são representados por valores específicos dos atributos
e ligações de cada classe de objectos
Os eventos são representados por operações no modelo de objectos
José Correia
UML - Diagramas de Estados
48
Referências
Estes apontamentos foram baseados em:
„
„
„
„
“UML – Unified Modeling Language”, Curso em Tecnologia de
Objectos, FEUP, Novembro 2000
Ademar Aguiar, Gabriel David, João Pascoal Faria
“Desenvolvimento OO – Construção do modelo dinâmico através da
linguagem UML”, ISPGaya, Novembro 1998
César Toscano
“Practical UML: A Hands-On Introduction for Developers”,
TogetherSoft Corporation
“UML, Metodologias e Ferramentas CASE”, Alberto Rodrigues da
Silva, Carlos Videira, Maio 2001
José Correia
UML - Diagramas de Estados
49
Download

Diagramas de Estados