Discover IBM Rational visual tools for application development

Taking a tour of the Rational Software Development Platform

You and your IT team need to be as efficient as possible throughout the software development life cycle. The IBM Rational® software development platform contains a variety of visual tools to help you do this. In this article, you get an overview of the benefits of using Rational tools -- including Rational Web Developer, Rational Software Modeler, Rational Application Developer, and Rational Software Architect -- and you'll be able to choose the most appropriate product for your particular task. Learn how to drag and drop your way to a visual interpretation of your design while more effectively communicating with your entire team.

Eric Long is a Software Engineer in the IBM Developer Skills Program. Eric graduated from the University of Texas at Austin with a degree in computer science. He joined IBM in July of 2004 and is currently based in Austin, Texas. His work at IBM includes delivering technical briefings and speaking engagements to developers and university faculty on open source and industry trends and technologies to a worldwide audience. He has also created a wide variety of technical demos and content available at www.ibm.com/university.

Why use visual tools?

Visual tools enable different tasks for different people. They can help:

The developer write code more efficiently

An architect view parts of a complex application, or the entire application, in an easy-to-understand graphic

All the team players in the application development process communicate with each other

Instead of showing a business executive lines of Java™ code in a text editor, you can use a visual tool to show a higher-level view of the same Java code that is easier to understand. Good visual tools can bridge the gap between business decision makers and the implementers of products.

Overview of Rational design products

Rational software has a product for everyone involved in the application development process. Rather than each member of a software development team having one large all-encompassing tool, Rational tools target different products to different members of the team. Each product integrates seamlessly with the other products, ensuring that all team members have the right tool for their respective job, and everyone on the team can communicate their work with others. For example, Web developers might not need modeling capabilities or testing and analysis tools. So, why include those capabilities in their tool, which could add confusion and increase learning time?

What's an IDE?

An Integrated Development Environment, or IDE, is a set of software development tools accessible from a single user interface. In the Rational software development platform, it means a one-stop shop for application development.

Figure 1 shows all of the Rational products, built on top of the Eclipse platform, which give all the products the same look and feel. Master one product, and the others are a cinch to learn. If you are familiar with Eclipse, you already know how to navigate around all of these products. Sure, the Rational tools have far more capability, but the underlying functions of the IDE are the same as Eclipse. Figure 1 also shows, at a very high level, how the products are related to each other.

Figure 1. Rational design and construction products

Enough with the high-level stuff. Take a look at the visual tools each of these products have to offer, in the following sections:

Rational Software Modeler

Rational Software Modeler is a customizable, Unified Modeling Language (UML) 2.0-based visual modeling and design
tool. It enables architects, systems analysts, designers, and others involved in the development process to clearly document and communicate processes,
flows, and designs. Rational Software Modeler also integrates with other tools in your environment to support team development. Figure 2 shows the functions and visual tools in Rational Software Modeler.

Figure 2. Rational Software Modeler product overview

Integration with Rational RequisitePro

Within Rational Software Modeler, you have the ability to visually integrate with a variety of tools --
from configuration management to requirements. For example, Rational Software Modeler has views that let you drag and drop requirements from Rational RequisitePro
projects directly into UML 2.0 projects housed in Rational Software Modeler. Figure 3 shows how a use case can be dragged from RequisitePro into a UML 2.0 model in Rational Software Modeler.

Figure 3. Rational Software Modeler RequisitePro drag and drop

UML 2.0 modeling

Rational Software Modeler is based on the latest open standard UML specification - 2.0. Each of the following diagrams can be modeled using Rational Software Modeler:

Class

Communication

Component

Composite structure

Deployment

Activity

Sequence

State

Use case

Figure 4 shows the UML visual editor in Rational Software Modeler. An actor and two use cases, with associations, (UC1 and UC2) have been added to the model.
The Palette at the right contains all of the UML 2.0 objects that can be added to the different types of models. Creating a model is as simple as clicking
objects from the Palette, then clicking in the editor (sticky drop).

Figure 4. Rational Software Modeler UML 2.0 modeling

Pattern authoring

A pattern is a parameterized representation of a solution to a recurring problem. It is typically expanded from a general solution to a
specific solution based on the pattern's input parameters. In Rational Software Modeler, applying patterns to existing projects or beginning a project with a
particular pattern couldn't be easier. Again, all you do is drag and drop. (Noticing a trend?)

If you already have a project, you can drag and drop your existing application elements into the visual representation of the pattern's parameters. Or, use the visual representation of a pattern to create
your own elements from scratch. Rational Software Modeler comes prepackaged with all of the Gang of Four design patterns (Behavioral, Structural, and Creational). If you need more patterns or want to create your own, Rational Software Modeler has tools and wizards for importing and creating them.

In Figure 5 you can see the Pattern Explorer, where all the magic happens. Much like the Palette, the Pattern Explorer view lets you simply drag and drop a specific component (a pattern in this case) onto the editor. From here, you can link the patterns parameters to any class objects you may already have, or create new class objects, from the visual representation of the pattern.

Figure 5. Rational Software Modeler Pattern Explorer

Rational Web Developer

Rational Web Developer allows you to build, test, and deploy Web, Web services, and Java applications with an IDE that is easy to learn and use. Optimized
for IBM WebSphere® software and capable of supporting multivendor runtime environments, Rational Web Developer for WebSphere
Software is powered by the Eclipse open source platform, allowing you to adapt and extend your development environment to match your needs and
increase productivity. When used with the IBM Software Development Platform, you can access a broad range of requirements and change
management functions directly from Rational Web Developer. Figure 6 shows the functions and visual tools Rational Web Developer provides for Web development.

Figure 6. Rational Web Developer overview

Rational Web Developer contains wizards and tools that let developers with any skill level or background build rich, data-driven applications
using one common interface. The following section focuses on these visual tools:

Web Site Designer

Rational Web Developer's Web Site Designer tool, shown in Figure 7, brings all aspects of Web site design into one place. Using this tool, you can create, import, and manage entire Web sites.
After importing an entire Web site, you can edit styles globally, then add or delete pages from a variety of views. Page templates can be custom made to ensure consistent design.
A Navigation view displays site hierarchy and gives you another way to easily edit site content. All the tools in the Web Site Designer are dynamically
linked, so any changes to site structure or navigation are automatically regenerated.

Figure 7. Rational Web Developer - Web Site Designer

Web services

UDDI

Universal Description, Discovery and Integration Protocol

WSDL

Web Services Description Language

WS-I

Web Services Interoperability Organization

XML

eXtensible Markup Language

Creating and consuming Web services is a snap with Rational Web Developer. Most of the low-level coding (in WSDL, UDDI, or XML) is virtually eliminated while using the Web services tools. If you
want to convert parts of existing applications into Web services, all it takes is a few clicks. Context menus within the tool take care of the rest.
These include WSDL editors that allow a very graphical, context-oriented way of creating or editing WSDL files.

The Web services visual tools ensure that any Web services created or consumed, then edited,
are going to comply with the WS-I standards (as long as you do not edit the auto-generated code, of course). With Rational Web Developer, any type of developer can quickly become a Web services consumer or creator using these
visual tools. Figure 8 shows the WSDL editor within Rational Web Developer.

Figure 9. Rational Web Developer - Page Designer

Java development tools

With Rational Web Developer you get more than just a variety of Web development tools -- you also have access to a best-of-breed Java development tool. In addition to the expected class editor functions, Rational Web Developer users can view their classes
using different views.

For example, the Package Explorer view displays the different projects and packages, as well as the contents of those projects and packages. Click any element in the view to quickly open the editor for that particular element. It can also be used
to understand a high-level view of complex applications. An Outline view is available to explore the inner elements of a Java class. This tool is extremely useful when exploring or trying to understand new (inherited) code.
Figure 10 shows both of these views.

UML visual editors

Unlike the diagrams offered in Rational Software Modeler, these are visualizations of actual code.
Any changes to the diagrams directly affect the underlying code. So, true UML 2.0 modeling is not possible using Rational Application Developer.
UML 2.0 notation is used in these diagrams as a way to visualize and understand the code.

Class, sequence, and database schema diagrams use visual tools similar to Rational Software Modeler. A palette is used to drag and drop different components onto
the editor. With Rational Application Developer, additions or subtractions from the diagram generate actual code that is synchronized with a file. For example, if a class is dragged and dropped into a class diagram, a corresponding
Java class file will be created automatically. Browse and topic diagrams are static, high-level snapshots taken of particular elements to show how they are related. They are useful
in gaining understanding of unknown elements in an application. Figure 12 shows the class diagram editor in Rational Application Developer. For more information about using the visualization tools in Rational Application Developer, register for the tutorial, "Visualize with Rational Application Developer."

Figure 12. Rational Application Developer - UML Class Diagram editor

Component testing

Rational Application Developer offers you fully functional unit and application programming interface (API) tests for Java classes, Enterprise
JavaBeans, and Web services, which are all based on the JUnit framework. It also provides testing guidance, such as what to test first and which test patterns apply to a particular section of code.
Component testing in Rational Application Developer includes:

Automated unit and API testing with automated data generation

Statistic-based test prioritization guidance

Automated stub generation

Figure 13 shows some of the visual tools for testing available in Rational Application Developer.

Figure 13. Rational Application Developer - component testing

Code review and runtime analysis

Code review in Rational Application Developer is like enforcing code rule compliance every time you use the tool. Rational Application Developer comes prepackaged with the following types of code reviews:

Quick code review

Complete code review

J2EE best practices code review

J2SE best practices code review

Globalization code review

Within these reviews, rule categories can be toggled on or off, and new categories can be custom made using a simple wizard. Different views
offer you insight into errors or warnings when performing a code review using the tool. For example, a rule violation in a Java class will be underlined with a red squiggly line. Views in Rational Application Developer provide explanations of what
rule has been violated, examples of how to fix it, and may even have quick fixes (automatic fixes) available. The idea is to catch code violations early and often in the early stages of development.
Figure 14 shows the visual code review tools available in Rational Application Developer.

Figure 14. Rational Application Developer - code review

Visual portal and portlet development

The portal and portlet visual tools in Rational Application Developer are the same as those discussed in Rational Web Developer, except
that the Palette in Rational Application Developer contains portal and portlet components that can be dragged and dropped onto the editor. J2EE functions are also available. Figure 15
highlights some of the benefits of Rational Application Developer's portal and portlet development tools.

Figure 15. Rational Application Developer - portal development

Rational Software Architect

Rational Software Architect is an integrated design and development tool that leverages model-driven development
with the UML for creating well-architected applications and services. It is the superset of all the products discussed in this article, and therefore has
the capability to do all of the previously mentioned functions. Integrating any projects from the other Rational products is seamless. Figure 16 shows the functions and visual tools available in Rational Software Architect.

Figure 16. Rational Software Architect product overview

UML language transforms

Because Rational Software Architect contains Rational Software Modeler, you can create many different UML models and diagrams. Now, with Rational Software Architect, you also have the capability to transform
those diagrams and models into actual code. Transformations that come with Rational Software Architect include:

UML to Java

UML to XSD

UML to EJB

UML to CORBA

UML to C++

You are not restricted to these five transformations, however. Custom transformations can be defined using Rational Software Architect. Figure 17 shows the Run Transformation wizard that walks you through a particular type of transformation. It also shows the context menu that you see when transforming a class diagram.

Figure 17. Transformation

Java structural analysis

Rational Software Architect provides architects and developers with powerful tools for architecture discovery, which helps in the structural analysis of applications. Architecture discovery uses static analysis for
validation of the structure of an existing Java application or component, and mines the code base for implementation of known design and structural patterns. This gives developers and architects
a better and quicker understanding of any type of Java code. Topic diagrams are created by Rational Software Architect that are updated as the code base changes. Along with the architecture control rules that come with
Rational Software Architect, architecture discovery serves as a snapshot of the inner workings of the developed code. Figure 18 shows Java structural analysis visual tools in Rational Software Architect.

Figure 18. Rational Software Architect - structural analysis

C/C++ Development Tools

Unlike the other Rational products, Rational Software Architect comes packaged with a C/C++ development environment in addition to the robust Java environment. C/C++ developers and architects can take advantage of most of the visual tools Rational offers in these four products. Figure 19 shows the C/C++ environment in action.

Figure 19. Rational Software Architect - C/C++ development tools

Wrap-up

Knowing when and where to use Rational products is key to improving your software development process. In this article, you learned about the roles and the functions that Rational development and construction products play during your project's life cycle, including examples of the tools in action.

Stay tuned to developerWorks for tutorials about these products from IBM Rational software. The tutorials will help you accomplish specific development tasks while using all of the visual tools.

The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.