How to do software architecture evaluation ?

I've gotten an assignment doing a software architecture evaluation without getting access to the code. The customer have chosen a platform and wants to know how the major software vendor that they are using, complies to this platform. That is - how can my customer utilize the software vendor's solution on the chosen J2EE platform.

I searched a bit on the internet and found a few resources Carnegie Mellon Software Engineering Institute. They have a sample chapter from the book Evaluation Software Architectures. They talk about doing a SAAM analysis (Software Architecture Analysis Method), but I'm a bit unsure how this will work with a software vendor who is a bit protectionist.

Since services seems to be THE hype word these days, I was thinking about a services focus on the architectural review. I'm going to try to stress the vendor by asking questions about:

- Deployment diagram
- Documentation of services (use case it supports, data input and output documentation and state changes as a result of the service)
- Backward compatibility policy (does it exist, is it predictable)
- Business separation from client/channel
- Layering within the solution
- Available tests
- Other reuse points (stored procedures, portlets++)

I'm also going to prepare a few scenarios which is relevant for my customer and try to evaluate the answers I get.

In the end the customer wants a matrix where we can do a cap analysis between where we want the vendor to be and where they actually are. This isn't going to be easy...

Do you have any experience in this area? If so - write down your thoughts.


CruiseControl progress

I've browsed the Jira page for CruiseControl. One thing that struck me is that a lot of people have submitted patches for CruiseControl, which is a good thing, but it's seems like it takes some time before they are applied. Another thing that strikes me is the lack of roadmap. There is a release 2.2.1 where all the issues marked for this release is resolved, but it isn't released. No other release seems to be planned.

Do we have a situation where the product has a lot of users willing to contribute, but the project itself lost it's interest ? Is this a sign that somebody else should drive the project ?


Book review: More Eric Meyer on CSS

Want to make sexy tabbed navigation like apple.com have on their site ? Want to learn how to use CSS on concrete problems ? If so this might be the book for you.

Eric Meyer is an authority in the field of Cascading Style Sheet and have written several books on the subject: CSS Pocket Reference, CSS The definitive guide and Eric Meyer on CSS. You get the picture.

This book - as the previous - looks at ten projects with different challenges. Examples are: Converting existing page, styling photo collection, attractive tabs, CSS driven drop down menus. The book also includes color pictures of the web pages as they evolves. This is a big plus. Black&White doesn't give the same level of feedback about the elegance of the design.

It's a very good book and I would definitely recommend it to anyone who have learned the basic about CSS, but need help to achieve the really good result. If you have a concrete problem, look whether the first or this book addresses it. Without having read it, I guess that CSS Cookbook might compete with these books.

Got the book for half price on amazon.co.uk and it was worth it. On the minus side might be some lacking comments on best practices. A few comments on this is offered, but it definitely could have offered more advises on when to utilize different strategies. I also had problem following the rationale on some occasions. The solution was to trying to do the changes ourselves to see the problems that a particular CSS styling gave.

Looking forward to the new CSS features in IntelliJ IDEA next release. Maybe I must download Irida from Jetbrains Early Access Program....

So we end up on.....

RedHat/Fedora... I'm leaving you soon

My first try on Linux was RedHat 4.1 when I was a student. Struggling with Linux on the student server that we owned. Over the years I've always had a Linux partition on my PC, and it always have been a RedHat distribution. I started using Linux as my primary desktop at home two-three years ago and it was RedHat 7.3. Followed up with 8.0, 9.0 and then the Fedora Core versions. Currently I'm running Core 2.

So why change now ? There's a couple of reasons. I started using Ximian Desktop when I was running RedHat 8.0. This desktop was really slick - I liked it a lot. Now Ximian is Novell - which also means Suse - which also means: No Ximian Desktop for Fedora. There's also quite a few important features missing - mp3 support being the most important of them. Also I don't like the fact that Fedora kernel doesn't include the Software Suspend in their 2.6.9 kernel. I've struggled SO long with getting suspend functionality to work on my Dell laptop.

The turning point was my sudden awareness of Ubuntu Linux. This Debian based distribution seems to fit my interest perfect: Bleeding edge on GNOME features, new releases at regular intervals, standard based, slick desktop. I downloaded and gave the distribution a try on a small available partition and it seems very good. Seems to boot faster than Fedora.

So when I'm done with my current project, get some spare moments, Fedora gets kicked out of my Dell Inspiron....

Eclipse and GNOME finding common ground ?

I've been reading the Around the planet which is rumors about what's going on in the GNOME land. As a Java development I notice that it seems like there's some momentum around RedHat's participation in the Eclipse world. I think RedHat was one of the founding members in the Eclipse board.

Havoc Pennington have some interesting links on his blog. Also Fernando Herrera talks about GNOME development in Eclipse.

The interesting stuff is where is GNOME headed. We all know about Novell's (former Ximian) effort on the Mono project and there seems to be an agreement in the GNOME community that they need a higher level language than C in order to reduce development time. Is this an indication that Novell and RedHat represent a pro Mono vs pro Java effort ? We also know that Sun have contributed to the GNOME platform with accessibility features and they will probably push for Java as future platform for GNOME.

Interesting times.....