Lecture 4 Process and Method: An Introduction to the Rational Unified Process.

Slides:



Advertisements
Similar presentations
Use Case Diagrams.
Advertisements

Prescriptive Process models
1 Lecture 2: Processes, Requirements, and Use Cases.
Chapter 3 Process Models
Ch 3 System Development Environment
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Rational Unified Process
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
COMP 350: Object Oriented Analysis and Design Lecture 2
Page 1 R Risk-Driven and Iterative Development. Page 2 R Copyright © 1997 by Rational Software Corporation What the Iterative Life Cycle Is Not It is.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Object Oriented Analysis and Design Using the UML
Software Development Life Cycles (SDLC) BY Touseef Tahir.
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
RUP Fundamentals - Instructor Notes
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Chapter 2 The process Process, Methods, and Tools
Lecture 4 Process and Method: An Introduction to the Rational Unified Process.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Rational Unified Process (Part 1) CS3300 Fall 2015.
Object Oriented Analysis and Design Introduction.
Rational Unified Process Fundamentals Module 4: Disciplines II.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Identify steps for understanding and solving the
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Approaching a Problem Where do we start? How do we proceed?
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Use Case Diagrams.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Chapter 2 The Rational Unified Process. Outline Waterfall Process Rational Unified Process RUP Best Practices Iterative and Incremental Development Process.
Chapter 8 Workflows of the Process Taken from Walker Royce’s textbook – Software Project Management plus a number of Personal Comments.
The Rational Unified Process 1 EECS810: Software Engineering.
The principles of an object oriented software development process Week 04 1.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
UML - Development Process 1 Software Development Process Using UML.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lecture 5 Introduction to Use Case Analysis and the Analysis Model Introduction to the UML.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Framework
TK2023 Object-Oriented Software Engineering
Software Development.
Process 4 Hours.
Chapter 1: Introduction to Systems Analysis and Design
Unified Process Source & Courtesy: Jing Zou.
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Object Oriented Analysis and Design
Chapter 2 – Software Processes
Software Development Process Using UML Recap
Presentation transcript:

Lecture 4 Process and Method: An Introduction to the Rational Unified Process

Traditional Structured Analysis 4 Described by W. W. Royce, 1970, IEEE WESCON, Managing the development of large software systems. 4 Decomposition in terms of Function and Data 4 Modularity available only at the file level –cf. C language's static keyword (=="file scope") 4 Data was not encapsulated: –Global Scope –File Scope –Function Scope (automatic, local) 4 Waterfall Method of Analysis and Design

Waterfall Method 4 Requirements Analysis –Analysis Specification Design Specification –Coding from Design Specification »Unit Testing »System Testing »UAT Testing »Ship It (????) 4 Measuring rod is in the form of formal documents (specifications).

Waterfall Process Assumptions 4 Requirements are known up front before design 4 Requirements rarely change 4 Users know what they want, and rarely need visualization 4 Design can be conducted in a purely abstract space, or trial rarely leads to error 4 The technology will all fit nicely into place when the time comes (the apocalypse) 4 The system is not so complex. (Drawings are for wimps)

Structured Analysis Problems 4 Reuse is complicated because Data is strewn throughout many different functions –Reuse is usually defined as code reuse and is implemented through cutting and pasting of the same code in multiple places. What happens when the logic changes? coding changes need to be made in several different places changing the function often changes the API which breaks other functions dependent upon that API data type changes need to be made each time they are used throughout the application

Waterfall Process Limitations 4 Big Bang Delivery Theory 4 The proof of the concept is relegated to the very end of a long singular cycle. Before final integration, only documents have been produced. 4 Late deployment hides many lurking risks: –technological (well, I thought they would work together...) –conceptual (well, I thought that's what they wanted...) –personnel (took so long, half the team left) –User doesn't get to see anything real until the very end, and they always hate it. –System Testing doesn't get involved until later in the process.

The Rational Unified Process 4 RUP is a method of managing OO Software Development 4 It can be viewed as a Software Development Framework which is extensible and features: –Iterative Development –Requirements Management –Component-Based Architectural Vision –Visual Modeling of Systems –Quality Management –Change Control Management

RUP Features 4 Online Repository of Process Information and Description in HTML format 4 Templates for all major artifacts, including: –RequisitePro templates (requirements tracking) –Word Templates for Use Cases –Project Templates for Project Management 4 Process Manuals describing key processes

The Phases

An Iterative Development Process... 4 Recognizes the reality of changing requirements –Caspers Joness research on 8000 projects 40% of final requirements arrived after the analysis phase, after development had already begun 4 Promotes early risk mitigation, by breaking down the system into mini- projects and focusing on the riskier elements first 4 Allows you to plan a little, design a little, and code a little 4 Encourages all participants, including testers, integrators, and technical writers to be involved earlier on 4 Allows the process itself to modulate with each iteration, allowing you to correct errors sooner and put into practice lessons learned in the prior iteration 4 Focuses on component architectures, not final big bang deployments

An Incremental Development Process... 4 Allows for software to evolve, not be produced in one huge effort 4 Allows software to improve, by giving enough time to the evolutionary process itself 4 Forces attention on stability, for only a stable foundation can support multiple additions 4 Allows the system (a small subset of it) to actually run much sooner than with other processes 4 Allows interim progress to continue through the stubbing of functionality 4 Allows for the management of risk, by exposing problems earlier on in the development process

Goals and Features of Each Iteration 4 The primary goal of each iteration is to slowly chip away at the risk facing the project, namely: –performance risks –integration risks (different vendors, tools, etc.) –conceptual risks (ferret out analysis and design flaws) 4 Perform a miniwaterfall project that ends with a delivery of something tangible in code, available for scrutiny by the interested parties, which produces validation or correctives 4 Each iteration is risk-driven 4 The result of a single iteration is an increment--an incremental improvement of the system, yielding an evolutionary approach

Risk Management 4 Identification of the risks 4 Iterative/Incremental Development 4 The prototype or pilot project –Boochs Tiger Team 4 Early testing and deployment as opposed to late testing in traditional methods

The Development Phases 4 Inception Phase 4 Elaboration Phase 4 Construction Phase 4 Transition Phase

Inception Phase 4 Overriding goal is obtaining buy-in from all interested parties 4 Initial requirements capture 4 Cost Benefit Analysis 4 Initial Risk Analysis 4 Project scope definition 4 Defining a candidate architecture 4 Development of a disposable prototype 4 Initial Use Case Model (10% - 20% complete) 4 First pass at a Domain Model

Elaboration Phase 4 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 systems requirements as they exist within the context of the problem domain –Risk Assessment Plan revised –Architecture Document

Construction Phase 4 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

Transition Phase 4 The transition phase consists of the transfer of the system to the user community 4 It includes manufacturing, shipping, installation, training, technical support and maintenance 4 Development team begins to shrink 4 Control is moved to maintenance team 4 Alpha, Beta, and final releases 4 Software updates 4 Integration with existing systems (legacy, existing versions, etc.)

Elaboration Phase in Detail 4 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) 4 Prepare Domain Model of architecturally significant classes, and identify their responsibilities and central interfaces (View of Participating Classes)

Use Case Analysis 4 What is a Use Case? –A sequence of actions a system performs that yields a valuable result for a particular actor. 4 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 4 Use Cases describe scenarios that describe the interaction between users of the system and the system itself. 4 Use Cases describe WHAT the system will do, but never HOW it will be done.

Whats in a Use Case? 4 Define the start state and any preconditions that accompany it 4 Define when the Use Case starts 4 Define the order of activity in the Main Flow of Events 4 Define any Alternative Flows of Events 4 Define any Exceptional Flows of Events 4 Define any Post Conditions and the end state 4 Mention any design issues as an appendix 4 Accompanying diagrams: State, Activity, Sequence Diagrams 4 View of Participating Objects (relevant Analysis Model Classes) 4 Logical View: A View of the Actors involved with this Use Case, and any Use Cases used or extended by this Use Case

Use Cases Describe Function not Form 4 Use Cases describe WHAT the system will do, but never HOW it will be done. 4 Use Cases are Analysis Products, not Design Products.

Use Cases Describe Function not Form 4 Use Cases describe WHAT the system should do, but never HOW it will be done 4 Use cases are Analysis products, not design products

Benefits of Use Cases 4 Use cases are the primary vehicle for requirements capture in RUP 4 Use cases are described using the language of the customer (language of the domain which is defined in the glossary) 4 Use cases provide a contractual delivery process (RUP is Use Case Driven) 4 Use cases provide an easily-understood communication mechanism 4 When requirements are traced, they make it difficult for requirements to fall through the cracks 4 Use cases provide a concise summary of what the system should do at an abstract (low modification cost) level.

Difficulties with Use Cases 4 As functional decompositions, it is often difficult to make the transition from functional description to object description to class design 4 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 4 Use Cases make stating non-functional requirements difficult (where do you say that X must execute at Y/sec?) 4 Testing functionality is straightforward, but unit testing the particular implementations and non-functional requirements is not obvious

Use Case Model Survey 4 The Use Case Model Survey is to illustrate, in graphical form, the universe of Use Cases that the system is contracted to deliver. 4 Each Use Case in the system appears in the Survey with a short description of its main function. –Participants: Domain Expert Architect Analyst/Designer (Use Case author) Testing Engineer

Sample Use Case Model Survey

Analysis Model 4 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 4 Again, the Analysis Model is still focusing on WHAT were going to do, not HOW were going to do it (Design Model). But what were going to do is drawn from the point of view of the developer, not from the point of view of the customer 4 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

Why spend time on the Analysis Model, why not just face the cliff? 4 By performing analysis, designers can inexpensively come to a better understanding of the requirements of the system 4 By providing such an abstract overview, newcomers can understand the overall architecture of the system efficiently, from a birds eye view, without having to get bogged down with implementation details. 4 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 developers language, comprehension is improved and by abstracting, simplicity is achieved 4 Nevertheless, the cost of maintaining the AM through construction is weighed against the value of having it all along.

Boundary Classes 4 Boundary classes are used in the Analysis Model to model interactions between the system and its actors (users or external systems) 4 Boundary classes are often implemented in some GUI format (dialogs, widgets, beans, etc.) 4 Boundary classes can often be abstractions of external APIs (in the case of an external system actor) 4 Every boundary class must be associated with at least one actor:

Entity Classes 4 Entity classes are used within the Analysis Model to model persistent information 4 Often, entity classes are created from objects within the business object model or domain model

Control Classes 4 The Great Et Cetera 4 Control classes model abstractions that coordinate, sequence, transact, and otherwise control other objects 4 In Smalltalk MVC mechanism, these are controllers 4 Control classes are often encapsulated interactions between other objects, as they handle and coordinate actions and control flows.