Tuesday 8 April 2008

AIR UML thingy overview


So ... here's the overview of the project.

The green box contains the most basic possible release of the software - no real whistles and bells beyond getting something useful that we can start using / testing.

The boxes above that are the language / saved file format stuff.

The blue boxes are things for versions 2 to 100 ... 

All saved data / parameters / language specs etc will be in xml.  The entire app will be written in AS3 only - nothing specific to Flex or Flash.  No assets ... well, maybe a png library later, but it should be possible to compile the project from either an empty FLA or a simple Flex project without requiring any assets.

So - with the whole project written in pure AS3, anyone who uses the software will also be able to modify / adapt / enhance / reskin it.

In terms of UML elements, I think we should start with the most commonly used elements and then add further ones later.  

As far as interface / usability goes, my 2 favourite pieces of software are coda, by panic, and omnigraffle by omnigroup.  If we get anywhere near to something as beautifully usable as those two I'll be a very very happy bunny.

The 'class swatches' add on is something I'm kind of excited about myself.  It would allow you to have templates for classes / design patterns that you drop in and edit.  

I'll expand more on the diagram above as soon as I get a chance, and it's by no means a concrete solution, just the one that I've come to so far - all feedback / ideas gratefully received.

Friday 4 April 2008

Open-source Saffron-like UML tool

Saffron is / was an AIR-based UML tool that promised great things, but so far has yet to deliver even an Alpha.

Like many others I've binned my own UML tool project believing that Saffron was just around the corner and far exceeded my own project's limited capabilities.

The AS3 community's response to Saffron has been overwhelming - we want this tool. Badly.

Whatever the reasons for Sam's non-delivery on Saffron - and frankly it's not like he owes us as all we've invested is our hope - I’ve given up on Saffron appearing anytime soon.

Leaving behind the rumours, Saffron would be a fantastic tool and Sam has clearly solved a few of the usability issues that bug me about other UML tools. Whether or not he has been able to execute it, his concept is seriously good.

If a bunch of us got together I believe we could do this open-source quite rapidly. If there is interest I’m prepared to get the ball rolling - if we all want Saffron so badly then we need to deliver it ourselves!

I am looking to gather together contributors to work on the project, taking this (scaled down) vision as a starting point:


Project scope:

  • The tool will run on AIR in multiple windows.
  • It will allow you to generate AS3 stub code + asdoc comments from your diagrams.
  • It will allow you to generate diagrams from AS3 code (with asdoc comments).
  • It will allow you to add additional commenting to classes / functions.
  • It will stick as closely to UML 2 as is feasible and support the core OO concepts.
  • The API will be built with expansion for other languages in mind - all they would require is a new parser logic.
  • There will be autocomplete / prompting for classes already included in the project diagram.
  • Data / projects / configs will be held in XML files.

Ethos

  • There will be a focus on releasing usable builds as early and as often as possible - even if they are ugly! Provided we maintain backward compatibility it's more valuable to have a tool that helps us do some of what we need than nothing.
  • All project components / specs etc will be open-source and public.  
  • All development will be test driven - tests written before code.
  • Refactoring will be encouraged.
  • No effort is too small - write just one class that solidly delivers and passes its unit test and your contribution is valuable.
  • The project will be cross platform Flex / Flash to maximise the number of possible participants.  (Yes, it's a pain, but I think it's worth it).
If you're interested please say so below ... with the right approach and the right numbers of people this thing could fly quite quickly, don't you think?