IP Library Granted Patent US 9,021,418
Granted Patent B2
US 9,021,418 · App. 12/974,440 · Granted Apr 28, 2015

Systems and/or methods for creation of metamodels

Inventor: Christian Seel (Saarbrucken, DE)
Assignee: Software AG
G06F8/10G06F8/30G06F8/36G06F8/33
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,021,418
App. No.
12/974,440
Granted
Apr 28, 2015
Kind
B2
Abstract

Certain example embodiments described herein relate to systems and/or methods for systems and/or methods for improved creation of metamodels. More particularly, certain example embodiments described herein relate to automating the creation of metamodels from one or more example models. In certain example embodiments, nodes, edges, and multiplicities of at least one model are automatically identified. A preliminary metamodel is created by adding a metaclass for each automatically identified node and edge. A connection is made between each said added metaclass edge to at least two said added metaclass nodes via first and second associations. Detection of multiple relations is performed by determining whether any of said added metaclass edges are connected to more than two added metaclass nodes. The preliminary metamodel is refined or optimized, e.g., so as to reduce the occurrence of multiple relations.

Claims (49)

1. A method of creating a metamodel for use with a processing system including at least one processor, the method comprising:

automatically parsing nodes, edges, and multiplicities of at least one example model;

creating a preliminary metamodel by (a) adding to the preliminary metamodel a corresponding metaclass node for each said node in the at least one model and a corresponding metaclass edge for each said edge in the at least one model, and (b) connecting each said added metaclass edge to at least two said added metaclass nodes via first and second associations, the first and second associations having opposite directions and having respective multiplicities associated therewith;

detecting whether multiple relationships exist by determining whether any of said added metaclass edges are connected to more than two added metaclass nodes; and

refining the preliminary metamodel when it is determined that at least one multiple relationship exists so as to create a refined metamodel, but otherwise treating the preliminary metamodel as the refined metamodel, wherein refining the preliminary metamodel includes reducing a number of metaclass edges and/or metaclass nodes in the preliminary metamodel by:

inserting an abstract class into the preliminary metamodel for each said detected multiple relationship,

causing the added metaclass nodes associated with each said multiple relationship to become inherited from a correspondingly inserted abstract class,

deleting the first and second associations between the inherited metaclass nodes and the metaclass edges of the multiple relationships, and

inserting a first abstract class association and a second abstract class association between the metaclass edge of the multiple relationship and the correspondingly inserted abstract class.

2. The method of claim 1 , further comprising:

inserting at least one container element into the preliminary metamodel; and

grouping into the at least one container element at least two of said added metaclass nodes and/or edges, the at least one container element having a multiplicity associated therewith.

3. The method of claim 1 , wherein the first abstract class association and the second abstract class association are reciprocal associations to and from the abstract class and the metaclass edge associated and are created at each said detected multiple relationship.

4. The method of claim 1 , wherein the refining of the preliminary metamodel is performed in connection with an object constraint language (OCL).

5. The method of claim 1 , wherein each said added metaclass node and edge has an associated attribute type.

6. The method of claim 1 , further comprising outputting the refined metamodel to a display and/or a non-transitory computer readable storage location.

7. The method of claim 1 , further comprising creating the at least one model through a generic modeling language.

8. The method of claim 1 , wherein the at least one model is received.

9. The method of claim 1 , wherein nodes, edges, and multiplicities are automatically parsed from a plurality of example models.

10. The method of claim 9 , wherein a single refined metamodel is automatically generated indirectly from the plurality of example models, each said example model being modeled in a generic modeling language.

11. The method of claim 1 , wherein the refining of the preliminary metamodel further comprises inserting the abstract class into the preliminary metamodel between one of the metaclass nodes associated with the multiple relationship and at least two other metaclass nodes associated with the multiple relationship.

12. A metamodel creation system, comprising:

an adapter configured to receive user input;

a display; and

at least one processor configured to:

automatically parse nodes, edges, and multiplicities of at least one example model;

create a preliminary metamodel by (a) adding to the preliminary metamodel a corresponding metaclass node for each said node in the at least one model and a corresponding metaclass edge for each said edge in the at least one model, and (b) connecting each said added metaclass edge to at least two said added metaclass nodes via first and second associations, the first and second associations having opposite directions and having respective multiplicities associated therewith;

detect whether multiple relationships exist by determining whether any of said added metaclass edges are connected to more than two added metaclass nodes; and

refine the preliminary metamodel when at least one multiple relationship exists so as to create a refined metamodel, but otherwise treating the preliminary metamodel as the refined metamodel, wherein refining the preliminary metamodel includes reducing a number of metaclass edges and/or metaclass nodes in the preliminary metamodel by:

inserting an abstract class into the preliminary metamodel for each said detected multiple relationship,

causing the added metaclass nodes associated with each said multiple relationship to become inherited from a correspondingly inserted abstract class,

deleting the first and second associations between the inherited metaclass nodes and the metaclass edges of the multiple relationships, and

inserting a first abstract class association and a second abstract class association between the metaclass edge of the multiple relationship and the correspondingly inserted abstract class.

13. The system of claim 12 , wherein the processor is further configured to:

insert at least one container element into the preliminary metamodel; and

group into the at least one container element at least two of said added metaclass nodes and/or edges, the at least one container element having a multiplicity associated therewith.

14. The system of claim 12 , wherein the first abstract class association and the second abstract class association are reciprocal associations to and from the abstract class and the metaclass edge associated and the processor is configured to create the first and second abstract class associations at each said detected multiple relationship.

15. The system of claim 12 wherein the processor is further configured to create the at least one model through a generic modeling language.

16. The system of claim 12 , wherein nodes, edges, and multiplicities are automatically parsed by the processor from a plurality of example models.

17. The system of claim 12 , wherein the processor is further configured to insert the abstract class into the preliminary metamodel between one of the metaclass nodes associated with the multiple relationship and at least two other metaclass nodes associated with the multiple relationship.

18. A non-transitory computer readable storage medium tangibly storing instructions that, when processed by at least one processor, cause the processor to perform functionality comprising:

automatically parsing nodes, edges, and multiplicities of at least one example model;

creating a preliminary metamodel by (a) adding to the preliminary metamodel a corresponding metaclass node for each said node in the at least one model and a corresponding metaclass edge for each said edge in the at least one model, and (b) connecting each said added metaclass edge to at least two said added metaclass nodes via first and second associations, the first and second associations having opposite directions and having respective multiplicities associated therewith;

detecting whether multiple relationships exist by determining whether any of said added metaclass edges are connected to more than two added metaclass nodes; and

refining the preliminary metamodel when it is determined that at least one multiple relationship exists so as to create a refined metamodel, but otherwise treating the preliminary metamodel as the refined metamodel, wherein refining the preliminary metamodel includes reducing a number of metaclass edges and/or metaclass nodes in the preliminary metamodel by:

inserting an abstract class into the preliminary metamodel for each said detected multiple relationship,

causing the added metaclass nodes associated with each said multiple relationship to become inherited from a correspondingly inserted abstract class,

deleting the first and second associations between the inherited metaclass nodes and the metaclass edges of the multiple relationships, and

inserting a first abstract class association and a second abstract class association between the metaclass edge of the multiple relationship and the correspondingly inserted abstract class.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2025
From: SOFTWARE GMBH
To: SAG ARIS GMBH
Reel/Frame 072867/0138 →
CHANGE OF NAME Recorded Dec 17, 2024
From: MOSEL BIDCO AG
To: SOFTWARE GMBH
Reel/Frame 069715/0415 →
MERGER Recorded Dec 17, 2024
From: SOFTWARE AG
To: MOSEL BIDCO AG
Reel/Frame 070095/0634 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2010
From: SEEL, CHRISTIAN
To: SOFTWARE AG
Reel/Frame 025539/0051 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2010
From: SEEL, CHRISTIAN
To: SOFTWARE AG
Reel/Frame 025541/0541 →
Continuity (1)
Related Publication 20120159426A1 · Jun 21, 2012