System and software modeling

Go to: How can we use visual modeling? · What level of detail? · Static models · Dynamic models · Embedded system modeling · Resources

The computing world is already so complex, that we interact with it through a great number of abstractions.

All models are wrong, some are useful. - George E.P. Box

Mainstream programming languages operate with a textual content format.

Text is an ideal medium for abstract logic. - Maggie Appleton

This level of abstraction removes the physical, spatial, and embodied qualities that humans rely upon to understand the world around us. - Maggie Appleton

The benefits of text format still outweighs the cons. There is a gap between code and pictures, because visuals are also abstractions.

There is a reason why digital circuit design has shifted to use of HDLs - HN

What can visuals give us?

Visuals reveal metaphors, spatial meaning, and change over time in ways that linear text can’t - Maggie Appleton

How can we use visual modeling?

Communication

Besides text, pictures can help us explaining ideas. We use models to visualise thoughts and improve communication.

Specification

Use modeling as a specification language:

Design

Modeling can be part of the design process: design without implementation.

but keep in mind (e.g. vhdl):

At the end of the day plain text (code) is the universal truth

Decorate

or use modeling to impress stakeholders.

And create colorful all in one models.

as decoration.

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

Resources

#sw #modeling