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

Similar documents
An Overview of Software Process

The Systems Development Lifecycle

Quality 24 Process Improvement 26 Real processes. Product Quality. Quality Management. Quality Management. Quality Plan

Software Engineering QUESTION BANK

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

Software Engineering

The software process

03. Perspective Process Models

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

Software Engineering

Software development processes: from the waterfall to the Unified Process

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

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

A New Divide & Conquer Software Process Model

3. Comparison of Above Described SDLC Models

Software development activities

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

Software Development Software Development Activities

18-642: Software Development Processes

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

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

Software Process. Overview

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Software Engineering COMP 201

Tuesday, October 25. Announcements

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

22C:180/55:180 Software Engineering-- Architecture & Design of Software Systems

CONTENTS. Introduction to Software Engineering. Software Process and Life Cycle Models. Software Life-Cycle Model-2. Chapter 1. Chapter 2.

The Value of TSP in Agile Practices

Explore Comparative Analysis Software Development Life Cycle Models

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

On successful completion of this course, students will able to

Software Engineering Part 2

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

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

Achieving Excellence In Software Engineering

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

Introduction of RUP - The Rational Unified Process

What is Software Engineering?

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Software Life Cycle. Main Topics. Introduction

Agile Methods. Background

The Challenge of Agile Estimating

Modern Systems Analysis and Design Seventh Edition

QAIassist IT Methodology General Context

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

ABHELSINKI UNIVERSITY OF TECHNOLOGY

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

Evaluating Ten Software Development Methodologies

FIT2101 Software Engineering Process and Management

Introduction to Agile/Extreme Programming

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

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

Reducing Business Risk

LIFE-CYCLE MODELS AND PROCESS. Software Engineering 1/9/2008. CHAPTER 1, 2, and 3. Stephen R. Schach

CSE 435 Software Engineering. Sept 14, 2015

Development Methodologies

Introduction to Software Engineering

Software processes. Software Applications A.Y. 2018/2019

MTAT Software Engineering Management

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

QUANTIFIED THE IMPACT OF AGILE. Double your productivity. Improve Quality by 250% Balance your team performance. Cut Time to Market in half

Chapter 3 Software Process Model

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Which project management methodology? A guide for the perplexed. BCS London (South) branch Wednesday 6 th May 2015

The Software Life Cycle

Instructor s Manual Chapter 2

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Software Engineering in the Agile World. Table of contents

software development lifecycle (sdlc) models & agile methods

Quality Systems Frameworks. RIT Software Engineering

Software Engineering Lecture 5 Agile Software Development

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Processes and Life- Cycles. Kristian Sandahl

SOFTWARE DEVELOPMENT. Process, Models, Methods, Diagrams Software Development Life Cyles. Part - V

Information Systems Development

CMPT 275 Software Engineering

Chapter 14 Current trends in system development

Object-Oriented and Classical Software Engineering

Agile Development Methodologies:

Chapter 3 Prescriptive Process Models

Processes and Life- Cycles. Kristian Sandahl

SWE 211 Software Processes

Agile Software Development

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

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Pertemuan 2. Software Engineering: The Process

Building a Platform for Innovation

Owning An Agile Project: PO Training Day 2

Agile Manifesto & XP

Welcome to this IBM Rational podcast, Do you. Have What it Takes to be a Successful Business Analyst? I'm

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

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

SDLC Models- A Survey

Other Agile Approaches & Methodologies

Transcription:

Lifecycle of Software Projects ECE450 Software Engineering II Lifecycle models are useful to compare project management strategies in abstract terms Birds-eye view strategy Detect strengths and weaknesses... but reality is always more messy Today: Lifecycles and Methodologies ECE450 - Software Engineering II 1 ECE450 - Software Engineering II 2 Waterfall Model perceived View of development: need A process of stepwise refinement High-level management view Problems: Static view of (ignores volatility) code Lack of user involvement once spec is written Unrealistic separation of spec from Doesn t accomodate integrate prototyping, reuse ECE450 - Software Engineering II 3 Level of abstraction system analyze and V Model preliminary detailed code and debug component unit acceptance integration system integration and integrate time ECE450 - Software Engineering II 4 1

Preliminary prototype Prototyping Model build prototype Specify full evaluate prototype code integrate Requirements Phased Models Release 1 Incremental development code integrate O&M (each release adds more release 2 functionality) code integrate O&M release 3 code integrate O&M release 4 code integrate O&M Prototyping is used for: Understanding the for the user interface Examining feasibility of a proposed approach Exploring system performance issues Problems Users treat the prototype as the solution A prototype is only a partial specification ECE450 - Software Engineering II 5 version 1 reqts code integrate O&M Evolutionary development (each version incorporates new ) lessons learnt version 2 reqts code integrate O&M lessons learnt version 3 reqts code integrate ECE450 - Software Engineering II 6 Determine goals, alternatives, constraints Plan alternatives 4 Spiral Model alternatives 3 constraints 4 constraints 3 Alternatives 2 Constraints 2 alternatives constraints risk analysis 1 risk analysis 2 risk analysis 4 risk analysis 3 Evaluate alternatives and risks budget 4 budget 3 budget 2 budget 1 prototype 1 prototype 2 prototype 3 prototype 4 development plan integration and plan, lifecycle plan concept of operation validated Develop and ECE450 - Software Engineering II 7 implementation plan validated, verified acceptance system unit code detailed Release Agile Model (XP) Collect User stories Each cycle: approx 2 weeks code integrate Write cases Planning game ECE450 - Software Engineering II 8 2

Project lifecycle choices Which lifecycle model to choose? First of all, CHOOSE ONE! Too many projects drift aimlessly without this kind of strategy Second, if possible, AVOID WATERFALL Most derided, error-prone lifecycle Though still the lifecycle of choice in many corporations Third, prototypes and iterations are good for you Sanity checks Almost never a waste of time/resources Fourth, choose based on context and convenience Software Methodologies Reminder: A lifecycle is an abstract description of the life of a project A methodology is a set of techniques that work well together Lifecycles!= Methodologies Methodologies are usually (but not exclusively) built upon a lifecycle strategy ECE450 - Software Engineering II 9 ECE450 - Software Engineering II 10 Methodology Types Main distinction: Sturdy vs. Agile Key difference is how they handle uncertainty Sturdy approaches attempt to minimize the amount of uncertainty Planning, risk prevention Agile approaches attempt to minimize the impact of uncertainty Adaptatability, incremental processes CMM CMM: Capability Maturity Model (now CMMI, where I stands for integration ) Developed by Watts Humphrey and the Software Engineering Institute (SEI) at CMU Five levels Certification process Companies are evaluated as CMM level 3, for example Mirrors Total Quality Management approaches ECE450 - Software Engineering II 11 ECE450 - Software Engineering II 12 3

Proven techniques Self-sustained process Required for some contracts Fear of taking risks Not popular among employees nor stellar companies Doesn t get more rigid than this! Unless you go for ISO CMM (cont) CMM variants: TSP and PSP TSP: Team Software Process Your company isn t keen on the CMM? You can still embrace its processes at the team level Same recipe as CMM, but in smaller scale PSP: Personal Software Process No, not PlayStation Portable! Same story as TSP, on an individual scale A Discipline for Software Engineering, Humphrey Worth reading and doing the exercises, at least for self-awareness ECE450 - Software Engineering II 13 ECE450 - Software Engineering II 14 Cleanroom Best realization of engineering is formal methods concept Main idea: Don t let the bugs in in the first place To be added to product, piece of code must be proven correct Very high-quality Optimal for mission-critical projects Slow, not cost-effective Good luck finding trained people RUP: Rational Unified Process Propietary process, IBM Characterized by use of UML (Unified Modelling Language) Feels like a matrix evolution on the waterfall model Phases and Disciplines RUP ECE450 - Software Engineering II 15 ECE450 - Software Engineering II 16 4

RUP (cont) More relaxed, though still sturdy approach to projects Popular in some mid-large companies Discards naive view of waterfall models Need to train people in new modelling skills Controversy on cost-effectiveness of analysis and modelling Doesn t work well in changing environments XP XP = extreme Programming Yes, terrible name Intuition: Requirements changes are inevitable; emphasize adaptability Practices: User Stories Planning Game System Metaphor Test-Driven Development Small Releases Pair Programming ECE450 - Software Engineering II 17 ECE450 - Software Engineering II 18 XP (cont) The most successful of the agile methodologies Though it s debatable whether people that say they follow XP really are doing so Little spending in initial stages, results appear early Change is expected, adapts faster Short feedback loops No time spent in analysis may mean lots of rework later on No clear end in sight, project may continue forever Pair programming feels awkward for most SCRUM An agile, lightweight methodology alternative ECE450 - Software Engineering II 19 ECE450 - Software Engineering II 20 5

SCRUM (cont) Just about the easiest methodology to implement Spends little developer time in documentation and meetings 15-minute daily meetings are a great practice Not every customer is agreeable Difficulties of scale Long-term planning concerns ECE450 - Software Engineering II 21 Methodology choices THEY ALL WORK Really! They provide a framework for your project plans But you need to be committed to make it work Choice depends on personal/company/customer preference What about Open Source projects? ECE450 - Software Engineering II 22 6