Guideline: Visual Modeling
This guideline provides information on how to apply visual modeling to designing a system.
Relationships
Related Elements
Main Description

Identify elements

Render the identified design elements as classes in a UML diagram.  Apply appropriate stereotypes and optionally render the class using an icon specific to the stereotype to characterize the intent of the class in the design.  Name and briefly describe the classes in a few sentences.

<describe and show stereotypes>

Design internals

[TBD discuss creating components, defining interfaces, and designing internals.]

Determine how elements collaborate to realize the scenario

Create a realization that communicates how the classes are structured and collaborate to realize the behavior of a scenario.  Realizations can cover one or more scenarios of a use case (use-case realizations) or they can describe other scenarios conceived to <TBD-figure out> and communicate how the design will perform some behavior.

Create a number of dynamic object diagrams that walk through how a set of objects can collaborate to perform the behavior of the scenarios.  Even if just one scenario is being designed, this might take multiple diagrams to render it in smaller, understandable chungs or from multiple contexts.

Create one or more static class diagrams that show the classes in the design that support the realization.  These class diagrams are often called View of Participating Classes diagrams, they provide a focused view on the overall design by only showing the classes, relationships, operations, and attributes relevant to the collaboration.

Update other class diagrams as appropriate based on modifications or additions to the design.

Refine design decisions

[TBD - reference updating diagrams with appropriate detail.]

A class may have to store simple data information, like: string, integer, and the like. For such simple type of information, attributes are defined for classes. For a more complex or "behavioral' attribute, consider creating an extra class and establish an association to it. 

Describe responsibilities

Class responsibilities are either actions to be performed by an object or knowledge maintained and provided to other objects. Each class will typically have several responsibilities; each responsibility will evolve into one or more operations during design. 

Responsibilities are derived from messages on interaction diagrams or from non-functional requirements that a class has to convey. Document a responsibility by giving it a name, and optionally a brief description (what it does).

Describe attributes and associations

To perform their responsibilities, classes may depend on other classes to supply needed behavior. Associations in a class diagram can be used to represent inter-class relationships.