"Modeling Languages: Syntax, Semantics and All That Stuff, Part I: The Basic Stuff", David Harel and Bernhard Rumpe, 2000