Flexible Code Generation Framework Using Common Interface

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Declarative programming platforms face challenges in simplifying software application development, as developers need to write code in specific languages, limiting flexibility and reuse across different development environments and generation technologies.

Innovation Solution

A flexible generation framework that provides a common interface for various generator cores and technologies, allowing integration of different generator cores, development environments, and generation technologies, enabling the generation of software code through a unified process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a declarative programming platform is used to simplify application development, then developers can declare application structure and appearance without writing code, but the platform is limited to specific programming languages and development environments

Engineering Contradiction:
Improveease of application developmentVSAvoidadaptability to different development environments
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The generation framework is designed as a universal platform that can invoke multiple different generator cores (e.g., Web Dynpro generator, ABAP generator, Java generator) through a common interface. This allows the same framework to serve multiple programming languages and development environments, resolving the contradiction between ease of operation and adaptability to different environments.

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

Solution Approach 2:

The framework introduces an intermediary layer between the declarative platform and various generation technologies. This intermediary (the framework itself) translates declarative declarations into calls to appropriate generator cores, enabling the platform to work with multiple languages without requiring developers to write code in each language directly.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If code generation is performed using specific generator cores for different systems, then code can be generated for target environments, but integration between different generator cores and development environments becomes complex

Engineering Contradiction:
Improvecode generation capabilityVSAvoidcomplexity of generator integration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the code generation functionality into separate, independent generator cores (Web Dynpro generator, ABAP generator, Java generator, etc.), each responsible for a specific target environment. The framework manages these segments through a standardized interface, reducing integration complexity while maintaining productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The framework provides a universal interface that can invoke any generator core, making the system flexible and easy to extend. This universality simplifies integration by providing a common abstraction layer over diverse generation technologies.

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

3Adaptability or versatility

If multiple generation technologies are supported within the framework, then flexibility and reuse are improved, but the framework structure becomes more complex

Engineering Contradiction:
Improveflexibility of code generationVSAvoidcomplexity of framework structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The framework uses a universal interface design that can accommodate multiple generation technologies (VELOCITY templates, XSLT transformations, Java classes, etc.) through a common invocation mechanism. This approach improves flexibility while managing complexity through standardization.

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

Solution Approach 2:

The framework creates a standardized interface specification that can be copied and reused for different generator cores. This interface template allows new generation technologies to be integrated without redesigning the entire framework, maintaining flexibility while reducing structural complexity.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7650590B2Flexible code generation
Publication Date: 2010.01.19 SAP SE
  • US7650590B2 patent drawing
  • US7650590B2 patent drawing
  • US7650590B2 patent drawing

AI summary

There are methods and apparatus, including computer program products, for a flexible generation framework. The generation framework encapsulates a variety of different code generation technologies within a common interface. This allows various types of generator cores operating in various development environments to be integrated into the framework, and enables the generation of code using various generating technologies.