Re: UML and Embedded Product Development

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 time

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.

Reply to
Janvi
Loading thread data ...

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).

Reply to
Jakob Engblom

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

formatting link
and
formatting link
for state-of-the-art product offerings.

Regards, Bruce

functional

any

and

Reply to
BruceL

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?

Ken.

+====================================+ I hate junk email. Please direct any genuine email to: kenlee at hotpop.com
Reply to
Ken Lee

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.

Bruce

translation

translator

code

complete

Diagram),

developing

Sequence,

experience

Reply to
BruceL

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.