Tool Mentor: Designing Classes Using Rational Software Architect Standard Edition
This tool mentor describes how to design classes using the RSA-SE modeling environment.
Tool: Rational Software Architect Standard Edition
Extends: Designing Classes Using Rational Software Development Platform
Relationships
Related Elements
Main Description

Overview

This tool mentor assumes that a structured Design Model has been created as part of Task: Architectural Analysis.

The following steps are performed in this tool mentor:

Additional Tool Information

Use Design Patterns and Mechanisms

Incorporating a pattern and/or mechanism is effectively performing many of the subsequent steps in this tool mentor (adding new classes, operations, attributes, and relationships), but in accordance with the rules defined by the pattern or mechanism.

If the pattern is in the tool's library, the "apply pattern" is experience is highly interactive. A pattern is a special kind of transformation, "optimized for interactive, piecewise elaboration primarily in a single metamodel and within the same level of abstraction, and often within the same model". See the Model Driven Development and Model Driven Architecture and Analysis Mechanisms concepts.

For information on using patterns, refer to help book iconApplying Patterns.

Create Initial Design Classes

  1. Add a class diagram to the model. See help book iconAdding Class Diagrams to Model Elements.
  2. Add design classes to the class diagram. See help book iconAdding Classifiers to Class Diagrams.
  3. Document each class. See help book iconDocumenting Model Elements.

For more information, refer to help book iconModeling Static Structure by Using Class Diagrams.

Identify Persistent Classes

A class can be marked as persistent. If an MDD (see Model Driven Development and Model Driven Architecture) approach is taken, the profile applied to the model will contain specific stereotypes which will enable the architect to mark the classes that he wants to persist. The transform will use this extra information in combination with the type mappings and generate the appropriate code or a more refined model. For more information, refer to Analysis Mechanisms, help book iconApplying Transformations and help book iconTransitioning from Model to Code

In J2EE development, persistency is commonly implemented using entity EJBs. See Identify Design Elements for details.

Refer to help book iconDeveloping Enterprise Beans with UML Class Diagrams.

Define Class Visibility

For each class, determine the class visibility within the package where it resides.

Refer to help book iconVisibility of Model Elements.

Define Operations

  1. Add operations to each class. See help book iconAdding Operations to Classifiers in Diagrams.
  2. Add parameters to operations. See help book iconManging Parameters in Operations.
  3. Specify visibility of operations. See help book iconVisibility of Model Elements.

For more information, refer to help book iconManaging Attributes and Operations in Classifiers.

Define Methods

A description of how an operation is to be implemented might be added to the operation description.

A sequence diagram might optionally be used to describe a method. See the online Help topic help book iconDocumenting Model Elements.

For more information, refer to help book iconSequence Diagrams.

Define States

A state machine might optionally be used.

For more information, refer to help book iconUML State Machines

Define Attributes

  1. Define attributes. See help book iconAttributes.
  2. Add attributes to classifiers. See help book iconAdding Attributes to Classifiers in Diagrams.
  3. Specify visibility. See help book iconVisibility of Model Elements.

Define Dependencies

Refer to help book iconDependency Relationships.

Define Associations

  1. Add association relationships.
  2. Specify the kind of each association. See help book iconSpecifying Relationships in UML Diagrams.

Define Internal Structure

Refer to the structured classes topics within help book iconModeling Static Structure by Using Class Diagrams

Define Generalizations

Refer to help book iconGeneralization Relationships.  

Resolve Use-Case Collisions

Refer to help book iconSetting the Concurrency Property of an Operation

Handle Nonfunctional Requirements in General

Nonfunctional requirements often drive a class to incorporate specific design mechanisms using collaborations and patterns. Often the use of a framework component is sufficient to satisfy a nonfunctional requirement. See Identify Design Elements.

For more information, refer to help book iconApplying Patterns.

Evaluate the Results

It might be helpful to publish any models to html format. Also note that diagrams can be copied to Microsoft Word and other programs. 

For more information, refer to help book iconPublishing Models and to the help book iconPublishing a Model to a Web tutorial.

Additional Tool Information

Tutorials:

  • help book iconApply a Pattern

Samples:

  • help book iconModel for Pattern Application - Simple UML Model
  • help book iconPatterns - Simple UML Model