Tool Mentor: Performing Detailed Design using RSA
Use IBM Rational Software Architect to evolve the design of individual classes by making incremental additions and refinements.
Tool: Rational Software Architect
Relationships
Related Elements
Main Description

Increase encapsulation

Eliminate or at least minimize publicly accessible attributes. Refer to Attributes in UML class diagrams in the help.

Use methods to insulate attributes from public access. Refer to Operations in UML class diagrams in the help.

Improve construction and utility of instances

Verify that class constructors prepare the class instance for use. Refer to Operations in UML class diagrams and Managing parameters in operations in the help.

Refine private data

Assure the proper state of the class is reflected by its attribute values. Refer to Attributes in UML class diagrams in the help.

Eliminate multi-attribute private data encapsulated by the class. Define a new class with the components of complex data and use that as a single attribute within a class. Refer to Classes in UML modeling and Managing attributes and operations in classifiers in the help.

Decide if any attribute needs protection from runtime changes, for example, a constant. Refer to Managing attributes and operations in classifiers and Setting the multiplicity property in UML diagrams in the help.

Reduce generalization relationships

Convert generalization relationships to associations whenever possible. Define a common base class that contains the behavioral contract for child classes to inherit. Reduce the depth of the generalization hierarchy.

Refer to Extends relationships in UML class diagrams and Association relationships in UML class diagrams in the help.

Incorporate design patterns and implementation mechanisms

Use design patterns and mechanisms as suited to the class being refined and in accordance with project design guidelines. Refer to Benefits of using patterns and Applying patterns to UML elements in the help.


Resolve concurrency collisions

Protect objects accessed concurrently by different threads of execution. Refer to Setting the concurrency property in UML class diagrams in the help.

The choice of concurrency mechanism tends to be implementation dependent. Refer to Benefits of using patterns in the help.

General

Refer to UML class diagrams, Classes in UML modeling, Classifiers in UML class diagrams, and Creating and populating UML class diagrams in the help for general support on performing detailed design.