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

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

Software development lifecycle

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

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

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

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

CPSC 491 Lecture Notes Fall 2013

Software Development Life Cycle (SDLC)

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

A Capability Maturity Model (CMM)

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

Advanced Software Engineering. Software Development Processes

Software Development Processes. Software Life-Cycle Models

When is Agile the Best Project Management Method? Lana Tylka

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

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

Software Development Process

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

Today: Software Development Models (cont)

Software Engineering

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

A Comparison between Five Models of Software Engineering

Software Life Cycle Processes

The Software Life Cycle. CSE 308: Software Engineering

Software Process for QA

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

Software Engineering. Software Engineering. Software Costs

CS4507 Advanced Software Engineering

Hamid Faridani March 2011

Foundations of software engineering

SOFTWARE PROCESS MODELS

CSCI-485: Software Design

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations

Software Engineering. What is a system?

Software Development: The Waterfall Model

Introduction to Software Engineering: Project Management ( Highlights )

ASSESSMENT OF SOFTWARE PROCESS MODELS

A Comparison Between Five Models Of Software Engineering

Software Project Models

AGILE vs. WATERFALL METHODOLOGIES

Software Life Cycle Models

Information Systems Development Process (Software Development Life Cycle)

CSE 435 Software Engineering. Sept 16, 2015

Lecture 21 March 7, 2013

Agile and lean methods for managing application development process

COMP 354 Introduction to Software Engineering

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

CS 5150 So(ware Engineering Steps in the So(ware Development Process

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

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

Agile Processes and Methodologies: A Conceptual Study

Software Development Life Cycle Models- Comparison, Consequences

Lecture 3 Software Development Processes

Building Software in an Agile Manner

Modelli di sviluppo software. Enrico Giunchiglia

Alan Dennis, Barbara Haley Wixom, and Roberta Roth John Wiley & Sons, Inc. Slides by Candace S. Garrod Red Rocks Community College 3-1

Managing TM1 Projects

Understanding Agile Project Management

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

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

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

Software Production and Lifecycle Models

Software Engineering

How To Develop An Application

Integrating PRINCE2 and Scrum for successful new product development

Continuous Integration Processes and SCM To Support Test Automation

Agile in a Safety Critical world

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

INTRODUCTION. Chapter Motivation

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

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

Unit 1 Learning Objectives

INFORMATION SYSTEMS DEVELOPMENT TECHNIQUES AND THEIR APPLICATION TO THE HYDROLOGIC DATABASE DERIVATION APPLICATION

Software Development Methodologies in Industry. By: Ahmad Deeb

International Journal of Advanced Research in Computer Science and Software Engineering

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Continuous Integration: Aspects in Automation and Configuration Management

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

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

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

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

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

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

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

Large Scale Systems Design G52LSS

CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY

Agile So)ware Development

Development Methodologies

A MODEL FOR RISK MANAGEMENT IN AGILE SOFTWARE DEVELOPMENT

Manage projects effectively

Enhance visibility into and control over software projects IBM Rational change and release management software

LECTURE 1. SYSTEMS DEVELOPMENT

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

Brent Atkins, Cris Hadjez An Agile BI Approach: Mead Johnson Uses Better Data to Push Boundaries and Increase Customer Value Session # 3544

Agile for Project and Programme Managers

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

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Technical Helpdesk Tasks and Performance

Transcription:

last +me: Product idea proposal SoJware Development Lifecycle First assignment: Due at noon, Jan 29 h?p://www.cs.umass.edu/~brun/class/2013spring/cs320/productidea.pdf Groups of 1 or 2 get into groups ajer class or use the Moodle class discussion forum Submit 4 slides: 3- minute presenta+ons in class next week Life SoJware Cycle Does everyone have a 2 3 person group? thinking about the process How complex is sojware? What is complex? How complex is sojware? Measures of complexity: lines of code number of classes number of modules module interconnec+ons and dependencies +me to understand # of authors many more How complex is sojware? Measures of complexity: lines of code number of classes number of modules module interconnec+ons and dependencies +me to understand # of authors many more Windows Server 2003: 50 MSLoC Debian 5.0: 324 MSLoC 1

How big is 324 MSLoC? 50 lines/page 6.5M pages 1K pages/ream 6.5K reams 2 inches/ream 13K inches 13K inches taller than the Pruden+al 5 words/loc @ 50 wpm 32M min 61 years Managing sojware development Requirements Design Implementa+on Tes+ng Maintenance And we don t just want random words, we want compiling code! Outline Why do we need a lifecycle process? Lifecycle models and their tradeoffs code- and- fix waterfall spiral staged delivery agile (scrum) there are many others Ad- hoc development Crea+ng sojware without any formal guidelines or process Advantage: easy to learn and use! Disadvantages? Ad- hoc development disadvantages Some important actions (testing, design) may go ignored Unclear when to start or stop each task Scales poorly to multiple people Hard to review or evaluate one's work What makes a lifecycle? Requirements Design Implementa+on Tes+ng Maintenance The later a problem is found in software, the more costly it is to fix. How do we combine them? 2

1/24/13 Benefits of using a lifecycle What are some drawbacks? provides a work structure forces thinking about the big picture helps prevent decisions that are individually on target but collec+vely misdirected assists management and progress control Are there analogies outside of SE? Project with little attention to process Consider the process of building the Prudential Survival Guide: McConnell p24 Project with early attention to process Let s talk about some lifecycle models Survival Guide: McConnell p25 3

Code-and-fix model Code-and-fix model Advantages Low overhead Applicable to small, short-lived projects Dangers No way to assess progress and manage risks Hard to accommodate changes Unclear what and when will be delivered Hard to assess quality Waterfall model System Requirements Software Requirements Preliminary Design Detailed Design Code & Debug Development test Test test Waterfall model advantages Works well for well-understood projects tackles all planning upfront no midstream changes leads to efficient software development process Supports experienced teams Orderly, easy-to-follow sequential model Reviews help determine readiness to advance Operations & Maintenance Revalidation Waterfall model limitations Difficult to do all planning upfront No sense of progress until the end Integration occurs at the very end Defies the integrate early and often rule Without feedback, solutions are inflexible Final product may not match customer s needs Phase reviews are massive affairs It takes a lot of inertia and $ to make changes Determine objectives Identify and resolve risks Evaluate alternatives Develop and verify deliverables Plan next spiral Commit (or not) to next spiral Spiral model 4

Spiral model Oriented towards phased reduction of risk Take on the big risks early are we building the right product? do we have customers for this product? is it possible to use existing technology? tomorrow s technology? Progresses carefully toward a result Spiral model advantages Especially appropriate at the beginning of the project, allowing requirement fluidity Provides early indication of unforeseen problems Allows for change As costs increase, risks decrease! Addresses the biggest risk first Spiral model disadvantages Staged delivery model A lot of planning and management Requires customer and contract flexibility Developers must be able to assess risk first, waterfall-like then, short release cycles: plan, design, execute, test, release with delivery possible at the end of any cycle Staged delivery model advantages Can ship at the end of any release cycle Intermediate deliveries show progress, satisfy customers, and lead to feedback Problems are visible early (e.g., integration) Facilitates shorter, more predictable release cycles Staged delivery model disadvantages Requires tight coordination with documentation, management, marketing Product must be decomposable Extra releases cause overhead Very practical, widely used and successful 5

What s the best model? Consider The task at hand Risk management Quality / cost control Predictability Visibility of progress Customer involvement and feedback Aim for good, fast, and cheap. But you can't have all three at the same time. 6