Monday, 14 March 2011

Week 10 of 2011

I haven't posted any blogs for some time now. However, I haven't abandoned the world of Shlaer-Mellor and Executable UML. The last activity I talked about was a Chess Tool application. I was starting to get carried away with the software architecture. However, the purpose of the activity was to provide a simple but realistic Shlaer-Mellor and Executable UML case study. It became apparent to me that without action language support, the case study wouldn't be particularly repeatable. Too much effort was going into the software architecture without a process level framework being in place. That process level framework should be provided by an action language and an associated runtime environment.

Now, I have been told by a number of you out there that I should have worked harder to get the simulator working in OOA Tool. Unfortunately, I persisted in my top-down approach which ran out of steam last year. The OOA of OOA in OOA Tool is too big and complex to implement a clean action language when there is only me doing the work!

So, just after Christmas, I started a new code base using some of the software architecture from the Chess Tool application. The overriding objective of this code base is to run action language programs. The target deliverables would be an interpreter, a formatter for colour coding source code, a debugger and a set of standard services. A model compiler supporting archetype templates was not a target deliverable for the first release. I also decided early on that I couldn't afford to link the code base to OOA Tool without a significant chance that I got side tracked sorting out OOA Tool issues.

Since I started on this, I have barely looked back. An OOA information model for the interpreter was produced hand-in-hand with the Java code. This forms the basis for metamodel services which will need access to this information for document and code generation purposes. I have used my normal pattern language to produce a syntax grammar for the action language. I'm calling the action language TAL (ooa Tool Action Language). It's a significant evolution of OAL which I have always preferred over ASL (sorry guys!). It also has no similarities with Alf, the new OMG UML action language which is a monster just like UML itself (sorry guys!!). How anyone expects to be able to generate code for different languages and platforms from Alf without an expert team on hand is anyone's guess. It would seem to me that a major objective of Alf is that it requires tool vendors to create model compilers. However, I believe users should be able to accomplish that task themselves which is why TAL has tried to keep things simple where it can.

I don't want to talk too much today. I had planned to rollout the first release last week. However, the Programmer's Manual and User Guide were in very poor shape and I had a few weak areas to sort out. I decided to hold off for a few weeks to get things in better shape.


B said...

Hi Sean, it's good to have you back and blimey you have been busy!

Thought we were going to be condemned to a world of complex impenetrable UML models built(?) with overly complex tools. Can't wait to see what you've created.


Mark Edgeworth said...

Hi Sean,

Are you still active on Shlaer-Mellor? Is anyone?


Mike Finn said...

Hi Mark,

I'm doing stuff based on S-M. Checkout

Sean, can you say if you are going to work on this again? There's so few of us left. :(


Sean Kavanagh said...

Hi Mark (and Mike),

I've being out of circulation for a good while now but I hope to return soon (mid life crisis over!). I use Shlaer-Mellor OOA on a daily basis for new development (via OOA Tool of course!). I also use Executable UML for capturing design outlines with my current employer. I would suggest you don't write off the Shlaer-Mellor Method just yet. I don't plan on restarting this blog until my current part-time project is finished but I will say it is 100% Java, 100% Shlaer-Mellor and will be available for download when complete. My biggest disappointment with OOA Tool is that I failed to deliver a platform for code generation and reuse. However, I do plan on rectifying that in future.


Mark Edgeworth said...

Hi Sean, Mike (and maybe others),

Great to see that there are still others out there who are using S-M (and indeed Java). I regard the training and use I had in this back in the mid-90s as being possibly the most influential of my professional life. I'm still baffled as to why this never became mainstream, but i guess the current-ish trend to Model-Driven Development is a descendant.

I could see this being a great way to drive modern multi-core, multi-thread machines like the ones I work on now - there's a real opportunity here I reckon. For me, tool support is key. Java is a great language choice for me - I'm a C 'expert' but choose Java for anything if I can. Linus can keep his segmentation faults :-)

Thanks again for the reply,

Mike Finn said...

Hi Sean,

Very good to hear from you and what your planning. I believe that flexible code generation from models is the way to convince the great unwashed that we have the best approach for the future.

Mike Finn said...

Hi Mark,

"I'm still baffled as to why this never became mainstream"

Yeah, you and me both!

"I could see this being a great way to drive modern multi-core, multi-thread machines like the ones I work on now - there's a real opportunity here I reckon."

My thoughts exactly, all you need is the right Software Architecture. The model remains the same.