What is a finite state machine?
A finite state machine (FSM) is a way of modeling a system such that there are a limited number of finite "states" that a system can be in, and that it can only be in one of those states at a time. Events (e.g., pushing a button) cause the system to change from one state to the next. Unexpected events do not cause the system to change states, which is useful for ignoring spurious inputs. Rather than coding for every possible input, you can instead code only for inputs that matter at the given time. The following resources provide a solid conceptual framing and implementation examples:
- Understanding State Machines, Part 1: What are they? from Mathworks
- Understanding State Machines, Part 2: Why Use Them? from Mathworks
- Understanding State Machines, Part 3: Mealy and Moore Machines from Mathworks
- Understanding State Machines, Part 4: Harel State Machines from Mathworks
- Implementing FSMs in Embedded Systems
What is Unified Modeling Language™ (UML®)?
UML is an industry-standard specification for representing software designs. It is equivalent to schematics for hardware designs. More information on UML can be found at uml.org. Official documentation on UML is available at:
- 25 UML Diagrams
- Official UML Examples
- UML Diagram Types Guide: Learn About All Types of UML Diagrams with Examples from creately
- All You Need to Know About UML Diagrams: Types and 5+ Examples from Tallyfy
- State Machine Diagram vs. Activity Diagram from Visual Paradigm
- What is the difference between an activity and a state chart diagram? from Quora
- Difference between StateChart and Activity Diagram from stackoverflow
Common UML diagrams that you may use include:
- Activity Diagram. An Activity Diagram (similar to a flowchart) captures the overall behavior of a program from start to finish.
- Official Documentation on Activity Diagrams
- Activity Diagram in UML: Symbol, Components, & Example
- UML - Activity Diagrams from tutorialspoint
- What is an Activity Diagram from Visual Paradigm
- UML 2 Activity Diagrams: An Agile Introduction tutorial
- Example: Activity diagram for online shopping
- Statechart Diagram. A Statechart Diagram is a UML representation for a finite state machine. A finite state machine (also called a state machine) is a type of software design where your program is only in a single state at a time. The program changes state when a particular event happens, and remains in the same state if no event (or an unknown event) happens. This makes your program less likely to have unpredictable behavior, and is commonly used for copy machines, stoplight controllers, etc.
- Official Documentation on State Machine Diagrams
- Statechart UML Tutorial with Example
- UML - Statechart Diagrams from tutorialspoint
- What is a State Machine Diagram? from Visual Paradigm
- UML Tutorial: Finite State Machines
- UML 2 State Machine Diagrams: An Agile Introduction tutorial
- State Machine Constructs tutorial from EE Times
- Finite State Machines for the Texas Instruments MSP430 microcontroller application note
- Sequence Diagram
What software do I use to create a UML diagram?
- ArgoUML is an excellent free open-source software engineering tool that supports the creation of a wide variety of UML diagrams. It runs on Windows, Mac OS X, and Linux.
- StarUML is another excellent freely-available program that supports the creation of a wide variety of UML diagrams. it runs on Windows, Mac OS X, and Linux.
- Draw.Io - Recommended. Add-on to google drive documents, free - http://draw.io
- LucidChart - cloud-based collaborative diagramming app ASU has a site license if you use your ASU google account. Or get an Education Account. Add as a addin via google drive.
What is pseudocode?
Pseudocode is a near-English representation of a program that allows you to represent the functionality of a program without worrying about the syntax. It is useful when planning how software will work. Pseudocode can be created in any text editor or word processing program. An example of pseudocode for the game Monopoly is available here.
Many links above suggested by Cecilia La Place
No comments:
Post a Comment