Automatic Versioning of User-Defined Data Types

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for managing user-defined data types face challenges in automatic versioning and mutation, particularly when dealing with complex changes such as reordering data fields, modifying inheritance, and ensuring compatibility across different versions of classes, which can lead to errors and increased complexity.

Innovation Solution

A system and method for automatic versioning and data mutation that includes functionality in a development environment for generating mutation functions based on user input and executing these functions automatically during data storage and loading, utilizing a graphical programming language like LabVIEW, to ensure seamless conversion between different versions of user-defined data types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual mutation support is provided by the programmer for each class, then compatibility between different versions can be maintained, but the process becomes tedious and error-prone

Engineering Contradiction:
Improvecompatibility maintenanceVSAvoidmanual mutation process
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system automatically generates mutation functions by analyzing the differences between class definitions, eliminating the need for manual programming of mutation support. The development environment autonomously creates the necessary conversion code based on the actual changes made to the class structure.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The manual mechanical process of writing mutation functions is replaced by an automated system that uses computational analysis to generate the same functions. The system substitutes human programming effort with algorithmic generation based on class definition comparisons.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Adaptability or versatility

If mutation functions are manually written for each class version, then data conversion can be achieved, but the complexity and errors increase

Engineering Contradiction:
Improvedata conversion capabilityVSAvoidmutation function complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The mutation function generation process is segmented into distinct analytical steps: comparing class definitions, identifying field changes, determining data type conversions, and synthesizing mutation code. This segmentation makes the complex task manageable and systematic.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system automatically adjusts parameters such as data types, field names, and structures based on the actual changes detected between class versions. This dynamic parameter adaptation allows the system to handle diverse conversion scenarios without manual intervention.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the programmer provides mutation support for all possible class modifications, then version compatibility is ensured, but the time required increases significantly

Engineering Contradiction:
Improveversion compatibilityVSAvoidtime for mutation support
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of class definition changes and automatically generates the necessary mutation functions before the actual data conversion needs to occur. This advance preparation eliminates the need for time-consuming manual coding during version transitions.

Inventive Principle:
Principle #10Preliminary action

4Ease of operation

If automatic mutation generation is implemented, then the tedious manual process is eliminated, but the system complexity increases

Engineering Contradiction:
Improveautomation of mutation processVSAvoiddevelopment environment complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The development environment is enhanced with a universal class definition comparison mechanism that can handle multiple types of changes (field additions, removals, type changes, reordering) through a single integrated system. This multi-functional approach consolidates complexity into one robust mechanism rather than multiple separate tools.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7730450B2Automatic versioning and data mutation of user-defined data types
Publication Date: 2010.06.01 NATIONAL INSTRUMENTS CORP
  • US7730450B2 patent drawing
  • US7730450B2 patent drawing
  • US7730450B2 patent drawing

AI summary

System and method for automatic versioning and data mutation for user-defined data types. A program development environment may be operable to: create a first version of a data type definition in response to user input; instantiate and store an object of the first version of the data type, optionally including a version identifier indicating the version of the object; modify the first version of the data type definition in response to user input, thereby creating a second version of the data type definition; load the object from storage; and automatically (without user intervention) modify the object to conform to the second version of the data type definition. Successive modifications of the data type definition may generate successive versions of the data type. Objects instantiated and stored according to a previous version of the data type may be loaded from storage and automatically modified to conform to a specified subsequent version.