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



Similar documents
SOFTWARE PROCESS MODELS

Object-Oriented and Classical Software Engineering

Development Methodologies

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Software Engineering. An Introduction. Fakhar Lodhi

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Modelli di sviluppo software. Enrico Giunchiglia

Software Engineering. Software Engineering. Software Costs

Unit 1 Learning Objectives

Chapter 2 Software Processes

Lecture 3 Software Development Processes

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

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Classical Software Life Cycle Models

Software Life Cycle Processes

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

COMP 354 Introduction to Software Engineering

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

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

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

CS4507 Advanced Software Engineering

Software Engineering

Process Models and Metrics

Advanced Software Engineering. Software Development Processes

(Refer Slide Time: 01:52)

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Foundations of software engineering

A Comparison between Five Models of Software Engineering

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

To introduce software process models To describe three generic process models and when they may be used

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software Development Life Cycle (SDLC)

IV. Software Lifecycles

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

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Software Development Methodologies

I219 Software Design Methodology

CSE 435 Software Engineering. Sept 16, 2015

How To Understand The Software Process

Software Process and Models

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Software Life Cycle Models

Unit I. Introduction

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

Software Development Process Models

Software development lifecycle

Chap 1. Introduction to Software Architecture

Supporting Workflow Overview. CSC532 Fall06

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Software Engineering. What is a system?

Software Development Life Cycle

Software Project Models

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

A Process Programmer Looks at the Spiral Model

What is a life cycle model?

A Process Model for Software Architecture

Software Lifecycles Models

A Capability Maturity Model (CMM)

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

Object-Oriented and Classical Software Engineering

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

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

ASSESSMENT OF SOFTWARE PROCESS MODELS

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

Managing TM1 Projects

Plan-Driven Methodologies

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

JOURNAL OF OBJECT TECHNOLOGY

CPSC 491 Lecture Notes Fall 2013

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

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

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

Today: Software Development Models (cont)

Software Production and Lifecycle Models

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

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Slide 2.1. Slide 2.3. Slide 2.5

A Comparison Between Five Models Of Software Engineering

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

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

Outline. Definitions. Course schedule

Software Development Processes. Software Life-Cycle Models

Non-Technical Issues in Software Development

Lifecycle Models: Waterfall / Spiral / EVO

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Dependable (Safe/Reliable) Systems. ARO Reliability Workshop Software Intensive Systems

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Prepared by: Ahmed Abdelmalik Mohammed Ahmed Ali Ann Joseph Duaa Jasim. Submitted to T.Mona

Surveying and evaluating tools for managing processes for software intensive systems

2. Analysis, Design and Implementation

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

An Assessment between Software Development Life Cycle Models of Software Engineering

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

Transcription:

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

Some of these slides are based on: Lecture slides by Ian Summerville accompanying his classic textbook software engineering, see http://www.comp.lancs.ac.uk/computing/resources/ser/ 2

Overview Build-and-fix model Waterfall model Rapid prototyping model Incremental model Evolutionary Spiral model 3

Software Life-Cycle and Process Models Life-cycle models Phases in the life of artifacts Process models The software development and operation activities and their ordering Requirements elicitation Specification Design Implementation Integration Testing 4

Build and Fix Model Properties No planning or analysis The working program is the only workproduct Advantage Appropriate for small programs written by one person Disadvantage Understandability and maintainability decrease rapidly with increasing program size Totally unsatisfactory Need a life-cycle model Game plan Phases Milestones 5

Waterfall Model Characterized by Sequential steps (phases) Feedback loops (between two phases in development) Documentation-driven Advantages Documentation and clearly defined phases Maintenance easier (assuming up-to-date docs available) Disadvantages Complete and frozen specification document up-front often not feasible in practice Customer involvement in the first phase only Sequential and complete execution of phases often not desirable Process difficult to control The product becomes available very late in the process (significant risk of building the wrong system) Applicability Only appropriate when the requirements are well-understood 6

Rapid Prototyping Model Rapid prototyping phase followed by waterfall Do not turn the rapid prototype into the product Rapid prototyping may replace the specification phase never the design phase Comparison: Waterfall model try to get it right the first time Rapid prototyping frequent change, then discard 7

Advantages and Disadvantages Advantages Requirements better specified and validated Early feasibility analysis Strong involvement of the customer in the prototyping phase Disadvantage Higher development effort Danger that due to schedule slip, the prototype becomes part of the product 8

Spiral model Waterfall model plus risk analysis and prototyping preceding each phase and evaluation following each phase Inner cycles denoting early system analysis and prototyping Outer cycles denoting the rest of the classic waterfall Radial dimension: cumulative cost to date Angular dimension: progress through the spiral If all risks cannot be resolved, the project is immediately terminated Appropriate only for big projects (high management overhead) First proposed by Boehm in 1987 Precursor of iterative models 9

Spiral model Determine objectives alternatives and constraints Plan next phase REVIEW Requirements plan Life-cycle plan Development plan Integration and test plan Risk analysis Risk analysis Risk analysis Prototype 2 Risk analysis Prototype 1 Concept of Operation S/W requirements Requirement validation Design V&V Service Acceptance test Evaluate alternatives identify, resolve risks Prototype 3 Operational protoype Simulations, models, benchmarks Product design Code Unit test Integration test Detailed design Develop, verify next-level product 10

Iterative Models Build software in multiple iterations Two flavors Incremental Evolutionary 11

Incremental Model Requirements Release 1 Design Coding Test Deployment Release 2 Design Coding Test Deployment Release 3 Design Coding Test Deployment User requirements are prioritized and the highest priority requirements are included in early increments Each release adds more functionality, i.e., a new increment 12

Incremental Model Advantages Operational quality portion of product within weeks (whereas in waterfall and rapid prototyping models Operational quality complete product at end) Less traumatic Smaller capital outlay, rapid return on investment Comprehensive spec up front can be used as a contract Disadvantage May be hard to create a comprehensive requirements spec up front if a domain not well understood 13

Evolutionary Version 1 Requirements Design Coding Test Deployment Version 1 Requirements Design Coding Test Deployment Version 1 Requirements Feedback Design Coding Test Deployment New versions implement new (increments) and evolving requirements (Many refer to it as just iterative) 14

Evolutionary Model (contd) Advantages Early increments act as a prototype to help elicit requirements for later increments Constant customer involvement and validation Allows for good risk management - lower risk of overall project failure Project can be continued as long as each increment delivers value Agile software development methods use the evolutionary model Disadvantages Build-and-fix danger Can use agile development practices (unit test, increment planning, etc.) to avert this danger Not appropriate when a larger part of a system needs to be commissioned from a supplier Need a comprehensive requirements spec as a contract up front 15

Process model risk problems Waterfall High risk for new systems because of specification and design problems Low risk for well-understood developments using familiar technology Prototyping Lower risk for new applications because specification validated Potentially high risk for stages beyond prototyping Evolutionary Middle ground between waterfall and prototyping 16

Hybrid process models Large systems are usually made up of several sub-systems The same process model need not be used for all subsystems Prototyping for high-risk specifications Waterfall model for well-understood developments Taylor the process to a problem 17

Use of the Models in Practice 18

Lifecycle vs. Processes Lifecycle models Phases in the life of an artifact, e.g., a system Process models Activities performed on artifacts, e.g., development activities 19

Process Workflows Business Modeling Requirements Architecture & Design Implementation Test Phases vs. Activities Activities performed concurrently, but with differing intensity Phases Inception Elaboration Construction Transition Deployment Supporting Workflows In an iteration, you walk through all workflows Configuration Mgmt Workflows group activities logically Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 20 Iterations