The Basic Waterfall Model. Software Process Models. Concurrent Development. (Concurrent Development) The Agile Critique of the Waterfall

Similar documents
Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Product Requirements. Requirements. Get it Right ASAP. Why Requirements are Difficult. Levels of S/W Requirements. Types of S/W Requirements

Software Process. Overview

Product Requirements. Requirements. Get it Right ASAP. Why Requirements are Difficult. Types of S/W Requirements. Levels of S/W Requirements

Software Engineering Modern Approaches

18-642: Software Development Processes

03. Perspective Process Models

Software Engineering

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

SDLC Submitted in partial fulfillment of the requirement for the award of Degree of Computer Science

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 11: Managing the Software Process

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

CMPT 275 Software Engineering

Project Management CTC-ITC 310 Fall 2018 Howard Rosenthal

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

CSCC40 Analysis and Design of Information Systems mid-term exam

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Eliminate the. keeping your department from reaching it s full potential

The Systems Development Lifecycle

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Chapter 3 Software Process Model

Introduction to Agile Software Development

The Top Thrill Dragster

No Bull Agile. Marc J. Balcer September 2017

Introduction to Agile and Scrum

Software Engineering

BCS Certificate in System Development Essentials

3. Comparison of Above Described SDLC Models

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

CS 5704: Software Engineering

Software Processes. Chapter 2. CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville.

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Software Development Life Cycle:

The Software Development Process (SDLC)

T Software Testing and Quality Assurance Test Planning

Chapter 3 Prescriptive Process Models

Owning An Agile Project: PO Training Day 2

Continuous integration for BI

Agile Management Guide

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

CSE 435 Software Engineering. Sept 14, 2015

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

ICS 52: Introduction to Software Engineering

Risk Based Testing Pragmatic Risk Analysis and Management

Iteration and Release Planning. CSCI 5828: Foundations of Software Engineering Lecture 15 10/13/2015

Agile Projects 7. Agile Project Management 21

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Information Systems. Rationale Aims & Objectives. Rationale Aims & Objectives. Introduction to Project management. Ruel Ellis

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Requirements Engineering and Software Architecture Project Description

Chapter 8. Systems Development. Ralph M. Stair George W. Reynolds

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Software Engineering Third Year CSE( Sem:I) 2 marks Questions and Answers

Software Project Management

Chapter 1: Introduction

Agile Software Architecture how much is enough?

Scrum, Creating Great Products & Critical Systems

Oracle Unified Method (OUM) The OUM Implement Core Workflow The Key to Understanding and Applying OUM. An Oracle White Paper April 2012

Advantages and Disadvantages of. Independent Tests. Advantages. Disadvantages

6. Models of the Design Process

CSE 403: Software Engineering, Winter courses.cs.washington.edu/courses/cse403/16wi/ Software Lifecycle. Emina Torlak

The Direct Approach to Transformational Leadership. Jim Lara & Steve Brechter Gray Stone Advisors October 23, 2014

Metrics that Matter: The facts and data that most matter when measuring an SAP Change Control Implementation

Software Engineering Part 2

The Software Life Cycle

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

Agile Development Processes. CSCE Lecture 3-08/31/2017

Successful Service Virtualization

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

The Software Life Cycle

Software development processes: from the waterfall to the Unified Process

About risks. Goals of the lecture. Contents of the lecture. Motivation. Risklists, ways to handle risks. References:

SDLC Models- A Survey

RIGHTNOW A C E

Software Design COSC 4353/6353 D R. R A J S I N G H

Mike Vincent. mvasoftware.net

Requirements engineering

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

COMM 391. Learning Objective 1. Learning Objectives. Introduction to Management Information Systems

Lesson Three: Business Analysis Planning and Monitoring BANA 110 Analyzing Business Needs and Requirements Planning Gary Mesick and Shelly Lawrence,

The Key to Project Success: Reducing Solution Scope

CSE 403: Software Engineering, Spring courses.cs.washington.edu/courses/cse403/15sp/ Software Lifecycle. Emina Torlak

Project Management Framework with reference to PMBOK (PMI) July 01, 2009

Design approaches the Waterfall Model. COSC345 Software Engineering

Foundations of Software Engineering. Lecture 16: Process: Linear to Iterative Michael Hilton

Software Processes 1

Businesses now operate in rapidly changing environment.

Project Management Basics (Stefan Sobek PMP) Chapter 2: PM in IT-Context

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

A New Divide & Conquer Software Process Model

Critical Software Testing Processes

The Mystery Behind Project Management Metrics. Reed Shell Blue Hippo Consulting


Requirements Engineering and Software Architecture Project Description

Software Engineering. M Umair.

AGILE methodology- Scrum

Transcription:

Software Process Models Critique & Defense of the Waterfall Issues in Waterfall Models concurrent development phase transitions and overlap Issues in Evolutionary Models incremental vs. iterative models planned iteration Choosing the Right Model The Basic Waterfall Model & requirements high level design project validation delivery support A 3 A 2 deployment 9/8/2012 Software Engineering Process 2 9/8/2012 Software Engineering Process 3 The Agile Critique of the Waterfall Waterfall strives to satisfy requirements correct requirements do not exist requirements change over time they were not perfectly understood/captured people make up requirements satisfying wrong requirements is futile iterative development is more rational build an initial prototype get concrete feedback from real users improve prototype based on that feedback 9/8/2012 Software Engineering Process 4 In Defense of Prescriptive Models they capture fundamental truths you can t build it until you know what it is things go much better when you have a plan a basis for modeling any process basic task break-down and template planned progression from one step to next some projects really do fit them clear requirements are obtainable technical risk is low agile processes can be seen as extensions 9/8/2012 Software Engineering Process 5 Concurrent Development & requirements high level design project integration system test validation delivery support 9/8/2012 Software Engineering Process 6 (Concurrent Development) most systems require many pieces B 3 independent pieces can be built independently advantages smaller teams are more efficient B 2 smaller projects involve less risk improved resource utilization, earlier finish cost B 3 resource allocation becomes more complex B 4 some problems only emerge after integration 9/8/2012 Software Engineering Process 7 B 5 1

Phase Overlap general requirements project high level design database reqts db design db impl U/I reqts U/I design U/I server engine reqts server engine design server engine 9/8/2012 Software Engineering Process 8 (Phase Overlap) phase n+1 can start before phase n ends there are many tasks in phase n+1 they don t all depend on all of phase n tasks such overlap has big advantages better resource utilization, earlier completion experience A impl can influence design of B but there are risks if phase n action invalidates phase n+1 work component may be done in isolation dependencies must be tracked and managed 9/8/2012 Software Engineering Process 9 C 3 C 4 C 1 C 2 The Incremental Delivery Model release 1 deployment release 2 deployment (The Incremental Model) Doing everything in release 1 is a canard our requirements are incomplete & imperfect we don t know how to build some pieces insufficient time/people to do everything Deliver product in successive releases D successive approximations to solution 1 we learn from the experience we gain fewer and smaller tasks in each release sooner delivery, lower cost, lower risk 9/8/2012 Software Engineering Process 10 9/8/2012 Software Engineering Process 11 Where these models break down the execute the plan phase assumes... we know what product we need to build the customers and their requirements we know what it takes to build the product how to build it, with what resources, how quickly these assumptions often fail requirements for new products are speculative estimates for unknown tasks are fantasy plans based on false assumptions are bad Planning with Poor Information Option A: add fudge factors enumerate all of the major uncertainties guess at likely costs implied by each hope that they average out E Option B: a plan for a plan 1 enumerate all of the major uncertainties plan research/prototype projects to resolve each this is a plan for developing a better plan 9/8/2012 Software Engineering Process 12 9/8/2012 Software Engineering Process 13 2

Iterative (spiral) Models (Spiral v.s. Incremental Models) initial & requirements next phase evaluation validation delivery support each incremental iteration is a product it satisfies requirements (for that release) it is tested, documented, and validated it is delivered and supported spiral iterations are research projects Goal: answer questions (vs. deliver product) they build a prototype to test the premise the resulting information feeds future 9/8/2012 Software Engineering Process 14 9/8/2012 Software Engineering Process 15 Planned Iteration Each iteration has a clear goal we are seeking answers to specific questions Each iteration has a plan we know what we are going to do we know how long it will take we know what we will have when we finish Each iteration is a commitment point do we still believe in the ultimate goal? is this the right plan to get us there? E 4 E 5 9/8/2012 Software Engineering Process 16 9/8/2012 Software Engineering Process 17 Why Models Matter All projects are not the same different problems, organizations, constraints different models better suit different projects Choosing a model sets expectations if model is wrong, expectations won t be met plans and designs are predicated on a model To choose a more appropriate model we must understand their differences we must understand our own situation F 1 F 2 Sun Tzu If you know the enemy and know yourself, you need not fear the result of a hundred battles. If you know yourself but not the enemy, for every victory gained you will also suffer a defeat. If you know neither the enemy nor yourself, you will succumb in every battle. 9/8/2012 Software Engineering Process 18 9/8/2012 Software Engineering Process 19 3

For the next Lecture McConnell 3.3-4, 4 introduction to the importance of first things first wikipedia: Requirements Analysis overview of full range of approaches Kampe: gathering & analysis of user requirements introduction to the process, guide to project 1A Wiegers: Requirements Traps good overview of common mistakes Wiegers: Prioritizing Requirements intro to a fundamental methodology Supplementary Slides on real commercial processes 9/8/2012 Software Engineering Process 20 9/8/2012 Software Engineering Process 21 Process Specifications written descriptions of steps to be performed when carrying out a particular type of project usually a combination of words and diagrams they usually describe, for each step, the work that should be performed the acceptance criteria for that work who has the authority to approve it they may also specify, for each step required inputs and/or pre-conditions required output (work products) 9/8/2012 Software Engineering Process 22 Examples Definition stage proposals, requirements specifications, requirements reports Detailed design designs, design reports Implementation software, makefiles, test cases, documentation, code reports, test reports Validation bug reports, test results, alpha/beta reports Deployment installation statistics, bug reports, call reports Process Paperwork request and approval forms 9/8/2012 Software Engineering Process 23 Typical Construction Process identify design design ers? architecture interface detailed architecture changes test plan design test plan? approved dependencies mitigation plan? identify code code ers write code unit integration implement write test suites identify document document write documentation ers request to approved integrate put back DONE integrate? 9/8/2012 Software Engineering Process 24 Process Work Products the outputs defined by a process specified outputs of development process steps analyses, plans, specs, code, reports, s may be general or very strict why do we produce them? they are required inputs to subsequent steps they represent project mile-stones they are concrete, measurable, deliverables ing them gives us confidence of our progress they are a record of our progress 9/8/2012 Software Engineering Process 25 4

Process Models & Strategy Model choice is not just about projects productivity is secondary to staying in business Models must support business objectives understand the demands of that business... find a model that supplies those needs understand the challenges of that business... find a model that shields us from what we fear Process Models for commercial s/w are often as much about business as s/w 9/8/2012 Software Engineering Process 26 Prototyping addresses ignorance Find mistakes before building the real thing We aren t sure what we should build prototype a few alternatives, get feedback We aren t sure how much work it will be identify the parts we don t know how to build isolate, prototype, and test those mechanisms see what problems arise We aren t sure how well it will work measure a model, simulation or prototype 9/8/2012 Software Engineering Process 27 E 2 E 3 Keys to Incremental Development A Real Development Process each increment must be useful not all subsets of functionality are useful if it is not useful, nobody will use it each increment must be build-able we must know how to build it we must have the time and resources need a plan to sustain the effort can we fund successive approximations can we retain internal/external commitment D 2 D 3 D 4 D 5 D 6 If you are interested in seeing what a real development process specification looks like, you might want to check out: http://www.opensolaris.org/os/community/onnv/os_dev_process/ This includes process flow charts, descriptions of work products, and discussions of motivations and principles. 9/8/2012 Software Engineering Process 28 9/8/2012 Software Engineering Process 29 Case Study: Microsoft the domain flagship applications like word and excel the challenge maximum value in each new release maximize ROI on new feature development maximize release predictability (date/quality) maximize project predictability (cost/success) the response a project qualification process 9/8/2012 Software Engineering Process 30 Microsoft Feature Management all new projects must create feature value if we can t advertise it, we won t do it all proposals must have business cases independent research, product use statistics projects prioritized based on projected revenue all projects must be small and complete no project can be larger than two staff weeks no project can depend on other projects only fully tested projects will be integrated they had very demanding test standards 9/8/2012 Software Engineering Process 31 5

Feature Management - benefits high value releases with high ROI projects were chosen based on revenue high project predictability small projects tend to have fewer side effects small projects are simpler and less risky high release predictability rigorous requirements reduce breakage independence means we can back out losers this helped to ensure business objectives 9/8/2012 Software Engineering Process 32 Feature Management - problems It effectively precluded infrastructure projects e.g. network or multi-media integration they do not deliver advertisable features rather they enable future feature projects they are neither small nor independent much new code, much change to existing code all future projects will depend on them they are hard to test they are complex, general, and pervasive 9/8/2012 Software Engineering Process 33 Case Study: Sun the domain the Solaris Operating System the challenge encourage technological innovation avoid breaking customer applications maximize release predictability (date/quality) avoid future support disasters the response Architectural Review Committees SUN: ARC process create Architectural Review Committees one for each major technology area staffed by very senior engineers in each area create fast-track process for simple projects sponsored cases, auto-approve if unchallenged require /approval for all other projects classify interfaces & ensure sufficient stability ensure conformance w/architectural mandates assess significant support/evolution issues 9/8/2012 Software Engineering Process 34 9/8/2012 Software Engineering Process 35 ARC Process - benefits improved release compatibility/quality project integration seldom breaks a release new releases no longer break old applications accelerated adoption of new technologies projects were quickly guided in new directions significant improvements in product quality numerous support disasters were averted projects benefited from senior engineer this helped to ensure business objectives 9/8/2012 Software Engineering Process 36 ARC Process - problems the process was expensive for the company it consumed 25-50% of 30 very senior engineers managers viewed this as development tax the process was expensive for projects preparing for a was time-consuming recommendations made projects larger managers viewed this as extortion the process was not applied uniformly different divisions had different processes 9/8/2012 Software Engineering Process 37 6

Q: What model do I choose? A: The one that most closely fits your problem Is this Research or Development? are we trying to define a product or build one? Is this a one-off, or a product family? should we plan for incremental delivery? Can many parts be built in parallel? are they sufficiently independent? do we have resources for multiple teams? can we manage the added complexity? 9/8/2012 Software Engineering Process 38 7