Incremental Software Generation via Metamodel Dependency Tracking
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Reliability
If entire application is regenerated when changes occur, then application consistency is ensured, but resource consumption and generation time increase significantly
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.
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.
2Reliability
If entire application is regenerated when changes occur, then application consistency is ensured, but resource consumption increases significantly
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.
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.
3Productivity
If dependency tracking is implemented to enable incremental generation, then generation time is reduced, but system complexity increases
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.
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.
4Productivity
If incremental generation is implemented, then resource usage and generation time are reduced, but detection precision of changes is required
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.
Data Source
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.


