Model Partitioning for Incremental Compilation and IP Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecollaborative engineeringVSAvoidmodel structure
Core Design Contradiction:
Ease of operationVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveloading efficiencyVSAvoidloading process
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improverecompilation timeVSAvoidrecompilation process
Core Design Contradiction:
Loss of timeVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improveintellectual property protectionVSAvoidaccess to implementation details
Core Design Contradiction:
Loss of informationVSEase of operation

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8150673B1Partitioning a model in modeling environments
Publication Date: 2012.04.03 MATHWORKS INC
  • US8150673B1 patent drawing
  • US8150673B1 patent drawing
  • US8150673B1 patent drawing

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.