C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.

Slides:



Advertisements
Similar presentations
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Advertisements

1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Object-Oriented Software Development CS 3331 Fall 2009.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Overview of Programming and Problem Solving ROBERT REAVES.
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
Reference :Understanding Computers
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
© Janice Regan Problem-Solving Process 1. State the Problem (Problem Specification) 2. Analyze the problem: outline solution requirements and design.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Overview of The Operations Research Modeling Approach.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
Programming Fundamentals (750113) Ch1. Problem Solving
Chapter 3 Planning Your Solution
© 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.
Software Verification and Validation (V&V) By Roger U. Fujii Presented by Donovan Faustino.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
計算機程式語言 Lecture 01-1 國立臺灣大學生物機電系 1 1 Preliminaries.
Invitation to Computer Science 5 th Edition Chapter 9 Introduction to High-Level Language Programming.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
CHAPTER 1 Overview of Programming and Problem Solving.
Chapter 1: Preliminaries. Objectives In this chapter, you will learn about: Unit analysis Exponential and scientific notations Software development Algorithms.
Higher Computing Software Development. Software Development Process There are 7 main stages involved in developing a new software program: Analysis Design.
SOFTWARE DESIGN.
A First Book of ANSI C Fourth Edition
Lesson 5 Essence of Programming 2007/09/28. 2 index Reviewing computer hardware Introduction of programming language Algorithms Structured programming.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Definition of Terms Software/Programs Programs that directs the operation of a computer system Set of instructions Codes Programming Process of planning,
The Software Development Process
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Data Structures Using C++ 2E
CC112 Structured Programming Lecture 1 1 Arab Academy for Science and Technology and Maritime Transport College of Engineering and Technology Computer.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
The Art of Programming. The process of breaking problems down into smaller, manageable parts By breaking the problem down, each part becomes more specific.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
The Hashemite University Computer Engineering Department
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
CSCI 161 Lecture 3 Martin van Bommel. Operating System Program that acts as interface to other software and the underlying hardware Operating System Utilities.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
 Problem Analysis  Coding  Debugging  Testing.
Principles of Programming & Software Engineering
Structured Programming The Basics
ICS 3UI - Introduction to Computer Science
Classical Waterfall Model
Life Cycle Models PPT By :Dr. R. Mall.
Lecture 2 Introduction to Programming
Unit# 9: Computer Program Development
Problem Solving Techniques
SDLC The systems development life cycle is the foundation for many systems development methodologies such as RAD and agile Systems development life cycle.
Programming Fundamentals (750113) Ch1. Problem Solving
Chapter 1 Introduction(1.1)
POWERPOINT PRESENTATION
Chapter 1: Preliminaries
The Software Development Process
Chapter 2. Problem Solving and Software Engineering
WRITING AN ALGORITHM, PSEUDOCODE, AND FLOWCHART LESSON 2.
Presentation transcript:

C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems and creating software solutions –Consists of three phases: Phase I: Development and Design Phase II: Documentation Phase III: Maintenance Software engineering: discipline concerned with creating efficient, reliable, maintainable software

C++ for Engineers and Scientists, Second Edition 2 Problem Solution and Software Development (continued) Figure 1.6 The three phases of software development.

C++ for Engineers and Scientists, Second Edition 3 Problem Solution and Software Development: Phase I. Development and Design Program requirement: request for a program or a statement of a problem After a program requirement is received, Phase I begins Phase I consists of four steps: – Analysis – Design – Coding – Testing

C++ for Engineers and Scientists, Second Edition 4 Problem Solution and Software Development: Phase I (continued) Figure 1.7 The development and design steps.

C++ for Engineers and Scientists, Second Edition 5 Problem Solution and Software Development: Phase I (continued) Step 1: Analyze the Problem – Analyst must understand What outputs are required What inputs will be needed How the inputs can be used to produce the desired outputs – Failure to analyze and understand the requirements leads to a failed solution!

C++ for Engineers and Scientists, Second Edition 6 Problem Solution and Software Development: Phase I (continued) Step 2: Develop a Solution –Algorithm: the exact steps used to solve a problem –Algorithm is usually defined at high level, then refined to detailed lower levels –Structure level diagrams may be used to represent the levels of analysis

C++ for Engineers and Scientists, Second Edition 7 Problem Solution and Software Development: Phase I (continued) Figure 1.8 First-level structure diagram.

C++ for Engineers and Scientists, Second Edition 8 Problem Solution and Software Development: Phase I (continued) Figure 1.9 Second-level refinement structure diagram.

C++ for Engineers and Scientists, Second Edition 9 Problem Solution and Software Development: Phase I (continued) Step 3: Code the Solution – Also called writing the program, and implementing the solution – Program should contain well-defined patterns or structures of the following types: Sequence Selection Iteration Invocation

C++ for Engineers and Scientists, Second Edition 10 Problem Solution and Software Development: Phase I (continued) Sequence: defines the order in which instructions are executed Selection: allows a choice between different operations, based on some condition Iteration: allows the same operation to be repeated based on some condition; also called looping or repetition Invocation: involves invoking a set of statements when needed

C++ for Engineers and Scientists, Second Edition 11 Problem Solution and Software Development: Phase I (continued) Step 4: Test and Correct the Program – Testing: method to verify correctness and that requirements are met – Bug: a program error – Debugging: the process of locating an error, and correcting and verifying the correction – Testing may reveal errors, but does not guarantee the absence of errors

C++ for Engineers and Scientists, Second Edition 12 Problem Solution and Software Development: Phase I (continued) Testing requires the use of meaningful, representative test data Impossible to test all possible combinations of data and operations in a complex program Testing plans must be developed to ensure good coverage in testing Testing usually requires more time than other steps in Phase I

C++ for Engineers and Scientists, Second Edition 13 Problem Solution and Software Development: Phase I (continued) Relative effort for steps in Phase I