Especificação, Modelação e Projecto de Sistemas Embutidos - 2008 / 2009
Índice:
 UML Statechart diagrams
 Introdução
 Statechart Diagrams
 State
 Composite States
 Events
 Simple Transitions
 Transitions to and from Concurrent States
 Transitions to and from Composite States
 Factored Transition Paths
 Submachine States
 Synch States
 Activity Diagrams
EMPSE - 2008 / 2009
2
Introdução
UML - Unified Modeling Language
 O que é?
Consiste numa linguagem de modelação de terceira geração. Não é uma linguagem de
programação nem uma metodologia. Tem a finalidade de visualizar, especificar,
construir e documentar o desenvolvimento de sistemas de informação complexos.
 Quem a desenvolveu?
Inicialmente desenvolvida por Rumbaugh, Booch (1994) e Jacobson (1995), e
posteriormente por mais de 8 entidades, em que cada um contribuiu com parte do seu
modelo ou experiência para o desenvolvimento e crescimento do UML.
 Porque se desenvolveu?
Nasceu da ideia de juntar vários métodos eficazes de modelagem de sistemas complexos
(OMT, BOOCH, OOSE, etc.).
 Qual o seu objectivo?
A UML tem como objectivo de no Futuro ser a modelação standard usada para modelar
sistemas concorrentes e distribuídos.
EMPSE - 2008 / 2009
3
Statechart Diagram
 Representam
o comportamento das
entidades
capazes
de
um
comportamento dinâmico através da
especificação de uma resposta para uma
determinada recepção de um evento.
 Diagrama de estado é um gráfico que
representa uma máquina de estados.
 Os estados são representados por um
rectângulo de cantos redondos e são
conectados entre eles por um arco
direccionado
que
representa
a
transição.
EMPSE - 2008 / 2009
4
State
 Um estado é uma condição durante a vida de um
objecto ou uma interacção durante a qual ele satisfaz
alguma condição, realiza alguma acção ou espera por
algum evento.
 O estado é representado por um rectângulo com os cantos redondos, podendo
conter o nome num rectângulo situado fora do estado, no topo superior.
 O estado pode ser dividido em múltiplos compartimentos:
 Nome do comportamento – topo superior do estado, separado para os restantes
por uma linha horizontal (não deve ser usado caso o nome do estado seja usado e
vice-versa).
 Comportamento das transições internas - possui uma lista de acções internas ou
actividades que são realizadas enquanto o elemento está no estado (não podem ter o
mesmo nome dos eventos).
 Notação usada: nome da acção ‘/’ expressão da acção
EMPSE - 2008 / 2009
5
Composite States
 Um estado composto pode ser decomposto em:
 Dois ou mais subestados simultâneos ou concorrentes
(chamadas regiões);
 Em subestados mutuamente exclusivos ou sequenciais.
 Cada subestado de um estado composto pode ser ele
próprio um estado composto de qualquer tipo.
 Cada estado composto deverá possuir subestados iniciais
e finais.
 Na representação de subestados concorrentes as diferentes
regiões são separadas por tracejado. Cada região poderá ter
um nome, e deverá possuir o diagrama de estados
sequenciais que descrevem o seu comportamento.
EMPSE - 2008 / 2009
6
Composite States (2)
Subestados concorrentes
Subestados sequenciais
EMPSE - 2008 / 2009
7
Events
 Um evento é uma ocorrência significativa que tem uma localização no tempo
(instante de tempo do evento) e no espaço.
 Notação usada: nome do evento ‘(‘ parâmetro – parâmetro’)
 No contexto de uma máquina de estados, um evento pode ter como resposta uma
transição (mudança de estado) e/ou uma acção.
 Os eventos são instantâneos
 O que interessa é que se lhe possa atribuir um instante de tempo de ocorrência
 Os eventos podem ser de vários tipos:
 Eventos de mudança – uma condição tornar-se verdadeira;
 Sinais – recebe um sinal explicito de um objecto para outro;
 Chamadas - invocação de operações;
 Eventos temporais – após uma passagem de tempo ou ocorrência de uma
data/hora.
 Os eventos podem ter parâmetros.
 Notação usada: nome do parâmetro ‘:’ expressão do tipo
EMPSE - 2008 / 2009
8
Simple Transitions
 Uma transição simples é uma relação entre dois estados indicando que
um objecto do primeiro estado vai entrar no segundo e executar uma
determinada acção quando um evento especifico acontece.
 Notação usada: evento ’(‘parâmetros’)’ ‘[‘condição ‘]’ ‘/’ acção
 Representa-se por uma seta com origem no estado fonte e fim no
estado alvo.
 O evento são processados um a um.
 Se um evento não desponta qualquer transição é descartado.
 Se o evento puder disparar na mesma região mais do que uma transição
com a mesma prioridade só uma delas será disparada (escolha
arbitrária).
EMPSE - 2008 / 2009
9
Transitions To and From
Concurrent States
 Acontecem quando todos os estados fonte são executados;
 Depois de ser despoletada todos os estados destino são ocupados;
 Inclui uma barra de sincronização que pode representar divisão/junção
(forking/joining), sincronização ou ambos;
 A barra pode ter uma ou mais setas de entrada ou saída, e ainda uma string
de transição situada sobre a mesma.
EMPSE - 2008 / 2009
10
Transitions To and From
Composite States
 Indicam uma transição que é aplicada a cada um dos estados incluídos no
estado composto, e podem ser desenhadas directamente de e para qualquer um
desses estados;
 No caso de um estado composto concorrente, as setas da barra de sincronização
podem ser representadas para um ou mais estados compostos;
 Uma transição desenhada a partir da fronteira do estado composto indica a
transição desse estado, e neste caso, todos os estados incluídos são forçados a
terminar para se dar a transição do estado composto;
 Um stub é representado com uma linha vertical desenhada dentro da região do
estado composto, e indica uma transição ligada a um estado interno suprimido.
EMPSE - 2008 / 2009
11
Factored Transition Paths
 Transições Compostas - Surgiram da necessidade de representar um conjunto
de transições provenientes de diferentes estados não concorrentes, e que
terminam num mesmo ponto de união;
 Permite a partilha do mesmo caminho formado no ponto de união
(representado por um pequeno círculo ou losango), simplificando desta forma
o diagrama. Deste modo, duas transições compostas distintas podem unir-se
partilhando a mesma acção, seguindo o mesmo caminho, e possivelmente
terminar no mesmo estado de destino;
 Note-se que devido à factorização, a separação e a junção de transições entre
estados neste contexto é diferente do que acontece nas transições entre estados
concorrentes.
EMPSE - 2008 / 2009
12
Submachines States
 Representam a invocação de uma máquina de estados definida algures e é
representada pela etiqueta include seguida do nome da submachine;
 Pode-se entrar (ou sair) para uma submachine através de qualquer um dos seus
substates ou pelo seu default state;
 A notação dos seus stub states é semelhante à usada para as stubs transitions,
com a excepção que possuem etiquetas de identificação do subestado;
 Esta notação não é necessária caso se entre (ou saia) da submachine através do
seu default state.
EMPSE - 2008 / 2009
13
Synch States
 Servem para sincronizar regiões concorrentes dentro de uma máquina de estados;
 São usadas em conjunto com forks e joins e asseguram que uma região abandona um
determinado estado (ou estados) antes que outra região entre noutro estado (ou estados);
 O número de transições de saída de um synch state pode ser limitado pela diferença entre
o número de transições de saída e o número de transições de entrada;
 São representados por um círculo desenhado entre as regiões correspondentes, com o
número do limite de transições no seu interior. O limite pode ser inteiro positivo ou
infinito (neste caso representado por ‘*’).
EMPSE - 2008 / 2009
14
Next…
EMPSE - 2008 / 2009
15
Download

Apresentação