Software Development Chapter 1.

Slides:



Advertisements
Similar presentations
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Advertisements

CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Software Failure: Reasons Incorrect, missing, impossible requirements * Requirement validation. Incorrect specification * Specification verification. Faulty.
© Janice Regan Problem-Solving Process 1. State the Problem (Problem Specification) 2. Analyze the problem: outline solution requirements and design.
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.
Chapter 1 Principles of Programming and Software Engineering.
Programming Fundamentals (750113) Ch1. Problem Solving
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
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.
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.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
An Introduction to Software Engineering CSCI 3033 Data Structures.
Design-Making Projects Work (Chapter7) n Large Projects u Design often distinct from analysis or coding u Project takes weeks, months or years to create.
COP 3530 PROGRAM, FILE & DATA STRUCTURES Syllabus Syllabus Lab Information Lab Information Overrides Overrides Questions? Questions?
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance.
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.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
© 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.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
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.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Chapter 2 Principles of Programming and Software Engineering.
Chapter 1 Software Development Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2008.
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Principles of Programming & Software Engineering
CSE 219 Final exam review.
Software Testing.
Chapter3:Software Processes
EGR 115 Introduction to Computing for Engineers
System.
C++ Plus Data Structures
Chapter ? Quality Assessment
Chapter 11 Object-Oriented Design
Verification and Testing
Principles of Programming and Software Engineering
Quality Management Perfectqaservices.
About the Presentations
Life Cycle Models PPT By :Dr. R. Mall.
Lecture 2 Introduction to Programming
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
Software engineering – 1
Unit# 9: Computer Program Development
Lecture 09:Software Testing
Component-Level Design
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Chapter 1 Introduction(1.1)
Chapter 10 – Software Testing
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
What Is Good Software(Program)?
Chapter 2. Problem Solving and Software Engineering
Software Testing Strategies
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

Software Development Chapter 1

5 Phases of Software Life Cycle Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance

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

OCD: Object-Centered Design (OOD: Object-Oriented Design) Identify the objects in the problem's specification and their types. Identify the operations to solve Arrange operations in a sequence of steps, an algorithm applied to the objects, will solve the problem. 4

Data Types of the Objects Simple Structured arrays structures class objects Think of them as Containers

Algorithms Pseudo code Must be Definite, unambiguous Simple Finite correct and efficient well structured Cannot separate data structures from algorithms

Implementation (Coding) Select language of implementation Encode the design Verify integration combining program units into a complete software system. Insure quality programs must be correct, readable, and understandable well-structured, documented, stylistic 7

Good Programming Practices Modularize your programs Use local variables within subprograms Avoid use of global variables Use parameters to pass information to and from sub programs Protect arguments that should not be altered by a subprogram Don’t use “magic numbers”

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

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? 10

Black box or functional test Outputs produced for various inputs Checked for correctness Do not consider structure of program component itself. Program unit is viewed as a black box Accepts inputs and produces outputs, Inner workings of the box are not visible. 11

White Box Or Structural Test Performance is tested examine code’s internal structure. Test data is carefully selected specific parts of the program unit are exercised. 12

Maintenance Large % of Because … Computer center budgets Programmer's time Software development cost Because … Includes modifications and enhancements Poor structure, poor documentation, poor style Bug finding and fixing is tougher Impedes implementation of enhancements 13