Pages

Software design

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:

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:
Common UML diagrams that you may use include:

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

Dr. Shawn Jordan

is an Associate Professor, electrical engineer, maker, and engineering education researcher.

No comments:

Post a Comment