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