Open Model Driven Architecture View Templates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing code generators are inflexible in expressing business models and generating software content, often requiring rigid modeling languages like UML, which limits their ability to capture complex business problems and fails to represent expert knowledge effectively.

Innovation Solution

A process for creating view templates using an open model-driven architecture that analyzes application examples, categorizes content artifacts, identifies dynamic content, and generates abstract descriptions to produce flexible and reusable code generation patterns, allowing for the capture of expert solutions in a variety of programming languages and formats.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a rigid modeling language like UML is used for code generation, then code generation can be accomplished by recognizing structural components, but many business problems cannot be expressed in UML compliant models, eliminating the ability to use generators

Engineering Contradiction:
Improvecode generation capabilityVSAvoidexpression of business models
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal modeling language that can express both traditional structured business problems (compatible with existing code generators) and complex domain-specific problems (like healthcare workflows). The modeling language is designed to be multi-functional, serving as both a high-level business process description tool and a detailed implementation specification, thereby resolving the contradiction between code generation capability and business model expressiveness.

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

Solution Approach 2:

The patent introduces configurable parameters and metadata in the modeling language that allow the same model structure to be used for different types of code generation tasks. By changing parameters such as target programming language, code generation depth, and domain-specific constraints, the system can adapt to various business problems without requiring completely different modeling approaches, thus maintaining both code generation effectiveness and business model versatility.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If fixed output generators are used, then code generation is simplified, but the developer has no control over the form or format of the outputs generated

Engineering Contradiction:
Improvecode generation processVSAvoidcontrol over output format
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic output generation where the form and format of generated code are not fixed but can be adjusted based on model annotations, profile definitions, and generator configuration. The system dynamically adapts output formats to match project requirements, allowing developers to control whether generated code follows strict templates or allows customization, thereby resolving the contradiction between operational simplicity and output format control.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces an intermediary layer between the model and the code generator in the form of profiles and stereotypes. These intermediaries allow developers to define custom output formats and conventions without modifying the core generation engine. The profiles act as a mediator that translates standard model elements into domain-specific code formats, providing control over output while maintaining the simplicity of the generation process.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If expert knowledge is not captured in patterns, then code generation can be simpler, but generated code cannot represent the best of breed solutions to business problems

Engineering Contradiction:
Improvecode generation efficiencyVSAvoidquality of generated solutions
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements preliminary action by pre-defining expert knowledge in the form of profiles, stereotypes, and model patterns that encode best practices for specific domains (e.g., healthcare, finance). These pre-configured elements capture expert solutions in advance, allowing the code generator to automatically apply proven patterns without requiring real-time expert intervention, thus improving both the quality of generated solutions and generation efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by allowing developers to replicate and reuse proven expert solutions across multiple projects through the pattern library. Once a business problem solution is captured in a pattern, it can be copied and adapted to similar problems, ensuring consistent application of best practices while reducing the need to recreate solutions manually. This maintains high solution quality while improving productivity through reuse.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8024703B2Building an open model driven architecture pattern based on exemplars
Publication Date: 2011.09.20 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8024703B2 patent drawing
  • US8024703B2 patent drawing
  • US8024703B2 patent drawing

AI summary

View templates for use in generating application content are created by analyzing and categorizing existing application examples to derive reusable abstractions of application artifacts. Example application artifacts or source modules are categorized by role and function. Based on the categorized artifacts, a generalized, abstract view for the role and function is defined. View templates are created for each abstract view and contain static content and dynamic content that varies for each instance of the template. The view templates are stored in a template library for use in a model driven application generator.