Modelação
Aula T15
Modelação Conceptual de Sistemas
Revisão do Comportamento
OCL – Object Constraint Language
José Borbinha
Programa
T01-T03 – Módulo 1
– Introdução à Modelação de Sistemas
T04-T07 – Módulo 2
– Modelação Conceptual de Sistemas
T08-T11 – Módulo 3
– Ontologias
T12 – Correcção do Teste 1
T13-T15 – Módulo 4
–Modelação de Sistemas: Comportamento
T16-T18 – Módulo 5
– Modelação de Sistemas: Arquitectura
T19-T25 – Módulo 6
– Temas avançados
Modelação
2
Modelação do
Comportamento
-
Revisão…
(Conceptual Modeling of Information Systems -capítulos 11, 12, 14 e 14)
(UML, Metodologias e Ferramentas CASE - Capítulo 8)
Modelação
3
Modelação da Dinâmica (ou Comportamento) em UML
• Esquema de comportamento: A especificação das acções válidas e
das mudanças possíveis no estado do domínio do sistema.
• Um sistema executa acções (as quais podem provocar ou não
alterações no estado do domínio)
• Em UML o comportamento de um sistema representa-se através de:
– Dinâmica geral do sistema
• Diagrama de Casos de Utilização
• Diagrama de Actividade
– Diagramas de Interacção
• Dinâmica entre objectos
– Diagrama de Sequência
– Diagrama de Comunicação
– Diagrama Temporal
• Diagrama da Visão Geral da Interacção
– Comportamento dos objectos...
• Diagrama de (Máquina de) Estados
Modelação
4
Casos de Usos
•
Um caso se uso representa um
conjunto de acções que um ou mais
actores realizam num sistema para
obter um resultado concreto.
Máquina de Bebidas
Comprar bebida
Cliente
•
Um cenário é uma instância de um
caso de uso. Representa assim uma
sequência de acções concreta que
ilustra um comportamento real do
sistema. É normal que um caso de
uso possa ser descrito por vários
cenários
Repor bebidas
Fornecedor
«include»
«include»
Abrir a
máquina
«include»
Retirar dinheiro
Dono
«include»
Modelação
Fechar a
máquina
5
Diagramas de Actividade
Descrição das actividades de
um sistema (lógica do sistema
e fluxos de dados),
fornecendo uma visão do
fluxo de controlo de um caso
de uso.
Modelação
6
Actividades e Objectos
Exemplo para uma
sequência de
actividades
evidenciando os
objectos afectados nas
entradas e saídas de
algumas actividades
Modelação
7
Actividades e Objectos
Exemplos de actividades
evidenciando os objectos
passados de uma para
outra (“data flow”)
Exemplos retirados do “help” do Enterprise Architect…
Modelação
8
Diagramas de Sequência e de Comunicação
Diagramas de sequência


Diagramas de comunicação
mostram a sequência explicita das
mensagens entre objectos
adequados para visualizar um fluxo global
ao longo do tempo
• mostram relações entre os objectos,
adicionalmente às interacções
• adequados para visualizar padrões de
colaboração entre objectos
Estes diagramas são semanticamente equivalentes, mas não apresentem explicitamente a
mesma informação (ex: a linha de tempo não existe no diagrama de comunicação...)
Modelação
9
Máquinas de Estado
• Num sistema, as entidades podem
ser modeladas como máquinas de
estado.
• Cada entidade de um sistema
(objecto) terá num dado instante a
sua própria máquina de estados, mas
conceptualmente o mesmo diagrama
de transição de estados pode ser
usado para todas as instâncias do
mesmo tipo de entidades (classes).
Modelação
10
Diagramas de Estado: Eventos, Acções e Condições com Guarda
Evento de disparo
de transição (trigger)
Transição automática,
sem acção ou condição
Acção (executada na
entrada do estado)
Sintaxe completa de uma transição: evento [condição com guarda] / acção
Uma transição de estado realiza-se se o evento ocorre e a guarda é verdadeira.
Exemplos:
• Aviso da UPS [Energia da bateria > 10 minutos] / Emite aviso sonoro
• Aviso da UPS [Energia da bateria < 10 minutos] / Inicia shutdown
Modelação
11
OCL
Object Constraint Language
Modelação
12
OCL
• Uma linguagem para expressar informação extra mas necessária
sobe um modelo.
• É uma linguagem textual e declarativa (isto é, permite descrever
o “quê” e não o “como”).
• OCL usa-se para especificar, em modelações com UML:
– Expressões – indicação ou especificação de valores
– Constrangimentos – restrições a um ou mais valores
• Expressões em OCL podem ser usadas em qualquer
diagrama!!!
Modelação
13
OCL
• Tipos de expressões:
– O valor inicial de um atributo ou associação
– Uma regra de derivação para um atributo ou associação
– Uma instância, uma condição ou um valor para um parâmetro num diagrama
dinâmico
– Etc…
• Tipos de constrangimentos:
– “Invariant” – uma restrição que se deve verificar sempre no sistema
– “Precondition” – uma restrição que deve ser verdadeira para que uma operação
seja executada
– “Postcondition”- uma restrição que deve ser verdadeira no final da execução de
uma operação
– “Guard”- uma restrição que deve ser verdadeira antes de uma transição de estado
Modelação
14
Exemplo com uma classe
context Transaction inv:
points >= 0
Modelação
15
Exemplos de expressões e constragimentos
Conta
id : Integer
saldo: Real = 0
deposito(valor : Real)
levantamento(valor : Real)
daSaldo() : Real
Tipos de valores usuais:
Integer, Real, String, Boolean
context Conta::levantamento (valor : Real)
pre: valor <= saldo
Operações usuais:
post: saldo = [email protected] – valor
context Conta::daSaldo() : Real
post: result = saldo
Modelação
= < > <> <= >= + - * /
mod() div() max()
min() round() abs()
and or xor not implies
if_then_else_endif …
16
“Navigation” em associações qualificadas
Conta
id : Integer
saldo: Real = 0
dono
1
conta
*
Cliente
deposito(valor : Real)
levantamento(valor : Real)
daSaldo() : Real
Expressão incorrecta
Expressão correcta
cliente.conta.saldo = 0
cliente.conta->select(id=1234).saldo = 0
Modelação
17
“Navigation” em associações qualificadas
Conta
id : Integer
saldo: Real = 0
conta
*
deposito(valor : Real)
levantamento(valor : Real)
daSaldo() : Real
dono
id
Cliente
1
cliente.conta[4321]
Ou
cliente.conta[id = 4321]
Ou
…
Modelação
18
OCL em diagramas de estados
Exemplo retirado do “help” do Enterprise Architect…
Modelação
19
OCL em diagramas de estados
stm Diagrama de Estado - Seleccionar Bebida
Init ial
Inac tiv o
garrafa retira da [total = 0]
A fornecer água
garrafa retira da [total > 0]
moeda i nserida
/total = nova moeda
botão A [total i nserido >= 0.50]
/entregar água
total = total - 0.50
A rec eber
moe das
botã o B
/devolve total
moeda i nserida
/total = total + nova moeda
Máquina
total: Real = 0
recebeMoeda(valor : Real)
forneceAgua()
devolveTotal()
Modelação
20
Modelação
21
Modelação
22
Download

Modelação de Sistemas: Comportamento