Graphical State Machine Programming for GUI Event Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of designing and developing graphical user interfaces (GUIs) increases with the number of user interface elements, generated events, and desired functionality, making it challenging for software programmers to implement event-driven and parallelism paradigms effectively.

Innovation Solution

A state machine based programming paradigm is integrated with a componentized GUI, using a graphical state diagram model to represent GUI elements and events, allowing for event handling and state management, and enabling the generation of executable code for a target hardware platform.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional event-driven programming paradigm is used for GUI development, then the GUI can handle multiple events and user interactions, but the design and development complexity increases significantly with the number of user interface elements and events

Engineering Contradiction:
Improveevent handling capabilityVSAvoiddesign and development complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the GUI development into distinct layers: a visual state diagram layer for designing state machines and transitions, and an implementation layer for code generation. This segmentation allows developers to work with simplified visual models while the system handles the complexity of event-driven programming automatically through code generation from state diagrams

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces state diagrams as an intermediary representation between the developer's design intent and the actual event-driven code implementation. State diagrams serve as a mediator that captures the desired behavior visually, which then gets automatically translated into the complex event handling code through automated code generation tools

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the number of user interface elements and functionality increases, then the GUI becomes more feature-rich and capable, but the complexity of managing state and control increases

Engineering Contradiction:
ImprovefunctionalityVSAvoidstate and control management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the state and control management by organizing it into discrete states and transitions within state machines. Each user interface element's behavior is encapsulated in its own state machine with defined states, transitions, and actions, making it easier to manage complexity by breaking down the overall system into manageable, independently analyzable state machines

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a visual dimension to state and control management by representing them graphically through state diagrams. This visual representation allows developers to understand and manage complex state transitions by viewing them spatially as nodes and edges, rather than dealing with abstract code relationships

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Ease of operation

If manual programming is used for GUI event handling, then developers have full control over implementation, but the time and effort required for design and development increases

Engineering Contradiction:
Improveprogramming controlVSAvoiddesign and development time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent applies preliminary action by automatically generating the boilerplate event handling code and state management structures from state diagrams before actual implementation is needed. This pre-generation of code frameworks and templates reduces the manual programming effort required and accelerates the development process while maintaining control over the generated code

Inventive Principle:
Principle #10Preliminary action

4Ease of operation

If graphical programming approach is used for GUI design, then the design process becomes more intuitive and visual, but the integration with textual programming languages becomes challenging

Engineering Contradiction:
Improvevisual design easeVSAvoidprogramming paradigm integration complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent merges graphical programming and textual programming by integrating state diagram visual design with code generation capabilities. The system combines the visual intuitiveness of graphical state machine design with the precision and control of textual programming languages by automatically generating text-based code from visual state diagrams, thus unifying both paradigms in a single development environment

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8856667B2Graphical state machine based programming for a graphical user interface
Publication Date: 2014.10.07 MATHWORKS INC
  • US8856667B2 patent drawing
  • US8856667B2 patent drawing
  • US8856667B2 patent drawing

AI summary

In one embodiment, a graphical arrangement of one or more interface elements and a definition of one or more events associated with the interface elements is used to build a state diagram model of a graphical user interface (GUI). The state diagram model of the GUI includes a plurality of states, and one or more transitions linking at least some of the states. The state diagram model may be displayed to a user, and in some cases, simulated to test functionality of the GUI. In response to user input, the state diagram model may be modified to change functionality of the GUI and/or to add functionality to the GUI. The GUI may then be generated from the state diagram model.