Ch 2: Software Life-Cycle Models CSCI 4320. Ideal Software Development.

Slides:



Advertisements
Similar presentations
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Advertisements

Software Life-Cycle Models
Software Development Life-Cycle Models
Ch 3: Unified Process CSCI 4320: Software Engineering.
Ch2: Software Life Cycles Housekeeping  Feedback from Wednesday  Structured vs. Object Oriented Paradigm Structured: Data is an argument, functions separate,
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Software Life-Cycle Models
Slide 2.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 2.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.
Software Process Models
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Agile
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
CS 5150 Software Engineering
Software Engineering.
Chapter 6 Prototyping, RAD, and Extreme Programming
Slide 9.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 2A 1 Software Engineering CHAPTER 2 SOFTWARE LIFE CYCLE MODELS by Farhad Mavaddat CS430 Notes Modified from the notes of Jerry Breecher of Clark.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Lifecycle Software Lifecycle Basics Lifecycle Models Methods and Tools.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
2. Software Life Cycle Models. Software Engineering Overview Software development in theory Iteration and incrementation Risks and other aspects of iteration.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Prescriptive Process Models
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
CSE 308 Software Engineering Software Engineering Strategies.
Prescriptive Process Models Jon Walker. Prescription? What does prescriptive mean?
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
SOFTWARE LIFE-CYCLE MODELS
SOFTWARE LIFE-CYCLE MODELS CHAPTER 2
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
SOFTWARE LIFE-CYCLE MODELS
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Slide 2.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
It specifies the various phases/workflows of the software process, such as: the requirements, analysis (specification), design, implementation,
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Software Engineering Zhang Shuang
Slide 2.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. CHAPTER 2 SOFTWARE LIFE-CYCLE MODELS Derived from Dr. Stehpen R. Schach’s.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
Slide 2.1 © The McGraw-Hill Companies, 2007 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach.
Introduction Requirements and the Software Lifecycle (3)
Systems Development Life Cycle
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Software Development - Methodologies
Methodologies and Algorithms
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach 1.
Life Cycle Models PPT By :Dr. R. Mall.
Software Processes.
Software Engineering Lecture 09 & 10.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
An Introduction to Object-Oriented Systems Analysis and Design with UML and the Unified Process McGraw-Hill, 2004 Stephen R. Schach
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering CHAPTER 2 SOFTWARE LIFE CYCLE MODELS
Software Engineering Lecture 17.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
Presentation transcript:

Ch 2: Software Life-Cycle Models CSCI 4320

Ideal Software Development

Actual Software Development Software developers make mistakes Clients requirements or environment changes while software is being developed. The Software Development Life-Cycle involves many iterations (loops).

Bus Fare Machine Program GOAL: Fare machines on bus must recognize real dollar bills. Episode 1: The first version is implemented Episode 2: A fault is found –The product is too slow because of an implementation fault (double precision instead of single precision used) –Changes to the implementation are begun Episode 3: The requirements change –A different/faster dollar recognition algorithm has been discovered Episode 4: A new design is adopted –New design is more accurate. - Development is complete Epilogue: A few years later, these problems recur

Teal Tractors Business Software Goal : Handle sales, inventory and commissions for business While the Teal Tractors software product is being constructed, the requirements change The company is expanding into Canada –Additional sales regions must be added –Canadian taxes and other business aspects that are handled differently –Two different currencies, US and CANADA

Moving Target Problem Growing companies are always going to change Even if the reasons for the change are good, the software product can be adversely impacted –Dependencies will be induced –Potentially cause a regression fault (A fault in an apparently unrelated part of the software) –feature creep There is no solution to the moving target problem

Life-Cycle Models Waterfall Life Code-and-Fix Rapid-Prototyping Extreme Programming and Agile Processes Synchronize-and-Stabilize Spiral Iteration and Incrementation

The basic software development process is Iterative –Each successive version is intended to be closer to its target than its predecessor An Incremental Process –Miller’s Law : concentrate on ~ 7 chunks –Use stepwise refinement –handle in order of current importance

Iteration and Incrementation Idea: –Project is divided into several mini projects (increments) –Each project goes through all phases, extending existing artifacts Multiple opportunities to check for faults Always have a working version of software

Waterfall No phase is complete until documentation for that phase is complete. Relying solely on written specifications may lead to products that don’t meet client’s needs.

Code-and Fix Developers simply throw code together and rework it as many times as necessary No Requirements written May work well for small programs Maintenance Nightmare!

Rapid Prototyping Build a rapid-prototype and let client interact and experiment with it. Developers draw up specifications from rapid prototype and develop true system Key: Speed is of the essence The rapid prototype is discarded but lessons learned are retained.

Open-Source Life-Cycle A single individual has an idea for a program and makes it available free of charge –SourceForge.net, FreshMeat.net Users become co-developers –Report and correct defects –Add additional functionality –Port program to new environment Individuals are not paid to participate Release new versions after minimal testing

Open Source Software 100,000 open-source projects at SouceForge.net and Freshmeat.net ½ have never attracted a team to work on the project Majority have never been completed But there are cases where it has been benefical –Operating Systems (Linux), web browsers (Firefox), compilers (gcc), web servers(Apache)

Extreme Programming and Agile Processes New Approach: responsive to change, collaborate with client Client picks features based on time and cost estimates Build is broken down into tasks Pair programming –Two programmers work on one computer –Alternate typing every 15 or 20 minutes –Team members change coding partners daily Client works with team at all times

Extreme Programming and Agile Processes No individual can work overtime for 2 weeks No specialization: All members of team work on analysis, design, coding No overall design step before the various builds Agile Processes Less emphasis on analysis and design Goal is to deliver working software frequently Have short meetings often Successful for small-scale projects where customer requirements are vague

Synchronized and Stabilize Microsoft Expected Features are prioritized Work is divided into several builds Each build is carried out by several teams working in parallel At the end of the day all teams synchronize and test

Spiral Waterfall method with each phase preceded by risk analysis Uses prototypes to mitigate risks Advantage: Emphasis on alternatives and constraints supports the reuse of existing software Problem: When do you determine if a phase has been sufficiently tested?

Comparison of Life-Cycle Models Figure 2.12