Friday, February 27, 2009

[Arch] Cherish your Architecture

Since a few month I am following the world of architecture tools much more and there are interesting things on the way:
  • hello2morrow has changed the evaluation mode for one of it's product: SonarJ (Community Edition) is now free for trial if you have less then 500 classes. I strongly recommend to use a tool like this at least for every new project start. Quality metrics and architecture definitions are now just a few clicks away and do really suppress 'the big ball of mud' every software engineer knows.
  • Another nice product in the field of software quality measurement is sonar from codehaus. It really produces wonderful quality views for projects and I highly recommend to try it out. What disappointed me a little was that Java projects should be Maven alike and the two minute tutorial will not cause you to set sonar up in two minutes (installing, loading and producing metrics in SonarJ is much faster). But nevertheless the output is full of innovative ideas.
It was also interesting to learn that sonar has ideas to integrate something like the architecture rule checking framework macker. You can try this out for yourself and integrate it now into your Ant buildfile if you have a vision about your architecture. Do you have?

Here is an example of an architecture definition given on their website (think of everything being enclosed with XML brackets):

macker
..ruleset name="Simple example"
....access-rule
......deny
........from class="**Print*"
........to class="java.**"
......deny
....access-rule
..ruleset
macker


Do you have an idea of the intention?

Obviously a helpful feature but keep in mind that other tools (like the ones from hello2morrow) allow this definition much faster because you simply draw your architecture.

So check everything out and be aware of your architecture!

1 comment:

Ian Sutton said...

You might want to have a look at Structure101 for Java as well. As well as visualization and architecture diagrams(visual rules), you might also be interested in the XS measurement framework.

Cheers,
Ian