[erlang-questions] UML or other modeling tools
Sun Jan 9 15:06:19 CET 2011
I am quite sceptical towards using UML for modeling Erlang
programs, for a number of reasons.
- I mainly subscribe to Fred Brooks' "The Flow Chart Curse" in "The Mythical
Man-Month": visual modeling provides very little extra information when
used to illustrate a very high-level programming language. In the case of
UML and Erlang, Erlang is at roughly the same abstraction level as the
various versions of Executable UML.
- The things most interesting to model in an Erlang program are the
state machines and the interaction between processes, but UML
state machines have very complex - and most importantly, *different*
- semantics, making it quite probable that the design becomes subject
to compromises forced by the modeling tool, rather than reflecting the
power of the programming language.
- The main purpose of a standard notation is that everyone should be
able to agree on what it means. I assert that very few people can claim
to understand the subtleties of UML's state machine semantics, and
even if they do, so much the worse, since Erlang's semantics are
different. Better to choose a simple notation and explain what it means
in the relation to Erlang's building blocks. Taking a ubiquitous symbol
and defining it to mean something different is counter-productive.
- The FMC (http://fmc-modeling.org/) notation seems to complement
Erlang fairly well, describing roughly the things that are most interesting
to describe visually in an Erlang program.
On 9 Jan 2011, at 08:56, Alessandro Sivieri wrote:
> Hi all,
> has anyone of you ever used any modeling tool for describing a system
> written in Erlang (or any other functional language)?
> I have to describe the architecture of an application, in terms of processes
> structure/tree and/or modules, and I was wondering if there is some UML
> diagram that could be used, or any "standard" format for doing it; I have
> already created several sequence diagrams, and usually in my other projects
> I have used (more or less detailed) diagram classes, but for functional
> languages I don't know precisely what tools there exist...
> Sivieri Alessandro
Ulf Wiger, CTO, Erlang Solutions, Ltd.
More information about the erlang-questions