Presentation is loading. Please wait.

Presentation is loading. Please wait.

619 Final Review Last updated Spring 2010 © 2003 -2008: Paul Ammann.

Similar presentations


Presentation on theme: "619 Final Review Last updated Spring 2010 © 2003 -2008: Paul Ammann."— Presentation transcript:

1 619 Final Review Last updated Spring 2010 © : Paul Ammann

2 Agenda Review Topics Covered Highlight Key Technical Concepts
Identify Areas for Study on Final Final May Test Several Concepts in a Given Question Goal: Strong Showing on Final

3 Procedural Abstractions
Specifications Preconditions (Requires Clause) Postconditions (Effects Clause) Modifies Clause You Can Read and Write Such Specifications Issues: Minimality Underdetermined Behavior Deterministic Implementations Generality

4 Exceptions Rationale for Exceptions
Total vs. Partial Specifications Replacing Preconditions with Defined Behavior Role of “FailureException” Specifications Include Exception Returns Checked vs. Unchecked Exceptions Bloch’s List of Standard Exceptions Masking vs. Reflection

5 Data Abstraction Fundamental Topic Specifications for:
Expect Significant Exam Coverage Specifications for: Overview (Typical “Object”) Abstraction Function (toString()) Representation Invariant (repOk()) Methods You Can Expect to Write/Modify Some or All of These Understanding, not Formality, is the Focus

6 More Data Abstraction IntSet and Poly Examples
Mutability Reasoning about Data Abstractions Role of Abstraction Function Value of Abstraction Function in Specific Examples Role of Representation Invariant Value of Representation Invariant in Specific Examples How to Argue a that Method Meets its Contract Other Issues Exposing the Rep Adequacy

7 Iteration Abstraction
Specifying Iterators Preconditions and Postconditions Constraints on Modifications While Generator is in Use Implementing Iterators in Java Abstraction Functions for Iterators Value of Abstraction Function in Specific Examples Abstraction Function For Extensions Allowing a prev() as well as a next() method Allowing a remove() method

8 Type Hierarchy Fundamental Topic Uses of Type Hierarchy Mechanisms
Substitution Principle Uses of Type Hierarchy Extending Behavior vs. Multiple Implementations Mechanisms Extensions, Abstract Classes, Interfaces Understanding Overriding vs. Overloading Dynamic Dispatching Apparent Type vs. Actual Type

9 Type Hierarchy Reasoning About Subtypes Signature Rule Methods Rule
Rules for Exceptions Methods Rule Preconditions/Postconditions More Rules for Exceptions Properties Rule

10 Generics Replacing raw types with generics
Eliminating unchecked warnings Generic interactions with Lists vs. Arrays Covariant Arrays vs. Invariant Generics Generifying types and methods Bounded wildcards Relaxing the invariance of generics

11 Polymorphic Abstraction
Element Subtype vs. Related Subtype Comparable vs Comparator Addable vs. Adder Be Prepared to Analyze and/or Complete an Implementation

12 Concurrency Simple Thread Interactions Shared Access to Mutable Data
Synchronized Methods Possible Executions in the Absence of Synchronization Roles for wait() and notify()

13 Specification Checking
Specifications for Common Properties Temporal Logic for Specification Computational Tree Logic (CTL) Linear Temporal Logic (LTL) Simple Specification Patterns KSU material Huth and Ryan is also a excellent source

14 Methods Common to All Objects
equals() Transitivity, Symmetry, Substitution for Subtypes hashcode() Consistency with equals() toString() clone() Why is Liskov’s clone() (page 97) wrong? Comparable

15 Classes and Interfaces
Immutability Why it is Preferable How to Achieve Composition vs. Inheritance Why is Composition Preferable? Potential Problems for Inheritance Mechanisms to Prohibit Inheritance

16 Specifications Specificand Sets Generality vs. Restrictiveness
Redundancy Definitions Examples Relevance to Type Abstraction Methods Rule

17 Design Patterns Introduction to Design Patterns
Characterization of Patterns Name Problem Solution Consequences Example Patterns Factory, Singleton, Bridge, Decorator, Command, Iterator, State, Template

18 Secure Programming Introduction to Secure Implementation
What is software NOT supposed to do? Bugs Misuse Cases Vulnerabilities/Exploits You need to think about the bad guy! Most vulnerabilities are simple mistakes YOUR software can be better

19 Special Topics Junit How to extract basic tests from a contract
What is Junit How to use Junit How to write tests in JUnit How to extract basic tests from a contract Cover each exceptional condition Cover “normal” behavior May require several tests

20 Wrap Up Open Book (May decide against…)
Open Slides (paper, not electronic) Closed Notes (May have one index card) Questions?


Download ppt "619 Final Review Last updated Spring 2010 © 2003 -2008: Paul Ammann."

Similar presentations


Ads by Google