22
Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Embed Size (px)

Citation preview

Page 1: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Modelação

Aula T15Modelação Conceptual de Sistemas

Revisão do ComportamentoOCL – Object Constraint Language

José Borbinha

Page 2: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

ProgramaT01-T03 – Módulo 1

– Introdução à Modelação de SistemasT04-T07 – Módulo 2

– Modelação Conceptual de SistemasT08-T11 – Módulo 3

– OntologiasT12 – 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

2Modelação

Page 3: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

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)

3Modelação

Page 4: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

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

4Modelação

Page 5: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Modelação 5

• Um caso se uso representa um conjunto de acções que um ou mais actores realizam num sistema para obter um resultado concreto.

• 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

Casos de Usos

Máquina de Bebidas

Cliente

Fornecedor

Comprar bebida

Repor bebidas

Retirar dinheiroDono

Abrir a máquina

Fechar a máquina

«include»

«include»

«include»

«include»

Page 6: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

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.

6Modelação

Page 7: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Actividades e Objectos

Exemplo para uma sequência de actividades evidenciando os objectos afectados nas entradas e saídas de algumas actividades

7Modelação

Page 8: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Actividades e Objectos

Exemplos de actividades evidenciando os objectos passados de uma para outra (“data flow”)

8ModelaçãoExemplos retirados do “help” do Enterprise Architect…

Page 9: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Diagramas de Sequência e de Comunicação

Diagramas de sequência mostram a sequência explicita das

mensagens entre objectos adequados para visualizar um fluxo

global ao longo do tempo

Diagramas de comunicação• 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...)

9Modelação

Page 10: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

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).

10Modelação

Page 11: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Diagramas de Estado: Eventos, Acções e Condições com Guarda

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

Sintaxe completa de uma transição: evento [condição com guarda] / acção

11Modelação

Evento de disparo de transição (trigger)

Acção (executada na entrada do estado)

Transição automática, sem acção ou condição

Page 12: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

OCLObject Constraint Language

12Modelação

Page 13: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

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!!!

13Modelação

Page 14: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

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

14Modelação

Page 15: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Exemplo com uma classe

Modelação 15

context Transaction inv:points >= 0

Page 16: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Exemplos de expressões e constragimentos

16Modelação

Conta

id : Integersaldo: Real = 0

deposito(valor : Real)levantamento(valor : Real)daSaldo() : Real

context Conta::levantamento (valor : Real)pre: valor <= saldopost: saldo = saldo@pre – valor

context Conta::daSaldo() : Realpost: result = saldo

Tipos de valores usuais:Integer, Real, String, Boolean

Operações usuais:= < > <> <= >= + - * / mod() div() max() min() round() abs()and or xor not implies if_then_else_endif …

Page 17: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

“Navigation” em associações qualificadas

17Modelação

Conta

id : Integersaldo: Real = 0

deposito(valor : Real)levantamento(valor : Real)daSaldo() : Real

Clienteconta*

dono1

cliente.conta.saldo = 0

cliente.conta->select(id=1234).saldo = 0

Expressão incorrecta

Expressão correcta

Page 18: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

“Navigation” em associações qualificadas

18Modelação

Conta

id : Integersaldo: Real = 0

deposito(valor : Real)levantamento(valor : Real)daSaldo() : Real

Clienteconta*

dono

1

cliente.conta[4321]

Ou

cliente.conta[id = 4321]

Ou…

id

Page 19: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

OCL em diagramas de estados

Modelação 19Exemplo retirado do “help” do Enterprise Architect…

Page 20: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

OCL em diagramas de estados

20Modelação

stm Diagrama de Estado - Seleccionar Bebida

Inac tivo A fornecer água

A rec eber moe das

Init ial

moeda i nserida/total = total + nova moeda

botã o B/devolve total

botão A [total i nserido >= 0.50]/entregar águatotal = total - 0.50

garrafa retirada [total > 0]

garrafa retirada [total = 0]

moeda i nserida/total = nova moeda

Máquina

total: Real = 0

recebeMoeda(valor : Real)forneceAgua()devolveTotal()

Page 21: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Modelação 21

Page 22: Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha

Modelação 22