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 20011 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 20012 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 20013 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 20014 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 20015 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 20016 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 20017 OCL - Object Constraint Language História: 1996 - 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 20018 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 20019 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 200110 OCL - Object Constraint Language

11 Novembro de 200111 Modelo UML

12 Novembro de 200112 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 200113 Exemplos OCL Associações Quanto ao número de empregadores de determinada pessoa: Person self.employer -> size self.employer -> isEmpty

14 Novembro de 200114 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 200115 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 200116 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 200117 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 200118 Exemplos OCL Navegação de uma Classe de Associações Job self.employer self.employee

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

20 Novembro de 200120 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 200121 Exemplos OCL Pré e Pós Condições: Company : : hireEmployee(p : Person) pre: not employee -> includes(p) post: employee -> includes(p) and stockprice() = stockprice@pre() + 10stockprice@pre(

22 Novembro de 200122 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 200123 Exemplos OCL Collect Company self.employee -> collect (birthDate) Company self.employee.birthDate

24 Novembro de 200124 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/2000-09-03); OMG Document ad/2001-08-01; 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