Next: About this document ...
Up: Contents
Previous: APPENDIX D: NORMAL FORMS
  Contents
- Class: a description of a set of objects that share the same attributes, methods, relationships.
- Object: an instance of a class.
- Inheritance: subclasses may be specialized from more generalized superclasses using a hierarchy.
The subclass inherits all of the superclasses attributes and methods but refines these with additional attributes and methods.
- Overload: a subclass can refine a superclass with a new implementation of an existing method.
- Aggregation: a hierarchical assembly of objects into a whole-part relationship, such as Body aggregates Leg.
- Cardinality/Multiplicity: an assembly may have more than one instance of a class type.
- Container Class: holds and manipulates an array/collection of possibly heterogeneous objects.
- Use Case: a requirements narrative of the sequence of events that occur when a user participates in a dialog with a system.
- Analysis: an investigation of a domain that results in abstract models describing its static and dynamic characteristics. It emphasizes questions of what, rather than how.
- OO Analysis: classes, inheritance, associations.
- Design: a process that uses the products of analysis to produce a specification for implementing a system. A logical description of how a system will work.
- OO Design: objects, attributes, methods, collaborations.
- Collaboration: two or more objects that participate in a client/server relationship.
- Responsibility: a contract or obligation of a class. What an object knows or does. An object may fulfill responsibilities using its own methods/data or the services of a collaborator.
- CRC: Class, Responsibility, Collaboration.
- Cohesion: extent to which a module is single-minded.
- OO Cohesion: extent to which an object has focused/highly-related responsibilities.
The goal is high cohesion.
If some of the responsibilities of A are unrelated, then perhaps some should be moved into a new B or an existing B, if the resultant responsibilities of B are related.
This can lead to higher cohesion but possibly higher coupling also.
- Coupling: extent of complexity of interconnections with other modules.
- OO Coupling: extent of dependency between objects due to collaboration.
The goal is low coupling.
If the dependency of A on collaborator B is overly complex, then perhaps some, or all, of the responsibilities of B should be moved to A.
This can lead to lower coupling but possibly lower cohesion also.
- Sequencing: chain of dependent method/message calls between objects
Next: About this document ...
Up: Contents
Previous: APPENDIX D: NORMAL FORMS
  Contents
Ted Billard
2001-10-29