Develop apps using Rational integrated tools
Application development process
Building applications is a long and difficult process, often made even more difficult through the complexities of actually managing the development process itself. Collating requirements, building a suitable model, writing and extending the code and testing the product are stages that all software goes through. Once you've started to test and deploy your application, change requests and defect tracking add to this complexity. You'll start to need more in-depth management systems to track a defect from its origin during testing, to the source of the problem in the model, and maybe even the original requirements.
Ignoring the Rational approach, just for a second, it's possible to model the development process like Figure 1.
Figure 1: A basic development model
If you look at this diagram, the inception of a new project starts with the definition of the Requirements. Once the requirements are sorted you can develop a specification of the project, followed by the development of the actual code and application. You can go through a series of testing, repeating the development cycle in event of a bug, before finally releasing the software. Once the software has been released, you need to track any bugs, which should eventually feed back into the requirements for the next release of the same project, at which point the whole process starts all over again.
The Rational Unified Process applies a similar, simple model to the development process. Let's have a look at the Rational model, and then how you apply the Rational tools to the process.
Developing with the Rational Unified Process
Developing applications using the Rational Unified Process centers around the same basic principles outlined in the previously, but applies four main features to the process:
- Iterative and incremental development -- rather than designing the entire application, then writing the code, then testing, go through a series of iterations within each following the same sequence, but only developing part of the application each time.
- Object oriented -- makes the code easier to build and reuse, and promotes the creation of small, flexible components that can be bonded together to create larger applications.
- Manage and control -- create logs and a traceable sequence that enable you to trace features from the original requirement to the component in the application.
The process can work in a completely manual fashion. However, the process also lends itself to being automated. This is the role of the Rational Suite - providing a range of tools and applications to simplify and automate the process. Using these tools also simplifies the process for the teams and individuals working in your development department to develop applications quickly and easily, while following the previous three features.
The result is a development cycle that looks like the one shown in Figure 2.
Figure 2: The Rational Unified Process Model
Figure 2 follows the same basic sequence as described previously. Start with the inception of the project, defining the features and requirements, the elaboration that expands the requirements and defines the model, the construction that builds the model and generates code and finally the transition where you start to track defects.
The automation of the process relies on a number of Rational applications. In the next section you'll see where in the process these tools fit into the equation.
Developing with the Rational Toolset
Rational software includes a variety of tools that enable you to develop an application using the principles of the Rational Unified Process (RUP). You can attach specific tools to different parts of the process according to Figure 3.
Figure 3: Attaching Rational Tools to the Rational Unified Process
In more detail, the packages mentioned in figure 3 cover the following tasks:
- RequisitePro -- Requirements Management, using a design such that requirements can be updated either directly or through Microsoft Word. You can change requirements by simply editing the content of a document, and you can update, track and merge requirements through the tool.
- Rational XDE -- Application modeling, using UML and the model driven architecture. Using Rational XDE, it's possible to, manually, turn the requirements from RequisitePro into a model within XDE, and then build the corresponding classes and code that can be used to build the application.
- WebSphere Studio Application Developer (WSAD) -- Application development. This integrates directly with the Rational XDE to enable you to customize and extend the functionality of your application, based on the model, and ultimately the requirements, which you developed in the first phase.
- ClearCase -- Configuration Management of your code base and models. WSAD and XDE can interface with ClearCase to provide management across the whole development process for your entire team.
- ClearQuest -- Defect Tracking and activity management. The defect tracking allows you to trace and track errors back to their original location. Activity management enables you to track the activity on different components of your development include code, models and other information. ClearQuest integrates with the other applications so that you can track defects and activity across components, requirements and follow the information from component to component.
- PurifyPlus -- Runtime Analysis of your application to monitor its use of memory. Memory leaks and problems are one of the most common faults in applications -- barring typographical errors and bad programming, which should be eliminated through the testing and methodologies applied when using the Rational toolset. This integrates with WSAD to provide information on the elements of your application that are causing problems.
- Functional Tester -- Function-based testing of an application to ensure that the application achieves its original goal. This integrates with WSAD and other tools to identify and track problems and their resolution.
- Team Unifying Platform (TUP) -- is a collection of the core tools (RequisitePro, ClearCase, ClearQuest, TestManager) and a new tool called ProjectConsole. ProjectConsole aggregates status and metrics information from all of the tools, including Rational XDE and others, and provides a central location for the viewing and dissemination of status information within across a development team.
The primary purpose of this series is to look at the integration of these different components when building an application and how the integration can simplify the process of developing applications. We'll also take the opportunity to look at how the tools can be used by teams to develop applications across a department, entire company or enterprise.
The IBM Online Auction sample is used throughout this series as an example application. The Auction system is included as the sample application with WebSphere Studio Application Developer. The best way to get the system is to install a copy of WSAD and then follow the built-in help and instructions to create a WebSphere project based on the Auction code. You can also download a training video for building the system from the IBM Web site. See Prerequisites for more information.
Because the auction application is one you might be familiar with from using WebSphere Studio Application Developer, you can concentrate less on the code for the application and more on the integration of the different tools you'll be using in this tutorial. For that reason, on occasion, you might look at an alternative example to demonstrate a particular piece of functionality, although the overall aim is to document the process of building the Online Auction system.
For those not familiar with the application, the Online Auction is a Web application that employs J2EE technology using Java beans, JDBC, HTML, JavaScript, JSP pages and other components. The result is an auction system that is functionally very similar to Ebay, Yahoo, Amazon and other auction sites and systems. Users can place items for sale and other users can bid for the items and eventually win and pay for them.

