1 / 30

Chapter 1 Software Development

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.

berit
Download Presentation

Chapter 1 Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 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

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

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

  6. Waterfall Model

  7. Realistic Waterfall Model

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

  9. 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:

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

  11. 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

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

  13. 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

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

  15. One level partition

  16. Two level partition

  17. Three level partition

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

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

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

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

  22. 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: • Programs and Subprograms should be well structured • All source code should be documented • It should be formatted in a style that enhances its readability

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

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

  25. 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

  26. The "V" Life Cycle Model

  27. 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 )

  28. 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

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

  30. 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

More Related