CSE 403 Lecture 2 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) slides created by Marty Stepp

Slides:



Advertisements
Similar presentations
Applying Agile Methodologies to Traditional Publishing Kristen McLean Bookigee, Inc. February 12 th, 2011.
Advertisements

Prescriptive Process models
2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
1 CSE 403 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) These lecture slides are copyright (C) Marty.
Software Development Life-Cycle Models
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Software development lifecycle The power of process Cycle Life Software.
Software Process Models
3 Traditional Development Methods Of (SDLC) -Prototype -Waterfall -Agile Group9 Q2 Heng shujia 0823.
Agile development By Sam Chamberlain. First a bit of history..
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
TCSS 360, Spring 2005 Lecture Notes
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
Rally: One Writer’s Perspective. Background 28 years in technical communications including Symantec, Autodesk, and Cisco. Participated in Rally-based.
1 CSE 403 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) These lecture slides are copyright (C) Marty.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
1 Agile Methodology & Programming Ric Holt July 2009.
Building a new HMS from scratch Bite size software delivery Richard Troote Alex Stephenson Head of ICT Head of Property Services.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Project Workflow. How do you do it? -Discussion-
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Software Engineering Management Lecture 1 The Software Process.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
> whoami Yuriy Brun Office: CSE 340
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
CS223: Software Engineering Lecture 5: Software Development Models.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CSE 403, Spring 2008, Alverson Software Development Lifecycle The Power of Process.
Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project.
Software Lifecycle Models Place of Testing in Software Lifecycle 1.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Steve Lundquist, PMP, M.Sc..  As a PMP certified program manager, there are numerous tools, processes, methodologies, and tricks that are available to.
AGILE SOFTWARE DEVELOPMENT. Agile software development : Agile software development refers to a group of software development methodologies that promotes.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Software Development - Methodologies
Object-oriented Analysis and Design
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Software Processes (a)
Chapter 2 SW Process Models
How to Successfully Implement an Agile Project
The Agile Manifesto is based on 12 principles
Lecture 02: Software Lifecycle Models
Software life cycle models
Lecture 03: Software Lifecycle Models
Software Process Models
CS310 Software Engineering Lecturer Dr.Doaa Sami
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

CSE 403 Lecture 2 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) slides created by Marty Stepp

2 Lecture outline The software lifecycle –evaluating models Lifecycle models –code-and-fix –waterfall –spiral –evolutionary prototyping –staged delivery –design-to-schedule

3 Big questions What is a software lifecycle model? When and why should we use such models? How do we decide which model is the best one to use? Briefly describe each of these models: –code-and-fix, waterfall, spiral, evolutionary prototyping, staged delivery, design-to-schedule What are some benefits and drawbacks of each model?

4 How complex is software? Measures of complexity: –lines of code Windows Server 2003:50 MSLoC Debian 5.0: 324 MSLoC (61 years to type at 50wpm!) –number of classes –number of modules –module interconnections and dependencies –time to understand –# of authors –… many more

5 Ad-hoc development ad-hoc development: no formal process (aka "code and fix") –Sounds great! No learning required. drawbacks? –some important actions (design, testing) may go ignored –not clear when to start or stop doing each task –does not scale well to multiple people –not easy to review or evaluate one's work –code didn't match user's needs (no requirements!) –code was not planned for modification, not flexible Key observation: The later a problem is found, the more expensive it is to fix.

6 The "Software Lifecycle" software lifecycle: The entire process of creating a software product from an initial concept until the last user stops using it. –often divided into "phases": Requirements Analysis & Specification High-level (Architectural) Design Detailed (Object-oriented) Design Implementation, Integration, Debugging Testing, Profiling, Quality Assurance Operation and Maintenance other possibilities: Risk Assessment, Prototyping –goals of each phase: mark out a clear set of steps to perform produce a tangible document or item allow for review of work specify actions to perform in the next phase

7 Some lifecycle models code-and-fix: write some code, debug it, repeat (i.e., ad-hoc) waterfall: standard phases (req., design, code, test) in order spiral: assess risks at each step; do most critical action first evolutionary prototyping: build an initial small requirement spec, code it, then "evolve" the spec and code as needed staged delivery: build initial requirement specs for several releases, then design-and-code each in sequence agile development: iterative, adaptive, incremental improvement done by self-organizing cross-functional teams

8 Benefit/cost of models benefits of models –decomposing workflow, understanding/managing process limitations of models –can lead to compromises and artificial constraints –risk of overemphasizing process (not the end in itself) ways of evaluating models –risk management, quality/cost control, predictability, visibility of progress, customer involvement/feedback

9 Waterfall requirements verify retirement operations test implement verify design req. change benefits? –formal, standard; specific phases with clear goals –clear divisions between phases –good feedback loops between adjacent phases

10 Drawbacks of waterfall drawbacks? –assumes requirements will be clear and well-understood –requires a lot of planning up front (not always easy) –rigid, linear; not adaptable to change in the product –costly to "swim upstream" back to a previous phase –nothing to show until almost done ("we're 90% done, I swear!") requirements verify retirement operations test implement verify design req. change

11 steps taken at each loop: –determine objectives and constraints –identify risks –evaluate options to resolve risks –develop and verify deliverables benefits? –provides early indication of unforeseen problems –always addresses the biggest risk first –accommodates changes, growth –eliminates errors and unattractive choices early Spiral Barry Boehm, USC

12 Drawbacks of spiral steps taken at each loop: –determine objectives and constraints –identify risks –evaluate options to resolve risks –develop and verify deliverables drawbacks? –relies on developers to have risk-assessment expertise –perhaps over-focuses on risk and "putting out fires"; other features may go ignored because they are not "risky" enough –complex; how do you actually follow this? –works poorly when bound to an inflexible contract Barry Boehm, USC

13 Evolutionary prototyping build initial requirements, design/code it, "evolve" as needed benefits? –produces steady signs of progress, builds customer confidence –useful when requirements are not well known or change rapidly –customer involvement ("What do you think of this version?") for each build: detailed design, implement, test, deliver requirements verify retirement operations verify arch. design

14 Drawbacks of evolutionary drawbacks? –assumes user's initial spec will be flexible –unclear how much iteration/time will be needed to finish –fails for separate pieces that must then be integrated –temporary fixes become permanent constraints –bridging; new software trying to gradually replace old for each build: detailed design, implement, test, deliver requirements verify retirement operations verify arch. design

15 Staged delivery staged delivery –waterfall-like beginnings, then develop in short stages –tight coordination with docs, management, marketing –can ship at any time during implementation –from the outside (to customers) it looks like a successful delivery even if it is not the final goal the team aimed for How does staged delivery differ from evolutionary prototyping? –In staged delivery, requirements are better known ahead of time rather than discovered by customer feedback on each release.

16 Evolutionary delivery evolutionary delivery –a hybrid between evolutionary prototyping and staged delivery difference from evo. prototyping –focuses on low-level systems first –evo. prototyping focuses on visible aspects (front-end)

17 Design-to-* design-to-schedule –useful when you absolutely need to ship by a certain date –similar to the staged delivery model but less flexible because of the fixed shipping date –requires careful prioritization of features and risks to address –not recommended design-to-tools –a model where the project only incorporates features that are easy to implement by using or combining existing components –reduces development time at cost of losing control of project –not recommended off-the-shelf software: don't build it, just purchase it (...)

18 Agile development agile software development: An adaptive, iterative process where teams self-organize and build features dynamically. –Extreme Programming –Scrum values: –Individuals and interactions over processes and tools –Working software over documentation –Customer collaboration over contract negotiation –Responding to change over following a plan

19 Agile Manifesto The 12-point Agile Manifesto: –customer satisfaction by rapid delivery of useful software –welcome changing requirements, even late in development –working software is delivered frequently (weeks rather than months) –working software is the principal measure of progress –sustainable development, able to maintain a constant pace –close, daily co-operation between business people and developers –face-to-face conversation is the best form of communication –projects are built around motivated individuals, who are trusted –continuous attention to technical excellence and good design –simplicity –self-organizing teams –regular adaptation to changing circumstance Works well when used with small teams of experts who can handle a bit of uncertainty, chaos, change

20 Model category matrix Risk mgmt. Quality/ cost ctrl. Predict- ability Visibility of progress Customer involvement code-and-fix waterfall spiral evolutionary prototyping staged delivery design-to-schedule Rate each model 1-5 in each of the categories shown: Risk mgmt. Quality/ cost ctrl. Predict- ability Visibility of progress Customer involvement code-and-fix waterfall spiral evolutionary prototyping staged delivery design-to-schedule 43532

21 Model pros/cons