Introduction Requirements and the Software Lifecycle (3)

Slides:



Advertisements
Similar presentations
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Advertisements

SDLC – Beyond the Waterfall
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
SDLC Software Development Life Cycle. SDLC Acronym for system development life cycle. Acronym for system development life cycle. Is the process of developing.
CSE 470 : Software Engineering The Software Process.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.
Copyright  2002, Medical Present Value, Inc. All rights reserved. Copyright © 2010 Texas Education Agency. All rights reserved. TEA confidential and proprietary.
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.
Object-oriented Analysis and Design
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 425/625 Software Engineering Software Processes
Iterative development and The Unified process
COMP 350: Object Oriented Analysis and Design Lecture 2
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
Ch 2: Software Life-Cycle Models CSCI Ideal Software Development.
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 CMPT 275 Software Engineering Software life cycle.
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 Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
IT Systems Analysis & Design
 Software Models.  A software life-cycle model is a descriptive and diagrammatic representation of the software life-cycle. This includes a series of.
Object Oriented Analysis and Design Introduction.
Name Hometown Program Employer/Student Fun Fact 1.
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.
Prescriptive Process Models
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
CSE 308 Software Engineering Software Engineering Strategies.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Iterative development and The Unified process Chapter 2 Applying UML and Patterns -Craig Larman.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Systems Analysis and Design in a Changing World, Fourth Edition
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life Cycle (SDLC)
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Systems Development Life Cycle
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Software Development.
CS 425/625 Software Engineering Software Processes
Software Development Life Cycle
Life Cycle Models PPT By :Dr. R. Mall.
IT Systems Analysis & Design
Requirements and the Software Lifecycle
COMP 350: Object Oriented Analysis and Design Lecture 2
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Chapter 2 – Software Processes
An Overview of Software Processes
Presentation transcript:

Introduction Requirements and the Software Lifecycle (3)

Software Lifecycle What is the software lifecycle ▫Who (is doing what task) ▫What (is the task they are doing) ▫When (is the task being performed) ▫How (is the task being performed)  What are all the steps Copyright Leffingwell, Widrig, & SIS Faculty

Different Types of Lifecycles Code and Fix Stepwise Process Waterfall Method Spiral Method Iterative Method Agile Method Copyright Leffingwell, Widrig, & SIS Faculty

Code and Fix The original software design process Start coding your product Correct until the product is complete Works for very simple projects ▫Sufficient for the type of projects of the time Problems ▫Major limitations to small projects ▫Could run into major design issues as you are coding Still used in some capacity during the development phase Copyright Leffingwell, Widrig, & SIS Faculty

Stepwise Process Dates back to as early as the 1950’s Provided the necessary steps to design software Problem is ▫It was unidirectional ▫Define all the requirements upfront ▫Complete every step in its entirety ▫No feedback built in Copyright Leffingwell, Widrig, & SIS Faculty

Waterfall Method Formally introduced in 1970’s by Royce Included feedback loops to the stepwise process Recognized the fact that lessons learned should be used to fix future problems Not included in the figure is prototyping which Royce introduced Copyright Leffingwell, Widrig, & SIS Faculty

Waterfall Method Figure 3-1 Copyright Leffingwell, Widrig, & SIS Faculty

Waterfall Method Delayed easily by rigid company guidelines Requirements are frozen so they cannot be changed Loose touch with the real world in which they are building the application for As projects reach budget limits some latter steps might be shortened to produce an on time and on budget project Copyright Leffingwell, Widrig, & SIS Faculty

Waterfall Method Why did it come about ▫Discovered the rework from fixing bugs later in the cycle was more costly. Why wasn’t it ideal? ▫Still a linear process ▫Requires Complete system definition ▫Typically produced software that is  Low quality  Over budget and past deadlines What was the result? ▫Regression to coding first ▫Agile methods Copyright Leffingwell, Widrig, & SIS Faculty

Requirements Handling Changing increases with project size One reason why the waterfall process is not effective Copyright Craig Larman & SIS Faculty

Spiral Method Introduced by Boehm in 1988 This was more of a risk driven and incremental development path ▫Starts with risk-driven prototypes ▫Then follows a waterfall type process Copyright Leffingwell, Widrig, & SIS Faculty

Spiral Method Benefits ▫Feedback right away with your designs  This is also referred to today as rapid prototyping ▫Receive quality feedback from the User early ▫Starts with requirement and concept validation ▫Has multiple feedback opportunities early on  Get out all the “Yes, buts” Copyright Leffingwell, Widrig, & SIS Faculty

Spiral Method Issues ▫Can create different code streams/branches from the very beginning ▫Rapid prototypes can lead the user believe that the system is almost complete ▫Very time and resource heavy of creating prototypes and following the waterfall process Copyright Leffingwell, Widrig, & SIS Faculty

Spiral Method Figure 3-2 Copyright Leffingwell, Widrig, & SIS Faculty

Iterative Process Introduced in 1990s Is like doing numerous mini-waterfalls Lifecycle ▫Inception = Analysis ▫Elaboration=Design ▫Construction=Code ▫Transition=Test, Implement, … Copyright Leffingwell, Widrig, & SIS Faculty

Iterative Process Copyright Craig Larman & SIS Faculty

Iterative Software Development Process Each Iteration is a min-waterfall process Copyright Craig Larman & SIS Faculty

Timeline Copyright Craig Larman & SIS Faculty

Timeline Copyright Craig Larman & SIS Faculty

Requirements Definition Copyright Craig Larman & SIS Faculty

Iterative Process Creating or modifying an existing module Creating the systems piece by piece over time The users will see new functionality after each iteration Copyright Craig Larman & SIS Faculty

Iterative SW Success What are the factors that lead to success with the Iterative Process ▫Good initial architecture ▫Library of units tests ▫Refactoring ▫Automated tools Copyright Craig Larman & SIS Faculty

Refactoring Copyright Craig Larman & SIS Faculty

Benefits of the Iterative Process Higher project success rate ▫Easier to manage complexity ▫Better mitigation of high risks ▫Easier adaptation to changing requirements Lower defect rates Higher productivity Increased visibility (Management, Client) Knowledge from previous iterations applied to future iterations No code is thrown away in prototypes Copyright Craig Larman & SIS Faculty

Important Practices Tackle hi-risk/hi-priority early Continuously engage users Build core early Test throughout to ensure quality Focus on essential models using UML Manage reqs. using Use Cases Implement sound change & configuration management Copyright Craig Larman & SIS Faculty

Agile Methodology Eliminate as many unnecessary processes as possible Believes in Verbalize instead of documenting ▫Usually only with small teams ▫Usually only with small projects There are versions for larger more complex projects and project teams ▫Starts to look like the iterative process