Using Rose
Using Rose
Using Rose
Rational Rose® 2001
VERSION: 2001.03.00
[email protected]
http://www.rational.com
COPYRIGHT NOTICE
Copyright ã 2000 Rational Software Corporation. All rights reserved.
THIS DOCUMENT IS PROTECTED BY COPYRIGHT AND CONTAINS INFORMATION PROPRIETARY
TO RATIONAL. ANY COPYING, ADAPTATION, DISTRIBUTION, OR PUBLIC DISPLAY OF THIS
DOCUMENT WITHOUT THE EXPRESS WRITTEN CONSENT OF RATIONAL IS STRICTLY
PROHIBITED. THE RECEIPT OR POSSESSION OF THIS DOCUMENT DOES NOT CONVEY ANY
RIGHTS TO REPRODUCE OR DISTRIBUTE ITS CONTENTS, OR TO MANUFACTURE, USE, OR SELL
ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART, WITHOUT THE SPECIFIC WRITTEN
CONSENT OF RATIONAL.
TRADEMARK NOTICE
Rational, the Rational logo, Rational Rose, ClearCase, and Rational Unified Process are trademarks or
registered trademarks of Rational Software Corporation in the United States and in other countries.
Visual C++, Visual Basic, Windows NT, Developer Studio, and Microsoft are trademarks or registered
trademarks of the Microsoft Corporation. BasicScript is a trademark of Summit Software, Inc. All other
names are used for identification purposes only and are trademarks or registered trademarks of their
respective companies.
Portions of Rational Rose include source code from Compaq Computer Corporation; Copyright 2000
Compaq Computer Corporation.
U.S. Registered Patent Nos. 5,193,180 and 5,335,344 and 5,535,329. Licensed under Sun Microsystems Inc.’s
U.S. Pat. No. 5,404,499. Other U.S. and foreign patents pending.
Printed in the U.S.A.
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Other Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Contacting Rational Technical Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Contacting Rational Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxii
1 Introduction to Visual Modeling Using Rational Rose. . . . . . . . . . . 1
Visual Modeling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Modeling with Rational Rose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Extending Rational Rose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Getting Started with Rational Rose . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Application Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Title Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Control-Menu Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Minimize, Restore, and Close Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Menu Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Customizing the Toolbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Documentation Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Diagram Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Overview Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Specification Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Printing Diagrams and Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Print Preview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Apply Filter Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Saving in Various Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Modifying the Rose.ini File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 The Browser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Viewing the Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
iii
Hiding and Displaying the Browser . . . . . . . . . . ...... ....... ...... ...... 18
Positioning the Browser . . . . . . . . . . . . . . . . . . ...... ....... ...... ...... 18
Docking and Undocking the Browser . . . . . . . . ...... ....... ...... ...... 18
Navigating a Model . . . . . . . . . . . . . . . . . . . . . . . . . ...... ....... ...... ...... 18
Expanding and Collapsing the Browser Tree . . ...... ....... ...... ...... 19
Creating and Editing Model Elements . . . . . . . ...... ....... ...... ...... 20
Naming an Element in the Browser . . . . . . . . . ...... ....... ...... ...... 20
Selecting Multiple Elements in the Browser . . . ...... ....... ...... ...... 20
Sorting Packages in the Browser . . . . . . . . . . . ...... ....... ...... ...... 21
Using Drag-and-Drop in the Browser . . . . . . . . . . . ...... ....... ...... ...... 21
Browser to Browser Capabilities. . . . . . . . . . . . ...... ....... ...... ...... 22
Browser to Diagram Capabilities . . . . . . . . . . . ...... ....... ...... ...... 23
Browser to Specification Capabilities . . . . . . . . ...... ....... ...... ...... 24
4 Introduction to Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Diagram Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Viewing Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Displaying Multiple Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Creating, Linking, Displaying, Renaming, and Deleting Diagrams . . . . . . . . . . . . . . 28
Creating a New Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Linking a Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Displaying a Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Renaming a Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Deleting a Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Creating and Naming Model Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Creating an Element on the Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Creating an Element in the Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Naming Model Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Reassigning Model Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Manipulating Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Selecting Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Deselecting Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Resizing an Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Moving One or More Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Changing from One Kind of Element or Relationship to Another . . . . . . . . . . . . 34
Cutting, Copying, and Pasting Icons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Deleting Model Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Shallow Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
iv Contents
Deep Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Correlations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Creating Correlations Between Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Bending a Correlation Icon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Reconnecting a Correlation Icon from One Icon to Another . . . . . . . . . . . . . . . 38
Naming a Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Laying Out a Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Laying Out All Shapes in a Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Laying Out Selected Shapes in a Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Adorning the Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Placing Text in a Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Manipulating Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Understanding Model Workspaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Differences Between a Saved Model and a Model Workspace . . . . . . . . . . . . . 41
Model Workspace Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Saving a Model Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Loading a Model Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5 Introduction to Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Displaying Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Custom Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Editing Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Common Specification Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Files Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Tab Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Navigating the Tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Adding and Deleting Entries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Editing Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6 Class Diagrams and Specifications . . . . . . . . . . . . . . . . . . . . . . . . 53
Class Diagram Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Class Diagram Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Creating and Displaying a Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Assigning a Class to Another Logical Package . . . . . . . . . . . . . . . . . . . . . . . . . 55
Adding and Hiding Classes and Filtering Class Relationships. . . . . . . . . . . . . . 55
Class Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Class Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Contents v
Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Parent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Stereotype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Export Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Class Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Cardinality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Persistence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Concurrency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Formal Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Class Specification—Operations Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Show Inherited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Class Specification—Attributes Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Class Specification—Relations Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Class Specification—Component Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Class Specification—Nested Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Class Specification—Files Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Class Attribute Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Class Attribute—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Show Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Initial Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Class Attribute—Detail Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Containment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Derived. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Operation Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Operation Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Return Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Operation Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Qualifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Concurrency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Operation Specification—Preconditions Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
vi Contents
Preconditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Interaction Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Operation Specification—Semantics Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Interaction Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Operation Specification—Postconditions Tab . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Postconditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Interaction Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Operation Specification—Files Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Parameter Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Defining a New Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Parameter Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Default . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Owner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Association Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Association Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Parent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Stereotype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Association Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Derived . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Link Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Name Direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Constraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Association Specification—Role B General Tab . . . . . . . . . . . . . . . . . . . . . . . . 86
Association Specification—Role A and B Detail Tab . . . . . . . . . . . . . . . . . . . . . 87
Navigable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Aggregate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Friend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Containment of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Keys/Qualifiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Generalize Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Generalize Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Friendship Required . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Virtual Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Realize Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Realize Specification—General Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Contents vii
Dependency Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Dependency Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Has Relationship (Booch Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Has Specification—General Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Has Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Key/Qualifier Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Defining a New Key/Qualifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Key/Qualifier Specification—General Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Owner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7 Use-Case Diagrams and Specifications . . . . . . . . . . . . . . . . . . . . . 95
Use-Case Diagram Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Actors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Flow of Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Dependency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Extend Stereotype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Include Stereotype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Refine Stereotype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Generalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Use-Case Diagram Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Use-Case Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Use-Case Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Rank. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Use-Case Specification—Diagram Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Diagram List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Use-Case Specification—Relations Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Generalize Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Generalize Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Stereotype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Friendship Required . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Virtual Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Actor Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
viii Contents
8 State Machine Diagrams and Specifications . . . . . . . . . . . . . . . . 107
Creating and Displaying a State Machine Diagram . . . . . . . . . . . . . . . . . . . . . . . . 107
State Machine Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
State Machine Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Statechart Diagram Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Creating a Statechart Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Automatic Transmission Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Activity Diagram Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Using Activity Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Understanding Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Creating an Activity Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Workflow Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Purposes of Workflow Modeling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Defining a Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Modeling a Workflow with an Activity Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Activity Diagram-Specific Model Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Swimlanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Object Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Understanding Objects and Object Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Changing the State of an Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Shared State Machine Diagram Model Elements. . . . . . . . . . . . . . . . . . . . . . . . . . 118
States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Start and End States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Transition to Self. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Decisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Synchronizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Swimlane Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Swimlane Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
State and Activity Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
State and Activity Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . 121
State and Activity Specification—Actions Tab . . . . . . . . . . . . . . . . . . . . . . . . . 122
Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Action Expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
State and Activity Specification—Transitions Tab . . . . . . . . . . . . . . . . . . . . . . 123
State and Activity Specification—Swimlanes Tab . . . . . . . . . . . . . . . . . . . . . . 124
Action Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Contents ix
State Transition Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
State Transition Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Transition Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Guard Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Transition Between Substates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Decision Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Decision Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Decision Specification—Transitions Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Decision Specification—Swimlanes Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Synchronization Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Synchronization Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Synchronization Specification—Transitions Tab . . . . . . . . . . . . . . . . . . . . . . . . 132
Object Specification (Activity Diagrams) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Object Specification—General Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Object Specification—Incoming Object Flows Tab . . . . . . . . . . . . . . . . . . . . . . 134
Object Specification—Outgoing Object Flows Tab . . . . . . . . . . . . . . . . . . . . . . 135
Object Flow Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Object Flow Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
9 Interaction Diagrams and Specifications . . . . . . . . . . . . . . . . . . . 137
Interaction Diagram Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Creating and Displaying an Interaction Diagram . . . . . . . . . . . . . . . . . . . . . . . 137
Collaboration Diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Sequence Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Toolboxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Collaboration Diagram Toolbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Sequence Diagram Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Common Collaboration and Sequence Diagram Icons. . . . . . . . . . . . . . . . . . . 141
Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Message Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Assigning an Operation to a Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Collaboration-Specific Toolbox Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Links. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Sequence Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Top-Level Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Hierarchical Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Focus of Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Displaying Focus of Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
x Contents
Coloring Focus of Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Moving the Focus of Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Nested Focus of Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Creating Alternative Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Toggling between Interaction Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Creating a Collaboration Diagram from a Sequence Diagram . . . . . . . . . . . . . 150
Creating a Sequence Diagram from a Collaboration Diagram . . . . . . . . . . . . . 150
Object Specification (Interaction Diagrams) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Object Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Persistence Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Multiple Instances Check Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Class Instance Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Class Instance Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Link Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Link Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Assoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Supplier and Client Visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Shared . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Link Specification—Messages Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Message Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Receiver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Message Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Message Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Message Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
10 Component Diagrams and Specifications . . . . . . . . . . . . . . . . . . 161
Component Diagram Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Creating and Displaying a Component Diagram . . . . . . . . . . . . . . . . . . . . . . . 161
Component Diagram Toolbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Assigning a Component to Another Package. . . . . . . . . . . . . . . . . . . . . . . . . . 162
Component Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Contents xi
Component Specification—General Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Stereotype (Component) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Component Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Component Specification—Realizes Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Show All Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Component Specification—Files Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Package Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Package Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Package Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Component Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Package Specification—Realizes Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Package Specification—Files Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11 Deployment Diagrams and Specifications. . . . . . . . . . . . . . . . . . 169
Deployment Diagram Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Creating and Displaying a Deployment Diagram . . . . . . . . . . . . . . . . . . . . . . . 169
Deployment Diagram Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Processor Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Processor Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Processor Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Device Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Device Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Device Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Connection Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Process Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Process Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
12 Stereotypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Benefits to Using Stereotypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
User-Defined Stereotypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Viewing Stereotypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Diagram Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Browser Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Creating Stereotypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Creating a New Stereotype for the Current Model . . . . . . . . . . . . . . . . . . . . . . 183
Creating a New Stereotype Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . 183
Creating a New Stereotype for All Rose Models . . . . . . . . . . . . . . . . . . . . . . . 184
Creating Stereotype Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Creating a Diagram Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Creating Diagram Toolbox and List View Icons . . . . . . . . . . . . . . . . . . . . . . . . 186
Adding Stereotypes to the Diagram Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Subsystem Stereotype Package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Subsystem Stereotype Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
13 Framework Wizard Add-In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Activating the Framework Wizard Add-In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Creating a New Model from a Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Creating and Deleting Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
The Framework Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Creating a New Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Changing or Deleting a Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
14 Type Library Importer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
What Is a Type Library? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Why Would I Want to Import Type Libraries into the Model? . . . . . . . . . . . . . . . . . 196
What COM Components Can Be Imported into the Model?. . . . . . . . . . . . . . . . . . 196
How Is a Type Library Presented? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
A Type Library in Rational Rose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Type Library in the OLE Viewer in Visual Studio . . . . . . . . . . . . . . . . . . . . . . . 202
Type Library in the Object Browser in Visual Basic . . . . . . . . . . . . . . . . . . . . . 202
Importing a Type Library into the Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Importing a New Version of an Existing Type Library . . . . . . . . . . . . . . . . . . . . . . . 204
Hiding Type Library Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Show Hidden Items Selected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Show Hidden Items Cleared . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Using an Imported Type Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Adding Class Members to a Quick Import Type Library . . . . . . . . . . . . . . . . . . . . . 207
Customizing the Type Library Importer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Contents xiii
A Upgrading from a Previous Release . . . . . . . . . . . . . . . . . . . . . . . 211
Upgrading from Rational Rose 3.0 or Later . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Upgrading from Releases Prior to Rational Rose 3.0 . . . . . . . . . . . . . . . . . . . . . . . 211
Understanding Petal File Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
xiv Contents
Figures
Figures xv
Figure 37 Generalize Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . 89
Figure 38 Realize Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Figure 39 Dependency Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . 91
Figure 40 Has Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Figure 41 Has Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Figure 42 Key/Qualifier Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . 94
Figure 43 Use Case Diagram Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Figure 44 Use-Case Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . 101
Figure 45 Use-Case Specification—Diagram Tab . . . . . . . . . . . . . . . . . . . . . . . . 102
Figure 46 Use-Case Specification—Relations Tab . . . . . . . . . . . . . . . . . . . . . . . 103
Figure 47 Generalize Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . 104
Figure 48 State Machine Specification—General Tab . . . . . . . . . . . . . . . . . . . . . 108
Figure 49 Automatic Transmission Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Figure 50 Objects on an Activity Diagram Sample . . . . . . . . . . . . . . . . . . . . . . . 116
Figure 51 Object Flow Sample. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Figure 52 CD Player Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Figure 53 Swimlane Specification—General Tab. . . . . . . . . . . . . . . . . . . . . . . . . 120
Figure 54 State and Activity Specification—General Tab . . . . . . . . . . . . . . . . . . 121
Figure 55 State and Activity Specification—Actions Tab . . . . . . . . . . . . . . . . . . . 122
Figure 56 State and Activity Specification—Transitions Tab . . . . . . . . . . . . . . . . 123
Figure 57 State and Activity Specification—Swimlanes Tab . . . . . . . . . . . . . . . . 124
Figure 58 State Transition Specification—General Tab . . . . . . . . . . . . . . . . . . . . 126
Figure 59 State Transition Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . 127
Figure 60 Decision Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . 128
Figure 61 Decision Specification—Transitions Tab . . . . . . . . . . . . . . . . . . . . . . . 129
Figure 62 Decision Specification—Swimlanes Tab . . . . . . . . . . . . . . . . . . . . . . . 130
Figure 63 Synchronization Specification—General Tab. . . . . . . . . . . . . . . . . . . . 131
Figure 64 Synchronization Specification—Transitions Tab . . . . . . . . . . . . . . . . . 132
Figure 65 Object Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Figure 66 Object Specification—Incoming Object Flows Tab . . . . . . . . . . . . . . . 134
Figure 67 Object Specification—Outgoing Object Flows Tab . . . . . . . . . . . . . . . 135
Figure 68 Object Flow Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . 136
Figure 69 Collaboration Diagram Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Figure 70 Sequence Diagram Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Figure 71 Collaboration Diagram Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Figure 72 Sequence Diagram Toolbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Figure 73 Multiple Object Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Figure 74 Focus of Control Diagram Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Figure 75 Object Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Figure 76 Class Instance Specification—General Tab. . . . . . . . . . . . . . . . . . . . . 153
Figure 77 Link Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
xvi Figures
Figure 78 Link Specification—Messages Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Figure 79 Message Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . 158
Figure 80 Message Specification—Detail Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Figure 81 Component Diagram Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Figure 82 Component Diagram Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Figure 83 Component Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . 163
Figure 84 Component Specification—Detail Tab. . . . . . . . . . . . . . . . . . . . . . . . . 164
Figure 85 Component Specification—Realizes Tab . . . . . . . . . . . . . . . . . . . . . . 165
Figure 86 Package Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . 167
Figure 87 Package Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Figure 88 Deployment Diagram Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Figure 89 Deployment Diagram Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Figure 90 Processor Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . 171
Figure 91 Processor Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Figure 92 Device Specification—General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Figure 93 Device Specification—Detail Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Figure 94 Process Specification—General Tab. . . . . . . . . . . . . . . . . . . . . . . . . . 176
Figure 95 Options Dialog Box—Diagram Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Figure 96 Options Dialog Box—Browser Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Figure 97 Subsystem Stereotype Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Figure 98 Create New Model Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Figure 99 Framework Wizard Specification Page . . . . . . . . . . . . . . . . . . . . . . . . 192
Figure 100 Framework Wizard Summary Page. . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Figure 101 Component View of the Microsoft Scripting Runtime Type Library . . . 197
Figure 102 Component Overview Diagram for a Model . . . . . . . . . . . . . . . . . . . . 197
Figure 103 Logical View of the Microsoft Scripting Runtime Type Library . . . . . . 198
Figure 104 Overview Diagram of the Microsoft Scripting Runtime Type Library . . 199
Figure 105 OLE Viewer in Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Figure 106 Object Browser in Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Figure 107 Type Library with Show Hidden Items Option Selected . . . . . . . . . . . 205
Figure 108 Type Library with Show Hidden Items Option Cleared . . . . . . . . . . . . 206
Figure 109 COM Properties Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Figures xvii
Tables
Tables xix
Preface
This manual provides an introduction to Rational Rose. Rational Rose is the visual
modeling tool that is part of a comprehensive set of tools that embody software
engineering best practices and span the entire software development life cycle.
Rational Rose helps improve communication both within teams and across team
boundaries, reducing development time and improving software quality.
Audience
This guide is intended for all users of Rational Rose, including administrators,
analysts, architects, and developers.
Other Resources
■ Online Help is available for Rational Rose and its add-ins. In Rational Rose, select
an option from the Help menu.
■
Manuals for Rational Rose and its add-ins are available. All manuals are available
online in either HTML or PDF format. The online manuals are on the Rational
Solutions for Windows Online Documentation CD.
■
A Rational Rose tutorial is available for Rational Rose. The tutorial is on the
Rational Solutions for Windows Online Documentation CD.
■
For more information on training opportunities, see the Rational University Web
site: http://www.rational.com/university.
xxi
Contacting Rational Technical Support
If you have questions about installing, using, or maintaining this product, contact
Rational Technical Support as follows:
Note: When you contact Rational Technical Support, please be prepared to supply the
following information:
■ Your name, telephone number, and company name
■
Your computer’s make and model
■
Your operating system and version number
■
Product release number and serial number
■
Your case ID number (if you are following up on a previously-reported problem)
xxii Preface
Introduction to Visual
Modeling Using Rational
Rose
1
Rational Rose provides support for two essential elements of modern software
engineering: component-based development and controlled iterative development.
While these concepts are conceptually independent, their usage in combination is
both natural and beneficial.
Rational Rose’s model-diagram architecture facilitates use of the Unified Modeling
Language (UML), Component Object Modeling (COM), Object Modeling Technique
(OMT), and Booch ‘93 method for visual modeling. Using semantic information
ensures correctness by construction and maintaining consistency.
Visual Modeling
Increasing complexity, resulting from a highly competitive and ever-changing
business environment, offers unique challenges to system developers. Models help
you organize, visualize, understand, and create complex things.
Visual modeling is the mapping of real world processes of a system to a graphical
representation. Models are useful for understanding problems, communicating with
everyone involved with the project (customers, domain experts, analysts, designers,
etc.), modeling complex systems, preparing documentation, and designing programs
and databases. Modeling promotes better understanding of requirements, cleaner
designs, and more maintainable systems.
As software systems become more complex, we cannot understand them in their
entirety. To effectively build a complex system, the developer begins by looking at the
big picture without getting caught up in the details. A model is an ideal way to
portray the abstractions of a complex problem by filtering out nonessential details.
The developer must abstract different views or blueprints of the system, build models
using precise notations, verify that the models satisfy the requirements of the system,
and gradually add detail to transform the models into an implementation.
The models of a software system are analogous to the blueprints of a building. An
architect could not design a structure in its entirety with one blueprint. Instead a
blueprint is drawn up for the electrician, the plumber, the carpenter, and so on. When
designing a software system, the software engineer deals with similar complexities.
Different models are drawn up to serve as blueprints for marketing, software
1
developers, system developers, quality assurance engineers, etc. The models are
designed to meet the needs of a specific audience or task, thereby making them more
understandable and manageable.
Visual modeling has one communication standard: the Unified Modeling Language
(UML). The UML provides a smooth transition between the business domain and the
computer domain. Using the UML, all members of a design team can work with a
common vocabulary, minimizing miscommunication and increasing efficiency.
Visual modeling captures business processes by defining the software system
requirements from the user’s perspective. This streamlines the design and
development process. Visual modeling also defines architecture by providing the
capability to capture the logical software architecture independent of the software
language. This method provides flexibility to your system design since the logical
architecture can always be mapped to a different software language. Finally, with
visual modeling, you can reuse parts of a system or an application by creating
components of your design. These components can then be shared and reused by
different members of a team allowing changes to be easily incorporated into already
existing development software.
Features
Rational Rose provides the following features to facilitate the analysis, design, and
iterative construction of your applications:
■
Use-Case Analysis
■
Object-Oriented Modeling
■ User-Configurable Support for UML, COM, OMT, and Booch ‘93
■ Semantic Checking
■
Support for Controlled Iterative Development
■
Round-Trip Engineering
■ Parallel Multiuser Development Through Repository and Private Support
■ Integration with Data Modeling Tools
■
Documentation Generation
■ Rational Rose Scripting for Integration and Extensibility
■
OLE Linking
■
OLE Automation
■ Multiple Platform Availability
Notations 3
Extending Rational Rose
The add-in feature allows you to quickly and accurately customize your Rational Rose
environment depending on your development needs. Using the add-in tool, you can
install language (for example, Visual Basic, Visual Java) and non-language (for
example, Microsoft Project) tools while in Rational Rose.
When an add-in is installed, it is automatically in an activated state. Add-ins can
install:
■ Menus (.mnu file)
■
Help files (.hlp file)
■
Contents tab files (.cnt file)
■
Properties (.pty file)
■
Executables (.exe)
■
Script files (.ebs script source file and .ebx compiled script file)
■
OLE servers (.dll file)
Additionally, an add-in can define fundamental types, predefined stereotypes, and
metafiles. Note that an add-in is not to be considered strictly a one-to-one association
with a round-trip engineering (RTE) integration.
Add-In Manager
The Add-In Manager allows you to control the state of the add-in, whether it is
activated or deactivated. If the add-in is deactivated, it is still visible through the
Add-In Manager. However, the add-in’s properties and menus are not available.
Installing an Add-In
Use the following steps to install an add-in on your Windows 95, Windows 98, or
Windows NT system:
1 Exit Rational Rose.
2 Insert the CD ROM or the application that you wish to install.
3 Run the setup.exe program.
4 Respond to the dialogs to complete your installation.
5 Restart Rational Rose. Confirm that your add-in is activated using the Add-In
Manager menu.
5
Application Window
An application window contains a title bar, menu bar, toolbar, and a work area where
the toolbox, browser, documentation window, diagram window, and specification
window appear.
Browser
Title Bar
The title bar always displays the diagram type. Additional information (like the view
or diagram name) is often displayed depending on the diagram/model being viewed.
The title bar includes a Control-Menu box, Minimize button, Restore button, and
Close button.
Control-Menu Box
Clicking the Control-Menu box (on the application or diagram window) displays a
menu with the following commands:
Move Highlights the border of the window. Move your pointer to the Title
Bar, click and drag the window to the desired location.
Menu Bar
The menu bar changes depending on which diagram you are working. For a
description of each menu and command, refer to the Rational Rose online Help.
Toolbar
The standard toolbar is displayed directly under the menu bar, along the top of the
application window. This toolbar is independent of the open diagram window.
The following icons are available for use on the standard toolbar.
New Model
Clicking the New Model icon creates a new model.
Open Model
Clicking the Open Model icon opens the Load Model dialog box. You can open a model
from anywhere within the design.
New and Open icons: If you have a model open when you click either the New
or Open icon, you are prompted to save your current model. Clicking No
discards all changes since your last save. Clicking Yes saves your changes and
either opens a new model or displays the Load Model dialog box.
Application Window 7
Save Model or Log
Clicking the Save Model icon opens the Save Model to dialog box. Enter a new file
name. After the model is named and saved, clicking this icon automatically saves
your changes to the current model without displaying the dialog box. This will also
save the log if the log window is open.
Cut
Clicking the Cut icon removes icons from your model. Element(s) must be selected to
activate the icon. Cutting an element will also cut associated relationships. You can
cut multiple selected items.
Copy
Clicking the Copy icon copies an element to a new location on the same model, or to a
new model, without affecting the original model.
Paste
Clicking the Paste icon pastes a previously cut or copied element on the Clipboard
onto another location.
Print Diagrams
Clicking the Print icon prints diagrams to the default printer.
View Documentation
Clicking the View Documentation icon displays the documentation window on the
diagram.
Browse Parent
Clicking the Browse Parent icon displays the “parent” of the selected diagram or
specification. If you have a specification selected, the specification for the parent of the
“named” item is displayed.
Zoom In
Clicking the Zoom In icon magnifies the current diagram to view an area in detail.
Zoom Out
Clicking the Zoom Out icon minimizes the current diagram allowing you to view more
information.
Fit in Window
Clicking the Fit in Window icon centers and displays a diagram within the limits of the
window. This command changes the zoom factor so that the entire diagram appears.
Application Window 9
Undo Fit in Window
Clicking the Undo Fit in Window icon undoes the actions performed on the previous Fit
In Window command.
Help Topics
Clicking the Help Topics icon opens the online Help contents.
Toolbox
The diagram toolbox consists of tools that are appropriate for the current diagram.
Changing diagrams automatically displays the appropriate toolbox.
When a modifiable diagram window is active, a toolbox with tools appropriate for the
current diagram is displayed. If the current diagram is contained by a controlled unit
or the model is write-protected, the toolbox is not displayed.
While each diagram has a set of tools applicable for the current diagram, all toolboxes
have the Selector, Separator, and Lock icons.
Selector Icon
The selector icon is used to select icons on the diagram. This icon cannot be removed
from the toolbox.
Separator Icon
The separator icon is used to put a small space between icons on the toolbox. You can
have as many separators as you want, but you must have at least one.
Lock Icon
The lock icon can be set to locked or unlocked. In the locked mode, any tool icon stays
in the selected state until the diagram loses focus or another tool button is selected.
This option facilitates the rapid placement of several identical icons without
repeatedly returning to the diagram toolbox.
This icon is usually not displayed, but you can add it to the toolbox. Refer to
Customizing the Toolbox on page 11.
You can obtain the lock functionality without the icon through the shortcut menu or
by pressing the SHIFT key while placing an element. Releasing the SHIFT deactivates
the lock feature.
Browser
The browser is a hierarchical navigational tool that allows you to view the names and
icons of interaction, class, use case, statechart, activity, and deployment diagrams as
well as many other model elements.
When a class or interface is assigned to a component, the browser displays the
assigned component name in an extended name. The extended name is a
comma-separated list within parenthesis to the right of the class and interface name.
The extended list includes all the assigned components.
For more information about the browser, refer to The Browser on page 17.
Documentation Window
The documentation window is used to describe model elements or relationships. The
description can include such information as the roles, keys, constraints, purpose, and
essential behavior of the element. You can type information either here or through the
documentation field of a specification.
To view the documentation window, click View > Documentation. A check mark next
to documentation indicates the window is open.
Browser 11
Only one documentation window can be open at a time, but as you select different
items, the window will be updated accordingly.
When the window is first displayed, it will be docked to the lower left corner. To move
the window, click and drag on the border. The window outline indicates the window
state: a thin, crisp line indicates the window will be docked, while a thicker,
hashmark-type border indicates it will be floating.
Characteristics of the docked and floating states of the window are as follows:
Docked
■ The window can be moved within the dockable region of the model, but it remains
positioned along the border.
■ The size remains fixed.
■
The title can be displayed through a tool tip (place your pointer anywhere in the
window).
■
The window may be docked at any time.
Floating
■
The window can be moved to any location and is always displayed on top of the
diagram.
■
Size can be changed by clicking and dragging along the border in a vertical or
horizontal direction.
■
The window title displays the type (class or object) and name of the class or object.
Diagram Window
Diagram windows allow you to create and modify graphical views of the current
model. Each icon in a diagram represents an element in the model. Since diagrams are
used to illustrate multiple views of a model, each model element can appear in none,
one, or several of a model’s diagrams. This means you can control which elements
and properties appear on each diagram.
Diagrams are contained by the model elements they represent:
■
A logical package (also User Services, Business Services, and Data Services)
contains an automatically created class diagram called “Package Overview,” and
user created class diagrams, collaboration diagrams, interaction diagrams, and
three-tiered diagrams.
Overview Window
The overview window is a navigational tool that helps you move to any location on
all Rational Rose diagrams. When a diagram is larger than the viewable area within
the diagram window, it is not possible to see the whole diagram without scrolling.
The overview window provides a scaled-down view of the current diagram so you
can see the entire diagram.
To move to an exact area of your diagram, use the following steps:
1 Move the pointer over the hand located in the lower, right side of the diagram
window. Notice how the pointer appears as a + when the pointer is located over
the active hand.
2 Click on the hand icon so the overview window appears.
3 Hold down the mouse button and move the box inside the overview window to a
desired diagram location.
Note: The overview window closes automatically when you release the mouse
button.
Specification Window
A specification enables you to display and modify the properties and relationships of
a model element, such as a class, a relationship, an operation, or an activity. The
information in a specification is presented textually; some of this information can also
be displayed inside icons representing the model element in diagrams.
You can change properties or relationships by editing the specification or modifying
the icon on the diagram. The associated diagram or specification is automatically
updated.
Overview Window 13
To display a specification:
■ Right-click the icon in either the diagram or browser, and then click Open
Specification from the shortcut menu.
■
Click the icon in either the diagram or browser, and then click Browse >
Specification.
■
Double-click on the icon in either the diagram or browser. (If you have selected the
Double-Click to Diagram option in the Options dialog box, a diagram may appear
instead of a specification.)
The specifications are displayed as tabs and you can easily navigate through them.
Tab Description
Layout Allows you to select layout settings for printing diagrams and
specifications.
Print Preview
The print preview option allows you to see how a diagram will appear when printed.
Also, print preview displays the total number of pages the diagram will take to print
on the status bar.
Next, press the OK button to locate the diagram. Then, with the diagram selected,
press OK from the Print dialog box to print the diagram.
To search for a diagram or a specification in the Apply Filter dialog box, you can use
the * (asterisk) wildcard character. For example:
■
A* matches any name beginning with the letter A
■
*A matches any name ending with the letter A
■ *A* matches any name containing the letter A
Windows NT C:\WINNT\Profiles\<<username>>\Application
Data\Rational\Rose\6.0
3 Make your changes to the rose.ini file. For more information on the rose.ini file,
refer to the Rose.ini Settings (Overview) topic in the online Help.
4 Save and close the rose.ini file.
5 Restart Rose.
Browser
17
Hiding and Displaying the Browser
To hide (or display) the browser window, click View > Browser. A check mark next to
the word Browser indicates the browser is visible.
Navigating a Model
The browser provides a visual representation of your model’s hierarchy. As you make
changes in a diagram window or in the browser window, the windows remain
synchronized:
■
To display a diagram window, double-click on its name or icon in the browser
window.
■
To display an item’s specification, double-click on the item in the browser or in a
diagram window. (Any changes you make to the specification are automatically
reflected in both the browser and the diagram).
Collapsed Tree
Expanded Tree
Navigating a Model 19
Creating and Editing Model Elements
You can use the drag-and-drop capabilities in the browser to create and edit model
elements in two ways:
■
Drag-and-drop one item in the browser to another item in the browser. Your
diagram will automatically be updated to reflect the changes in the browser.
■
Drag-and-drop elements from the browser to the appropriate diagrams.
■ If the class belongs to a parent different from the diagram, and Show Visibility is on,
the class is annotated with the term ‘(from x)’ where x is the class’ location. If Show
Visibility is off, only the class name is displayed.
Capability Description
Add ■
Class to class diagram
■ Logical package to class diagram
■
Component to component diagram
■
Component package to component diagram
Assign ■
Component to class and interface
■ Class and interface to component
■
Logical package to component package
Move ■
Class diagram to logical package
■ Interaction diagram to logical package
■
Collaboration diagram to logical package
■
Component diagram to component package
■ State/activity model to the logical or use-case view
■
Process to processor
■
Activities and states to different state machines
Relocate ■
Class and interface to logical package
■ Class to nested class
■
Logical package to logical package
■
Component to component package
■ Component package to component package
■
Use case to package
a. The default action is Move. To Copy, hold down the CTRL key while dragging the
element to its destination.
Capability Description
Add ■
Class and interface to class diagram
■
Logical package to class diagram
■ Component to component diagram
■
Component package to component diagram
■
Processor to deployment diagram
■ Device to deployment diagram
■
Add activities and objects to activity diagrams
Assign ■
Component to class and interface
■ Class and interface to component
■
Component package to package
■
Logical package to component package
Move/Copya ■
Operation to class and interface
■ Class attribute to class and interface
Relocate ■
Class to logical package
■
Logical package to logical package
■ Component to component package
■
Component package to component package
Create Object ■
Class in interaction diagram
■
Class in collaboration diagram
a. The default action is Move. To Copy, hold down the CTRL key while dragging the
element to its destination.
Capability Description
Assign ■
Class and interface to/from Component Specification
Realizes tab
■
Component to Class Specification Components tab
Move/Copy ■
Operations to/from Class Specification Operations tab
■
Attributes to/from Class Specification Attribute tab
Diagram Windows
In a diagram window, you can create and modify graphical views of the model.
Rational Rose supports the following kinds of diagrams:
■
Class diagram
■
Use-case diagram
■ Collaboration diagram
■
Sequence diagram
■
Component diagram
■ Statechart diagram
■
Deployment diagram
■
Activity diagram
Each icon on a diagram represents an element in the model. Since diagrams illustrate
multiple views of a model, each model element can appear in none, one, or several of
a model’s diagrams. You can control which elements and properties appear on each
diagram.
To add icons to a diagram, click Tools > Create and click one of the model elements.
Click the diagram to place the element.
25
Viewing Diagrams
When a diagram is opened, it is displayed in a window within the application
window. This diagram window has its own control-menu box, title bar, minimize
button, and maximize button. Each diagram window also has vertical and horizontal
scroll bars for panning across diagrams larger than the window. The application
window presents a toolbox that contains tools appropriate for the current diagram.
Vertical
Scroll Bar
Toolbox
Horizontal
Scroll Bar
You can resize a diagram window by using the left mouse button to drag a side or
corner of the diagram’s border. You can reduce a diagram to an icon by clicking its
minimize button.
The shaded title bar indicates that it is the current diagram. Diagram-specific
commands apply to the current diagram, and the application window displays the
toolbox associated with the current diagram. Menu commands and toolbox icons not
appropriate for the current diagram are dimmed and cannot be used. You can make a
diagram “current” by clicking it.
Diagram Windows 27
Creating, Linking, Displaying, Renaming, and Deleting
Diagrams
Linking a Diagram
You can link one diagram to another diagram through the note icon. This feature
works somewhat like the shortcut method you may be familiar with in the Windows
operating environment. Once the diagram is linked, you can double-click the note and
the linked diagram is immediately displayed. A linked diagram is indicated by
underlined text in the note.
1 Create a note on any diagram.
2 Display the browser if not already visible.
3 In the browser, locate the diagram that you want to link.
4 Drag the diagram icon from the browser onto the note icon on the diagram.
As you position the cursor onto the note, you will see the shortcut symbol (a
dotted square and a curved arrow inside a solid square). Also, the fully qualified
name is displayed in an underline font.
Note: You may need to resize the note to see the entire name.
5 Change the text in the note (if desired) to something more meaningful to your
project.
6 Double-click the note to view the linked diagram.
Renaming a Diagram
Note: You cannot rename a deployment diagram.
1 Click Browse > xxx Diagram, where xxx is the diagram type.
2 In the resulting dialog box, select the package containing the diagram from the list
on the left.
3 Select the diagram from the list on the right.
4 Click Rename.
5 Type a new diagram title.
6 Click OK.
Deleting a Diagram
1 Click Browse > xxx Diagram, where xxx is the diagram type.
2 In the resulting dialog box, select the package containing the diagram from the list
on the left.
3 Select the diagram from the list on the right.
4 Click Delete.
5 Click Yes on the confirmation box.
The element is now named with a duplicate name, but has its own unique
characteristics.
If double-clicking a logical package icon displays the main class diagram, click Tools >
Options, and then click the Diagram tab. Clear the Double-Click to Diagram check box.
With this option turned off, double-clicking a package will display the specification.
Selecting Icons
To select a single icon:
■
Left-click the icon to be selected.
Rational Rose displays the icon’s selection handles and deselects all other icons.
To select multiple icons:
■
Press and hold the CONTROL or SHIFT key and click each icon to be selected.
- or -
1 Point near the border of one of the icons to be selected.
2 Left-drag to create a dashed selection box around the icons you want to select.
3 Release the left mouse button.
Rational Rose displays each icon’s selection handles, and deselects all other icons.
Figure 9 shows multiple elements selected in a diagram:
Deselecting Icons
To deselect all icons:
■
Click any open area of the diagram.
Manipulating Icons 33
To deselect a specific icon:
1 Press and hold the CONTROL or SHIFT key.
2 Click the icon.
Other icons that were previously selected remain selected.
Resizing an Icon
1 Click the icon to be resized.
2 Choose the appropriate selection handle and left-drag to the new dimension.
Rational Rose redraws the icon at the new size, preserving its proportions. To
change the proportions of an icon, press the CTRL key while resizing it.
Manipulating Icons 35
Deleting Model Elements
There are two ways to delete model elements in Rational Rose: you can perform a
shallow delete or a deep delete. A shallow delete removes the element icon from a
diagram. A deep delete removes model elements from a model completely.
Shallow Delete
A shallow delete is useful when you want to remove a model element icon from a
diagram but keep the model element in the model. A shallow delete keeps the model
element in the browser and removes the icon of the element from the diagram.
To perform a shallow delete on a selected model element that appears on a diagram:
■ Click Edit > Delete.
■
Press DELETE.
Note: If you perform a shallow delete on an element without a name, Rational Rose
will delete the model element completely from the model.
Deep Delete
A deep delete is useful when you want to remove a model element completely from a
model.
To perform a deep delete on a selected diagram model element(s):
■ Click Edit > Delete from Model.
■
Press CTRL + D.
■
Right-click an element in the browser and then click Delete from the shortcut
menu.
Correlations 37
Reconnecting a Correlation Icon from One Icon to Another
1 Point to the end you want to reconnect.
2 Left-drag to the new icon.
3 Release the left mouse button.
Rational Rose redraws the relationship between the two icons and updates the model
to reflect the change, or reports an error if the change is not legal.
Naming a Correlation
To name a newly-created correlation:
1 Click the icon.
2 Type the name.
3 Click outside the named icon.
To change the name of a correlation:
1 Click the name to display a flashing vertical bar that designates the insertion point.
2 Backspace and type additional text.
3 Click outside the named icon.
Alternatively, you can change the name in the Name field of the specification.
Before clicking
Format > Layout Diagram
After clicking
Format > Layout Diagram
When you perform a layout command, Rational Rose follows these two rules:
■ Shapes that have relationships with other shapes are rearranged based on their
relationship(s) in the diagram. Refer to the Layout Diagram (Overview) topic in
the online Help for more information.
■
Shapes that do not have relationships (called “unconnected shapes”) are placed in
one or more rows at the bottom of the diagram or selected area. Examples of
unconnected shapes include any element (e.g., class, actor, package) that does not
have a relationship to another element, notes that are not attached to elements, and
text boxes created with the ABC Text tool.
Manipulating Text
To change the default font parameters:
1 Ensure that nothing is selected by clicking an empty region in any diagram.
2 In the Options dialog box, click Font or Font Size. The default font parameters
apply to all diagrams.
Note: Rational Rose stores all workspace files (*.wsp) in the workspaces folder.
Note: Rational Rose stores all workspace files (*.wsp) in the workspaces folder.
Displaying Specifications
You can display a specification in the following ways:
■
Double-click an item in a diagram or browser.
■
Click a diagram item, and then click Browse > Specification.
■
Right-click an item, and then click Open Specification from the shortcut menu.
■
Select the diagram item, and press CTRL+B.
Rational Rose displays a specification that corresponds to the selected item.
In order to view a specification when you double-click a logical or component
package, you must turn off the Double-Click to diagram option. To disable this option,
click Tools > Options. Click the Diagram tab. A check mark inside the Double-Click to
diagram check box indicates the main diagram will be displayed when you
double-click. If there is no check mark in the check box, double-clicking a logical or
component package displays the package specification.
45
Custom Specifications
When you open the specification of an element that has an assigned language, a
custom specification will be displayed if supported. If not supported, the standard
Rose specification will be displayed.
The following specifications can be customized by language add-ins:
■
Association
■ Class
■ Class Attribute
■
Generalize
■ Key/Qualifier
■
Parameter
■
Operation
■
Component
■
Class Instance
Editing Specifications
If you change a model element’s properties or relationships by editing its specification
or modifying the icons on the diagram, Rational Rose will automatically update the
corresponding diagrams or specifications.
If a model element is write-protected or contained by a controlled unit that is
write-protected, the OK button on the specification will be disabled to prevent the
element from being modified.
Specifications can be resized by placing the pointer on a specification corner. Click
and drag the specification to the desired size.
Specifications can also be printed by clicking File > Print.
Dialog Boxes
All specifications are presented in a dialog box format and contain tabs for navigating
to specific pages or items. You can resize all specifications.
General Tab
The first tab presented in all specifications is labeled General and usually contains
information such as Name and Documentation.
Documentation
Use the Documentation field to describe relationships. The description can include
such information as the roles, keys, constraints, purpose, and essential behavior of the
element. You can enter information in the Documentation field in one of two ways:
■
Enter text directly in the free-form text field.
■ Click View > Documentation.
Rational Rose does not display this field in the diagram.
Note: If you document a class and identify the concepts or functions represented by
the entity, you can use the field to form a basis of a more traditional data dictionary.
You can also list the statements of obligation to provide certain behavior with the
class. You can use this entry as a placeholder for the responsibilities of the class that
you will determine during development.
Files Tab
The Files tab allows you to insert new files or URLs, or view files and URLs already
inserted or attached to your model element or diagram.
The Files tab is useful for maintaining links to supplemental documentation about the
system being built (Vision Documents, GUI sketches, project plans, etc.).
Any attached URLs or files listed here are also displayed when the element or
diagram is expanded in the browser.
OK
Clicking OK applies the changes made to the specification, closes the dialog box, and
returns focus to the diagram.
Cancel
Clicking Cancel ignores all changes made to the specification since the last Apply,
closes the dialog box, and returns focus to the diagram.
Apply
Clicking Apply enacts the changes made to the specification and leaves the
specification open.
Changes to a Specification field are not enacted until you click OK or Apply. These
buttons are disabled if the model element is assigned to a controlled unit that is
write-protected.
Browse
Clicking Browse displays four choices:
■
Select in Browser, which highlights the selected item in the browser.
■
Browse Parent, which opens the specification for the parent of the selected item.
■
Browse Selection, which opens the specification for the currently selected item.
■ Show Usage, which displays a list of all diagrams in which the currently selected
element is the supplier, or in the case of a collaboration diagram, a list that shows
the usage of a message.
Help
Clicking Help invokes the online Help topic related to the dialog box.
Editing Entries
To edit a column in a row, select the column and press F8 or select the column twice
with the pointer. Enter text into the column or select an entry from the drop-down
menu (if available). After the column has been edited, either accept the change (by
clicking outside the column or by pressing the ENTER or TAB key) or cancel the
addition (by pressing the ESC key).
To open the specification for an element displayed in a list, select the row and column
and click Specification from the shortcut menu or double-click the column. For
example, double-clicking the Name column in the Relations tab of the class
specification will open the specification for the relation, while double-clicking the End
Class column in the same list will open the specification of the related class.
To reorder the rows in a list, select the row to be moved and drag it to the new location
in the list. It is not possible to reorder rows in every list tab. To move an element in a
list to another specification, the browser, or to an open diagram, select the row and
drag it to the new location.
Class diagrams contain icons representing classes, interfaces, and their relationships.
You can create one or more class diagrams to depict the classes at the top level of the
current model. Such class diagrams are themselves contained by the top level of the
current model. You can also create one or more class diagrams to depict classes
contained by each package in your model. Such class diagrams are themselves
contained by the package enclosing the classes they depict. The icons represent logical
packages and classes in class diagrams.
53
You can change properties or relationships by editing the specification or modifying
the icon in the diagram. The associated diagrams or specifications are automatically
updated.
Selector Text
Note Note Anchor
Class Interface
Unidirectional
Association Class
Association
Package Dependency
Actor Aggregation
Specification Content
The Class Specification consists of the following tabs: General, Detail, Operations,
Attributes, Relations, Component, Nested, and Files.
Type
Your Type choices include: Class, Parameterized Class, Instantiated Class, Class
Utility, Parameterized Class Utility, Instantiated Class Utility, and Metaclass.
Parent
The parent to which the class belongs (its package) is displayed in this static field.
Stereotype
A stereotype represents the subclassification of an element. It represents a class within
the UML metamodel itself; that is, a type of modeling element. Some stereotypes are
already predefined. You can also define your own stereotypes.
Stereotypes can be shown in the browser and on diagrams. The name of the
stereotype may appear in angle brackets <<>>, depending on the settings found in
either the Diagram or Browser tabs of the Options dialog box. Click Tools > Options to
display the Options dialog box. Refer to the Stereotypes chapter for more information
on stereotypes.
To show stereotypes on the diagrams, right-click a class, and then click Options >
Stereotype Display > None, Label, Decoration, or Icon from the shortcut menu. These
commands display the following information.
Command Description
Label The name of the stereotype is displayed between angle brackets (for example,
<<stereotype>>).
Decoration A small icon is displayed in the class icon to indicate the stereotype.
Class Specification 57
Export Control
The Export Control field specifies how a class and its elements are viewed outside of
the defined package.
Option Description
Public The element is visible outside of the enclosing package and you can
import it to other portions of your model. Operations are accessible to
all clients.
Protected The element is accessible only to subclasses, friends, or the class itself.
Private The element is accessible only to its friends or to the class itself.
The Export Control field can be set only in the specification. No special annotation is
related to access control properties.
To change the export control type for the class, click the appropriate option in the
Export Control field. You can display the implementation export control in the
component compartment. You can display visibility in an icon through the shortcut
menu.
Class Specification 59
Cardinality
The Cardinality field specifies the number of expected instances of the class. In the case
of relationships, this field indicates the number of links between each instance of the
client class and the instance of the supplier. You can set a specific cardinality value for
the client class, supplier class, or both.
Use the following syntax to express cardinality.
Type Description
To display class cardinality on an icon, right-click the icon and select a cardinality
through the shortcut menu. A literal value can only be specified on the specification.
Space
Use the Space field to document the amount of storage required by objects of the class
during execution.
Type Description
Persistent (Default) The state of the element transcends the lifetime of the
enclosing element.
The persistence of an element must be compatible with the persistence that you
specified for its class. If a class persistence is set to Persistent, then the object
persistence is either persistent, static, or transient. If a class persistence is set to
Transient, then the object persistence is either static or transient.
You can set the persistence only through the specification. This field is inactive for
class utilities, parameterized class utilities, and instantiated class utilities.
To set the persistence, click the applicable option in the Persistence field. You can
display the persistence in the diagram by clicking Show Persistence from the shortcut
menu.
Class Specification 61
Concurrency
A class concurrency defines its semantics in the presence of multiple threads of
control.
Type Description
Abstract
The Abstract check box identifies a class that serves as a base class. An abstract class
defines operations and states that will be inherited by subclasses. This field
corresponds to the abstract class adornment displayed inside the class icon.
To toggle the abstract adornment, select or clear the abstract check box in the Class
Specification.
When you click Abstract and you view the model in Booch notation, the abstract class
adornment is displayed in the lower left corner of the class icon.
You can change the abstract class adornment only through the specification.
The Abstract field is inactive for metaclasses, class utilities, parameterized class
utilities, and instantiated class utilities.
Formal Arguments
In the Parameterized Class or Parameterized Class Utility Specification, the formal,
generic parameters declared by the class or class utility are listed.
In the Instantiated Class or Instantiated Class Utility Specification, the actual arguments
that match the generic parameters of the class being instantiated are listed.
Class Specification 63
To enter an operation in the Class Specification, use Insert from the shortcut menu.
Rational Rose adds the operation name to the operations list.
The descriptions for each field on the Operations tab are discussed below:
■
Access Control Adornment (Unlabeled):
The Operation tab is active for all class types. In the class diagram, you can display
operation names in the class compartment.
Show Inherited
Select the Show Inherited check box to see operations inherited from other classes. If
there is no check mark in this field, you can view only operations associated with the
selected class.
Refer to the descriptions earlier in this chapter and in the Introduction to Specifications
chapter for information on the specification elements not covered in the following
section.
The Rational Unified Process asserts that attributes are data values (string or integer)
held by objects in a class. Thus, the Attributes tab lists attributes defined for the class
through the Class Attribute Specification.
You can add an attribute relationship through Insert on the shortcut menu or by
pressing the INSERT key. An untitled entry is added.
Attributes and relationships created using this technique are added to the model, but
do not automatically appear in any diagrams.
Class Specification 65
The descriptions for each field are discussed below:
■ Access Control Adornment (Unlabeled):
Class Specification 67
Class Specification—Component Tab
Component Name
The component list identifies the components to which this class is assigned (with a
check mark). A class can be assigned to a note or to several components with the same
implementation language assigned.
You can assign the class to a component through Assign on the shortcut menu or by
dragging a component from the browser and dropping it in the list.
Package Name
This field displays the package that the component belongs to.
Refer to the descriptions earlier in this chapter and in the Introduction to Specifications
chapter for information on the specification elements not covered in the following
section.
Class Specification 69
A nested class is typically used to implement functionality for the parent class. In
many designs, a nested class is closely coupled to the parent class and is often not
visible outside of the parent class. For example, think of your computer as a parent
class and its power supply as a nested class. While the power supply is not visible
outside the computer, the task it completes is crucial to the overall functionality of the
computer.
Note: Nested classes can be cut and pasted.
Specification Content
The Class Attribute Specification consists of the following tabs: General and Detail.
Refer to the descriptions earlier in this chapter and in the Introduction to Specifications
chapter for information on the specification elements not covered in the following
section.
Class
The class to which the attribute belongs is displayed in this static field.
Show Classes
Select the Show Classes check box to list all classes defined in the model and any
fundamental types that reside in the model.
If you clear this check box, the selection lists include only the fundamental types that
reside in the model.
Type
Attribute types can either be classes or language-specific types. When the attribute is a
data value, the type is defined as a language-specific type. You can enter the type in
the Type field of the Class Attribute Specification. Rational Rose displays the type
beside the attribute name in the class icon and updates the information in the model.
Containment
Physical containment plays a role in the construction and destruction of an
aggregate’s parts through semantics. The specification of physical containment is
necessary for meaningful code generation from the model.
You can set one of the following types of physical containment.
Type Description
Unspecified (default) The type of physical containment has not been specified.
Static
Select the Static check box to specify that the client class, not the client’s instances,
owns the supplier class. In the case of an attribute, a static attribute is an attribute
whose value is common to a class of objects rather than a value peculiar to each
instance.
You can set this field in the specification or through the shortcut menu.
Derived
The Derived check box indicates whether the element was computed (derived) or
implemented directly.
To define a element as derived, select the Derived check box. The element name is
adorned by a “/” in front of the name.
Operation Specification
You should complete one Operation Specification for each operation that is a member
of a class and for all free subprograms.
If you change the property of a class operation by editing its specification, Rational
Rose will update all class diagrams containing icons representing that class.
To access the Operation Specification, select an entry on the Operation tab of the Class
Specification and double-click the entry or click Insert from the shortcut menu. You
can also bring the specification up through the shortcut menu.
Specification Content
The Operation Specification consists of the following tabs: General, Detail,
Preconditions, Semantics, Postconditions, and Files.
Return Type
For operations that are functions, set this field to identify the class or type of the
function’s result. If Show classes is checked, the list box displays all the classes in the
package. If Show classes is not checked, only the predefined set of return class types is
displayed.
If you enter a class name and it does not exist in your model, the application does not
create one.
Operation Specification 75
Operation Specification—Detail Tab
Arguments
This field contains a list of the arguments of the operation. You may express these
arguments in your selected implementation language.
The argument list can be rearranged with the click and drag technique. Select an
argument from the list, drag it to the location, and release. The list will reflect the new
order.
Protocol
This field lists a set of operations that a client can perform on an object and the legal
orderings in which they might be invoked. The protocol of an operation has no
semantic impact.
Exceptions
This field contains a list of the exceptions that can be raised by the operation. Enter the
name of one or more classes identifying the exception.
Size
This field identifies the relative or absolute amount of storage consumed by the
invocation of the operation.
Time
This field contains a statement about the relative or absolute time required to
complete an operation. Use this field to budget time for the operation.
Concurrency
This field denotes the semantics in the presence of multiple threads of control. The
Concurrency field shows the concurrency for the elements of a class. The concurrency
of an operation should be consistent with its class.
Type Description
Operation Specification 77
You can set the concurrency of a class only through the Class Specification. The
Concurrency field is inactive for class utilities, parameterized class utilities, and
instantiated class utilities.
To change the concurrency, click an applicable option in the Concurrency field. You
can display the concurrency in the class diagram by clicking Show Concurrency from
the shortcut menu.
Preconditions
Invariants that are assumed by the operation (the entry behavior of an operation) are
listed.
Interaction Diagram
Select an interaction diagram from the list that illustrates the appropriate semantics.
Semantics
The action of the operation is shown in this area.
Interaction Diagram
Select an interaction diagram from the list box that illustrates the appropriate
semantics.
Operation Specification 79
Operation Specification—Postconditions Tab
Postconditions
Invariants that are satisfied by the operation (the exit behavior of an operation) are
listed in this area.
Interaction Diagram
Select an interaction diagram from the list box that illustrates the appropriate
semantics.
Specification Content
The Parameter Specification consists of the General tab.
Parameter Specification 81
Parameter Specification—General Tab
Default
The default field may contain a value that an instance takes unless otherwise
specified.
Owner
The operation is the owner of the parameter.
Type
Type is a description of a set of instances that share the same operations, abstract
attributes and relationships, and semantics. Depending upon the language installed,
different types will appear.
Specification Content
The Association Specification consists of the following tabs: General, Detail, Role A and
Role B General, and Role A and Role B Detail.
Parent
The parent to which the component belongs (its package) is displayed in this static
field.
Association Specification 83
Stereotype
A stereotype represents the subclassification of an element. It represents a class within
the UML metamodel itself (that is, a type of modeling element). Some stereotypes are
predefined. You can define your own stereotypes.
Role
Use this field to label the role with a name that denotes the purpose or capacity
wherein one class associates with another.
To enter a role name, click in the Role field and enter the text.
Element
The Element field describes the two elements linked by this association. This field
cannot be edited.
Derived
This field indicates whether the element was computed (derived) or implemented
directly.
To define an element as derived, select the Derived check box. The element name is
adorned by a “/” in front of the name.
Link Element
This field lists the attributed associations linked to the association. These attributed
associations apply to the association as a whole.
Name Direction
This field defines the direction of an association name.
Constraints
The constraint is an expression of some semantic condition that must be preserved
while the system is in a steady state. The constraint on the Detail tab applies to the
association as a whole, while the constraint on the Detail A or Detail B tab applies to a
particular role.
To apply a constraint, click the Constraint field and enter the text. A constraint is
displayed notationally, surrounded by braces under the role to which it applies.
Association Specification 85
Association Specification—Role B General Tab
Navigable
The Navigable field indicates the direction in which the role is navigating. By default,
roles are bidirectional and no navigation notation is provided.
To set a role’s navigation, select the Navigable check box in the Association
Specification or click Navigable through the shortcut menu. The navigable arrowhead
points in the direction of the role, unless a containment adornment is displayed.
Containment adornments override navigable adornments.
Aggregate
Use the Aggregate field to set a direction to either all or part of the relationship among
instances of these classes. Only one end of the relationship can be aggregate.
Association Specification 87
To set the aggregate adornment, select the Aggregate check box in the Association
Specification or click Aggregate through the shortcut menu. The adornment is a
diamond on the relationship.
Static
Use the Static field to specify that the client class, not the client’s instances, owns the
supplier class. In the case of an attribute, a static attribute is an attribute whose value
is common to a class of objects rather than a value peculiar to each instance.
You can set this field in the specification or through the shortcut menu. To switch the
static adornment in the Relationship Specification, select the Static check box.
Friend
The Friend check box designates that the supplier class has granted rights to a client
class to access its non-public parts.
You can select this check box in the Relationship Specification or through the
relationship’s shortcut menu.
Containment of
Physical containment has semantics that play a role in the construction and
destruction of an aggregate’s parts. The specification of physical containment is
necessary for meaningful code generation from the model.
You can set one of the following types of physical containment.
Type Description
You can change the containment type in the Relationship Specification or you can
select a value from the relationship’s shortcut menu.
Generalize Specification
A generalize relationship between classes shows that one class shares the structure or
behavior defined in one or more other classes.
Specification Content
The Generalize Specification consists of the General tab.
Generalize Specification 89
Refer to the descriptions earlier in this chapter or in the Introduction to Specifications
chapter for information on the specification elements not covered in the following
section.
Friendship Required
Select the Frendship required check box to specify that the supplier class has granted
rights to the client class to access its non-public members.
Virtual Inheritance
Select the Virtual Inheritance check box to ensure that only one copy of the base class
will be inherited by descendants of the subclasses.
Realize Specification
A realize relationship connects a class to an interface or a component to an interface.
Specification Content
The Realize Specification consists of the General tab.
Dependency Specification
The dependency relationship indicates that the client class depends on the supplier
class to provide certain services. One class can use another class in a variety of ways.
Typically, a dependency relationship indicates that the operations of the client invoke
operations of the supplier. Dependency relationships appear on component diagrams
and they can also be used to connect use cases.
Note: A dependency that connects two use cases together contains a simpler form of
the Dependency Specification in Figure 39. Only the name, class, stereotype, and
documentation fields are present.
Specification Content
The Dependency Specification consists of the General tab.
Dependency Specification 91
Has Relationship (Booch Only)
A has relationship shows a whole and part relationship between two classes, where
one class is the whole and the other is the part. The whole class contains or owns its
parts. This relationship is also called an aggregation relationship.
Because attributes for a class can be expressed by a has by-value relationship with
cardinality of “1,” attributes are also defined in the has relationship specifications.
To display a has relationship’s specification, select any icon representing the has
relationship and either double-click or click Browse > Specifications.
Specification Content
The Has Specification consists of the following tabs: General and Detail.
Key/Qualifier Specification
A Key/Qualifier Specification allows you to modify a specific attribute whose value
uniquely identifies a single target object.
Key/Qualifier Specification 93
4 Right-click to display the shortcut menu.
5 Click Insert to add a key/qualifier.
6 Double-click the entry to display the Key/Qualifier Specification.
Specification Content
The Key/Qualifier Specification consists of the General tab.
Owner
The Owner field identifies the name, or owner, of the role from which the
key/qualifier evolved.
Actors
Actors represent system users. They help define the system and give a clear picture of
what the system should do. It is important to note that an actor interacts with, but has
no control over, the use cases.
An actor is someone or something that:
■ Interacts with or uses (but is not part of) the system.
■ Provides input to and receives information from the system.
■ Is external to the system and has no control over the use cases.
95
Actors are discovered by examining:
■ Who directly uses the system.
■ Who is responsible for maintaining the system.
■
External hardware used by the system.
■
Other systems that need to interact with the system.
An actor is a stereotype of a class and is depicted as a “stickman” on a use-case
diagram. The name of the actor is displayed below the icon.
Use Case
A use case is a sequence of events (transactions) performed by a system in response to
a trigger initiated by an actor. A use case contains all the events that can occur
between an actor-use case pair, not necessarily the ones that will occur in any
particular scenario.
In its simplest form, a use case can be described as a specific way of using the system
from a user’s (actor’s) perspective. A use case also illustrates:
■
A pattern of behavior the system exhibits.
■
A sequence of related transactions performed by an actor and the system.
Use cases provide a means to:
■ Capture system requirements.
■
Communicate with the end users and domain experts.
■
Test the system.
Use cases are best discovered by examining what the actor needs and defining what
the actor will be able to do with the system; this helps ensure that the system will be
what the user expects.
Since all the needs of a system typically cannot be covered in one use case, it is usual
to have a collection of use cases. Together this use case collection specifies all the ways
of using the system.
A use case may have a name, although it is typically not a simple name. It is often
written as an informal text description of the actors and the sequences of events
between objects. Use case names often start with a verb.
The name of the use case is displayed below the icon.
Relationships
Relationships show interactions between actors and use cases. Association,
dependency, and generalization relationships can be drawn from an actor to a use
case. The generalize relationship can be drawn between actors.
Any association relationships are also presented in a text format on the Relations tab
(described later) for a selected use case or actor.
Association
An association provides a pathway for communication between use cases and actors.
Associations are the most general of all relationships and consequentially, the most
semantically weak. If two objects are usually considered independently, the
relationship is an association. The association name and its stereotype are typically
verbs or verb phrases and are used to identify the type or purpose of the relationship.
There are two different types of associations connected with use-case diagrams:
uni-directional and bi-directional.
Uni-directional association: By default, associations in use cases are uni-directional
and drawn with a single arrow at one end of the association. The end with the arrow
indicates who or what is receiving the communication.
Dependency
A dependency is a relationship between two model elements in which a change to one
model element will affect the other model element. Use a dependency relationship to
connect model elements with the same level of meaning. Typically, on class diagrams,
a dependency relationship indicates that the operations of the client invoke
operations of the supplier.
You can connect model elements with dependencies on any diagram except state
machine diagrams and object diagrams. For example, you can connect a use case to
another use case, a package to another package, and a class to a package.
Dependencies are also used on component diagrams to connect model elements.
Extend Stereotype
An extend relationship is a stereotyped relationship that specifies how the
functionality of one use case can be inserted into the functionality of another use case.
You can place extend stereotypes on all relationships. However, most extend
stereotypes are placed on dependencies or associations. Extend relationships are
important because they show optional functionality or system behavior.
Include Stereotype
An include relationship is a stereotyped relationship that connects a base use case to
an inclusion use case. An include relationship specifies how behavior in the inclusion
use case is used by the base use case. Include relationships are important because they
represent that the inclusion use case functionality is used by the base use case.
Generalization
A generalization relationship is a relationship between a more general class or use
case and a more specific class or use case. A generalization is shown as a solid-line
path from the more specific element to a more general element. The tip of a
generalization is a large hollow triangle pointing to the more general element.
You can place a stereotype on any generalization through the Generalization
Specification. However, three common stereotypes for generalizations are extends,
includes, and generalization.
Selector Text
Class Interface
Unidirectional Association Class
Association
Package Dependency
Actor Aggregation
Specification Content
The Use-Case Specification contains the following tabs: General, Diagram, Relations,
and Files.
Name
A use case name is often written as an informal text description of the external actors
and the sequences of events between elements that make up the transaction. Use-case
names often start with a verb. The name can be entered or changed on the
specification or directly on the diagram.
Rank
The Rank field prioritizes use cases. For example, you can use the rank field to plan
the iteration in the development cycle at which a use case should be implemented.
Abstract
An abstract notation indicates a use case that exists to capture common functionality
between use cases (uses) and to describe extensions to a use case (extends).
Relations
The Relations tab lists all the association relationships that correspond to the selected
use case. The client and supplier names and type icons are displayed to the right of
the relation name. Double-clicking on any column in a row displays the element’s
specification.
Specification Content
The Generalize Specification contains the General tab.
Stereotype
Stereotypes allow you to provide additional distinctions in your model that are not
explicitly supported by the UML. The use of stereotypes makes it easy to add
information about modeling elements that may be specific to a project or process.
Friendship Required
Select the Friendship required check box to specify that the supplier class has granted
rights to the client class to access its non-public members.
Virtual Inheritance
Select the Virtual inheritance check box to ensure that only one copy of the base class
will be inherited by descendants of the subclasses.
Actor Specification
An Actor Specification is similar to a Class Specification, except that the stereotype
field is set to actor. However, some of the fields in the Class Specification are not
applicable to actors and are therefore disabled. Refer to Class Specification on page 56
for more information.
107
Specification Content
The State Machine Specification consists of the General tab.
Understanding Workflows
Each activity represents the performance of a group of actions in a workflow. Once the
activity is complete, the flow of control moves to the next activity or state through a
transition. If an outgoing transition is not clearly triggered by an event, then it is
triggered by the completion of the contained actions inside the activity. A unique
activity diagram feature is a swimlane that defines who or what is responsible for
carrying out the activity or state. It is also possible to place objects on activity
diagrams. The workflow stops when a transition reaches an end state.
You can attach activity diagrams to most model elements in the use case or logical
views. Activity diagrams cannot reside within the component view.
You can use the following tools on the activity diagram toolbox to model activity
diagrams:
■ Decisions ■ States
■
Swimlanes ■
Synchronizations
■
Objects ■
Transitions
■ Object flows ■ Start state
■
Activities ■
End state
Workflow Modeling
In business and in other industries, there are many manual and automated systems.
Each of these systems contains one or more workflows. A workflow is best defined as
a well-defined sequence of activities that produces an observable value or objective to
an individual or entity when performed. You can model workflows with activity
diagrams.
Activities
An activity represents the performance of “task” or “duty” in a workflow. It may also
represent the execution of a statement in a procedure. An activity is similar to a state,
but expresses the intent that there is no significant waiting (for events) in an activity.
Swimlanes
Swimlanes are helpful when modeling a business workflow because they can
represent organizational units or roles within a business model. Swimlanes are very
similar to objects because they provide a way to tell who is performing a certain role.
Swimlanes only appear on activity diagrams. You should place activities within
swimlanes to determine which unit is responsible for carrying out the specific activity.
When a swimlane is dragged onto an activity diagram, it becomes a swimlane view.
Swimlanes appear as small icons in the browser while swimlane views appear
between thin, vertical lines with a header that can be renamed and relocated.
Objects
Rational Rose allows objects on activity, collaboration, and sequence diagrams.
Specific to activity diagrams, objects are model elements that represent something you
can feel and touch. It might be helpful to think of objects as the nouns of the activity
diagram and activities as the verbs of the activity diagram. Further, objects on activity
diagrams allow you to diagram the input and output relationships between activities.
In Figure 50 on page 116, the Submit Defect and Fix Defects activities can be
thought of as the verbs and the Defect objects can be thought of as the nouns in the
activity diagram vocabulary. Objects are connected to activities through object flows.
Most objects can appear in an infinite number of states. For example, look at both
instances of the Defect object. In one instance, the customer (noted by the swimlane)
placed the defect in a [submitted] state. In the other, the software engineer (noted by
the swimlane) placed the defect in a [fixed] state. Each time you associate a new state
with an object, a new state appears in the browser along with the object. You may
specify more details of the object’s state in the state specification.
Object Flow
An object flow on an activity diagram represents the relationship between an activity
and the object that creates it (as an output) or uses it (as an input).
Rational Rose draws object flows as dashed arrows rather than solid arrows to
distinguish them from ordinary transitions. Object flows look identical to
dependencies that appear on other diagram types.
You do not need a transition if your diagram has two activities connected through an
object and two corresponding object flows. The sample in Figure 51 on page 117 does
not require a transition because the transition is redundant.
Object Flow
States
A state represents a condition or situation in the life of an object during which it
satisfies some condition or waits for some event. Each state represents the cumulative
history of its behavior.
Transition to Self
A transition to self is very similar to a state transition; however, it does not move the
focus of control to another state or activity when an event occurs. A transition to self
contains the same source and target state or activity.
A transition to self contains actions and events just like transitions.
The icon for a transition to self is a looped line with an arrowhead pointing toward the
same source state or activity. The transition to self arc appears on the top of an activity
or state icon.
Decisions
A decision represents a specific location on an activity diagram or statechart diagram
where the workflow may branch based upon guard conditions. There may be more
than two outgoing transitions with different guard conditions but, for the most part, a
decision will have only two outgoing transitions determined by a Boolean expression.
Synchronizations
Synchronizations allow you to see a simultaneous workflow in an activity diagram or
statechart diagram. They also visually define forks and joins representing parallel
workflow.
Specification Content
The Swimlane Specification consists of the General tab.
Specification Content
The State, Activity, Start State, and End State Specifications consists of the following
tabs: General, Action, Transitions, and Swimlanes.
Information about the type and action expression is entered or displayed on this tab.
Type
The Type field identifier bar lists the kind of action specified in the Action
Specification.
Information about the icon, event, and end is displayed on this tab.
Action Specification
An Action Specification allows you to display and modify the action properties in a
statechart diagram or activity diagram.
To define a new action on a state or activity:
1 Click the Actions tab of a State Specification or Activity Specification.
2 Right-click to display the shortcut menu.
3 Click Insert and an entry item is added.
4 Double-click the entry to display the Action Specification.
5 Type the action description in the Name field. If this field is not active, click Action
on the Type field.
On Event
The On Event parameters are only enabled when you set the On Event timing
parameter.
Event—In a statechart or activity diagram, an event is an occurrence that can trigger a
state transition. Type the name of the event that will trigger the action.
Arguments—Consist of any optional arguments associated with the event.
There is an advantage to using an On Event state action rather than a transition to self.
Transitions to self trigger all the actions associated with a state; whereas, state actions
handle internal state transitions. This provides you with the control to process an
internal event without triggering the entry and exit actions. The Trigger Specification
contains the same features as the Action Specification . The Trigger Specification defines
the properties of a trigger.
Specification Content
The Action Specification consists of the Detail tab.
Specification Contents
The State Transition Specification consists of the following tabs: General and Detail.
Guard Condition
Conditional state transitions are triggered only when the conditional expression
evaluates to true. Conditions are denoted by surrounding brackets:
Event (args) [condition] / Action ^target.someEvent (args)
To add a condition, click Guard Condition on the State Transition Specification and type
the conditional expression. You may also include a condition by selecting the event
label and changing the text.
Decision Specification
A Decision Specification allows you to display and modify the properties and
relationships of a decision on a statechart diagram or activity diagram.
The Decision Specification consists of the following tabs: General, Transitions, and
Swimlanes.
Synchronization Specification
A Synchronization Specification allows you to display and modify the properties and
relationships of a synchronization on a statechart diagram or activity diagram.
The Synchronization Specification consists of the following tabs: General and
Transitions.
State
The State drop-down list specifies and displays the object state.
The Incoming Object Flows tab displays the name of all incoming object flows.
The Outgoing Object Flows tab displays the name of all outgoing object flows.
137
Collaboration Diagrams
A collaboration diagram is an interaction diagram which shows the sequence of
messages that implement an operation or a transaction. These diagrams show objects,
their links, and their messages. They can also contain simple class instances and class
utility instances. Each collaboration diagram provides a view of the interactions or
structural relationships that occur between objects and object-like entities in the
current model.
You can create one or more collaboration diagrams to depict interactions for each
logical package in your model. Such collaboration diagrams are themselves contained
by the logical package enclosing the objects they depict.
During analysis, collaboration diagrams can indicate the semantics of the primary
and secondary interactions.
During design, collaboration diagrams can show the semantics of mechanisms in the
logical design of the system.
Use collaboration diagrams as the primary vehicle to describe interactions that
express your decisions about the behavior of the system. They can also be used to
trace the execution of a scenario by capturing the sequential and parallel interaction of
a cooperating set of objects.
Collaboration diagrams may also depict interactions that illustrate system behavior.
Selector Text
Lock
Text
Selector
Note Note Anchor
Message to Lock
Self
Note: The object and message icons are also found in the collaboration toolbox.
Object
One of the primary elements of a collaboration or sequence diagram is an object. An
object has state, behavior, and identity. The structure and behavior of similar objects
are defined in their common class. Each object in a diagram indicates some instance of
a class. An object that is not named is referred to as a class instance.
The object icon is similar to a class icon except that the name is underlined.
If you use the same name for several object icons appearing in the same collaboration
diagram, they are assumed to represent the same object; otherwise, each object icon
represents a distinct object. Object icons appearing in different diagrams denote
different objects, even if their names are identical. Objects can be named three
different ways: object name, object name and class, or just by the class name itself.
Toolboxes 141
Multiple Objects
If you have multiple objects that are instances of the same class, you can modify the
object icon by selecting the Multiple Instances check box in the Object Specification.
When you select this check box, the icon is changed from one object to three staggered
objects.
To create an icon representing multiple objects:
1 Create an object.
2 Double-click its icon to display its specification.
3 Select the Multiple Instances check box.
4 Click OK.
Rational Rose displays the Multiple Object icon.
Messages
A message icon represents the communication between objects, indicating that an
action will follow.
Each message icon represents a message passed between two objects, and indicates
the direction a message is going. A message icon in a collaboration diagram can
represent multiple messages. A message icon in a sequence diagram represents
exactly one message.
A message is the communication carried between two objects that triggers an event. A
message carries information from the source focus of control to the destination focus
of control.
A message is represented on collaboration diagrams and sequence diagrams by a
message icon which visually indicates its synchronization. The synchronization of a
message can be modified through the message specification.
If all messages represented by a message icon do not have the same synchronization,
the simple message icon is displayed. You can change the synchronization of the
message by editing the message specification.
Toolboxes 143
Message Numbering
To enable or disable the display of message numbers click Tools > Options. Click the
Diagram tab and click Collaboration Numbering (for collaboration diagrams) or
Sequence Numbering (for sequence diagrams).
2 Reorder the messages by dragging the message icons into the preferred order.
3 Redisplay the interaction diagram by clicking Browse > Go to Collaboration
Diagram or Browse > Go to Sequence Diagram.
Links
Objects interact through their links to other objects. A link is an instance of an
association, analogous to an object being an instance of a class.
A link should exist between two objects, including class utilities, only if there is a
relationship between their corresponding classes. The existence of a relationship
between two classes symbolizes a path of communication between instances of the
classes: one object may send messages to another.
Links can support multiple messages in either direction. If a message is deleted, the
link remains intact.
The link is depicted as a straight line between objects or objects and class instances in
a collaboration diagram. If an object links to itself, use the loop version of the icon.
To create a link between two objects:
1 Click the Link tool.
2 Drag the pointer between the two object icons.
Rational Rose will create and display an unnamed link.
To create a reflexive link (a link between an object and itself):
1 Click the Link to Self tool.
2 Click an icon representing the object.
Rational Rose will create and display an unnamed reflexive link.
Sequence Numbering
Sequence numbering allows you to clearly see how messages interact and relate to
one another. Numbering messages can be done two ways on sequence diagrams: top
level numbering (a 1, 2, 3 pattern) or hierarchical numbering (a 1.1, 1.1.2, 1.1.3
Top-Level Numbering
Top-level numbering gives each message or message to self a single number. There are
no number subsets. Top-level numbering is useful in small sequence diagrams with
few objects and messages.
Hierarchical Numbering
Hierarchical numbering bases all messages on a dependent message. For example,
you could have messages numbered 1., 1.1, 1.2, 1.2.1, where message number 1 is an
independent message. All other message numbers numbered 1.x and beyond are
dependent on message 1. If you remove independent message 1 from the diagram, all
dependent messages will be removed.
To display hierarchical numbering:
1 Click Tools > Options.
2 Click the Diagram tab.
3 Select the Sequence Numbering check box.
4 Select the Hierarchical Messages check box.
Scripts
Scripts are used to enhance messages on sequence diagrams; they are text fields that
attach to messages.
To create and attach a script:
1 Click the message icon and drag it between two objects.
2 Create text by either:
❑ Using the ABC icon.
❑ Clicking Tools > Create >Text.
3 Select one or more labels. Press the CTRL or SHIFT key to enable multiple
selections.
4 Select one message.
5 Click Edit > Attach Script to attach the script to the message.
Focus of Control
Focus of Control (FOC) is an advanced notational technique that enhances sequence
diagrams. This technique shows the period of time during which an object is
performing an action, either directly or through an underlying procedure.
FOC is portrayed through narrow rectangles that adorn lifelines (the vertical lines
descending from each object). The length of an FOC indicates the amount of time it
takes for a message to be performed. When you move a message vertically, each
dependent message will move vertically as well. Also, you can move an FOC
vertically off the source FOC to make it detached and independent.
Figure 74 illustrates a sequence diagram with FOC notation and scripts.
Specification Content
The Object Specification consists of the General tab.
Name
If you specify the name of the object's class in the Object Specification, the name must
identify a class defined in the model.
Class
The Class field displays the name of the object’s parent class. The default class for a
newly created object is Unspecified.
The object will accept messages conveying the operations of its parent class, and the
operations of the superclasses of its parent class.
If you subsequently delete the class from the model, its name will be displayed in
parentheses. If you recreate the class or create a new class with the same name, the
object becomes an instance of this class.
Type Description
Specification Content
The Class Instance Specification consists of the General tab.
Class
The class the element belongs to is displayed here. The default class for a newly
created element is (Unspecified). If you specify an object’s class in the Object
Specification, the class name must identify a class defined in the model, or you may
create a new class.
To create a new class through the Object Specification, click the scroll arrow to the
right of the Class field. A list box will display all the possible class selections,
including <New>. Double-click <New>. A Class Specification dialog box is displayed.
Enter the information regarding the new class.
If you delete a class from the model after you have associated it with one or more
objects, the class name is enclosed in parentheses. If you re-create the class or create a
new class with the same name, the object becomes an instance of the new class.
You can set this field only through the dialog box.
Specification Content
The Link Specification consists of the following tabs: General and Messages.
Type Description
An object visibility adornment is a letter inside a box placed at the supplier end of the
link. Each letter identifies the type of visibility used. The adornment box is either open
(shared) or filled (unshared).
You can set link visibility through the Link Specification or through the shortcut menu.
These fields correspond to visibility adornments displayed in the collaboration
diagram.
■ To set visibility for the supplier object, click a visibility type in the Supplier
Visibility section.
■
To set visibility for the client object, click a visibility type in the Client Visibility
section.
Shared
If visibility is an important detail in your software model, use visibility adornments to
show these details in a collaboration diagram.
Shared visibility indicates structural sharing of the given object; that is, the shared
object’s state can be altered through more than one path. Unshared visibility
represents unique access given to the client object. When you create a link, unshared
visibility is the default.
You can set the shared indicators in the Link Specification or by selecting a visibility
value from the shortcut menu.
To toggle the shared indicator, select or clear the Shared check box below the
appropriate visibility section.
■
If you select the Shared check box, the visibility adornment changes from a filled
square to an open square of the corresponding type.
■
If you clear the Shared check box, the visibility adornment changes to a filled
square of the corresponding type.
Role
This field lists the role names tied to the selected associations. This is especially useful
since many associations are not named. This field cannot be edited.
Note: The Link to Self Specification contains only the Name, Visibility, and Shared
elements.
Icon
This left-most unlabeled field contains a small version of the link message icon
indicating the direction of the message.
Sequence
This is a system-assigned, sequential message number.
Message Name
Click the item to see the Picklist box showing all available operations on the class. This
is the only editable column on this tab.
Message Specification
A message conveys an operation through a link between objects. A message’s
specification identifies the operation it conveys, its synchronization, its frequency, and
its associated documentation.
To display a Message Specification, double-click any icon representing a message, or
click Browse > Specifications.
Specification Content
The Message Specification consists of the following tabs: General and Detail.
Class
The Class field displays the name of the class to which the element belongs.
Type Description
Frequency
Use these options to indicate whether the message is sent periodically or
aperiodically.
Type Description
Component diagrams are contained (owned) either at the top level of the model or by
a package. This means the diagram will depict the components and packages in
which the diagram is contained.
161
Component Diagram Toolbox
The application window displays the following toolbox when the current window
contains a component diagram and View > As Unified is selected.
Text
Selector
Note Note Anchor
Component Package
Lock
Specification Content
The Component Specification consists of the following tabs: General, Detail, Realizes,
and Files.
Language
This field identifies the implementation language that is assigned to this component.
Note that when changing the implementation language of a component, the data
types that are used in the specification of operations and attributes of the assigned
classes are not automatically converted to data types in the new implementation
language. Also, if you change the implementation language for a component with
classes that are assigned to other components, a dialog box that allows you to specify
how to handle those classes appears.
Declarations
The Declarations field contains a list of declarations, such as class names, variables,
and other language-specific features (such as #includes or similar constructs).
Declarations can include classes, objects, and any other language-specific
declarations.
Use this field to list the elements that physically reside in the component. You can
view this field only through the component specification.
Classes
The list identifies the classes and interfaces that are assigned to this component
(indicated with check marks). The Logical Package column shows to which package a
class belongs, and the Language column shows the programming language that is
assigned to a specific class.
You assign a class or interface to a component through Assign on the shortcut menu in
the list, or by dragging a class or interface from the browser and dropping it in this
list. You can only assign classes that are unassigned or classes that are assigned to
components with the same implementation language as this component.
Language
This field identifies the implementation language that is assigned to this component.
When changing the implementation language of a component, the data types that are
used in the specification of operations and attributes of the assigned classes are not
automatically converted to data types in the new implementation language. Also, if
you change the implementation language for a component with classes that are
assigned to other components, a dialog box is displayed in which you must specify
how to handle those classes.
Package Specification
A Package Specification displays and modifies the properties and relationships of a
package in the current model.
To display a Package Specification, double-click any icon representing the package, or
click Browse > Specifications.
The Package Specification consists of the following tabs: General, Detail, Realizes, and
Files.
Package
The package the component belongs to is displayed in this static field.
Component Diagrams
This field lists the component diagrams contained in the package. You can create a
new component diagram in the package through Insert on the shortcut menu, or click
Browse > Component Diagram. You may rename or delete existing component
diagrams from this field.
To display a specific component diagram listed in this field, double-click its entry.
169
Deployment Diagram Toolbox
The application window displays the following toolbox when the current window
contains a deployment diagram and you have selected View > As Unified:
Selector
Text
Processor Connection
Device Lock
Processor Specification
A Processor Specification displays and modifies the properties and relationships of a
processor in the current model. Some of the information on the specification can also
be displayed inside icons representing the processor in a model's deployment
diagram.
To display a Processor Specification, double-click any icon representing a processor,
or click Browse > Specifications.
Specification Content
The Processor Specification consists of the following tabs: General and Detail.
Characteristics
Use the Characteristics field to specify a physical description of an element. For
example, you can describe the kind and bandwidth of a connection; the manufacturer,
model, memory, and disks of a machine; or the kind and size of a device. You can set
this field only through the specification. This information is not displayed in the
deployment diagram.
To update this field, click the Characteristics field and enter the information.
Processes
Use this field to identify the processes assigned to this processor. Processes denote
either the root of a main program from a component diagram or the name of an active
object from a collaboration diagram.
Scheduling
The Scheduling field specifies the type of process scheduling used by the processor.
Use these options to specify the appropriate scheduling.
Type Description
You can set this field only through the specification. To set the scheduling type, click
the applicable option button in the Scheduling field.
You can display the scheduling type in the processor icon by clicking Show
Scheduling from the shortcut menu.
Device Specification
A Device Specification displays and modifies the properties and relationships of a
device in the current model. Some of the information on this specification can also be
displayed inside icons representing the device in a deployment diagram.
Specification Content
The Device Specification consists of the following tabs: General and Detail.
Connection Specification
A Connection Specification indicates a communication path between two processors,
two devices, or a processor and a device. A connection usually represents a direct
hardware coupling, such as an RS-232 cable. It can also represent an indirect coupling.
To display a Connection Specification, double-click any icon representing a
connection, or click Browse > Specifications.
The Connection Specification consists of two tabs, which contain the same elements as
the Device Specification. Refer to Device Specification on page 173.
Specification Content
The Process Specification consists of the General tab.
Priority
This field contains the relative priority of this process, if there is one. You can use this
information with the scheduling type identified in the Processor Specification to
schedule process execution.
User-Defined Stereotypes
Some stereotypes are predefined, but you can also define your own to add new kinds
of modeling types. User-defined stereotypes are defined in a stereotype configuration
file. For each stereotype, you can customize icons to be displayed in diagrams, in the
browser, and in the toolbox.
179
Rational Rose offers ten stereotype icons that you can use when modeling a business:
■
Business Use Case ■
Business Worker
■
Use-Case Realization ■
Entity Class
■ Boundary Class ■ Control Class
■
Business Actor ■
Business Use-Case Realization
■
Business Entity ■
Organization Unit Package
Viewing Stereotypes
You can control how stereotypes are displayed. Click Tools > Options to display the
Options dialog box. The settings are found on the Diagram tab.
Diagram Tab
Stereotype
Settings
Stereotype
Settings
Compartments—Show Stereotypes
This check box allows you to control the display of stereotype names for operations
and attributes of new classes in the class compartments.
Stereotype
Settings
The changes made on the Browser tab are reflected in the browser.
6 Click Edit > New > String Value. Give the new registry key the name file#, where # is
the next consecutive number (1, 2, or 3, etc.).
7 Double-click the new key, and enter the name of your configuration file (for
example, MyStereotypes.ini).
8 Close the registry.
Next time you open a model in Rational Rose, the stereotypes defined in your new
stereotype configuration file will be available in the model.
The four subsystems in the subsystem sample together make up all the functionality
of the Bookstore Enterprise System. Note that through the <<include>>
relationships, each subsystem provides a certain piece of the Bookstore system
functionality.
Instead of going into separate subsystems, a user of the Bookstore Enterprise
System can verify stock in the Warehouse Subsystem or check the status of a shipped
book in the Mailing Subsystem, for example. All subsystems make up a much larger
system. Each stereotyped package subsystem is just a means of organizing model
elements and diagrams together.
189
Creating a New Model from a Framework
2 Open the framework that corresponds to the system you are going to develop.
A new model is created and initialized with the contents of the chosen framework.
(If you don’t want to use any of the frameworks, click Cancel. A new model with
only the default contents is created.)
3 Save the new model and give it a name by clicking File > Save As.
Each package in a framework is stored as a controlled unit in a separate file. To
access the contents of a package in a framework, you have to load the
corresponding controlled unit. To load a unit, double-click the package in a
diagram, or click File > Units > Load.
6 In the Framework Name field, specify the name of the new framework. The name
must be unique among the existing frameworks, and it can only contain characters
that are allowed in folder names.
7 In the Model File field, specify the name and location of the file that constitutes the
framework model. (To browse to the file, click in the field. Then, click the
displayed button.)
11 If you are satisfied with the framework specification, click Finish. Otherwise, go
back and change your settings.
When the Framework Wizard is finished, a folder with the same name as the new
framework, containing the specified files, will be created in the
\Framework\Frameworks folder. The new framework is now available for creating
new models.
195
Why Would I Want to Import Type Libraries into the Model?
By importing type libraries into the model, you can show how classes in the model
use and depend upon classes in other components, regardless of their implementation
language. For example, you can:
■
Reuse COM components—that is, to show how the classes in the model
instantiate, use, and communicate with the items in a COM component.
■ Show how classes in the model implement (or realize) the interface items of a
COM component.
■
Show dependencies between components.
■
Use the data types defined by a COM component when specifying attributes and
operations on the classes in the model.
Figure 101 Component View of the Microsoft Scripting Runtime Type Library
Overview
diagram
Imported
COM
component
Figure 103 Logical View of the Microsoft Scripting Runtime Type Library
Overview
diagram
Hidden type
library items
(Optional)
Coclass
Interface or
dispinterface
Figure 104 Overview Diagram of the Microsoft Scripting Runtime Type Library
Hidden Items
If the Show hidden items check box in the COM Properties dialog box is cleared when a
type library is imported, all hidden items and items with names beginning with “_”
are placed in a separate logical package called “Hidden”. Those items are not
displayed on the overview diagram. The Microsoft Scripting Runtime type library in
Figure 103 on page 198 and Figure 104 on page 199 was imported with the Show
hidden items check box cleared.
For more information, refer to Hiding Type Library Items on page 205.
COM Stereotypes
The Type Library Importer uses the stereotypes in Table 17 for the model elements
that represent a type library in the model.
Stereotype Description
Components
COM The Type Library Importer assigns the stereotype and language “COM”
to the component representing an imported type library.
Classes
enum Represents an enum type definition in a type library. The class members
of the enum in the type library become attributes with initial values on
the class in the model.
struct Represents a struct type definition in a type library. The class members of
the struct in the type library become typed attributes on the class in the
model.
Stereotype Description
union Represents a union type definition in a type library. The class members of
the union in the type library become typed attributes on the class in the
model.
Operations
Realize relationship
source Indicates that the realized interface contains the coclass’ event
procedures.
default Indicates that the realized interface is the default interface of the coclass.
Dependency relationship
imports Indicates that the supplier COM component was automatically imported
when the client component was imported, because the supplier
component is referenced by the client component.
Since Rational Rose supports many different programming languages, all items in an
imported type library are shown in the model. However, by clearing the Show hidden
items check box, the top level of the packages of the type libraries that you import, as
well as their overview diagrams, give the same view of the libraries as the Object
Browser in Visual Basic. For more information, refer to Hiding Type Library Items on
page 205.
Note: You can later import the members of a quickly imported type library item,
refer to Adding Class Members to a Quick Import Type Library on page 207.
The following results occur:
❑
If the selected COM component contains all the necessary type information, the
Type Library Importer creates a representation of the type library in the model.
❑ If a dragged and dropped COM component does not contain valid type
information, and if you have dropped the component on an element in the
browser, Rational Rose attaches the dropped file to that element if possible.
That is, if the cursor turns into an arrow with a icon, Rational Rose will
attach and not import the file.
Figure 107 Type Library with Show Hidden Items Option Selected
Figure 108 Type Library with Show Hidden Items Option Cleared
In this view, only the type information that is relevant for Visual Basic clients is shown
on the type libraries overview diagram, and all hidden type library items are inserted
into a separate package called Hidden. This view is recommended when developing
Visual Basic clients because it corresponds to the view that is shown by the Object
Browser in Visual Basic (see Figure 106 on page 203).
Note: Changing the settings in the COM Properties dialog box affects only type
libraries that are imported after the settings are changed.
To replace existing type libraries when importing new versions:
Select the Upgrade older type libraries check box in the COM Properties dialog box.
The next time you import a new version of a type library, the current version is
replaced by the new version. If this check box is cleared when you import a new
version of a type library, the model will contain both versions.
The following table contains the petal file version numbers for each Rational Rose
release. If you save a model as an older version of Rose, some model elements and
features will be lost. For example, if you save a Rose 2000 model in a Rose 98i format,
your model will not include activity diagrams.
211
Table 18 Rational Rose Petal File Version (continued)
213
C Component Name 68
Component Specification 163
Cancel Button 51 Detail Tab 164
Cardinality 60 Files Tab 166
Changing Model Elements 34 General Tab 163
Changing the State of an Object 118 Realizes Tab 165
Characteristics 172 Component Tab 68
Class 72, 151, 153, 159 Concurrency 62, 77
Class Attribute Specification 71 Connection Specification 175
Detail Tab 73 Connections 169
General Tab 72 Constraints 85
Class Diagram Containment 73, 88
Creating 55 Context Sensitive Help Button 8
Displaying 55 Control-Menu Box 6
Overview 53 Copy Button 8
Re-assign a Class 55 Copying Icons 35
Toolbox 54 Correlation
Class Instance Specification 152 Bending 37
Class Specification 56 Creating 37
Attributes Tab 65 Description 37
Component Tab 68 Naming 38
Detail Tab 59 Reconnecting 38
Files Tab 71 Creating
General Tab 56 Activity Diagrams 112
Nested Tab 69 Class Diagrams 55
Operations Tab 63 Collaboration Diagrams 137, 150
Relations Tab 67 Component Diagram 161
Classes 166 Correlations 37
Client Visibility 155 Diagrams 28
Close Button 7 Icons 186
Coclass 198 List View Icons 186
Collaboration Diagram Model Elements 20, 30
Creating 137, 150 New Stereotype Configuration File 183
Overview 138 Overloaded Elements 31
Toolbox 140 Sequence Diagrams 137, 150
Collapsing a Browser Tree 19 Statechart Diagrams 109
COM Stereotypes 183
Components 196 Toolbox Icons 186
Properties Dialog Box 208 Customizing the Toolbox 11
Stereotypes 200 Cut Button 8
Component Diagram 168 Cutting Icons 35
Creating 161
Displaying 161
Overview 161
Toolbox 162
214 Index
D Diagram Icon, see Icons
Diagram List 103
Decision Specification 128 Diagram Tab 102
General Tab 128 Diagram Toolbox, see Toolbox
Swimlanes Tab 130 Diagram Window
Transitions Tab 129 Cascading 27
Decisions 119 Description 12, 25
Declarations 165 Illustration 6
Deep Delete 36 Tiling 27
Default 82 Viewing 26
Default Font Parameters 40 Diagrams
Deleting Adorning 40
Deep vs. Shallow 36 Creating 28
Diagrams 29 Deleting 29
Messages 147 Displaying 29
Model Elements 36 Laying Out 38
Objects 147 Linking 28
Scripts 147 Placing Text 40
Dependency 98 Printing 14
Dependency Specification 91 Renaming 29
Deployment Diagram Saving 15
Creating 169 Type Library 199
Displaying 169 Viewing 26
Overview 169 Dialog Box, see Specification
Toolbox 170 Dispinterface 198
Derived 74, 85 Displaying
Deselecting Icons 33 Browser 18
Detail Tab Diagrams 29
About 49 Focus of Control 148
Association Specification 84 Multiple Diagrams 27
Class Attribute Specification 73 Specifications 45
Class Specification 59 Stereotype Names 182
Component Specification 164 Docking 12, 18
Device Specification 175 Documentation 48
Has Specification 93 Documentation Window
Logical Package Specification 93 Description 11
Message Specification 159 Illustration 6
Operation Specification 76 Drag-and-Drop 20, 21
Package Specification 168
Processor Specification 172
State Transition Specification 127 E
Device Specification 173
Detail Tab 175 Editing Model Elements 20, 33
General Tab 174 Editing Specifications 46
Devices 169 Element 84
Index 215
Elements, see Model Elements G
End State 118
Exceptions 77 General Tab
Expanding a Browser Tree 19 About 47
Export Control 58 Association Specification 83
Extend Stereotype 98 Class Attribute Specification 72
Extending Rational Rose 4 Class Instance Specification 153
Class Specification 56
Component Specification 163
F Decision Specification 128
Dependency Specification 91
F5 Key 149 Device Specification 174
Features 3 Generalize Specification 89, 104
Files 15, 16, 211 Has Specification 92
Files Tab Key/Qualifier Specification 94
About 49 Link Specification 154
Class Specification 71 Logical Package Specification 92
Component Specification 166 Message Specification 158
Operation Specification 80 Object Flow Specification 136
Package Specification 168 Object Specification 133, 151
Filtering 15, 55 Operation Specification 75
Fit in Window Button 9 Package Specification 167
Floating 12, 18 Parameter Specification 82
Flow of Events 97 Process Specification 176
Focus of Control Processor Specification 171
Coloring 148 Realize Specification 90
Description 147 State and Activity Specifications 121
Displaying 148 State Machine Specification 108
Moving 149 State Transition Specification 126
Nested 149 Swimlane Specification 120
Formal Arguments 62 Synchronization Specification 131
Framework Generalization 99
Activating the Framework Wizard 189 Generalize Specification 89, 104
Changing 193 Guard Condition 127
Creating a Model from a Framework 190
Creating a New Framework 192
Deleting 193 H
Library 191
Wizard 189 Has Relationship 92
Frequency 160 Has Specification 92
Friend 88 Detail Tab 93
Friendship Required 90, 105 General Tab 92
Full Import 207 Help Button 51
Fully Qualified Names 32 Help Topics Button 10
216 Index
Hiding Library
Browser 18 Frameworks 191
Classes 55 Imported 207
Stereotype Names 182 Type 195
Type Library Items 205 Link Element 85
Link Specification 154
General Tab 154
I Messages Tab 157
Linking Diagrams 28
Icon 157
Links
Icons
Creating 145
Copying 35
Description 145
Creating on the Diagram 30
see also Correlation 145
Creating User-Defined Icons 186
Loading a Model Workspace 43
Cutting 35
Logical Package Specification 92
Deselecting 33
Detail Tab 93
Moving 34
General Tab 92
Pasting 35
Resizing 34
Selecting 33
Implementation 58
M
Importing a Type Library 203 Manipulating Icons 33
Include Stereotype 98 Manuals xxi
Incoming Object Flows Tab 134 Maximize Button 7
Ini File 16 Menu Bar
Initial State, see Start State Description 7
Initial Value 73 Illustration 6
Installing an Add-In 4 Menu Control Box 6
Interaction Diagram 78, 79, 80 Message Name 157
Creating 137 Message Specification 158
Overview 137 Detail Tab 159
Interface General Tab 158
in Type Library 198 Message Tab 157
of COM Component 198 Messages
Assigning an Operation to 144
Creating 143
K Deleting 147
Description 142
Key/Qualifier Specification 93
Naming 143
Keys 89
Numbering 144
Minimize Button 7
Minus Sign 19
L
Language 69, 164, 166
Laying Out a Diagram 38
Index 217
Model Notations 3
Navigating 18 Numbering Messages 144
Printing 14 Numbering Sequences 145
Saving 15
Model Elements
Changing 34 O
Creating 20
Object 141
Deleting 36
Object Browser in Visual Basic 202
Editing 20
Object Flow 116
Laying Out 38
Object Flow Specification 135
Naming 30
Object Specification 132, 150
Reassigning 32
General Tab 133
Selecting in the Browser 20
Incoming Object Flows Tab 134
Model File 211
Outgoing Object Flows Tab 135
Model Workspaces
Objects 115
Loading 43
OK Button 51
Saving 43
OLE Viewer 202
Understanding 41, 42
On Event 125
Modeling with Rational Rose 2
Online Help xxi
Moving Icons 34
Open Model Button 7
Multiple Instances 152
Operation Specification 74
Multiple Objects 142
Detail Tab 76
Files Tab 80
General Tab 75
N Postconditions Tab 80
Name 48, 101, 151 Preconditions Tab 78
Name Direction 85 Semantics Tab 79
Naming Operations Tab 63
Correlations 38 Outgoing Object Flows Tab 135
Diagrams 29 Overloaded Elements 31, 32
Element 20 Overview Window
Element in the Browser 20 Description 13
Fully Qualified Names 32 Icon 6
Model Elements 30, 31, 32 Owner 82, 94
Overloaded Elements 31
Navigable 87
Navigating a Model 18 P
Navigating the Tabs 52
Package 55, 57, 102, 167, 188
Adding and Deleting Entries 52
Package Name 68
Editing Entries 52
Package Specification 166
Nested Class 70
Detail Tab 168
Nested Focus of Control 149
Files Tab 168
Nested Tab 69
General Tab 167
New Model Button 7
Realizes Tab 168
218 Index
Parameter Specification 81 Refine Stereotype 99
Parent 9, 57, 83 Relations 103
Paste Button 8 Relations Tab 67, 103
Pasting Icons 35 Relationship, see Correlation
Persistence 61 Relationships 97
Persistence Field 152 Renaming Model Elements 32
Petal File 211 Resizing Icons 34
Plus Sign 19 Return Class 75
Positioning the Browser 18 Role 84, 156
Postcondition 80 Role A and B Detail Tab 87
Postconditions Tab 80 Role A and B General Tab 86
Preconditions 78 Rose.ini File 16
Preconditions Tab 78
Print Diagrams Button 8
Printing 14 S
Priority 177
Save Model, Log, or Script Button 8
Private 58
Saving
Process Specification 176
Files 15
Processes 172
Model Workspaces 43
Processor 177
Scheduling 173
Processor Specification 170
Scripts
Detail Tab 172
Creating 146
General Tab 171
Deleting 147
Processors 169
Detaching 147
Protected 58
Moving 147
Protocol 76
Selecting Elements 20
Public 58
Selecting Icons 33
Semantics 79
Semantics Tab 79
Q Sequence 157
Qualifications 77 Sequence Diagram
Qualifiers 89 Creating 137, 150
Quick Import 207 Overview 139
Toolbox 141
Sequence Numbering 145
R Shallow Delete 36
Shapes, see Model Elements
Rank 102
Shared 156
Rational Technical Support xxii
Show all Classes 166
Realize Specification 90
Show All Components 68
Realizes Tab 165, 168
Show Classes 72
Reassigning Model Elements 32
Show Inherited 64
Receiver 158
Show labels 181
Redo Command 35
Show Stereotype Names 182
Referenced Type Libraries 200
Index 219
Show Stereotypes 181 Standard Toolbar 7
Size 77 Start State 118
Snap-to-grid 34 State 133
Sorting Packages 21 State Actions 125
Space 60 State Machine
Specification Creating 107
About Common Elements 47 Overview 107
Action 124 State Machine Specification 107
Activity 121 State Specification 121
Actor 105 Actions Tab 122
Association 83 General Tab 121
Class 56 Swimlanes Tab 124
Class Attribute 71 Transitions Tab 123
Class Instance 152 State Transition 119
Component 163 State Transition Specification 126
Connection 175 Detail Tab 127
Decision 128 General Tab 126
Dependency 91 State/Activity History 122
Device 173 State/Activity Model Icon 107
Displaying 45 Statechart Diagram
Editing 46 Creating 109
Generalize 89, 104 Overview 108
Has 92 States 118
Illustration 6 Static 74, 88
Key/Qualifier 93 Stereotype 57, 84, 104, 164
Link 154 Benefits 179
Logical Package 92 Creating 183
Message 158 Creating Configuration File 183
Navigating the Tabs 52 Creating Icons 185
Object 132, 150 Description 179
Object Flow 135 Display 181
Operation 74 Icon 185
Package 166 Sample 188
Parameter 81 User-Defined 179
Process 176 Viewing 180
Processor 170 Subsystem Stereotype Package 188
Realize 90 Supplier Visibility 155
State 121 Support xxii
State Machine 107 Swimlane Specification 120
State Transition 126 Swimlanes 115
Swimlane 120 Swimlanes Tab 124, 130
Synchronization 130 Synchronization 160
Tab Buttons 51 Synchronization Specification 130
Use-Case 101 General Tab 131
Window 13 Transitions Tab 132
220 Index
Synchronizations 119 Type Libraries
About 195
Adding Class Members 207
T Customizing the Importer 208
Hiding and Displaying Items 205
Tabs
Importing into a Model 203
Buttons 51
Overview Diagram 199
Common 47
Reasons for Importing 196
Navigating 52
Referenced 200
Technical Support xxii
Types of Files to Import 196
Text
Updating 204
Changing Default Font Parameters 40
Using 207
Moving 41
Viewing in Rational Rose 197
Placing in Diagrams 40
Viewing in Visual Studio 202
Resized the Text Box 41
Time 77
Title Bar
Description 6
U
Illustration 6 Undo Fit in Window Button 10
Toolbar Undo Mistakes 35
Description 7 Upgrading 211
Illustration 6 URLs 50
Toolbox Use Cases 96
Adding Stereotypes 187 Use-Case Diagram
Class Diagram 54 Overview 95
Collaboration Diagram 140 Toolbox 100
Component Diagram 162 Use-Case Specification 101
Creating Icons for 186 Diagram Tab 102
Customizing 11 Relations Tab 103
Deployment Diagram 170 User-Defined Stereotype 179
Description 10
Illustration 6
Sequence Diagram 141 V
Use-Case Diagram 100
View Documentation Button 8
Training xxi
Virtual Inheritance 90, 105
Transition Between Substates 127
Visibility 155
Transition to Self 119
Visual Modeling 1
Transitions 119
Transitions Tab 123, 129, 132
Type 57, 72, 82, 122
Index 221
W
Workflows
Defining 113
Modeling with Activity Diagrams 114
Purposes 112
Understanding 111
Workspaces, see Model Workspaces
Z
Zoom In Button 9
Zoom Out Button 9
222 Index