Conceptual Modeling CSC2507
Metamodeling
What is Metamodeling? Dimensions on Metamodeling Requirements on Metamodels The Information Resource Dictionary Standard (IRDS) Repositories
2004 John Mylopoulos Metamodeling -- 1
Conceptual Modeling CSC2507 What is Metamodeling?
I “MMetaeta” means literally “after” in Greek. I Meta-related themes have fascinated people throughout the centuries, e.g., [Hofstadter79] [Gaarder94] I In Computer Science, the term is used heavily and with several different meanings: In Databases, metadata means “data about data” and refer to data dictionaries, repositories, etc.; In Programming Languages, metainterpreter is an interpreter of a (program) interpreter [Smith84] In Conceptual Modeling, metamodel is a model of a data model, e.g., an E-R model of the relational model, or an ER model of the ER model.
2004 John Mylopoulos Metamodeling -- 2 Conceptual Modeling CSC2507 Metamodeling I Data is modelled by metadata (“schemas”, “classes”,…) which are parts of the metamodel; these units are instances of meta2data which are parts of a metametamodel, etc. I We’d like to have metamodels which are self-descriptive to an arbitrary level of self-description...... Metamodel Metadata Student(st#,name,dept,avg) models instanceOf Data Student(97032,”myrto”,CS,78)
2004 John Mylopoulos Metamodeling -- 3
Conceptual Modeling CSC2507
Another Dimension of Metamodeling
I The world is modelled by a story; the story is modelled by a metastory,…[Gaarter94]
Story Story About About refersTo The refersTo The World Story
Metamodel
2004 John Mylopoulos Metamodeling -- 4 Conceptual Modeling CSC2507
…and Another... I A program execution operates on data; a metaexecution operates on a program execution,….[Smith84]
ReflectiveProgram Execution(ProgramRep, bindings,instrIndex)
executesOn executesOn
Program Execution(ProgramRep, bindings,instrIndex)
executesOn executesOn
Data Student(97032,”myrto”,CS,78)
2004 John Mylopoulos Metamodeling -- 5
Conceptual Modeling CSC2507 Requirements on Metamodeling Notations I Should be capable of describing other conceptual models, e.g., the ER model, or SADT. I Support facilities for defining primitive concepts, such as entity, activity, goal within the metamodel. I Offer support for modeling multiple, possibly contradictory perspectives, e.g., Maria at different times, from different viewpoints; I Support variable granularity descriptions, as with geographic information; I Support a variety of referential relationships, such as defines, denotes, mentions, includes, etc.
2004 John Mylopoulos Metamodeling -- 6 Conceptual Modeling CSC2507 IRDS - Information Resource Dictionary Standard I Data dictionary standard, since 1988 (ANSI X3.138) I Technology-independent standard, akin to ER model. I Proposes 4 different levels of data: Bottom level -- application data, e.g., software code; Level 2 -- data dictionary for application data, e.g., identifiers for procedures, variables, data types, etc. Level 3 -- schema for the data dictionary, e.g., what is a procedure (in the programming language the code is written in), what is a variable,… Level 4 -- different types of IRDS schemas, e.g., programming language schemas vs requirements modeling ones. 2004 John Mylopoulos Metamodeling -- 7
Conceptual Modeling CSC2507
Level 4 IRD schema description layer
Level 3 IRD schema layer
Level 2 IRD data layer
Level 1 Application data layer
2004 John Mylopoulos Metamodeling -- 8 Conceptual Modeling CSC2507
Model isa ReqModel isa isa DesModel
ImplModel Telos Metametaclasses
version Smalltalk of levels CooL C++Class SADT 2-4 C++Object
C++Method C++ Metaclasses
GenBill implDesc HotellS [Constantopoulos94] HotellSImpl Simpleclasses 2004 John Mylopoulos Metamodeling -- 9
Conceptual Modeling CSC2507 Repositories
I A (data) repository stores and manages information about one or more data sources. I A repository system consists of a conceptual model (often akin to ER model), a model base (information/data/knowledge base, operations for doing retrievals, updates, check-in/check-out, etc. I There are many commercial repository products, Many are hard-coded meta-models (commodity tools) Most run on RDBMSs (Platinum, SAP, Oracle, MS, …) Some based on proprietary DBMS (Softlab, Viasoft) A few run on OODBs (IBM, Unisys)
2004 John Mylopoulos Metamodeling -- 10 Conceptual Modeling CSC2507
Repositories as Metadata Managers
DB1 DB2 File1 File2 2004 John Mylopoulos Metamodeling -- 11
Conceptual Modeling CSC2507 A Repository Product
Update Marketing cust Customer Authorize emp Credit Order dept Entry dno Order Product Blli dna Customer Scheduled Delivery
Schedule Delivery select all Salesperson Inventory
Forms Spec Information Model ERD Model-Driven Architecture
• Predefined types Tables Tools VB CodeCode VC++ CodeCode • Browser Repository Manager • Scripting language • Objects, properties • Data translators • Rich relationships • Model editoreditor • Extensibility • Model merge • Versioning Database System • Component mgrmgr • Configurations • Binding/renaming
Database [Bernstein99]
2004 John Mylopoulos Metamodeling -- 12 Conceptual Modeling CSC2507 References
I [Bernstein99] Bernstein, P., “Using Meta-Data to Conquer Database Complexity”, Colloquium presentation, University of Toronto, October 1999; http://www.research.microsoft.com/~philbe. I [Gaarder94] Gaarder, J., Sophie’s World, Farrar, Straus and Giroux Inc., 1994. I [Hofstadter79] Hofstadter, D., Godel, Escher, Bach: An Eternal Golden Braid, Vintage Books, 1979. I [Smith84] Smith, B. C., “Reflection and the Semantics of Lisp”, Proceedings of the Eleventh Annual Conference on Principles of Programming Languages (POPL), Salt Lake City, 23-35, 1984.
2004 John Mylopoulos Metamodeling -- 13