{"title":"Metamodeling in OO: OOPSLA'95 workshop summary","authors":"H. Mili, F. Pachet, I. Benyahia, F. Eddy","doi":"10.1145/260094.260257","DOIUrl":null,"url":null,"abstract":"The purpose of this workshop was to explore metamodeling concepts in the context of object-oriented software development, from a methodolog-ical perspective, namely: 1) Exploring the additional modeling constructs that are needed to model information at several levels of abstraction, 2) Exploring changes to modeling procedures/heuristics that are needed to build object meta-models and integrating them with object models, 3) Exploring the effects of such changes on design and implementation (e.g. reflective languages, metaprogramming, etc). As is usual (and healthy) in such events, the papers we received did not fit in exactly with the advertised agenda, with its heavy emphasis on methodological (analysis and design) aspects, and the proposed agenda was as much the result of what the organizers wanted discussed as it was a result of what \"par-ticipants\" were willing to discuss! That result is shown next. We first attempt to define metamodel-ing in the context of object-oriented software engineering, identifying major issues. Next, we discuss each one of those issues in some detail. Object-oriented structural modeling uses classes to represent the structure of similar application objects, and associations to represent patterns of connections between application objects. Applications where the representation of objects needs to be queried or otherwise manipulated need to explicitly represent the representation of objects [Diaz,1994]; we call the representation of the representation of application objects metamodeling. The need for metamodels is more frequent than one might first think. In relational database modeling, meta-data consists of table descriptors, which are system tables (system dictionary) describing the data tables (their columns, domains for the columns, etc) and integrity constraints, which, by and large, are semi-declarative constructs to be executed during database updates. [1] A typical computer-assisted manufacturing application needs two levels of abstraction: 1) one level to represent bills of material, e.g., describing the compositions of different manufactured products, 2) a second level to describe actual manufactured products in stock. Bills of material are representations of manufactured products. However, to the extent that they can be created, consulted, and modified, they too need to be represented by a construct that describes their structure; these are called metaclasses. When not a part of the problem (e.g. a bill of materials and inventory application), metamodeling is part of the solution: metamodeling is an abstraction mechanism in the sense that, much like classification, it enables us to differentiate identity-dependent behavior from state-dependent behavior, hence making some sense of the variations in …","PeriodicalId":286350,"journal":{"name":"Addendum to the proceedings of the 10th annual conference on Object-oriented programming systems, languages, and applications","volume":"89 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1995-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Addendum to the proceedings of the 10th annual conference on Object-oriented programming systems, languages, and applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/260094.260257","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5
Abstract
The purpose of this workshop was to explore metamodeling concepts in the context of object-oriented software development, from a methodolog-ical perspective, namely: 1) Exploring the additional modeling constructs that are needed to model information at several levels of abstraction, 2) Exploring changes to modeling procedures/heuristics that are needed to build object meta-models and integrating them with object models, 3) Exploring the effects of such changes on design and implementation (e.g. reflective languages, metaprogramming, etc). As is usual (and healthy) in such events, the papers we received did not fit in exactly with the advertised agenda, with its heavy emphasis on methodological (analysis and design) aspects, and the proposed agenda was as much the result of what the organizers wanted discussed as it was a result of what "par-ticipants" were willing to discuss! That result is shown next. We first attempt to define metamodel-ing in the context of object-oriented software engineering, identifying major issues. Next, we discuss each one of those issues in some detail. Object-oriented structural modeling uses classes to represent the structure of similar application objects, and associations to represent patterns of connections between application objects. Applications where the representation of objects needs to be queried or otherwise manipulated need to explicitly represent the representation of objects [Diaz,1994]; we call the representation of the representation of application objects metamodeling. The need for metamodels is more frequent than one might first think. In relational database modeling, meta-data consists of table descriptors, which are system tables (system dictionary) describing the data tables (their columns, domains for the columns, etc) and integrity constraints, which, by and large, are semi-declarative constructs to be executed during database updates. [1] A typical computer-assisted manufacturing application needs two levels of abstraction: 1) one level to represent bills of material, e.g., describing the compositions of different manufactured products, 2) a second level to describe actual manufactured products in stock. Bills of material are representations of manufactured products. However, to the extent that they can be created, consulted, and modified, they too need to be represented by a construct that describes their structure; these are called metaclasses. When not a part of the problem (e.g. a bill of materials and inventory application), metamodeling is part of the solution: metamodeling is an abstraction mechanism in the sense that, much like classification, it enables us to differentiate identity-dependent behavior from state-dependent behavior, hence making some sense of the variations in …