Specification diagrams are a graphical notation for the specification of distributed systems. The primary design goal is to make a form of notation for defining message-passing behavior that is very expressive, intuitively understandable, and that has a fully formal underlying semantics.

Specification diagrams are two-dimensional graphical structures. Many specification languages that have achieved widespread usage have a graphical foundation: engineers can understand and communicate more effectively by graphical means. Popular graphical specification languages include Universal Modelling Language (UML) and its predecessors, and StateCharts. Specification diagrams aim to be a language with similar intuitive advantage but significantly greater expressivity and formal underpinnings.

Specification diagrams are highly suited to protocol specification because they give a formal specification of the protocol that is also readable by implementers. We have specified various security protocols, including the Needham-Schroeder protocol and TLS.