1 / 135

4. RUP

4. RUP. 2007. What Is the Rational Unified Process?. The RUP is a software development approach that is iterative, architecture-centric, and use-case-drive n The RUP is a well-defined and well-structured software engineering process

brody
Download Presentation

4. RUP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 • 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. UP Terminology (1) Classification of iterations Individual iteration Inception Elaboration Construction Transition Iter. #k Prelim. iterations Iter. #1 Iter. #n Iter. #n+1 Iter. #m Iter. #m+1 .. … ….. 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. UP Terminology Classical Terminology Requirements Analysis Requirements analysis Design Implementation Test Design Implementation Integration Test UP Terminology (2)

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

  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 thesephases are mostly complete. We can then select the content and schedule of the incrementsto be developed. • Let’s have identified three increments A, B and C, to be delivered inthis 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 analysisand (architectural) design decreases in each step. The process delivers functionality after thesecond, 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

More Related