Classical Software Life Cycle Models



Similar documents
CSE 435 Software Engineering. Sept 16, 2015

Software Engineering

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

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

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

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

3C05: Unified Software Development Process

Software Lifecycles Models

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

I219 Software Design Methodology

CS4507 Advanced Software Engineering

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

How To Understand The Software Process

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

Software Development Life Cycle

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

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

What is a life cycle model?

Unit 1 Learning Objectives

Chap 1. Introduction to Software Architecture

Unit I. Introduction

Basic Unified Process: A Process for Small and Agile Projects

Surveying and evaluating tools for managing processes for software intensive systems

Abstract. 1 Introduction

SOFTWARE PROCESS MODELS

Chapter 2 Software Processes

COMP 354 Introduction to Software Engineering

Software Process and Models

(Refer Slide Time: 01:52)

Agile Unified Process

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Software Life Cycles and Configuration Management

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

Software Project Management using an Iterative Lifecycle Model

Software Process for QA

Plan-Driven Methodologies

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

Development Methodologies

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

Software Development Life Cycle (SDLC)

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

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

The Unified Software Development Process

Web Application Development Process

CHAPTER. Software Process Models

The Software Life Cycle. CSE 308: Software Engineering

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

Title: Topic 3 Software process models (Topic03 Slide 1).

Software Development Methodologies

2. Analysis, Design and Implementation

A Survey of Software Development Process Models in Software Engineering

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

RUP for Software Development Projects

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

Christina Wallin ABB Corporate Research Department of Industrial IT Västerås +46 (0)

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

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

6 Contracts and Scenarios in the Software Development Process

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

An Introduction to the UML and the Unified Process

Software Project Models

Software Life Cycle Processes

How To Understand Software Engineering

What CMMI Cannot Give You: Good Software

Lecture 3 Software Development Processes

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

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

A Comparison between Five Models of Software Engineering

Umbrella: A New Component-Based Software Development Model

A Review of an MVC Framework based Software Development

Business Modeling with UML

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Introduction to Software Engineering: Project Management ( Highlights )

Iterative Software Development -

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

The Rap on RUP : An Introduction to the Rational Unified Process

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

Information systems modelling UML and service description languages

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

SOFTWARE DEVELOPMENT SD

How To Write An Slcm Project Plan

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

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

Software Engineering Reference Framework

Software Development Process

SWEBOK Certification Program. Software Engineering Management

Chapter 4 Software Lifecycle and Performance Analysis

How To Model Software Development Life Cycle Models

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

System development lifecycle waterfall model

Increasing Development Knowledge with EPFC

Transcription:

Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website

Motivation Problem: Create high quality software with limited resources, by a deadline, in the context of constant change Quality development processes help Need to model development process to address Where to find a particular kind of fault How to find faults earlier How to build in fault tolerance What are alternative activities SWEN 301 Lect 2: Classical 2

The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce an intended output of some kind A process involves a set of tools and techniques Tool: an instrument or automated system for accomplishing something in a better way We sometimes refer to the process as a life cycle The Importance of Processes: Impose consistency and structure on a set of activities Guide us to understand, control, examine, and improve the activities Enable us to capture our experiences and pass them along SWEN 301 Lect 2: Classical 3

Software Process Models Reasons for Modelling a Process: To form a common understanding To find inconsistencies, redundancies, omissions To find and evaluate appropriate activities for reaching process goals To tailor a general process for a particular situation in which it will be used SWEN 301 Lect 2: Classical 4

Software Process Models When a process involves building a software, the process may be referred to as software life cycle Requirements analysis and definition System (architecture) design Program (detailed/procedural) design Writing programs (coding/implementation) Testing: unit, integration, system System delivery (deployment) Maintenance SWEN 301 Lect 2: Classical 5

Software Process Models Software Development Process Models Waterfall model V model Prototyping model Spiral model Phased development: increments and iterations Rational Unified Model Other models: Agile methods, Operational specification, Transformational model SWEN 301 Lect 2: Classical 6

Waterfall Model First proposed by Winston Royce Managing the Development of Large Software Systems: Concepts and Techniques, 1970 Commonly assumed to be a linear, highlystructured lifecycle Royce actually advocated iteration and incremental development. Later argued that the Waterfall lifecycle only works for straight-forward projects SWEN 301 Lect 2: Classical 7

Waterfall Model (cont.) SWEN 301 Lect 2: Classical 8

Waterfall Model (cont.) One of the first process development models proposed Works for well understood problems with minimal or no changes in the requirements Simple and easy to explain to customers It presents a very high-level view of the development process sequence of process activities Each major phase is marked by milestones and deliverables (artifacts) SWEN 301 Lect 2: Classical 9

Drawbacks of The Waterfall Model There is no iteration in waterfall model Most software developments apply a great many iterations Provides no guidance how to handle changes to products and activities during development (assumes requirements can be frozen) Views software development as manufacturing process rather than as creative process Long wait before a final product SWEN 301 Lect 2: Classical 10

Waterfall Model with Prototype Waterfall model with prototyping SWEN 301 Lect 2: Classical 11

Waterfall Model with Prototype (cont.) A prototype is a partially developed product Prototyping helps developers assess alternative design strategies (design prototype) users understand what the system will be like (user interface prototype) Protopyping is useful for verification and validation SWEN 301 Lect 2: Classical 12

V Model A variation of the waterfall model (German Ministry of Defence, 1992) Uses unit and integration testing to verify procedural design Uses system testing to verify architectural (system) design Uses acceptance testing to validate the requirements If problems are found during verification and validation, the left side of the V can be reexecuted before testing on the right side is reenacted SWEN 301 Lect 2: Classical 13

V Model (cont.) SWEN 301 Lect 2: Classical 14

Prototyping Model Allows repeated investigation of the requirements or design Reduces risk and uncertainty in the development SWEN 301 Lect 2: Classical 15

Phased Development: Increments and Iterations Shorter cycle time System delivered in pieces enables customers to have some functionality while the rest is being developed Allows two systems functioning in parallel the production system (release n): currently being used the development system (release n+1): the next version SWEN 301 Lect 2: Classical 16

Phased Development: Increments and Iterations SWEN 301 Lect 2: Classical 17

Phased Development: Increments and Iterations Incremental development: starts with small functional subsystem and adds functionality with each new release Iterative development: starts with full system, then changes functionality of each subsystem with each new release SWEN 301 Lect 2: Classical 18

Phased Development: Increments and Iterations Phased development is desirable for several reasons Training can begin early, even though some functions are missing Markets can be created early for functionality that has never before been offered Frequent releases allow developers to fix unanticipated problems globaly and quickly The development team can focus on different areas of expertise with different releases SWEN 301 Lect 2: Classical 19

Spiral Model: Adding Risk to the Waterfall Waterfall does not explicitly address the issue of risk. Suggested by B. W. Boehm in A spiral model for software development and enhancement, 1988 Combines development activities with risk management to minimize and control risks Each Waterfall activity becomes a cycle. Each cycle has four phases. Supports prototyping and reuse. SWEN 301 Lect 2: Classical 20

Spiral Model SWEN 301 Lect 2: Classical 21

Spiral Model The model is presented as a spiral in which each iteration is represented by a circuit around four major activities Plan Determine goals, alternatives, and constraints Evaluate alternatives and risks Develop and test SWEN 301 Lect 2: Classical 22

Limitations of Waterfall and Spiral Models Neither of these models deal well with frequent changes The Waterfall model assumes that once you are done with a phase, all issues covered in that phase are closed and cannot be reopened The Spiral model can deal with change between phases, but does not allow change within a phase What do you do if change is happening more frequently? The only constant is the change SWEN 301 Lect 2: Classical 23

Rational Unified Process Rational Unified Process (RUP): Iterative, incremental development methodology RUP is structured along two dimensions: Time: phases and iterations Process components: artifacts + activities Tied in with UML and Use Cases UML: specify, visualize and document artifacts Use cases: link different artifacts using UML SWEN 301 Lect 2: Classical 24

RUP in Diagram SWEN 301 Lect 2: Classical 25

Workflows 6 engineering workflows: Business Modelling Requirements Analysis & Design Implementation Test Deployment 3 supporting workflows Project management Configuration and change management Environment SWEN 301 Lect 2: Classical 26

Inception Milestone: Lifecycle Objective Primary objective: scope the system Develop business cases Success factors Risk analysis Develop primary use cases Assist in scope-agreement between stakeholders SWEN 301 Lect 2: Classical 27

Elaboration Milestone: Lifecycle Architecture Primary objective: mitigate key risk items Majority of use cases completed Create executable architecture Address significant use cases Build prototype to evaluate known risks or discover new risks Revise business and development risks SWEN 301 Lect 2: Classical 28

Construction Milestone: Initial Operational Capability Primary objective: build the software system Majority of coding done May divide along use case lines to enhance modularity and incremental integration Creates first external software release for testing and deployment Multiple iterations may refer to different sets of components within the architecture SWEN 301 Lect 2: Classical 29

Transition Milestone: Product Release Development ends if successful Primary objective: deploy to end users and maintainers Validates users expectations Train end users and maintainers Verify against quality level from Inception phase Restart cycle if verification fails SWEN 301 Lect 2: Classical 30

Major Ideas Software life cycle is a process that involve building a software Modeling the software life cycle: Sequential models The waterfall model V-model Prototyping Iterative models Boehm s spiral model Rational Unified Process Phased Development: Increments and Iterations SWEN 301 Lect 2: Classical 31

Readings The following readings might stimulate you to learn more about software life cycle models: P. Kruchten, The Rational Unified Process An Introduction, 3 rd Edition, Addison Wesley, 2003 I. Jacobson, G. Booch, J. Rumbaugh, The Unified Software Development Process, Addison Wesley, 1999 S.H. Pfleeger, J.M. Atlec, Software Engineering: Theory and Practice, 4 th Edition, Pearson Education, 2010 SWEN 301 Lect 2: Classical 32