Chapter 1 Software Development Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2008.

Slides:



Advertisements
Similar presentations
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Advertisements

Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Chapter 2- Visual Basic Schneider
Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
CIS105 Chapter 1 Theory Review. Page 2 Hardware and Software are the two major components o any computer system Hardware is the set of physical devices.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Chapter 1 Principles of Programming and Software Engineering.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
1 Chapter 2 Problem Solving Techniques INTRODUCTION 2.2 PROBLEM SOLVING 2.3 USING COMPUTERS IN PROBLEM SOLVING : THE SOFTWARE DEVELOPMENT METHOD.
Introduction to High-Level Language Programming
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Software.
Introduction 01_intro.ppt
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
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.
Simple Program Design Third Edition A Step-by-Step Approach
CMSC 345 Fall 2000 Unit Testing. The testing process.
Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Twelfth Edition.
The Program Development Cycle
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Principles of Information Systems, Sixth Edition Systems Design, Implementation, Maintenance, and Review Chapter 13.
COP 3530 PROGRAM, FILE & DATA STRUCTURES Syllabus Syllabus Lab Information Lab Information Overrides Overrides Questions? Questions?
1 C++ Plus Data Structures Nell Dale Chapter 1 Software Engineering Principles Modified from the Slides made by Sylvia Sorkin, Community College of Baltimore.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Problem Solving using the Science of Computing MSE 2400 EaLiCaRA Spring 2015 Dr. Tom Way.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
Programming Life Cycle Problem analysisunderstand the problem Requirements definition specify what program will do High- and low-level designhow it meets.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
Introduction to Computer Application (IC) MH Room 517 Time : 7:00-9:30pm.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Software Engineering Review CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and Computer Science.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
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.
Principles of Information Systems, Sixth Edition 1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
© 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.
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.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Chapter 2 Principles of Programming and Software Engineering.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
Principles of Programming & Software Engineering
Information Systems Development
Information Systems Development
Software Testing.
System.
C++ Plus Data Structures
Chapter 2- Visual Basic Schneider
Principles of Programming and Software Engineering
Quality Management Perfectqaservices.
About the Presentations
Information Systems Development
Chapter 2- Visual Basic Schneider
Chapter 2- Visual Basic Schneider
Software Development Chapter 1.
Presentation transcript:

Chapter 1 Software Development Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2008

Software Development Hardware: actual physical components (such as CPU, memory, hard drive…) Software: refers to programs used to control the operation of the hardware.

Software Development Software development is a complex process that is both an art and a science It is an art in that it requires a good deal of imagination, creativity, and ingenuity It is also a science that it uses certain standard techniques and methodologies

Software Development Phases Problem Analysis and Specification Design Coding Testing, Execution, and Debugging Maintenance

Software Development Model One of the earliest strategies for development software is known as the Waterfall Model

Waterfall Model

Realistic Waterfall Model

Software Development Phases Problem Analysis and Specification Design Coding Testing, Execution, and Debugging Maintenance

Problem Analysis and Specification Problem Analysis and Specification: The problem is analyzed and a specification for the problem is formulated For example: if we obtain a job request looks like:

Task Example Because of new government regulations, we must keep more accurate record of all students currently receiving financial aid and submit regular report to FFAO (Federal Financial Aid Office). Could we get the computer to do this for us???

Task Analysis Purpose Pre-condition (input): describe the state of processing before the program is executed Post-condition (output): describe the state of processing after the program is executed

Software Development Phases Problem Analysis and Specification Design Coding Testing, Execution, and Debugging Maintenance

Design Design: A plan for solving the problem is formulated Various design methods have been developed, two of major designs we describe here: top-down design and object-oriented design

Top-down design The original problem is partitioned into simpler subproblems For example, the problem we just had can be obviously divided into: 1. Get the student records 2. Process the records 3. Prepare the reports

One level partition

Two level partition

Three level partition

OOD:Object-Oriented Design Identify the objects in the problem's specification and their types. Identify the operations or tasks to manipulate the objects

Program=Algorithm + Data Structure Algorithm: “a step by step procedure for solving a problem or accomplishing some end” In computer science, algorithm must be: 1. Definite, unambiguous 2. Simple 3. Finite

Algorithms Unstructured goto's if-else's Structured while loop switch stmt

Software Development Phases Problem Analysis and Specification Design Coding Testing, Execution, and Debugging Maintenance

Coding There’s not much we can talk in coding, you all know what it is. After you select the language, three major principles you need to follow: 1. Programs and Subprograms should be well structured 2. All source code should be documented 3. It should be formatted in a style that enhances its readability

Software Development Phases Problem Analysis and Specification Design Coding Testing, Execution, and Debugging Maintenance

Testing, Execution, and Debugging Errors happen all the time!!! There are three different points at which errors can be introduced: 1. Syntax errors 2. Run-time errors 3. Logic errors

Different Kinds Of Tests Required Unit tests: Each individual program unit works? Program components tested in isolation Integration tests : Units combined correctly? Component interface and information flow tested System tests: Overall system works correctly? 25

The "V" Life Cycle Model

Two major types of testing Black box testing: Outputs produced for various inputs Checked for correctness Do not consider structure of program component itself. (so basically, it just test a lot of different inputs and match with the expected outputs )

Two major types of testing White box testing: examine code’s internal structure (Test for every loop, if statement, functions…) Test data is carefully selected

Software Development Phases Problem Analysis and Specification Design Coding Testing, Execution, and Debugging Maintenance

After the software has been used for several years, they will require modifications Studies show that a higher percentage of computing budgets and programmer time are devoted to software maintenance 1970s35-40% 1980s40-60% 1990s70-80% 2000s80-90%