Re: UML and Embedded Product Development

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
most time I use state diagrams drawn on paper by hand. Up on today I did
not see any tool what can make usable code. For more complicated states I
have a seperate tool (GeSY) for Nassi-Shneiderman what can generate
code-frames. I sometimes use the tool but not the code generation feature
becouse code is not really usable. E.g. a case switch with 10 or more
cases will be implemented as a computed jump for efficiency reason. There
are many other things what tools cannot decide automatically.

For complicated things I occasionally use a data flow diagramm or other
diagramms from HW design like K-V (Karnough-Veight) tables. Class and Use
diagramms and other object oriented stuff I do not use. There are no or
only trivial database orientented problems in microcontroller and for most
applications diagramms like entity-relationship are trivial and a waste of

If you compare the price of the tools and the benefit, there seems to be
only a small use. In case of NS-Diagram it prevents drawing the thing many
times again and again becouse the program can zoom and shift outer blocks.
In case of more simple diagrams I am faster doing this on paper. The most
important thing is to use a design method if problem requieres this and
not to use a tool for the design method.

One of the tools problems is, that the diagramms should describe 100% of
the problem to be able for code generation. This is hardly possible
becouse each kind of diagram shows a diffrent view of the problem and none
is perfect. This should be finally the skill of the artist to decide the
balance in doing this or that and if 100 persons write code for the same
problem non of them would have the same code in result. This does not mean
that HLL compilers or grafical input cannot boost efficency of programmers
but in the moment all known tools are not really requiered for the design
of good products. UML what can generate code for further modification by
hand needs to parse back the modified sources and those tools seems rarely
or much too expensive and complicated in use.

Re: UML and Embedded Product Development
Quoted text here. Click to load it

Using statecharts (only), you can generate really nice code. See IAR
VisualState for example.  Forget all the junk about classes etc.  The
State diagrams portion is the only part of UML that is detailed enough
to allow functional code to be generated (as opposed to skeleton code
for classes).

Re: UML and Embedded Product Development
I have to disagree.  I completed a medical device with a team of 3
programmers using UML (actually Shlaer-Mellor) diagramming and translation
tools.  The active objects were those that had statecharts.  The translator
generated completely customizable code.  The architecture which ran the code
was published in Embedded Systems Programming in 1999.

For a complex, event-driven system, it is an excellent approach.  See and for state-of-the-art product


Quoted text here. Click to load it

Re: UML and Embedded Product Development

Quoted text here. Click to load it

Hi Bruce,
     If it's not bound by proprietary confidentiality could I ask what
type of product it is and whether you used iLogix Rhapsody on it?


Quoted text here. Click to load it

I hate junk email. Please direct any
genuine email to: kenlee at

Re: UML and Embedded Product Development
Sorry to top-post but that's the way I'm set up now.

I used the System Architect-Pathfinder tool set on a medical device which
prepared samples for cervical cancer screening for Cytyc Corp.  Check out
their TP-3000 at their web site.  This was a very complicated device owing
to the coordinated control of over 20 axes of motion.  The state models made
it immensely easier to solve the problem and the generation of code, which
we did not do at first, turned out to be very straightforward.  The benefit
of the Pathfinder solution is that you have complete control of the
generated code.

Rhapsody has a very nice user interface (Pathfinder now uses Rational Rose)
and limited configurability.  It is well-supported and documented.  We used
this on the imager product with success.  There really isn't much magic to
it and it is quite easy to understand.  The book "Practical Statecharts
inC++" (or some such title) clearly shows how to write your own
UML-compliant architecture for supporting statechart execution.

Hope this helps.


Quoted text here. Click to load it
Quoted text here. Click to load it

Site Timeline