Declarative Specification Application Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional application development techniques require strong technical skills and are cumbersome, as they demand experience with database management systems, programming languages, and APIs, making it difficult for developers to focus on high-level design due to the complexity of interfacing and integrating various components.

Innovation Solution

An application development environment that generates applications from declarative specifications, allowing developers to define the structure and user interface elements without specifying control flow, iteratively building and modifying the application based on user interactions, and automatically generating instructions for database schema and user interface interactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If conventional application development techniques are used, then applications can be developed with full control over components, but the development process becomes cumbersome and requires strong technical skills

Engineering Contradiction:
Improveease of application developmentVSAvoidcomplexity of development process
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent introduces a code generation system as an intermediary between the developer's high-level specifications and the actual application code. This mediator automatically generates boilerplate code, database schemas, and integration code, eliminating the need for developers to manually write complex technical code while maintaining full application functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by pre-generating standard code structures, database schemas, and integration templates before the developer needs them. This allows developers to start with pre-prepared foundational code and focus only on custom business logic, significantly reducing development complexity.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If developers interface with database management systems and APIs directly, then full control over data access is achieved, but technical skill requirements increase

Engineering Contradiction:
Improveease of data accessVSAvoiddependence on technical expertise
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The code generation system provides self-service by automatically generating database access code, API integration code, and data validation logic based on high-level specifications. The system handles the complex technical details of data access independently, allowing developers to work at a higher abstraction level without compromising data access reliability.

Inventive Principle:
Principle #25Self-service

3Productivity

If comprehensive code generation is implemented, then development time is reduced, but control over control flow is lost

Engineering Contradiction:
Improvedevelopment speedVSAvoidloss of control flow specification
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the application development into two distinct layers: a high-level declarative specification layer that defines data structures and relationships, and an automatically generated implementation layer that handles control flow. This segmentation allows developers to specify only what they need (data models) while the system handles the rest (control flow), maintaining productivity without complete loss of control.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11630648B2Generation of application based on declarative specification
Publication Date: 2023.04.18 SALESFORCE INC
  • US11630648B2 patent drawing
  • US11630648B2 patent drawing
  • US11630648B2 patent drawing

AI summary

An application development environment generates applications from declarative specification for the application. The declarative specification describes one or more object types and references to objects of each object type. The application development environment generates instructions (or code) from the declarative specification to generate an initial version of the application. The application development environment iteratively builds the application based on user interactions that modify the declarative specification. The application development environment modifies the instructions for the application to match the modified declarative specification. The final version of the application may be deployed on a production system.