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?
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 Web Developer
- Rational Application Developer
- Rational Software Architect
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
This section focuses on three visual tools:
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:
- Composite structure
- 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
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
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 8. Rational Web Developer - WSDL Editor
Rich client UI construction
Rational Web Developer lets you build data-driven Web applications with rich user interfaces using little more than a few mouse clicks in the Page Designer view. Within this view, you can visually drag and drop JavaServer Faces components, UI components, and even Service Data Objects. The WYSIWIG editors give even novice programmers the capability to create elaborate Web pages. Page Designer eliminates coding for rich, highly functional Web applications. Figure 9 shows the Rational Page Designer interface.
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.
Figure 10. Rational Web Developer - Java development tools
Rational Application Developer
Rational Application Developer (formerly WebSphere Studio Application Developer) lets you quickly design, develop, analyze, test, profile, and deploy Web, Web services, Java, J2EE and portal applications with this comprehensive IDE. Optimized for WebSphere software, it supports multivendor runtime environments. Because Rational Application Developer is powered by the Eclipse open source platform, you can adapt and extend your development environment to match your needs and increase your productivity. When used with the IBM Software Development Platform, you can access a broad range of requirements and change-management functions directly from Rational Application Developer. Figure 11 shows the functions and visual tools available in Rational Application Developer.
Figure 11. Rational Application Developer product overview
This section focuses on these visual tools:
- UML visual editors
- Component testing
- Code review and runtime analysis
- Visual portal and portlet development
UML visual editors
Rational Application Developer offers the following types of UML visual diagrams:
- Class diagrams
- Database diagrams
- Browse and topic diagrams
- Sequence diagrams
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
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
This section focuses on the following visual tools:
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
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.
- Visualize with Rational Application Developer: Use Rational visual diagramming tools to create four diagram types in Rational Application Developer, including class, sequence, browse, and topic diagrams.
- Rational Software Modeler: Read product information, go to learning resources, and discover the support and community aspects.
- Rational Web Developer: Learn all about Rational Web Developer for WebSphere Software.
- Rational Application Developer: Read the product information and take advantage of the learning resources for Rational Application Developer for WebSphere Software (WebSphere Studio Application Developer).
- Rational Software Architect: Tap into product information, and learn how Rational Software Architect includes a comprehensive framework that you can use to author patterns and transforms.
- Gang of Four Design Patterns: Learn more about these design patterns.
- Visit the developerWorks Rational zone to expand your Rational skills, and find technical resources and best practices for the Rational software platform.
- Eclipse: Read about this open source IDE.
- Stay current with developerWorks technical events and webcasts.
Get products and technologies
- Rational Software Downloads: Get trial downloads of Rational products.
- Register for the complimentary IBM software architect kit: Featuring podcasts and demos for Rational products.
- Build your next development project with IBM trial software, available for download directly from developerWorks.
- Participate in developerWorks blogs and get involved in the developerWorks community.