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

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

Novembro de 20011 OCL Object Constraint Language PUC-PR - Mestrado em Informática Aplicada Disciplina de Orientação a Objetos Prof. Dr. Alcides Calsavara.

Apresentações semelhantes


Apresentação em tema: "Novembro de 20011 OCL Object Constraint Language PUC-PR - Mestrado em Informática Aplicada Disciplina de Orientação a Objetos Prof. Dr. Alcides Calsavara."— Transcrição da apresentação:

1 Novembro de 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

2 Novembro de 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. OCL - Object Constraint Language

3 Novembro de 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 OCL - Object Constraint Language

4 Novembro de 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.

5 Novembro de 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

6 Novembro de 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

7 Novembro de 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

8 Novembro de 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()

9 Novembro de 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. OCL - Object Constraint Language

10 Novembro de OCL - Object Constraint Language

11 Novembro de Modelo UML

12 Novembro de 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

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

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

15 Novembro de 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 andself.husband.sex = # male

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

17 Novembro de 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

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

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

20 Novembro de 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)}

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

22 Novembro de 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: Company self.employee -> reject(isMarried)

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

24 Novembro de 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


Carregar ppt "Novembro de 20011 OCL Object Constraint Language PUC-PR - Mestrado em Informática Aplicada Disciplina de Orientação a Objetos Prof. Dr. Alcides Calsavara."

Apresentações semelhantes


Anúncios Google