Tools Ease Big
-Project Pain"> The top two players in the code modeling and code generation spaceRational Software Corp. and TogetherSoft Corp.have just updated their flagship products, hoping to appeal to a new generation of .Net and Web developers. TogetherSofts $3,495 Together ControlCenter 6.0, launched at JavaOne last month, is the latest version of that companys all-in-one design and development package. It runs on Windows, Solaris, Linux, HP-UX and Compaq Tru64 Unix.Although it has modeling and code generation support for these languages, the editor does not offer code completion or syntax checking for them, nor could we compile or run applications written in these languages from ControlCenter. For those focusing on Microsoft Corp. technologies, ControlCenter offers good design tools but a poor editing environment. The situation is reversed with Rational Software Corp.s $3,595 Rational XDE Professional 2002, which started shipping in February. The software comes in two versions: a Microsoft .Net Edition for those developing in the C# language (which is our pick for modeling in the .Net environment) and a less-than-competitive Java Platform Edition for those developing in Java. We tested both versions, and they are similarthe Java version has additional patterns based on JSP (JavaServer Pages) and Java 2 Enterprise Edition patterns that are not in the .Net version. Both versions run on Windows 2000 or Windows XP; the .Net product also requires an installed copy of Visual Studio .Net. For Rational customers coding with Microsoft development tools, XDE will have to be a clean break from the past. Rationals existing Rational Rose design product does not (and will not) support .Net languages, and Rational XDE does not support Visual Studio 6 languages such as Visual Basic 6, C and C++. The XDE products support only two languages right now, C# and Java, making them linguistically much less flexible than ControlCenter. Visual Basic .Net will be the next language supported by the .Net product, according to Rational Software staff. XDE can import Rational Rose models, but Rational customers moving to .Net languages will need to switch tools. The .Net version of XDE integrated beautifully with Visual Studio .Nets own menus and windows and offers far-more-sophisticated UML (Unified Modeling Language) design features than Visual Studio .Net Enterprise itself does. Customers just wanting to gain design tools should skip the Enterprise upgrade and get XDE instead. However, on the Java side, XDE is based on IBMs WebSphere Studio Workbench Java development tool, which isnt as advanced an editing tool as Visual Studio .Net or ControlCenter. Besides its limited language support, XDE has only simple re-factoring features, doesnt provide Web services support beyond what the host IDE has on its own, lacks code audit features and has only basic code reporting features. Its set of patterns, or code templates, also isnt as extensive as ControlCenters. In terms of polish and depth, we found ControlCenter superior to XDE in many areas (particularly for Java developers and Web service developers), but ControlCenters editing and compilation problems with .Net languages hamstring it in that space, making XDE a better choice for C# developers. Coding With Pictures Although these tools take different strategies toward code editing ControlCenter includes an integrated code editing environment, while XDE installs on top of either Microsoft or IBM editing toolsboth are based on UML for code design. UML diagrams are central to how these products work, and since UML is a standardized design methodology, both tools had essentially the same set of base diagram types and objects within those diagram types. We created an activity, a use case and a class diagram in both tools, and the results were similar in both. However, ControlCenter offered a smoother ride getting there. The biggest difference was how much more editable ControlCenters diagrams were over those in XDE. In ControlCenter, if we wanted to edit the properties of a classs attributes (its member variables) or its methods, we could just click on objects and edit data in a properties box. We could also easily reorder, copy or move attributes or methods just by dragging and dropping. Rearranging our classes visually was simple and obvious in ControlCenter. XDE had little in the way of visual attribute or method manipulation. While we could click in an attribute or method name to rename it, we couldnt copy or move attributes by dragging and dropping in the diagram itself (we could do so in a separate Model Explorer window, an approach that we found cumbersome). ControlCenter also did a better job of snapping connectors to objects and routing connectors to create professional layouts. It also has special options to create quality printouts. With XDE, we had to do more fiddling to get diagrams that looked professional, and diagram fiddling is something that will distract developers from other jobs. XDE did have a nice tool to compare two versions of a diagram and reconcile changes, something ControlCenter lacks. The .Net version of XDE has one basic HTML report, one that shows the class hierarchy and associated developer comments in each class. Rational plans to add more reporting features in the future (ControlCenter has extensive reporting features). While XDEs code templates can be used to enforce coding styles, it lacks ControlCenters code audit features to scan existing code for common programming errors and style inconsistencies. Java coders will find the ControlCenter editor much improved over previous versions: It now has real-time error highlighting (for Java only), outlining, a variety of keyboard accelerator profiles and XML editing features. ControlCenter is known for its near-real-time synchronization between diagram and code editor, which we found very convenient. It also had excellent support for external editors. When we edited a Java file open in ControlCenter using a separate editor, then switched back to ControlCenter, it noticed the file was changed and automatically updated its diagram and its editing window. With the Java version of XDE, we had to save any code edits we had within the tool before the related diagram would be updated (going in the other direction, diagram changes were reflected immediately in source code), and when we made changes using an external editor, we had to give a synchronize command to get XDE to load our changes. In the .Net version, source code and diagrams were kept in sync whenever we switched between windows. ControlCenter also adds fairly extensive code reorganization, or re-factoring, features in this release with 10 new re-factorings (it had just two in the previous version, 5.5). In addition to easily renaming and moving classes, we could also combine two classes into a superclass, turn a section of code into a new method, pull up or push down methods in a class hierarchy, and turn public attributes into private ones (with access methods created automatically for us). In all cases, related code that referred to changed objects was updated appropriately as part of the re-factoring. Re-factoring is a key part of maintaining code, and ControlCenter is now a leading tool in this space. West Coast Technical Director Timothy Dyck can be reached at timothy_dyck@ ziffdavis.com.
In eWeek Labs tests, we were very impressed with ControlCenters overall usability, comprehensiveness and power. For Java development, this product is our pick. However, ControlCenter is significantly less capable when it comes to C#, Visual Basic .Net and Visual Basic 6 development.