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