The RUP ”A Well-Defined Software Engineering ProcessThe Rational Unified Process itself was designed with techniques similar to those used in software design. In particular, it is modeled using the Software Process Engineering Metamodel (SPEM) [3] ”a standard for process modeling based on the Unified Modeling Language (UML). [4] Figure 1.2 shows the overall architecture of the Rational Unified Process. The process has two structures or, if you prefer, two dimensions:
Figure 1.2. Two Dimensions of the RUP. The Rational Unified Process is organized along two dimensions: The dynamic aspect (horizontal) expresses cycles, phases, iterations, and milestones; the static aspect (vertical) expresses activities, disciplines, artifacts, and roles.
These dimensions are discussed in the following sections. The Dynamic Structure of the Rational Unified ProcessThe dynamic structure deals with the lifecycle or time dimension of a project. The RUP provides a structured approach to iterative development, dividing a project into four phases: Inception, Elaboration, Construction, and Transition (see Figure 1.3). [5] Chapters 6 through 9 discuss these phases in detail. The objectives and milestones of the phases are listed in the sidebar RUP Lifecycle Phases, Objectives, and Milestones.
Figure 1.3. Milestones for the RUP Lifecycle Phases. Each of the RUP's four phases has a milestone and a well-defined set of objectives. Use these objectives as a guide for deciding which activities to carry out and which artifacts to produce.
Each phase contains one or more iterations , which focus on producing the technical deliverables necessary to achieve the business objectives of that phase. There are as many iterations as it takes to address the objectives of that phase sufficiently, but no more . If objectives can't be addressed within the planned phase, another iteration should be added to the phase ”which will delay the project. To avoid this, make sure that each iteration is sharply focused on just what is needed to achieve the business objectives of that phase. For example, focusing too heavily on requirements in Inception is counterproductive. Chapter 12 discusses project planning.
The Static Structure of the Rational Unified ProcessThe static structure deals with how process elements ”activities, disciplines, artifacts, and roles ”are logically grouped into core process disciplines. A process describes who is doing what , how , and when . As shown in the sidebar Four Key Modeling Elements of the RUP and Figure 1.4, the Rational Unified Process is represented using four key modeling elements. Figure 1.4. Roles, Activities, and Artifacts. A role expresses who (an individual or a group) is doing the work; an activity describes how the work is done; and an artifact captures what is done.
RolesA role is like a "hat" that an individual (or group) wears during a project. One individual may wear many different hats. This is an important point because it is natural to think of a role as an individual on the team, or as a fixed job title, but in the RUP the roles simply define how the individuals should do the work, and they specify the competence and responsibility that the individual(s) playing that role should have. A person usually performs one or more roles, and several people can perform the same role. ActivitiesAn activity of a specific role is a unit of work that an individual in that role may be asked to perform. The activity has a clear purpose, usually expressed in terms of creating or updating some artifacts, such as a model, a component, or a plan. Each activity is assigned to a specific role. An activity generally takes a few hours to a few days to complete, usually involves one person, and affects one or only a small number of artifacts. An activity should be usable as an element of planning and progress; if it is too small, it will be neglected, and if it is too large, progress would have to be expressed in terms of an activity's parts . Activities may be repeated several times on the same artifact ” especially when going from one iteration to another, refining and expanding the system ”by the same role, but not necessarily by the same individual. StepsActivities are broken down into steps, which fall into three main categories:
Not all steps are necessarily performed each time an activity is invoked, so steps can be expressed in the form of alternate flows. ArtifactsAn artifact is a piece of information that is produced, modified, or used by a process. Artifacts are the tangible project elements: things the project produces or uses while working toward the final product. Artifacts are used as input by roles to perform an activity and are the result or output of other activities. Artifacts may take various shapes or forms:
An artifact can be documented formally (using a tool) or informally (captured in an e-mail message or on a whiteboard). This will be discussed in more detail in Chapter 3 and Chapters 6 “9. WorkflowsA mere listing of all roles, activities, and artifacts does not quite constitute a process. You need a way to describe meaningful sequences of activities that produce some valuable result and to show interactions between roles ”this is exactly what workflows do. Workflows come in different shapes and forms; the two most common workflows are Disciplines, which are high-level workflows (see the section Disciplines that follows ), and Workflow Details, which are workflows within a discipline. In UML terms, a workflow can be expressed as a sequence diagram, a collaboration diagram, or an activity diagram. Figure 1.5 shows an example workflow. Note that it is not always possible or practical to represent all of the dependencies between activities. Often two activities are more tightly interwoven than shown, especially when carried out by the same individual. People are not machines, and the workflow cannot be interpreted literally as a program for people to be followed exactly and mechanically. Figure 1.5. The Workflow of the Requirements Discipline. A workflow shows in what order to carry out activities to accomplish something of measurable value. RUP workflows typically show only the most essential dependencies between activities to avoid cluttering the view.
Additional Process ElementsRoles, activities (organized in workflows), and artifacts represent the backbone of the Rational Unified Process static structure. But there are some other elements added to activities or artifacts that make the process easier to understand and use and that provide more complete guidance to the practitioner. These additional process elements are
Figure 1.6 shows how these elements enhance the primary elements. Figure 1.6. Adding Templates, Tool Mentors, and Guidelines. Templates jump-start the production of an artifact; tool mentors provide detailed guidance for carrying out an activity, or step, using the tools at hand; and guidelines provide detailed guidance on activities, steps, or artifacts.
DisciplinesFinally, all process elements ”roles, activities, artifacts, and the associated concepts, guidelines, and templates ”are grouped into logical containers called Disciplines. There are nine disciplines in the standard RUP product (see the RUP Disciplines sidebar).
This list is not definitive, and any company doing extensions to the RUP product could introduce additional disciplines. |