IP Library Granted Patent US 8,856,667
Granted Patent B2
US 8,856,667 · App. 11/880,368 · Granted Oct 7, 2014

Graphical state machine based programming for a graphical user interface

Inventor: Thomas Gaudette (Jamaica Plain, MA)
Assignee: The MathWorks, Inc.
G06F8/34
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,856,667
App. No.
11/880,368
Granted
Oct 7, 2014
Kind
B2
Abstract

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.

Claims (55)

1. A computer-implemented method comprising:

creating, using a processor, a graphical user interface (GUI) using a layout editor, the layout editor providing a plurality of graphical elements for selection;

generating, using the processor, a graphical state diagram representation for selected graphical elements from the plurality of graphical elements where:

the graphical state diagram representation includes:

a plurality of states, wherein:

the plurality of states correspond to the selected graphical elements,

at least two of the plurality of states are active in a parallel mode to each other, and

at least another two of the plurality of states are active in an exclusive mode to each other,

a plurality of transitions, and

one or more executable instructions associated with the plurality of states or the plurality of transitions, the one or more executable instructions modeling an underlying control structure of the selected graphical elements, the underlying control structure implementing a functionality of the GUI, and

the graphical state diagram representation is generated based on the selected graphical elements; and

generating, using the processor, computer program instructions from the graphical state diagram representation where:

the computer program instructions implement the selected graphical elements and the underlying control structure of the selected graphical elements, and

the selected graphical elements are implemented as part of the GUI.

2. The method of claim 1 , wherein one of the plurality of graphical elements is a user interface widget.

3. The method of claim 2 , wherein the graphical state diagram representation contains various states of the selected graphical elements.

4. A computer-implemented method comprising:

creating, using a processor, a graphical user interface (GUI) by arranging a plurality of selected interface elements in a graphical layout editor to define a visual appearance of the GUI;

building, using the processor; a framework of a state diagram model of the GUI using the graphical layout editor and the selected interface elements, the framework of the state diagram model including:

a plurality of states corresponding to the interface elements, wherein:

the plurality of states correspond to the selected graphical elements,

at least two of the plurality of states are active in a parallel mode to each other, and

at least another two of the plurality of states are active in an exclusive mode to each other, and

one or more executable instructions modeling an underlying control structure of the selected interface elements, the underlying control structure implementing a functionality of the GUI;

displaying, using the processor, the framework on a display device;

adding, using the processor, at least one additional state or at least one transition between states to the framework for creating a complete state diagram model of the GUI; and

generating the GUI from the complete state diagram model using the processor.

5. The method of claim 4 , further comprising:

defining one or more events associated with the selected interface elements with a text-based programming language,

wherein the state diagram model further includes one or more states of the plurality of states corresponding to the one or more events.

6. The method of claim 4 , further comprising:

simulating the complete state diagram model to test the functionality of the GUI; and

modifying the state diagram model based on the simulating.

7. The method of claim 4 , wherein the generating further comprises:

translating the complete state diagram model into text-based code that, when executed, implements the GUI.

8. A non-transitory computer-readable storage media storing one or more instructions, that when executed by a computer, cause the computer to:

create a graphical user interface (GUI) using a layout editor, the layout editor providing a plurality of graphical elements for selection;

generate a graphical state diagram representation for selected graphical elements from the plurality of graphical elements of the layout editor, where:

the graphical state diagram representation includes:

a plurality of states, wherein:

the plurality of states correspond to the selected graphical elements,

at least two of the plurality of states are active in a parallel mode to each other, and

at least another two of the plurality of states are active in an exclusive mode to each other,

a plurality of transitions, and

one or more executable instructions associated with the plurality of states or the plurality of transitions, the one or more executable instructions modeling an underlying control structure of the selected graphical elements, and

the graphical state diagram representation is generated based on the selected graphical elements; and

generate computer program instructions, from the graphical state diagram representation where:

the computer program instructions implement the selected graphical elements and the underlying control structure of the selected graphical elements, and

the selected graphical elements are implemented as part of the GUI.

9. The non-transitory computer-readable storage media of claim 8 , wherein one of the plurality of graphical elements is a user interface widget.

10. The non-transitory computer-readable storage media of claim 8 , wherein the graphical state diagram representation contains various states of the selected graphical elements.

11. The method of claim 1 , wherein a representation of the GUI is saved as one or more files on a file system.

12. The method of claim 11 , wherein the representation of the GUI is saved to a FIG-file, with an extension .fig and an M-file, with an extension .m.

13. The method of claim 1 , further comprising:

programming, using a textual programing language, functionality of the graphical state diagram representation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2007
From: GAUDETTE, THOMAS
To: THE MATHWORK INC.
Reel/Frame 019642/0174 →
Continuity (2)
Continuation 11110182 · Apr 19, 2005
Related Publication 20070266329A1 · Nov 15, 2007