Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational Unified Process (RUP) Static Structure: Process Description
Process A process describes who is doing what, how, and when. RUP is represented using five primary elements: Roles : the who Activities : the how Artifacts : the what Workflows : the when Disciplines : the "container" for the preceding four kinds of element 2
Process 3
Example workflow of Requirements 4
Process Elements: Roles The central concept in the process is that of a role. A role defines: the behavior and responsibilities of an individual or of a group of individuals working together as a team. 5
behavior is: activities the role performs each role is associated with a set of cohesive activities. "Cohesive" in this sense means: activities that are best performed by one person. 6 Process Elements: Roles
responsibilities of each role are usually expressed in relation to certain artifacts that the role creates, modifies, or controls. 7 Process Elements: Roles
Roles are not individuals, nor job titles. You can play the Project Manager role for an hour, then play the architect role for the rest of the morning, and switch from coder role to tester role during the afternoon. Your colleagues Joe, Stefan, and Mary might all play simultaneously the Design Reviewer role in your review later in the afternoon. 8 Process Elements: Roles
Examples of roles: System Analyst leads and coordinates requirements elicitation and use-case modeling by outlining the system's functionality and Defining boundaries of the system. 9 Process Elements: Roles
Designer defines the responsibilities, operations, attributes, and relationships of one or more classes and determines how they should be adjusted to the implementation environment. 10 Process Elements: Roles
Test Designer is responsible for planning, design, implementation, and evaluation of tests, including: generating the test plan and procedures and implementing the test procedures, and evaluating test coverage, results, and effectiveness. 11 Process Elements: Roles
12 Process Elements: Roles
Roles have activities, which … define the work they perform. An activity is a unit of work that an individual in that role may be asked to perform and that produces a meaningful result in the context of the project. 13 Process Elements: Activities
The activity has a clear purpose, It expressed in terms of creating or updating artifacts, Every activity is assigned to one specific role. The granularity of an activity is generally a few hours to a few days. It usually involves one person in the associated role and affects one or only a small number of artifacts. 14 Process Elements: Activities
Activities may be repeated several times on the same artifact, especially from one iteration to another. Repeated activities are performed by the same role but not necessarily the same individual. 15 Process Elements: Activities
examples of activities: Plan an iteration: performed by the Role: Project Manager Find use cases and actors: performed by the Role: System Analyst Review the design: performed by the Role: Design Reviewer Execute a performance test: performed by the Role: Performance Tester 16 Process Elements: Activities
Activity Steps: Thinking steps The person playing the role understands the nature of the task, gathers and examines the input artifacts, and formulates the outcome. Performing steps The person playing the role creates or updates some artifacts. Reviewing steps The person playing the role inspects the results against some criteria. 17 Process Elements: Activities
For example, the Activity: Find Use Cases and Actors 1) Find actors 2) Find use cases. 3) Describe how actors and use cases interact. 4) Package use cases and actors. 5) Present the use-case model in use-case diagrams. 6) Develop a survey of the use-case model. 7) Evaluate your results. 18 Process Elements: Activities
Activities have input and output artifacts. An artifact is a piece of information that is produced, modified, or used by a process. Artifacts are the tangible products of the project: the 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 such activities. 19 Process Elements: Artifacts
Artifacts take various shapes or forms: 1) A model such as the use-case model or the design model 2) A model element an element within a model such as a class, a use case, or a subsystem 20 Process Elements: Artifacts
3) A document such as a business case or software architecture document 4) Source code 5) Executables 21 Process Elements: Artifacts
Artifact is the term used in RUP. Other processes use terms such as work product, work units, deliverables, and so on Deliverables in RUP: are only the subset of all artifacts that end up in the hands of the customers and end users. 22 Process Elements: Artifacts
Artifacts Major artifacts of RUP: 23
Examples of artifacts: A design model in UML stored in Rational Rose A project plan stored in Microsoft Project A defect stored in Rational ClearQuest A project requirements database in Rational RequisitePro 24 Process Elements: Artifacts
Disciplines are "containers" used to organize activities of the process. There are nine main disciplines in RUP 25 Process Elements: Disciplines
The nine core disciplines are divided into six technical disciplines and three supporting disciplines. 26 Process Elements: Disciplines
27 Process Elements: Disciplines
A workflow is a sequence of activities that produces a result of observable value. 28 Process Elements: Workflows
RUP uses three types of workflow: 1) Core workflows, associated to each discipline 2) Workflow details, to refine the core workflow 3) Iteration plans 29 Process Elements: Workflows
These additional process elements are: Guidelines Templates Tool mentors Concepts 30 Additional Process Elements
31 Additional Process Elements
Guidelines are: rules, recommendations, or heuristics that support activities and steps. Guidelines are used also to assess the quality of artifacts. 32 Process Elements: Guidelines
Types of guidelines: 1) Work guidelines give practical advice on how to undertake an activity, for example: Work guidelines for reviews Work guidelines for a use-case workshop Work guidelines for programming, such as programming in pairs 33 Process Elements: Guidelines
2) Artifact guidelines describe how to develop, evaluate, and use the artifact; for example: How to create a specific artifact User-interface guidelines 34 Process Elements: Guidelines
Some guidelines need to be refined or for a given organization or project to accommodate project specifics 35 Process Elements: Guidelines
examples: User-interface guidelines, such as a description of the windowing style specific to a project: color palette, fonts, gallery of icons, and so on Programming guidelines, such as a description of naming conventions specific to the project 36 Process Elements: Guidelines
Templates are linked to the tool that is to be used. For example: Microsoft Word templates for documents and some reports Microsoft Project template for the project plan and iteration plan 37 Process Elements: Templates
Organizations may want to customize the templates before using them by adding the company logo, some project identification, or information specific to the type of project. 38 Process Elements: Templates
Tool mentors provide guidance by showing you how to perform the steps using a specific software tool. Tool mentors in RUP are for Rational Rose, RequisitePro, ClearCase, ClearQuest, and TestStudio 39 Process Elements: Tool Mentors
A development organization can extend the concept of tool mentor to provide guidance for other tools. 40 Process Elements: Tool Mentors
Some of the key concepts, such as: iteration, phase, artifact, risk, performance testing, and so on, are introduced in separate sections of the process, 41 Process Elements: Concepts
With this structure, … RUP constitutes a process framework. Roles, artifacts, activities, guidelines, concepts, and mentors are the elements that: you can add or replace to evolve or adapt the process to the organization's needs. 42 A Process Framework