Presentation is loading. Please wait.

Presentation is loading. Please wait.

Copyright by Scott GrissomCh 1 Software Development Slide 1 Software Development The process of developing large software projects Different Approaches.

Similar presentations


Presentation on theme: "Copyright by Scott GrissomCh 1 Software Development Slide 1 Software Development The process of developing large software projects Different Approaches."— Presentation transcript:

1 copyright by Scott GrissomCh 1 Software Development Slide 1 Software Development The process of developing large software projects Different Approaches Waterfall model (1970s) identify tasks Object Oriented (1990s) identify entities Extreme Programming (1999) designed for speed and quality

2 copyright by Scott GrissomCh 1 Software Development Slide 2 Software Life Cycle Problem Specification (20%) identify system requirements Design (20%) identify objects and their responsibilities Implementation (20%) coding and debugging Testing (30%) Documentation (10%) user support technical documentation Maintenance A well designed solution is easier to maintain.

3 copyright by Scott GrissomCh 1 Software Development Slide 3 Program Specification Not enough to solve a problem correctly, you must solve the correct problem! Work closely with the client Provide sufficient details to create a solution that satisfies the client Criteria performance features budget delivery date

4 copyright by Scott GrissomCh 1 Software Development Slide 4 Problem Statements Describe behavior of every possible input, not just the expected ones. For example see page 7 what is ambiguous? Group Activity question #2

5 copyright by Scott GrissomCh 1 Software Development Slide 5 Extreme Programming (XP) This process is currently popular in industry and pieces together several best practices Paired Programming Coding standards Continuous Testing Refactoring 40 hour week Simplicity

6 copyright by Scott GrissomCh 1 Software Development Slide 6 XP Benefits Programmers report higher satisfaction with their job Errors are reduced Production time improves More learning takes place with students using pair programming

7 copyright by Scott GrissomCh 1 Software Development Slide 7 Empirical Testing (1.2) Goal: to find errors Does it perform exactly as described? Exercise the software A good test plan will uncover most problems It is not feasible to exhaust every possible case

8 copyright by Scott GrissomCh 1 Software Development Slide 8 Testing Techniques Code walkthrough often done with two or more people Unit testing individual classes / methods easy to do with BlueJ Integration testing of related objects create stubs for unfinished methods create temporary drivers to invoke the methods Regression Testing accumulate and apply tests against a set of past failures Acceptance testing final approval are specs fulfilled?

9 copyright by Scott GrissomCh 1 Software Development Slide 9 Unit Testing write a test harness that feeds parameters to every method under a variety of conditions create files of test data that can be used repeatedly compare results against solutions known to be correct (an oracle)

10 copyright by Scott GrissomCh 1 Software Development Slide 10 Black-Box Testing What is it supposed to do? Disregard the internal structure Mapping a set of inputs to a set of expected outputs Provide data values at each end of the valid input range

11 copyright by Scott GrissomCh 1 Software Development Slide 11 Clear-Box Testing Focuses on the implementation Condition coverage guarantees that all paths through a method are executed What set of input will insure that all code has been executed

12 copyright by Scott GrissomCh 1 Software Development Slide 12 Additional Test Criteria Is it user friendly? Is it robust? Is it reliable? Does it have acceptable performance? Note: testing sophisticated GUI applications is difficult

13 copyright by Scott GrissomCh 1 Software Development Slide 13 Test Plan A written document Reasonably complete Includes a sufficient number of test cases Developed before design Performed by an impartial third party Refer to the sample on the Web

14 copyright by Scott GrissomCh 1 Software Development Slide 14 Test Case Required pieces test number rationale for the test a specific input or user action expected result Example test #1 negative numbers input: -3 expected result: “provide a positive number” test #2 sort the numbers action: click on ‘sort’ button expected result: numbers will be sorted Creating good tests positive tests confirm that the software does what it is supposed to negative tests confirm possible errors are handled gracefully boundary cases include data on the ends of valid data

15 copyright by Scott GrissomCh 1 Software Development Slide 15 Design Test Cases for... Triangle test given three integers that represent the length of a triangle equilateral, isosceles, scalene, right, not a triangle Next Day given three integers that represent a day, month, and yr what is the next day? Leap Year given an integer, return true not on a century unless divisible by 400

16 copyright by Scott GrissomCh 1 Software Development Slide 16 What can go wrong? Therac-25 delivers radiation treatment to cancer patients (1985) delivered overdoses killing at least six people investigators discovered the software was written by a single programmer no documentation, no test plan, poor design


Download ppt "Copyright by Scott GrissomCh 1 Software Development Slide 1 Software Development The process of developing large software projects Different Approaches."

Similar presentations


Ads by Google