Task: Refine Collaboration
This task is executed in small increments, executing the resulting collaboration after each small modification.
Purpose
The purpose of this task is to make small incremental changes to adjust for the newly added or modified elements.
Relationships
RolesPrimary: Additional: Assisting:
InputsMandatory: Optional: External:
  • None
Outputs
Main Description
The refinement of the collaboration usually requires addition or modification of class features (ports, operations, attributes, etc) and class relations.
Steps
Add element into collaboration
Newly identified elements (classes, objects, functions, variables, etc) must be added correctly into the collaboration, and linked in the various relations.
Add or refine operation

Add an operation to an object or class and/or refine it in terms of:

  • parameter list (name or type)
  • return value
  • pre-condition
  • post-condition
  • quality of service
Add or refine attribute

Add or refine an attribute in terms of:

  • type
  • range
  • default value
Reify objects into a class
Abstract one or more objects into a class; for example, an elevator system contains Floor 1 UP button, Floor 1 DOWN button, Floor 2 UP button, Elevator Destination Floor 1 button, etc, but only one Button class.
Add or refine association

Associations are added between classes when instances of those classes must be able to send messages. They can be refined in terms of:

  • directionality (unidirectional or bidirectional)
  • multiplicity
  • role end name
  • association name or label
  • association type
    • association
    • aggregation
    • composition
Add or refine generalization
Generalization is an "is-a-kind-of" relation.  Generalization taxonomies can be constructed so that features (ports, attributes, operations, states, transitions, associations, etc) are available to all subclasses. Refinement is usually an adjustment of where in the taxonomy a class feature is introduced.
Add or refine state behavior
Classes can specify state machines. State machines enforce ordering of the behavior of a Classifier. State machines can be refined by adding or changing actions, transitions or states, by nesting of states, or adding sub-machines. In object analysis, state machines normally grow organically as functionality is added to a class.
Add or refine flow behavior
Flow of control is normally represented either with lines of code in the method body (simple case) or an activity diagram (complex case). The activity diagrams can be refined by adding or changing flows, operators, actions, activities, sub-activities, etc. Activity diagrams often grow organically as behavior is added to the class, rather than constructing the algorithm in all its glory.
Key Considerations
Make small incremental steps followed by model execution. You should execute the evolving collaboration frequently, from 10 to 60 minutes, typically.
More Information