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.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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.
Software Development Life-Cycle Models
Lecture # 2 : Process Models
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CSE 470 : Software Engineering The Software Process.
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 lifecycle The power of process Cycle Life Software.
Software Process Models
CS 5150 Software Engineering
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
Software Engineering.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
1 CS 691z/791z Topics on Software Engineering CS 691z/791z Topics on Software Engineering Software Processes Based on Chapter 4 of the book [SE-8] Ian.
CS 501: Software Engineering
Software lifecycle. CS351 - Software Engineering (AY2004)2 Software lifecycle “student view” Design & Specification Coding Testing (optional) Hand it.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
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.
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.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Prescriptive Process Models
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Engineering Management Lecture 1 The Software Process.
CSE Senior Design I Building a Plan Instructor: Vassilis Athitsos Several of the slides in this module are a modification and amplification of slides prepared.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Software Engineering MCS-2 Lecture # 6
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
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
An Introduction to Software Engineering
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
> 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
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CS223: Software Engineering Lecture 5: Software Development Models.
Software Model Process
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.
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
By : Hisham Kahlifa Shreef Foda Khaled monir Tamer medhat Supervisor : Dr Doaa Nabil.
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.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Announcements/Assignments
Software Engineering Management
Lecture 3 Prescriptive Process Models
Software Processes (a)
Chapter 2 SW Process Models
Software Process Models
Chapter 2: Software Process Models
Lecture 02: Software Lifecycle Models
Software life cycle models
Lecture 03: Software Lifecycle Models
Software Process Models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 2: Software Process Models
Presentation transcript:

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 Stepp, 2007, with significant content taken from slides written by Valentin Razmov. They may not be rehosted, sold, or modified without expressed permission from the author. All rights reserved.

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

3 Ad-hoc development ad-hoc development: creating software without any formal guidelines or process Some disadvantages of ad-hoc development: some important actions (testing, design) 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 a common observation: The later a problem is found in software, the more costly it is to fix.

4 The software lifecycle software lifecycle: series of steps / phases, through which software is produced can take months or years to complete 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

5 Lifecycle phases standard phases Requirements Analysis & Specification High-level (Architectural) Design Detailed (Object-oriented) Design Implementation, Integration, Debugging Testing, Profiling, Quality Assurance Operation and Maintenance other possible phases risk assessment: examining what actions are critical and performing them first (part of Spiral model) prototyping: building a rough/partial version of the product and using it to guide design decisions

6 One view of SW cycle phases Subsystems Structured By class... Source Code Implemented By Solution Domain Objects Realized By Arch. Design Detailed Design Implemen- tation Testing Application Domain Objects Expressed in Terms Of Test Cases ? Verified By class.... ? Requirements Elicitation Use Case Model Requirements Analysis

7 Some software models Several models for developing software have been attempted, varying the order and frequency in which these stages occur: code-and-fix: write some code, debug it, repeat until finished waterfall: perform the standard phases (requirements, design, code, test) in sequence spiral: assess risks at each step, and do the most critical action immediately evolutionary prototyping: build an initial 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

8 Model pros/cons value of models decomposing workflow understanding and managing the process as a management tool limitations of models a model is just a model abstracts away some aspects and highlights others artificial constraints compromises with model are often necessary (as with almost everything in SE) risk of overemphasizing the process the process is not the end in itself; product delivery is

9 Evaluating models Criteria for evaluation of models Risk management Quality / cost control Predictability Visibility of progress Customer involvement and feedback Theme: Overall aim for good, fast, and cheap. But you can't have all three at the same time.

10 Code-and-fix model code first version retirement operations mode modify until client is satisfied

11 Problems with code-and-fix benefits no planning whatsoever; little management overhead applicable for very small projects and short-lived prototypes What are some reasons not to use the code-and-fix model? code becomes expensive to fix (bugs are not found until late in the process) code didn't match user's needs (no requirements!) code was not planned for modification, not flexible

12 Waterfall model requirements verify retirement operations test implementation verify design req. change

13 Detailed waterfall view

14 Waterfall issues waterfall model is perhaps the most common model for software development we will use a waterfall-like model in this course benefits formal, standard; has specific phases with clear goals good feedback loops between adjacent phases What are some drawbacks to this method? - rigid, too linear; not very adaptable to change in the product - requires a lot of planning up front (not always easy / possible) - assumes that requirements will be clear and well-understood - costly to "swim upstream" by going back to a previous phase - Nothing to show to anxious customers ("We're 90% done!")

15 Modified waterfalls sashimi (waterfall with overlapping phases): phases overlap team can learn insights from later cycles to aid earlier ones waterfall with subprojects can begin coding simple features while designing tough ones What are some problems with these models? - harder to track progress of the overall project - communication can be tougher - unforeseen dependencies can occur

16 Spiral model (Boehm) Barry Boehm, USC

17 Another view of the spiral

18 Another view of spiral model Requirements Verify Retirement Operations Test Implementation Verify Design Req. Change Adds a Risk Analysis step to each phase (phases may not be completed in this order any more!) Risk Assessment

19 Spiral details breaks up the project into mini-projects based on risk purpose: risk reduction example: in first phase, great when charting new territories (with high risks) steps taken at each loop of the spiral (roughly): determine objectives, options, constraints identify risks evaluate options to resolve the risks develop and verify any deliverable items plan the next phase commit to approach for next phase

20 Spiral benefits benefits of spiral provides early indication of unforeseen problems as costs increase, risks decrease always addresses the biggest risk first focuses attention on reuse accommodates changes, growth eliminates errors and unattractive choices early limits to how much is enough (not too much design, reqs, etc) treats development, maintenance same way

21 Spiral problems What are some drawbacks to the spiral model? -complicated -relies on developers to have risk-assessment expertise -possibly more management overhead to assess risk -need for more elaboration of project steps (clearer milestones) -matching to contract software (doesn't work well when you're bound to a fixed inflexible contract)

22 Evolutionary prototype model for each build: perform detailed design, implement, test, deliver requirements verify retirement operations verify arch. design

23 Evolutionary details idea: build an initial requirement spec, code it, then "evolve" the spec and code as needed each repetition is an "evolution" of the code, not necessarily bug fixes What is the difference between evolutionary prototyping and evolutionary delivery? e. delivery is a mixing of evolutionary prototyping and staged delivery focuses more on internals, parts of system unlikely to be changed by customer feedback e. prototyping rushes initial release with perhaps less focus on requirements and design

24 Benefits of evolutionary benefits of evolutionary prototyping produces steady signs of progress useful when requirements are not very well known, changing rapidly, or customer is non-committing allows close customer involvement "What do you think of this version?" can improve customer confidence / satisfaction customers must be available on a short notice to give feedback

25 Problems with evolutionary What are some problems with this model? sometimes difficult to distinguish from code-and-fix assumes user's initial spec will be flexible; fails for: separate pieces that must then be integrated "information sclerosis": temporary fixes become permanent constraints bridging; new software trying to gradually replace old unclear how many iterations will be needed to finish wrong order: makes lots of hard-to-change code

26 Staged delivery staged delivery waterfall-like beginnings, then develop in short stages requires tight coordination with documentation, management, and 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 through customer feedback after each release.

27 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 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

28 Which model is best? 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. care must be applied; some models can't mix easily or at all Reminder: criteria for judging models: Risk management Quality / cost control Predictability Visibility of progress Customer involvement and feedback

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

30 Possible answer Risk mgmt. Quality/ cost ctrl. Predict- ability VisibilityCustomer involvement code-and-fix waterfall spiral evolutionary prototyping staged delivery design-to- schedule Rate each model 1-5 in each of the categories shown: