Iterative development and The Unified process

Slides:



Advertisements
Similar presentations
September 2008Mike Woodard Rational Unified Process Key Concepts Mike Woodard.
Advertisements

Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
ECOM 6330 Java Parallel and Distributed computing
Rational Unified Process
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
Object-oriented Analysis and Design
Software Project Transition Planning
Copyright  Larry Dribin, Ph.D. SE470_ProjMgmt_v1.ppt SE470 - ProjMgmt - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Iterative development and The Unified process
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
The web application development process Basharat Mahmood, COMSATS Institute of Information Technology, Islamabad, Pakistan. 1.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 RUP Architecture.
George Blank University Lecturer. Iterative, Evolutionary, and Agile Introduction to the Rational Unified Process.
UML - Development Process 1 Software Development Process Using UML (2)
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Unified Software Development Process (UP) Also known as software engineering process SEP describes how requirements are turned into software Defines who,
RUP Fundamentals - Instructor Notes
Software Development *Life-Cycle Phases* Compiled by: Dharya Dharya Daisy Daisy
The Rational Unified Process Realizat de Negrilescu Nicolae.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Business Systems Development SDLC and introduction to the Microsoft Solutions Framework Team and Process Models.
Object Oriented Design and Analysis Rational Unified Process.
Iterative development and The Unified process Chapter 2 Applying UML and Patterns -Craig Larman.
NJIT Iterative, Evolutionary, and Agile Chapter 2 Applying UML and Patterns Craig Larman.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
CHECKPOINTS OF THE PROCESS Three sequences of project checkpoints are used to synchronize stakeholder expectations throughout the lifecycle: 1)Major milestones,
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Rational Unified Process (RUP) Process Meta-model Inception Phase These notes adopted and slightly modified from “RUP Made Easy”, provided by the IBM Academic.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
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.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Rational Unified Process (RUP)
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 Rational Unified Process – Part 2 Original slides modified.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Object oriented analysis and design 1 Software Development Life Cycle (SDLC)
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Software Development Framework
TK2023 Object-Oriented Software Engineering
Object-oriented Analysis and Design
Process 4 Hours.
Software Engineering Management
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Iterative, Evolutionary, and Agile Rational Unified Process
The Web Application Development Process Models
TechStambha PMP Certification Training
Unified Process Source & Courtesy: Jing Zou.
UNIFIED PROCESS.
Unified Process (UP).
Requirements and the Software Lifecycle
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Object Oriented Analysis and Design
Chapter 2 – Software Processes
Software engineering -1
CSCI 360: Software Architecture & Design
Presentation transcript:

Iterative development and The Unified process

Evolutionary Development Evolutionary development is an iterative and incremental approach to software development.  Instead of creating a comprehensive artifact, such as a requirements specification, that you review and accept before creating a comprehensive design model, you instead evolve the critical development artifacts over time in an iterative manner.  Instead of building and then delivering your system in a single “big bang” release you instead deliver it incrementally over time.  Evolutionary Development

Evolutionary Development Model

The Unified Process Benefits of iterative development include: The Unified Process is a software development process or methodology that above all promotes Iterative Development. The result of each iteration is an executable, but incomplete system. The system may need many iterations before it is ready for production. Benefits of iterative development include: Early mitigation of high risks Early visible progress. Early feedback, user engagement, and adaptation, leading to a system that more nearly meets the needs of the various stakeholders. Managed complexity – no compounding of complexity by postponing the implementation phase. Learning within an iteration.

The Unified Process The Unified Process has emerged as a popular and effective software development process. In particular, the Rational Unified Process, as modified at Rational Software, is widely practiced and adopted by industry.

The Most Important Concept The critical idea in the Rational Unified Process is Iterative Development. Iterative Development is successively enlarging and refining a system through multiple iterations, using feedback and adaptation. Each iteration will include requirements, analysis, design, and implementation. Iterations are timeboxed.

Why a new methodology? The philosophy of process-oriented methods is that the requirements of a project are completely frozen before the design and development process commences. As this approach is not always feasible, there is also a need for flexible, adaptable and agile methods, which allow the developers to make late changes in specifications.

What is Rational Unified Process (RUP)? RUP is a complete software-development process framework , developed by Rational Corporation. It’s an iterative development methodology based upon six industry-proven best practices. Processes derived from RUP vary from lightweight—addressing the needs of small projects —to more comprehensive processes addressing the needs of large, possibly distributed project teams.

Phases in RUP RUP is divided into four phases, named: Inception Elaboration        Construction Transition

The Unified Process The UP organizes work and iterations across four major phases Inception – approximate vision, business case, scope, vague estimates. NOT a requirements phase, but a feasibility phase Elaboration – refined vision, iterative implementation of the core architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates. A phase where the core architecture is iteratively designed and implemented Construction – iterative implementation of the remaining lower risk and easier elements, preparation for deployment. Transition – beta tests and deployment

The Unified Process phase phase Inc. Elaboration Construction Trans. iteration Release Final release The end of each iteration is a minor release

Iterations EEach phase has iterations, each having the purpose of producing a demonstrable piece of software. The duration of iteration may vary from two weeks or less up to six months. Inception Elaboration Construction Transition Iterations The iterations and the phases fig 1

Resource Histogram The iterations and the phases fig 2

Unified Process best practices Get high risk and high value first Constant user feedback and engagement Early cohesive core architecture Test early, often, and realistically Apply use cases where needed Do some visual modeling with UML Manage requirements Manage change requests and configuration

Inception The life-cycle objectives of the project are stated, so that the needs of every stakeholder are considered. Scope and boundary conditions, acceptance criteria and some requirements are established.

Inception - Activities Formulate the scope of the project. Needs of every stakeholder, scope, boundary conditions and acceptance criteria established. Plan and prepare the business case. Define risk mitigation strategy, develop an initial project plan and identify known cost, schedule, and profitability trade-offs. Synthesize candidate architecture. Candidate architecture is picked from various potential architectures Prepare the project environment.

Inception - Exit criteria An initial business case containing at least a clear formulation of the product vision - the core requirements - in terms of functionality, scope, performance, capacity, technology base. Success criteria (example: revenue projection). An initial risk assessment. An estimate of the resources required to complete the elaboration phase.

Elaboration An analysis is done to determine the risks, stability of vision of what the product is to become, stability of architecture and expenditure of resources.

Elaboration - Entry criteria The products and artifacts described in the exit criteria of the previous phase. The plan approved by the project management, and funding authority, and the resources required for the elaboration phase have been allocated.

Elaboration - Activities Define the architecture. Project plan is defined. The process, infrastructure and development environment are described. Validate the architecture. Baseline the architecture. To provide a stable basis for the bulk of the design and implementation effort in the construction phase.

Elaboration - Exit criteria A detailed software development plan, with an updated risk assessment, a management plan, a staffing plan, a phase plan showing the number and contents of the iteration , an iteration plan, and a test plan The development environment and other tools A baseline vision, in the form of a set of evaluation criteria for the final product A domain analysis model, sufficient to be able to call the corresponding architecture ‘complete’. An executable architecture baseline.

Construction The Construction phase is a manufacturing process. It emphasizes managing resources and controlling operations to optimize costs, schedules and quality. This phase is broken into several iterations.

Construction - Entry criteria The product and artifacts of the previous iteration. The iteration plan must state the iteration specific goals Risks being mitigated during this iteration. Defects being fixed during the iteration.

Construction - Activities Develop and test components. Components required satisfying the use cases, scenarios, and other functionality for the iteration are built. Unit and integration tests are done on Components. Manage resources and control process. Assess the iteration Satisfaction of the goal of iteration is determined.

Construction - Exit Criteria The same products and artifacts, updated, plus: A release description document, which captures the results of an iteration Test cases and results of the tests conducted on the products, An iteration plan, detailing the next iteration Objective measurable evaluation criteria for assessing the results of the next iteration(s).

Transition The transition phase is the phase where the product is put in the hands of its end users. It involves issues of marketing, packaging, installing, configuring, supporting the user-community, making corrections, etc.

Transition - Entry criteria The product and artifacts of the previous iteration, and in particular a software product sufficiently mature to be put into the hands of its users.

Transition - Activities Test the product deliverable in a customer environment. Fine tune the product based upon customer feedback Deliver the final product to the end user Finalize end-user support material

Transition - Exit criteria An update of some of the previous documents, as necessary, the plan being replaced by a “post-mortem” analysis of the performance of the project relative to its original and revised success criteria; A brief inventory of the organization’s new assets as a result this cycle.

Advantages of RUP The RUP puts an emphasis on addressing very early high risks areas. It does not assume a fixed set of firm requirements at the inception of the project, but allows to refine the requirements as the project evolves. It does not put either a strong focus on documents The main focus remains the software product itself, and its quality.

Drawbacks of RUP RUP is not considered particularly “agile” However, recent studies have shown that by adopting the right essential artifacts RUP is agile. It fails to provide any clear implementation guidelines. RUP leaves the tailoring to the user entirely.