Visual Code Annotation for Model-Driven Development

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidcode update loss
Core Design Contradiction:
ProductivityVSLoss of information

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvecode preservationVSAvoidlanguage compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

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

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Reliability

If code is annotated for preservation, then code snippets are retained, but user convenience and accuracy in designating snippets are reduced

Engineering Contradiction:
Improvecode snippet preservationVSAvoiduser convenience
Core Design Contradiction:
ReliabilityVSEase of operation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9645799B2Method and system for model driven development
Publication Date: 2017.05.09 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9645799B2 patent drawing
  • US9645799B2 patent drawing
  • US9645799B2 patent drawing

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.