Task: Refine Collaboration
This task is executed in small increments, executing the resulting collaboration after each small modification.
Disciplines: Architecture
Purpose
The purpose of this task is to make small incremental changes to adjust for the newly added or modified elements.
Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
    Optional:
      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