CPSC 310 Software Engineering Lecture 2 Software Processes. Thanks to Eric Wolhstader, Emerson Murphy-Hill



Similar documents
Software Engineering. A Software Crisis. Denver International Airport

Friday, 10 December How to run a BI project?

Software development lifecycle

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

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

Models of Software Development

A Comparison between Five Models of Software Engineering

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

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

(Refer Slide Time: 01:52)

How To Understand The Software Process

Classical Software Life Cycle Models

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

Software Project Models

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

Lecture 3 Software Development Processes

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

CS4507 Advanced Software Engineering

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

Modelli di sviluppo software. Enrico Giunchiglia

WHY THE WATERFALL MODEL DOESN T WORK

Introduction to Software Engineering

Unit 1 Learning Objectives

last +me: Product idea proposal SoJware Development Lifecycle What is complex? How complex is sojware? How complex is sojware? How complex is sojware?

Software Development Process

COMP 354 Introduction to Software Engineering

Software Life Cycle Processes

This Wednesday. last *me: Product idea proposal. SoKware Development Lifecycle. What is complex? How complex is sokware? 1/25/15

Managing TM1 Projects

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

Software Process for QA

Software Life Cycle Models

A Comparison Between Five Models Of Software Engineering

Today: Software Development Models (cont)

CSE 435 Software Engineering. Sept 16, 2015

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

ASSESSMENT OF SOFTWARE PROCESS MODELS

Advanced Software Engineering. Software Development Processes

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

An Assessment between Software Development Life Cycle Models of Software Engineering

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

Organizing, planning and scheduling software projects

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

CPSC 491 Lecture Notes Fall 2013

A Software Development Simulation Model of a Spiral Process

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

A Review of Risk Management in Different Software Development Methodologies

Chapter 2 Software Processes

The Case for Results-Based Software Management

Foundations of software engineering

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

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

Why do we need this course?

Lifecycle Models: Waterfall / Spiral / EVO

INTRODUCTION. Chapter Motivation

When is Agile the Best Project Management Method? Lana Tylka

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

Software Testing and Software Development Lifecycles

Balancing the Hybrid Development Process. The role of the Business Analyst

Alternative Development Methodologies

Implementing Models and Standards for Software Development Benefits and Risks

Project management. Organizing, planning and scheduling software projects

Requirements Analysis (RA): An Analytical Approach for Selecting a Software Process Models ABSTRACT

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

An introduction to the benefits of Application Lifecycle Management

Agile So)ware Development

Software Development Processes. Software Life-Cycle Models

Hamid Faridani March 2011

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software Engineering

How To Develop An Application

Unit I. Introduction

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Outline. Definitions. Course schedule

Agile Projects 7. Agile Project Management 21

Project management. Organizing, planning and scheduling software projects. Objectives. Chapter 3. Chapter 3 Project Management. Learning Objective

Umbrella: A New Component-Based Software Development Model

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

THE AGILE WATERFALL MIX DELIVERING SUCCESSFUL PROGRAMS INVOLVING MULTIPLE ORGANIZATIONS

Medical Device Agile Systems Development Workshop

LECTURE-4. Dronacharya College of Engineering

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

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Information Systems Development Process (Software Development Life Cycle)

What is a life cycle model?

Taking the first step to agile digital services

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

Software Engineering 1

Weaving the Software Development Process Between Requirements and Architectures

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

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

Software Engineering. Computer Science Tripos 1B Michaelmas Richard Clayton

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

Overview of Software Engineering and the Software Development Process

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

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

Introducing Agility into a Phase Gate Process

Transcription:

CPSC 310 Software Engineering Lecture 2 Software Processes Thanks to Eric Wolhstader, Emerson Murphy-Hill

Admin Please join Piazza if you haven t already piazza.com/ubc.ca/winterterm22013/cpsc310 2

Learning Goals By the end of this unit, you will be able to: Describe benefits of using a software process Describe the waterfall and spiral model including advantages, drawbacks Describe the importance of agile methods 3 3

Why do software projects fail? Unrealistic project goals Inaccurate estimates of needed resources Unmanaged risks Poor communication Do you know of a failed software project or other Vaporware? 4 4

When things go wrong 5

Automated, airport-wide baggage system 20 miles of track 6 miles of conveyor belts 56 laser arrays that read bar coded tags 3100 standard size baggage telecars 450 oversize cars Some 100 networked computers 6 6

The system 7

The timeframe Started 17 months before scheduled opening In Munich, engineers spend two years just testing a similar, but much smaller system! (With 24/7 operation for 6 months!) 8 8

More risks Most buildings already done System must adapt: sharp turns, narrow corridors Little attention paid to Munich sister project Devised system from scratch Internal communication problem 9 9

Consequences Airport opening delayed four times Overall, 16 months delay Engineering firm went bankrupt New engineering firm Split the system in 3 (one per terminal) Manual backup system Overall damage: 1.3 billion $ Automatic system abandoned in 2005 Reported savings of 1M$ / month 10

Class activity What do you think is the most important mistake that they made? How would you have done things differently? 11 11

Projects need a good plan A software process is a structured set of activities to develop a software system. Defines who is doing what, when and how to reach a goal. 12 12

Software process Process descriptions may also include: Products, which are the outcomes of a process activity; Stakeholders: people who care (about the outcome) Managers Developers Customers Testers What are some major types of software customers? 13

Software process Many different software processes, all include: requirements elicitation, architectural design, detailed design, implementation, integration, testing, Goals of each activity Mark out clear set of steps to perform Produce tangible item(s) Allow for review of work Specify actions to perform in the next activity 14

Productive work analysis Little attention to process (McConnell) 15

Productive work analysis Early attention to process 16

Class activity What software process challenges would Mozilla face as an open source project that would differ from a company with co-located development teams? 17 17

Common software processes Waterfall model (sequential) separate and distinct phases of specification and development Spiral model incremental prototyping with risk management Agile models / principles iterative approach with high customer communication 18

Software process models A software process model is an abstract representation of a software process. Many different types Good for different situations Like different cars Truck to haul goods Bus to transport people Volvo for safety 19

Why should you care? To work as a developer Know the lingo, don t be lost Understand the purpose Understand your role Less frustration To lead a project Assess the risks Choose a model Have a successful project 20 20

Software processes In practice, most large systems are developed using a process that incorporates elements from all of these models. Different models for different types of software types of companies types of management 21

Waterfall model (a.k.a. BDUF: Big Design Up Front) Royce, 1970: http://www.cs.umd.edu/class/spring2003/cmsc838p/process/waterfall.pdf 22

Waterfall: Advantages Good for well-understood, complex projects Tackles all planning up front No midstream changes = efficient process Provides support for an inexperienced team Orderly, sequential, easy-to-follow model Relatively slow progress Reviews at each stage 23 23

Waterfall: Drawbacks Getting requirements right up front. Hard to manage risks (a bit of a gamble) Reactive to errors but not to changing requirements 24 24

Software Project Risks Reference: Top Ten Lists of Software Project Risks : Evidence from the Literature Survey, Arnuphaptrairong 25

Spiral Model Boehm B, "A Spiral Model of Software Development and Enhancement", ACM SIGSOFT Software Engineering Notes", "ACM", 11(4):14-24, August 1986 26

Four sectors of the spiral 1. Determine objectives Specific objectives for the cycle are identified. 2. Identify and resolve risks Risks are assessed and activities put in place to reduce the key risks. 3. Development and test A development model for the system is chosen (e.g. a subset of Waterfall phases). 4. Plan the next iteration The project is reviewed and the next phase of the spiral is planned. 27

Spiral Model Each cycle Ends with demoable prototype Lessons from performing the cycle are reviewed and incorporated for next cycles For each cycle Sectors encompass more of a complete Waterfall Prototype becomes more of a complete product In the last cycle A complete Waterfall emerges 28

Spiral Model Benefits Manages risk by repeated review of prototypes Doesn t jump into building product head first Able to incorporate changes in requirements in each iteration Drawback High administrative overhead Can be overly conservative if you have high confidence in the outcome 29

Coping with change Change is inevitable in software projects Business changes New technology or platforms or APIs Changing requirements New management Change leads to rework or new functionality Design the process so that changes can be accommodated at relatively low cost 30 30

Agile Models / Principles The goal of agility: to develop software in the face of changing environment and constrained resources More a set of principles than a fixed model; many variations of agile processes Developers are indoctrinated with the principles and then trusted to act with less oversight 31

Example of Agile: Extreme Programming http://www.extremeprogramming.org/rules.html 32

Summary Why a software process can be important Definition of a software process There exist many different process models Basic models: Waterfall, Spiral Agile models: incremental and iterative More on agile principles/models in next lecture 33 33