Download presentation
Presentation is loading. Please wait.
Published byBuddy Griffith Modified over 9 years ago
1
619 Final Review Last updated Spring 2008 © 2003 -2008: Paul Ammann
2
619 Final Review © 2003-2008 Paul Ammann Instructor: James Baldo Jr., Ph.D. Email: jbaldo@gmu.edujbaldo@gmu.edu Syllabus: http://cs.gmu.edu/syllabus/syllabi- spring09/SWE619BaldoJ.html http://cs.gmu.edu/syllabus/syllabi- spring09/SWE619BaldoJ.html
3
619 Final Review © 2003-2008 Paul Ammann Text Books Barbara Liskov with John Guttag. Program Development in Java. Addison Wesley, 2001, ISBN 0-201-65768-6. Required. Joshua Bloch. Effective Java. Second Edition. Addison Wesley, 2008, ISBN 0-321-35668-3. Required. Note that the Second edition is newly released (May 2008); hence used copies are probably the wrong edition.
4
619 Final Review © 2003-2008 Paul Ammann Course Description To give the students a solid understanding of modern software construction. To prepare students to construct sequential and concurrent programs. To encourage the construction of software systems of high quality. To provide an in-depth study of software construction in a modern language including control structuring and packaging. To address concepts such as information hiding, data abstraction, and object-based and object-oriented software construction are discussed and illustrated. This course is part of the core of the SWE program. This section of 619 uses Java.
5
619 Final Review © 2003-2008 Paul Ammann Assignments Homework is due before class on the due date. Paper and pencil homework should be brought directly to class. Assignments that are Java programs should be submitted to James Baldo Jr. at jbaldo@gmu.edu.jbaldo@gmu.edu For programs, you must submit a paper copy as well as the electronic version.
6
619 Final Review © 2003-2008 Paul Ammann Quizzes Each class, except for the first class, begins with a short quiz. Each quiz covers material from the previous session(s). The goal of the quizzes is to keep students abreast of the material covered in class. Because of the quizzes, there is no midterm exam.
7
619 Final Review © 2003-2008 Paul Ammann Missed Homework & Quizzes In recognition of the fact that many students have occasional but unavoidable commitments that preclude attendance at every class, I drop each student's three lowest scores prior to final grade computations. I select the combination of homework and quiz scores most advantageous to the student. For example, I may drop drop 2 quiz scores and 1 homework, or 3 homeworks, or any other combination totaling 3. In view of this policy, late homework is not accepted and there are no make-up quizzes. In fairness to other students, please do not ask for an exception.
8
619 Final Review © 2003-2008 Paul Ammann Final Examination A final exam is held during the University-scheduled exam period. On the final, a student must demonstrate reasonable competence with the course material to receive a satisfactory grade (i.e. B or better) in the class.
9
619 Final Review © 2003-2008 Paul Ammann Grading Grades are computed as: Assignments (33%), Quizzes (33%), Final (34%)
10
619 Final Review © 2003-2008 Paul Ammann 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
11
619 Final Review © 2003-2008 Paul Ammann 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
12
619 Final Review © 2003-2008 Paul Ammann 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
13
619 Final Review © 2003-2008 Paul Ammann Data Abstraction 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
14
619 Final Review © 2003-2008 Paul Ammann 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 Other Issues Exposing the Rep Adequacy
15
619 Final Review © 2003-2008 Paul Ammann 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
16
619 Final Review © 2003-2008 Paul Ammann Type Hierarchy 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
17
619 Final Review © 2003-2008 Paul Ammann Type Hierarchy Reasoning About Subtypes Signature Rule Rules for Exceptions Methods Rule Preconditions/Postconditions More Rules for Exceptions Properties Rule
18
619 Final Review © 2003-2008 Paul Ammann Polymorphic Abstraction Element Subtype vs. Related Subtype Comparable vs Comparator Addable vs. Adder Be Prepared to Analyze and/or Complete an Implementation
19
619 Final Review © 2003-2008 Paul Ammann Concurrency Simple Thread Interactions Shared Access to Mutable Data Synchronized Methods Possible Executions in the Absence of Synchronization Roles for wait() and notify()
20
619 Final Review © 2003-2008 Paul Ammann Specification Checking Specifications for Common Properties Temporal Logic for Specification Computational Tree Logic (CTL) Linear Temporal Logic (LTL) Simple Specification Patterns KSU material KSU Huth and Ryan is also a excellent source Huth and Ryan
21
619 Final Review © 2003-2008 Paul Ammann 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
22
619 Final Review © 2003-2008 Paul Ammann 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
23
619 Final Review © 2003-2008 Paul Ammann Specifications Specificand Sets Generality vs. Restrictiveness Redundancy Definitions Examples Relevance to Type Abstraction Methods Rule
24
619 Final Review © 2003-2008 Paul Ammann Design Patterns Introduction to Design Patterns Characterization of Patterns Name Problem Solution Consequences Example Patterns Factory, Singleton, Bridge, Decorator, Command, Iterator, State, Template
25
619 Final Review © 2003-2008 Paul Ammann 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
26
619 Final Review © 2003-2008 Paul Ammann Special Topics Junit 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
27
619 Final Review © 2003-2008 Paul Ammann Wrap Up Open Book Open Slides (paper, not electronic) Closed Notes Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.