Especificação, Modelação e Projecto de Sistemas Embutidos - 2008 / 2009
Índice:UML Statechart diagrams
IntroduçãoStatechart Diagrams StateComposite StatesEventsSimple TransitionsTransitions to and from Concurrent StatesTransitions to and from Composite StatesFactored Transition PathsSubmachine StatesSynch States
Activity Diagrams
EMPSE - 2008 / 2009 2
IntroduçãoUML - 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.
3EMPSE - 2008 / 2009
Statechart DiagramRepresentam 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.
4EMPSE - 2008 / 2009
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
5EMPSE - 2008 / 2009
Composite StatesUm 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.
6EMPSE - 2008 / 2009
Composite States (2)
Subestados sequenciais
Subestados concorrentes
7EMPSE - 2008 / 2009
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
8EMPSE - 2008 / 2009
Simple TransitionsUma 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).
9EMPSE - 2008 / 2009
Transitions To and From Concurrent StatesAcontecem 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.
10EMPSE - 2008 / 2009
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.
11EMPSE - 2008 / 2009
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.
12EMPSE - 2008 / 2009
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.
13EMPSE - 2008 / 2009
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 ‘*’).
14EMPSE - 2008 / 2009
Next…
15EMPSE - 2008 / 2009