Incremental Software Generation via Metamodel Dependency Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In network environments, existing methods for developing applications are inefficient as they require regenerating the entire application when changes occur, leading to resource-intensive processes and slower generation times.

Innovation Solution

The implementation of incremental generation methods, which identify and re-generate only the changed main development objects and their related objects based on aggregation and association relationships, utilizing a metamodel to determine dependencies and store metadata for declarative programming, allowing for faster and more resource-efficient code generation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If entire application is regenerated when changes occur, then application consistency is ensured, but resource consumption and generation time increase significantly

Engineering Contradiction:
Improveapplication consistencyVSAvoidgeneration time
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The application is segmented into main development objects (MDOs) and non-MDOs, with MDOs being the units that trigger regeneration. Only MDOs and their dependencies are regenerated when changes occur, rather than the entire application. This segmentation enables incremental regeneration while maintaining consistency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of regenerating the entire application (excessive action), the system performs partial regeneration by identifying and regenerating only the specific MDOs that have changed or whose dependencies have changed. This partial action reduces resource consumption while ensuring necessary updates are made.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If entire application is regenerated when changes occur, then application consistency is ensured, but resource consumption increases significantly

Engineering Contradiction:
Improveapplication consistencyVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The application is segmented into main development objects (MDOs) and non-MDOs, with MDOs being the units that trigger regeneration. Only MDOs and their dependencies are regenerated when changes occur, rather than the entire application. This segmentation enables incremental regeneration while maintaining consistency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of regenerating the entire application (excessive action), the system performs partial regeneration by identifying and regenerating only the specific MDOs that have changed or whose dependencies have changed. This partial action reduces resource consumption while ensuring necessary updates are made.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If dependency tracking is implemented to enable incremental generation, then generation time is reduced, but system complexity increases

Engineering Contradiction:
Improvegeneration timeVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A metamodel is introduced as an intermediary layer between the application components and the regeneration process. The metamodel defines the relationships and dependencies between MDOs and non-MDOs, enabling the system to automatically track dependencies without complex custom logic. This intermediary simplifies the overall system architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The metamodel serves multiple functions: it defines the structure of development objects, establishes dependency relationships, guides the regeneration process, and enables incremental updates. This multi-functionality reduces the need for separate complex mechanisms, thereby reducing overall system complexity.

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

4Productivity

If incremental generation is implemented, then resource usage and generation time are reduced, but detection precision of changes is required

Engineering Contradiction:
Improvegeneration timeVSAvoidchange detection precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system implements feedback mechanisms to detect changes in MDOs and non-MDOs. When changes are detected, the system uses this feedback to determine which MDOs need regeneration and updates the dependency tracking accordingly. This feedback loop ensures accurate change detection while enabling efficient incremental regeneration.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7434200B2Using incremental generation to develop software applications
Publication Date: 2008.10.07 SAP SE
  • US7434200B2 patent drawing
  • US7434200B2 patent drawing
  • US7434200B2 patent drawing

AI summary

There are methods and apparatus, including computer program products, for using incremental generation to develop an application. The incremental generation includes identifying a first main development object. Main development objects related to the first main development objects by an aggregation relationship are identified. Main development objects related to the first main development object by an association relationship are also identified. A determination is made as to whether any identified main development objects have changed. If any identified main development objects have changed, the first main development object is re-generated.