Visual Programming Block Automation via Class Definitions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Visual programming systems require manual creation of blocks, which reduces their effectiveness for large-scale development, such as in enterprise or platform environments, and introduces the risk of programming errors due to the need for manual code generation.

Innovation Solution

A visual programming system that automatically generates display code for rendering blocks and generation code for producing executable output code from class definitions, allowing for the creation of compound blocks that simplify user interaction while maintaining functionality, and mitigating programming errors through automated code production.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual creation of blocks is used in visual programming systems, then flexibility in block design is maintained, but productivity decreases and programming errors increase

Engineering Contradiction:
Improveblock creation efficiencyVSAvoidprogramming error rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by automatically generating block definitions, display code, and generation code from class definitions before the user needs to use them. This eliminates manual block creation steps and reduces the opportunity for human error in code writing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The visual programming system serves itself by automatically producing the code needed to create and render blocks. The system generates its own block definitions and associated code from existing class definitions, eliminating the need for manual programming of block creation logic.

Inventive Principle:
Principle #25Self-service

2Productivity

If automated code generation is implemented, then productivity and reliability improve, but system complexity increases

Engineering Contradiction:
Improvecode generation speedVSAvoidsystem architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system uses universal class definitions that serve multiple purposes: they define the block's functionality, generate the display code for rendering, and produce the generation code for output. This multi-functionality reduces the need for separate manual code components.

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

Solution Approach 2:

Class definitions act as an intermediary between the visual programming environment and the generated code. Instead of directly managing complex code generation logic, the system uses class definitions as a mediator that automatically translates into both display and generation code.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If manual block creation is required, then adaptability to custom requirements is maintained, but loss of time increases

Engineering Contradiction:
Improveblock development timeVSAvoidcustom block adaptability
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary generation of standard blocks from class definitions, allowing users to quickly start with pre-generated blocks and then customize them as needed. This reduces the initial time investment while preserving adaptability for custom requirements.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system allows users to apply customization locally to specific blocks rather than requiring manual creation of entire block systems. Users can modify individual block properties and behavior while benefiting from automated generation of the core block structure and code.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10942712B2Visual programming system
Publication Date: 2021.03.09 SERVICENOW INC
  • US10942712B2 patent drawing
  • US10942712B2 patent drawing
  • US10942712B2 patent drawing

AI summary

Methods, systems, and system for generating code using visual blocks. A selection is made from a list of one or more programming blocks. One or more of the programming blocks are selected and used to display a visual programming block that corresponds to the selected one or more programming blocks. This visual programming block is then used to generate or produce output code.