System and software modeling

Purpose of modeling

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.

as decoration.

Why modeling software?

Mainstream programming languages operate in different content format. There is a gap between code and pictures.

What level of detail?

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?

Static models

Three types of relationships:

Dynamic models

Stateless vs stateful dynamic models

Embedded system modeling

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


Updated 10 February 2023