Introduction to Rational Unified Process Chapter 2 Text


















- Slides: 18
Introduction to Rational Unified Process Chapter 2 Text Modified in many cases to support instructional needs. Original developed by Rational Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 1
Objectives: Rational Unified Process We have talked about these in general. Now, for a more formal discussion: w Describe the Unified Modeling Language (UML) w Define what a Software Development Process is w Describe the Rational Unified Process w Explain the four phases of the Rational Unified Process and their associated milestones w Define iterations and their relation to phases Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 2
The RUP w Software Development is a process of developing a software system from requirements. w A software process provides a disciplined approach to assigning tasks and responsibilities to ensure the production of high-quality software within a predictable schedule / budget. w The RUP is a software process that incorporates the six best practices we’ve discussed. w The RUP formalizes these best practices into a written set of procedures/practices that are complete and self-consistent. Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 3
In Building a System, a Language (like English) is Not Enough We need a Modeling Language! Some kind of ‘universal notation. ’ We will use the Unified Modeling Language, UML) Provides a standard for artifacts produced by workers in roles undertaking activities during development – (semantic models, syntactic notation, and diagrams. things that must understood, controlled, and exchanged. ) We need a development Process It is ALL ABOUT PROCESS (and object culture). While UML has a very high value as a common modeling language, successful software development requires a development process! Team-Based Development Modeling Language . Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 4 Unified Process
What Is the UML? w Have seen parts of this slide before…. w The Unified Modeling Language (UML) is a language for • • Specifying Visualizing Constructing Documenting the artifacts of a software-intensive system • UML is now the industry standard modeling language. • We will use UML 2. 0 • Important to note that UML does not dictate an OO approach – but greatly supports it! Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 5
The UML Provides Standardized Diagrams Use-Case Activity Diagrams State Class Diagrams Use-Case Diagrams Scenario Sequence Diagrams Models Scenario Collaboration Diagrams Deployment Diagrams State Object Diagrams State Diagrams Component Diagrams • In building visual models, many different diagrams are needed to represent different views of the system. (different views to different stakeholders). • Use Case Diagrams (ahead) – illustrate user interactions with the application. • Activity Diagrams illustrate the flow of events in a Use Case (all scenarios). • Class diagrams represent logical structure, while Interaction Diagrams • illustrate behavior (show objects collaborate via message passing to • provide features (responsibilities) of the objects. . • Other diagrams are used to illustrate other viewpoints necessary in some (but not all) circumstances, such as the State Diagrams, Deployment diagrams, … Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 6
A Sample: Use-Case Diagram A University Course Registration System Use Case diagrams are used to show the existence of Use Cases and their relationships both to other Use Cases and to Actors. Register for Courses Student An Actor is something/one external to the system that interfaces with the system and receives ‘value, ’ Professor from it, such as a user. Select Courses to Teach Course Catalog A Use Cases model dialogue (interchange) between actors and system. Maintain Professor Information A Use Case is initiated by Maintain Student Information an Actor to invoke certain Registrar functionality – like Register for Courses (see Use Case). Close Registration Arrow indicates direction of Billing System initiation of the interaction. A Unified Use. Software Case Narrative (Specification) is a complete, meaningful flow of events! Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 7
A Sample UML Diagram: Classes A University Course Registration System <<boundary>> Maintain. Schedule. Form <<boundary>> Main. Form // select maintain schedule() 1 0. . 1 + // open() + // select four primary and two alternate offerings() 1 1 <<boundary>> Course. Catalog. System 1 <<control>> Registration. Controller 0. . * // add courses to schedule() // get course offerings() Classes – different kinds (here, boundary, control, entity classes) Note: multiplicity; association 0. . 1 1 Be sure to understand notation…. . multiplicity; aggregation; stereotypes… MUCH MORE ABOUT THESE CLASSES LATER! Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 8 <<entity>> Schedule // create with offerings()
UML Diagrams Are Key Artifacts Produced Have seen this slide before too. Use-Case Diagram Class Diagram State Diagram Use-Case 1 Actor A Actor B Use-Case 2 Domain Expert <<entity>> Customer name addr receive() withdraw() fetch() send() Use-Case 3 Deployment Diagram Class Repository Document. List File. Manager Package Diagram User Interface Definition Collaboration Diagram Document Graphic. File Component Diagram File. List Forward Engineering(Code Generation) and Reverse Engineering Source Code edit, compile, debug, link Sequence Diagram Executable System Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 9
What Is a Process? A process defines Who is doing What, When and How to reach a certain goal. In software engineering the goal is to build a software product or to enhance an existing one New or changed requirements Software Engineering Process New or changed system The RUP can be used for any kind of software system (information system, scientific or engineering-oriented system, etc. ) This semester, we will use Rational Team Concert on the jazz technology platform. Recognize that RTC is a team-aware software development platform that integrates work item tracking builds, source control, and agile planning. RTC provides a collaborative environment to manage all aspects of a team’s work – plans, tasks, build management, and reports. The RUP is a development process RTC is a framework for managing all aspects of a team’s work which may include Unified Software Practices v 5. 0 -D Copyright Ódevelopment 1998 Rational Software, all rights reserved 19 - the UP, Agile, or other 10 characteristics of other processes.
Rational Team Concert (RTC) w Rational Team Concert has § an Eclipse-based client interface, § a Microsoft Visual Studio client interface, and § a Web interface. w The client interfaces provide an integrated development environment for developers to build and deliver artifacts. Users can use the Web interface to administer servers and projects, access project areas, browse repository information, update tasks, or read about recent events. w Rational Team Concert and the Jazz technology platform are developed on Jazz. net, where developers and users collaborate in the development process through discussion forums and newsgroups. The Jazz. net community site includes articles, forums, wikis, blogs, current documentation, and other troubleshooting 19 Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 11
As An Effective Process, the RUP: w The RUP is a § use-case driven, § architecture-centric, § iterative development process! WHAT DOES THIS MEAN TO YOU? VERY IMPORTANT! KNOW THIS!!!! w Be sure you know what this all means – coming up Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 12
Rational Unified Process Is Use-Case Driven An actor is someone or This is a Use Case Diagram. Contains UML something outside the symbols for Use Cases and for Actors. Also shows system that interacts with the relationships between an actor and the use cases. Customer the system An actor receives VALUE from the system. A MUST. Example: ATM, transfer funds, withdraw money…. Check Balance A Use-Case (actually the Use Case Narrative or Withdraw Money Use Case Use-Cases for a Cash Machine Specification!) is a A collective set of Use Cases is said to constitute The sequence of actions a Use Case Model and represent all the possible ways of system performs that using the system. (end-user view; functionality!!!) yields an observable Use Case is thus a model of system’s intended functions. Use Cases can serve as a contract between customer result of value to a and developer, and are said to capture total functionality. particular actor 19 Models functionality from Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 13
Use-Case Specifications Include a Flow of Events Consider, for example, the flow of events for the Withdraw Money Use-Case. (Example is quite general…. ) 1. The Use-Case begins when the customer inserts a cash card. The system reads and validates information on the card. 2. The system prompts for the PIN. The customer enters the pin. The system validates the PIN. Note the interchange. 3. The system asks which operation the customer wishes This text is to perform. The customer selects “Cash withdrawal. ” typical in a 4. The system requests the amount. The customer Use Case narrative enters the amount. (Interchanges 5. The system requests the account type. The customer may/may not selects checking or savings. be numbered’) 6. The system communicates with the ATM network. . . Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved REMEMBER: 19 The RUP is a use-case driven, 14
Rational Unified Process: Use-Case Driven Process w Use-Cases are concise, simple, and understandable by a wide range of stakeholders § End users, developers and testers, others all understand functional requirements of the system. w Use-Cases drive numerous activities in the process: § Creation and validation of the design model § Test case development and procedures of the test model § User interface development and validation § Iteration planning (identifies functionality and risk and more…) § Creation of user documentation § System deployment, and MUCH more. Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 15
Rational Unified Process: Architecture-Centric Process: w Architecture is a primary focus of the early iterations § Building, validating, and base lining the architecture constitute the primary objectives (but not all) of Elaboration Phase in the RUP – especially the first iteration… w The Architectural Prototype model captures the architecture; serves as the baseline and drives development w The Software Architecture Document captures the architectural description. § Platforms; distribution; high-level design models (client/server; pipe/filter…) § Identification of potential items of high risk! w Other artifacts are derived from architecture: 19 Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 16
Benefits of an Architecture-Centric Process w (Think ‘parts’: layers, subsystems, packages, relationships, components, etc…. ) w Lets you gain and retain intellectual control over a project, to manage its complexity, and to maintain system integrity § (Principles of design: divide and conquer; coupling; cohesion, reusability, etc. ) w Provides an effective basis for large-scale reuse w Provides a basis for project management – allocation to teams… w Facilitates component-based development (from separate architectural components – interchange (swap) well-defined components. § Components fulfill a clear function in the context of a well-defined architecture § A component conforms to and provides the physical realization of a set of interfaces Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 17
Benefits of an Architecture-Centric Process - more w Architecture is not just the sum of parts w Consists of small, independent tactical decisions that provides a structure on how to grow the system without having the complexity to blow your minds. w Architecture gives us structure for this and rules to guide us. w Third description: The RUP is a use-case driven, architecture-centric, iterative development process! w To set the stage for further discussion of the ‘iteration, ’ we need more on the structure on the RUP. Unified Software Practices v 5. 0 -D Copyright Ó 1998 Rational Software, all rights reserved 19 18