Key Technical Concepts for 619 Final Review Fall 2017

619 final review n.w
1 / 18
Embed
Share

Enhance your understanding of procedural abstractions, exceptions, data abstraction, and mutability for a strong showing on the 619 final exam. Covering topics like Liskov specifications, preconditions, postconditions, and more, this review will help you identify areas for study and highlight fundamental concepts. Don't miss insights on iterators and achieving mutability effectively.

  • Technical Concepts
  • Final Review
  • Procedural Abstractions
  • Data Abstraction
  • Mutability

Uploaded on | 1 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. 619 Final Review Fall 2017 Professor 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 619 Final Review

  3. Procedural Abstractions (Liskov 1-3) Specifications Preconditions (Requires Clause) Postconditions (Effects Clause) Modifies Clause You Can Read and Write Such Specifications Issues: Minimality Underdetermined Behavior Deterministic Implementations Generality 619 Final Review

  4. Exceptions (Liskov 4, Bloch 9) 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 619 Final Review

  5. Data Abstraction (Liskov 5) Fundamental Topic 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 619 Final Review

  6. More Data Abstraction (Liskov 5) 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 619 Final Review

  7. Mutability Key topic Should be comfortable converting between mutable and immutable types Achieving mutability, using guidance from both Liskov and Bloch Transforming mutators to producers Limiting subtyping Limiting changes to instance variables 619 Final Review

  8. Iteration Abstraction (Liskov 6) 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 619 Final Review

  9. Type Hierarchy (Liskov 7) Fundamental Topic 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 619 Final Review

  10. Type Hierarchy (Liskov 7) Reasoning About Subtypes Signature Rule Rules for Exceptions Methods Rule Preconditions/Postconditions More Rules for Exceptions Properties Rule 619 Final Review

  11. Polymorphic Abstraction (Liskov 8) Element Subtype vs. Related Subtype Comparable vs Comparator Addable vs. Adder Be Prepared to Analyze, Complete, and/or Analyze an Implementation 619 Final Review

  12. Methods Common to All Objects (Bloch 3) equals() Transitivity, Symmetry, Substitution for Subtypes hashcode() Consistency with equals() toString() clone() Why is Liskov s clone() (page 97) wrong? Comparable 619 Final Review

  13. Classes and Interfaces (Bloch 4) Immutability Why it is Preferable How to Achieve Composition vs. Inheritance Why is Composition Preferable? Understand Bloch s InstrumentedSet example Potential Problems for Inheritance Mechanisms to Prohibit Inheritance 619 Final Review

  14. Generics (Bloch 5) 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 619 Final Review

  15. Enums, Annotations (Bloch 6) Problems with C-Style Enums Enums, EnumSet, EnumMap Simple Annotations @Test, @SuppressWarnings, @Override 619 Final Review

  16. Specification Checking Temporal Logic for Specification Computational Tree Logic (CTL) Kansas State University material Links on course schedule Huth and Ryan is also a excellent source 619 Final Review

  17. JUnit and JavaDoc JUnit tests for a given JavaDoc description JavaDoc and JUnit for exceptions Contract model and Junit JUnit theories (typed) parameters in test methods Data sources (JUnit) preconditions: assumeTrue( ) postconditions: assertTrue( ) Can you count? 619 Final Review

  18. Wrap Up Final Exam Closed Book/Closed Notes But One (1) 8.5x11 sheet of paper, handwritten Tuesday, December 19 4:30 PM 2 hours Questions? 619 Final Review

Related


More Related Content