Software Life Cycle. Management of what to do in what order



Similar documents
Software Life Cycle Processes

Unit I. Introduction

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

What is a life cycle model?

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software Development Life Cycle (SDLC)

CPSC 491 Lecture Notes Fall 2013

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

(Refer Slide Time: 01:52)

Software Process for QA

How To Model Software Development Life Cycle Models

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

SOFTWARE PROCESS MODELS

A Capability Maturity Model (CMM)

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Software Engineering. What is a system?

Chakra Vs Spiral Model - A Practical Approach

IV. Software Lifecycles

Process Models and Metrics

Chapter 8 Approaches to System Development

Engineering Process Software Qualities Software Architectural Design

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

System development lifecycle waterfall model

Agile Processes and Methodologies: A Conceptual Study

Technical Writing - Software Engineering Life Cycle Review

The Software Lifecycle. Software Lifecycles

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

Classical Software Life Cycle Models

CS4507 Advanced Software Engineering

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

LECTURE-4. Dronacharya College of Engineering

Managing TM1 Projects

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Elite: A New Component-Based Software Development Model

Today: Software Development Models (cont)

Software Development Life Cycle Models - Process Models. Week 2, Session 1

SOFTENG250FC: Introduction to Software Engineering

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

International Journal of Advance Research in Computer Science and Management Studies

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Software Process Models. Xin Feng

Software Development: The Waterfall Model

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006

CHAPTER 02 SOFTWARE LIFE-CYCLE MODELS

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Agile Software Development Methodologies and Its Quality Assurance

CALCULATING THE COSTS OF MANUAL REWRITES

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

2. Analysis, Design and Implementation

Foundations for Systems Development

2. Analysis, Design and Implementation

Software Life Cycle Models

Software Development Process Models

Software Development Processes. Software Life-Cycle Models

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

A Review of an MVC Framework based Software Development

Karunya University Dept. of Information Technology

Lecture 03 ( ) Quality of the Software Development Process

Lecture 3 Software Development Processes

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules

Custom Web Development Guidelines

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Chapter 12 Programming Concepts and Languages

Umbrella: A New Component-Based Software Development Model

How To Design An Information System

Part III of Course (Classical Software System Development)

Chapter 7: Software Engineering

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

AGILE vs. WATERFALL METHODOLOGIES

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT

Comparison study between Traditional and Object- Oriented Approaches to Develop all projects in Software Engineering

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Introduction to Software Engineering: Project Management ( Highlights )

I219 Software Design Methodology

Software Development Life Cycle & Process Models

Execution of A Requirement Model in Software Development

Software Engineering Principles The TriBITS Lifecycle Model. Mike Heroux Ross Bartlett (ORNL) Jim Willenbring (SNL)

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Outline. Definitions. Course schedule

Large Scale Systems Design G52LSS

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

OO Design Quality Metrics

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Software Development Life Cycle

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Software Paradigms (Lesson 1) Introduction & Procedural Programming Paradigm

A Comparison between Five Models of Software Engineering

SELECTING A DEVELOPMENT APPROACH Original Issuance: February 17, 2005 Revalidated: March 27, 2008

Transcription:

Software Life Cycle Management of what to do in what order

Software Life Cycle (Definition) The sequence of activities that take place during software development. Examples: code development quality assurance (QA) changing client requirements management intervention redevelopment QA again etc.

Typical Life Cycle (at the worst short-lived companies) Management (1. Imagines printer software.) Sales (2. Sells copy machine software.) Software Development Quality Assurance (QA) (3. Develops really cool walking/talking AI that will operate fax machines.) (4. Unsure what code does, but tests for bugs and agrees product will properly toast bread.) Customer (5. Sues.)

Need Communication and Control Model from one company where I worked. (And the basis of many early.coms.) brainstorm idea Developers requirements match code developed QA developers tell management about product Management pass buck to sales Sales convince customers we have a good product Customer

Problems? Mostly works, but 1. QA has no real feedback. By definition the code does what the developers say it will. Just minor bug control. 2. Development does whatever they want (fun). 3. Management only manages sales, not developers or QA. 4. What if Development didn t do a good job of anticipating market needs? Are they business majors?

Can You Suggest a Better Model? Developers QA Management Sales Customer Try it

Classic Waterfall Model An idealized linear model in roughly 5 steps. Analyze Specify Design Build Test

Waterfall Picture Analyze Specify Design Build Test Also called throw-it-over-the-wall model.

Waterfall Details 1. Analyze (management, marketing, sometimes development) consult with client, or brainstorm use case diagrams ensure useful 2. Specify (development management, QA) set requirements document communication between management and developers break up into modules for each developer (sometimes part of the Design stage)

Waterfall Details (cont.) 3. Design (development, dev management, QA) functional specification document class diagram sequence diagram (if necessary) 4. Build (development) write code ensure modularity, flexibility ensure high cohesion, low connectivity implementation document (when done) use case scenarios for QA (for your detailed piece) 5. Test (QA, development) ensure reliable

Design Stage Has Many Review Steps Reviews facilitate communication between developers and developers boss (nail down expectations). Functional Spec Review This is the functionality I will code. Parrot use case diagram in code-like terms. Design Document Review Here s how I ll really do this in detail. Includes class diagram. Implementation Document Review Despite what I said, this is the way it really worked. Includes class diagram. Post-Mortem Review This is what worked well or did not work well. Lessons for next time. Reviews go by many different names

Other Stages Have Many Steps But as software developers we are primarily concerned with Design steps. Take business courses for other stages.

Advantages of Waterfall Model Easy to understand. Easy to implement. Commonly used. Easy to modify. Many government and big business contracts require you to use and document this approach.

Problems With Waterfall Model Many criticisms of the standard waterfall model, including 1. Problems are not discovered until Test stage. 2. Requirements must be completely specified before the software is designed - requirement changes make the model unstable. 3. Design and coding often turn up requirements inconsistencies, missing components, and unexpected development needs. 4. System performance cannot be tested until the system is almost coded. Linear and uni-directional. Can t go backwards.

Alternative: Prototyping Model A big failure of waterfall is that changes in requirements muck up everything. Solution: build a prototype. Or a quick mock up, or partial implementation Show it to the customer. Revise requirements. Repeat.

Prototyping Model Picture Specify (Requirements) Quick Design Revise Requirements Build Prototype not satisfied Show Customer satisfied Full Design the rest is the same

Two Types of Prototypes 1. Throw away prototype. 2. Re-usable prototype. Modularity a must! Advantages, disadvantages? Speed for prototype vs. speed for final product. Time is money

Problems With Prototype Model When do you stop iterating? picky customers are never satisfied. Solution: Can set arbitrary time limits on each iteration. 1 week. Difficult for big products. The prototype can be too big a job. Solution: Rapid throwaway. Quick and dirty prototypes. Not re-useable.

Iterative Model Standard operating system software approach. 1. Develop software and release to public. 2. Using customer s experiences, improve, redesign, re-implement, re-release. 3. Iterate, and keep releasing with new and better functionality. Modularity is essential! Why?

Iterative Model Picture Analyze Specify Design Build Test Sometimes also includes the prototype model. Deliver

Iterative Advantages/Disadvantages Advantages 1. incorporates the customer s feedback naturally. 2. changing requirements are incorporated at two levels. 1. prototyping 2. new releases 3. generate excitement/buzz with limited beta release. Disadvantages annoy customer with poor releases.

Spiral Model Developed by Boehm, 1988. Iterative. Rarely used exactly. Frequently used to some extent.

Spiral Model Picture increasing cost 4. Evaluate 1. Analyze risks commitment partition 3. Engineer: Design Implement QA 2. Specify requirements

Spiral Advantages 1. Works with any of the previous models. 2. Naturally incorporates changes in requirements. 3. Good model for handling risk. Can do high risk in first loop (so bail early if necessary). Lower risk items later.

Spiral Model Is Vague! (Disadvantage) Doesn t indicate what the result of each loop should be. A final product? An increasingly refined product? Partial products, slowly integrated? Doesn t indicate when to end. Probably should happen in risk assessment. (uncommon) (common) (common) So with inexperienced hands, costs can blossom.

Object-Oriented Process Just the above models with OO practices. Heavier use of UML to guide the above models. Attempt to reuse components.

OO Process and Reusability VERY DIFFICULT. (true reusability hard to achieve) Still maturing. One idea: 1. Identify potentially reusable classes/packages. 2. Set these aside into a possibly reusable library 3. When a new customer s project is started, identify those classes in the library that might be reused. 4. If they can be, then generalize/improve these classes so that they really are modular and reusable. 5. Pass on the cost of generalization to the new customer (who will see it as a cost savings because you don t have to develop from scratch!)

Many Other Life Cycle Models Clean Room Process Emphasis on defect prevention rather than correction. Use mathematical proofs to show each part of the code is correct. Invented by IBM. Defect Prevention Process Etc. whenever something doesn t work, find the root cause and suggest an improvement to the life cycle process