Rational Unified Process
...ements A documentation framework is essential for any large project; hence, RUP describes how to document functionality, constraints, design decisions and business requirements. Use Cases and Scenarios, are examples of artifacts prescribed by the process and have been found to be very effective at both capturing functional requirements and providing coherent threads throughout the development and deployment of the system. Use component based architecture Component Based Architecture creates a system that is easily extensible, promotes software reuse and intuitively understandable. A component often relates to an object in Object Orientated Programming. The RUP provides a systematic way to build this kind of system, focusing on producing an early executable architecture before committing full resources on a project. These components are often assembled within existing infrastructures such as CORBA and COM. Visually Model Software Abstracting your programming from its code and representing it using graphical building blocks is an effective way to get an overall picture of a solution. It can also allow less technically competent individuals who may have a better understanding of the problem to have a greater input. Unified Modeling Language (UML) is the industry standard way of representing projects and is hence usually used by the RUP. Verify Software Quality Quality Assessment is the most common failing point of all software projects, often an afterthought in such projects and even handled by a different team. The RUP assists in planning quality control and assessment built into the entire process involving all members of a team. Control Changes to Software In all software projects change is inevitable, the RUP defines methods to control track and monitor changes. As a seemingly small change can affect applications in entirely unpredictable ways, this is essential for a successful project. The RUP also defines secure workspaces allowing a programmer to be guaranteed that changes in another system will not affect his system. This ties in heavily with Component based architectures. So far these guidelines are general, to be adhered to throughout a project's lifecycle. To capture the time dimension of a project the RUP divides a project into four distinct phases: • Inception • Elaboration • Construction • Transition Each of these four phases are organized into a number of separate iterations that must satisfy defined criteria before the next phase is undertaken. In the inception phase, developers define the scope of the project and its business case. In the elaboration phase, developers analyze the project's needs in greater detail and define its architectural foundation. In the construction phase, developers create the application design and source code; and in the transition phase, developers deliver the system to users. RUP would provide us a prototype at the completion of each iteration. The product also includes process support for Java 2 Enterprise Edition (J2EE), BEA (WebLogic) development or IBM (WebSphere) and supplies an HTML-based description of the unified process that an organization can customize for its own use. The essence of RUP is iteration. The essence of iteration is that each iteration ends in a deliverable, preferably one that executes. Even in inception, users are going to want a few iterations that show growing functionality. During inception, users will gather a significant fraction of the use cases. Users will focus on those that seem to be central or key. The iterations will be implementing some of these. During elaboration, users will tighten up their architecture and their plan. The nature of the iterations will not necessarily change much; but the longevity of the software produced will certainly increase. Early iterations (usually in the inception phase) have a tendency to be thrown out. During elaboration, you will discover the rest of the use cases (or at least their first approximations) and will implement the...