A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

OCL Object Constraint Language

Apresentações semelhantes


Apresentação em tema: "OCL Object Constraint Language"— Transcrição da apresentação:

1 OCL Object Constraint Language
PUC-PR - Mestrado em Informática Aplicada Disciplina de Orientação a Objetos Prof. Dr. Alcides Calsavara Mestrandos Irani Martins Souza e Hugo Eduardo Simião Novembro de 2001

2 OCL - Object Constraint Language
Introdução: A OCL foi criada por Jos Warmer da IBM (Holanda), como uma linguagem para a modelagem de negócios. Ela é derivada do método SYNTROPY de Steve Cook e John Daniels. OCL é uma linguagem que complementa a UML, permitindo formalizar a semântica da linguagem propriamente dita e fornecendo maneiras de expressar precisa e formalmente as restrições de uma estrutura de modelos. OCL permite ao desenvolvedor criar um conjunto de regras altamente específicas, que definem o aspecto de um objeto individual. Novembro de 2001

3 OCL - Object Constraint Language
O que a OCL é: uma linguagem textual de modelagem, expressiva e formal O que a OCL não é: uma linguagem de programação Por que usar a OCL? os modelos gráficos não são suficientes para uma especificação precisa e sem ambiguidade as linguagens formais tradicionais não são muito “amigáveis” Novembro de 2001

4 OCL - Object Constraint Language
Características da OCL: Especificamente a OCL suporta expressões de invariantes, pré e pós condições, permitindo ao modelador definir restrições precisas de comportamento para um modelo, sem estar envolvido em detalhes de implementação. A OCL foi desenvolvida com o objetivo de descrever regras de negócio e evitar ambigüidades em modelos gráficos de orientação a objetos. Novembro de 2001

5 OCL - Object Constraint Language
Características da OCL: as expressões OCL são fáceis de ler e de escrever. Mesmo pessoas com pouca base matemática não têm dificuldade para aprender e utilizar a OCL na OCL cada expressão é conceitualmente atômica todas as construções têm um significado definido formalmente OCL é baseada na Lógica de Predicados e na Teoria das Séries (Set Theory) as expressões OCL não têm efeitos colaterais no modelo, podem ser avaliadas quanto à sintaxe e semântica, mas nem todas podem ser executadas diretamente as expressões OCL exigem tipos de dados concordantes e devem utilizar apenas caracteres ASCII Novembro de 2001

6 OCL - Object Constraint Language
Onde usar a OCL: para especificar invariantes nos modelos de Classe para especificar tipos nos modelos de Classe para especificar tipos de invariantes para Estereótipos para descrever pré e pós-condições em Operações para descrever pré e pós-condições em Métodos para descrever alertas (Guards) como uma linguagem de navegação para especificar restrições em Operações Novembro de 2001

7 OCL - Object Constraint Language
História: OMG requisitou propostas sobre Análise e Projeto baseados em Objetos 1997 (janeiro) - IBM e Object Time Ltd apresentaram uma proposta que incluía a OCL 1997 (agosto) - Liberada a versão 1.1 da OCL 2001 (agosto) - OMG requisitou propostas para a versão 2.0 da OCL 2001 (dezembro) - prazo final para apresentação das propostas requeridas em agosto Novembro de 2001

8 OCL - Object Constraint Language
Estrutura da Linguagem OCL não provê uma sintaxe especial para cada construção da linguagem. Em vez disso, ela usa um conceito: Comece com um objeto, avalie uma propriedade (atributo, operação ou navegação) do objeto, a qual resulta em um novo objeto (ou uma coleção de objetos, que é um objeto também). Neste objeto resultante se pode avaliar outra propriedade, que resulta em outro objeto, etc. A estrutura básica é: object.property.aPropertyOnTheResult (...).yetAnotherProperty() Novembro de 2001

9 OCL - Object Constraint Language
Examples of OCL-expressions The context of example expressions is written with underlined text. Person wife.name Evaluates to the name of a persons wife Person children->Select(age>7) Evaluates to the list of persons who happen to be the children of the original person and is older than seven years. Company employees->union(Employees.Spouse)->union(Employees.Children) Evaluates to the entire families of the employees of a company. Novembro de 2001

10 OCL - Object Constraint Language
Novembro de 2001

11 Modelo UML Novembro de 2001

12 Exemplos OCL Atributos
A idade de uma pessoa deve ser maior ou igual a 0: Person self.age >= 0 Associações Quem é o Gerente e quais os Empregados de uma Companhia: Company self.manager self.employee Novembro de 2001

13 Exemplos OCL Associações
Quanto ao número de empregadores de determinada pessoa: Person self.employer -> size self.employer -> isEmpty Novembro de 2001

14 Exemplos OCL Pessoas Casadas com Idade maior ou igual a 18:
self.wife -> notEmpty implies self.wife.age >= 18 and self.husband -> notEmpty implies self.husband.age >= 18 Novembro de 2001

15 Exemplos OCL As companhias que tenham 50 empregados ou menos:
self.employee -> size <= 50 Uma relação de casamento deve acontecer entre um homem(Marido) e uma mulher (Esposa): self.wife.sex = # female and self.husband.sex = # male Novembro de 2001

16 Exemplos OCL Uma pessoa não pode ser ao mesmo tempo Esposa e Marido:
not ((self.wife -> size = 1) and (self.husband -> size = 1)) Novembro de 2001

17 Exemplos OCL Navegação para uma Classe de Associações
O conjunto dos trabalhos de uma pessoa com as companhias que o emprega: Person self.job Novembro de 2001

18 Exemplos OCL Navegação de uma Classe de Associações Job self.employer
self.employee Novembro de 2001

19 Exemplos OCL Navegação através de Assiciações Qualificadas Bank
self.customer self.customer[ ] Novembro de 2001

20 Ex: Set{1,2,3,5,7,11,13,17} Exemplos OCL Conjuntos
Set, conjunto que não contêm elementos duplicados Ex: Set{1,2,3,5,7,11,13,17} Bag, semelhante a Set, porém pode conter elementos duplicados Ex: Bag{1,3,4,3,5} Sequence, semelhante a Bag, porém os elementos são ordenados Ex: Sequence{1,2,3,4,5,6,7,8,9,10} Sequence{1..10} Sequence{1..(6+4)} Novembro de 2001

21 Company : : hireEmployee(p : Person)
Exemplos OCL Pré e Pós Condições: Company : : hireEmployee(p : Person) pre: not employee -> includes(p) post: employee -> includes(p) and stockprice() = + 10 Novembro de 2001

22 Select , Reject e Collect
Exemplos OCL Select , Reject e Collect Select, retorna um conjunto para os quais o resultado da expressão seja verdadeiro: Company self.employee -> select (age > 50) Reject, retorna um conjunto para os quais o resultado da expressão seja falso: self.employee -> reject(isMarried) Novembro de 2001

23 self.employee -> collect (birthDate)
Exemplos OCL Collect Company self.employee -> collect (birthDate) self.employee.birthDate Novembro de 2001

24 Bibliografia [1] Reflections on the Object Constraint Language; Ali Hamie, et al; University of Brighton [2] Object Constraint Language Specification - Version 1.1; W3C Consortium; September 1997 [3] On the Expressive Power of the Object Constraint Language OCL; Luis Mandel, Maria Victoria Cengarle; München, Alemanha [4] Response to the UML 2.0 OCL ; RfP (ad/ ); OMG Document ad/ ; Submitters: Boldsoft, Rational Software Corporation, IONA, August 2001 Novembro de 2001


Carregar ppt "OCL Object Constraint Language"

Apresentações semelhantes


Anúncios Google