Upload
adriel
View
34
Download
0
Embed Size (px)
DESCRIPTION
Representação de Conhecimento Orientada a Objetos. Fabio Moura Jacques Robin CIn-UFPE. Roteiro. Linguagens orientadas a objetos Lembrete: conceitos da orientação a objetos Histórico Motivações para engenharia de software e representação do conhecimento Primeiros formalismos de RCOO - PowerPoint PPT Presentation
Citation preview
OntologiesReasoningComponentsAgentsSimulations
Representação de ConhecimentoRepresentação de ConhecimentoOrientada a ObjetosOrientada a Objetos
Fabio MouraJacques Robin
CIn-UFPE
RoteiroRoteiro
Linguagens orientadas a objetos Lembrete: conceitos da orientação a objetos Histórico Motivações para engenharia de software e representação do conhecimento
Primeiros formalismos de RCOO Redes semânticas Frames Comparação com a lógica dos predicados
UML Diagramas de classes Diagramas de atividades
Ontologias Definição, histórico e motivações Elementos de uma ontologia Tipologias das ontologias Problemática geral e questões sobre ontologias
OCL Motivação e histórico Expressões OCL Tipos básicos OCL Enumerações e coleções OCL para representação de conhecimento
Transformar diagramas de classes UML em ontologias Declarar conhecimento comportamental em diagramas de atividades UML
Lembrete: conceitos de linguagens Lembrete: conceitos de linguagens orientadas a objetosorientadas a objetos
Classes e Objetos Classe: fábrica + depósito de objetos Tipos Objeto = Interface + Implementação (Dados + Procedimentos) Interface
Especificação do conjunto de operações que o objeto pode realizar Dados
Representação do estado do objeto Procedimentos
Implementação de cada operação Objetos complexos Identidade de objetos
Um objeto possui existência independente de seus valores Objetos idênticos X objetos iguais
Encapsulamento A Interface é a única parte visível do objeto
Lembrete: conceitos de linguagens Lembrete: conceitos de linguagens orientadas a objetosorientadas a objetos
Herança Permite uma descrição concisa e precisa do mundo poderosa
ferramenta de modelagem Permite o compartilhamento de especificações e implementações
em uma aplicação Tipos de herança: substituição, inclusão, restrição e especialização Substituição
Baseada em comportamento e não em valores Um tipo t herda de um tipo t’ se podemos realizar mais operações em
objetos do tipo t do que em objetos do tipo t’ Qualquer objeto do tipo t’ pode ser substituído por um objeto do tipo t
Inclusão Baseada em estrutura e não em operações Corresponde à noção de classificação t é subtipo de t’ se todo objeto do tipo t é também um objeto do tipo t’ Ex: square com os métodos get e set(size) e filled-square com os
métodos get, set(size) e fill(color)
Lembrete: conceitos de linguagens Lembrete: conceitos de linguagens orientadas a objetosorientadas a objetos
Herança (cont.) Restrição
Subcaso de herança por inclusão Um tipo t é subtipo de t’ se ele consiste de todos os objetos do tipo t’
que satisfazem uma determinada condição Ex: teenager é uma subclasse de person – não possui nenhum atributo
adicional, mas sua idade está restrita entre 13 e 18 Especialização
Um tipo t é subtipo de t’ se objetos do tipo t são objetos do tipo t’ que contém mais informações específicas
Ex.: objetos do tipo person e employee
Polimorfismo e ligação tardia (late binding) Herança múltipla
SistemasDistribuídos
Histórico da orientação a objetosHistórico da orientação a objetosProgramação Representação
do ConhecimentoBanco
de Dados
Simula
Engenhariade Software
Sketchpad
Smalltalk
C++
Java
C#
UML1.0
OCL
UML2.0
RedesSemânticas
Frames
Lógicas Descritivas
Lógicas de Frames
Linguagens deWeb Semântica
MOF
OQL
SQL’99
1965
2005
hoje
hoje
última aula
hoje
hoje
eletivas
de IA
eletivas
de IA
Lembrete: motivações da orientação a Lembrete: motivações da orientação a objetos para engenharia de softwareobjetos para engenharia de software
Maior produtividade, qualidade, legibilidade e manutenibilidade no desenvolvimento de software Reuso de software e não reescrita
Mais natural Combina com a maneira como as pessoas pensam Fácil aprendizado
Notação única Fácil locomoção entre fases do software Linguagem unificada de modelagem (UML)
Design X programação Foco no modelo
Motivação inicial da orientação a objetos Motivação inicial da orientação a objetos para representação do conhecimentopara representação do conhecimento
Raciocinar a nível de categorias Herança como tarefa de raciocínio Representar conhecimento estrutural de maneira mais concisa
e intuitiva do que com lógica Mas fácil de se adquirir, compreender, manter, etc. Raciocínio de classificação e herança pode reutilizar provador de
teorema da lógica, no entanto de uma maneira transparente para o usuário
Benefícios comuns da orientação a objetos para a engenharia de software e representação do conhecimento
CategoriasCategorias
A organização de objetos em categorias é uma parte vital da representação de conhecimento Uma grande parte do raciocínio tem lugar no nível de categorias Servem para fazer prognósticos sobre objetos, uma vez que eles
são classificados Ex.: grande tamanho, casca verde e rajada e forma ovóide?
Servem para organizar e simplificar a base de conhecimento por herança Ex.: todas as instâncias da categoria Alimento são comestíveis,
Fruta é uma subclasse de Alimento, Maçãs é uma subclasse de Fruta, então toda maçã é comestível
Formam uma taxonomia ou hierarquia taxonômica
Características das CategoriasCaracterísticas das Categorias
Categorias disjuntas Não tem elementos em comum Ex.: Macho e Fêmea
Decomposição exaustiva Um elemento que não é membro de um conjunto, deve ser de outro Ex.: um animal que não é um macho tem de ser uma fêmea
Partição Decomposição exaustiva de disjuntos Contra-exemplo: nacionalidade (decomposição exaustiva de não disjuntos)
Composição física Um objeto faz parte de outro Ex.: Romênia faz parte da Europa, um Capítulo faz parte do Livro
Grupo Conjunto de objetos de uma mesma categoria
Características das CategoriasCaracterísticas das Categorias
Medidas Propriedades dos objetos Ex.: altura, massa, custo, ...
Material Categorias que não podem ser divididas em objetos distintos Ex.: manteiga, leite, ...
Propriedades intrínsecas São pertinentes à substância do objeto, e não ao objeto como um
todo Ex.: densidade, ponto de ebulição, sabor, cor, ...
Propriedades extrínsecas Pertinentes ao objeto Ex.: peso, comprimento, forma, função, ... Não são retidas depois da subdivisão
Redes SemânticasRedes Semânticas
Modelagem visual de conhecimento orientado a categorias Cada categoria e objeto representado por um nó da rede Cada relacionamento entre categorias representado por um link na
rede Relacionamentos hierárquicos especiais is-a (para herança) e
parte-de Algoritmos eficientes para derivação de propriedades de um
objeto, de acordo com sua pertinência a uma categoria Derivação por herança de valor de Derivação por consulta sobre caminho de links
Redes Semânticas – ExemploRedes Semânticas – Exemplo
Rede semântica com quatro objetos e quatro categorias
Asserção lógica n-ária Voar - Fly
Redes Semânticas – LimitaçõesRedes Semânticas – Limitações
Principais limitações1) Computacionalmente incompletos para implementar a maioria dos
sistemas inteligentes2) Sem semântica declarativa formal bem-definida (atalho entre nível do
conhecimento e nível da implementação sem lógica) Frames são sucessores das redes semânticas visando a superar a 1a
limitação Lógicas descritivas são sucessores das redes semânticas visando a
superar a 2a limitação Outras limitações
Busca em redes semânticas grandes pode ser muito ineficiente Não há homogeneidade na definição de nós e links Herança pode causar dificuldades no tratamento de exceções Pode haver conflito entre características herdadas É difícil representar conhecimento comportamental e procedimental –
sequenciamento e tempo não estão definidos Menos expressiva que a Lógica de Primeira Ordem – não há
quantificadores
Sintaxe abstrata das redes semânticasSintaxe abstrata das redes semânticasem UMLem UML
Node Link
SingleValue
Specification
MultipleValue
Specification
AttributeSpecification
*
<<enum>>Certainty
Level
KnownDefault
OOP/OOSE
Classes& Objects
OOP/OOSEattributes& other
associations
*
IS-A PART-OF
OOSEaggregation & composition associations
OOP/OOSEsubclass & instance
relationships
FramesFrames
Um frame é identificado por um nome e descreve um objeto complexo através de um conjunto de atributos
Um Sistema de Frames é um conjunto de frames organizados hierarquicamente
São uma evolução das Redes Semânticas nós são substituídos por frames arcos são substituídos por atributos (slots) Implementa raciocínio monotônico (ex, herança sem sobre-escrita)
e não monotônico (ex, herança com sobre-escrita) procedimentos podem ser anexados a um frame
Descrevem conhecimento ou algum procedimento relativo ao atributo
FramesFrames
Categorias (classes) e instâncias (objetos) representadas por Frames Um frame é composto de slots Um slot é composto de facetas Facetas podem ser:
Especificação de valor (conhecida ou por default) Restrição sobre valor (tipo, cardinalidade) Procedimentos (gatilhos a disparar quando slot é acessado, modificado ou
faltando para derivar algum fato durante o raciocínio) Frames organizados em hierarquia com herança múltipla de slots Semântica da herança é complexa (e na verdade sem definição
formal) devida a variedade de facetas e suas interações Raciocínio implementado por combinação de herança e de disparo de
gatilhos Frames usados tanto para:
Representação do conhecimento Implementação da máquina de inferência Implementação da interface de aquisição do conhecimento Implementação da interface de explicação do raciocínio
Frames sempre extensão de alguma linguagem hóspede de programação de propósito geral (Lisp, C++, Prolog, etc.)
Sintaxe abstrata de Frames em UMLSintaxe abstrata de Frames em UML
Frame Slot Facet
SingleValue
Specification
TypeConstraint
MultipleValue
Specification
CardinalityConstraint
ProceduralAttachment
InputParameter
ReturnValue
HostLanguageProcedure
* *
ConstraintValue
Specification
*
<<enum>>Certainty
Level
KnownDefault
Min: IntMax: Int
MissingReadWrite
<<enum>>Trigger
OOP/OOSE
Classes& Objects
OOP/OOSEAttributes
& Associations
No corresponding
concepts in OOP/OOSE
OOP/OOSEMethods
& Activities
OOSEConstrain
ts
IS-A
OOP/OOSEsubclass & instance
relationships
Frames: exemploFrames: exemplo
Frame: Course in KB University Slot: enrolls Type: Student Cardinality.Min: 2 Cardinality.Max: 30 Slot: taughtby Type: (UNION GradStudent Professor) Cardinality.Min: 1 Cardinality.Max: 1
Frame: Course in KB University Slot: enrolls Type: Student Cardinality.Min: 2 Cardinality.Max: 30 Slot: taughtby Type: (UNION GradStudent Professor) Cardinality.Min: 1 Cardinality.Max: 1
Frame: AdvCourse in KB University Is-a: Course Slot: enrolls Type: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20
Frame: AdvCourse in KB University Is-a: Course Slot: enrolls Type: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20
Frame: BasCourse in KB University Is-a: Course Slot: taughtby Type: Professor
Frame: BasCourse in KB University Is-a: Course Slot: taughtby Type: Professor
Frame: Professor in KB University Slot: degree Default: PhD.
Frame: Professor in KB University Slot: degree Default: PhD.
Frame: Student in KB UniversityFrame: Student in KB University
Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor
Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor
Frame: Undergrad in KB University Is-a: Student
Frame: Undergrad in KB University Is-a: Student
Frames: limitaçõesFrames: limitações
Conhecimento comportamental não declarativo impede codificação direita por especialista do domínio que não é programador
Sem semântica formal Implementação ad-hoc de dedução e adbução, geralmente
ineficientes Não existe máquina de inferência indutivas para aprendizagem Não inclui noções de encapsulamento e componentes das
linguagens de programação OO modernas
Comparação com a lógica dos Comparação com a lógica dos predicados: exemplospredicados: exemplos
Mary FemalePersons SisterOf (Mary, John) x x Persons [y HasMother (x, y) FemalePersons] x x Persons Legs (x, 2) p, s HasSister (p, s) SisterOf (s, p)
Comparação com a lógica dos Comparação com a lógica dos predicados: exemplospredicados: exemplos
Fly (Shankar, NewYork, NewDelhi, Yesterday)
UML como linguagem de UML como linguagem de representação do conhecimentorepresentação do conhecimento
Diagramas de classes: Aperfeiçoamento de redes semânticas
Diagramas de atividades Representação gráfica de procedimentos
Diagramas de classes + diagramas de atividades: Representação gráfica de poder expressivo equivalente a frames
Vantagens: Padrão universalmente divulgado com suportado por ferramentas CASE Convergência entre engenharia de software e do conhecimento
Limitações: Ainda não existe máquinas de inferência para raciocinar diretamente sobre
diagramas UML nem compilador de UML para linguagem executável Ainda não possui semântica formal bem definida Consequentemente:
Útil apenas a nível do conhecimento Precisa sem utilizado em conjunção com outras linguagens atuando aos níveis da
formalização e da implementação
Diagrama de ClassesDiagrama de Classes
É um diagrama que mostra um conjunto de classes, interfaces e relacionamentos.
Responsável por modelar a parte estática do sistema Uma classe é uma descrição de um conjunto de objetos que
compartilham os mesmos atributos, operações, relacionamentos e semântica
Interface é uma coleção de operações que são usadas para especificar um serviço de uma classe
Um relacionamento é uma conexão entre classes Pode conter notas, restrições e pacotes
DiagramDiagrama de a de
classe classe UML: UML:
exemploexemplo
Sintaxe de diagramas de classes UML Sintaxe de diagramas de classes UML representada em UML (metamodelagem) representada em UML (metamodelagem)
!!
Diagrama de AtividadeDiagrama de Atividade
Captura ações e seus resultados É similar a uma máquina de estados, mas com finalidade
diferente – capturar ações e resultados em termos de mudanças no estado dos objetos
O próximo estágio pode mudar automaticamente após o término da ação, sem requerer nenhum evento como em máquinas de estados
Descreve o fluxo do sistema Como as ações são executadas O que elas fazem – mudança dos estados do objeto Quando elas são realizadas – seqüência de ações Onde elas são executadas – partições de atividades
A implementação de uma operação pode ser descrita como um conjunto de ações relacionadas, posteriormente traduzidas em linhas de código
Pode ter ponto inicial e final
Diagrama de AtividadeDiagrama de Atividade
Partições de Atividade Agrupa ações, normalmente
com respeito à responsabilidade
Mostra explicitamente onde as ações são executadas (em qual objeto)
Ou mostra qual parte do trabalho está sendo realizado
Objetos Podem ser vistos em
diagramas de atividades Representam tanto uma
entrada como uma saída de uma ação, ou simplesmente mostra que o objeto é afetado pela ação
Diagrama de AtividadeDiagrama de Atividade
Sinais Podem ser enviados
ou recebidos em diagramas de atividades
Diagrama de AtividadeDiagrama de Atividade
Pin (alfinete) A semântica de inicialização da atividade pode ser formalizada
através do uso de pins Mostra valores que uma atividade aceita (pré-requisitos) e valores
que ela produz
Diagrama de Diagrama de atividade UML: atividade UML:
exemploexemplo
Sintaxe de diagramas de atividades UML Sintaxe de diagramas de atividades UML representada em UML (metamodelagem) representada em UML (metamodelagem)
!!
UML x Redes Semântica: ExemploUML x Redes Semântica: Exemplo
Rede semântica Diagrama de classe correspondente
UML x Redes Semântica: ExemploUML x Redes Semântica: Exemplo
Rede semântica Diagrama de classe correspondente
UML x Frames: ExemploUML x Frames: Exemplo
Frame: Course in KB University Slot: enrolls Type: Student Cardinality.Min: 2 Cardinality.Max: 30 Slot: taughtby Type: (UNION GradStudent Professor) Cardinality.Min: 1 Cardinality.Max: 1
Frame: Course in KB University Slot: enrolls Type: Student Cardinality.Min: 2 Cardinality.Max: 30 Slot: taughtby Type: (UNION GradStudent Professor) Cardinality.Min: 1 Cardinality.Max: 1
Frame: AdvCourse in KB University Is-a: Course Slot: enrolls Type: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20
Frame: AdvCourse in KB University Is-a: Course Slot: enrolls Type: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20
Frame: BasCourse in KB University Is-a: Course Slot: taughtby Type: Professor
Frame: BasCourse in KB University Is-a: Course Slot: taughtby Type: Professor
Frame: Professor in KB University Slot: degree Default: PhD.
Frame: Professor in KB University Slot: degree Default: PhD.
Frame: Student in KB UniversityFrame: Student in KB University
Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor
Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor
Frame: Undergrad in KB University Is-a: Student
Frame: Undergrad in KB University Is-a: Student
UML – Unified Modeling LanguageUML – Unified Modeling Language
Vantagens da UML como linguagem para representação de conhecimento Padrão – notação e ferramentas de edição Links bem definidos – composição, agregação, herança, ... Trabalha a nível de conhecimento Gráfico – bom pra modelar
O que é uma ontologia?O que é uma ontologia?
Definição: especificação (semi-)formal explícita formal explícita de uma concepção compartilhadaconcepção compartilhada Concepção: Concepção: modelo das entidades, relações, axiomas e regras de
algum domínio Formal:Formal:
processável por máquina permitindo raciocínio automático com semântica lógica formal
Compartilhada:Compartilhada: por uma comunidade, permitindo entendimento
Conceitos de computação relacionados: Base de conhecimento reutilizável Esquema de banco de dados
Elementos de uma ontologiaElementos de uma ontologia
Hierarquia de conceitos: entidades
cada entidade definida por conjunto de pares atributo-valor correspondem:
as classes dos modelos orientado a objetos as entidades do modelo relacional aos termos do modelo lógico
atributos propriedades x atributos relações preenchidos por valores atômicas (tipos primitivos) x por outros conceitos
Status epistemológico do valor Exatamente conhecida, default, probabilista
relações sem hierarquia x em hierarquia paralela a hierarquia de entidades correspondem:
associações, agregações e atributos dos modelos OO cujos valores são objetos as relações do modelo relacional aos predicados do modelo lógico
Elementos de uma ontologiaElementos de uma ontologia
Restrições: sobre valores possíveis dos atributos dos conceitos correspondem:
as assinaturas de classes em modelos OO as axiomas universalmente quantificados em modelos lógicos as restrições de integridade nos esquema de BD
Regras dedutivas: sobre atributos de (conjunto de) conceitos permitem inferência automática da existência de instâncias de
conceitos a partir da existência de outras instâncias correspondem:
as regras dos sistemas especialistas e programação em lógica aos métodos dos modelos OO as visões em BD
Elementos de uma ontologiaElementos de uma ontologia
Instâncias de conceitos: definição de entidade e relações específicos (indivíduos) correspondem:
aos fatos de sistemas especialistas e programação em lógica aos objetos dos modelos OO aos dados dos BD
Serviços suportados por uma ontologiaServiços suportados por uma ontologia
Consultas e manipulação: correspondem:
métodos de acesso a valor e de reflexão em linguagens OO consultas de interrogação e manipulação em BD ask, tell e retract das bases de conhecimento
sobre conceitos: Quais são as entidades E relacionadas a entidade 0 via relações r1, r2? Quais são as relações R mais gerais que r1? Definição d de entidade E é consistente com o resto da ontologia?
sobre instâncias um indivíduo I com propriedades P1, ..., Pn é instância de quais conceitos?
Raciocínio automático geralmente dedutivo
Origem e motivação para ontologiasOrigem e motivação para ontologias
Gerenciamentodo Conhecimentoem Organizações
desde 90
Integraçãode Dadosdesde 95
SistemasMulti-agentes
desde 95
Recuperaçãode Informação
na Webdesde 00
PsicologiaCognitivadesde 60
Lingüísticadesde 60
SistemasEspecialistas
desde 80
Processamentode Linguagem
Naturaldesde 80
OntologiasFilosofia
desde 350 A.C.
Engenhariade Software:
requisitos e reusodesde 90
Tipologia das ontologiasTipologia das ontologias
Especialista:Especialista: modela um domínio particular restrito Geral:Geral:
modela o conhecimento de senso comum compartilhado por todos os seres humanos
parte de mais alto nível, reutilizável em vários domínios Conceitual:Conceitual: fundamentada na capacidade de raciocinar Lingüística:Lingüística: fundamenta no vocabulário de uma(s) língua(s) De meta-dados:De meta-dados: “especializada” na descrição de recursos on-
line, no entanto sobre qualquer domínio De tarefas e métodos:De tarefas e métodos: modela procedimentos e
comportamentos abstratos no lugar de entidades ou relações
Anything
AbstractObjectsEvents
Sets Numbers RepresentationalObjects
Categories
Sentences Measurements
Intervals PlacesPhysicalObjects Processes
MomentsThings Stuff
Animals Agents
Humans
Solid Liquid Gas
Sub-problemas de modelagem de uma Sub-problemas de modelagem de uma ontologia geralontologia geral
Categorias e conjuntos Medidas Objetos compostos Tempo Espaço Mudanças Eventos e processos Objetos físicos Substâncias Objetos mentais e crenças
Problemática geral e questões Problemática geral e questões sobre ontologiassobre ontologias
Divisão: como delimito as classes e os atributos? quais são as distinções que trazem valor agregado?
Escopo: qual conhecimento incluir? qual a fronteira do meu domínio?
Granularidade: até que nível de detalhe modelar os domínio? problema da ramificação?
Validação: como avalio a qualidade do modelo? como escolho entre várias modelagem alternativas (as vezes
propostas por pessoas diferentes)?] como identificar aspectos importantes que estão faltando?
Problemática geral e questões Problemática geral e questões sobre ontologiassobre ontologias
Muito difícil responder a essas perguntas porque: Almejados reuso e relativa independência de aplicação impedem
ser guiado completamente pelos requisitos de uma aplicação restrita
Para ontologias gerais de senso comum pior devido a imensidão em largura e profundidade do conhecimento a modelar
Metodologias ainda incipientes Methontology: Sensus: http://www.isi.edu/natural-language/resources/sensus.html
No entanto, já existe tentativa de padronização: http://suo.ieee.org/http://www.fipa.org/
Object Constraint Language (OCL)Object Constraint Language (OCL)
OCL 1.0: Formalização de relacionamento e restrições complexas entre
elementos de diagrama de classes Diagrama de classes anotado com restrições OCL é uma ontologia Integra lógica dos predicados com algorítmica em uma notação
intuitiva derivada das linguagens de programação orientada a objetos
Linguagem declarativa de pura especificação de restrições, não de execução das mesmas Especifica os invariantes, pré-condições e pós-condições de uma
operação, i.e., o queo que ela deve fazer Não executa nem especifica comocomo executar tal operação
OCL 2.0: Substitui linguagem natural para rotular elementos de todos os
diagramas UML (não apenas o de classe) Poder expressivo estendido Permite fazer ligação explícita entre vários diagramas Primeiro passo para usar UML ao nível da formalização
Anotações OCL Anotações OCL para diagrama de classes: exemplospara diagrama de classes: exemplos
Anotações OCL Anotações OCL para diagrama de classes: exemplospara diagrama de classes: exemplos
Expressões OCL podem referenciar: Classificadores UML: Classes, Interfaces, Associações e Tipos Atributos, Operações, Papéis
Sintaxe: classificador.propriedade OCL permite a navegação através do diagrama de classes
Sintaxe:classe.papel.propriedade ouclasse.tipo_de_objeto_associado.propriedade
Exemplos: LoyaltyProgram.participants.name Customer.programs.enroll(c) LoyaltyProgram.participants.cards
+participants
CustomerCardvalid : BooleanvalidFrom : DategoodThru : Datecolor : Color/ printedName : String
Customername : Stringtitle : StringisMale : BooleandateOfBirth : Date/ age : Integer
age() : Integer
LoyaltyProgramname : String
enroll(c : Customer)getServices() : Set(Services)
+cards 0..*
+owner
0..*
0..*
+programs
0..* 0..*0..*
Anotações OCL Anotações OCL para diagrama de classes: exemplospara diagrama de classes: exemplos
Invariantes: A expressão deve ser verdadeira para
todas as instâncias no contexto Exemplos:
context Customerinv ofAge: age >= 18
context LoyaltyPrograminv minServices:
partiners.deliveredServices->size() >= 1
LoyaltyProgramname : String
enroll(c : Customer)getServices() : Set(Services)
1..*
1..*
ProgramPartnernumberOfCustomers : Integer = 0name : String
Servicecondition : BooleanpointsEarned : IntegerpointsBurned : Integerdescription : StringserviceNr : Integer
0..*+deliveredServices
+partner
0..*
11
+partners
+programs1..*
1..*
Anotações OCL Anotações OCL para diagrama de classes: exemplospara diagrama de classes: exemplos
Pré-condição: Deve ser verdadeira quando a operação inicia a sua execução
Pós-condição: Deve ser verdadeira quando a operação termina a sua execução
context LoyaltyProgram::enroll(c:Customer)
pre: not (participants->includes(c))
post: participants = participants@pre->including(c)
LoyaltyProgramname : String
enroll(c : Customer)getServices() : Set(Services)
Customername : Stringtitle : StringisMale : BooleandateOfBirth : Date/ age : Integer
age() : Integer
0..*
+participants
0..*0..*0..*
+programs
Anotações OCL Anotações OCL para diagrama de classes: exemplospara diagrama de classes: exemplos
Regra de derivação: Expressão cujo contexto é um atributo
ou papel
context LoyaltyAccount::totalPointsEarned : Integer
derive:
transactions->
select(oclIsTypeOf(Earning))
.points->sum()
0..*
1
+transactions
+account 1
0..*
Transactionpoints : Integerdate : Dateamount : Real
program() : LoyaltyProgram
EarningBurning
LoyaltyAccountpoints : Integernumber : Integer/ totalPointsEarned : Integer
earn(in i : Integer)burn(in i : Integer)isEmpty() : Boolean
Valores iniciais: Para atributos ou papéis
context LoyaltyAccount::points
init: 0
Anotações OCL Anotações OCL para diagrama de atividades: exemplopara diagrama de atividades: exemplo
Sintaxe abstrata de OCL em UML Sintaxe abstrata de OCL em UML (com restrições OCL – (com restrições OCL –
metamodelagem !)metamodelagem !)
Conclusão:Conclusão:Quadro ComparativoQuadro Comparativo
RedesSemânticas
Frames UML + OCL Lógica de Predicados
Origem IA IA ES IA
Máquina de Inferência para raciocínio automático
Sim Sim Não Sim
Semântica formal bem definida, completa e declarativa
Não Não Não Sim
Representa Conhecimento Estrutural
Estrut. Declar.Comport. Procedu-ralmente
Estrut. Declar.Comport.
Procedu-ralmenteEstrut. Declar.
Sintaxe visual intuitiva Sim Não Sim Não