SlideShare uma empresa Scribd logo
1 de 22
DEPARTAMENTO DE MATEMÁTICA E ENGENHARIAS
                 UNIVERSIDADE DA MADEIRA




METASKETCH OCL INTERPRETER
DISSERTAÇÃO DE MESTRADO




 João Marcos Duarte Matos

 Orientado por:
 Professor Doutor Leonel Domingos Telo Nóbrega



                                                            1
ESTRUTURA DA APRESENTAÇÃO

 Contexto
 Descrição do problema

 Contribuição

 Demonstração

 Conclusão




                            2
CONTEXTO
              conforms

            M3 : BNF
                 …
                 <syntax> ::= <rule> | <rule> <syntax>
                 <rule> ::= ‘<’ <rulename> ‘>’ ‘::=’ <expression>
 conforms        <expression> ::= <list> | <list> ‘|’ <expression>
                 …



            M2 : Grammar
                 …
                 <IfStmt> ::= If ‘(’ <Expression> ‘)’ <Stmt>
 conforms                  | If ‘(’ <Expression> ‘)’ <Stmt> ‘else’ <Stmt>
                 …


            M1 : Program
                 …
                 If(x == 10) d = 1 else d = 0;
                 …




                                                                            3
conforms

           M3 : MOF
                                                                Property                         PrimitiveType
                 Package                 Class
conforms
                                                                Operation                       Parameter




           M2 : Metamodel

                  Beahaviored Classifier                                DirectRelationship


                   Actor         UseCase
                                                           Include                               Extend
conforms                                *
                                                                                                     *


                                 Classifier                                   UseCase




           M1 : Model
                                                                       «include»               Customer
                                                    withdraw                                 identification


               Customer: Actor                     withdraw: UseCase                          CI: UseCase

                                                                            : Include
                                   : Association


                                                                                                                 4
O PAPEL DO METAMODELO



                      describes
   UML Metamodel                      UML Language


                                            language


            conform                         element


                                  “Hospital System”




                                                       5
CONFRONTAR O MODELO COM O METAMODELO
M3                MOF Metamodel      OCL Grammar
              describes                    describes

           MOF Language                        OCL Language

              language                     language

M2                             Metamodel
                  element                  element


                       Structure      Semantic
                        (MOF)           (OCL)


M1     conforms        conforms             conforms

                                   Model
RESUMINDO

   Metamodelação
     MOF   + OCL

       MOF
            Sintaxe, estrutura
       OCL
            Semântica




                                  7
DESCRIÇÃO DO PROBLEMA
   MetaSketch Editor
     Metamodelação usando o MOF para definir os
      aspectos sintácticos
     Não suporta a descrição semântica

   MetaSketch OCL interpreter
       Interpretação do OCL
   MetaSketch Editor + MetaSketch OCL interpreter
       Metamodelação completa:
          Aspectos sintácticos/estruturais são descritos usando MOF
          Aspectos semânticos são descritos usando OCL



                                                                       8
DESCRIÇÃO DO PROBLEMA


                   Metamodel              Model

                           OCL Standard
         OCL Grammar         Library



                                                  Conforms
   OCL       MetaSketch OCL Interpreter           to Model




                                                             9
CONTRIBUTO

 Criação de uma gramática LALR equivalente
 Criação da “OCL Standard Library”

 Criação de um módulo para o MetaSketch

 Identificação de alguns problemas na
  especificação do OCL
 Identificação de alguns problemas na
  especificação do MOF (OCL)


                                              10
GRAMÁTICA LALR
   Adaptação da gramática publicada na
    especificação do OCL para uma gramática
    LALR
     Desambiguação   da sintaxe
     Correcção de algumas inconsistências

 Descrita em BNF, sintaxe aceite pelo GOLD
  Parser System
 Publicada no sitio oficial da ferramenta
  MetaSketch

                                              11
“OCL STANDARD LIBRARY”

 Desenvolvida em C#
 Aproveita os tipos já existentes em C#
     List,   bool, double e int
 O código fonte irá ser disponibilizado
 Implementa:
     Operações sobre os tipos primitivos
     Colecções e suas operações




                                            12
“OCL STANDARD LIBRARY” COLLECTIONS




                                     13
“OCL STANDARD LIBRARY” PREMITIVE TYPES




                                         14
MÓDULO PARA O METASKETCH “METASKETCH OCL INTERPRETER”

 Desenvolvido em C#
 Compatível com MOF

 Código fonte irá ser disponibilizado

 Implementa:
     Parser

     Abstract
             Syntax Model Builder
     Code Generator




                                                        15
“WHERE THE MAGIC HAPPENS”



                                                            OCL Standard
      OCL Grammar                      Metamodel              Library             Model



                    concreat syntax   Abstract syntax abstract syntax    Model
        Parser           tree         model builder       model         checker       Conforms
OCL                                                                                   to Model
                            MetaSketch OCL Interpreter




                                                                                                 16
PARSER

           OCL                             concrete syntax tree




                             OCL Grammar
context NamedElement
inv:
     namespace->isEmpty()
   Implies
                              Parser
     visibility->isEmpty()




                                                          …       …

                                                                  17
ABSTRACT SYNTAX MODEL BUILDER
  concrete syntax                      abstract syntax
       tree                                model




                         Metamodel


                          Abstract
                        syntax model
                           builder




               …    …



                                                         18
MODEL CHECKER

 abstract syntax model                                        conforms to model

                         OCL Standard
                           Library                                           FuncImplies




                                             aSource                                                   aSource


                                    Model       FuncIsImpty                                    FuncIsImpty



                                             aSource                                        aSource



                                              FuncPropertyCall                               FuncPropertyCall



                               Model         aSource             aProperty                  aSource              aProperty

                              checker         FuncVariableExp                CProperty       FuncVariableExp                 CProperty




                                            aVariable                                      aVariable



                                                  FuncSelf                                       FuncSelf




                                                                                                                               19
IDENTIFICAÇÃO DE ALGUNS PROBLEMAS NA
ESPECIFICAÇÃO DO MOF (OCL)

   Erros sintácticos nas restrições
     Faltade parênteses,
     Não colocação do “endif”
     Um caso de má utilização do if

 Restrições apenas a “True”
 Utilização de métodos inexistentes ou com
  nomes diferentes
     oclIsType
     oclIsTypeOf


                                              20
DEMONSTRAÇÃO




               21
CONCLUSÃO

 Verifica se o Modelo respeita ou não as regras
  da linguagem utilizada
 Permite uma utilização completa dos
  Metamodelos
 Verificação da especificação do MOF (OCL)

 Melhor especificação do MOF leva a um melhor
  suporte ao MDD


                                               22

Mais conteúdo relacionado

Semelhante a Metamodelação completa com MOF e OCL

Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...André Constantino da Silva
 
Report - Lex and YACC
Report -  Lex and YACCReport -  Lex and YACC
Report - Lex and YACCMichel Alves
 
Mda Apresentacao
Mda ApresentacaoMda Apresentacao
Mda Apresentacaoguestff06a
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Edson Oliveira Junior
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverEduardo Jorge
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
Uma_interface_em_linguagem_natural_para
Uma_interface_em_linguagem_natural_paraUma_interface_em_linguagem_natural_para
Uma_interface_em_linguagem_natural_paraVinícios Pereira
 

Semelhante a Metamodelação completa com MOF e OCL (15)

EscmaScript
EscmaScriptEscmaScript
EscmaScript
 
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
Desenvolvimento de Sistemas Interativos - Integração das Visões de Engenharia...
 
Report - Lex and YACC
Report -  Lex and YACCReport -  Lex and YACC
Report - Lex and YACC
 
es6
es6es6
es6
 
Es6
Es6Es6
Es6
 
Mda Apresentacao
Mda ApresentacaoMda Apresentacao
Mda Apresentacao
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
 
Artigo c#
Artigo c#Artigo c#
Artigo c#
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
Introducao ao .Net
Introducao ao .NetIntroducao ao .Net
Introducao ao .Net
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserver
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
 
TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#
 
Uma_interface_em_linguagem_natural_para
Uma_interface_em_linguagem_natural_paraUma_interface_em_linguagem_natural_para
Uma_interface_em_linguagem_natural_para
 

Metamodelação completa com MOF e OCL

  • 1. DEPARTAMENTO DE MATEMÁTICA E ENGENHARIAS UNIVERSIDADE DA MADEIRA METASKETCH OCL INTERPRETER DISSERTAÇÃO DE MESTRADO João Marcos Duarte Matos Orientado por: Professor Doutor Leonel Domingos Telo Nóbrega 1
  • 2. ESTRUTURA DA APRESENTAÇÃO  Contexto  Descrição do problema  Contribuição  Demonstração  Conclusão 2
  • 3. CONTEXTO conforms M3 : BNF … <syntax> ::= <rule> | <rule> <syntax> <rule> ::= ‘<’ <rulename> ‘>’ ‘::=’ <expression> conforms <expression> ::= <list> | <list> ‘|’ <expression> … M2 : Grammar … <IfStmt> ::= If ‘(’ <Expression> ‘)’ <Stmt> conforms | If ‘(’ <Expression> ‘)’ <Stmt> ‘else’ <Stmt> … M1 : Program … If(x == 10) d = 1 else d = 0; … 3
  • 4. conforms M3 : MOF Property PrimitiveType Package Class conforms Operation Parameter M2 : Metamodel Beahaviored Classifier DirectRelationship Actor UseCase Include Extend conforms * * Classifier UseCase M1 : Model «include» Customer withdraw identification Customer: Actor withdraw: UseCase CI: UseCase : Include : Association 4
  • 5. O PAPEL DO METAMODELO describes UML Metamodel UML Language language conform element “Hospital System” 5
  • 6. CONFRONTAR O MODELO COM O METAMODELO M3 MOF Metamodel OCL Grammar describes describes MOF Language OCL Language language language M2 Metamodel element element Structure Semantic (MOF) (OCL) M1 conforms conforms conforms Model
  • 7. RESUMINDO  Metamodelação  MOF + OCL  MOF  Sintaxe, estrutura  OCL  Semântica 7
  • 8. DESCRIÇÃO DO PROBLEMA  MetaSketch Editor  Metamodelação usando o MOF para definir os aspectos sintácticos  Não suporta a descrição semântica  MetaSketch OCL interpreter  Interpretação do OCL  MetaSketch Editor + MetaSketch OCL interpreter  Metamodelação completa:  Aspectos sintácticos/estruturais são descritos usando MOF  Aspectos semânticos são descritos usando OCL 8
  • 9. DESCRIÇÃO DO PROBLEMA Metamodel Model OCL Standard OCL Grammar Library Conforms OCL MetaSketch OCL Interpreter to Model 9
  • 10. CONTRIBUTO  Criação de uma gramática LALR equivalente  Criação da “OCL Standard Library”  Criação de um módulo para o MetaSketch  Identificação de alguns problemas na especificação do OCL  Identificação de alguns problemas na especificação do MOF (OCL) 10
  • 11. GRAMÁTICA LALR  Adaptação da gramática publicada na especificação do OCL para uma gramática LALR  Desambiguação da sintaxe  Correcção de algumas inconsistências  Descrita em BNF, sintaxe aceite pelo GOLD Parser System  Publicada no sitio oficial da ferramenta MetaSketch 11
  • 12. “OCL STANDARD LIBRARY”  Desenvolvida em C#  Aproveita os tipos já existentes em C#  List, bool, double e int  O código fonte irá ser disponibilizado  Implementa:  Operações sobre os tipos primitivos  Colecções e suas operações 12
  • 13. “OCL STANDARD LIBRARY” COLLECTIONS 13
  • 14. “OCL STANDARD LIBRARY” PREMITIVE TYPES 14
  • 15. MÓDULO PARA O METASKETCH “METASKETCH OCL INTERPRETER”  Desenvolvido em C#  Compatível com MOF  Código fonte irá ser disponibilizado  Implementa:  Parser  Abstract Syntax Model Builder  Code Generator 15
  • 16. “WHERE THE MAGIC HAPPENS” OCL Standard OCL Grammar Metamodel Library Model concreat syntax Abstract syntax abstract syntax Model Parser tree model builder model checker Conforms OCL to Model MetaSketch OCL Interpreter 16
  • 17. PARSER OCL concrete syntax tree OCL Grammar context NamedElement inv: namespace->isEmpty() Implies Parser visibility->isEmpty() … … 17
  • 18. ABSTRACT SYNTAX MODEL BUILDER concrete syntax abstract syntax tree model Metamodel Abstract syntax model builder … … 18
  • 19. MODEL CHECKER abstract syntax model conforms to model OCL Standard Library FuncImplies aSource aSource Model FuncIsImpty FuncIsImpty aSource aSource FuncPropertyCall FuncPropertyCall Model aSource aProperty aSource aProperty checker FuncVariableExp CProperty FuncVariableExp CProperty aVariable aVariable FuncSelf FuncSelf 19
  • 20. IDENTIFICAÇÃO DE ALGUNS PROBLEMAS NA ESPECIFICAÇÃO DO MOF (OCL)  Erros sintácticos nas restrições  Faltade parênteses,  Não colocação do “endif”  Um caso de má utilização do if  Restrições apenas a “True”  Utilização de métodos inexistentes ou com nomes diferentes  oclIsType  oclIsTypeOf 20
  • 22. CONCLUSÃO  Verifica se o Modelo respeita ou não as regras da linguagem utilizada  Permite uma utilização completa dos Metamodelos  Verificação da especificação do MOF (OCL)  Melhor especificação do MOF leva a um melhor suporte ao MDD 22