Using pictures to present ideas can help us explain them more effectively. We use models to visualise thoughts and improve communication.
Use modeling as a specification language:
or use modeling to consider design without implementation.
but keep in mind:
There is a reason why digital circuit design has shifted to use of HDLs
At the end of the day plain text (code) is the universal truth
or use modeling to impress stakeholders.
And create colorful all in one models.
Mainstream programming languages operate in different content format. There is a gap between code and pictures.
Explaining diagrams in text?
What's the purpose of a diagram if need to add extensive textual explanation to it? Can we define what ideas are we trying to represent as an image?
Three types of relationships:
Stateless vs stateful dynamic models
Context block diagram
Define system and external environment boundaries.
TODO: Association examples, entity examples.
Software context block diagram
Define software and hardware boundaries, peripherals, IOs, etc.
Model software as one aggregate object first.
Map Component and Deployment diagrams