Automated Code Generation from Abstract Database Models

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The software development process is hindered by a shortage of skilled developers, inefficiencies in manual coding, and the challenges of maintaining and upgrading legacy software applications, which impedes digital transformation efforts and increases costs.

Innovation Solution

A system that automatically generates code, APIs, and related documentation from an abstract model, allowing for the creation of enterprise-grade solutions with reduced developer effort and improved quality control, enabling continuous modification and deployment while separating extended code from generated code to prevent overwrites.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If automated code generation from abstract model is implemented, then developer time and productivity are improved, but code complexity and system architecture complexity increase

Engineering Contradiction:
Improvedeveloper timeVSAvoidsystem architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

An abstract model serves as an intermediary layer between requirements and generated code. The system consumes the abstract model to generate code, APIs, and documentation, while developers can modify the abstract model without manually editing generated code. This intermediary approach automates the development process while maintaining manageable complexity through the model layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the development process into distinct components: abstract model definition, code generation, API generation, and documentation generation. Extended code is separated from generated code through a defined interface, allowing independent modification and regeneration without affecting the entire system. This segmentation reduces overall system complexity by organizing functions into discrete units.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If continuous modification and deployment is enabled, then adaptability and responsiveness are improved, but code stability and reliability may deteriorate

Engineering Contradiction:
Improvecontinuous modification capabilityVSAvoidcode stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary validation and structure definition through the abstract model before code generation. The abstract model establishes the foundational architecture and constraints that guide subsequent code generation and modifications. This preliminary structuring ensures that even as code is continuously modified, it remains within defined boundaries that maintain stability and reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system provides feedback mechanisms through the abstract model that allow developers to review and validate changes before they are implemented in generated code. The separation between abstract model and generated code creates a feedback loop where modifications can be tested and verified against the model's constraints, ensuring reliability while enabling adaptability.

Inventive Principle:
Principle #23Feedback

3Ease of repair

If extended code is separated from generated code, then maintainability and control are improved, but device complexity and management overhead increase

Engineering Contradiction:
ImprovemaintainabilityVSAvoidcode structure complexity
Core Design Contradiction:
Ease of repairVSDevice complexity

Solution Approach 1:

The system extracts extended code from the generated code through a clearly defined interface in the abstract model. Developers can identify and separate custom business logic from automatically generated code, allowing independent maintenance and modification of each component. This extraction improves maintainability by preventing confusion between generated and custom code while managing complexity through the interface definition.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11693652B2Automated authoring of software solutions from a data model
Publication Date: 2023.07.04 BYGGR INC
  • US11693652B2 patent drawing
  • US11693652B2 patent drawing
  • US11693652B2 patent drawing

AI summary

Automatically generating code and related artifacts such as application programming interfaces (APIs) and related documentation from an abstract model of a database. The abstract model is derived from a physical model which may be a source such as a legacy database, an entity relationship diagram, or other schema defining the data tables, objects, entities, or relationships etc. of the source. The generated code may be exposed (that is, made visible to the developer in its pre-compiled state) and further configurable and extendable. Any such extended code is maintained separately from generated code. An API and related documentation are also generated from the same abstract model.