Dynamic Model-Based Software Code Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In model-driven software development, existing approaches require frequent updates, rebuilding, and redeployment of source code with each change, leading to high developer involvement and system downtime, while direct interpretation of models compromises performance.

Innovation Solution

The system generates compiled application code from modeled workflow processes, allowing dynamic testing in an interpretive environment before deployment, enabling changes to be incorporated and tested before production, using a modeling environment, test environment, and code generation environment with templates and metamodels.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Power

If code generation and compilation steps are used, then performance is improved, but developer involvement and system downtime increase

Engineering Contradiction:
ImproveperformanceVSAvoidsystem downtime
Core Design Contradiction:
PowerVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing code generation and compilation in advance during development environments, so that when changes are made to models, pre-generated code can be quickly swapped or updated without requiring full recompilation. This allows the system to maintain high performance while reducing the time penalty associated with code regeneration, as the heavy compilation work has already been done beforehand.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If direct interpretation of models is used, then flexibility is improved, but performance deteriorates

Engineering Contradiction:
ImproveflexibilityVSAvoidperformance
Core Design Contradiction:
Adaptability or versatilityVSPower

Solution Approach 1:

The patent introduces an intermediary layer of generated code that acts as a bridge between the flexible model definitions and the performance requirements of compiled execution. Models can be freely modified and interpreted during development for flexibility, then transformed into optimized compiled code through code generation, achieving both adaptability and high performance in different phases of the software lifecycle.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If frequent updates and rebuilding are performed, then adaptability is improved, but productivity deteriorates

Engineering Contradiction:
ImproveadaptabilityVSAvoidproductivity
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the software development process into distinct phases: model definition, code generation, compilation, and deployment. By separating these stages and allowing independent manipulation of models and generated code, the system enables frequent adaptive changes to models without requiring complete rebuilding of the entire system, thus maintaining adaptability while preserving productivity through selective regeneration of only affected code portions.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8949772B1Dynamic model based software application development
Publication Date: 2015.02.03 AMAZON TECH INC
  • US8949772B1 patent drawing
  • US8949772B1 patent drawing
  • US8949772B1 patent drawing

AI summary

A system and method of dynamically generating software is provided. Applications are created in a set of workflow models which are tested in an interpretive test environment. The models are stored in a versioning repository and code generation templates created for the models. Source code is generated and compiled for the application. Modifications to the models are tested and incorporated into a modified version of the application after subsequent testing of the model and the modified, compiled application. The modified version of the application is returned to the test environment where it becomes the basis for testing future modifications.