Model Partitioning for Incremental Compilation and IP Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Complex dynamic systems models require efficient methods to manage complexity, particularly in partitioning and recompiling, to facilitate collaborative engineering and protect intellectual property.
Innovation Solution
The method involves partitioning objects in modeling environments by referencing child objects within a parent object, allowing separate loading of interface and content information, encapsulating child objects for independent behavior, and providing incremental recompilation and code generation to minimize the impact of changes on the parent object.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If models are partitioned into separate modules to facilitate collaborative engineering and protect intellectual property, then ease of operation and intellectual property protection are improved, but device complexity increases due to multiple interface definitions and separate loading mechanisms
Solution Approach 1:
The model is divided into a parent object and multiple child objects, where each child object represents an independent module that can be developed, stored, and managed separately. This segmentation enables collaborative engineering by allowing different engineers to work on different child objects simultaneously while maintaining clear boundaries through interface definitions.
Solution Approach 2:
Interface definitions serve as intermediaries between parent and child objects, providing standardized communication protocols and data exchange mechanisms. This intermediary layer simplifies collaboration by establishing clear contracts between modules without requiring engineers to understand internal implementations of other modules.
2Productivity
If interface information and content information are loaded separately to improve loading efficiency, then productivity is improved, but device complexity increases due to separate loading and compilation processes
Solution Approach 1:
Interface information is loaded and processed in advance before the actual model content is loaded. This preliminary action allows the system to prepare data structures, validate interface compatibility, and establish connection mappings before the heavier content loading occurs, thereby improving overall loading efficiency.
Solution Approach 2:
The loading process is segmented into distinct phases: interface information loading, content information loading, and compilation. This segmentation allows each phase to be optimized independently and enables parallel processing where applicable, improving productivity without requiring a complete redesign of the loading mechanism.
3Loss of time
If incremental recompilation is implemented to minimize the impact of changes on the parent object, then loss of time is reduced, but device complexity increases due to change tracking and selective recompilation mechanisms
Solution Approach 1:
The recompilation process is made dynamic by tracking which child objects have changed and selectively recompiling only those specific modules along with the parent object. This dynamic approach contrasts with traditional full recompilation by adapting the recompilation scope based on actual changes, thereby reducing time loss without requiring complete system recompilation.
Solution Approach 2:
Change tracking mechanisms provide feedback about which child objects have been modified, enabling the system to make informed decisions about recompilation scope. This feedback loop allows incremental recompilation by identifying only the necessary components to recompile based on change propagation analysis.
4Loss of information
If child objects are encapsulated to protect intellectual property and maintain independent behavior, then intellectual property protection is improved, but ease of operation worsens due to limited visibility and access to implementation details
Solution Approach 1:
Implementation details of child objects are extracted and hidden from the parent object and other modules, exposing only standardized interfaces. This extraction protects intellectual property by removing sensitive implementation information while maintaining functional capabilities through well-defined interface contracts that allow operation without accessing protected details.
Data Source
AI summary
Methods and systems for partitioning objects in modeling environments are disclosed. The modeling environments enable users to partition an object (parent object) to include other objects (child objects). The parent object may reference the child objects (referenced objects). The child objects may be subsystems in the hierarchy of the parent object or modules (or units) in the partitioning of the parent object. The child objects may be encapsulated so that changes in the parent object do not affect the child objects. The partition of the parent object may allow users to load and compile the parent object incrementally. The partition of the parent object may also allow users to generate code for the parent object incrementally.


