Lifecycle Models: Waterfall / Spiral / EVO

Similar documents
Outline. The Spiral Model of Software Development and Enhancement. A Risk-Driven Approach. Software Process Model. Code & Fix

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

How To Understand The Software Process

COMP 354 Introduction to Software Engineering

A Software Development Simulation Model of a Spiral Process

Software Life Cycle Processes

Software Engineering. What is a system?

Classical Software Life Cycle Models

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Software Process for QA

A Process Model for Software Architecture

CHAPTER. Software Process Models

Chapter 1: Introduction to Rapid Application Development (RAD) 1. Introductions

The most suitable system methodology for the proposed system is drawn out.

Software Development Processes. Software Life-Cycle Models

Unit 1 Learning Objectives

Unit I. Introduction

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

Software Engineering

Software Development Life Cycle (SDLC)

Software Development Process

Software Project Models

WHY THE WATERFALL MODEL DOESN T WORK

A Review of Risk Management in Different Software Development Methodologies

Software Development Life Cycle

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Lecture 3 Software Development Processes

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Software development lifecycle

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

software studio software development processes Daniel Jackson

CS4507 Advanced Software Engineering

SOFTWARE PROCESS MODELS

The Spiral development model is a risk-driven process model generator. It

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

(Refer Slide Time: 01:52)

Hamid Faridani March 2011

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

A Capability Maturity Model (CMM)

LECTURE # 2. 4 P s in Project Management

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

"Bezpieczny Projekt"

Development Methodologies

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Introduction to Software Engineering

How To Model Software Development Life Cycle Models

2. Analysis, Design and Implementation

A Rational Development Process

Software Engineering. Objectives. Designing, building and maintaining large software systems

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Foundations of software engineering

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

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Software Development Process Models

General Problem Solving Model. Software Development Methodology. Chapter 2A

A Comparison between Five Models of Software Engineering

Supporting Workflow Overview. CSC532 Fall06

IV. Software Lifecycles

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

A Survey of Software Development Process Models in Software Engineering

Evolving a New Software Development Life Cycle Model SDLC-2013 with Client Satisfaction

Agile Projects 7. Agile Project Management 21

Project Management. Software Projects vs. Engineering Projects

International Journal of Advanced Research in Computer Science and Software Engineering

Timeboxing: A Process Model for Iterative Software Development

2. Analysis, Design and Implementation

ASSESSMENT OF SOFTWARE PROCESS MODELS

Introduction to Software Engineering (ESE : Einführung in SE)

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

How To Use The Win-Win Spiral Model For A Project

Weaving the Software Development Process Between Requirements and Architectures

Waterfall vs. Agile Methodology

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

A Contrast and Comparison of Modern Software Process Models

What is a life cycle model?

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

A comparative study on usage of traditional and agile software development methodologies in software industry of Asia

Software Life Cycle Models

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Software Engineering 1

The 10 Most Important Ideas in Software Development

T Bhuvaneswari et al, International Journal of Computer Science and Mobile Computing Vol.2 Issue. 5, May- 2013, pg

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Software Life-Cycle. Series of steps through which software product progresses. A life-cycle is selected during requirement Phase

Transcription:

Lifecycle Models: Waterfall / Spiral / EVO Dror Feitelson Basic Seminar on Software Engineering Hebrew University 2011

Lifecycle The sequence of actions that must be performed in order to build a software system Ideally thought to be a linear sequence: plan, design, build, test, delivert This is the waterfall model Realistically an iterative process Including agile development and the Unified Process

Royce 1970 Dr. Winston W. Royce, Managing the development of large software systems. Proc. IEEE WESCON, Aug 1970. Reprinted 9 th Intl. Conf. Softw. Eng., 1987. Universally cited as the reference for the waterfall model But, the word waterfall is not mentioned And the model looks more like a cascade Moreover, the paper is actually against the waterfall model

The Basic Waterfall Model

Problems Doing everything in a single sequence is unrealistic A better model involves iteration between successive steps However, testing comes too late and may uncover problems in the initial design The solution: do it twice (Same advice as Fred Brooks in The Mythical Man-Month, but referring to a full-scale system)

Using a Prototype

Using a Prototype Note that prototype is actually used!

Additional Emphases Need to plan and control the testing Need to involve the client in key points Create multiple documents (requirements, specification, design, test plan, manual) and keep them up to date Write an overview document that is understandable, informative, and current. Each and every worker must have an elemental understanding of the system. If the documentation is in serious default my first recommendation is simple: replace project management.

The Frustration This paper is very insightful and foreshadows several modern ideas. So why is the waterfall model still being used? (Or is it?)

Documentation and Design The waterfall is document heavy Including design documents Jack Reeves: the software is the design Meaning the document, not the process: still need to think before you code But the code embodies the design better than any other document Actually building from the design is trivial and mechanized, unlike in other fields Programmers must be creative designers, they are not assembly workers

Software as Design Software is incredibly cheap to build Software is incredibly expensive to design; everything (planning, designing, coding, testing) is part of the design process Creating a design or changing it is easy and cheap, leading to highly complex designs Testing and debugging are actually design validation Real advances depend on advances in programming techniques

Barry Boehm Barry W. Boehm, A spiral model of software development and enhancement. Computer 21(5), pp. 61-72 May 1988. Prof. Software engineering, Univ. Southern California Worked at General Dynamics, Rand, TRW Director of DARPA Information Science and Technology Office 1989-1992 Fellow of ACM, IEEE COCOMO cost model, Spiral model,...

The Basic Force Code-driven development Code-and-fix approach No design leads to poor code and frustrated clients Document-driven development Waterfall model Requirement for fully developed documents unrealistic Risk-driven development Support iterative development Decide how to proceed by reducing risk of failure

The Spiral Model Several rounds development: System concept, Requirements, design In each round, mitigate risks Define objectives of part you are doing Map alternatives for implementation Recognize constraints on these alternatives Use prototyping, analysis, etc. to gain necessary knowledge and reduce risk Plan the next step At the end, perform sequence of coding, testing, and integration

The Spiral Model Several rounds development: System concept, Requirements, design In each round, mitigate risks Define objectives of part you are doing Map alternatives for implementation What you actually do depends on Recognize constraints on these alternatives the biggest Use prototyping, analysis, etc. to remaining gain necessary risk knowledge and reduce risk Plan the next step At the end, perform sequence of coding, testing, and integration

Using the Spiral Start with hypothesis that something can be done Round 1: concept and lifecycle plan Round 2: top level requirements Additional rounds: preliminary design, detailed design May go back and redo previous round if needed If the evaluation at some stage shows that it won't work then stop

Risks Developing software is fraught with uncertainty Uncertainty implies risk This needs to be quantified: RiskExposure = Probability x Loss Can be used to chose between alternatives: select the one where the expected loss is smaller

Risk Management identification assessment analysis Risk management prioritization planning control resolution monitoring

Milestones In waterfall model there are many milestones This is too rigid and sequential But there are three really important ones: Life-cycle objectives Life-cycle architecture Initial operational capability (these foreshadow the unified process)

Milestones In waterfall model there are many milestones This is too rigid and sequential Make sure we know what we want to do, and that it Life-cycle objectives can be done Life-cycle architecture But there are three really important ones: Initial operational capability (these foreshadow the unified process)

Milestones In waterfall model there are many milestones This is too rigid and sequential Make sure we know what we want to do, Elaborate and that onit Life-cycle objectives can how be things donewill Life-cycle architecture be built But there are three really important ones: Initial operational capability (these foreshadow the unified process)

Milestones In waterfall model there are many milestones This is too rigid and sequential Make sure we know what we want to do, Elaborate and that onit Life-cycle objectives can how Prepare be things done for will the Life-cycle architecture transition be builtto the client in terms of Initial operational capability site and training But there are three really important ones: (these foreshadow the unified process)

Milestones Milestones are not (necessarily) documents! Not a fully specified spec or architecture, but a framework that will evolve For example, important interfaces must be specified precisely, but user interfaces can be a prototype Articulation of feasibility and rationale are important Agreement of stakeholders is crucial

Conceptual Development with Time Spiral model (1988): in an example round 0 is about deciding that the project is worth doing Risk management (1991): one of the risks is that the project is plain wrong Anchoring (1996): the first anchor point is agreement among stakeholders that the project can and should be done

Tom Gilb Principles of Software Engineering Management, Addison-Wesley, 1988 Early work on iterative and incremental development EVO: evolutionary software delivery Early work on software metrics Early work on inspections Independent consultant with his son

Requirements Building software is a learning process We don't know what the client wants Regrettably, the client doesn't know either But he'll know it when he sees it So we need to create something for him to see Hence iterative and incremental development

Engineering Requirements is not only what the system should do It is also how well it should be done What resource expenses are acceptable What performance level is needed Skillful, knowledgeable professionals are needed in order to design and architect a solution satisfying use-cases is not enough

Methodology Identify critical stakeholders Find what value they are looking for Identify solutions Develop Deliver value early Iterate and learn

Evolutionary Delivery Lead time to first working and useful system is short Real users doing real work brought into the loop Testing in realistic conditions Prioritization of subsequent development System and its environment co-evolve Respond to changes Can't freeze the world anyway, so make it a feature Exploit new technology as it becomes available

Main Comparison Sequential plans: Freeze requirements Testing of complete product Big bang delivery All-or-nothing risks large-scale failures Iterative / evolutionary: Incremental learning of what is needed Experience in the field with partial solution Incremental delivery Hard to fail bigtime

Summary Royce: plan ahead and document Boehm: iterate and reduce biggest risk each time Gilb: iterate and deliver maximal value each time Agile: iterate to make progress each time Old school: requirement must be met, so compromise schedule and overrun budget if needed New school: do the most useful thing within time and money constraints