The Blog

Jul 21, 2005

Rational Rose to the Occasion 

by Maxim Porges @ 11:10 PM | Link | Feedback (0)

Okay, so Rational Rose may be the old version of what Rational is doing these days - but I couldn't resist the play on words. :)

The event I am referring to in this blog title is, of course, the on-site demo we had today from Rational Software (who are now a division of IBM). As part of our J2EE project, I've been tasked with finding tools that will support better requirements gathering for OO development, the creation of appropriate architecture documentation, and tighter trackability and integration between the two.

There's really only one company that comes to mind in this problem space - and that's Rational Software. Not only did this company stem from the formal bodies that invented the UML, but they've also created a very logical, well organized, and customizable SDLC for any type of software development (called the Rational Unified Process, or RUP). While this is an achievement in itself, it would be somewhat difficult to implement without the appropriate tools. Thankfully, Rational has also set the standard for tool integration and compliance with the techniques in their SDLC by creating their own tool suite.

Today's on-site lasted about two and a half hours, and covered a top-level look at RUP and Rational's suite of products: a soup-to-nuts, tightly integrated suite that creates automation and trackability at every level of the process.

A few items I found particularly interesting are listed below.

1) Prior to the demo, I was under the impression that you either adopted RUP 100% or you didn't adopt it at all. This was a false assumption. Although RUP is incredibly comprehensive, and comes with tons of how-tos, samples, and process documentation, you can take or leave all the parts of it as you see fit. In fact, Rational encourages you to customize it to your needs.

2) Rational's requirements gathering tools begin with business process modeling (whether those processes are manual and you just want to document them, or if you are planning on automating them through software), and then move seamlessly through requirements gathering, tracking change to requirements, implementing requirements in architecture, and then associating those requirements with the final code. You can literally track the origin of a system code artifact all the way back to the requirement that spawned it - astonishing.

3) Their entire toolset is moving to Eclipse (duh - they're owned by IBM). My surprise was that their tools are being adjusted to run in Linux, which means they might also work natively in OS X (yay!).

4) The requirements tools sync up with Word, but save the atomic items (such as the individual requirement bullets) to a relational DB. This all happens seamlessly through macro integration inside Word. So, you get the flexibility of a rich word processor with the robust data tracking and querying of an RDBMS. Another solid win for the product.

Right off the bat, I can see the advantage of our utilization of Rational's business process modeling tools. If there is one thing I wish we had, it would be comprehensive business process documentation. Westgate Resorts is in the timeshare industry, and like most industries, it comes with jargon and terms that you'd never understand fully unless you had worked in the business. After 8 years with the company, I've been lucky enough to work in a lot of different areas and bring that knowledge with me to our IT department, but our newly hired programmers are not so lucky. Being able to give them business docs to study would be a great orientation exercise.

I'm also a huge fan of tools that integrate. This is one of the reasons I liked Adalon when we first started using it; work on one part of the process acts as a springboard for the next part of the process, and Rational follow suit. To be honest, if I was not so fortunate as to have good tools, and had to sync all my own documents, I'd go mad. Imagine doing process flows in Visio, requirements gathering in Word, project management in MS Project, UML modeling in another tool, and development in Eclipse with no automated links between tools/steps. If I had to do that, I probably wouldn't even bother.

While this might sound like a prima donna stance, the bottom line is that all of those steps take a lot of effort, and there's little ROI if you're starting from scratch again at each step. If I can't use my Visio diagram as a springboard to my UML modeling, and my UML model to springboard my code, and I don't get back and forth integration between all the documents as things change, then I'll end up spending more time syncing my documents than actually enjoying the benefits of having them in the first place. I'd end up getting less work done at the end of the day, which would be wasteful and counter productive. Tools like Rational might seem pricey, but in a team environment of market-priced software engineers, the ROI of an integrated suite quickly becomes apparent.

So, while no decisions were made today, I definitely liked what I saw (and while I'm leading the process, I'm not the only decision maker). Also, the fact that Rational provides such tight links between requirements and code got me to thinking that we could potentially shorten our architecture process (as I was griping about earlier this week) by using more visual representations and fewer written descriptions of requirement implementation. To quote the cliché, a picture says a thousand words - especially when the picture is a UML sequence diagram! :)

I'll be posting more thoughts on Rational tools and RUP as we delve deeper. We've also got an Oracle demo of JDeveloper and Oracle's 10g J2EE Application Server next week, so keep your eyes peeled.