1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.

Slides:



Advertisements
Similar presentations
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Advertisements

Software Failure: Reasons Incorrect, missing, impossible requirements * Requirement validation. Incorrect specification * Specification verification. Faulty.
ITEC113 Algorithms and Programming Techniques
An Introduction to Software Engineering CSCI 3333 Data Structures.
Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Testing an individual module
Programming Fundamentals (750113) Ch1. Problem Solving
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Chapter 2 Problem Solving Techniques INTRODUCTION 2.2 PROBLEM SOLVING 2.3 USING COMPUTERS IN PROBLEM SOLVING : THE SOFTWARE DEVELOPMENT METHOD.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Data Structures and Programming.  John Edgar2.
Software Engineering 1 (Chap. 1) Object-Centered Design.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Software.
1 Programming and Problem Solving — Software Engineering (Read Chap. 2)
Programming and Problem Solving — Software Engineering (Read Chap. 2) 1.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Dillon: CSE470: QUALITY ASSURANCE1 Software Qualities Maintainer User Customer Good Documentation Readable Code Good Design Low Cost Portability Increased.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Developing a Program.
An Introduction to Software Engineering CSCI 3033 Data Structures.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
COP 3530 PROGRAM, FILE & DATA STRUCTURES Syllabus Syllabus Lab Information Lab Information Overrides Overrides Questions? Questions?
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
INTRUDUCTION TO SOFTWARE TESTING TECHNIQUES BY PRADEEP I.
The Software Development Process
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
1 Program Planning and Design Important stages before actual program is written.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Data Structures Using C++ 2E
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Intermediate 2 Computing Unit 2 - Software Development.
Software Engineering Saeed Akhtar The University of Lahore.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Data Structure Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2010.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
The Hashemite University Computer Engineering Department
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
Chapter 1 Software Development Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2008.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Testing Integral part of the software development process.
Software Testing.
ICS 3UI - Introduction to Computer Science
INTRODUCTION TO PROBLEM SOLVING
Software Testing.
2008/09/22: Lecture 6 CMSC 104, Section 0101 John Y. Park
Verification and Testing
Lecture 2 Introduction to Programming
Some Simple Definitions for Testing
Algorithm Algorithm is a step-by-step procedure or formula or set of instruction for solving a problem Its written in English language or natural language.
Unit# 9: Computer Program Development
PROGRAMMING METHODOLOGY
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Programming Fundamentals (750113) Ch1. Problem Solving
Click to add Text Computers & Instructions. Computers are given instructions in the form of computer programs that are created through the development.
Lecture 7 Algorithm Design & Implementation. All problems can be solved by employing any one of the following building blocks or their combinations 1.
Programming Fundamentals (750113) Ch1. Problem Solving
Basic Concepts of Algorithm
Software Development Chapter 1.
Presentation transcript:

1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance

2 Problem Analysis and Specification Computer Science programming assignment - specific statement of problem quantitative description clearly defined requirements: input, output, calculations, test data Computer Science programming assignment - specific statement of problem quantitative description clearly defined requirements: input, output, calculations, test data Easy in CS courses, not always in the real world.

3 Problem Analysis and Specification “Real World” request - general statement of problem qualitative not quantitative precision missing for input, output, processing “Real World” request - general statement of problem qualitative not quantitative precision missing for input, output, processing

4 Statement of specifications  the formal statement of the problem’s requirements  the major reference document  a benchmark used to evaluate the final system The program should display on the screen a prompt for an amount to be depreciated and the number of years over which it is to be depreciated. If should then read these two values from the keyboard. Once it has the amount and the number of years, it should compute the sum of the integers 1, 2,... up to the number of years. It should then display on the screen a table with appropriate headings that shows the year number and the number and the depreciation for that year, for the specified number of years. Sometimes stated precisely using a formal method.

5 Design CS courses –small systems few hundred lines of code simple, straightforward self-contained “Real” world –large systems thousands of lines of code complex many components

6 OCD: Object-Centered Design 1. Identify the ____________ in the problem's specification and their types. 2. Identify the _____________ needed to solve the problem. 3. Arrange the operations in a sequence of steps, called an ____________________, which, when applied to the objects, will solve the problem.

7 Algorithm May be written in pseudocode Characteristics of steps (instructions), see pg 9: –Definite and unambiguous –Simple –Finite Difference between correctness and efficiency, see pp 7-8 –________ — grows linearly with size (n) of the input –________ — is constant, i.e. independent of size of input Should be well-structured Data Types Can't separate data structures and algorithms Algorithms + Data Structures = Programs

8 Algorithm (Structured Version) / * Algorithm to read and count several triples of distinct numbers and print the largest number in each triple. * / 1. Initialize count to Read the first triple of numbers x, y, z. 3. While x is not the end-of-data-flag do the following: a. Increment count by 1. b. If x > y and x > z then display x. Else if y > x and y > z then display y Else display z. c. Read the next triple x, y, z. 4. Display count.

9 Implementation (Coding) Select ________________________________ Encode the ______________ Verify ______________ –combining program units into a complete software system. Insure ______________ –programs must be correct, readable, and understandable –well-structured, documented, stylistic (see guidelines on pp ) Why? See p. 15

10 Testing, Execution, and Debugging –_________________: "Are we building the right product?" check that documents, program modules, etc. match the customer's requirements. –_________________: "Are we building the product right?" check that products are correct, complete, consistent with each other and with those of the preceding phases.

11 Errors may occur in any of the phases –Specifications don't accurately reflect given information or the user's needs/requests –Logic errors in algorithms –Incorrect coding or integration –Failure to handle boundary data or test values

12 Different kinds of tests required –______________: Each individual program unit works? –Program components tested in isolation – ______________: Units combined correctly? –Component interface and information flow tested –______________: Overall system works correctly?

13 The "V" Life Cycle Model

14 Unit testing –probably the most rigorous and time-intenstive –surely the most fundamental and important –kinds of errors tested: —

15 Black box or functional test Program unit is viewed as a black box that accepts inputs and produces outputs, but the inner workings of the box are not visible.

16 White box or structural test

17 Example: Binary search (pp )

18 Black box test Use n = 7 and sample array a of integers

19 Boundary Testing

20 Techniques to locate error

21 White-box test

22 Maintenance –Large % of computer center budgets –Large % of programmer's time –Largest % of software development cost Why? –Includes modifications and enhancements –Poor structure, poor documentation, poor style less likely to catch bugs before release make fixing of bugs difficult and time-consuming impede implementation of enhancements