In addition to these best practices, three important features of the Rational Unified Process are worth mentioning now:
The role of use cases in driving many aspects of the development
Its use as a process framework that can be tailored and extended by an adopting organization
The need for software development tools to support the process
It is often difficult to look at a traditional object-oriented system model and tell how the system does what it is supposed to do. We believe that this difficulty stems from the lack of a consistent, visible thread through the system when it performs certain tasks. In the Rational Unified Process, use cases provide that thread by defining the behavior performed by a system.
Use cases are not required in object orientation, but they provide important links between system requirements and other development artifacts such as design and tests. Other object-oriented methods provide use-case-like representation but use different names for it, such as scenarios and threads.
The Rational Unified Process is a use-case-driven approach, which means that the use cases defined for the system are the foundation for the rest of development process. Use cases play a major role in several of the process disciplines, especially requirements, design, test, and management. Use cases are also key to business modeling.
If you are unfamiliar with the concept of use case, Chapter 6, A Use-Case-Driven Process, introduces it in more detail and shows how use cases are used.
You could envisage to use one of the predefined configurations of the RUP "as is." But in doing so you run into the risk of doing too much, of getting lost in the details, or of developing artifacts that bring no value to your project in your specific context.
A process should not be followed blindly, generating useless work and producing artifacts that are of little added value. Instead, the process must be made as lean as possible while fulfilling its mission to rapidly produce predictably high-quality software. The adopting organization should complement the process with its own best practices and with its specific rules and procedures.
The Rational Unified Process is a process framework that the adopting organization can modify, adjust, and expand to accommodate the specific needs, characteristics, constraints, and history of its organization, culture, and domain. RUP 2003 offers two process bases—one for small projects and one for larger and more formal projects—and it brings an array of process components to choose from, to cover various additional disciplines (real-time system design, system engineering, user interface design), various technologies (IBM Websphere, Microsoft .NET, J2EE), programming languages, tools, and techniques.
Chapter 17, Implementing the Rational Unified Process, explains how the process is implemented in an adopting organization.
To be effective, a process must be supported by adequate tools. The Rational Unified Process is supported by a vast palette of tools that automate steps in many activities. These tools are used to create and maintain the various artifacts—models in particular—of the software engineering process, namely, visual modeling, programming, and testing. The tools are invaluable in supporting the bookkeeping associated with the change management and the configuration management that accompany each iteration.
Chapter 3 introduces the concept of tool mentors, which provide tool-related guidance. As we go through the various process disciplines in Chapters 7 through 15, we introduce the tools of choice to support the activities of each discipline.
Who Is Using the Rational Unified Process?
Probably about half a million users worldwide working in more than three thousand companies were using the Rational Unified Process in 2003. They were using it in various domains of applications and for large and small projects. This shows the versatility and wide applicability of the Rational Unified Process. Here are some examples of various uses in companies that have offices around the world:
Telecommunications: Ericsson, Alcatel
Transportation, aerospace, defense: Lockheed-Martin, British Aerospace
Manufacturing: Xerox, Volvo, Intel
Finances: Visa, Merrill Lynch, Schwab
System integrators: CAP Gemini Ernst & Young, Oracle, Deloitte & Touche
The way these organizations use the Rational Unified Process varies greatly. Some use it very formally; they have evolved their own company process from the Rational Unified Process, which they follow with great care. Others use it more informally, a sort of electronic coach on software engineering, taking the Rational Unified Process as a repository of advice, templates, and guidance, which they use as they go along.