Over the past few years the integrated development environment has raged on. For years I've used a text editor and a build tool to create my Java software; I used no set processes or design methods. The integration of UML modeling and Java coding makes obvious sense to a software designer, but a programmer like me has to ask, can XDE mentor me and make me think differently about the way I design software?
XDE stands for extended development environment; installation is a straightforward matter, as is installation of software on most Windows systems, but it only runs on Windows 2000/NT/ XP and you'll also need Service Pack 2 installed. The entire suite is based on IBM's Eclipse Platform but with added functionality in the UML modeling department. The distribution comes with two CDs - one that installs XDE in IBM's WebSphere Application Developer (WSAD) and one that installs XDE "standalone" with its own copy of WebSphere Workbench (WSW), which is based on Eclipse. For this review I just installed the stand-alone workbench.
Before I could get any coding done I had to create a project; the Java Modeling Project has the full features of UML modeling and round-trip engineering support. There are other project types you can use, including a Java Project (no modeling support) and a Web Modeling Project (for JSP or HTML Web applications).
The bulk of the modeling and coding goes on within the modeling perspectives. Rational has provided a lot of information for the help perspective covering Java and UML basics, deploying applications, and using patterns. One of the joys of XDE is that you can let it do as little or as much as you like. The level of code assistance is controlled from the preferences, and there are various options that can be generated such as constructors, finalizers, and bean properties. With synchronization enabled you can alter the source code and the UML diagram will update; if you make changes to the diagram the code will update accordingly (see Figure 1).
A very handy feature is the task list where you can add items for anything that you need to complete. This is also the place where any compilation errors are listed; clicking on an error will take you to the corresponding line of code where the error is. Once corrected, XDE will automatically update the task list and delete the corrected errors from it.
You can create and place new classes on the main model diagram either by using the right-click menus or by dragging and dropping from the Toolbox. The Toolbox is home to the different UML types (class, component, deployment, use case, collaboration, and sequence diagrams) plus Java elements (class, methods, interfaces, etc.), EJB elements (session, entity, and message-driven beans), and JSP elements (servlet, jsp server page, html forms, etc.). Features on the modeling side include Gang-of-Four patterns, J2EE patterns, and the ability to create your own patterns and code templates so you can reuse your core code over a number of projects.
Developing for the Server Side
As I mentioned previously, you can develop JSP/servlet applications with XDE. With a mixture of drag-and-drop elements you can quickly create a basic Web application and deploy it to your application server. Deployment is achieved with the help of a wizard that guides you through the process (see Figure 2). XDE has a number of server brands that you can deploy to, including WebSphere and WebLogic. If your server is not listed you can deploy to a .war file and change the descriptors within XDE. This is a handy route if you want to deploy to servers such as Tomcat or Orion.
Where do I start? I'm a big fan of code formatting, and XDE has the ability to do this with its menu within the edit window. All you have to do is right click, click on "Format", and it's done. There are various styles of code layout that you can configure within the preferences. Another handy feature is assisted coding, in which XDE inspects the signature of a class that you're working on and lists its different types. I found this handy, mainly because while I was working I didn't have to stop, open up Java in a Nutshell, and then continue where I left off (see Figure 3).
In the main preferences you can specify which JDK version you want to work with. I found this very helpful, as I was writing and testing between JDK 1.3 and 1.4. I could switch mid coding and see if there were going to be any issues or conflicts between different Java versions.
Have you ever developed code and then changed the name of something and then systematically had to revisit every file to make the changes? There are numerous ways of making the change (mine was always using Perl on the command line). With XDE you can refactor code and it will make the changes across the project. XDE will let you preview the code results it is going to refactor, which gives you a fighting chance if you disagree.
One thing about Rational tools is that they are designed to work with other Rational tools. XDE links into ClearCase so you can have proper version control, but it gives no ability to use any other version-control software, such as SourceSafe or CVS.
There are extensive debugging options, with the usual breakpoints, that keep an eye on variables. XDE will scan the packages open and give you the option of executing any class that it can. In addition to debugging on your local machine you can debug a class remotely on another machine or server - as long as it has the relevant profile set up so it can be debugged by XDE.
I've only scratched the surface of what XDE is capable of, but I have definitely increased my knowledge of software development through using this product. It's now part of my main development arsenal, and I'm finding myself actually thinking differently about software design and logically modeling objects before I do any coding. I know it sounds like a cliché, but I really don't know how I got on without it.
Rational Software Corporation
18880 Homestead Rd.
Cupertino, CA 95014
Phone: 800 728-1212
Windows NT (Service Pack 6a)
Windows 2000 (Service Pack 2)
Windows XP Professional
Computer: Dell Optiplex GX240,
Processor: P4 1.8GHz
Hard Drive: 40GH
Memory: 256MB RAM
OS: Windows 2000 (Service Pack 3)
JDJ Product Snapshot
Target Audience: Java programmers, software designers, and analysts
Level: Intermediate to professional
Pros: Code/model synchronization
Ability to select different JDK during development for testing. Extensive coverage of patterns and software design practices.
Cons: Help system can be confusing at times; price may put some users off
Jason Bell is a programmer and chief technical officer for a B2B Web portal in York, England. He has been involved in numerous Web projects over the past five years, the last two of which have been servlet-based.