The Fundamental Modeling Concepts (FMC) are a set of diagram types developed and maintained by the
Hasso-Plattner-Institute (HPI), including Petri Nets (with some extensions) and semantically well-defined block diagrams.
I came in contact with the FMC when working for HPI and prefer them over the UML in everyday work with people who also know FMC. (Which is not to say the UML isn't the better thing to use in most cases. There are good reasons for using standard modeling languages, and the guys at HPI are a somewhat factious bunch of people anyway.)
Everybody knows Petri Nets.
Everybody has at least an intuition about FMC block diagrams - the exact semantics, as well as Visio stencils, can be found at HPI's FMC
website.
Here are the rules of thumb for decoding block diagrams:
- Everything with angles is an "actor", a thing that does something with data
- Everything round is "memory", a thing that stores data
- Actors can read and/or write memory, indicated by arrows
- Actors can exchange data with other actors via a special kind of "memory", channels (small circles on edges)
- Channels can be one-way (with arrows), two-way (without arrows), or two-way-request-response (with a capital "R" and an arrowhead indicating the request direction)
- FMC block diagrams are bipartite graphs, that is: There mustn't be edges between two elements of the same type without an element of the other type in between. (No memory element can write to some other memory element, as it is passive. No actor can write to an actor, as there must be a channel, etc)