Artifact: Design Collaboration
A collection of design elements that work together to achieve a unified set of functionality.
Purpose
The purpose of a collaboration is to specify how internal elements of a system work together to realize a larger-scale functionality, most commonly a use case. A design collaboration not only realizes the functional behavior of the user case (and of its associated analysis collaboration) but is also optimized against the QoS requirements and other design constraints.
Relationships
Container Artifact
Description
Main DescriptionA collaboration is a set of object roles (typed by classes) that are interrelated by relations (e.g. association, aggregation, composition, generalization, and dependencies) so that they work together to achieve a larger-scale behavior. In an object analysis model (PIM), the collaboration captures the essential object roles, attributes, operations, states, events, and relations that must be present for the collaboration to properly semantically model the problem. In a design model (PSM), the collaboration is optimized against the various design constraints.
Key Considerations
The design collaboration (part of the PSM) starts life as the analysis collaboration but is optimized by applying selected design patterns to it. Thus, the design collaboration executes and can replicate the use case scenario functionality but also meets the QoS and other design constraints required of the system.
Tailoring
Impact of not havingThe design collaboration explicitly represents the PSM version of the analysis collaboration. Not representing the design collaboration means that it is difficult to understand, view, or modify the design patterns representing the PSM decisions.
Reasons for not needingIf the production of the design model is done entirely via a translative approach, then the design collaboration may only be implicitly represented if the translator produces the PSI (Platform Specific Implementation) directly.
More Information