Visual Code Annotation for Model-Driven Development
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Non-object-oriented programming languages, such as COBOL, lack effective mechanisms to indicate which code snippets should be preserved during model retransformation in model-driven development, leading to potential loss of updated code.
Innovation Solution
A method that analyzes program code to determine the execution sequence and groups statements into functional blocks, creating a visual representation to allow users to annotate and preserve specific code snippets, ensuring these snippets are retained during subsequent model transformations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If model transformation is used to generate program code, then development efficiency and flexibility are improved, but code updates cannot be preserved during retransformation
Solution Approach 1:
The patent applies preliminary action by annotating code snippets with preservation markers before model retransformation occurs. The system identifies and marks important code segments in advance, ensuring they are preserved during subsequent transformations. This prevents code update loss while maintaining the benefits of model-driven development.
Solution Approach 2:
The patent introduces an intermediary mechanism - a visual representation layer with annotation capabilities - that sits between the model and the code. This intermediary allows users to designate which code snippets should be preserved, acting as a mediator that bridges model transformation and code preservation requirements.
2Reliability
If annotations are used to preserve code in object-oriented languages, then code preservation is achieved, but non-object-oriented languages lack this capability
Solution Approach 1:
The patent achieves universality by creating a language-agnostic annotation system that works with both object-oriented and non-object-oriented programming languages. The visual representation and annotation mechanism is designed to be versatile, supporting multiple programming paradigms and languages, thereby enabling code preservation across different language types.
Solution Approach 2:
The patent transitions from direct code-level annotations to a visual representation dimension. Instead of annotating code directly, the system creates a visual model that represents the code structure, allowing annotations to be applied in this intermediate visual dimension. This dimensional shift enables broader language compatibility while maintaining preservation reliability.
3Reliability
If code is annotated for preservation, then code snippets are retained, but user convenience and accuracy in designating snippets are reduced
Solution Approach 1:
The patent introduces a visual representation as an intermediary between the user and the code. This visual layer provides an intuitive interface for users to identify and annotate code snippets that need preservation. The visual representation makes it easier for users to understand code structure and accurately designate important snippets, improving both ease of operation and preservation accuracy.
Solution Approach 2:
The patent moves the annotation process to a visual dimension rather than requiring direct code manipulation. Users interact with a visual representation of the code structure, which provides contextual information and makes snippet identification more intuitive. This dimensional change enhances user convenience while maintaining reliable code preservation.
Data Source
AI summary
Embodiments of the present invention disclose a method for providing a technical solution for model driven development. Program code is analyzed to determine the execution sequence of states of the program code. The program code is generated by performing a first transformation to a model. The model includes an abstract description of a business implemented by the program code. At least part of the statement of the program code is grouped into functional blocks. A visual representation of the program code is created. The visual representation is based on the execution sequence and the functional blocks. A code snipped is determined to be preserved in the program code based on a user's annotation of the visual representation. The code snippety is to be preserved in new program code generated by performing a second transformation to the model. The second transformation is executed after the first transformation.


