Software Development: The Waterfall Model



Similar documents
Software Process Models. Xin Feng

To introduce software process models To describe three generic process models and when they may be used

CS4507 Advanced Software Engineering

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

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Objectives. Designing, building and maintaining large software systems

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

4.1. Title: data analysis (systems analysis) Annotation of educational discipline: educational discipline includes in itself the mastery of the

Software Project Models

IT3205: Fundamentals of Software Engineering (Compulsory)

Modelli di sviluppo software. Enrico Giunchiglia

CS 451 Software Engineering Winter 2009

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

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

Software Engineering Question Bank

The Software Lifecycle. Software Lifecycles

What is a life cycle model?

Software Development Life Cycle (SDLC)

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

SOFTWARE DEVELOPMENT PLAN

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Engineering. Software Engineering. Software Costs

Unit 1 Learning Objectives

Software Engineering

Engineering Process Software Qualities Software Architectural Design

ASSESSMENT OF SOFTWARE PROCESS MODELS

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Example Software Development Process.

2. Analysis, Design and Implementation

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Foundations of software engineering

Karunya University Dept. of Information Technology

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

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

How era Develops Software

Software Engineering Reference Framework

Chapter 7: Software Engineering

A Capability Maturity Model (CMM)

Advanced Software Engineering. Software Development Processes

Software Testing Lifecycle

Chapter 4 Software Lifecycle and Performance Analysis

2. Analysis, Design and Implementation

Automated Module Testing of Embedded Software Systems

(Refer Slide Time: 01:52)

Software Processes. Topics covered

A Comparison between Five Models of Software Engineering

Project Development & Software Design

Continuous Integration, Delivery and Deployment. Eero Laukkanen T Software Testing and Quality Assurance P

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

COMP 354 Introduction to Software Engineering

Software Development Process

Software Development Methodologies

1. Software Engineering Overview

VAIL-Plant Asset Integrity Management System. Software Development Process

Information Systems Development Process (Software Development Life Cycle)

CS314: Course Summary

Software Engineering. What is a system?

CSE 435 Software Engineering. Sept 16, 2015

BAL2-1 Professional Skills for the Business Analyst

IV. Software Lifecycles

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

How To Model Software Development Life Cycle Models

Program Lifecycle Methodology Version 1.7

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


How To Manage Project Management

AGILE SOFTWARE TESTING

Introduction to Software Engineering

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

International Journal of Advance Research in Computer Science and Management Studies

Software Configuration Management Plan

Software Quality. Software Quality Assurance and Software Reuse. Three Important Points. Quality Factors

CMSC 435: Software Engineering Course overview. Topics covered today

Chapter 8 Approaches to System Development

IMPORTANCE OF SOFTWARE TESTING IN SOFTWARE DEVELOPMENT LIFE CYCLE

What methods are used to conduct testing?

SOFTWARE PROCESS MODELS

Chapter 2 Software Processes

How To Understand The Software Process

Basic Testing Concepts and Terminology

Software Engineering. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 16

How To Understand Software Engineering

General Problem Solving Model. Software Development Methodology. Chapter 2A

Software Production and Lifecycle Models

Software Life Cycle Processes

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

CDC UNIFIED PROCESS JOB AID

EQUIPMENT OVERVIEW... 4 SETTING UP CALL MANAGER...5

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

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

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

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

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

Use Cases. Massimo Felici. Massimo Felici Use Cases c

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Transcription:

Steven Zeil June 7, 2013 Contents 1 Software Development Process Models 2 1.1 Components of the Waterfall Model................................. 2 1.1.1 What is a requirement?. 2 1.1.2 Testing.......... 5 2 The Focus of CS250 7 1

1 Software Development Process Models Software Development Process Models A software development process is a structured series of activities that comprise the way in which an organization develops software projects. Most common: the Waterfall model Evolutionary, Spiral, & Unified models outside the scope of this course The Waterfall Model Requirements Movement is always forward from phase to phase Design Management often must sign off on deliverables from each phase advantage: accountability disadvantage: inflexibility Implementation Verification & Validation Operation & Maintenance 1.1 Components of the Waterfall Model Requirements analysis and definition Establishing what the customer requires from a software system 1.1.1 What is a requirement? A statement of something the system must do external behaviors or of a constraint under which the system must work May range from very abstract to a detailed mathematical specification CS250 2

The requirements document The requirements document is the official statement of what is required of the system developers It is not a design document. As far as possible, it should state WHAT the system should do rather than HOW it should do it Should include both a definition and a specification of requirements Requirements definition Requirements definition: A statement in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers Example 1. The software must provide a means of representing and accessing external files created by other tools. Requirements specification Requirements specification: A structured document setting out detailed descriptions of the system services. Written as a contract between client and contractor Sample Reqts Specification 1.1 The user should be provided with facilities to define the type of external files 1.2 Each external file type may have an associated tool which may be applied to the file. 1.3 Each external file type may be represented as a specification (icon) on the user s display. 1.4 Facilities should be provided for the icon representing an external file type to be defined by the user. 1.5 When the user selects an icon representing an external file, the effect of that selection is to apply the tool associated with the type of the external file to the file represented by the selected icon. CS250 3

System and software design Deriving a solution which satisfies software requirements Design can occur in multiple phases Architectural design global decisions that affect the entire system High-Level Design Divide the system into modules Low-Level Design Design the data structures and algorithms for an individual module. Architectural Design Global decisions that affect the entire system. Examples: Should we use regular files or have a database? Does this run on one computer, or is it a distributed system with many cooperating computers? How will run-time errors be handled? High-Level Design Divide the system into modules Guided by coupling & cohesion abstract data types (later this semester) objects (studied in CS330) Low-Level Design Design the data structures and algorithms for an individual module. Guided by stepwise refinement (later this semester) analysis of algorithms (studied in CS361 & CS390) CS250 4

Implementation Probably the most familiar activity programming Verification & Validation Verification & Validation: assuring that a software system meets the users needs principal objectives: The discovery of defects in a system The assessment of whether or not the system is usable Verification Verification: Validation "Are we building the product right?" The software should conform to its prior specification Validation: 1.1.2 Testing * the code should be faithful to the low-level design * the low-level design should be faithful to the high-level design * the high-level design should be faithful to the requirements specification "Are we building the right product?" The software should do what the user really requires Testing is the act of executing a program with selected data to uncover bugs. As opposed to debugging, which is the process of finding the faulty code responsible for failed tests. Testing is the most common, but not the only form of V&V CS250 5

V&V Often portrayed as final phase of waterfall Is actually a full-life-cycle activity Requirements must be validated Designs may be validated & verified Implementation is tested final system is tested maintenance changes are tested Operation and maintenance As requirements evolve and bug reports come in from the field prioritize changes make changes (a kind of mini-s.d.p.) validate changes new test cases validate that change does not break previously working code regression testing CS250 6

2 The Focus of CS250 The Focus of CS250 CS250 7