IST350/ CSC485
Exam I - Review Sheet
Modeling Using UML (Chapter 2)
Describe the relationship between an object and its class.
What is the normal definition of equality of two objects? What makes two objects identical? What about instances of a collection class?
UML notations for classes and objects
UML notations for packages
-Java package naming convention
-Resolving name conflictions: classes/types in the Java API may share the same name (e.g., the List class representing an AWT component and the List interface in the Java Collections Framework)
Design Principles
Modularity:
-decomposition
-(high) cohesion and (low) coupling
-Frequent intra-module communication, less frequent inter-module communication
Abstraction:
-contractual interface
-two roles that an object (or a module) can play: client and server
Encapsulation:
-separation of implementation from interface
-different degrees of separation
- interface, abstract class, and (concrete) class
-polymorphism
Relationships
Levels of abstraction
-generalization and specialization
-inheritance
-extension
-realization
Association
Aggregation
Dependency
Use case models
-actor
-use case
Sequence diagram
From model to Java code
Application Frameworks (Chapter 8)
What is an application framework?
What is the main objective of using application frameworks?
Inversion of Control is listed in your text as one of the characteristics of frameworks. Use an example to demonstrate how it works in Swing programming.
Type safety and extensibility are both listed as requirements for framework design. Use two concrete Map classes HashMap (available since Java 1.2) and LinkedHashMap (available since Java 1.4) to demonstrate the benefit of binding to these requirements. Consider the scenario in which a program that used HashMapis now changed to use LinkedHashMap.
Design Guideline
Maximize the uniformity of common aspects of related classes/interfaces.
Use the Java Collections Framework as example to show how this design guideline was used in the design of Java APIs? (Review the interfaces, abstract classes, and (concrete) classes defined in the Collection and Map families.)
Compare the relative merits of different implementation styles:
HashSet, (red-black) TreeSet, LinkedHashSet
ArrayList and LinkedList
Design patterns
Describe the following design patterns in terms of the four essential elements of a pattern: name, intent, structure and participants, and consequences.
-Composite
-Decorator
Layout management
Why is layout management needed in the Java language?
Specify an approach to layout a graphical interface that is illustrated below.
Serialization
What is object serialization (including serializing and deserializing)? Why is it needed? Describe what have you learned from Lab 6 about serialization.
1