[erlang-questions] UML or other modeling tools

Ulf Wiger ulf.wiger@REDACTED
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.

Ulf W

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
> alessandro.sivieri@REDACTED
> http://www.chimera-bellerofonte.eu/
> http://www.poul.org/

Ulf Wiger, CTO, Erlang Solutions, Ltd.

More information about the erlang-questions mailing list