In-place merge of imported model using low memory overhead
Publication Date: 2015-Sep-06
The IP.com Prior Art Database
Method for importing and merging large models into a modeling tool using low memory overhead
Page 01 of 2
--place merge of imported model using low memory overhead
place merge of imported model using low memory overhead
Disclosed is a method for importing and merging large models into a modeling tool using low memory overhead.
Modeling tools, such as UML (Unified Modeling Language) modeling tools, represent their
data using models.
During the development and maintenance of models, a common scenario is that a model, or part of a model, is being updated.
An update could be, for example, introducing new model elements, modifying or removing existing model elements, and adding, modifying or removing interrelations among model elements.
An update is actually another model, which needs to be merged into an already existing model. An update might be imported into the tool from an external source, e.g., an XML file, database, API (Application Programming Interface) calls, etc.
An external source is considered to be any data source which resides outside of the tool memory space.
Importing and merging of large models might be too slow and/or consuming too much memory.
When importing a large model into a modeling tool, peak memory may be too high since in order to merge, both the original/existing model and the updated/imported model are required to be resident in memory.
Except for the 2 models, additional memory is required for the merger data, which might be proportional to the merged models.
This slows the update/import operation and might also lead to memory exhaustion which may fail the update/import operation.
Advantage of this disclosure
The disclosed method is merging the updated/imported model into the original/existing model with a much smaller memory overhead, allowing the import to succeed.
- The merge is in-place - no duplicated model elements are created.
Either existing/original elements are matched against updated/imported, or new elements are created.
- The merge is done in "peeking mode" - only a single updated/imported element is being processed at a time.
When an updated/imported element is being processed, the algorithm is making sure that all required model elements are already processed, e.g., for UML model element, its container, its typing element, its base-class, etc.
- The merge data is minimal - only data required for the current model hierarchy is kept, and it is discarded when processing a different model hierarchy
The proposed advantage is that importing and merging is done with a much smal...