
Phil Endecott wrote:
Hi Christophe,
Thanks for your detailed reply. I think it's important that you add some sort of basic rationale of this sort to the documentation - you need to evangelise what you believe are the advantages of the library from first principles to its potential users.
I'm just going to pick up on a couple of points, mainly because I don't know enough about UML to comment on the rest.
Hello Phil - You may be familiar with Harel Statecharts. It is the "grand-daddy" of UML state machines and lends a very powerful concept over most standard state machine paradigms: hierarchically nested states. Hierarchical finite state machines provide a richer set of semantics that is well suited for medium to large machines. In UML these are called composite states or sub-state machines as Msm uses them. This concept is difficult (messy) to implement with ad-hoc techniques. I personally find that the richness provided by some of the modeling language constructs produces very simple solutions for what can often be messy problems to solve. It brings an elegance to the solution space that cannot be found in just states and transitions alone. It is the richness of the modeling language that helps one solve more complex problems without complexity. Sure, in these simple toy examples the ad-hoc switch statement looks as good if not better than a complex library. But as soon as we start making something that is industrial proof with all the error cases and whatnots ... well things start getting more complicated and I personally start looking for some additional constructs to help out. I certainly don't think a short little email will convince you differently. Nor is it my intent. I thought I would point out that it is the richness of the modeling language that allows you to attack more complex problems with a better paradigm. A library that implements those language constructs then allows an engineer to simply implement the model without a complicated transform. Take care - michael -- ---------------------------------- Michael Caisse Object Modeling Designs www.objectmodelingdesigns.com