Hints and Tips
A well-structured active class and active object
- Represents an independent flow of control that maximizes the potential for true concurrency in the system.
- Is not so fine-grained that it requires a multitude of other active elements that might result in an over-engineered and fragile process architecture.
- Carefully manages communication among peer active elements, choosing between asynchronous and synchronous messaging.
- Carefully treats each object as a critical region, using suitable synchronization properties to preserve its semantics in the presence of multiple flows of control.
When you draw an active class or an active object in the UML,
- Mark those attributes, operations, and signals that are important in understanding the abstraction in its context and hide the others using a filtering capability, if your modeling tool allows.
- Explicitly show all operation synchronization properties.