Presentation is loading. Please wait.

Presentation is loading. Please wait.

4. RUP 2007.

Similar presentations


Presentation on theme: "4. RUP 2007."— Presentation transcript:

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

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?

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

5 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

6 Waterfall and Iterative Process

7 Iterative and Incremental Development Process
Iteration No. 1 2 3 867 868 Test whole Integrate Test units Implement Design Analyze requirements

8 Classification of iterations (Classically called “phases”)
UP Terminology (1) Classification of iterations Individual iteration Inception Elaboration Construction Transition Prelim. iterations Iter. #1 Iter. #n Iter. #n+1 Iter. #m Iter. #m+1 Iter. #k .. ….. Requirements Analysis UP calls these “disciplines” (Classically called “phases”) Design Implemen- tation Test

9 The Unified Process Look at the whole process Life cycle Artifacts
Disciplines (Workflows) Phases Iterations

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

11 Requirements analysis
UP Terminology (2) Requirements Analysis Design Implementation Test Requirements analysis UP Terminology Classical Terminology Integration

12 Unified Process Matrix
Inception Elaboration Construction Transition Prelim. iterations Iter. #1 Iter. #n Iter. #n+1 Iter. #m Iter. #m+1 Iter. #k .. ….. ….. Requirements Analysis Amount of effort expended on the requirements phase during the first Construction iteration Design Implemen- tation Test

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

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

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

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.)

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)

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.

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

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.

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

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

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.

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:

25 4+1 Architecture

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

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

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.

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

30 RUP— The Approach

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

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

33 RUP and Iterative Development

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

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

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. The amount of analysis and (architectural) design decreases in each step. The process delivers functionality after the second, third and fourth steps.

37 RUP—A Well-Defined Software Engineering Process
01.11

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

39 Basic Concepts in the Rational Unified Process

40 The Dynamic Structure of the Rational Unified Process

41 RUP Lifecycle

42 RUP Lifecycle (detail)

43 Iteration

44 The Dynamic Structure of the Rational Unified Process
Inception Elaboration Construction Transition

45 The Four Phases

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

47 Milestones

48 Resources

49 Models

50 Inception

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

52 Inception Phase Objectives: Milestone:
Understand the scope of the project Build the business case Get stakeholder buy-in to move ahead Milestone: Lifecycle Objective Milestone (LCO)

53 Relative cost to fix defect at different lifecycle phases

54 Stakeholder Needs

55 Early Lifecycle Activities

56 Detailing and Review Activities for Use Cases

57 Software Requirements

58 Derived business rules at the summary meeting

59 Elaboration

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

61 Elaboration Phase Objectives: Milestone:
Mitigate major technical risks Create a baselined architecture Understand what it takes to build the system Milestone: Lifecycle Architecture Milestone (LCA)

62 Workflow for Architectural Analysis

63 Use-Case Analysis activity

64 The steps of use case analysis

65 Use Case Design activity

66 The steps of Use Case Design

67 Requirements Management: Discipline Details

68 Workflow Detail: Analyze the Problem

69 Workflow Detail: Understand Stakeholder Needs

70 Workflow Detail: Define the System

71 Workflow Detail: Manage the Scope of the System

72 Workflow Detail: Refine the System Definition

73 Workflow Detail: Manage Changing Requirements

74 Requirements Artifacts

75 Construction

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)

77 Construction Phase Objective: Milestone:
Build the first operational version of the product Milestone: Initial Operational Capability Milestone (IOC)

78 Design artifacts drive development of source code

79 Transition

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

81 Transition Phase Objective: Milestone:
Build the final version of the product and deliver it to the customer Milestone: Product Release Milestone (PR)

82 The Static Structure of the Rational Unified Process

83 RUP—A Well-Defined Software Engineering Process

84 The Static Structure of the Rational Unified Process

85 Four Key Modeling Elements of the RUP
Roles. The who Activities. The how Artifacts. The what Workflows. The when

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.

87 People and Workers John

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

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.

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

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

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

93 Workflows Workflows come in different shapes and forms
Disciplines, which are high-level workflows Workflow Details, which are workflows within a discipline

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

95 The Spirit of the RUP: Guidelines for Success

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

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

98 Attack Major Risks Early

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.

100 Ongoing Focus on Risk (cont.)
Three categories of risks useful in discussing the Unified Process. Technical risks Architectural risks Requirements risk

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.

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.

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.

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

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

106 Cost of change RUP

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

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

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

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

111 Cost of change

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

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.

114 Build Your System with Components
Functional Decomposition Architecture vs. Component-Based Architecture

115 Quality

116 Adopting the Rational Unified Process

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

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

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

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

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

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.

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.

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.

125 MyRUP

126 Configurable RUP

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.

128 Summary

129 Methods’ scopes

130

131 Project Management

132 Enterprise Unified Process

133 Teams Organized Around Architecture

134 When to Sign a Contract?

135 The Six UP Models (Views of the Application)
Use-case model Test model Analysis model Implementation model Design model Deployment model


Download ppt "4. RUP 2007."

Similar presentations


Ads by Google