• Nenhum resultado encontrado

UML Diagrama de Estados [Pt Br]

N/A
N/A
Protected

Academic year: 2019

Share "UML Diagrama de Estados [Pt Br]"

Copied!
38
0
0

Texto

(1)

Business Informatics Group

Institute of Software Technology and Interactive Systems Vienna University of Technology

Favoritenstraße 9-11/188-3, 1040 Vienna, Austria

phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896 office@big.tuwien.ac.at, www.big.tuwien.ac.at

Modelagem Orientada a Objetos

Diagrama de Estados

(2)

Literature

UML @ Classroom:

An Introduction to Object-Oriented Modeling

Martina Seidl, Marion Scholz, Christian Huemer and Gerti Kappel

Springer Publishing, 2015

ISBN 3319127411

§ The lecture is based on the following book:

§ Use Case Diagram

§ Structure Modeling

§ State Machine Diagram

§ Sequence Diagram

(3)

© BIG / TU Wien

Conteúdo

§ Introdução § Estados § Transições

§ Tipos de eventos § Tipos de estados

§ Pontos de Entrada e Saída

(4)

Introdução

§ Cada objeto passa por um número infinito de diferentes estados durante sua vida

§ Diagrama de estados é usado para:

§ Modelar os estados possíveis de um sistema ou de um objeto

§ Modelar como transições de estados ocorrem como uma consequência dos eventos

§ Mostrar qual comportamento o sistema ou o objeto exibe em cada estado

§ Exemplo: descrição de alto-nível do comportamento de uma sala de

(5)

© BIG / TU Wien

Exemplo: Sala de Aula com Detalhes

class LectureHall {

private boolean free;

public void occupy() { free=false;

}

public void release() { free=true;

} }

(6)
(7)

© BIG / TU Wien

Estado

§ Estados = nós do diagrama de estados

§ Quando um estado está ativo

§ O objeto está naquele estado

§ Todas atividades internas especificadas neste estado podem ser executadas

§ Uma atividade pode consistir de múltiplas ações

§ entry / Activity(...)

§ Executada quando o objeto entra no estado

§ exit / Activity(...)

§ Executada quando o objeto sai do estado

§ do / Activity(...)

§ Executada enquanto o objeto permanece no estado

(8)

Transição

§ Mudança de um estado para outro

Estado fonte Transição Estado alvo

(9)

Transição – Sintaxe

§ Evento (trigger)

§ Estímulo exógeno

§ Pode disparar uma transição de estado § Guarda (condição)

§ Expressão Booleana

§ Se o evento ocorre, a guarda é verificada § Se a guarda é verdadeira

§ Todas atividades no estado atual são terminadas

§ Qualquer atividade de saída relevante é executada

§ A transição ocorre

§ Se a guarda é falsa

§ Nenhuma transição ocorre e o evento é descartado

§ Atividade (efeito)

(10)

Transição – Tipos (1/2)

Transição interna Transição externa

§ Se event1 ocorre

§ Obteto permanece em

state1

§ Activity3 é executada

§ Se event1 ocorre

§ Objeto deixa state1 e

Activity2 é executada

§ Activity3 é executada

§ Objeto entra state1 e

(11)

© BIG / TU Wien

Transição – Tipos (2/2)

§ Quando acontecem as seguintes transições?

Se e1 ocorre, A1 é abortada e o objeto muda para S2

Se e1 ocorre e g1 avalia para verdadeiro, A1 é abortada e o objeto muda para S2

Assim que a execução de A1 é terminada, um evento de término é gerado que inicia a

transição para S2

Assim que a execução de A1 é terminada, um evento de término é gerado; se g1 avalia para verdadeiro, a transição ocorre; Se não, esta transição nunca pode ocorrer

(12)

Transição – Sequência de execuções de atividades

§ Supondo que S1 está ativo … qual é o valor de x após e ocorrer?

S1 se torna ativo, x recebe o valor 4

Sai de S1, x recebe o valor 5

e ocorre, a guarda é verificada e avalia para verdadeiro

A transição ocorre, x recebe o valor 10

(13)

© BIG / TU Wien

Exemplo: Status de registro de uma prova

(14)

Eventos – Tipos (1/2)

§ Evento de sinal

Recepção de sinal

§ Ex., rightmousedown, sendSMS(message)

§ Evento de chamada

Chamada de operação

§ Ex., occupy(user,lectureHall), register(exam)

§ Evento de tempo

Transição de estados baseada em tempo

§ Relativo: baseado no tempo da ocorrência do evento

§ Ex., after(5 seconds)

§ Absoluto

(15)

© BIG / TU Wien

Eventos – Tipos (2/2)

§ Qualquer evento de recepção

Ocorre um evento que não está associado a alguma outra transição a partir do estado ativo

§ Palavra-chave all

§ Evento de término

Gerado automaticamente quando tudo a ser feito no estado corrente é finalizado

§ Evento de mudança

Checa permanentemente se uma condição se torna verdadeira

§ Ex., when(x > y), after(90min)

(16)

Evento de Mudança vs. Guarda

Verificado

permanentemente

(17)

© BIG / TU Wien

Estado Inicial

§ “Começo” de um diagrama de estados

§ Pseudoestado

§ Transiente, ou seja, o sistema não pode permanecer naquele estado

§ Mais uma estrutura de controle, do que um estado real

§ Sem arestas de entrada

§ Se arestas de saída >1

§ Guardas precisam ser mutuamente exclusivas e cobrir todos casos possíveis para garantir que exatamente um estado alvo é alcançado

§ Se o estado inicial se torna ativo, o objeto imediatamente muda para o próximo estado

§ Nenhum evento é permitido nas arestas de saída (exceção: new())

(18)

Estado Final e Nó de Término

Estado Final

§ Estado real

§ Sinaliza o fim da sequência de estados

§ Objeto pode permanecer no estado final para sempre

Nó de Término

§ Pseudoestado

§ Termina o diagrama de estados

(19)

© BIG / TU Wien

Nó de decisã

o

§ Pseudoestado

§ Utilizado para modelar transições alternativas

equivalente?

=

equivalente?

(20)
(21)

© BIG / TU Wien

Nós de Paralelização e Sin

cronização

Nó de Paralelização § Pseudoestado

§ Divide o fluxo de controle em múltiplos fluxos concorrentes

§ 1 aresta de entrada

§ >1 arestas de saída

Nó de Sincronização § Pseudoestado

§ Mescla múltiplos fluxos concorrentes

§ >1 arestas de entrada

§ 1 aresta de saída

(22)

Estado Composto

§ Sinônimos: estado complexo, estado aninhado

§ Contém outros estados – “subestados“

§ Somente um dos seus subestados está ativo em algum ponto do tempo § Nível arbitrário de aninhamento de subestados

Estado composto

(23)

© BIG / TU Wien

Entrando em um Estado Composto (1/2)

§ Transição para a fronteira

§ Nó inicial do estado composto é ativado

Evento Estado Atividades Executadas

„Começo“ S3

e2 S1/S1.1 a0-a2-a3-a4

(24)

Entrando em um Estado Composto (2/2)

§ Transição para um subestado § Subestado é ativado

Evento Estado Atividade Executadas

„Começo“ S3

(25)

© BIG / TU Wien

Saindo de um Esatado Composto (1/3)

§ Transição de um subestado Evento Estado Atividades

Executadas

„Começo“ S1/S1.1 a3-a4

e3 S2 a6-a5-a2-a1

(26)

Evento Estado Atividades Executadas

„Começo“ S1/S1.1 a3-a4

e5 S2 a6-a5-a3-a1

Saindo de um Estado Composto (2/3)

§ Transição de um estado composto

Independente de qual

(27)

© BIG / TU Wien

Evento Estado Atividades

Executadas

„Começo“ S1/S1.1 a3-a4

e4 S1/S1.2 a6-a7

e4 S2 a8-a5-a1

Saindo de um Estado Composto (3/3)

§ Transição de término a partir do estado composto

(28)

Estado Ortogonal

§ Estado composto é dividido em duas ou mais regiões separadas por uma linha tracejada

§ Um estado de cada região está sempre ativa em algum ponto do tempo, ou seja, existem subestados concorrentes

§ Entry: transição para a fronteira do estado ortogonal ativa os estados inciais de todas regiões

§ Exit: estado final precisa ser alcançado em todas regiões para disparar o evento de término

(29)

© BIG / TU Wien

Estado de submáquina (SMS)

§ Reutilizar partes do diagrama de estados em outros diagramas de estados

§ Notação: state:submachineState

§ Assim que o estado de submáquina é ativado, o comportamente da submáquina é executada

§ Corresponde à chamada de uma subrotina em linguagens de programação

29 Símbolo de

(30)

Estado Histórico

§ Lembra qual subestado de um estado composto foi o último estado ativo

§ Ativa o subestado “antigo” e todas atividades de entrada são

executadas sequencialmente a partir do exterior para o interior do estado composto

§ Exatamente uma aresta de saída do estado histórico aponta para um subestado o qual é usado se

§ o estado composto nunca esteve ativo antes

§ o estado composto foi abandonado através do estado final

§ Estado histórico “shallow” restaura o estado que está no mesmo nível do estado composto

(31)

© BIG / TU Wien

Exemplo: Estado Histórico (1/4)

Evento Estado

„Começo“ S5

e1 S4/S1/S1.1

e2 S1.2

e10 S5

e9 (H→) S1/S1.1

(32)

Exemplo: Estado Histórico (2/4)

Evento Estado

„Começo“ S5

e1 S4/S1/S1.1

e2 S1.2

e10 S5

(33)

© BIG / TU Wien

Exemplo: Estado Histórico (3/4)

Evento Estado

„Começo“ S5

e9 (H→) S1/S1.1

(34)

Exemplo: Estado Histórico (4/4)

Evento Estado

„Começo“ S5

(35)

© BIG / TU Wien

Pontos de Entrada e Saída

§ Mecanismo de encapsulamento

§ Um estado composto deve ser entrado ou abandonado por um estado diferente dos estados iniciais e finais

§ A transição externa não precisa conhecer a estrutura do estado composto

External view

(36)
(37)

© BIG / TU Wien

Elementos de Notação (1/2)

Name Notation Description

Estado

Descrição de um “intervalo de tempo” no qual um objeto se encontra durante seu “ciclo de vida”. Dentro de um

estado, atividades podem ser executadas pelo objeto.

Transição Transição de estado estado fonte e a partir de um

S para um estado alvo T

Estado Inicial Começo do diagrama de estados

Estado Final Fim do diagrama de estados

Nó de Término Fim do diagrama de estados e objeto

deixa de existir

(38)

Elementos de Notação (2/2)

Nome Sintaxe Descrição

Nó de decisão Nó a partir do qual múltiplas transições

alternativas podem ter origem

Nó de paralelização Divisão de uma transição em múltiplas

transições paralelas

Nó de sincronização Mesclagem de múltiplas transições

paralelas em uma única transição

Estado histórico shallow / deep

“Endereço de retorno” para um

Referências

Documentos relacionados

[r]

O caso de gestão estudado discutiu as dificuldades de implementação do Projeto Ensino Médio com Mediação Tecnológica (EMMT) nas escolas jurisdicionadas à Coordenadoria

Occurs when any event occurs that does not trigger another transition from the active state. § Keyword

§ Atores não são parte do sistema, i.e., eles estão fora das fronteiras do sistema... © BIG /

§ Aceita tokens de objeto como entrada a partir de nós de objetos e os passa para outros nós de objetos. § Quando um token de objeto é lido do buffer central, ele é apagado do

Furthermore, research associates can be involved in projects for a certain number of hours, and the name, starting date, and end date of the projects are known. Some

§ Para anular a ordem cronológica entre mensagens em diferentes operandos. § Caminhos de execução de diferentes operandos podem ser

As imperfeições podem surgir por vários motivos: a falta de vontade das empresas privadas de investirem em determinadas áreas, como pesquisa básica, nas quais não podem