We discussed flowcharts in our last meeting as a way to document the logic and flow of our LEGO programs. Flowcharts are a graphical way to describe thinking and work flow. There are many apps and websites that allow you to create and edit flowchart diagrams.
Each geometric shape represents a different computational function that maps directly onto our Mindstorms programming blocks (eg parallelogram for input/output = sensors/motors). Here are the main symbols we used:
Here is a more detailed flowchart diagram that documents a LEGO Mindstorms program controlling a robot exploring an unknown environment from an engineering lab in Switzerland:
And flowcharts are not limited to just describing software programs, since they are often used to document business processes and workflow. For example, here is diagram that shows the workflow for the sales process in an organization:
Finally, flowcharts are not the only way we can describe software, thought and work flow. Unified Modeling Language (UML) is the current standard for documenting complex software that goes far beyond just software flow including things like specific architecture decisions like object, properties, methods and how they interact. We can also describe our software in terms of state diagrams which is one of the many types of documents that UML can encompass.
Unified Modeling Language
UML encompasses many different documentation types