4. rup 2007. 2 what is the rational unified process? the rup is a software development approach that...

135
4. RUP 2007

Upload: magnus-mathews

Post on 17-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

4. RUP

2007

Page 2: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

2

What Is the Rational Unified Process?

• The RUP is a software development approach that is – iterative, – architecture-centric, and – use-case-driven

• The RUP is a well-defined and well-structured software engineering process

• The RUP is also a process product that provides you with a customizable process framework for software engineering

Page 3: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

3

Use Case driven

A use case is a piece of functionality in the system that gives a user a result of value

• Use cases capture functional requirements

• Use case answers the question: What is the system supposed to do for the user?

Page 4: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

4

Architecture centric

• Architecture centric– similar to architecture for building a house

• Embodies the most significant static and dynamic aspects of the system

• Influenced by platform, OS, DBMS etc.

• Primarily serves the realization of use cases

Page 5: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

5

Iterative and Incremental

• Iterative and Incremental– commercial projects continue many months

and years– to be most effective - break the project into

iterations

• Every iteration - identify use cases,create a design, implement the design

• Every iteration is a complete development process

Page 6: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

6

Waterfall and Iterative Process

Page 7: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

7

Iterative and Incremental Development Process

Iteration No.

Analyzerequirements

Test whole

Implement

Design

Test units

Integrate

1 2 3 867 868

Page 8: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

8

UP Terminology (1)

ElaborationInception Construction Transition

Requirements

Analysis

Iter.#1

Iter.#n

Iter.#n+1

Iter.#m

Iter.#m+1

Iter.#k

….. …..Prelim.iterations

Design

Implemen-tation

Test

UP calls these “disciplines”

(Classically called “phases”)

Classification of iterations

Individual iteration

Page 9: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

9

The Unified Process

• Look at the whole process – Life cycle– Artifacts– Disciplines (Workflows)– Phases– Iterations

Page 10: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

10

UP Phases: Classification of Iterations

• Inception iterations: preliminary interaction with stakeholders– primarily customer– users– financial backers etc.

• Elaboration iterations : finalization of what’s wanted and needed; set architecture baseline

• Construction iterations : results in initial operational capability

• Transition iterations : completes product release

Page 11: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

11

UP Terminology (2)

Requirements

Analysis

Design

Implementation

Test

Requirements analysis

Implementation

UP Terminology

Classical Terminology

Integration

Design

Test

Page 12: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

12

Unified Process MatrixElaborationInception Construction Transition

Requirements

Analysis

Prelim.iterations

Iter.#1

Iter.#n

Iter.#n+1

Iter.#m

Iter.#m+1

Iter.#k

….. …..

Design

Implemen-tation

Test

..

Amount of effort expendedon the requirements phaseduring the first Constructioniteration

Page 13: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

13

Inception Phase

• Overriding goal is obtaining buy-in from all interested parties

• Initial requirements capture• Cost Benefit Analysis• Initial Risk Analysis• Project scope definition• Defining a candidate architecture• Development of a disposable prototype• Initial Use Case Model (10% - 20% complete)• First pass at a Domain Model

Page 14: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

14

Elaboration Phase

• Requirements Analysis and Capture– Use Case Analysis

• Use Case (80% written and reviewed by end of phase)

• Use Case Model (80% done)

• Scenarios– Sequence and Collaboration Diagrams– Class, Activity, Component, State Diagrams

– Glossary (so users and developers can speak common vocabulary)

– Domain Model • to understand the problem: the system’s requirements as they

exist within the context of the problem domain

– Risk Assessment Plan revised– Architecture Document

Page 15: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

15

Construction Phase

• Focus is on implementation of the design:– cumulative increase in functionality– greater depth of implementation (stubs fleshed

out)– greater stability begins to appear– implement all details, not only those of central

architectural value– analysis continues, but design and coding

predominate

Page 16: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

16

Transition Phase

• The transition phase consists of the transfer of the system to the user community

• It includes manufacturing, shipping, installation, training, technical support and maintenance

• Development team begins to shrink• Control is moved to maintenance team• Alpha, Beta, and final releases• Software updates• Integration with existing systems (legacy, existing

versions, etc.)

Page 17: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

17

Elaboration Phase in Detail

• Use Case Analysis– Find and understand 80% of architecturally significant

use cases and actors– Prototype User Interfaces– Prioritize Use Cases within the Use Case Model– Detail the architecturally significant Use Cases (write

and review them)• Prepare Domain Model of architecturally significant

classes, and identify their responsibilities and central interfaces (View of Participating Classes)

Page 18: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

18

Use Case Analysis

• What is a Use Case?– A sequence of actions a system performs that

yields a valuable result for a particular actor.• What is an Actor?

– A user or outside system that interacts with the system being designed in order to obtain some value from that interaction

• Use Cases describe scenarios that describe the interaction between users of the system and the system itself.

• Use Cases describe WHAT the system will do, but never HOW it will be done.

Page 19: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

19

Use Cases Describe Function not Form

• Use Cases describe WHAT the system should do, but never HOW it will be done

• Use cases are Analysis products, not design products

Page 20: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

20

Benefits of Use Cases

• Use cases are the primary vehicle for requirements capture in RUP

• Use cases are described using the language of the customer (language of the domain which is defined in the glossary)

• Use cases provide a contractual delivery process (RUP is Use Case Driven)

• Use cases provide an easily-understood communication mechanism

• When requirements are traced, they make it difficult for requirements to fall through the cracks

• Use cases provide a concise summary of what the system should do at an abstract (low modification cost) level.

Page 21: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

21

Difficulties with Use Cases• As functional decompositions, it is often difficult to make

the transition from functional description to object description to class design

• Reuse at the class level can be hindered by each developer “taking a Use Case and running with it”. Since UCs do not talk about classes, developers often wind up in a vacuum during object analysis, and can often wind up doing things their own way, making reuse difficult

• Use Cases make stating non-functional requirements difficult (where do you say that X must execute at Y/sec?)

• Testing functionality is straightforward, but unit testing the particular implementations and non-functional requirements is not obvious

Page 22: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

22

Analysis Model

• In Analysis, we analyze and refine the requirements described in the Use Cases in order to achieve a more precise view of the requirements, without being overwhelmed with the details

• Again, the Analysis Model is still focusing on WHAT we’re going to do, not HOW we’re going to do it (Design Model). But what we’re going to do is drawn from the point of view of the developer, not from the point of view of the customer

• Whereas Use Cases are described in the language of the customer, the Analysis Model is described in the language of the developer:– Boundary Classes

– Entity Classes

– Control Classes

Page 23: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

23

Why spend time on the Analysis Model, why not just “face the cliff”?

• By performing analysis, designers can inexpensively come to a better understanding of the requirements of the system

• By providing such an abstract overview, newcomers can understand the overall architecture of the system efficiently, from a ‘bird’s eye view’, without having to get bogged down with implementation details.

• The Analysis Model is a simple abstraction of what the system is going to do from the point of view of the developers. By “speaking the developer’s language”, comprehension is improved and by abstracting, simplicity is achieved

• Nevertheless, the cost of maintaining the AM through construction is weighed against the value of having it all along.

Page 24: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

24

Boundary Classes

• Boundary classes are used in the Analysis Model to model interactions between the system and its actors (users or external systems)

• Boundary classes are often implemented in some GUI format (dialogs, widgets, beans, etc.)

• Boundary classes can often be abstractions of external APIs (in the case of an external system actor)

• Every boundary class must be associated with at least one actor:

Page 25: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

25

4+1 Architecture

Page 26: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

26

4+1 Architecture

• Use-Case View, which contains use-cases and scenarios that encompasses architecturally significant behavior, classes, or technical risks. It is a subset of the total use-case model.

• Logical View, which contains the most important design classes and their organization into packages and subsystems, and the organization of these packages and subsystems into layers. It can also contain some use case realizations. It is a subset of the total design model

Page 27: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

27

4+1 Architecture

• Implementation View, which contains an overview of the implementation model and its organization in terms of modules into packages and layers. The allocation of packages and classes (from the Logical View) to the packages and modules of the Implementation View is also described. It is a subset of the total implementation model

• Process View, which contains the description of the tasks (process and threads) involved, their interactions and configurations, and the allocation of design objects and classes to tasks. This view need only be used if a system has a significant degree of concurrency

Page 28: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

28

4+1 Architecture

• Deployment View, which contains the description of the various physical nodes for the most typical platform configurations, and the allocation of tasks (from the Process View) to the physical nodes. This view shows how a system is distributed.

Page 29: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

29

Architectural focus

The architecture concerns itself only with some specific aspects:

• The structure of the model - the organizational patterns, e.g. layering

• The essential elements - critical use cases, main classes, common mechanisms, and so on, as opposed to all the elements present in the model

• A few key scenarios showing the main control flows throughout the platform

• The services, to capture modularity, optional features, product-line aspects

Page 30: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

RUP—The Approach

Page 31: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

31

Underlying Principles of the RUP Approach

• Attack major risks early and continuously . . . or they will attack you

• Ensure that you deliver value to your customer

Page 32: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

32

The Spirit of the RUP – Essential Principles

– Attack major risks early and continuously…or they will attack you

– Ensure that you deliver value to your customer

– Stay focused on executable software– Accommodate change early in the project– Baseline an executable architecture early on– Build your system with components– Make quality a way of life, not an afterthought

Page 34: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

34

The Iterative Approach

• It accommodates changing requirements • Integration is not one "big bang" at the end of a project • Risks are usually discovered or addressed during early

integrations • Management has a means of making tactical changes to

the product • Reuse is facilitated• Defects can be found and corrected over several

iterations • It is a better use of project personnel • Team members learn along the way • The development process itself is improved and refined

along the way

Page 35: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

35

The Phased Iterative Approach –example

• In the first iteration we will do 90% analysis, 10% design

• In the second iteration we will do 30% analysis, 50% design, 20% coding

• In the third iteration we will do 10% analysis, 30% design, 60% coding

• In the fourth iteration we will do 10% design, 50% coding, 40% testing and bug fixing

• In the fifth iteration we will do 50% testing and bug fixing, 30% integration, 20% deployment

Page 36: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

36

Iterative Development with Incremental Delivery

• First, we go through several iterations of analysis and design, until we are pretty sure these phases are mostly complete. We can then select the content and schedule of the increments to be developed.

– Let’s have identified three increments A, B and C, to be delivered in this order to the users.

• For increment A, we iterate through all required phases, until the software can be released.

– We expect to rework the analysis and design very little.• For increment B, we iterate through all required phases, until the software

can be released.– We expect almost no analysis or design work.

• For increment C, we iterate through all required phases, until the software can be released.

– We expect almost no analysis or design work.

The amount of analysis and (architectural) design decreases in each step. The process delivers functionality after the second, third and fourth steps.

Page 37: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

37

RUP—A Well-Defined Software Engineering Process01.11

Page 38: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

38

The RUP—A Well-Defined Software Engineering Process

• Dynamic structure – time dimension

• Static structure – describes how process elements—activities, disciplines, artifacts, and roles—are logically grouped into core process disciplines

Page 39: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

39

Basic Concepts

in the Rational Unified

Process

Page 40: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

The Dynamic Structure of the Rational Unified Process

Page 41: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

41

RUP Lifecycle

Page 42: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

42

RUP Lifecycle (detail)

Page 43: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

43

Iteration

Page 44: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

44

The Dynamic Structure of the Rational Unified Process

• Inception

• Elaboration

• Construction

• Transition

Page 45: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

45

The Four Phases

Page 46: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

46

Objectives of the Phases

• Inception: Understand what to build

• Elaboration: Understand how to build it

• Construction: Build a beta version of the product

• Transition: Build the final version of the product time

Page 47: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

47

Milestones

Page 48: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

48

Resources

Page 49: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

49

Models

Page 50: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

Inception

Page 51: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

51

Inception

• Establish a good understanding of what system to build by getting a high-level understanding of all the requirements and establishing the scope of the system

• Mitigate many of the business risks, • Produce the business case for building the

system• Get buy-in from all stakeholders on

whether to proceed with the project

Page 52: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

52

Inception Phase

– Objectives:– Understand the scope of the project– Build the business case– Get stakeholder buy-in to move ahead

– Milestone: – Lifecycle Objective Milestone (LCO)

Page 53: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

53

Relative cost to fix defect at different lifecycle phases

Page 54: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

54

Stakeholder Needs

Page 55: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

55

Early Lifecycle Activities

Page 56: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

56

Detailing and Review

Activities for Use Cases

Page 57: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

57

Software Requirements

Page 58: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

58

Derived business rules at the summary meeting

Page 59: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

Elaboration

Page 60: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

60

Elaboration

• Take care of many of the most technically difficult tasks: – Design, implement, test, and baseline an executable

architecture, including subsystems, their interfaces, key components, and architectural mechanisms, such as how to deal with inter-process communication or persistency

– Address major technical risks, such as resource contention risks, performance risks, and data security risks, by implementing and validating actual code

Page 61: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

61

Elaboration Phase

– Objectives:– Mitigate major technical risks– Create a baselined architecture– Understand what it takes to build the system

– Milestone: – Lifecycle Architecture Milestone (LCA)

Page 62: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

62

Workflow for Architectural

Analysis

Page 63: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

63

Use-Case Analysis activity

Page 64: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

64

The steps of use case analysis

Page 65: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

65

Use Case Design activity

Page 66: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

66

The steps of Use Case Design

Page 67: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

67

Requirements Management: Discipline Details

Page 68: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

68

Workflow Detail: Analyze the Problem

Page 69: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

69

Workflow Detail: Understand Stakeholder Needs

Page 70: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

70

Workflow Detail: Define the System

Page 71: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

71

Workflow Detail: Manage the Scope of the System

Page 72: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

72

Workflow Detail: Refine the System Definition

Page 73: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

73

Workflow Detail: Manage Changing Requirements

Page 74: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

74

Requirements Artifacts

Page 75: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

Construction

Page 76: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

76

Construction

• Do most of the implementation as you move from an executable architecture to the first operational version of your system

• Deploy several internal and alpha releases to ensure that the system is usable and addresses user needs

• End the phase by deploying a fully functional beta version of the system, including installation and supporting documentation and training material (although the system will likely still require tuning of functionality, performance, and overall quality)

Page 77: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

77

Construction Phase

– Objective:– Build the first operational version of the product

– Milestone: – Initial Operational Capability Milestone (IOC)

Page 78: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

78

Design artifacts drive development of source code

Page 79: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

Transition

Page 80: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

80

Transition

• Ensure that software addresses the needs of its users

• This includes testing the product in preparation for release and making minor adjustments based on user feedback

• At this point in the lifecycle, user feedback focuses mainly on fine-tuning the product, configuration, installation, and usability issues; all the major structural issues should have been worked out much earlier in the project lifecycle

Page 81: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

81

Transition Phase

– Objective:– Build the final version of the product and deliver it to the

customer

– Milestone: – Product Release Milestone (PR)

Page 82: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

The Static Structure of the Rational Unified Process

Page 83: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

83

RUP—A Well-Defined Software Engineering Process

Page 84: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

84

The Static Structure of the Rational Unified Process

Page 85: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

85

Four Key Modeling Elements of the RUP

• Roles. The who

• Activities. The how

• Artifacts. The what

• Workflows. The when

Page 86: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

86

Roles

• A 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.

Page 87: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

87

People and Workers

John

Page 88: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

88

Activities• An 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

Page 89: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

89

Steps

• Activities are broken down into steps, which fall into three main categories:– Thinking steps, where the person playing the role

understands the nature of the task, gathers and examines the input artifacts, and formulates an outcome

– Performing steps, where the role creates or updates some artifacts

– Reviewing steps, where the role inspects the results against some criteria

• Not all steps are necessarily performed each time an activity is invoked, so steps can be expressed in the form of alternate flows.

Page 90: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

90

Artifacts

• An 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

Page 91: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

91

Artifacts

• Artifacts may take various shapes or forms:– A model, such as the Use-Case Model or the Design

Model– A model element, that is, an element within a model,

such as a class, a use case (UC), or a subsystem– A document, such as the Vision or Business Case– Source code– Executables, such as an executable Prototype

Page 92: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

92

Workflows

• A 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

Page 93: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

93

Workflows

• Workflows come in different shapes and forms – Disciplines, which are high-level workflows – Workflow Details, which are workflows within

a discipline

Page 94: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

94

Disciplines

• All process elements—roles, activities, artifacts, and the associated concepts, guidelines, and templates—are grouped into logical containers called Disciplines:– Business modeling– Requirements management– Analysis and design– Implementation– Deployment– Test– Project management– Change management– Environment

Page 95: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

The Spirit of the RUP: Guidelines for Success

Page 96: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

96

Attack Major Risks Early and Continuously, or They Will Attack You

Page 97: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

97

Attack Major Risks Early and Continuously, or They Will Attack You

• At the beginning of each iteration, the RUP advises you to make, or revise, a list of top risks

• Prioritize the risk list– Risks need to be addressed from multiple

perspectives • such as requirements• design, and testing

– For each of these perspectives, start with a coarse solution and successively detail it to diminish the risk

• Then decide what you need to do to address, typically, the top three to five risks

Page 98: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

98

Attack Major Risks Early

Page 99: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

99

Ongoing Focus on Risk

• Addressing the most critical risks early in the life cycle.

• The goal is to mitigate risks to the greatest extent possible during each iteration, so each iteration poses fewer risks of less importance than its predecessors.

Page 100: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

100

Ongoing Focus on Risk (cont.)

Three categories of risks useful in discussing the Unified Process.

• Technical risks

• Architectural risks

• Requirements risk

Page 101: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

101

Technical risks

Technical risks are those associated with the various technologies that will come into play during the project and with issues such as performance and the reliability, scalability, etc. The process doesn't specifically address technical risks; however, the emphasis on architecture reflects the principle that the team should address technical risks early, before coding starts.

Page 102: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

102

Architectural risks

Architectural risks are those associated with the ability of the architecture to serve as a strong foundation of the system and also be sufficiently resilient and adaptable to the addition of features in future releases of the system.– Risks associated with "make versus buy" decisions are also part

of this category.

The process addresses architectural risks by defining activities that involve analyzing, designing, and implementing the architecture, and by defining a number of other activities that include keeping the architecture description up to date so it can assume its place front and center within the development effort.

Page 103: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

103

Requirements risk

Requirements risk is the risk of not building the right system — the system that the customers are paying for — by not understanding the requirements and not using associated use cases to drive development. The process addresses requirements risk with activities specifically defined to facilitate the discovery and negotiation of requirements and with its premise that use cases should drive all aspects of development.

Page 104: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

104

Ensure That You Deliver Value to Your Customer

• Use-case-driven approach – Use cases are a way of capturing functional requirements – Since they describe how a user will interact with the system,

they are easy for a user to relate to – And since they describe the interaction in a time-sequential

order, it is easy for both users and analysts to identify any holes in the use case

– A use case can almost be considered a section in the future user manual for the system under development, but it is written with no knowledge about the specific user interface

• Use cases force you to stay externally focused on the user's perspective, and they allow you to validate the design and implementation with respect to the user requirements

Page 105: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

105

Accommodate Change Early in the Project

• We group changes into four categories:– Cost of change to the business solution – Cost of change to the architecture – Cost of change to the design and

implementation – Cost of change to the scope

Page 106: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

106

Cost of change

RUP

Page 107: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

107

Cost of change to the business solution

• There is a fair amount of flexibility in making this type of modification during the Inception phase, but costs escalate as you move into the Elaboration phase

• This is why you force an agreement on the vision for the system in Inception

Page 108: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

108

Cost of change to the architecture

• You can make fairly significant architectural changes at low cost until the end of Elaboration

• After that, significant architectural changes become increasingly costly, which is why the architecture must be baselined at the end of Elaboration

Page 109: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

109

Cost of change to the design and implementation

• Because of the component-based approach, these types of changes are typically localized and can hence be made at fairly low cost throughout the Construction phase

• These types of changes are, however, increasingly expensive in the Transition phase, which is why you typically introduce "feature freeze" at the end of Construction

Page 110: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

110

Cost of change to the scope

• The cost of cutting scope—and hence postponing features to the next release—is relatively inexpensive throughout the project, if done within limits

• Scope cutting is greatly facilitated by iterative development; project managers should use it as a key tool to ensure on-time project delivery

Page 111: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

111

Cost of change

Page 112: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

112

Baseline an Executable Architecture Early On

• The architecture comprises the software system's most important building blocks and their interfaces, that is, the subsystem, the interfaces of the subsystems, and the most important components and their interfaces

• The architecture provides a skeleton structure of the system, comprising perhaps 10 to 20 percent of the final amount of code

Page 113: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

113

Baseline an Executable Architecture Early On

• A strict layered architecture states that design elements (classes, components, packages, subsystems) only use the services of the layer below them.  Services can include event-handling, error-handling, database access, and so forth. It contains more palpable mechanisms, as opposed to raw operating system level calls documented in the bottom layer.

Page 114: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

114

Build Your System with Components

• Functional Decomposition Architecture

vs.

• Component-Based Architecture

Page 115: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

115

Quality

Page 116: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

Adopting the Rational Unified Process

Page 117: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

117

The RUP—A Customizable Process Product

• Best practices – The RUP comes with a library of best

practices, produced by IBM Software and its partners

– These best practices are continually evolving and cover a broader scope than this book can cover

– The best practices are expressed in the form of phases, roles, activities, artifacts, and workflows

Page 118: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

118

The RUP—A Customizable Process Product

• Process delivery tools – The RUP is literally at the developers' fingertips

because it is delivered online using Web technology, rather than using books or binders

– This delivery allows the process to be integrated with the many software development tools in the Rational Suite and with any other tools so developers can access process guidance within the tool they are using

Page 119: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

119

The RUP—A Customizable Process Product

• Configuration tools – The RUP's modular and electronic form

allows it to be tailored and configured to suit the specific needs of a development organization

Page 120: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

120

The RUP—A Customizable Process Product

• Process authoring tools – Rational Process Workbench (RPW) is a

process authoring tool, allowing you to capture your own best practices into the RUP format

Page 121: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

121

The RUP—A Customizable Process Product

• Community/Marketplace – The Rational Developer Network (RDN) online

community allows users to exchange experiences with peers and experts, and provides access to the latest information in terms of artifacts, articles, or additional RUP content

Page 122: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

122

“Right-size" the Process

• Right-sizing: Allow projects to "right-size" the process they use; that is, allow projects to use "just enough" process. Users should be able to start with a small process, and as project needs expand, to grow the process to address those needs.

• Process guidance: Make a wide array of process guidance available to users, including specific guidance on how to develop software for a variety of architectures, target devices, and hardware/software platforms.

Page 123: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

123

Configuring the RUP

Producing a RUP Process Configuration• The RUP process framework contains a vast amount of

guidance, artifacts, and roles. • Because no project should use all of these artifacts, you

need to specify a subset of the RUP to use for your project.

• This is done by selecting or producing a RUP Process Configuration, which constitutes a complete process from the perspective of a particular project's requirements.

• You can use one of the ready-made configurations as is or use a ready-made configuration as a starting point or create a process configuration from scratch.

Page 124: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

124

Producing a RUP Process Configuration

• A RUP Process Component is a coherent, quasi-independent "chunk" or module of process knowledge that can be named, packaged, exchanged, and assembled with other process components.

• A RUP Library is a collection of Process Components out of which a set of RUP Process Configurations may be "compiled" with RUP Builder. New Process Components can be added to a RUP Library through the means of RUP Plug-Ins.

• A RUP Base is a collection of Process Components meant to be extended by applying plug-ins to generate RUP Process Configurations. It resides in a RUP Library.

• A RUP Plug-In is a deployable unit for one or several Process Components that can be readily "dropped" onto a RUP Base to extend it. A RUP Plug-In can be compiled into a single physical file (with extension ".cfu"), allowing it to be moved around and added to a RUP Library with a compatible RUP Base.

• To explain this via a simple analogy, a RUP Plug-In is a set of "precompiled" RUP Process Components, ready to be "linked" into a RUP Base to create one or more RUP Configurations.

Page 125: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

125

MyRUP

Page 126: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

126

Configurable RUP

Page 127: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

127

Rational Process Workbench and Process Engineering Process

You create RUP Plug-Ins by using Rational Process Workbench, a process authoring tool that consists of the following:

• RUP Modeler. This tool allows a process engineer to visually model process elements such as activities, artifacts, roles, disciplines, and tool mentors and their relationships, and to compile them into RUP Process Components. RUP Modeler is an add-in to Rational XDE and works in conjunction with RUP Organizer.

• RUP Organizer. This tool allows you to associate content files to process elements such as activities, artifacts, roles, disciplines, and tool mentors, all of which comprise a Process Component, and to compile these RUP Process Components and create a RUP Plug-In with the new or modified files. The files can be examples, guidelines, or reusable assets (among others). RUP Organizer also allows you to modify Extended Help.

• RUP Process Library. This contains process models with all the process elements such as roles, artifacts, activities, and tool mentors defined in the RUP as well as related content files for each model element.

• Process Engineering Process. This provides process guidance for customizing, implementing, and improving the process, as well as templates for content authoring, such as HTML templates for descriptions and guidelines, a template for producing plug-ins, and all graphics needed for process authoring.

Page 128: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

Summary

Page 129: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

129

Methods’ scopes

Page 130: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

130

Page 131: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

131

Project Management

Page 132: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

132

Enterprise Unified Process

Page 133: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

133

Teams Organized Around Architecture

Page 134: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

134

When to Sign a Contract?

Page 135: 4. RUP 2007. 2 What Is the Rational Unified Process? The RUP is a software development approach that is –iterative, –architecture-centric, and –use-case-driven

135

The Six UP Models (Views of the Application)

Use-casemodel

Analysismodel

Designmodel

Deploymentmodel

Implementationmodel

Testmodel