Checkpoints: Capsule
- The capsule's name and description accurately portrays the
role the capsule plays in the system.
- The capsule has a well-defined purpose, and encompasses a
single set of related responsibilities.
- The capsule represent a significant focus of control in the
system, and represents a significant thread of control in the system.
- The roles the capsule plays are reflected in its external
ports, and each role has one or more separate ports.
- No port is used in more than one role.
- Where there is a need to control the interaction of
concurrent scenarios, a capsule with multiple distinct ports has been
used.
- Interface capsules have been used to provide decoupling where
future change are expected.
- Capsules used effectively to isolate potential future changes
and design decisions.
- Coordinator capsules are used to manage complex and dynamic
relationships between entities (either one-to-many or many-to-many).
- Coordinator capsules are used where there is a need to
mediate between capsules to encapsulate a process.
- Initialization order has been considered correctly.
- The start-up and synchronization of independent threads of
control has been considered.
- Inheritance is used appropriately.
- There is no evidence of either a very flat or overly deep
generalization/specialization hierarchy.
- Obvious commonality has been reflected in the inheritance
hierarchy.
- Inheritance is not being used primarily for
implementation considerations (e.g. code reuse), but rather as a way
of capturing common design abstractions.
- Superclasses are no simply merges of the attributes of
the subclasses, but instead represent a logical abstraction.
- The inheritance hierarchy does not contain intermediate
abstract classes with orthogonal properties.
See also Checkpoints: Design Classes
| |
|