Presentation is loading. Please wait.

Presentation is loading. Please wait.

Www.ics.mq.edu.au/ppdp ITEC200 Week02 Program Correctness and Efficiency.

Similar presentations


Presentation on theme: "Www.ics.mq.edu.au/ppdp ITEC200 Week02 Program Correctness and Efficiency."— Presentation transcript:

1 www.ics.mq.edu.au/ppdp ITEC200 Week02 Program Correctness and Efficiency

2 www.ics.mq.edu.au/ppdp Learning Objectives – Week 02 Program Correctness and Efficiency (Ch2) Students can: Explain the differences between syntax errors, run-time errors and logical errors Explain and use the exception handling paradigm in Java (the Exception hierarchy, checked versus unchecked exceptions, try- catch-finally sequences, exception throwing) Describe various testing strategies and implement them effectively Use debugging tools and strategies effectively Use assertions and loop invariants to verify program segments Analyse algorithm efficiency using big-O notation

3 www.ics.mq.edu.au/ppdp Types of Errors Syntax errors: mistakes in the grammar of a language Run-time errors: errors picked up by the Java Virtual Machine during program execution (causes JVM to throw an Exception) Logical errors: program works but doesn’t behave as intended

4 www.ics.mq.edu.au/ppdp The Exception class hierarchy

5 www.ics.mq.edu.au/ppdp Methods inherited from Throwable

6 www.ics.mq.edu.au/ppdp Checked and Unchecked Exceptions Two categories of exceptions: checked and unchecked Checked exception normally not due to programmer error and is beyond the control of the programmer Unchecked exception may result from –Programmer error –Serious external conditions that are unrecoverable

7 www.ics.mq.edu.au/ppdp Checked and Unchecked Exceptions

8 www.ics.mq.edu.au/ppdp Catching and Handling Exceptions When an exception is thrown, the normal sequence of execution is interrupted Default behavior –Program stops –JVM displays an error message The programmer may override the default behavior by –Enclosing statements in a ‘try’ block –Processing the exception in a ‘catch’ block –Specify any final instructions in a ‘finally’ block

9 www.ics.mq.edu.au/ppdp Throwing Exceptions Instead of catching an exception in a lower-level method, it can be caught and handled by a higher- level method –Declare that the lower-level method may throw a checked exception by adding a throws clause to the method header –Can throw the exception in the lower-level method, using a throw statement The throws clause is useful if a higher-level module already contains a catch clause for this exception type

10 www.ics.mq.edu.au/ppdp Catching Exceptions Example

11 www.ics.mq.edu.au/ppdp Levels and Types of Testing Unit testing: checking the smallest testable piece of the software (a method or class) Integration testing: testing the interactions among units System testing: testing the program in context Acceptance testing: system testing designed to show that the program meets its functional requirements Black-box testing: tests the item based on its interfaces and functional requirements White-box testing: tests the software with the knowledge of its internal structure

12 www.ics.mq.edu.au/ppdp Testing Tools Stub: a substitute method that has the same header as the method it replaces, but its body only displays a message indicating that the stub was called Driver program: specifies the testing routine to be executed Test framework: a software product that facilitates writing test cases, organizing the test cases into test suites, running the test suites, and reporting the results

13 www.ics.mq.edu.au/ppdp Debugging

14 www.ics.mq.edu.au/ppdp Reasoning about Programs: Assertions and Loop Invariants Assertions: logical statements about a program that are claimed to be true; generally written as a comment Preconditions and postconditions are assertions A loop invariant is an assertion –Helps prove that a loop meets it specification –True before loop begins, at the beginning of each repetition of the loop body, and just after loop exit

15 www.ics.mq.edu.au/ppdp Assertions and Loop Invariants Example

16 www.ics.mq.edu.au/ppdp Efficiency of Algorithms Difficult to get a precise measure of the performance of an algorithm or program Can characterize a program by how the execution time or memory requirements increase as a function of increasing input size –Big-O notation A simple way to determine the big-O of an algorithm or program is to look at the loops and to see whether the loops are nested

17 www.ics.mq.edu.au/ppdp Efficiency of Algorithms (continued) Consider: First time through outer loop, inner loop is executed n-1 times; next time n-2, and the last time once. So we have –T(n) = 3(n – 1) + 3(n – 2) + … + 3 or –T(n) = 3(n – 1 + n – 2 + … + 1)

18 www.ics.mq.edu.au/ppdp Efficiency of Algorithms (continued) We can reduce the expression in parentheses to: n x (n – 1) 2 So, T(n) = 1.5n 2 – 1.5n We can therefore conclude that T(n) is O(n 2 )

19 www.ics.mq.edu.au/ppdp Efficiency of Algorithms (continued)

20 www.ics.mq.edu.au/ppdp Where to from here… Work through Chapter 2 of the Koffman & Wolfgang Text Conceptual Questions and Practical Exercises Submit all preliminary work Be prompt for your online class

21 www.ics.mq.edu.au/ppdp Acknowledgements These slides were based upon the Objects, Abstraction, Data Structures and Design using Java Version 5.0 Chapter 2 PowerPoint presentation by Elliot B. Koffman and Paul A. T. Wolfgang


Download ppt "Www.ics.mq.edu.au/ppdp ITEC200 Week02 Program Correctness and Efficiency."

Similar presentations


Ads by Google