CSE 403, Spring 2008, Alverson Software Development Lifecycle The Power of Process.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

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.
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CS487 Software Engineering Omar Aldawud
Designing and Developing Decision Support Systems Chapter 4.
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.
1 Chapter 7 Lifecycle Planning. 2 Lifecycles - Introduction A lifecycle model is a prescriptive model of what should happen between the first glimmer.
Software development lifecycle The power of process Cycle Life Software.
Software Process Models
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.
Object-oriented Analysis and Design
Life Cycles Birth to death! i.e what happens to a piece of software from the first appearance of the need for it to the time when it is finally retired.
CSE Senior Design II Staged Delivery Instructor: Mike O’Dell.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
TCSS 360, Spring 2005 Lecture Notes
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.
IT Systems Analysis & Design
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
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.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Week 1 MondayTuesdayWednesdayThursdayFriday Overview Course plans & expectations Tools & tool questions (section)Tools Lifecycle & project milestones KNOW.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development.
Software Engineering MCS-2 Lecture # 6
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
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
Software Engineering process models
CSE 403, Spring 2008, Alverson Agile Development Practices.
> 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.
September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
 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.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
CSE 403, Spring 2007, Alverson Agile Development Practices.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Development Life Cycle (SDLC)
Lectures 2 & 3: Software Process Models Neelam Gupta.
Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project.
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
CSE 403, Spring 2008, Alverson CSE 403 Software Engineering Pragmatic Programmer Tip: Care about Your Craft Why spend your life developing software unless.
By : Hisham Kahlifa Shreef Foda Khaled monir Tamer medhat Supervisor : Dr Doaa Nabil.
SE 548 IŞIL ÖZTÜRK.  Software Development Life Cycle (SDLC ) is a framework that describes the activities performed at each stage of a software development.
Software Lifecycle Models Place of Testing in Software Lifecycle 1.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
Methodologies and Algorithms
Methodologies By Akinola Soyinka.
Software Process Models
Chapter 2 SW Process Models
IT Systems Analysis & Design
Introduction to Software Engineering
Methodologies For Systems Analysis.
Lecture 02: Software Lifecycle Models
Software life cycle models
Lecture 03: Software Lifecycle Models
Software Process Models
Software Processes Process should be
Presentation transcript:

CSE 403, Spring 2008, Alverson Software Development Lifecycle The Power of Process

CSE 403, Spring 2008, Alverson Outline What is a software development lifecycle? Why do we need a lifecycle process? Lifecycle models and their tradeoffs o “Code-and-fix” o Waterfall o Spiral o Evolutionary prototyping o Staged delivery …there are many others (XP, scrum, …)! Main recurring themes (Agile processes)

CSE 403, Spring 2008, Alverson Ad-hoc development ad-hoc development: creating software without any formal guidelines or process Some disadvantages of ad-hoc development: o some important actions (testing, design) may go ignored o not clear when to start or stop doing each task o does not scale well to multiple people o not easy to review or evaluate one's work A common observation: The later a problem is found in software, the more costly it is to fix.

CSE 403, Spring 2008, Alverson The software lifecycle Software lifecycle: series of steps / phases, through which software is produced o from conception to end-of-life o can take months or years to complete Goals of each phase: o mark out a clear set of steps to perform o produce a tangible item o allow for review of work o specify actions to perform in the next phase

CSE 403, Spring 2008, Alverson Benefits of using a lifecycle

CSE 403, Spring 2008, Alverson Benefits of using a lifecycle It provides us with a structure in which to work It forces us to think of the “big picture” and follow steps so that we reach it without glaring deficiencies Without it you may make decisions that are individually on target but collectively misdirected It is a management tool

CSE 403, Spring 2008, Alverson Benefits of using a lifecycle It provides us with a structure in which to work It forces us to think of the “big picture” and follow steps so that we reach it without glaring deficiencies Without it you may make decisions that are individually on target but collectively misdirected It is a management tool Drawbacks?

CSE 403, Spring 2008, Alverson Are there analogies outside of SE? Consider the process of building the Paul Allen Center

CSE 403, Spring 2008, Alverson Project with little attention on process Survival Guide: McConnell p24

CSE 403, Spring 2008, Alverson Project with early attention on process Survival Guide: McConnell p25

CSE 403, Spring 2008, Alverson “Code-and-fix” model

CSE 403, Spring 2008, Alverson “Code-and-fix” model Advantages Little or no overhead - just dive in and develop, and see progress quickly Applicable sometimes for very small projects and short-lived prototypes But DANGEROUS for most projects No way to assess progress, quality or risks Unlikely to accommodate changes without a major design overhaul Unclear delivery features (scope), timing, and support

CSE 403, Spring 2008, Alverson Classic waterfall model Computerworld

CSE 403, Spring 2008, Alverson Classic waterfall advantages Can work well for projects very well understood but complex o Tackles all planning upfront o The ideal of no midstream changes equates to an efficient software development process Can provide support for an inexperienced team o Orderly sequential model that is easy to follow o Reviews at each stage determine if the product is ready to advance

CSE 403, Spring 2008, Alverson Classic waterfall limitations

CSE 403, Spring 2008, Alverson Classic waterfall limitations Difficult to specify all reqs of a stage completely and correctly upfront No sense of progress until the very end Integration occurs at the very end o Defies integrate early and often rule o Solutions are inflexible, no feedback until end o What is delivered may not match customer real needs Phase reviews are massive affairs o It takes a lot of inertia ($$) to make any change

CSE 403, Spring 2008, Alverson Spiral model – risk oriented Determine objectives Identify and resolve risks Evaluate alternatives Develop and verify deliverables Plan next spiral Commit (or not) to next spiral

CSE 403, Spring 2008, Alverson Spiral model Oriented towards phased reduction of risk Take on the big risks early and make some decisions o are we building the right product? o do we have any customers for this product? o is it possible to implement the product with the technology that exists today? tomorrow? Walks carefully to a result -- tasks can be more clear each spiral

CSE 403, Spring 2008, Alverson Spiral model Oriented towards phased reduction of risk Take on the big risks early and make some decisions o are we building the right product? o do we have any customers for this product? o is it possible to implement the product with the technology that exists today? tomorrow? Walks carefully to a result -- tasks can be more clear each spiral Compute Node Linux

CSE 403, Spring 2008, Alverson Spiral model Advantages Especially appropriate at the beginning of the project when the requirements are still fluid Provides early indication of unforeseen problems and allows for change As costs increase, risks decrease! o Always addresses the biggest risk first

CSE 403, Spring 2008, Alverson Spiral model Advantages Especially appropriate at the beginning of the project when the requirements are still fluid Provides early indication of unforeseen problems and allows for change As costs increase, risks decrease! o Always addresses the biggest risk first Limitations?

CSE 403, Spring 2008, Alverson Staged delivery model Waterfall-like beginnings, then develop in short release cycles: plan, design, execute, test, release with delivery possible at the end of any cycle

CSE 403, Spring 2008, Alverson Staged delivery model Advantages Can ship at the end of any release-cycle While not feature complete, intermediate deliveries show progress, satisfy customers, and provide opportunity for feedback Problems are visible early (ie. integration) Facilitates shorter, more predictable release cycles Very practical in practice, widely used and successful

CSE 403, Spring 2008, Alverson Staged delivery model Advantages Can ship at the end of any release-cycle While not feature complete, intermediate deliveries show progress, satisfy customers, and provide opportunity for feedback Problems are visible early (ie. integration) Facilitates shorter, more predictable release cycles Very practical in practice, widely used and successful Limitations?

CSE 403, Spring 2008, Alverson Evolutionary prototyping model Develop a skeleton system and evolve it for delivery

CSE 403, Spring 2008, Alverson Evolutionary prototyping model Advantages Addresses risks early Produces steady signs of progress Useful when requirements are changing rapidly or customer is non-committal Another popular and successful model, especially for custom products

CSE 403, Spring 2008, Alverson Evolutionary prototyping model Advantages Addresses risks early Produces steady signs of progress Useful when requirements are changing rapidly or customer is non-committal Another popular and successful model, especially for custom products Limitations Requires close customer involvement May spell trouble if the developers are inexperienced Feature creep, major design decisions, use of time, etc. Hard to estimate completion schedule or feature set

CSE 403, Spring 2008, Alverson Why are there so many models? The choice of a model depends on the project circumstances and requirements A good choice of a model can result in a vastly more productive environment than a bad choice A cocktail of models is frequently used in practice to get the best of all worlds. Models are often combined or tailored to environment Choices are good!

CSE 403, Spring 2008, Alverson How do you evaluate models? Consider o The task at hand o Risk management o Quality / cost control o Predictability o Visibility of progress o Customer involvement and feedback Theme: Overall aim for good, fast, and cheap. But you can't have all three at the same time.

Sp07 exam question Suggest the most appropriate SW dev model that might be used as a basis for managing the dev of the following systems - justify : CSE 403, Spring 2008, Alverson

Sp07 exam question Suggest the most appropriate SW dev model that might be used as a basis for managing the dev of the following systems - justify : A system to control anti-lock braking in a car CSE 403, Spring 2008, Alverson

Sp07 exam question Suggest the most appropriate SW dev model that might be used as a basis for managing the dev of the following systems - justify : A system to control anti-lock braking in a car A hospital accounting system that replaces an existing system CSE 403, Spring 2008, Alverson

Sp07 exam question Suggest the most appropriate SW dev model that might be used as a basis for managing the dev of the following systems - justify : A system to control anti-lock braking in a car A hospital accounting system that replaces an existing system An interactive system that allows airline passengers to quickly find replacement flight times (for missed or bumped reservations) from terminals installed at airports CSE 403, Spring 2008, Alverson