Overview >
Key Concepts
Key Concepts Basic concepts in the Rational Unified Process Software Engineering
Process
A process is a set of partially ordered steps intended to reach a goal; in software engineering the goal is to build a software product, or to enhance an existing one; in process engineering, the goal is to develop or enhance a process. Expressed in terms of business modeling, the software development process is a business process; the Rational Unified Process (RUP) is a generic business process for object-oriented software engineering. It describes a family of related software engineering processes sharing a common structure, a common process architecture. It provides a disciplined approach to assigning tasks and responsibilities within a development organization. Its goal is to ensure the production of high-quality software that meets the needs of its end users, within a predictable schedule and budget. The RUP captures many of the best practices in modern software development in a form that can be tailorable for a wide range of projects and organizations. When a software system is developed from scratch, development is the process of creating a system from requirements. But once the systems has taken form (or in our terms, once the system has passed through the initial development cycle), any further development is the process of conforming the system to the new or modified requirements. This applies throughout the system's lifecycle. The software-engineering process is the process of developing a system from requirements, either new (initial development cycle) or changed (evolution cycle). Roles
The most central concept in the Process is that of a role. A role defines the behavior and responsibilities of an individual, or a set of individuals working together as a team, within the context of a software engineering organization. The Roles Overview provides additional information on roles. The organization of roles and their activities in the treebrowser Note that roles are not individuals; instead, they describe how individuals should behave in the business and the responsibilities of an individual. Individual members of the software development organization will wear different hats, or perform different roles. The mapping from individual to role, performed by the project manager when planning and staffing the project (see Activity: Acquire Staff), allows different individuals to act as several different roles, and for a role to be played by several individuals. Activity
Roles have activities that define the work they perform. An activity is something that a role does that provides a meaningful result in the context of the project. See Activity: Capture a Common Vocabulary for an example of an activity. A typical role, showing its activities in the treebrowser An activity is a unit of work that an individual playing the described 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 class, a plan. Every activity is assigned to a specific role. The granularity of an activity is generally a few hours to a few days, it usually involves one role, 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 the same individual.
Steps
Activities are broken down into steps. Steps fall into three main categories:
Not all steps are necessarily performed each time an activity is invoked, so they can be expressed in the form of alternate flows. Example of steps: The Activity: Find use cases and actors decomposes into the steps:
The finding part [steps 1 to 3] requires some thinking; the performing part [steps 4 to 6] involves capturing the result in the use-case model; the reviewing part [step 7] is where the individual performing the role evaluates the result to assess completeness, robustness, intelligibility, or other qualities. Work Guideline
Activities may have associated Work Guidelines, which present techniques and practical advice that is useful to the role performing the activity. Applicable work guidelines are hyperlinked from the activity description itself. The Work Guidelines Overview also summarizes the available set of work guidelines, and is accessible from the top level of the treebrowser. Artifact
Activities have input and output artifacts. An artifact is a work product of the process: roles use artifacts to perform activities, and produce artifacts in the course of performing activities. Artifacts are the responsibility of a single role and promote the idea that every piece of information in the process must be the responsibility of a specific person. Even though one person may "own" the artifact, many other people may use the artifact, perhaps even updating it if they have been given permission.
Major artifacts in the process, and the approximate flow of information between them. The diagram above shows how information flows through the project, via the artifacts; the arrows show how changes in one artifact ripple through other artifacts along the arrows. For clarity, many artifacts are omitted (e.g. the many artifacts in the design model are omitted, being represented by the Artifact: Design Model). To simplify the organization of artifacts, they are organized into "information sets", or artifact sets. An artifact set is a grouping of related artifacts that tend to be used for a similar purpose. The Artifact Overview presents more information on artifacts and artifact sets. Artifacts and artifact sets in the treebrowser Artifacts may take various shapes or forms:
Note that "artifact" is the term used in the RUP. Other processes use terms such as work product, work unit, and so on, to denote the same thing. Deliverables are only the subset of all artifacts that end up in the hands of the customers and end-users. Artifacts are most likely to be subject to version control and configuration management. This is sometimes only achieved by versioning the container artifact, when it is not possible to do it for the elementary, contained artifacts. For example, you may control the versions of a whole design model, or design package, and not of individual classes they contain. Artifacts are typically not documents. Many processes have an excessive focus on documents, and in particular on paper documents. The RUP discourages the systematic production of paper documents. The most efficient and pragmatic approach to managing project artifacts is to maintain the artifacts within the appropriate tool used to create and manage them. When necessary, you may generate documents (snapshots) from these tools, on a just-in-time basis. You should also consider delivering artifacts to the interested parties inside and together with the tool, rather than on paper. This approach ensures that the information is always up-to-date and based on actual project work, and it shouldn’t require any additional effort to produce. Examples of artifacts:
However, there are still artifacts which have to be plain text documents, as in the case of external input to the project, or in some cases where it is simply the best means of presenting descriptive information.
Template
Templates are "models," or prototypes, of artifacts. Associated with the artifact description are one or more templates that can be used to create the corresponding artifacts. Templates are linked to the tool that is to be used. For example:
As with guidelines, organizations may want to customize the templates prior to using them by adding the company logo, some project identification, or information specific to the type of project. Templates are organized in the treebrowser beneath their associated artifact. They are also summarized in a separate treebrowser entry showing all templates. Expanded portion of the treebrowser, showing the different kinds of templates in the RUP.
Report
Models and model elements, may have reports associated with them. A report extracts information about models and model elements from a tool. For example, a report presents an artifact or a set of artifacts for a review. Unlike regular artifacts, reports are not subject to version control. They can be reproduced at any time by going back to the artifacts that generated them. Reports are organized in the treebrowser beneath the artifact on which they report. Artifact Guidelines and Checkpoints
Artifacts typically have associated guidelines and checkpoints which present information on how to develop, evaluate and use the artifacts. Much of the substance of the Process is contained in the artifact guidelines; the activity descriptions try to capture the essence of what is done, while the artifact guidelines capture the essence of doing the work. The checkpoints provide a quick reference to help you assess the quality of the artifact. Both guidelines and checkpoints are useful in a number of contexts: they help you decide what to do, they help you to do it, and they help you to decide if you've done a good job when you're done. Guidelines and checkpoints related to each specific artifact are organized along with that artifact in the treebrowser. Artifact guidelines are also summarily presented in the Artifact Guidelines Overview. A typical artifact in the treebrowser, with checkpoints and guidelines expanded. Workflows
A mere enumeration of all roles, activities and artifacts does not constitute a process; we need a way to describe meaningful sequences of activities that produce some valuable result, and to show interactions between roles. A workflow is a sequence of activities that produces a result of observable value. In UML terms, a workflow can be expressed as a sequence diagram, a collaboration diagram, or an activity diagram. We use a form of activity diagrams in the RUP. For each discipline, an activity diagram is presented. This diagram shows the workflow, expressed in terms of workflow details. Sample activity diagram, from the requirements discipline, showing workflow details and transitions. One of the great difficulties of describing the process is that there are many ways to organize the set of activities into workflows. We have organized the RUP using:
Disciplines
A discipline is a collection of related activities that are related to a major 'area of concern' within the overall project. The grouping activities into disciplines is mainly an aid to understanding the project from a 'traditional' waterfall perspective - typically, for example, it is more common to perform certain requirements activities in close coordination with analysis and design activities. Separating these activities into separate disciplines makes the activities easier to comprehend but more difficult to schedule. Disciplines in the treebrowser Like other workflows, a discipline's workflow is a semi-ordered sequence of activities which are performed to achieve a particular result. The "semi-ordered" nature of discipline workflows emphasizes that the discipline workflows cannot present the real nuances of scheduling "real work", for they cannot depict the optionality of activities or iterative nature of real projects. Yet they still have value as a way for us to understand the process by breaking it into smaller 'areas of concern'. Each 'area of concern' or discipline has associated with it one or more 'models', which are in turn composed of associated artifacts. The most important artifacts are the models that each discipline yields: use-case model, design model, implementation model, and test model. Each discipline is associated with a particular set of models. For each discipline, an activity overview is also presented. The activity overview shows all activities in the discipline along with the role that performs the activity. An artifact overview diagram is also presented. This diagram shows all artifacts and roles involved in the discipline. Sample artifact overview diagram, from the business modeling discipline. It is useful to note that the 'discipline-centric' organization of artifacts is sometimes, though not always, slightly different from the artifact set organization of artifacts. The reason for this is simple: some artifacts are used across disciplines; a strict discipline-centric grouping makes it more difficult to present an integrated process. If you are using only a part of the process, however, the discipline-centric artifact overviews may prove more useful. Workflow Details
For most of the disciplines, you will also find workflow detail diagrams, which show groupings of activities that often are performed "together". These diagrams show roles involved, input and output artifacts, and activities performed. The workflow detail diagrams are there for the following reasons:
Sample workflow detail diagram, from the business modeling discipline. Other Concepts
Tool mentor
Activities, steps, and associated guidelines provide general guidance to the practitioner. To go one step further, tool mentors are an additional means of providing guidance by showing how to perform the steps using a specific software tool. Tool mentors are provided in the RUP, linking its activities with tools such as Rational Rose, Rational RequisitePro, Rational ClearCase, Rational ClearQuest, Rational Suite TestStudio. The tool mentors almost completely encapsulate the dependencies of the process on the tool set, keeping the activities free from tool details. An organization can extend the concept of tool mentor to provide guidance for other tools. An example of Tool mentors and their organization in the treebrowser Concepts
Some of the key concepts of the process, such as iteration, phase, risk, performance testing, and so on, are introduced in separate sections of the process, usually attached to the most appropriate discipline. An example of Concepts and their
organization in the treebrowser |
|
Rational Unified
Process
|