MAGICDRAW TM UML USER S MANUAL. Version 5.5

Size: px
Start display at page:

Download "MAGICDRAW TM UML USER S MANUAL. Version 5.5"

Transcription

1 MAGICDRAW TM UML USER S MANUAL Version 5.5 No Magic, Inc August, 2002

2 MAGICDRAW TM 5.5 MANUAL Table of Contents 1 GETTING STARTED Graphical Software Description Unified Modeling Language (UML) Visual Modeling Installation System requirements Operating system - dependent issues Installation procedure MagicDraw TM UML: Pro and Std Editions Environment Options Look and Feel: Controlling Interface GENERAL CONCEPTS Project Creation of a new project Saving Loading Project options Dividing project into modules. Reusing project part Working with multiple projects MagicDraw TM UML and Rational Rose 2001/ Diagram Model Data Code Engineering Browser Containment tree Diagrams tree Inheritance tree Model Extensions Tree Working with model elements in the Browser tree Multiple selection Documentation/Zoom Control Filter DIAGRAM BASICS Working with Shapes and Paths (Symbols) Drawing shapes...46 No Magic, Inc of 428

3 3.1.2 Drawing paths Selection. Multiple selection Dragging, copying, cutting, and pasting Defining symbols Layout Zooming Using Grid Assigning Shortcut Keys Model Elements Common in all Diagrams HTML Text Note Anchor Constraint Separator DIAGRAMS Overview Use Case view Logical view Process view Component view Deployment view Class Diagram Shapes of elements in Class diagram Paths in Class diagram Classes Data types Attribute Operation Template / parameterized class Design Patterns Class presentation options Packages Subsystem Model Collaboration Relationships between classifiers Use Case Diagrams Elements in Use Case diagram Relationships in a Use Case diagram Actors Use Cases Relationships in Use Case diagram Interaction Diagrams Collaboration diagram overview Sequence diagram overview Collaboration diagrams...95 No Magic, Inc of 428

4 4.4.4 Sequence diagrams State and Activity Diagrams State diagram overview Activity diagram overview Elements in state diagram Elements in activity diagram State Concurrent state Synch state Submachine Call State Action state Subactivity state Pseudostates Object flow state Actions in state and activity diagrams Events Internal transitions Transition Decision point Signal sending / receipt shapes Swimlanes Implementation Diagrams Overview Shapes in implementation diagram Paths in implementation diagram Components Nodes UML Extension Mechanisms Stereotypes UML Web Extension Tagged values Object Constraints Language (OCL) CODE ENGINEERING Overview Code Engineering Sets Adding new sets Renaming and deleting sets Editing sets in the Round Trip Set dialog Generate Code Code Generation for Set Code Generation for Model Element Reverse Files of Properties Class Attribute No Magic, Inc of 428

5 5.5.3 Operation Parameter Association End Generalization Global options for Code Engineering Round Trip Type Mapping Table DDL Script Forward and Reverse Engineering MagicDraw TM UML forward engineering to DDL script MagicDraw TM UML reverse engineering for DDL script Unnamed constraint representation as a stereotype of an attribute DDL dialects Stereotypes for MagicDraw constructs Properties of code engineering set for DDL Supported SQL statements Tips EJB-UML TOOLS New Class Diagram Wizard Package Dependency Diagram Wizard Report Wizard General Options tab Select Package tab Select Diagrams tab Style Management tab Tools for Analysis Derived Classes Dependencies Creating Setters / Getters Implementing or Overriding Operations USER REFERENCE Menu System File menu Edit menu View menu Layout menu Diagrams menu Options menu Tools menu Window menu No Magic, Inc of 428

6 7.1.9 Help menu Toolbars Main toolbar Class diagram toolbar Use Case diagram toolbar Collaboration diagram toolbar Sequence diagram toolbar State diagram toolbar Activity diagram toolbar Implementation diagram toolbar Dialog Boxes Assign Main Diagram dialog Change Collaboration Numbering Code Engineering Sets dialog Color dialog Compartment Edit dialog Diagrams dialog Edit Constraints dialog Diagram Properties dialog Edit Stereotypes dialog Edit Tag Definitions dialog Editor Properties dialog Environment Options dialog Find Item dialog Font dialog Insert Hyperlink dialog Java Documentation Properties dialog License Key dialog New From Template dialog Pattern Wizard Print Diagrams dialog Print Options dialog Project Options dialog Retrieve DB Info dialog Reverse Options dialog Round Trip Set dialog Save As Template dialog Save Project Module dialog Submit a Bug dialog Tracing dialog Specification dialog es Stereotypes tab Tagged Values tab Constraints tab Action Specification dialog Action State Specification dialog Actor Specification dialog Association End Role Specification dialog Association End Specification dialog Association Role Specification dialog Association Specification dialog Attribute Specification dialog Binding Specification dialog No Magic, Inc of 428

7 Call State Specification dialog Class Specification dialog Classifier in State Specification dialog Classifier Role Specification dialog Collaboration Specification dialog Component Instance Specification dialog Component Specification dialog Constraint Specification dialog Data Type, Primitive, or Programming Language Data Type Specification dialog Dependency and its kinds Specification dialog es Enumeration Specification dialog Enumeration Literal Specification Event Specification dialog Extend Specification dialog Extension Point Specification dialog Generalization Specification dialog Guard Specification dialog Include Specification dialog Instances Specification dialog es Interface Specification dialog Link End Specification dialog Link Specification dialog Message Specification dialog Model Specification dialog Node Instance Specification dialog Node Specification dialog Object Flow State Specification dialog Operation Specification dialog Package Specification dialog Parameter Specification dialog Partition Specification dialog State Specification dialog State Vertex Specification dialog Stereotype Specification dialog Stimulus Specification dialog Subactivity State Specification dialog Submachine Specification dialog Subsystem Specification dialog Tag Definition Specification dialog Tagged Value Specification Template Parameter Specification dialog appears Transition Specification dialog Use Case Specification dialog No Magic, Inc of 428

8 Table of Figures FIGURE 1 -- LOOK AND FEEL THEMES SUBMENU...15 FIGURE 2 -- SAVE DIALOG BOX...18 FIGURE 3 -- SAVE AS IMAGE DIALOG BOX...20 FIGURE 4 -- PROJECT OPTIONS DIALOG BOX...22 FIGURE 5 -- MULTIPLE PROJECTS LIST...24 FIGURE 6 -- QUESTION...25 FIGURE 7 UNISYS ROSE XMI EXPORT/IMPORT MENU ITEMS...26 FIGURE 8 -- UNISYS ROSE UML EXPORT OPTIONS DIALOG BOX...27 FIGURE 9 -- ROSE UML IMPORT OPTIONS...28 FIGURE CREATE DIAGRAM DIALOG BOX...32 FIGURE BROWSER...36 FIGURE CONTAINMENT TREE...37 FIGURE GROUP DIAGRAMS IN DIAGRAMS TREE COMMAND...40 FIGURE INHERITANCE TREE...41 FIGURE MODEL EXTENSIONS TREE...42 FIGURE ZOOM TAB...44 FIGURE ITEMS FILTER DIALOG BOX...45 FIGURE SYSTEM VIEWS...59 FIGURE CLASS WITH PACKAGE NAME...67 FIGURE PRESENTATION OPTIONS SUBMENU...75 FIGURE 21 SUBSYSTEM WITH SUPPRESSED REALIZATION AND SPECIFICATION ELEMENTS...79 FIGURE SCHEMATIC VIEW OF THE USE CASES IN THE SYSTEM FIGURE INTERACTION REPRESENTATION IN 3-DIMENSIONAL VIEW...94 FIGURE COMPOSITE OBJECT...97 FIGURE ACTIVE OBJECT FIGURE COMPOSITE STATE FIGURE SYNCH STATE FIGURE 28 HISTORY STATE FIGURE JUNCTION POINT FIGURE DYNAMIC CHOICE POINT FIGURE STEREOTYPE FIGURE NEW SET DIALOG BOX FIGURE CODE ENGINEERING SETS SHORTCUT MENU FIGURE CODE ENGINEERING SETS TIP MESSAGE BOX FIGURE ROUND TRIP SET DIALOG BOX. ADD FILES TAB FIGURE ROUND TRIP SET DIALOG BOX. ADD DATA FROM MODEL TAB FIGURE CODE GENERATION OPTIONS DIALOG BOX FIGURE MESSAGES WINDOW FIGURE REVERSE OPTIONS DIALOG BOX FIGURE PROJECT OPTIONS DIALOG BOX FIGURE SET CLASSPATH DIALOG BOX FIGURE SET INCLUDE PATH DIALOG BOX FIGURE PACKAGE MAPPING EXAMPLE FIGURE CLASS MAPPING EXAMPLE FIGURE ATTRIBUTES MAPPING EXAMPLE FIGURE OPERATIONS MAPPING EXAMPLE FIGURE CARDINALITIES OF 1:N ASSOCIATION FIGURE :N ASSOCIATION AND MAPPED REPRESENTATION FIGURE :1 ASSOCIATION AND MAPPED REPRESENTATION FIGURE SINGLE INHERITANCE AND MAPPED REPRESENTATION FIGURE MULTIPLE INHERITANCE AND MAPPED REPRESENTATION No Magic, Inc of 428

9 FIGURE DATABASE EXAMPLE FIGURE 53 SCHEMA EXAMPLE FIGURE 54 TABLE EXAMPLE FIGURE 55 CONSTRAINTS EXAMPLE FIGURE 56 NOT NULL, NULL CONSTRAINTS EXAMPLE FIGURE 57 UNIQUE CONSTRAINT EXAMPLE FIGURE 58 PRIMARY KEY CONSTRAINT EXAMPLES FIGURE 59 FOREIGN KEY CONSTRAINT EXAMPLE FIGURE 60 CHECK CONSTRAINT EXAMPLE FIGURE 61 COLUMN WITH UNNAMED CONSTRAINT EXAMPLE FIGURE 62 COLUMN WITH TWO UNNAMED CONSTRAINTS EXAMPLE FIGURE 63 INDEX EXAMPLE FIGURE 64 TRIGGER EXAMPLE FIGURE 65 VIEW EXAMPLE FIGURE CG PROPERTIES EDITOR DIALOG BOX. DDL PROPERTIES FIGURE CLASS DIAGRAM WIZARD. DIAGRAM NAME FIGURE CLASS DIAGRAM WIZARD. PARENT PACKAGE FIGURE CLASS DIAGRAM WIZARD. SELECT ELEMENTS FIGURE CLASS DIAGRAM WIZARD. TYPES OF PATHS FIGURE CLASS DIAGRAM WIZARD. CLASS OPTIONS FIGURE PACKAGE DEPENDENCY DIAGRAM WIZARD. DIAGRAM NAME FIGURE PACKAGE DEPENDENCY DIAGRAM WIZARD. PARENT PACKAGE FIGURE PACKAGE DEPENDENCY DIAGRAM WIZARD. SELECTED OBJECTS FIGURE PACKAGE DEPENDENCY DIAGRAM WIZARD. SELECT CRITERIA FIGURE REPORT WIZARD. GENERAL OPTIONS TAB FIGURE 77 REPORT WIZARD. SELECT PACKAGE TAB FIGURE REPORT WIZARD. SELECT DIAGRAMS TAB FIGURE REPORT WIZARD. STYLE MANAGEMENT TAB FIGURE DERIVED CLASSES ANALYSIS WIZARD. DIAGRAM NAME FIGURE DERIVED CLASSES ANALYSIS WIZARD. DIAGRAM NAME FIGURE DERIVED CLASSES ANALYSIS WIZARD. SELECT LINKS FIGURE DERIVED CLASSES ANALYSIS WIZARD. CLASS OPTIONS FIGURE CLASS DEPENDENCY ANALYSIS WIZARD. DIAGRAM NAME FIGURE CLASS DEPENDENCY ANALYSIS WIZARD. PARENT PACKAGE FIGURE CLASS DEPENDENCY ANALYSIS WIZARD. TYPE OF DEPENDENCY FIGURE CLASS DEPENDENCY ANALYSIS WIZARD. SELECT TYPES OF PATHS FIGURE CLASS DEPENDENCY ANALYSIS WIZARD. CLASS OPTIONS FIGURE SELECT ATTRIBUTES DIALOG BOX FIGURE SELECT OPERATIONS TO IMPLEMENT/OVERRIDE DIALOG BOX FIGURE COMMAND LINE DIALOG BOX FIGURE ASSIGN MAIN DIAGRAM DIALOG BOX FIGURE CHANGE COLLABORATION NUMBERING DIALOG BOX FIGURE CODE ENGINEERING SETS DIALOG BOX FIGURE COLOR DIALOG BOX. SWATCHES TAB FIGURE COLOR DIALOG BOX. HSB TAB FIGURE COLOR DIALOG BOX. RGB TAB FIGURE COMPARTMENT EDIT DIALOG BOX FIGURE DIAGRAMS DIALOG BOX FIGURE 100 EDIT CONSTRAINTS DIALOG BOX FIGURE DIAGRAM PROPERTIES DIALOG BOX FIGURE EDIT STEREOTYPES DIALOG BOX FIGURE EDIT TAG DEFINITIONS DIALOG BOX FIGURE EDITOR PROPERTIES DIALOG BOX FIGURE ENVIRONMENT OPTIONS DIALOG BOX. GENERAL PANE FIGURE EXAMPLE OF ICONS IN DIALOG BOXES FIGURE 107 ENVIRONMENT OPTIONS DIALOG BOX. DIAGRAM PANE No Magic, Inc of 428

10 FIGURE ENVIRONMENT OPTIONS DIALOG BOX. BROWSER PART FIGURE ENVIRONMENT OPTIONS DIALOG BOX. TEAMWORK PANE FIGURE ENVIRONMENT OPTIONS DIALOG BOX. KEYBOARD PART FIGURE FIND ITEM DIALOG BOX FIGURE FONT DIALOG BOX FIGURE INSERT HYPERLINK DIALOG BOX FIGURE JAVA DOCUMENTATION PROPERTIES DIALOG BOX FIGURE LICENSE KEY DIALOG BOX FIGURE NEW FROM TEMPLATE DIALOG BOX FIGURE PATTERN WIZARD FIGURE PRINT DIAGRAM DIALOG BOX FIGURE PRINT OPTIONS DIALOG BOX. PRINT TAB FIGURE 120 PRINT OPTIONS DIALOG BOX. PRINT HEADER/FOOTER TAB FIGURE PROJECT OPTIONS DIALOG BOX. STYLES SECTION FIGURE PROJECT OPTIONS DIALOG BOX. STYLES FIGURE PROJECT OPTIONS DIALOG BOX. CODE ENGINEERING FIGURE SET CLASSPATH DIALOG BOX FIGURE SET INCLUDE PATH DIALOG BOX FIGURE RETRIEVE DB INFO DIALOG BOX FIGURE REVERSE OPTIONS DIALOG BOX FIGURE CODE ENGINEERING SETS SHORTCUT MENU FIGURE CODE ENGINEERING SETS TIP MESSAGE BOX FIGURE ROUND TRIP SET DIALOG BOX. ADD FILES TAB FIGURE ROUND TRIP SET DIALOG BOX. ADD DATA FROM MODEL TAB FIGURE SAVE AS TEMPLATE DIALOG BOX FIGURE SAVE PROJECT MODULE DIALOG BOX FIGURE SUBMIT A BUG DIALOG BOX FIGURE TRACING DIALOG BOX FIGURE STEREOTYPES TAB FIGURE TAGGED VALUES TAB FIGURE CONSTRAINTS TAB FIGURE ACTION SPECIFICATION DIALOG BOX FIGURE ACTIONS STATE SPECIFICATION DIALOG BOX FIGURE ACTOR SPECIFICATION DIALOG BOX FIGURE ASSOCIATION END ROLE SPECIFICATION DIALOG BOX FIGURE ASSOCIATION END SPECIFICATION DIALOG BOX FIGURE ASSOCIATION ROLE SPECIFICATION DIALOG BOX FIGURE ASSOCIATION SPECIFICATION DIALOG BOX FIGURE 146 ATTRIBUTE SPECIFICATION DIALOG BOX FIGURE BINDING SPECIFICATION DIALOG BOX FIGURE CLASS SPECIFICATION DIALOG BOX FIGURE CLASSIFIER IN STATE SPECIFICATION DIALOG BOX FIGURE CLASSIFIER ROLE SPECIFICATION DIALOG BOX FIGURE COLLABORATION SPECIFICATION DIALOG BOX FIGURE COMPONENT INSTANCE SPECIFICATION DIALOG BOX FIGURE COMPONENT SPECIFICATION DIALOG BOX FIGURE CONSTRAINT SPECIFICATION DIALOG BOX FIGURE DATA TYPE SPECIFICATION DIALOG BOX FIGURE 156 DEPENDENCY KINDS SPECIFICATION DIALOG BOX FIGURE ENUMERATION SPECIFICATION DIALOG BOX FIGURE ENUMERATION LITERAL SPECIFICATION DIALOG BOX FIGURE EVENT SPECIFICATION DIALOG BOX FIGURE EXTEND SPECIFICATION DIALOG BOX FIGURE EXTENSION POINTS DIALOG BOX FIGURE EXTENSION POINT SPECIFICATION DIALOG BOX FIGURE GENERALIZATION SPECIFICATION DIALOG BOX No Magic, Inc of 428

11 FIGURE GUARD SPECIFICATION DIALOG BOX FIGURE INCLUDE SPECIFICATION DIALOG BOX FIGURE INSTANCE SPECIFICATION DIALOG BOX FIGURE INTERFACE SPECIFICATION DIALOG BOX FIGURE LINK END SPECIFICATION DIALOG BOX FIGURE LINK SPECIFICATION DIALOG BOX FIGURE MESSAGE SPECIFICATION DIALOG BOX FIGURE MODEL SPECIFICATION DIALOG BOX FIGURE NODE INSTANCE SPECIFICATION DIALOG BOX FIGURE NODE SPECIFICATION DIALOG BOX FIGURE OBJECT FLOW STATE SPECIFICATION DIALOG BOX FIGURE OPERATION SPECIFICATION DIALOG BOX FIGURE PACKAGE SPECIFICATION DIALOG BOX FIGURE PARAMETER SPECIFICATION DIALOG BOX FIGURE PARTITION SPECIFICATION DIALOG BOX FIGURE STATE SPECIFICATION DIALOG BOX FIGURE STATE VERTEX SPECIFICATION DIALOG BOX FIGURE STEREOTYPE SPECIFICATION DIALOG BOX FIGURE STIMULUS SPECIFICATION DIALOG BOX FIGURE SUBACTIVITY STATE SPECIFICATION DIALOG BOX FIGURE SUBMACHINE SPECIFICATION DIALOG BOX FIGURE SUBSYSTEM SPECIFICATION DIALOG BOX FIGURE TAG DEFINITION SPECIFICATION DIALOG BOX FIGURE TAGGED VALUE SPECIFICATION FIGURE TEMPLATE PARAMETER SPECIFICATION DIALOG BOX APPEARS FIGURE TRANSITION SPECIFICATION DIALOG BOX FIGURE USE CASE SPECIFICATION DIALOG BOX No Magic, Inc of 428

12 1 Getting Started 1.1 Graphical Software Description Today s graphical software can be extremely complex in its structure and architecture, but that does not mean it must be difficult to use. We have learned much from the hardware industry, where everything you see is scattered pieces. This approach also works well in the software world objects at a higher abstraction level are treated like software pieces. To simplify the process further, we may use pictures instead of textual descriptions to show the relationships between objects in a complex system. Though pictures work better than textual descriptions alone, experience has proven that communicating complex ideas effectively requires more than simple flowcharts. 1.2 Unified Modeling Language (UML) Early methodologies, such as Booch notation, OMT, and others, served the same purpose: to graphically express the software s architecture information. However, these methodologies accomplished this in slightly different ways and with different levels of thoroughness. In 1994, Grady Booch, Jim Raumbaugh, and Ivar Jacobson came together to unify their varied methods and experience. The UML (Unified Modeling Language) was the fruit of their joint effort. UML was crafted with two objectives: To reflect the best practices of the industry, and to Demystify the process of software system modeling. In short, UML provides standardized pictures of your software applications and allows your development team to quickly grasp the functionality contained within the application. UML is a language and a process with neutral notation, which means that you may use it to design your entire OO system in any programming language and any software development process. 1.3 Visual Modeling The development of a model for an industrial-strength software system, prior to its construction or renovation, is as essential as having a blueprint for a large building. Good models are vital for effective communication among project teams. In the early 1990s, the tools for OO software modeling emerged, followed by the development of the visual modeling approach. Visual modeling means that you first design your system by drawing diagrams (blueprints) and then employ tools to convert those diagrams into code. The value of such an approach is that the often tedious framework coding is done automatically, freeing the programmer to focus on design issues, plus, the transition from the design to the implementation phase is smoother more and straightforward. Moreover, using the features of reverse engineering and code generation, the developer may move back and forth between the code and the design that is expressed in the diagrams. Today, visual modeling tools provide many features that replace some of the more tedious tasks for the designer, programmer, and documentation writer. Some of the leading tools provide so-called code round-trip engineering capabilities the structure of reverse engineered code is changed in the modeling tool and is generated back without the implementation of specific information (e.g. method bodies, comments) loss. MagicDraw TM was developed as a desktop modeling tool and encompasses the following features: No Magic, Inc of 428

13 Saving UML metamodel information in XMI (XML Metadata Interchange) format, allowing the exchange of information with other XMI compatible tools Round trip engineering for major OO languages UML 1.4 support and easy diagramming Metamodel synchronization (pick-lists of the methods and classes are available, and the change in one model entity is instantly reflected in all other places where that entity is referenced) and Model navigation (the browser control and double-click link in diagrams) Advanced printing features (print preview, various zooming factors, fit to page, customizable header and footer, etc.) Diagram exporting (converting your blueprints to the JPEG, PNG, DXF, EPS, WMF, SVG images) Copying diagrams directly to your system clipboard (available only under Windows) Robustness of the tool Forte for Java IDE integration. Installed into Forte4J environment as additional module, Forte4J Look and Feel, Forte4J windowing style, automatic diagrams creation and updating, UML data update according to source code Integration with Borland's JBuilder 5.0. Automatic model and code change tracking. GUI in multiple languages (MagicDraw TM UML now available in five languages: English, German, Japanese, Korean, Spanish, and Thai.) Teamwork support Toolset for the management of users and their permissions Customizable model reports based on XSL Diagram images embedded in reports Pattern generator Customizable toolbars Java bytecode (.class) files reverse engineering UML diagram extensibility support. Icons for RUP (Rational Unified Process) and WAE (Web Application Extension) are included via templates; user can define custom appearance for every diagram element using SVG or bitmap images. Project templates with class libraries and UML extensions can be predefined for new projects. Support for "enums" and templates. Database design support. MagicDraw TM can retrieve database structure via JDBC connection or by parsing DB schema (DDL) files and then present it as a UML class diagram. Database schema (DDL file) can be generated from the class diagram. Unisys XMI extension for Rational Rose support. MagicDraw TM can read/write UNISYS UML XMI extensions. XMI is validated and confirms to a standard by 100%. Hyperlinks in diagrams. Now any text note and text can contain hyperlinks to the element in the same or other diagram. You can embed HTML fragments to the diagram to use different fonts and colors in the same text and note. Customizable shortcuts. User may define/edit/re-assign custom shortcuts for menu items and actions. Bezier curve mode for links. Next to the oblique and rectilinear, the third path display mode is added. This mode is particularly useful in state diagrams. EJB-UML notation support. You may model EJB classes and generate descriptors for them. You may also reverse descriptors and will get a model describing your Enterprise Java Beans. No Magic, Inc of 428

14 1.4 Installation System requirements To run MagicDraw UML, your system must meet the following requirements: Resource type Minimum Recommended CPU Pentium II 300 Pentium III 600 Memory 128 MB 256 MB or more Disk space 60 MB 60 MB or more Video mode Operation system 64k Colors All that have Java compatible JVM k Colors Windows 2000/NT or Linux, since most development and testing was done on those platforms HTML browser Any Netscape Navigator or IE Java Virtual Machine (JVM) JDK 1.3 Sun s JDK 1.4 To use the MagicDraw UML's release that contains no Java Virtual Machine (JVM), you should have the JVM installed on your computer. JVM is an application that provides the interpretation of the bytecode Java class files. Different operating systems may have different JVM implementations, thus some bugs may be specific to the operating system or JVM. MagicDraw is a stable environment, if it is configured properly and if the stable JVM is used. USE RECOMMENDED JVM TO AVOID A LOT OF PROBLEMS. All recommendations are written below. As MagicDraw is a Java application, most of the stability and performance depends on the JVM implementation. Refer to the JVM specification and problems' description, if you have problems on the specific OS. JDK 1.1.x and 1.2.x is not supported. You can review your system and JVM information from Help->System Information dialog (of course, if you have installed MagicDraw already). JDK version also can be encountered from command line by writing: java -version Operating system - dependent issues Because MagicDraw is 100% Pure Java, it is platform independent and runs on a variety of operating systems. However, for Java applications to interact properly with the operating system, Java Virtual Machine (JVM) software is required. JVM software varies depending on the operating system, and MagicDraw may perform inadequately with the wrong one. The performance of Java applications depends on the performance of the Java Virtual Machine. A badly designed Machine may degrade the performance of MagicDraw. It could even cause MagicDraw to fail or crash. To avoid these problems, we recommend that you use the following Virtual Machines: Sun (JDK standard) for Solaris and Linux. JDK 1.4 is recommended. No Magic, Inc of 428

15 Sun (JDK standard) for Windows (2000, NT, 95/98). JDK 1.4 is recommended. MagicDraw runs only on Mac OS X operating system. We recommend to use JDK1.3.1 DP2 or later. MagicDraw has some problems on default Mac OS X JDK (JDK1.3) Installation procedure First, obtain the MagicDraw installation files. You may download the latest version from the MagicDraw homepage ( or get a demo CD or commercial maintenance release. Because MagicDraw is a Java application, you will need more than the installation files to run the tool successfully. The tool will not run if you haven't already installed the Virtual Machine. Information about the latest Java ports is available at NOTE If an installation is for Windows, and has a JVM you don't need anything else. Windows 2000/9x/NT/XP After downloading, double-click MD_UML_55i.exe The Setup Wizard automatically adds MagicDraw TM UML shortcuts to the start menu and the desktop. You may also execute the shortcuts from the installation directory. UNIX After downloading, open a shell and go to the directory where you downloaded the installer. At the prompt type: sh./md_uml_55i.sh Macintosh After downloading, double-click MD_UML_55i.zip Requires PowerPC and Mac OS X 10.0 or later The installer will be recognized by Stuffit Expander and will be automatically decoded after downloading. If it does not, you can decode it using StuffIt Expander 6.0 or later All other platforms instructions After downloading the MagicDraw installation file, extract it to the desired directory and try launching MagicDraw with /bin/run.sh or /bin/run.bat: In the startup script (run.sh or run.bat) that is located in the bin directory, specify your system configuration (Java home directory) and the directory where you have extracted MagicDraw files and run startup script. -or- Run MagicDraw from command line: Go to MagicDraw installation directory and use command line: java -jar lib/md.jar md.main -D 1.5 MagicDraw TM UML: Pro and Std Editions MagicDraw TM comes in two editions: Standard Edition -- provides developers with an affordable design tool. No Magic, Inc of 428

16 Professional Edition -- built on Standard Edition capabilities and adds: Code generation, Reverse engineering, Round-trip engineering, Java, C++, and CORBA IDL code engineering, Database design support. 1.6 Environment Options You may customize MagicDraw TM tool according to you preferences. Change the application settings of your project in the Environment Options dialog. To choose the language: default to your settings, English, German, Thai, or Japanese. 1. Choose Environment from the Options menu. 2. The Environment Options dialog appears. 3. Choose the language and restart MagicDraw TM to apply changes. 1.7 Look and Feel: Controlling Interface The appearance of MagicDraw TM UML windows, dialog es, menus, and everything inside them can be changed. To make changes to the interface From the Options menu, choose Look and Feel and then choose the style you wish. Figure 1 -- Look and Feel Themes submenu No Magic, Inc of 428

17 Mac Metal Motif Windows Kunststoff The style of Mac applications Standard Java Swing library (default) Similar to GUI that is used on UNIX operating systems Microsoft Windows 95, Windows NT 4.0, Windows 2000 interface Is an extension of the Java Metal Look and Feel. MagicDraw TM will have a more modern and smoother look. The chosen style will not look exactly like the applications in those operating systems because every style of graphical interface is implemented within a Swing library, but it will look quite similar. Depending on which operating system you use, some choices might be unavailable to you. For example, Windows9x/NT users may not switch to the Mac interface style. Look and Feel Themes themes listed in Look and Feel Themes subcommands are valid only for the metal style. Choose from any of the following themes: Aqua Contrast Big Contrast Green MagicDraw Big MagicDraw Khaki Custom set your own options in the Properties dialog. MagicDraw TM offers two ways to work with diagram windows: MDI or SDI. To make your selection, from the Options menu, select Interface Style, and then choose one of the following interface styles: Multiple Windows Single Window (default) Multiple windows style (MDI) allows you to manage all windows independently, as if they belong to different applications. For instance, you may overlap the tool s windows across each other, resize them independently and so on. There is no main window where all other windows are placed. Single Window style (SDI) gives you a common, main window where all other windows are placed. The main window controls the layout of the other windows. No Magic, Inc of 428

18 MAGICDRAW TM 5.5 MANUAL 2 General Concepts 2.1 Project The term project is used to describe the problem that must be solved, including all the possible solutions for how the problem can be resolved and finally developed, and all works in MagicDraw TM UML are organized into projects. Project is a top one entity where all model-related data (the set of diagrams) is held. Project data is organized by object orientation, which makes its management intuitive and in accordance with the problem that is being solved Creation of a new project All project information is stored in a single file. A project name matches the file name where the project is saved. To start a new project, you must create a new workspace for it. To create a new workspace for a project To create a new project from an already created template To import an already created project to the opened project From the File menu, choose New Project. On the main toolbar, click the Create New Project button. Press shortcut key CTRL+N. In all cases, you will receive a new project named UntitledN, and it is selected as an active project. From the File menu, choose New From Template command. The New From Template dialog appears. 1. From the File menu, choose the Import Project command. 2. The Open dialog appears. Choose the project you want to import and click OK. The diagrams of the imported project are placed in the opened one. The newly created project consists of the following packages: Data package is empty and holds all model elements. Component View package contains components that are created during the code engineering and represent source files. Adding a resident element to a particular component causes that element to be generated within the source file. Data Types package contains primitive data types primitive classes that can be used in various cases. The following data types are specified in Magic Draw: Boolean, byte, char, double, float, int, long, short, and void. These packages are used for grouping the elements that will be created within the project. You may also create your own packages for holding the model elements, but, by default, packages may not be deleted or renamed in a project (except for the Component View package). No Magic, Inc of 428

19 2.1.2 Saving IMPORTANT! Beginning with MagicDraw TM version 3.6, the native MagicDraw TM format is.xml. Saving in.mdf format is not allowed. To save changes for the later sessions, revised projects must be saved. While saving, you may edit the changeable name of the project and the file format. To save the project 1. From the File menu, choose the Save Project or Save Project As command, or click the Save button on the main toolbar, or press shortcut keys CTRL+S. The Save dialog appears. 2. Select the destination directory (where you wish to save the project) and type the file name for it. 3. Choose the format for saving a project: packed XML (*xml.zip) (default) or Extensible Markup Language (*.xml) 4. Choose the version of XMI or 1.1. Figure 2 -- Save dialog If the Create Backup File check is selected in the Environment Options dialog, MagicDraw TM always creates a backup file that has the previously saved project. The backup is held in a file with a name identical to that of the project. Saving a project module In MagicDraw TM, you may save a separate project module(s) (diagram, package, subsystem, or model) in a different file. No Magic, Inc of 428

20 To save the selected project module 1. From the File menu, choose the Save Project Module command. 2. The Save Project Module dialog appears. 3. Choose diagram(s) and/or packages you want to save in a different file. To save only the selected project module without the connected elements, clear the Full Dependency check. Saving project as template You may save the created project as template and use the same project for creating other new projects. To save project as template To create a project using already created template 1. Open a project you want to save as template. From the File menu, choose the Save As Template command. 2. The Save As Template dialog appears. 3. Type the name and a description of a template. 4. Click OK. 1. From the File menu, choose the New From Template command. 2. The New From Template dialog appears. Choose the template you want to use for the newly created project. 3. Click OK. Saving diagram as image Diagrams that were created in the model can be saved as image in the following formats: JPEG File Format (*.jpg, *.jpeg) Portable Network Graphics (*.png) Drawing Exchange Format (*.dxf) Encapsulated PostScript (*.eps) Windows Metafile Format (*wmf) Scalable Vector Graphics (*.svg) To save the current diagram, or the selected element, within the diagram as an image Choose the Save Diagram as Image command, from the File menu. The Save dialog appears. Select the file format (*.svg, *.eps, *.dxf, *.wmf, *.png, *.jpg, *.jpeg), file name, and the location directory. To save all of your project diagrams as an image 1. Choose the Save All Diagrams As Image command from the File menu. The Save As Image dialog (see Figure 3 -- Save As Image dialog ) appears. 2. Choose diagrams you want to save as image from the Not Empty Diagrams list. 3. In the Working Directory field, type in the name of the destination directory, or click the... button to, browse the directory list, 4. Select the graphical file format in the File Format drop down list (JPG, PNG, WMF, DXF, EPS, or SVG.) 5. Click the Save button. No Magic, Inc of 428

21 Figure 3 -- Save As Image dialog The Not Empty Diagrams list contains all exportable diagrams that contain UML elements. Empty diagrams are not displayed, select the diagrams you wish to export: To make multiple selections To select or unselect all diagrams To display in the list all diagrams that are available in the project press the CTRL key and click the diagrams you wish to export. Click the Select All button (press CTRL+A keys) or Unselect All button. Click the Load All Diagrams button in the Save As Image dialog. Buttons available in the Save As Image dialog : Save Close Help Saves the selected diagrams as image. The filename of the saved diagram will be the same as the name of that diagram. Cancels the saving process. Displays MagicDraw TM Help. No Magic, Inc of 428

22 2.1.3 Loading IMPORTANT! Beginning with MagicDraw Version 3.6, the native MagicDraw TM format is.xml. Saved projects can be loaded back to MagicDraw. To edit or review already created projects 1. From the File menu, choose Open Project, or click the Open Project button on the main toolbar. 2. In the Open dialog, choose the project you wish to open and click the Open button. NOTE: If the Open Last Project on Startup check in the Environment Options dialog is selected, the last project you worked with will be opened right after MagicDraw starts. TIP: Drag and drop the project you wish to open directly from the open window to the MagicDraw. The project is started at once. You may load more than one project within the same MagicDraw session. Separate workspaces will be created for each project that is opened Project options The Project Options dialog is used for defining properties for model elements (shapes and paths) and diagrams, for creating your own project style, importing or exporting the created project style, and defining code engineering options. To change the default project options and Code Engineering tasks Choose Project from the Options menu. The Project Options dialog appears. No Magic, Inc of 428

23 Figure 4 -- Project Options dialog To find elements to change, browse the options tree in the Project Options dialog. The items in this hierarchy are either: Compressed - a plus sign next to an icon indicates that the icon is compressed, and contains other model elements. This is the default setting when you start your application. Click the plus sign to expand the icon and view its subordinate items. Expanded - a minus sign next to an icon indicates that the icon is fully expanded. Click the minus sign to collapse the item. If there is no sign next to an icon, it does not contain other model elements. The Project Options dialog has two main collections of customizable options. They are represented by a hierarchy tree on the left side of the dialog : Styles Code Engineering Expands tree hierarchy of all the styles defined within the project. You may create as many of these styles as you like. Refer to the Section 5.6, Global options for Code Engineering NOTE To apply the changed project option to the opened project, click the Apply button. No Magic, Inc of 428

24 To create a new style by cloning the existing one To change the name of the selected style To remove the selected style To make a selected style your default style for newly created projects To apply the selected style or changed option to a current project To import an already created (and exported) project style To save the created style (export) for a later usage or for other users 1. Select the default style in the Styles list and click the Clone button. 2. Type the name for the new style in the Rename Style dialog. 3. Change options of the new style. 1. Select a style you want to rename and click the Rename button. 2. Type a new name for the style in the Rename Style dialog. Click the Delete button in the Project Options dialog. Click the Make Default button in the Project Options dialog. Click the Apply button in the Project Options dialog. Click the Import button. The Open dialog appears. Select the style you wish to import (*.stl). Click the Export button. The Open dialog appears. Select the directory where you wish to export a style. Every style has its own presentation of Shape, Path, and Diagram that you may modify using the Project Options dialog in the Styles branch. You may set your own options for every model element to the current style. Shape and Path branches have the inner structure that helps you find the model element, the representation of which must be changed. The section on the right side of the dialog contains possible choices and instruments to manage them. The following properties are defined for the formatting symbols: Shape. Set general options for the shapes on the Diagram pane in the section on the right side of the Project Options dialog. You may set such options for all shapes that appear on the Diagram pane. Path. Set general options for the paths on the Diagram in the section on the right side of the Project Options dialog. You may set options for all shapes that appear on the Diagram pane. Diagram options. Set general options about a diagram. For the detailed descriptions of the Project Options dialog, see Section , Project Options dialog. No Magic, Inc of 428

25 2.1.5 Dividing project into modules. Reusing project part Every MagicDraw UML project module (package or diagram) or group of them can be saved into separate xml file: choose the Save Project Module command from the File menu. You can save reusable model part as module xml file. Module file is a simple MagicDraw UML project file and can be opened as separate project. Module xml file later can be imported into other MagicDraw UML project: choose the Import Project command from the File menu. All elements from module xml file are copied into the target project. There is no linkage between these two projects (files) after import; both these files can be used separately. NOTE: We do not suggest using modules for splitting project into parts and developing these parts simultaneously. After splitting, you will need to merge all project parts into one project. Only model elements are merged on import. If you have the same diagram exported into separate files, it will be duplicated after importing it back. We use simple rule for model elements merging - two model elements are equal if names are equal. If the same model element was exported into two files and name of it was changed in one file, you will have two model elements after merging these two parts. Primary purpose of Save Project Module functionality was to allow the user to export some project part into separate file and import later it into another project. This is not the same as splitting project into parts and connecting these parts into one project later. The best solution for group work on the same project is MagicDraw UML Teamwork Server. For more information about the Teamwork Server, see the MagicDraw Teamwork System User s Guide Working with multiple projects Because you may have to manage several projects at the same time, MagicDraw TM allows you to work with several projects simultaneously. All opened projects are held in separate workspaces. Different activated projects may exchange data. Entities from the one project can be copied or moved to another. To switch between loaded projects In the Projects drop-down combo, click the additional project you wish to open. Choose Projects from the File menu and click the name of the project you wish to open. Figure 5 -- Multiple projects list To close all opened projects Choose Close All Projects from the File menu. The Question message appears. No Magic, Inc of 428

26 Figure 6 -- Question Choose the way your projects will be closed: Yes Yes to All No No to All The project you are currently closing will be saved (its name appears in the question). Dialog is displayed again when the next project closes. Save all projects without prompting. The Save dialog appears for each opened project. Project you are currently closing will not be saved. The dialog is displayed again when the next project closes. All the projects will be closed without saving and prompting. To exchange model entities between opened projects Use the Cut, Copy, and Paste commands in the Edit menu, or appropriate shortcut keys: CTRL+X, CTRL+C, CTRL+V or the toolbar buttons. Drag-and-drop the created model element from the Browser tree to the Diagram pane. NOTE Data may only be exchanged between projects that are currently opened within MagicDraw. You may not copy/paste elements between instances of different tools that are currently running or to other applications. No Magic, Inc of 428

27 2.1.7 MagicDraw TM UML and Rational Rose 2001/2002 MagicDraw supports Rose XMI model exchange model. Rational Rose To prepare Rational Rose for XMI exchange 1. Download Rose 2001a/2002 XMI support add-in at ml_133.zip 2. After you have installed XMI support for Rational Rose, two new menu items Export Model to UML and Import UML Model appears under Tools menu. These items are for XMI exchange. Figure 7 Unisys Rose XMI export/import menu items No Magic, Inc of 428

28 To export the opened Rational Rose project to XML file. 1. From the Tools menu, choose the Export Model to UML command. 2. The Unisys Rose UML Export Options dialog appears (see Figure 8 -- Unisys Rose UML Export Options dialog ). Select the XMI 1.0 format option button (only XMI 1.0 format is supported by MagicDraw ) from the XMI Format group. Select the Model check from the Output File Basis and click OK. Figure 8 -- Unisys Rose UML Export Options dialog 3. The Save XML File dialog appears. 4. Type the name of the XML file and choose the directory where to save the file. NOTES: Before exporting Rational Rose project, it must be saved as MDL file. While exporting: XMI 1.0 and Model check-es should be selected. No Magic, Inc of 428

29 To import a model from XMI format 1. From the Tools menu, choose the Import UML Model command. 2. The Import XML File dialog appears, choose the desired XML file and click the Open button. 3. The Rose UML Import Options dialog appears, press OK button. Figure 9 -- Rose UML Import Options 4. Creates a new project and imports model from XML file. MagicDraw To export MagicDraw UML project to Rose supported XMI format To open the XML file exported by Rational Rose 1. Open the project file you want to export to XMI format. 2. From the File menu, choose the Export as Unisys XMI. 3. The Save dialog appears. Type the name of the project and choose the directory where to save the file. 1. From the File menu, choose the Open Project command. 2. The Open dialog appears. Choose the desired project file and click the Open button. No Magic, Inc of 428

30 Metamodel and XMI incompatibilities Field Rational Rose does not support MagicDraw does not support Common Constraints and Constraint link Tag Definitions Multiple stereotypes for model elements Names of the model elements must be unique because data is collected according to name. Class diagrams Data Type Primitive Programming Language Data Type Enumeration Collaboration Object and Link Dependency between Package and Class Subsystem and Model (are imported as Packages with appropriate stereotypes) Containment Generalization stereotype and documentation are not exported Names of the model elements can be not unique because data is collected according to ID. MagicDraw does not have Association Class element (Link Attribute + Class). Use Case diagrams Include relationship Extend relationship Dependency between Use Cases, between Actor and Use Case Collaboration diagrams Instance Object Subsystem Instance Use Case Instance Link Stimulus Nested message numbering Classifier Role (is imported as Object) Association Role (is imported as Link) Does not read Association Role name. Sequence diagram Diagonal message Concurrent Lifeline Recursive Message No Magic, Inc of 428

31 Field Rational Rose does not support MagicDraw does not support State diagram (Statechart diagram in Rose) Action State (is imported as Activity) Concurrent State (is imported as State) Synch State (is imported as State) Junction Point (is imported as Decision) Stub State (is imported as State) Submachine State (is imported as State) Call State is (imported as Activity) Activity diagram Action State (is imported as Activity) Concurrent State (is imported as State) Call State (is imported as Activity) Submachine State (is imported as State) Subactivity State (is imported as Activity) Signal Receipt Signal Sending Object Flow state Swimlanes are not displayed in diagram. Implementation diagram (deployment and component diagrams in Rose) Nodes are imported as Processors in Deployment View Associations between Nodes are imported as Connections (Connection name is not imported/exported) Dependency between Node elements Artifact Package Instance Node Instance Component Instance Interface Class (also corresponding relationships are not supported) Link Association between Component elements Abstraction between Component elements (is exported as Dependency) Connection (element not defined by UML 1.4) Other noticed incompatibilities 1. Unisys XMI format does not support rectilinear property and breakpoints for relationships in the diagrams. No Magic, Inc of 428

32 2. Rational Rose exports Class Instance elements as Object elements. 3. Rational Rose does not export symbol style for Package, Message, Component, Transition, Synchronization and Swimlane. 4. Rational Rose does not export Stereotype display option. 5. Rational Rose does not export Show Class option for Object element in Collaboration diagram. 6. Rational Rose does not export Show Actions and Show Nested Elements options for State/Activity element in Statechart/Activity diagram. 7. If Note element is empty, Rational Rose exports additional empty Note element. 8. Rational Rose does not export anchor between Note and Link, Note and Message, Note and Connection. 2.2 Diagram Models help systems developers understand what type of system to develop and which method to use. For this reason, model creation is usually one of the first steps of any project, and models are used during all stages of development. MagicDraw supports Unified Modeling Language (UML) 1.4, a standard modeling language. Diagrams are the primary instrument of the UML language, and they contain views of specified UML. Diagrams can provide different perspectives of the project, which helps to create a thorough analysis of the system. By combining diagrams, developers can see multiple views of the system. No Magic, Inc of 428

33 To create a new diagram 1. Create a new diagram in one of the following ways: Click the appropriated toolbar button. From the Diagrams menu, choose the diagram you want to create and click the Add button in the Diagrams dialog. Press the appropriated shortcut keys. 2. The Create Diagram dialog appears. Figure Create Diagram dialog 3. Choose the parent package for the newly created diagram or create a new package by clicking the New button. You create the following diagrams using MagicDraw: Use case diagram Class diagram System functions from the user s standpoint. For more information about use case diagram, see Section, 4.3 "Use Case Diagrams on page 86. Static structure of system in terms of classes, packages and their relationships. For more information about class diagram, see Section, 4.2 Class Diagram on page 60. No Magic, Inc of 428

34 State diagram (Statechart diagram) Activity diagram Sequence diagram Collaboration diagram Component diagram Deployment diagram Class states diagram For more information about state diagram, see Section, 4.5 State and Activity Diagrams on page 109. A set of actions involved by some operation For more information about activity diagram, see Section, 4.5 State and Activity Diagrams on page 109. Representation of the interactions between the objects For more information about sequence diagram, see Section, Sequence diagrams on page 104. Interactions between the objects For more information about collaboration diagram, see Section, Collaboration diagrams on page 95. Physical components such as files and hardware For more information about component and deployment diagrams, see Section, 4.6 Implementation Diagrams on page 127. Spread of components on the particular hardware For more information about component and deployment diagrams, see Section, 4.6 Implementation Diagrams on page Model Data MagicDraw, as UML standard, differentiates two concepts: model data and symbol. Model data is a collection of information that is encapsulated by some model element. Symbols are responsible for the representation and reflection of a data entity (in textual or graphical form). In diagrams, symbols may not exist alone. They always have an assigned model element data. Data entities may have multiple independent symbols. Data updating makes changes in all other symbols. Changing the entity in one symbol updates the entity in the remaining symbols. If the entity is deleted from one symbol, or if the symbol is removed, data remains unchanged. When the data element is deleted, all data representation is removed from all of the other symbols that reflect that element. MagicDraw differentiates data and symbols in diagrams by means of different packages. 2.4 Code Engineering As the project evolves according to prepared UML models, an increasing number of code indexes are generated. The written code frequently differs from the prepared UML model. Models however, are not constant. When changes are not merged, significant differences may develop by the time the project reaches completion. At some point in the process, UML models and code must be merged. The larger the project, the more difficult the merging becomes. No Magic, Inc of 428

35 MagicDraw UML introduces Code engineering, which allows you to convert existing UML models to code and vice versa. It ensures that the code and models will be synchronized. You are free to manage UML models with MagicDraw and to change corresponding code with an external tool. With the help of Code engineering, your project will keep UML diagrams and the code up to date. MagicDraw Code engineering supports JAVA, C++, CORBA IDL, DDL, and CIL programming languages EJB-UML notation is supported. You may model EJB classes and generate descriptors for them. You may also reverse descriptors and will get a model describing your Enterprise Java Beans. To manage specific tasks, MagicDraw Code engineering sets tool helps to create sets for the model elements and code the files that will be managed with code engineering. Those sets are the main entity for Code engineering actions. MagicDraw includes Java reverse engineering enhancement - now you can click on a model class in the Browser and reverse it from the classpath. MagicDraw will automatically find.class file, reverse it, and update the model. Code engineering sets are the only way to perform round trip engineering. NOTE For more information about code engineering and round trip, see Section 5, Code Engineering. 2.5 Browser The browser provides a visual representation of the hierarchy for your model element. The items in this hierarchy are either: Compressed - a plus sign next to an icon indicates that the icon is compressed, that is, it contains other model elements. This is the default setting when you start your application. Click the plus sign to expand the icon and view its subordinate items. Expanded - a minus sign next to an icon indicates that the icon is fully expanded. Click the minus sign to collapse the item. If there is no sign next to an icon, means that it does not contain other model elements. The Browser is a hierarchical navigational tool that allows you to manage your model data, including packages, components, classes, all UML diagrams, extension mechanisms, and other data. You may use the Browser as an alternative tool to the menus and toolbars that are in MagicDraw. It is easier to work with projects diagrams and data elements using the Browser. The Browser performs the following operations: Creation and specification of model elements without viewing them Copying, cutting, and pasting of model elements Opening and deletion of model elements Dragging and dropping of model elements to the Diagram pane and inside the Browser. Dragging and dropping of data in the Code engineering sets (you may create data in the Data branch, drag it to the Code Engineering sets, and the round trip object is created automatically) Hierarchical viewing of all model elements Trace viewing for the selected model element Symbol creation for the selected model element in the current diagram Managing diagrams Managing extension mechanisms such as constraints, stereotypes, and tagged values Java reversing a class directly from classpath Adjusting the code engineering sets Code generation for the particular sets No Magic, Inc of 428

36 Filtering of the visible items (by any model type, e.g. class, package, operation, component, state and others - both for views and dates), when the Filter from the Browser shortcut menu is selected Sorting of the visible items for the selected model element Sorting of all model elements. The Browser window is divided into two parts: Containment tree/diagrams tree/ Inherence tree/ Model Extensions tree part - contains model data. The Containment tree tab groups data in the logical sets (Data, Component View, Data Types, Code engineering sets). The Diagrams tab groups diagrams that are represented on the diagram pane. Groups diagrams according to the diagrams types or shows them as a list. The Inherence tree tab represents class hierarchy of the project. The Model Extensions tree tab represents all predefined and created constraints, stereotypes, and tagged values. Documentation/Zoom Control part. The Documentation tab shows documentation associated with selected item. The Zoom tab is responsible for zooming current diagram. No Magic, Inc of 428

37 Figure Browser When at least one Project is open, the Browser is placed to the left side of the main window. To change the size of either part of the Browser To change the Browser position from the Options menu Drag the bar that separates the two parts. 1. Choose Environment command from the Options menu. The Environment Options dialog appears. 2. In the Browser tab, change the Browser Position property to Right or Left. No Magic, Inc of 428

38 To close or reopen the Browser from the Window menu To show the full information of operations, attributes, and relationships To sort alphabetically items in browser Choose the Browser command or press shortcut keys CTRL+B. 1. Choose Environment command from the Options menu. The Environment Options dialog appears. 2. In the Browser tab, set the Show Full Types in Browser check to true (default true ). 1. Choose Environment command from the Options menu. The Environment Options dialog appears. 2. In the Browser tab, set the Sort Always check to true (default true ). The same option is available from the Browser shortcut menu Containment tree The Containment tree displays model data, grouping it in logical sets. Using the Containment tree, you may quickly access each model element, change specification, or create a new one. To open the Containment tree Click the Containment Tree tab Browser. in the upper side of the Figure Containment tree The Containment tree has four branches: Data package holds all model elements. Relations branch holds all relationships created in the project. Component View package contains components that are created during the code engineering and represent source files. Adding a resident element to a particular component causes that element to be generated within the source file. No Magic, Inc of 428

39 Data types package contains primitive data types primitive classes that can be used in various cases. The following data types are specified in Magic Draw UML: Boolean, byte, char, double, float, int, long, short, and void. Code Engineering sets Each of them is described in the following sections. Data branch The Data branch represents a project s model and structure. All model elements are stored in packages. This helps you distribute data into logical groups. By default, all new model elements data (inner structure) are stored in the Data package. You may create your own packages for storing your model elements data. The Data branch also contains the Component View, Data Types, and Relations (appears only when at least one path is drawn on the diagram pane) branches. Component View is already created package where the components during code engineering are placed. Data Types contains the list of primitive data types: Boolean, byte, char, double, float, int, long, short, and void. You may create your own data types. To create a new data type 1. Choose New Element from the package in the Browser shortcut menu and then choose Data Type. 2. Type the name of the data type directly in the Browser tree. For more information about managing model elements from the Browser, see Section 2.5.5, Working with model elements in the Browser tree. Code engineering sets The Code engineering sets branch is a gateway between your source code and model data. Using sets, you may perform Java, C++, IDL, DDL, EJB, and CIL code round-trip engineering (code generation + reverse engineering). See Code Engineering, Code generation. To create a new Code engineering set To edit the selected set To rename the selected set To change code generation properties 1. Right-click the Code Engineering Sets item and choose New from the item shortcut menu or open the Code Engineering Sets dialog and click the New button. 2. The New Set dialog appears. 3. Type the set name and select programming language from the drop-down list (by default - Java). 4. Click OK to finish set creation. Choose Edit from the set shortcut menu. The Round Trip Set dialog appears. You may add/remove files or classes from the Code engineering set. Choose Rename from the set shortcut menu. The Enter name dialog appears. Type the set name and click OK. Choose Properties from the set shortcut menu. The CG properties editor dialog appears. No Magic, Inc of 428

40 To delete the selected set To restore the deleted set To generate code from the selected set To check syntax To reverse the selected set To reverse files that have been changed Choose Delete from the set shortcut menu. From the Edit menu, choose Undo or press shortcut keys CTRL+Z. 1. Choose Generate from the set shortcut menu. The Code Generation options dialog appears. 2. Adjust your own code generation options. 3. Click OK. The Messages window dialog appears. You may see information about generated files. Choose Check Syntax from the set shortcut menu. If no errors are found, the There are no syntax errors in the model message appears. Choose Reverse from the set shortcut menu. Choose Refresh from the set shortcut menu. TIP! All above listed functions can be performed in the Code Engineering Sets dialog. To choose a text editor for source code To reverse a class from a classpath (Java) 1. Choose Editor Properties from the set shortcut menu. The Editor Properties dialog appears. 2. Select the directory where the text editor is located and Arguments. Choose Reverse from Classpath command from the selected class (Data package) shortcut menu. NOTE The classpath is defined in the Project Options dialog, Java Language Options pane. No Magic, Inc of 428

41 2.5.2 Diagrams tree The Diagrams tree in the Browser represents a diagram s external structure. In the Diagrams tree, with the selected diagrams, you may perform the operations listed below. To group diagrams according their diagrams types Select the Group Diagrams in Diagrams Tree check from the Diagrams package shortcut menu. Figure Group Diagrams in Diagrams Tree command To open the selected diagram from the Browser To delete the selected diagram To restore the deleted diagram Choose Open from the item shortcut menu or double-click the item of the diagram. Choose Delete from the selected diagram shortcut menu. From the Edit menu, choose Undo or press shortcut keys CTR+Z. No Magic, Inc of 428

42 To rename the selected diagram To print the selected diagram Choose Rename Diagram from the diagram shortcut menu. The Diagram Name dialog appears. Type the diagram name and click OK. Choose Print from the item shortcut menu. If the diagram is empty, it will not be printed. The diagram name is empty message appears Inheritance tree The Inheritance tree represents classes, packages, interfaces, primitive data types hierarchy of your project. The inheritance according UML Specification is shown using generalization relationship. Figure Inheritance tree For more information about managing model elements from the Browser, see Section 2.5.5, Working with model elements in the Browser tree Model Extensions Tree The Model Extensions Tree contains all Stereotypes, Tag Definitions, and Constraints that are predefined and created manually in the project. In this tree you may review, copy/paste, and delete extensions mechanisms. It can be mainly used for the work of the team using the Teamwork server for locking for edit/unlocking extension mechanisms. No Magic, Inc of 428

43 Figure Model Extensions Tree Working with model elements in the Browser tree To create a model element or a diagram in the Browser To copy/cut and paste the selected model element in the Browser tree 1. Right-click the package in the Browser. 2. From the New command, select the model element or a diagram you wish to create. 1. Choose Copy or Cut from the item shortcut menu. 2. Select an item where you wish to put the copy of the model element. 3. Choose Paste from the item shortcut menu. No Magic, Inc of 428

44 To copy/cut and paste the selected model element among different projects To delete a model element from the Browser tree To drag-and-drop the selected item in the Browser tree To draw a symbol on the diagram 1. Choose Copy or Cut from the item shortcut menu. 2. Change the project name in the Projects list on main window toolbar. 3. Select where you wish to put the copy of the element. 4. Choose Paste from the item shortcut menu. Choose Delete from the item shortcut menu. Make sure that the place you wish to drag the item is visible. Drag the selected item to the destination and drop it. Choose Create Symbol from the items in the Browser shortcut menu. NOTE You may draw a symbol by dragging and dropping an item to the Diagram pane Multiple selection A group of model elements can be selected within the Browser tree, and you may edit all the selected model elements at the same time. To make multiple selections To select all model elements or all browser tree items Hold down the SHIFT key and click the last element you wish to include in to multiple selection. For more precise selection, hold down the CTRL key and click (while holding the key down) with the mouse on the elements you wish to select. Click the mouse pointer in the area you want to select all elements and press shortcut keys CTRL+A. NOTE All selected model elements can be moved or deleted as a single selected element. While moving the set MultipleDrag, a border appears denoting the area you have selected. Be careful when deleting multiple elements because no confirmation dialog will appear Documentation/Zoom Control Documentation tab The Documentation tab shows information associated with the selected model element in the Browser tree or diagram. To open the Documentation tab Click the Documentation tab in the lower side of the Browser window. If there is no documentation for the selected element, No documentation message is displayed in the section. No Magic, Inc of 428

45 To write documentation for the selected model element 1. Click the Documentation tab. 2. Type information. Zoom tab To zoom in for a close-up view of your diagram, or to zoom out and see more of the diagram at a reduced size 1. Click the Zoom tab in the Browser window. 2. Drag the slider to the desired position. Dragging the slider to the left side zooms in. Dragging it to the right zooms out. You may zoom from 30% to 500% of original diagram size. Figure Zoom tab Quickly access any part of the diagram using the Zoom tab Drag the blue square to the desired part of the diagram. The desired diagram part will be displayed on the diagram window. TIP: If the diagram picture is too small, increase Zoom tab size by moving the split line Filter Filtering is a quick way to find a model element in the Browser tree. To begin filtering Choose Filter from the Browser shortcut menu. The Items Filter dialog appears. No Magic, Inc of 428

46 Figure Items Filter dialog To hide an item Clear the check associated with the desired item. If you deselect a diagram item, all diagram elements are automatically hidden No Magic, Inc of 428

47 MAGICDRAW TM 5.5 MANUAL 3 Diagram Basics This chapter offers an overview of working with diagrams. In general, the topics discussed apply to all the supported diagram types. A shape refers to a notation of a model element such as a package, class, state, use case, object, and other. A path refers to the notation for the various kinds of relationships such as associations, aggregations, dependency, message, and links. Both paths and shapes are defined as symbols. The toolbar of the particular diagram presents the paths and shapes available for the current diagram. NOTE If an arrow is placed on the diagram toolbar button, select a button representing corresponding model element by right-clicking the button. 3.1 Working with Shapes and Paths (Symbols) Drawing shapes To draw a shape on the Diagram pane To draw a number of shapes on the diagram pane 1. Click the shape button on the diagram toolbar, or press the appropriate shortcut keys for the shape you wish to draw (the button remains pressed). For the detailed description of diagram toolbars, see Section 7.2, "Toolbars. 2. Click the desired location on the diagram pane. The new shape is placed on the diagram pane at the point you click. Create the desired model element in the Browser tree. From the created item shortcut menu, choose Create Symbol or drag and drop the selected model element to the diagram pane. 1. Click the shape button on the diagram toolbar, or press the appropriate shortcut keys for the shape you wish to draw (the button remains pressed) 2. Click the Sticky button on the diagram toolbar, or press shortcut keys Z or CTRL+SHIFT+Z. 3. Click the desired location on the diagram pane. The new shape is placed on the diagram at the point you click (the button remains pressed). 4. Click the next location on the diagram pane. The next shape is placed on the diagram pane. Repeat this until you draw a desired number of shapes. 5. To undo repeating, click the Sticky button on the diagram toolbar, or press shortcut keys Z or CTRL+SHIFT+Z. To draw a shape for the selected item in the Browser tree 1. Activate a diagram on which you wish to draw a shape. 2. From the Browser tree, select an item you wish to draw. 3. Choose the Create Symbol command from the item shortcut menu or drag and drop the selected model element on the diagram pane. No Magic, Inc of 428

48 To specify the name of the shape (if it is allowed) 1. Double-click the shape or choose Specification from the shape shortcut menu. The corresponding Specification dialog appears. 2. Type the shape name in the Name and click OK. Type the shape name directly on the selected shape on the Diagram pane. Type the shape name after slow double-clicking the shape in the Browser tree. To create several shapes with the same data Choose the Create Symbol command from the shortcut menu of the desired item in the Browser tree or drag and drop the selected model element on the diagram pane. Type the same name for multiple shapes directly on the shape after the text cursor appears in that area. 1. Specify a shape name. 2. Draw another shape for the same kind on the Diagram pane. 3. Click the shape in the name area. The list of the existing shape names appears. 4. Choose a name of the shape from the list. NOTES: These shapes will contain equivalent data. Name auto complete is available only for classes, actors, packages, and subsystems. IMPORTANT! If you attempt to enter the existing name in the corresponding Specification dialog, you will receive an error message notifying you of the existence of the current name of the shape. You may not specify a name of a new shape, if another the same kind shape with the same name is already present in the package Drawing paths To create a path between shapes 1. Click the appropriate path button on the diagram toolbar for the relationship you wish to draw. For the detailed description of diagram toolbars, see Section 7.2, "Toolbars. 2. Click the first (source) shape of a path. 3. Drag the path to the second (target) shape of a path and drop it there. No Magic, Inc of 428

49 To create a number of paths To change the appearance style of the paths 1. Click the appropriate path button on the diagram toolbar. 2. Click the Sticky button on the Diagram toolbar or press shortcut keys Z, CTRL+SHIFT+Z. 3. Click the first (source) shape of a path. 4. Drag the path to the second (target) shape of a path and drop it there. 5. Click the first (source) shape of a path of the next path. 6. Drag the path to the target shape and drop it there. The new path is created between two shapes. Repeat this until you create a desired number of paths of that type. 7. Click the Sticky button on the Diagram toolbar or press shortcut keys Z, CTRL+SHIFT+Z. 1. Select the path. 2. Right-click the path or choose Path from the Edit menu, and choose the commands you need: To set the path as rectilinear, oblique, or bezier, choose the Path Style command. To choose in turn one of the path style, choose the Change Path Style command (shortcut key CTRL+L) To reset path labels to the default position, choose the Reset Labels Position command. To remove all angles of the path, choose the Remove Break Points command. NOTES: Every diagram has the Manipulation Highlighting feature. When you try to draw a path between two model elements, you will see that those shapes are bordered with the red or blue rectangle. The red color means that the path may not be drawn between these shapes. Remove the manipulation highlighting in the Environment Options dialog Selection. Multiple selection Two ways to select a shape Click the desired shape on the Diagram pane. Click a shape item in the Browser tree, the Diagrams/Symbols branch and choose Go to from the item shortcut menu. To deselect the selected shape Click outside the shape on the Diagram pane. To make a multiple selection 1. Click the shape on the Diagram pane. 2. Hold down SHIFT key and click another shape. Repeat until you select a desired number of shapes. Drag the cursor diagonally across the area you wish to select. All shapes in the selected area will be selected. No Magic, Inc of 428

50 To select all shapes of the same type Press ALT key and click the shape. All shapes of the same type are selected. To select all shapes on the diagram Choose the Select All command from the Edit menu or press shortcut keys CTRL+A Dragging, copying, cutting, and pasting Move a shape to another place on the diagram pane by a drag-and-drop operation. To drag a number of selected symbols To copy a shape using drag-anddrop operation Drag and drop items from browser to diagram pane Select symbols and drag them to the desired area on the Diagram pane. Hold down CTRL key when you drag the selected shape to the area where you wish to make a copy. 1. In the Browser tree, select the created model element you wish to draw. 2. Drag it to the desired place on the diagram pane and drop it there. NOTES: The element will be drawn with its existing relationship. You may select several model elements and draw them on the diagram pane. If the selected model element (-s) is not compatible with the opened diagram, you will not be allowed to draw that/those model element (-s). To copy/cut and paste the selected shape on the diagram To paste one or more copied model element by creating new data and symbols in the current project 1. Choose copy/cut from the Edit menu or press shortcut keys CTRL+C / CTRL+X. 2. Choose Paste from the Edit menu or press shortcut keys CTRL+V. NOTE You may copy/paste many (not all) model elements among various diagrams. Choose the Paste with New Data command from the Edit menu or press shortcut keys CTRL+E. You may copy and paste model elements and diagrams as WMF or JPG and paste it into MS Office and other applications. No Magic, Inc of 428

51 To copy the whole diagram as WMF or JPG format and paste it to MS Office or other application To copy the selected model elements as WMF or JPG format and paste to MS Office or other application 1. Select or deselect all model elements on the diagram. 2. Choose the Copy as WMF or Copy as JPG command from the Edit menu or press corresponding shortcut keys CTRL+SHIFT+W or CTRL+SHIFT+J. 3. Open the desired application and paste the copied diagram. 1. Select the desired model elements on the diagram pane. 2. Choose the Copy as WMF or Copy as JPG command from the Edit menu or press corresponding shortcut keys CTRL+SHIFT+W or CTRL+SHIFT+J. 3. Open the desired application and paste the copied model elements. TIP!: You are allowed to drag and drop source code files from the native file manager to a MagicDraw Code Engineering Set. NOTE Only with the shortcut keys CTRL+C or CTRL+X and CTRL+V you may copy or cut and paste the text. With the buttons, the whole element is copied/cut and pasted Defining symbols All model elements you may define in the corresponding Specification dialog es. For the detailed descriptions of all dialog es, see Section 7.3, Dialog Boxes. Shortcut menus, toolbars, and the Browser make the editing of the model elements easier. To open the corresponding Specification dialog To set symbol s properties (fill color, text color, etc.) Choose Specification from the selected symbol shortcut menu. Double-click a symbol on the Diagram pane. Select a symbol on the Diagram pane and press ENTER key. Choose the Edit Symbol command from the symbol shortcut menu. 1. Choose the Project command from the Options menu. 2. The Project Options dialog appears. Choose the desired options for the selected model elements. NOTE To apply changes made in the Project Options dialog, click the Apply button in the Styles tab. To show/hide model element constraints, stereotype and/or tagged values on the diagram pane Select/clear the Show Constraints, Show Stereotype, and/or Show Tagged Values check from the symbol shortcut menu. 1. Choose the Project command from the Options menu. 2. The Project Options dialog appears. Select the Show Constraints, Show Stereotype, and/or Show Tagged Values check for the selected model elements. NOTE To apply changes made in the Project Options dialog, click the Apply button in the Styles tab. No Magic, Inc of 428

52 To delete the selected model element or only symbol To select a model element in the Browser tree, associated with the desired symbol on the Diagram pane To create paths among shapes that already are created in the model data To find all shapes with the same data and open the diagram that contains the selected shape To define stereotypes for various model elements Choose Delete from the Edit menu (data together with symbol is deleted) Click the Delete button on the main toolbar (data together with symbol is deleted) Press CTRL+D keys (data together with symbol is deleted) Press DELETE key (only symbol without data is deleted.) NOTE When deleting paths by pressing DELETE key, the Delete Data? message appears. To delete relationship s data from the model click Yes. Deleting relationships in all other ways, data of a relationship is automatically deleted. Choose the Select in Browser command from the symbol, drawn on the Diagram pane, shortcut menu. Choose the Display Paths command from the shape shortcut menu. Choose the Tracing command from the shape shortcut menu on the Diagram pane or in the Browser tree. 1. Open the corresponding specification dialog. 2. From the Stereotypes tab, select the predefined stereotypes from the All list and move to the Selected list by clicking the > or >> (the whole list is moved) button. Click the Edit button in the Stereotypes tab or form the Tools menu choose stereotypes and then choose Edit Stereotypes. The Edit Stereotypes dialog appears where you may edit or define your own stereotypes. For more information about working with stereotypes, see Section 4.7.1, "Stereotypes. No Magic, Inc of 428

53 To define constraints for various model elements To define tagged values for various model elements To select constraints / tagged values that will be shown on the symbol 1. Open the corresponding specification dialog. 2. Click the Add button in the Constraints tab. If there are any predefined constraints, the list with constraints appears, if not, a new constraint with the name <unnamed> is created. Modify the constraint in the right part of the Constraints tab. For the description of the fields, see Constraint Specification dialog. Click the button in the Constraints tab or form the Tools menu choose Constraints and then choose Edit Constraints. The Edit Constraints dialog appears where you may edit or define your own constraints. For more information about working with stereotypes, see Section 4.7.4, "Object Constraints Language (OCL). 1. Open the corresponding specification dialog. 2. Click the Add button. The list with predefined tagged values appears. Modify the tag definitions in the right part of the Tagged Values tab. The description of the fields, see in the Tag Definition Specification dialog. or Choose <new>. The Tag Definition Specification dialog appears. Click the button in the Tagged Values tab or form the Tools menu choose Tagged Values and then choose Edit Tagged Values. The Edit Tag Definitions dialog appears where you may edit or define your own constraints. For more information about working with stereotypes, see Section 4.7.3, Tagged values. 1. Choose Edit Compartment from the symbol shortcut menu. 2. The Compartment Edit dialog appears. 3. From the Constraints / Tagged Values tab, All list, select the desired constraints / tagged values you want to show on the symbol and then by clicking the > or >> button, move them to Selected list. 3.2 Layout With MagicDraw, it is easy to manage simple or complex diagrams using automated layout features that optimize diagram layout for viewing. Lay out symbols on the Diagram pane using the Layout menu or the symbol shortcut menu when two or more symbols are selected. With the help of these commands, you may make the selected shapes the same height or the same width, resized according to the biggest parameters. You may also align the selected symbols to left or right, space them evenly. To resize the selected shape Drag the corner of the shape to the desired size. No Magic, Inc of 428

54 To resize automatically the selected shape to preferred size To alter the routing of the path line To layout hierarchically symbols of a class diagram Choose the Autosize command from the shape shortcut menu. Drag any point of the selected path to any direction. Open a class diagrams and choose Class Diagram command from the Layout menu. 3.3 Zooming Zooming allows you to select a small part of a diagram, zoom into it, and make changes to the enlarged portion with a finer level of detail or overview a diagram by zooming it out. To fit the current diagram in the window To zoom the current diagram in To zoom the current diagram out To restore diagram s original size To view selected shapes at maximum size To determine the size of a zoom step, which will be used in zoom operations Choose Fit in Window from the View menu or from the diagram shortcut menu (shortcut keys CTRL+W). Choose Zoom In from the View menu or from the diagram shortcut menu (shortcut keys CTRL+NumLock PLUS SIGN (+)) Choose Zoom Out from the View menu or from the diagram shortcut menu (shortcut keys CTRL+NumLock MINUS SIGN (-)). Choose Zoom 1:1 from the View menu or from the diagram shortcut menu (shortcut keys CTRL+NumLock SLASH MARK (/)). Select shapes and choose Zoom to Selection from the View menu or the diagram shortcut menu (shortcut keys CTRL+NumLock ASTERICS MARK (*)). 1. Choose Environment from the Options menu. 2. The Environment Options dialog appears. 3. Change Zoom step size property. The maximum number is 1.0. (You may zoom a diagram twice). NOTE You may also zoom in or out of the diagram using the zoom panel in the Browser window. For the detailed description, see Section 2.5.7Documentation/Zoom Control. 3.4 Using Grid The grid helps you lay out the diagram symbols on the Diagram pane. By default, grid is in the visible state. No Magic, Inc of 428

55 To change the grid state (visible, not visible) To pull a path with the intersection of gridlines To pull a shape with the intersection of gridlines To change the grid size To change the grid style Choose Grid and then choose Show Grid from the View menu or from the diagram shortcut menu. Choose Grid and then choose Snap Paths to Grid from the View menu or from the diagram shortcut menu. Choose Grid and then choose Snap Shapes to Grid from the View menu or from the diagram shortcut menu. 1. Choose Grid and then choose Grid Size from the View menu or from the diagram shortcut menu. 2. The Change Grid size dialog appears. 3. Type grid size between 2 and 30 (default is 10). 4. Click OK. 1. Open the Environment Options dialog. 2. From the Grid Style drop-down list, select on of the following style of the grid: Dense Sparse (default) 3.5 Assigning Shortcut Keys To assign or change the shortcut key of the command 1. Open the Environment Options dialog. 2. Choose the Keyboard pane and assign the desired shortcut keys in the right side of a dialog. 3.6 Model Elements Common in all Diagrams NOTE The following symbols are only graphical symbols and they do not have data. Model elements Button /shortcut key Function Notation Note A graphical symbol containing textual information. Use a note to add any needed information to your diagram. Usually a note is connected with other symbol, using a note anchor line. No Magic, Inc of 428

56 Model elements Button /shortcut key Function Notation Text Box Type text directly on the diagram. Note Anchor Relates symbols and notes. Use a note anchor to relate any symbol to a note. You may change the style of a note anchor to rectilinear, oblique, or bezier. For the detailed description about editing the appearance of paths, see Section 3.1.2, Drawing paths. Constraint The presentation of a constraint between two graphical symbols. Separator Separates with a horizontal line different part of a diagram HTML Text You may set a text of a note, text, or separator as a HTML text. To set the note/text /separator text as HTML Choose HTML Text from the note/text shortcut menu. When selecting the text, the HTML editor toolbar appears. No Magic, Inc of 428

57 To add a hyperlink to a note, text, or separator text 1. Select the text where you want to add a hyperlink and click the Insert Hyperlink button. 2. The Insert Hyperlink dialog appears. Choose the hyperlink you want to insert: to a web page, another model element or a file: To link to an existing model element, click the Element/Symbol tab, then click the Select Element/Symbol button and select the model element or symbol you want to link to in the Select Model Element dialog. To link to an existing Web page, click the Web Page tab, and type the URL of a web page you want to link to in the Type the Web page name text. You may click the button and browse for the desired Web page on the Web. NOTE Set the path of the HTML viewer in the Environment Options dialog. To link to an existing file, click the File tab, enter the path to the file you want to link to or click the Type the file name button and select the file you want to link to in the Open dialog. NOTES: The selected file will be opened in the HTML browser. Set the path of the HTML viewer in the Environment Options dialog. You may link only to an existing file the new file will not be created for you. Using the HTML editor toolbar, you may change the font, color, size, and the alignment of the selected text Note Anchor Use a note anchor to relate any symbol to a note. You may change the style of a note anchor to rectilinear, oblique, or bezier. For the detailed description about editing the appearance of paths, see Section 3.1.2, Drawing paths Constraint For two graphical symbols (such as two classes or two associations), the constraint is shown as a dashed arrow from one element to the other element labeled by the constraint string (in braces { }). The direction of the arrow is relevant information within the constraint. The client (tail of the arrow) is mapped to the first position and the supplier (head of the arrow) is mapped to the second position in the constraint. No Magic, Inc of 428

58 To add a constraint expression to the constraint path Choose Select Constraint from the constraint path shortcut menu and select one of the following: 1. Choose <new>. The Constraint Specification dialog appears. 2. Choose already created constraint from the list. 3. Choose <none> Separator You may use a horizontal separator to rule off different parts of a diagram. Specification of UML 1.4 does not provide rules for using a separator in diagrams. To set the text position of the name of a separator To set a separator line style (dashed or solid) Choose Text Position from the separator shortcut menu, and then choose the text position you need: Left (default), Center, or Right. Set a text position in the Project Options dialog. Choose Line Style from the separator shortcut menu, and then choose the style you need: Dashed (default) or Solid. No Magic, Inc of 428

59 4 Diagrams 4.1 Overview In software development, the diagram is the equivalent of a blueprint. To meet the various needs of many parties, we often need several different blueprints of the same system. Furthermore, every system is described by many different aspects. For example: Functional (static structure and dynamic interactions) Nonfunctional (timing requirements, reliability, and deployment) Organizational (work organization and mapping to code modules) MagicDraw TM supports all diagrams defined in UML 1.4: Class diagram Object diagram Use case diagram Statechart diagram Activity diagram Interaction diagrams: Collaboration diagram Sequence diagram Implementation diagrams: Component diagram Deployment diagram However, MagicDraw has only 7 diagram buttons in the application. This is done to simplify the user interface and allow for more flexibility. Object and collaboration diagrams are supported by MagicDraw collaboration diagram. However it is possible to draw objects in the class diagram, node and component instances in the implementation diagram. Component and deployment diagrams are supported by MagicDraw implementation diagram which allows you to draw both kinds of diagrams (or mix of them) on the same canvas. It possible to distinguish model management diagrams that are supported by MagicDraw class diagram. No Magic, Inc of 428

60 Most UML literature ( Instant UML, UML Toolkit, The Unified Modeling Language Reference Manual ) define more or less similar classification for the system views: Logical View Implementation View Use Case View Process View Deployment View Figure System views Several kinds of diagrams provide a visual notation for the concepts in each view Use Case view The use case view represents the functionality and behavior of a system, subsystem or a class as it is perceived by external users. This view is targeted mainly to customers, designers, developers, and testers. The use case view usually is presented as a number of use cases and actors in Use case diagrams. Occasionally it is used in Activity and Sequence diagrams. The use case view is central because its contents drive the development of the other views. It is also used for the project planning. Every single use case unit is deemed as the manageable unit during a project s execution Logical view The logical view represents both the static and dynamic aspects of a system in terms of class and objects. In contrast to the use case view, the logical view looks inside the system. Static structure is displayed on Class and Package diagrams, and the main goal of these diagrams is to represent a system s class structure: The development of the static structure relies on abstraction, encapsulation, and uniformity. The class diagram finally results in the code structure. The dynamic behavior of the system is displayed on Interaction (sequence and collaboration), Statechart, and Activity diagrams. It focuses mainly on the interactions that occur between objects inside a system, activities and work performed by the various parts of a system, and state changes within a particular object or collaboration. Rather than defining the participants of the system, it defines how particular use cases are executed, which provides value for the external user. The dynamic view is concerned about what is happening inside the system and how those actions impact other participants Process view The process view represents the division of the system into processes and processors. This view allows efficient resource usage, parallel execution, and the handling of asynchronous events from the environment. The process view is displayed on Component, Deployment and Interaction diagrams. The process view also is called the concurrency view. The term concurrency view, however, carries with it a slightly different connotation/ implication. The synchronization of the thread, object initialization, and other actions are displayed on the same diagrams as dynamic model elements (sequence, collaboration, state, and activity). No Magic, Inc of 428

61 4.1.4 Component view The component view represents the implementation modules and their dependencies. This view mainly deals with the development time software structure source code files, libraries, linking time components, and finally executable components. In fact, the component view describes the software as it appears in the computer disc, such as files and directories. The component view is displayed on component diagrams Deployment view The deployment view represents the physical arrangement of a system, such as computers and devices (nodes) and how they are connected to each other. In contrast to the component view, the deployment view is concerned with the physical structure of the system and the location of the software modules (components) within the system. The deployment view is displayed on component and deployment diagrams. The mix of component and deployment diagrams is called the implementation diagram in MagicDraw TM UML. 4.2 Class Diagram A class diagram is a graphic representation of the static structural model. It shows classes and interfaces, along with their internal structure and relationships. Classes represent types of objects that are handled in a system. A class diagram does not show temporal information, it describes only the classification. The instances of those types (objects) are instantiated only on the runtime and are represented by an object and interaction diagrams. Classes can be related to each other in a number of ways: associated (connected to each other), dependent (one class depends/uses another class), specialized (one class is a subtype of another class), or packaged (grouped together as a unit package). A class diagram does not express anything specific about the relationships of a given object, but it does abstractly describe the potential relationships of one object to other objects. A system typically has a number of class diagrams not all classes are inserted into a single class diagram. A class may have multiple levels of meaning and participate in several class diagrams. A class diagram is the logical map of your existing or future source code. Classes can be grouped into packages. Packages can be nested within other packages. A package, as an entity, may have all the relationships that can be drawn for a class. Those relationships are derived from the classes or packages that are nested within two particular packages (i.e., the relationship between packages reflects a set of relationships between classes placed in those packages). No Magic, Inc of 428

62 4.2.1 Shapes of elements in Class diagram Model elements Button /shortcut key Function Notation Class (C) A descriptor for a set of objects with similar structures, behaviors, and relationships. Enumeration A user-defined data type whose instances are a set of userspecified named enumeration literals. The literals have a relative order but no algebra is defined on them. Interface (I) The description of a visible behavior of a class, a component or a package. Interface with the suppressed attributes and operations. Package (P) A group of classes and other model elements. Subsystem (P) A subsystem is treated as an abstract single unit and groups model elements by representing the behavioral unit in a physical system. Select by right-clicking Select by right-clicking No Magic, Inc of 428

63 Model elements Button /shortcut key Function Notation Model (P) A model is an abstraction of a physical system from a particular point of view. A model contains a hierarchy of packages/subsystems and other model elements that describe the system. N-ary association (O) An association among two or more classes (a single class may appear more than once). Collaboration (T) A collaboration describes how an operation or a classifier, like a use case, is realized by a set of classifiers and associations used in a specific way. The collaboration defines a set of roles to be played by instances and links, as well as a set of interactions that define the communication between the instances when they play the roles. Object An instance of a class. No Magic, Inc of 428

64 4.2.2 Paths in Class diagram Relationship Association A connection among classes, which means that there is also a connection among objects of those classes. Aggregation An aggregation is an association that represents a whole-part relationship. Composition A composition is a form of aggregation with stronger ownership and coincident lifetime of part with the whole. NOTE Select by right-clicking the kind of relationship: aggregation or composition Button (shortcut key) (S) (A) (A) Notation Containment Shows a class, package or other model element declared within another model element. Such a declared class is not a structural part of the enclosing class but merely has scope within the namespace of the enclosing class, which acts like a package toward the inner class. No Magic, Inc of 428

65 Relationship Generalization A relationship between a more general and a more specific element. Button (shortcut key) (G) Notation Realization A relationship between an interface and implementation class (R) Realization (Realize) between class and interface (R) No Magic, Inc of 428

66 Relationship Dependency Indicates a semantic relationship between two or more model elements. It relates model elements themselves and does not require a set of instances for its meaning. NOTE Select by right-clicking the kind of relationship: dependency, abstraction, binding dependency, permission, or usage. Button (shortcut key) (D) Notation Link Attribute Visual tie between parts of association class association part and class part. (L) Link A connection between two or more objects Classes A class is drawn as a solid-outline rectangle with three compartments separated by horizontal lines. The top name compartment holds the class name and other general properties of the class (including stereotype); the middle list compartment holds a list of attributes; the bottom list compartment holds a list of operations. The attribute and operation compartments are optional and you may suppress them. No Magic, Inc of 428

67 A class is the descriptor for a set of objects with similar structure, behavior, and relationships. The model is concerned with describing the intention of the class, that is, the rules that define it. The run-time execution provides its extension, that is, its instances. Classes are declared in class diagrams and used in most other diagrams. UML provides a graphical notation for declaring and using classes, as well as a textual notation for referencing classes within the descriptions of other model elements. A class represents a concept within the system being modeled. Classes have data structure, behavior, and relationships to other elements. The name of a class has scope within the package in which it is declared and the name must be unique (among class names) within its package. Working with classes General information about working with shapes is offered in section Diagrams Basics. All options associated with a class can be set in the Class Specification dialog. To insert inner class, use case, interface, enumeration, data type, primitive, Programming Language data type, or collaboration in the selected class To analyze a class To generate operations for setting or getting private data to the selected class To control a list of operations and attributes that are visible on a class diagram 1. Double-click the selected class or choose Specification from the class shortcut menu. The Class Specification dialog appears. 2. Click the Inner Elements tab and then click the Add button. Choose the element (class, use case or interface) you wish to add from the list. 3. Click the selected element. 4. The Class Specification / Use Case Specification / Enumeration Specification / Interface Specification / Data Type Specification / Primitive Specification / Programming Language Data Type Specification / Collaboration Specification dialog appears. Define the class, use case or interface and click OK. From the class shortcut menu, choose Tools, and then Analyze. For the detailed description, see Section 6.4, Tools for Analysis From the class shortcut menu, choose Tools and then Create Setters/Getters. For the detailed description, see Section 6.5, Creating Setters / Getters. Choose Edit Compartment from class shortcut menu. The Compartment Edit dialog appears. No Magic, Inc of 428

68 If an attribute s type is another model class, this attribute can be represented as an association with a role (attribute name) between owner class and class of attribute type Choose Create Roles from the class shortcut menu. A list of available attributes appears. Choose one and an association relationship with a role is created. NOTE This command is visible only if one or more attribute types are other model classes. If a class belongs to a package, the class name compartment shows the package name in parentheses. Figure Class with package name To assign a class to a package To display/hide the package name (the class owner) on a class Drag a class to the desired package on the Diagram pane or in the Browser tree. From the class shortcut menu, choose Presentation Options, and then select/clear the Show Owner check. In the Project Options dialog. A class can be defined as active (a border to the class shape is added). An active class specifies whether an object of the class maintains its own thread of control A class is a generalizable element and can be defined as Abstract, Leaf, or Root. To define class as abstract, leaf, root and/or active 1. Double-click the selected class or choose Specification from the class shortcut m enu. The Class Specification dialog appears 2. Select the Abstract, Leaf, Root and/or Active check in the General tab Data types A data type is a type whose values have no identity; that is, they are pure values. Data type is a classifier and inherits general features of the classifier: visibility, generalizable element properties, also operations MagicDraw provides the following already predefined data types: byte, int, Boolean, char, float, double, short, void, long. You may also create Enumeration, Primitive, and Programming Language data types. No Magic, Inc of 428

69 To create a new data type, including Enumeration, Primitive, and Programming Language Data Type From the Browser: Choose New from the class or New Element from the package, subsystem, or model shortcut menu, and then choose Data Type, Enumeration, Primitive, or Programming Language Data Type. In the Class, Package, Subsystem, and Model Specification dialog es, Inner Elements tab, click Add and select a data type you want to create. NOTE: You may create an enumeration by clicking the Enumeration button from the class diagram toolbar: To create symbol of the created data type To define data type in the Data Type Specification dialog Choose Create Symbol command from the created data type shortcut menu in the Browser. From the Browser: Choose Specification from the created data type shortcut menu. From the Class, Package, Subsystem, and Model Specification dialog es, Inner Elements tab, click the Add button, and then select Data Type. Double click the created data type on the diagram pane or choose Specification from its shortcut menu. Enumeration Enumeration defines a kind of data type whose range is a list of predefined values, called enumeration literals. An Enumeration may have operations, but they must be pure functions (this is the rule for all data type elements). An enumeration literal defines an element of the run-time extension of an Enumeration data type. It has no relevant substructure, that is, it is atomic. To add an enumeration literal 1. Open the Enumeration Specification dialog. 2. In the Enumeration Literals tab, click Add button. 3. The Enumeration Literal Specification dialog appears. Define an enumeration literal. Choose Insert New Enumeration Literal command from the Enumeration shortcut menu. No Magic, Inc of 428

70 Primitive A primitive defines a predefined data type, without any relevant UML substructure; that is, it has no UML parts. A primitive data type may have an algebra and operations defined outside of UML (for example, mathematically). Primitive data types used in UML include Integer, Unlimited Integer, and String. Programming Language Data Type A data type is a type whose values have no identity (i.e., they are pure values). A programming language data type is a data type specified according to the semantics of a particular programming language, using constructs available in that language. There are a wide variety of programming languages and many of them include type constructs not included as UML classifiers. In some cases, it is important to represent those constructs such that their exact form in the programming language is available. Because they are dependent on particular languages, they are not portable among languages (except by agreement among the languages) and they do not map into other UML classifiers. Many or most programming language types can be directly represented using other UML classifiers, and such representation makes available deeper semantic analysis. A programming language data type may omit its name. Two programming language data type elements without names are not considered equivalent Attribute An attribute is a named property of a class that describes a range of values that can be held by instances of that class. To create a new attribute Double-click the selected class or choose Specification from the class shortcut menu. The Class Specification dialog appears. Click the Attributes tab and then click the Add button. The Attribute Specification dialog appears. Define a new attribute and click OK. Choose the Insert New Attribute from the class shortcut menu. Type attribute name directly on the class shape In the Browser tree, choose already created class. From the class item shortcut menu, choose New and then choose Attribute. Main attribute characteristics: Name must be unique in the class scope. Type - can be other class, interface, or a primitive class, such as int or double. Initial value the default value for an attribute. To change any attribute characteristic (including name) in the Attribute Specification dialog 1. Double-click the class shape or choose Specification from the class shortcut menu. The Class Specification dialog appears. 2. Click the Attributes tab. 3. Click the Add or Edit button. The Attribute Specification dialog appears. Double-click an attribute No Magic, Inc of 428

71 To change an attribute name To define the type of an attribute 1. Click the attribute in the selected class on the diagram pane or in the Browser tree. 2. Type a new name. Change an attribute name in the Attribute Specification dialog. Choose the type of an attribute from the Type drop-down list in the Attribute Specification dialog. Type a colon : and the name of the type of an attribute just after the attribute name on the diagram pane. If you specify a nonexistent type of an attribute, a new class is created. TIP: There are available two kinds of lists for selecting a type for an attribute. If in the Environment Options dialog, General pane you will select the Use List for Type Select, the list of all available classifiers will be displayed in the list, if you unselect his check, the hierarchy of available classifiers will be displayed in the list. To add additional information about the type of an attribute 1. Open the Attribute Specification dialog. 2. Choose a sign in the Type Modifier drop-down list : & - one class has a reference to other model element. * - one class has a pointer to other model element. [] - one class has an array of other model elements. Attribute visibility: Public + an attribute can be accessed by any other element. Package ~ an attribute can be accessed by element from the same package. Private - an attribute can be accessed only from inside of that class. Protected # an attribute can be accessed from the inside of the selected class and classes derived from that class NOTE Attribute visibility is shown at the attribute signature. To set an attribute visibility To set an attribute scope To set an attribute multiplicity Type +, ~, -, or # visibility marks just before an attribute name directly on a diagram. 1. Open the Attribute Specification dialog. 2. Click the desired option button (public, protected, and private) in the Visibility group. 1. Open the Attribute Specification dialog appears. 2. Click the desired option button (Instance or Classifier) in the Scope group. 1. Open the Attribute Specification dialog (see above). 2. Choose or set a multiplicity value in the Multiplicity drop-down. Attribute changeability: Changeable No restrictions on modification. No Magic, Inc of 428

72 Frozen AddOnly To set attribute changeability The value may not be altered after the object is instantiated and its values initialized. No additional values can be added to a sign is added. Meaningful only if the multiplicity is not fixed to a single value. Additional values can be added to the set of values, but once created a value may not be removed or altered. Choose changeable, frozen or add only from the drop down in the Attribute Specification dialog Operation Entries in the operation compartment are strings that show operations defined on classes, as well as operations supplied by classes. An operation is a service that an instance of the class can be requested to perform. It has a name and a list of arguments. Usually class attributes are accessed through operations. Operations are used to perform specific actions, such as system calls, utility functions, and queries. The operation signature provides all information needed to use that operation. To create a new operation Double-click the selected class or choose Specification from the class shortcut menu. The Class Specification dialog appears. Click the Operations tab and then click the Add button. The Operation Specification dialog appears. Define a new operation and click OK. Choose the Insert New Operation from the class shortcut menu. Type operation name directly on the class shape In the Browser tree, choose already created class. From the class item shortcut menu, choose New and then choose Operation. Define an operation in the Operation Specification dialog. To open the Operation Specification dialog To change an operation name 1. Double-click the class / actor or choose Specification from the class s/actor s shortcut menu. The Class Specification / Actor Specification dialog appears. 2. Click the Operations tab. 3. Click the Add or Edit button. The Operation Specification dialog appears. Double-click an operation. 1. Click the operation in the selected class on the diagram pane or in the Browser tree. 2. Type a new name. Change an operation name in the Operation Specification dialog. No Magic, Inc of 428

73 To define the return type of an operation Choose the type of an attribute from the Type drop-down list in the Attribute Specification dialog. Type a colon : and the name of the type of an attribute just after the attribute name on the diagram pane. If you specify a nonexistent type of an attribute, a new class is created. To edit / add operation parameter in the Parameter Specification dialog To add additional information about the return type of an operation 1. Open the Operation Specification dialog. 2. Click the Parameter tab. 3. Double-click the desired parameter in the list of operation parameters or select a parameter and click the Edit or Add button. The Parameter Specification dialog appears. Type a parameter text (in parenthesis) directly on a diagram. Select an operation in the Browser tree, choose New from its shortcut menu and choose Parameter. The Parameter Specification dialog appears. 1. Open the Operation Specification dialog. 2. Choose a sign from the Return Type Modifier drop-down list : & - one class has a reference to other model element. * - one class has a pointer to other model element. [] - one class has an array of other model elements. Operation can be defined as: Abstract The operation does not have an implementation, and one must be supplied by a descendant. Leaf Root To define an operation as abstract, leaf, or root. The implementation of the operation may not be overridden by a descendant class. The class must not inherit a declaration of the same operation. 1. Open the Operation Specification dialog. 2. Select the Abstract, Leaf, and/or Root check (es) in the General tab. Operation visibility: Public + operation can be accessed by any other object from outside. Package ~ operation can be accessed by element from the same package. Private - operation can be accessed only from that class. Protected # operation can be accessed from inside that class and the classes derived from that class. To set an operation visibility 1. Open the Operation Specification dialog. 2. Click Public, Package, Private, or Protected option button in the Visibility group. NOTE Operation visibility is shown in the operation signature. No Magic, Inc of 428

74 To set an operation scope To set an operation as query 1. Open the Operation Specification dialog. 2. Click the desired option button (Instance or Classifier) in the Scope group. Select the Query check in the Operation Specification dialog. Operation s concurrency: Sequential Guarded Concurrent Callers must coordinate so that only one call to an Instance (on any sequential Operation) can be outstanding at once. If simultaneous calls occur, then the semantics and integrity of the system may not be guaranteed. Multiple calls from concurrent threads may occur simultaneously to one Instance (on any guarded Operation), but only one is allowed to commence. The others are blocked until the performance of the first Operation is complete. It is the responsibility of the system designer to ensure that deadlocks do not occur due to simultaneous blocks. Guarded Operations must perform correctly (or block themselves) in the case of a simultaneous sequential Operation or guarded semantics may not be claimed. Multiple calls from concurrent threads may occur simultaneously to one Instance (on any concurrent Operation). All of them may proceed concurrently with correct semantics. Concurrent Operations must perform correctly in the case of a simultaneous sequential or guarded Operation or concurrent semantics may not be claimed. To set an operation s Concurrency: sequential, guarded or concurrent Choose the concurrency type in the Concurrency drop-down list in the Operation Specification dialog Template / parameterized class A template is the descriptor for a class with one or more unbound formal parameters. It defines a family of classes, each class specified by binding the parameters to actual values. Typically, the parameters represent attribute types; however, they may also represent integers, other types, or even operations. Attributes and operations within the template are defined in terms of the formal parameters, so they too become bound when the template itself is bound to actual values. No Magic, Inc of 428

75 To define a parameterized class 1. Double-click the class shape or choose Specification from the class shape shortcut menu. The Class Specification dialog appears. Click the Template Parameters tab. 2. To add or edit a parameterized class, click the Add button The Template Parameter Specification dialog appears. Type the name of the parameter, choose the type from the Type drop-down list and set the default value by selecting a model element in the Select Model Element dialog. 3. To remove the selected parameterized class, click the Remove button Design Patterns In MagicDraw TM UML, you may create and edit design patterns for the selected class. The detailed description of templates is in the Design Patterns of Reusable Object-Oriented Software. To create the design pattern for the selected class 1. From the class shortcut menu, choose Tools, and then choose Pattern Wizard. The Pattern Wizard dialog appears. 2. Select the design pattern you want to apply and choose the desired options. Click OK. Select class and choose Select Pattern from the Tools menu Class presentation options To organize class data on the class shape Choose Presentation Options from the class shortcut menu. The following choices are available in the Presentation Options submenu. No Magic, Inc of 428

76 Figure Presentation Options submenu Command Show Operations Ssignature Show Full Classifier Type Show Initial Attribute Value Show Attributes Visibility Show Operations Visibility Suppress Attributes Suppress Operations Show Only Public Members Show all Members Function (when selected) Shows operation signature (arguments, return value and etc). Shows the full track of the type of an attribute from the root package. For more information, see Section Error! Reference source not found., Error! Reference source not found.. Shows Initial attribute value. Shows attribute visibility (public, private, protected). Shows operation visibility (public, private, protected). Attributes compartment is suppressed. Operations compartment is suppressed. Shows only public attributes and operations. The default settings are restored and shows all attributes and operations. No Magic, Inc of 428

77 Command Sort Attributes By Name By Stereotype By Visibility No Sorting Function (when selected) Choose the sorting parameter: Sort attributes by name. Sort attributes by stereotype. Sort attributes by visibility (public, private, protected) No sorting is executed. Sort Operations By Name By Stereotype By Visibility No Sorting Choose the sorting parameter: Sort operations by name. Sort operations by stereotype. Sort operations by visibility (public, private, protected) No sorting is executed. Show More Sign For Attributes Show More Sign For Attributes Show Stereotypes Show Constraints Show Tagged Values Show Owner Additional information sign ' ' in the class attributes list, when a portion of attributes are omitted by editing a class compartment. Additional information sign ' ' in the class operations list, when a portion of attributes are omitted by editing a class compartment. Shows stereotypes on a class. Shows constraints on a class. Shows tagged values on a class. Shows the owner (package, subsystem, or model) name on a class Packages A package groups together classes and other model elements. All types of UML model elements can be organized into packages. Each diagram must be owned by one package and packages themselves can be nested within other packages. Special kinds of packages are subsystems and models. Packages may have dependency, generalization, and association relationships. All relationships are usually derived from the relationships between the classes that are placed inside those packages. Working with packages For more general information about working with symbols, see Diagrams Basics. Define the selected package in the Package Specification dialog. No Magic, Inc of 428

78 To assign the main diagram to the selected package To create a new main diagram for the selected package To open the main diagram for the selected package To add inner elements to the selected package To show/hide stereotypes To show/hide constraints To show/hide package owner (which package owns the selected package) To show/hide tagged values To change package header (name and stereotype) position To show the list of elements assigned to a package on the package shape From the package shortcut menu, choose Main Diagram and then choose Assign Main diagram. The Assign Main Diagram dialog appears. Select the diagram from the list and click the Assign button. Click the New button in the Assign Main Diagram dialog. From the package shortcut menu, choose Main Diagram and then choose Open Main Diagram. 1. Open the Package Specification dialog. 2. Click the Inner Elements tab. 3. Click the Add button, and then click the element you wish to add. 4. If you select a class, use case, actor, interface, component, node, collaboration, subsystem, model, or package the corresponding Specification dialog appears. If you select a diagram the Enter Name for a diagram dialog appears. 5. The inner elements data for the selected package is created. Select Show Stereotype check from the package shortcut menu. Select Show Constraints check from the package shortcut menu. Select Show Owner check from the package shortcut menu. Select Show Tagged Values check from the package shortcut menu. Choose Header position from the package shortcut menu and then choose Top or In Tab. Choose Edit Symbol from the package shortcut menu, and choose Top or In Tab in the Properties dialog. Choose Show Elements List from the package shortcut menu. Packages can be defined as: Abstract Leaf A package that may not be directly instantiated A package that has no children in the generalization element. No Magic, Inc of 428

79 Root A package that has no parents in the generalization element Subsystem A subsystem is treated as an abstract single unit. It groups model elements by representing the behavioral unit in a physical system. A subsystem is defined as a package, and it includes operations, specification elements, and realization elements. Specification elements define unit behavior and interaction with other subsystems. Specification elements include interfaces, use cases, constraints, relationships between use cases, etc. Realization elements realize subsystem behavior. Realization elements include various kinds of classifiers and their relationships. A subsystem is presented as a package with a fork symbol placed in the upper right corner of the small rectangle. The large rectangle has three compartments. One is for operations, one for specification elements, and one for realization elements. A subsystem is defined as a package (Section 4.2.6) it has package properties in the Subsystem Specification dialog. Subsystems can be defined as abstract, leaf, and/or root (generalizable elements.) Additional operations can be added to a subsystem. For more information about how to define operations, see Section 4.2.6, Operation. To add an operation to a subsystem To show/hide operations on a subsystem To show/hide operations visibility on a subsystem To show/hide a subsystem s visibility (package of which owns the subsystem) Choose Insert New Operation from the subsystem shortcut menu. Open the Subsystem Specification dialog. Click the Operations tab. Click the Add button. The Operation Specification dialog appears. Clear/select Suppress Operations check from the subsystem shortcut menu or in the subsystem Properties dialog. Select/clear Show Operations Visibility check from the subsystem shortcut menu or in the subsystem s Properties dialog. Select/clear Show Visibility check from the subsystem s shortcut menu or in the subsystem s Properties dialog. No Magic, Inc of 428

80 To show/hide realization/specificatio n elements Clear/select Suppress Realization/Specification Elements check from the subsystem s shortcut menu or in the subsystem s Properties dialog. Figure 21 Subsystem with suppressed realization and specification elements If a subsystem is set as instantiable, there may be several system parts with the same definition, if not, the subsystem represents a unique part of the physical system. To set a subsystem as instantiable elements Select the Instantiable check in the Subsystem Specification dialog, General tab Model A model is an abstraction of a physical system from a particular point of view. A model contains a hierarchy of packages/subsystems and other model elements that describe the system. A model is presented as a package with a small triangle in the upper right corner of the large rectangle. The triangle can be shown in the tab. A model is defined as a package (Section 4.2.6) it has package properties - in the Model Specification dialog. Model can be defined as abstract, leaf, and/or root (generalizable elements.) Collaboration A collaboration describes how an operation or a classifier (like a use case) is realized by a set of classifiers and associations used in a specific way. The collaboration defines a set of roles to be played by instances and links, as well as a set of interactions that define the communication between the instances when they play those roles. Define a collaboration in the Collaboration Specification dialog. No Magic, Inc of 428

81 To assign a classifier role to the collaboration 1. Create a collaboration on the diagram. 2. Create a classifier role on the diagram. 3. Drag-and-drop the classifier role to the collaboration in the Browser tree. NOTE You may edit the assigned classifier role in the Collaboration Specification dialog, Collaboration Roles tab. To assign an instance to the collaboration 1. Create a collaboration on the diagram. 2. Create an instance on the diagram. 3. Drag-and-drop the instance to the collaboration in the Browser tree. NOTE You may edit the assigned instance in the Collaboration Specification dialog, Collaboration Instance tab. To select a classifier or operation that a collaboration represents 1. Open the Collaboration Specification dialog. 2. Click the button in the Represented field. 3. Select the model element in the Select Model Element dialog Relationships between classifiers Classifier is a mechanism that describes behavioral and structural features. Classifiers include interfaces, classes, actors, components, data types, nodes, signals, subsystems, and use cases. Generalization Generalization is the relationship from the child element (the more specific element, such as a subclass) to the parent (the more general element, such as a superclass) that is fully consistent with the first element and that provides additiona`l information. Generalization is used between elements of the same kind, such as classes, packages, use cases, but never for instances, such as an object. MagicDraw is not yet adapted to draw generalization between associations. A generalization is shown as a solid-line path from the child element (the more specific element, such as a subclass) to the parent element (the more general element, such as a superclass), with a large hollow triangle at the end of the path where it meets the more general element. Generalization lines can be combined into trees. For more general information about working with symbols, see Chapter 3, Diagrams Basics. To specify generalization characteristics Choose Specification from generalization path shortcut menu or double-click the generalization path. The Generalization Specification dialog appears. No Magic, Inc of 428

82 To group generalization paths into a tree To ungroup a generalization tree To separate the generalization path from the generalization tree Show/hide generalization name Show/hide generalization stereotype Show/hide generalization constraints 1. Draw a generalization path between the child element and the parent element. 2. Click the generalization path button on the diagram toolbar. 3. Click the other child shape. 4. Drag the path to the other generalization path and drop it there. Choose Make Subclasses Tree from the parent class shortcut menu. Choose Make Subpackages Tree from the parent package shortcut menu. 1. Click the generalization tree s hollow triangle pointing to a parent element. 2. Choose Ungroup tree from the tree shortcut menu. Choose Remove From Tree from the generalization path shortcut menu. Drag one generalization path to another class. NOTE This command is available if the same tree contains the selected generalization path. Select/clear Show Name check from the generalization path shortcut menu. Select/clear Show Stereotype check from the generalization path shortcut menu Select/clear Show Constraint check from the generalization path shortcut menu Generalizable elements A generalizable element is a model element that may participate in a generalization relationship. Abstract Specifies whether the generalizable element may or may not have a direct instance. True indicates that an instance of the generalizable element must be an instance of a child of the generalizable element. False indicates that there may an instance of the generalizable element that is not an instance of a child. An abstract generalizable element is not instantiable since it does not contain all necessary information. Leaf Root Specifies whether the generalizable element is without descendents. True indicates that it may not have descendents False indicates that it may have descendents (whether or not it actually has any descendents at the moment). Specifies whether the generalizable element is a root generalizable element with no ancestors. True indicates that it may not have ancestors, false indicates that it may have ancestors (whether or not it actually has any ancestors at the moment). No Magic, Inc of 428

83 To define a generalizable model element (class, package, use case, etc.) as abstract, leaf, or root. 1. Open the corresponding Specification dialog. 2. Select the Abstract, Leaf, and/or Root check (es) in the General tab. Association An association in class diagrams represents the semantic relationship between two or more classifiers, which specifies connections between their instances. An association relationship is the most general of all relationships and the most semantically weak. An association in use case diagrams represents the participation of an actor in a use case, i.e., when instances of the actor and instances of the use case communicate with each other. This is the only relationship between actors and use cases. Sometimes an association relationship is called communication association. An association is drawn as a solid path connecting two classifier symbols. For general information about working with symbols, see Section 3, Diagrams Basics. To specify an association Double-click the association path. The Association Specification dialog appears. In the class diagram, you may add attributes to an association using an association class. The association class is a simple class that has a dashed line connection to the association. To draw an association class 1. Draw two classes and the association path between them. 2. Draw the third class. 3. Click the Link Attribute button on the diagram toolbar. 4. Click the third class shape (path source). 5. Drag the path to the association path (path destination) and drop it there. If you need to model a relationship among a number of classes, N-ary association is used. N-ary association is drawn as a big diamond with all the associations attached to its points. Every involved class may have role name and multiplicity. To draw N-ary association class 1. Draw three classes on the Diagram pane. 2. Draw N-ary association connector icon. 3. Connect all classes and N-ary association connector icon using association path. Association End An association end is simply an end of an association where it connects to a classifier. It is part of the association, not part of the classifier. Each association has two or more ends. An association end is not a separable element it is just a mechanical part of an association. No Magic, Inc of 428

84 To open the Association End Specification dialog To define the association end name To make a special case of an association path (aggregation/comp osition) 1. Double-click the association path. The Association Specification dialog appears. 2. Click the button in the Association End A or B group. This depends on which classifier playing role you wish to define (class A - association path target, class B source). 1. Open the Association End Specification dialog. 2. Type association end name in the Name. Choose Role A of <class name> or Role B of <class name> from the association shortcut menu, and then choose the Edit Name subcommand, then type or edit name directly on the Diagram pane. 1. Open the Association End Specification dialog. 2. Click the desired option button for an aggregation kind (None, Aggregate or Composite). Choose Role A of (class name) or Role B of (class name) from the association shortcut menu, and then click the desired option button for an aggregation kind (None, Aggregate or Composite). Click the Composition or Aggregation buttons and draw appropriated path on a diagram. Right click an association path end and choose Aggregate or Composite command from the shortcut menu. An association s navigability indicates whether it is possible to traverse an association within expression of a classifier to obtain the object or set of objects associated with the instances. Navigability is shown as an arrow that can be attached to the end of the path to indicate that navigation is supported toward the classifier attached to the arrow. To change an association s navigability 1. Open the Association End Specification dialog. 2. Select/clear the Navigable check. Choose Role A of (class name) or Role B of (class name) from the association shortcut menu, and then select/clear the Navigable check. NOTE By default, an association is navigable in both sides and its navigability is not visible. A role indicates a role played by the class in terms of an association. The role name is placed at the association end, near the class playing that role. The role name at the implementation level maps into the reference name to the opposite class. Roles may have visibility (public, protected and private). To define the association end s visibility 1. Open the Association End Specification dialog. 2. Click the desired option button (public, protected and private) from the Visibility group. The association end multiplicity describes how many entities are participating at the each association end: 0 zero and only zero. 1 one and only one zero or one. 0..* - from zero to any positive integer. No Magic, Inc of 428

85 1..* - from one to any positive integer. * - any positive integer. To place multiplicity values in the association path ends 1. Open the Association End Specification dialog. 2. Click the Detail tab. 3. Type or choose from the list multiplicity value (1, *, 0..*, etc.) in the Multiplicity. Choose Role A of (class name) or Role B of (class name) from the association shortcut menu, and then click the desired option button with the multiplicity value (1, *, 0..*, etc.) in the Multiplicity. Association end changeability: Changeable Frozen AddOnly To define association end s changeability No restrictions on modification. The value may not be altered after the object is instantiated and its values initialized. No additional values can be added to a sign is added. Meaningful only if the multiplicity is not fixed to a single value. Additional values can be added to the set of values, but once created a value may not be removed or altered. 1. Open the Association End Specification dialog. 2. Click the Detail tab. 3. Choose changeable, frozen or add only from the drop-down list. A qualifier is an attribute or list of attributes whose values serve to partition the set of instances associated with an instance across an association. The qualifiers are attributes of the association. A qualifier is shown as a small rectangle attached to the end of an association path between the final path segment and the symbol of the classifier that it connects to. The qualifier rectangle is part of the association path, not part of the classifier. The qualifier rectangle drags with the path segments. The qualifier is attached to the source end of the association. To add, edit, or remove a qualifier to/from an association end 1. Open the Association End Specification dialog. 2. Click the Detail tab. 3. In the Qualifiers group, click the Add or Edit button. The Attribute Specification dialog appears. Define a qualifier. 4. To remove a qualifier, click the Remove button. In the Association End Specification dialog, you may also define association end scope, type modifier, or set association end as ordered. Realization A realization relationship is a relationship between two descriptions of the same thing between specification and its implementation but at different levels of abstraction. A realization is used to show an interface implementation. The realization means that the client element must support all the behavior of the supplier element but need not match its structure or implementation. No Magic, Inc of 428

86 Realization relationships are drawn as a dashed line with a solid triangular arrowhead (a dashed generalization symbol ). The client (the one at the tail of the arrow) supports at least all of the operations defined in the supplier (the one at the arrowhead), but without the necessity of supporting the data structure of the supplier (attributes and associations). For more general information about working with symbols, see Diagrams Basics. Realization paths can be grouped in the tree. This feature makes a diagram appear both more structural and understandable. To create a realization if a class or an interface already has a number of realization paths attached to it To remove a realization from the tree, or to ungroup a tree To specify the selected realization path in the Abstraction Specification dialog Show/hide a path s name Show/hide a path stereotype Choose the Make Subclasses Tree command from the class or the interface shortcut menu. 1. Select the realization and choose the Remove From Tree command from the path shortcut menu 2. Select tree head and choose the Ungroup Tree command from the tree shortcut menu. Double-click the path. Choose Specification from the path shortcut menu. Select the path and press ENTER key. Select/clear the Show Name from the path shortcut menu Choose Show Stereotype from the path shortcut menu. NOTE You may define other association characteristics for a communication path, such as cardinality and aggregation type. Dependency A dependency indicates a semantic relationship between two model elements (or two sets of model elements). It relates the model elements themselves and does not require a set of instances for its meaning. It indicates a situation in which a change to the supplier (target) element may require a change to the client (source) element in the dependency. A dependency is shown as a dashed arrow between classes or packages. The model element at the tail of the arrow (the client element) depends on the model element at the arrowhead (the supplier element). The arrow can be labeled with an optional stereotype and an optional individual name. NOTE You may also draw a dependency between a class and other class elements, such as attributes and operations. For more general information about working with the symbols see, Section 3, Diagrams Basics. No Magic, Inc of 428

87 Abstraction An abstraction is a Dependency relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints. Define an abstraction in the Abstraction Specification dialog. Binding dependency A binding is a relationship between a template and a model element generated from the template. It includes a list of arguments matching the template parameters. The template is a form that is cloned and modified by substitution to yield an implicit model fragment that behaves as if it were a direct part of the model. A Binding must have one supplier and one client; unlike a general Dependency, the supplier and client may not be sets. Define a binding dependency in the Binding Specification dialog. Permission Permission is a kind of dependency. It grants a model element permission to access elements in another namespace. Define a permission relationship in the Permission Specification dialog. Usage A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. The relationship is not a mere historical artifact, but an ongoing need; therefore, two elements related by usage must be in the same model. Define a usage relationship in the Usage Specification dialog. 4.3 Use Case Diagrams A use case is a description of the functionality (a specific usage of a system) that a system provides. The use case descriptions may exist in textual form (simple table), where the use case diagram provides additional information about the relationship between use cases and external users. The diagram also allows definition of the system s boundary. Use cases are described only as viewed externally by the user (a system s behavior as the user perceives it), and do not describe how the functionality is provided inside the system. Use cases are not object oriented, but they are included in the UML to simplify the approach of the project s lifecycle -- from specification to implementation. Figure Schematic view of the use cases in the system. No Magic, Inc of 428

88 4.3.1 Elements in Use Case diagram Model elements Button (shortcut) Function Notation Actor (A) An actor represents a role played by an external person, process or a thing interacting with a system. One physical object may play several roles. Use case (U) A use case is a classifier representing a coherent unit of functionality provided by a system, a subsystem, or a class as manifested by sequences of messages exchanged among the system and one or more outside interactors (called actors) together with actions performed by the system. Interface (I) The description of a visible behavior of a class, a component or a package. Interface with the suppressed attributes and operations. Package (P) A group of classes and other model elements. A package may contain other packages Subsystem (P) A subsystem is treated as an abstract single unit and groups model elements by representing the behavioral unit in a physical system. Select by right-clicking Select by right-clicking No Magic, Inc of 428

89 Model elements Button (shortcut) Function Notation Model System boundary (P) Another representation of a package. A system boundary element consists of use cases related by exclude or include (uses) relationships. Collaboration (T) A collaboration describes how an operation or a classifier, like a use case, is realized by a set of classifiers and associations used in a specific way. The collaboration defines a set of roles to be played by instances and links, as well as a set of interactions that define the communication between the instances when they play the roles Relationships in a Use Case diagram Relationship Association The participation of an actor in a use case, i.e. instances of the actor and instances of the use case communicate with each other. This is the only relationship between actors and use cases. Button (shortcut key) (S) Notation No Magic, Inc of 428

90 Relationship <<Extend>> An extend relationship from use case A to use case B indicates that an instance of use case B can be augmented (subject to specific conditions specified in the extension) by the behavior specified by A. The behavior is inserted at the location defined by the extension point in B which is referenced by the extend relationship. <<Include>> An include (uses) relationship from use case A to use case B indicates that an instance of the use case A will also contain the behavior as specified by B. The behavior is included at the location which defined in A. Dependency Indicates a semantic relationship among two or more model elements. Button (shortcut key) (E) (C) (D) Notation Generalization A relationship between a more general and a more specific element. Realization A relationship between a specification element and its implementation (G) (R) No Magic, Inc of 428

91 4.3.3 Actors An actor represents any external user working with a system. An actor can be a human, another system or some executable process. An actor requires some task solutions from a system. This task is represented as a use case. An actor is shown as a stick man figure with the name below the figure. If attributes and operations are unsuppressed, an actor is shown as a class with a stick man figure in the upper right corner. An actor is similar to a class. It has the same structure but it is not possible to add inner elements or define a template parameter to an actor. For more information about working with actors, see Section 0, Working with classes on page 66. Define an actor in the Actor Specification dialog Use Cases A use case represents a typical interaction between a user and a system. It captures some of the functionality and data that the user works with. A use case is a classifier representing a coherent unit of functionality provided by a system, a subsystem, or a class. This unit of functionality is manifested by sequences of messages exchanged among the system and one or more outside interactors (called actors) together with actions performed by the system. An extension point is a reference to one location within a use case where action sequences from other use cases can be inserted. Each extension point has a unique name within a use case and a description of the location within the behavior of the use case. A use case is shown as an ellipse containing the name inside. Extension points are listed in a compartment of the use case with the heading extension points. For more general information about working with symbols, see Section 3, Diagrams Basics. Define the selected use case in the Use Case Specification dialog. To assign a main diagram for the selected use case 1. From the use case shortcut menu, choose Main Diagram and then choose Assign Main diagram. The Assign Main Diagram dialog appears. 2. Select a diagram from the list. 3. Click the Assign button. 4. To create a new diagram click the New button 5. To open the main diagram for the selected use case, choose Main Diagram from the package shortcut menu and then choose Open Main diagram. No Magic, Inc of 428

92 To add an extension point for the use case 1. Open the Use Case Specification dialog. 2. Click the Extension Points tab. 3. Click the Add button. The Extension Point Specification dialog appears. 4. Specify the extension point and click OK. TIPS: You may create an extension point directly on a diagram: Draw an extension path between two use cases, and then in the message window click YES. The extension point is being created. Specify the name of an extension point. Choose Insert New Extension Point from the use case shortcut menu. You may define a use case as abstract, leaf, or root (for the detailed description, see Generalizable elements on page 81.) Relationships in Use Case diagram There are several standard relationships among use cases or between actors and use cases. Association For more on defining associations, see Section 0, Association on page 82. Extend Define extend relationship in the Extend Specification dialog. Include Define extend relationship in Include Specification dialog. Generalization For more on defining generalizations, see Section 0, Generalization on page 80. The participation of an actor in a use case, i.e. instances of an actor and a use case communicate with each other. This is the only relationship between actors and use cases. Sometimes an association relationship is called communication association. An extend relationship from use case A to use case B indicates that an instance of use case B can be augmented (subject to specific conditions specified in the extension) by the behavior specified by use case A. The behavior is inserted at the location defined by the extension point in B which is referenced by the extend relationship. An include relationship from use case A to use case B indicates that an instance of the use case A will also contain the behavior as specified by B. The behavior is included at the location defined in use case A. A generalization from use case A to use case B indicates that A is a specialization of B. No Magic, Inc of 428

93 Dependency For more on defining dependencies see Section 0, Dependency on page 85 A dependency indicates a semantic relationship between two model elements (or two sets of model elements). It relates the model elements themselves and does not require a set of instances for its meaning. It indicates a situation in which a change to the target element may require a change to the source element in the dependency. 4.4 Interaction Diagrams The interaction is a set of messages exchanged between objects within a collaboration to accomplish the desired operation or result. The interaction can be used to illustrate how the tasks are performed in one use case. Interaction diagrams are the tools used for depicting the behavior that results from the collaboration of a group of instances. There are two kinds of interaction diagrams: collaboration and sequence. They express similar information (they may in fact be based on the same interaction) but represent it in different ways Collaboration diagram overview Collaboration diagram shows an interaction organized around roles. A collaboration diagram presents a collaboration that contains a set of instances, as well as their required relationships given in a particular context. The diagram also presents an interaction that defines a set of messages specifying the interaction between the classifier roles within a collaboration to achieve the desired result. A collaboration diagram is given in two different forms: at the instance level or at the specification level; it shows either Instances, Links, and Stimulus, or ClassifierRoles, AssociationRoles, and Messages. Instance level The instance level (or context) is defined in terms of a static structure of instances and the relationships between them. Instances have to be assigned to a classifier: either to a class (object), a use case (use case instance), or an actor (actor instance). The structural part (more precisely the representation of it) is sometimes called object diagram. Specification level At the specification level, the diagram shows behavioral elements - ClassifierRoles, AssociationRoles - and Messages among them. Behavioral elements are dynamic interactions that show sequence of messages exchanged by objects over time. A collaboration diagram shows objects interactions organized around the objects and their relationships to each other. The 3D interaction model (see Figure Interaction representation in 3-Dimensional view) shows that the collaboration diagram is the model projection to the bottom. The table below summarizes the model elements that can be described by collaboration: Facet Structural elements Behavioral elements Layer Specification Type Type Method Metamodel Implementation Classifier role Association role Operation (message) Metamodel No Magic, Inc of 428

94 Facet Structural elements Behavioral elements Layer Instance Instance Link Operation execution after call (stimulus) Model Sequence diagram overview A sequence diagram shows interaction information with an emphasis on the time sequence. The diagram has two dimensions: the vertical axis represents time, while the horizontal axis represents participating objects. The time axis could be an actual reference point (by placing the time moments labels as text es). Horizontal ordering of the objects is not significant to the operation, and you may rearrange them as necessary. The 3D-interaction model (see Figure Interaction representation in 3-Dimensional view) shows the sequence diagram model projection to either side (whichever is better). However the diagram does not show the associations between the objects. No Magic, Inc of 428

95 Figure Interaction representation in 3-Dimensional view No Magic, Inc of 428

96 4.4.3 Collaboration diagrams Elements in Collaboration diagram Model elements Button (shortcut key) Function Notation Instance (I) A particular instance of a classifier. It has a unique name, state, and classifier as the type of identifier. Link (L) An instance of an association between classifiers. Every link among instances of particular classifiers should have corresponding association between corresponding classifiers. Link to Self (S) An instance of association. Self link for self-calls. It begins and ends on the same instance. Classifier role (C) A classifier role is a specific role played by a participant in a collaboration. It specifies a restricted view of a classifier, defined by what is required in the collaboration. Association role (A) Association roles describe the required links between the instances, i.e. a subset of the existing links. No Magic, Inc of 428

97 Model elements Button (shortcut key) Function Notation Message / Stimulus (R) (E) A stimulus is a communication between two instances that conveys information with the expectation that action will ensue. A stimulus will cause an operation to be invoked, raise a signal, or an instance to be created or destroyed. A message is a specification of stimulus, i.e. it specifies the roles that the sender and the receiver objects should conform to, as well as the Action which will, when executed, dispatch a stimulus that conforms to the message. Instance An instance is an individual unit with its own identity and value. Each instance has a descriptor, model element. MagicDraw allows you to create instances of classifiers class, interface, use case, actor, and subsystem - in a collaboration diagram. Instances are shown using a rectangle by underlining the name string of an instance element. Instance of an actor is shown as an actor stick man figure with an actor s name string below the symbol. For more general information about working with symbols, see Diagrams Basics. Define the selected instance in the Instance Specification dialog, Object (an instance of a class) in the Object Specification dialog, Use Case Instance in the Use Case Instance Specification dialog, Subsystem Instance in the Subsystem Instance Specification dialog. To assign an already existing classifier to an instance To assign/change/ unassign a previously existing classifier to/for an instance in the Instance Specification dialog 1. Draw an instance on the diagram pane. 2. Right-click the instance shape and choose Classifier from the instance shortcut menu. 3. Choose the classifier you wish to assign to an instance. 1. Draw an instance on the diagram pane. 2. Double-click an instance shape or choose Specification from the shape shortcut menu. 3. The Instance Specification dialog appears. Click the Assigned Classifiers tab. To assign a new classifier, click the Assign button. The Select Model Element dialog appears. Select a classifier you wish to assign to an instance. To edit a previously created classifier, click the Edit button. The corresponding Specification dialog appears. To unassign the assigned classifier, click the Unassign button. No Magic, Inc of 428

98 To hide/show an assigned classifier To create a multiobject To set initial value to an attribute of the assigned classifier To show/hide attributes of the assigned classifier To select attributes to be shown on the instance Choose Show Classifier from the instance shortcut menu. 1. Create a classifier role and set a multiplicity with an unbounded upper limit *. 2. Assign that classifier role to an instance. 1. Draw an instance on the diagram pane. Double-click an instance s shape or choose Specification from the shape shortcut menu. 2. The Instance Specification dialog appears. Click the Slots tab. 3. Click the Edit button. The Type Init Value dialog appears. 4. Type the name of the initial value. Clear / select Suppress Attributes check in the instance shortcut menu. NOTE By default attributes of the classifier are suppressed. Choose Compartment Edit from the instance shortcut menu. The Compartment Edit dialog appears. Select attributes to be visible on the instance shape. NOTE The Suppress Attributes and Compartment Edit commands are available only when the assigned classifier contains at least one attribute. To reduce a diagram s complexity, instances of class (objects) that are made of sub-objects can be represented as a composite object. Figure Composite object To create a composite object 1. Click the Object button on the diagram toolbar or press key O (the button remains pressed). 2. Click the Sticky button on the diagram toolbar or press shortcut keys: Z, CTRL+SHIFT+Z. 3. Click on the desired place in the Diagram pane. The new object is placed on the diagram. 4. Click on the created object on the Diagram pane. The new object is placed on the composite object. 5. Repeat this until you draw the desired number of objects. 6. Click the Sticky button on the diagram toolbar or press shortcut keys Z,SHIFT+CTR+Z. Drag already created objects to your target object. No Magic, Inc of 428

99 Link A link represents a connection between two or more instances of class, interface, actor, and use case. A link is an instance of association. Through this connection, instances send and receive messages and data. Links take their identity from the instances that they relate. Name, multiplicity, other association adornments (aggregation, composition, navigation) are not shown for links. For more general information about working with symbols, see Section 3, Diagrams Basics. Define the selected link in the Link Specification dialog. A link end is an instance of association end. Predefined link end stereotypes: <<association>> (default and not visible), <<global>>, <<local>>, <<parameter>>, <<self>>. To specify a link end in the Link End Specification dialog 1. Double-click the link or choose Specification from the link shortcut menu. The Link Specification dialog appears. 2. Click the Edit Link End A or Edit Link End B buttons. The Link End Specification dialog appears. Specify the link end and click OK. Choose Link End A or Link End B from the link shortcut menu. The Link End Specification dialog appears. Classifier role A classifier role is a specific role played by a participant in a collaboration. It specifies a restricted view of a classifier, defined by what is required in the collaboration. The role describes the type of Object that may play the role, such as required Operations and Attributes, and describes its relationships to other roles. The relationships to other roles are defined by Association Roles. A Classifier Role is shown using a rectangle symbol. For more general information about working with symbols, see Section 3, Diagrams Basics. Define the selected classifier role in the Classifier Role Specification dialog. To assign a base classifier to a classifier role To assign/change base classifier of a classifier role in the Classifier role Specification dialog 1. Right-click the classifier role shape and choose Classifier from the classifier role s shortcut menu. 2. Choose the classifier you wish to assign to a classifier role. 1. Double-click a classifier role shape or choose Specification from the shape shortcut menu. 2. The Classifier Role Specification dialog appears. To assign a new base classifier, click the Base Classifier drop-down button. The list with classifiers appears. Select a classifier you wish to assign to a classifier role. To edit already created classifier, click the Edit Base button. The corresponding to a classifier Specification dialog appears. No Magic, Inc of 428

100 To hide/show a base classifier To set multiplicity indicator for a classifier role Choose Show Classifier from the classifier role shortcut menu. 1. Double-click a classifier role s shape or choose Specification from the shape shortcut menu. 2. The Classifier Role Specification dialog appears. 3. Select the multiplicity indicator from the Multiplicity drop-down list or type your own indicator. NOTE If you create a classifier role and set a multiplicity with an unbounded limit * the classifier role is drawn as a multiple object. Association role Relationships between classifier roles are defined by association roles. An association role is shown with the usual association line. The name string of the association role follows the same syntax as for the classifier role. If the name is omitted, a line connected to classifier role symbols denotes an association role. For more general information about working with symbols see, Section 3, Diagrams Basics. Define the selected association role in the Association Role Specification dialog. Predefined association role stereotype <<implicit>>. The information attached to the ends of the Association Role (i.e. to the Association End Roles), are shown using the same notation as for Association Ends. See Generalizable elements on page 81. To specify association end role in the Association End Role Specification dialog 1. Double-click the association role or choose Specification from the association role shortcut menu. The Association Role Specification dialog appears. 2. Click the Association End Role A or Association End Role B buttons. The Association End Role Specification dialog appears. Specify the link end and click OK. Stimulus / Message In a collaboration diagram, a Stimulus is a communication between two Instances that conveys information with the expectation that action will ensue. A Stimulus will cause an Operation to be invoked, raise a Signal, or cause an Instance to be created or destroyed. A Message is a specification of a Stimulus, i.e. it specifies the roles to which the sender and the receiver Instances should conform, as well as the Action which will, when executed, dispatch a Stimulus that conforms to the Message. There are several different action types of Messages and Stimulus. Messages and Stimulus are shown as labeled arrows placed near an Association Role or a Link, respectively. They are shown this way to suggest that the Link is used for transportation of the Stimulus to the target Instance. The arrow points along the line in the direction of the receiving Instance. No Magic, Inc of 428

101 Function Notation Asynchronous stimulus / message The sender is not waiting for acceptance from the recipient. Synchronous stimulus / message The operation that is called should be completed before the caller resumes execution. Function Notation Balking stimulus / message The sender abandons the message if the receiver is not ready. Time-out stimulus / message The sender waits for acknowledgment from the recipient for a given period of time. The sender is freed up if the acknowledgment does not occur within the duration specified in the description. To draw a stimulus/message on the link/association role To set an action for a stimulus / message To show/hide the numbers of the stimulus/messages To change the numbering of the stimulus/messages 1. Click the Stimulus/Message to Right or Left button on the diagram toolbar or press shortcut keys R or E (the button remains pressed) 2. Click the desired link/association on the Diagram pane. A stimulus / message arrow is placed to the link/association role you click on the diagram. NOTE A message flow has two directions: right and left. Choose one of them by clicking an associated button on the diagram toolbar. 1. Open the Stimulus Specification or Message Specification dialog. 2. Click the Action Type button. The Action Specification dialog appears. 3. Choose the action type from the Type drop-down. See Section 0, Actions. Select/clear the Show Numbers command from the collaboration diagram shortcut menu. 1. Right-click the collaboration diagram and choose the Change Numbering command from the shortcut menu. 2. Increase, decrease, and/or change the level of numbering in the Change Collaboration Numbering dialog. No Magic, Inc of 428

102 Predecessor is the set of messages/stimuli whose completion enables the execution of the current message. The predecessor is a comma-separated list of sequence numbers followed by a slash ( / ): sequence-number,... / The meaning is that the message is not enabled until all of the communications whose sequence numbers appear in the list have occurred. Therefore, the list of predecessors represents a synchronization of threads. The message corresponding to the numerically preceding sequence number is an implicit predecessor and need not be explicitly listed. All of the sequence numbers with the same prefix form a sequence. The numerical predecessor is the one in which the final term is one less. That is, number is the predecessor of , where the number 3 is an activator. To show predecessors on the message To change the activator number of the messages Choose Show Predecessors from the current message shortcut menu. Choose Edit Symbol(s) command from the message shortcut menu and select the Show Predecessors check. 1. Choose Activator command from the current message shortcut menu. 2. Choose the number of activator that you want to assign for the current message and predecessors. NOTE: If you change the activator number to one of the predecessor message, this number also changes for other predecessors. Define the selected stimulus in the Stimulus Specification dialog. Define the selected message in the Message Specification dialog. Actions An action is a specification of an executable statement that forms an abstraction of a computational procedure, resulting in a change in the state of the model. It can be realized by sending a message to an object, or by modifying a link or a value of an attribute. Specify assigned actions in the Action Specification dialog. No Magic, Inc of 428

103 Action Type Description Characteristics Representation Collaboration diagram Sequence diagram Create An action in which an instance is created based on the definitions of the specified set of classifiers. Instantiation (classifier) - the Classifier of which an Instance will be created when the Create Action is performed. Stimulus and message (new) Message is connected directly to an object (not lifeline). Call An action in which a stimulus is created that causes an operation to be invoked on the receiver. Operation - the operation, which will be invoked when the Action is executed. Stimulus and message Send An action in which a stimulus is created that causes a signal event for the receiver(s). Stimulus and message Destroy An action in which an instance causes another instance to cease to exist. Stimulus and message A large X mark is displayed on the object s lifeline in the message s destination. Uninterpreted An action that has no interpretation in UML. Message Return An action that returns a value to a caller. Message Terminate An action in which an instance causes itself to cease to exist. Message Assignment An action that assigns an instance to an attribute link, or a link. Message Set the following features for an action in the Action Specification dialog. Attribute Description How to Recurrence /Condition An expression which states how many times the Action should be performed. Type an expression in the Recurrence/Condition text. No Magic, Inc of 428

104 Attribute Description How to Script Argument An action expression describing the effects of the action. An argument is an expression describing how to determine the actual values passed in a dispatched request. It is aggregated within an action. Type an expression in the Script text. Click the Arguments tab. To enter a new argument expression, click the Add button. The Enter Expression dialog appears. Type an expression and click OK. To edit an argument expression, click the Edit button. The Enter Expression dialog appears. Edit the expression and click OK. To remove an argument expression, click the Remove button or press DELETE. Active objects An active object is an object that has its own state machine and a thread of control. An active object executes concurrently with other active objects. They are used to model real-time systems. An active object is an instance of an active class that is implemented as a thread or a process. These objects may have a synchronization mechanism to prevent them from concurrently using the same resource. The problem is solved by sending synchronous messages. Active objects communicate using synchronous messages or messages mail and queues. This technique allows a message to be sent and received asynchronously (a sender object does not wait for an answer from a recipient object). An active object is shown as a rectangle with a heavy border and an underlined object name inside. Frequently, an active object is shown as a composite with embedded parts to explain its internal structure. These internal objects might be passive as well as active. You may also use a keyword {active} to indicate an active object. Figure Active object To draw an active object in a collaboration or sequence diagram 1. Create an active class by selecting Active check in the Class Specification. An active class is shown as a rectangle with heavy borders. 2. Create an instance of this class as an active object. No Magic, Inc of 428

105 4.4.4 Sequence diagrams Elements in Sequence diagram Model elements Button (shortcut key) Function Notation Classifier role (O) An instance of a class. An object has identity, attribute values, a unique name, a state, and a class as the type of identifier Lifeline Represents the existence of an object at a particular time. Activation bar Focus of control. Shows the period during which an object is performing an action either directly or through a subordinated procedure. Message Default: synchronous uninterpreted (M) A communication between objects that conveys information with the expectation that action will ensue. The receipt of a message is one type of event. Diagonal object message (D) Requires some time to arrive, during which another action occurs. No Magic, Inc of 428

106 Model elements Button (shortcut key) Function Notation Message To Self (S) Concurrent lifeline (L) A conditional branch in the message flow. Recursive message (R) A connected set of messages can be enclosed and marked as iteration. Classifier roles in a sequence diagram For more general information about working with symbols, see Diagrams Basics. Define the selected association role in the Association Role Specification dialog. For more information on working with classifier roles, see Section 0, Classifier role. Lifelines A lifeline represents the existence of the object at a particular time. It stretches from the top to the bottom of the diagram. In a sequence diagram, an object lifeline denotes an Object playing a specific role. No Magic, Inc of 428

107 To destroy a sequence object - a large X at the end of its lifeline marks its destruction. Choose Destroy from the lifeline or classifier role shortcut menu. Set a message as destroyed. When an object receives a message, an activity starts in that object. An activation (focus of control) shows the period during which an object is performing an action either directly or through a subordinate procedure. The activation bar is used to denote that activity. To change activation bar size 1. Click the desired activation bar on the Diagram pane. 2. Drag an activation bar to the desired direction. NOTE After resizing, the lines on an activation bar are thickened and the size of an activation bar may not change automatically.. The lifeline may split into two or more concurrent lifelines to show conditionality. Each corresponds to a conditional branch in the message flow. Lifelines may merge together at some subsequent point. To add a concurrent lifeline to a lifeline Click the Concurrent Lifeline button on the diagram toolbar and click the lifeline on the desired place where you wish to draw a concurrent lifeline. A branch is shown by multiple arrows leaving a single point, each labeled by a guard condition. Depending on whether the guard conditions are mutually exclusive, the construct may represent conditionality or concurrency. To draw a branching of messages 1. Draw a message from one lifeline to another. 2. Draw another message from one message to the concurrent lifeline or a lifeline. Messages in sequence diagram Messages are the main tool for displaying an interaction between objects, which is usually an operation call or creation and destruction event. Messages are labeled with the name (operation or signal) and their argument values. Define the selected message in the Message Specification dialog. For more information on working with messages, Section Stimulus / Message and Section Actions. No Magic, Inc of 428

108 Message type Function Notation Synchronous Typically implemented as an operation call. The operation that is called should be completed before the caller resumes execution. The return can be shown as a simple message or it can be omitted Asynchronous Asynchronous means that the source is not waiting for the acceptance. Balking message In the balking message case the sender abandons the message if the receiver is not ready. Time-out A time-out message the sender sends for a given period of time while waiting for acknowledgment by recipient. The sender is freed up if the acknowledgment does not occur within the duration specified in the description. Call All action is an action in which a stimulus is created that causes an operation to be invoked on the receiver. No Magic, Inc of 428

109 Message type Function Notation Send Send action is an action in which a stimulus is created that causes a signal event for the receiver(s). Create Create action is an action in which an instance is created based on the definitions of the specified set of classifiers. Return Return action is an action that returns a value to a caller. Destroy Destroy action is an action in which an instance causes another instance to cease to exist. Terminate Terminate action is an action in which an instance causes itself to cease to exist. Uninterpreted A simple message shows the control flow from a sender to a receiver without presenting any details about the communication process. No Magic, Inc of 428

110 4.5 State and Activity Diagrams The behavior of objects of a class can be described in terms of states and events, using a state machine connected to the class under construction. A state machine is a specification of the sequence of states through which an object or an interaction goes in response to events during its life, together with responsive actions. The state machine may represent the sequence of states of a particular collaboration (i.e. collection of objects) or even the whole system (which is also considered a collaboration). The abstraction of all possible states defined in a state machine is similar to the way class diagrams are abstracted: all possible object types (classes) of a particular system are described. Objects that do not present a very pronounced reactive behavior may always be considered to stay in the same state. In such a case, their classes do not possess a state machine State diagram overview State diagrams (also called Statechart diagrams) represent the behavior of entities capable of dynamic behavior by specifying its response to the receipt of event instances. Typically, state diagrams describe the behavior of classes, but statecharts may also describe the behavior of other model entities such as use-cases, actors, subsystems, operations, or methods. A state diagram is a graph that represents a state machine. States and various other types of vertices (pseudostates) in the state machine graph are rendered by appropriate state and pseudostate symbols, while transitions are generally rendered by directed arcs that inter-connect them. States may also contain subdiagrams by physical containment or tiling. Note that every state machine has a top state, which contains all the other elements of the entire state machine. The graphical rendering of this top state is optional. The states are represented by state symbols, while the transitions are represented by arrows connecting the state symbols. A state diagram shows all the possible states that objects or collaborations may have, and what events cause the state to change. An event can be another object that sends a message to it: for example, that a specified time has elapsed or that some condition has been fulfilled. A change of a state is called a transition. A transition may also have an action connected to it that specifies what should be done in connection with the state transition. A state diagram concerns internal object changes (as opposed to the external object interaction in collaboration). Do not attempt to draw them for all classes in the system, because they are used only for modeling a complex behavior Activity diagram overview An activity graph is a variation of a state machine. In a state machine, the states represent the performance of actions or subactivities, while the transitions are triggered by the completion of the actions or subactivities. It represents a state machine of a procedure itself. The entire activity diagram is attached (through the model) to a class, such as a use case, or to a package, or to the implementation of an operation. The purpose of this diagram is to focus on flows driven by internal processing (as opposed to external events). You should use activity diagrams in situations where all or most of the events represent the completion of internally-generated actions (that is, procedural flow of control). You should use ordinary state diagrams in situations where asynchronous events occur. An activity diagram is a variant of a state diagram. Organized according to actions, activity diagrams are mainly targeted towards the representation of the internal behavior of a method (the implementation of an operation) or a use case. No Magic, Inc of 428

111 Though activity diagrams are often classified alongside interaction diagrams, they actually focus on work performed by a system instead of an object interaction. An activity diagram captures actions and displays their results. A state diagram may also represent this sequencing of steps. However, given the procedural nature of the implementation of the operations in which most events simply correspond to the end of the preceding activity it is not necessary to distinguish states, activities, and events systematically (i.e., state changes and external events have less importance inside the method). It is therefore beneficial to have a simplified representation for directly displaying activities. An activity diagram is a convenient way to describe complex algorithms, parallel operations, and business processes. Together with the collaboration and sequence diagrams, they are used to relate use cases. A state diagram may also represent this sequencing of steps. However, given the procedural nature of the implementation of the operations in which most events simply correspond to the end of the preceding activity it is not necessary distinguish states, activities, and events systematically (i.e. state changes and external events aren t so important inside the method). It is therefore beneficial to have a simplified representation for directly displaying activities. An activity diagram is a convenient way to describe complex algorithms, parallel operations, and business processes. They are used to relate use cases together with the collaboration and sequence diagrams Elements in state diagram NOTE If a black arrow is placed on a button, right-click the button, to open other available buttons. Model elements Button (shortcut key) Function Notation State (S) A condition or situation during the life of an object or an interaction during which it satisfies some condition, performs some action, or waits for some event. Concurrent state A state containing other state vertices (states, pseudostates, etc.). It is useful when a given object contains sets of independent behaviors. Submachine Represents the invocation of a state machine defined elsewhere. No Magic, Inc of 428

112 Model elements Button (shortcut key) Function Notation Action state (A) A state with an internal action and at least one outgoing transition involving the implicit event of completing the internal action (there can be several such transitions if they have guard conditions). Call State A call state is an action state that has exactly one call action as its entry action. It is useful in object flow modeling to reduce notational ambiguity over which action is taking input or providing output. Initial state Final state (I) (F) Denotes an initial state when an object is created. Denotes an object s destruction or the end of collaboration. Synch state (Y) A special state that enables synchronization of control between two concurrent regions in a state machine. History state (R) Serves for internal state memorizing. A history state indicates that the enclosing composite state remembers its previously active substate after it exits. No Magic, Inc of 428

113 Model elements Button (shortcut key) Function Notation Junction point A junction point is used to merge and split transitions. (J) Dynamic Choice Point (D) Dynamic choice points are used for splitting transition paths. In the dynamic choice point, a decision on which branch to take is only made after the transition from State1 is taken and the choice point is reached. Stub state (U) Represents already created state. Vertical synchronization bar (V) Helps to control parallel actions. Horizontal synchronization bar (B) Helps to control parallel actions. No Magic, Inc of 428

114 Model elements Button (shortcut key) Function Notation Transition (T) A relationship between two states indicating that an object in the first state will enter the second state and perform certain specified actions when a specified event occurs if specified conditions are satisfied. Transition to self (E) When an object returns to the same state after the specified event occurs Elements in activity diagram Model elements Button (shortc ut key) Function Notation Action state (A) A state with an internal action and at least one outgoing transition involving the implicit event of completing the internal action (there can be several such transitions if they have guard conditions). State (S) A condition or situation during the life of an object or an interaction during which it satisfies some condition, performs some action, or waits for some event. Call State A call state is an action state that has exactly one call action as its entry action. It is useful in object flow modeling to reduce notational ambiguity over which action is taking input or providing output. No Magic, Inc of 428

115 Model elements Button (shortc ut key) Function Notation Concurrent state A state containing other state vertices (states, pseudostates, etc.). It is useful when a given object contains sets of independent behaviors. Submachine state Represents the invocation of a state machine defined elsewhere. No Magic, Inc of 428

116 Model elements Button (shortc ut key) Function Notation Subactivity state (S) Represents an activity graph. Entering a subactivity state represents, entering the activity graph, which is nested in the subactivity state. Initial state (I) Denotes an initial state when an object is created. Final state (F) Denotes an object s destruction or the end of collaboration. Transition (T) A relationship between two states indicating that an object in the first state will enter the second state and perform certain specified actions when a specified event occurs, once specified conditions are satisfied. Horizontal synchronizati on bar (B) Helps to control parallel actions. Vertical synchronizati on bar (V) Helps to control parallel actions. Decision point (D) Is used to model conditional branching. No Magic, Inc of 428

117 Model elements Button (shortc ut key) Function Notation Signal receipt shape (R) Signal sending shape (G) Swimlane (P) Swimlanes are used to organize responsibility for actions and subactivities according to class, dividing an activity diagram. Object flow state (O) Objects that are input to or output from an action State A state is a condition during the lifetime of an object or an interaction during which the object meets certain conditions, performs an action, or waits for an event. States are defined by the concepts of duration and stability. An object may not be in an unknown or undefined state. A state may have three compartments to provide more information about that state: The first compartment - name compartment - contains state name, for example, running. going up. The second compartment - activity compartment - events and actions of the state are listed. The third compartment - optional state variable compartment - attributes can be listed and assigned. The attributes are those of the class displayed by the state diagram. For more general information about working with symbols, see: Diagrams Basics. Define the selected state in the State Specification dialog. No Magic, Inc of 428

118 To control a list of actions and attributes that are visible in a diagram for the class view To suppress/unsuppress actions compartment To suppress/unsuppress attributes compartment To insert a new attribute directly in the state Choose Compartment Edit from the state shortcut menu. The Compartment Edit dialog appears. Choose Suppress Actions from the state shortcut menu. Choose Suppress Attributes from the state shortcut menu. Choose Insert new Attribute from the state shortcut menu. Any state may have its own internal states, also known as substates. Substates describe what occurs inside a particular state of an object. A composite state is either a network of disjointed substates or a set of concurrent substates. Figure Composite state The start and end states may also be internal states. All internal states of a composite state can be deemed as a separate state diagram Concurrent state A concurrent state (also known as a concurrent composite state) is divided into two or more substates (called regions). It is a state that contains other state vertices (states, pseudostates, etc.). Naturally, any substate of a concurrent state may also be a composite state of either type. Any state enclosed within a composite state is called a substate of that concurrent state. No Magic, Inc of 428

119 An expansion of a state shows its internal state machine structure. A concurrent state is shown as a simple state with the regions that are separated by dashed lines. You may enclose all kinds of states in a concurrent state s regions. For more general information about working with symbols see Section 3, Diagrams Basics. Define the selected concurrent state in the State Specification dialog. For more information on working with states, Section 4.5.5, State. To add a new region to the concurrent state To remove any region from the concurrent state (at least two regions have to be left) Choose Add New Region from the concurrent state shortcut menu. Choose Remove Region from the concurrent state shortcut menu and choose a region you want to remove Synch state A synch state is a special state that enables synchronization of control between two concurrent regions in a state machine. For more general information about working with symbols, see: Diagrams Basics. Define the selected synch state in the State Vertex Specification dialog. Figure Synch State To set the bound number for the synch state 1. Double-click the synch state or choose Specification from the submachine shortcut menu. The State Vertex Specification dialog appears. 2. Choose Specified from the Bound drop-down. Type the numeric value in the text. The number must be not less than 0 and not greater than Submachine A submachine state represents the invocation of a state machine defined elsewhere. No Magic, Inc of 428

120 The submachine state is depicted as a normal state with the appropriate include declaration within its internal transitions compartment. As an option, the submachine state may contain one or more stub states, which represent already created states. For more general information about working with symbols see, Section 3, Diagrams Basics. Define the selected submachine in the Submachine Specification dialog. For more information on submachine states see, Section 4.5.5, State. Define a stub state in the State Vertex Specification dialog To include a state machine or activity graph into a submachine state 1. Double-click the submachine state or choose Specification from the submachine shortcut menu. The Submachine Specification dialog appears. 2. Choose a state machine or activity graph you wish to include in the submachine from the Include drop-down Call State A call state is an action state that has exactly one call action as its entry action. It is useful in object flow modeling to reduce notational ambiguity over which action is taking input or providing output Action state Action state is sometimes called an activity. An action state is a shorthand for a state with an entry action, plus at least one outgoing transition involving the implicit event of completing the entry action. There can be several such transitions if they have guard conditions. An action state is performed to produce a result, to describe an implementation of an operation. The transition triggers as soon as all activities in the action state are performed. An action state is shown as a shape with a straight top and bottom and with convex arcs on the two sides. The action-expression is placed in the symbol. For more general information about working with symbols see, Section 3, Diagrams Basics. Define the selected action state in the Action State Specification dialog. To define an action state as dynamic Depending on runtime information, the Dynamic attribute of an action state determines whether multiple invocations of state might be executed concurrently. 1. Double click an action state or choose Specification from the shape shortcut menu. The Action State Specification dialog appears. 2. Select the Dynamic check, found on the bottom of the dialog. No Magic, Inc of 428

121 To set multiplicity for a dynamic action state A multiplicity in an action state indicates the number of parallel executions of the actions of state. If the dynamic concurrency of an action state is not always exactly one, its multiplicity is shown in the upper right corner of the state. 1. Double-click an action state, or choose Specification from the shape shortcut menu. The Action State Specification dialog appears. 2. Set the multiplicity value in the Multiplicity drop-down list. NOTE Multiplicity is activated only when an action state is defined as dynamic. Define arguments for an action state An Argument expression that determines the number of parallel executions of the actions of the state at runtime. The value must be a set of lists of objects, each list serving as arguments for one execution. 1. Double click an action state, or choose Specification from the shape shortcut menu. The Action State Specification dialog appears. 2. Type an argument in the Arguments. To define an entry action for an action state 1. Double-click an action state, or choose Specification from the shape shortcut menu. The Action State Specification dialog appears. 2. Click the Detail tab. 3. In the Actions group: 1. To add or edit an action label, click the entry Edit button. The Action Specification appears. Specify an action. 2. To remove an action label, click the Remove button. NOTE For more information defining actions, see Sections , Actions in state and activity diagram and 0, Actions. To define events for an action state See Section , Events Subactivity state A subactivity state represents an activity graph. Entering a subactivity state represents entering the activity graph, which is nested in the subactivity state. The subactivity state is not exited until the final state of the nested graph is reached, or when trigger events occur on transitions coming out of the subactivity state. Since states in activity graphs do not normally have trigger events, subactivity states are normally exited when their nested graph is finished. A single activity graph can be invoked by many subactivity states. No Magic, Inc of 428

122 A subactivity state is represented in the same way as an action state, with the addition of an icon in the lower right corner depicting a nested activity diagram. On the subactivity, the name of the entered activity graph is shown. For more general information about working with symbols, see Section 3, Diagrams Basics. Define the selected subactivity state in the Subactivity State Specification dialog Pseudostates A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph. They are typically used, to connect multiple transitions into more complex state transitions paths. Specify pseudostates in the State Vertex Specification dialog. NOTE Any transition from the pseudostate does not contain a trigger event. Initial and final states Initial state Every object is in some particular state as soon as it is created, so it is useful to explicitly show that state. A solid filled circle represents the initial state of an object. There can only be one initial state for an object. An initial state denotes the starting place for a transition, the target of which is a composite state. Final state To represent the object s destruction, use the final state symbol (a circle surrounding a smaller solid circle). The final state is optional in the diagram because there is a system that runs without interruption after the start of the activities. Also, there can be several final states in the same state diagram, denoting that the object s life may finish depending to several conditions. History state A history state serves for internal state memorizing, indicating that the enclosing composite state remembers its previously active substate after it exits. A deep history state is used to remember a state that has been nested at some depth within a composite state. A shallow history state is used to remember a state that is at the same nesting depth as the history state itself. Figure 28 History State No Magic, Inc of 428

123 History state can be a deep history state (with a letter H ) or of shallow history state (with a letter H). By default deep history shape is drawn. To define a history state Select/clear the Deep History check from the history state shortcut menu. Junction and dynamic choice points Junction point (see Figure Junction point) is used for joining and splitting transition paths. Regardless of whether the junction point was reached from state State 0 or from state State1, the outgoing paths are the same for both cases. If the state machine in this example is in state State1 and b is less than 0 when event e1 occurs, the outgoing transition will be taken only if one of the three downstream guards is true. Thus, if a is equal to 6 at that point, no transition will be triggered. In the dynamic choice point (see Figure Dynamic choice point), a decision on which branch to take is only made after the transition from State1 is taken and the choice point is reached. Note that the action associated with that incoming transition computes a new value. This new value can then be used to determine the outgoing transition to be taken. Figure Junction point Figure Dynamic choice point Decision Point Decisions are made using guard conditions. They help protect transitions that depend on a guarding condition. The symbol used for the decision is a large diamond, which may have one or more incoming transitions and two or more outgoing transitions Object flow state Objects that are input to or output from an action are shown as object symbols. A dashed arrow is drawn from an action state to an output object, and a dashed arrow is drawn from an input object to an action state. The same object is the output of one action and the input of one or more subsequent actions. The control flow arrows (which are solid) must be omitted when the object flow arrows (which are dashed) supply a redundant constraint. To distinguish the various appearances of the same object, the state of the object at each point is placed in brackets and appended to the name of the object. For more general information about working with symbols, see Section 3, Diagrams Basics. Define the selected object flow state in the Object Flow State Specification dialog. No Magic, Inc of 428

124 To set a classifier to an object flow state To assign a state to an object flow state 1. Double-click the object flow state or choose Specification from the shape shortcut menu. The Object Flow State Specification dialog appears. 2. Choose a classifier you wish to assign to an object flow from the Type drop-down. 1. Click the Assign State button in the Object Flow State Specification dialog. The Classifier in State Specification dialog appears. 2. Type the name of the classifier in state (optional) in the Name. NOTE The Assign State button is activated only when a classifier is assigned to an object flow state Actions in state and activity diagrams The action label identifies the circumstances under which the action specified by the action expression will be invoked. For more information on defining actions, see Section 0, Actions p Specify actions in Action Specification dialog. The general format for the list of actions: action-label / action-expression To define an action label 1. Double-click the state, or choose Specification from the state shortcut menu. The State Specification dialog appears. 2. Click the Detail tab. 3. Select an Entry, Exit or Do Activity action label in the Actions group. 1. To add or edit an action label, click the Edit button. The Action Specification appears. Specify an action. 2. To remove an action label, click the Remove button. Action labels: Entry Exit Do activity An action, specified by the corresponding action expression, which is performed upon entry to the state (entry action) An action, specified by the corresponding action expression, that is performed upon exit from the state (exit action) An ongoing activity that is performed as long as the modeled element is in the state, or until the computation specified by the action expression is completed (the latter may result in a completion event being generated) Events An event is a specification of a type of observable occurrence. The occurrence that generates an event instance is assumed to take place at an instant in time with no duration. Define the selected event in the Event Specification dialog. No Magic, Inc of 428

125 To define an event in the Event Specification dialog In the State Specification, Action State Specification, Submachine Specification, or Subactivity State Specification dialog, Detail tab click the Edit button in the Actions group. In the Transition Specification dialog, click the Edit button in Trigger group. Event types: Signal Call Time Change A signal event represents the reception of a particular (asynchronous) signal. Signal Event is a child of Event. A call event represents the reception of a request to synchronously invoke a specific operation. (Note that a call event instance is distinct from the call action that caused it.) The expected result is the execution of a sequence of actions, which characterize the operation behavior at a particular state. A Time Event models the expiration of a specific deadline. Note that the time of occurrence of a time event instance (i.e., the expiration of the deadline) is the same as the time of its reception. A change event models an event that occurs when an explicit boolean expression becomes true as a result of a change in value of one or more attributes or associations. A change event is raised implicitly and is not the result of some explicit change event action. Operation designates the operation whose invocation raised the call event. Expression specifies the corresponding time deadline: keyword after, followed by an expression. Expression specifies the change event: keyword when followed by an expression Internal transitions In all other cases, the action label identifies the event that triggers the corresponding action expression. These events are called internal transitions and are semantically equivalent to self transitions except that the state is not exited or re-entered. This means that the corresponding exit and entry actions are not performed. For more information on defining actions, see Section , Transition, p Specify transition in the Transition Specification dialog. The general format for the list item of an internal transition is: event-name ( comma-separated-parameterlist ) [ guard-condition] / action-expression No Magic, Inc of 428

126 To define an internal transition 1. Double-click the state or choose Specification from the state shortcut menu. The State Specification dialog appears. 2. Click the Internal Transitions tab. 3. Click the Add or Edit button. The Transition Specification dialog appears. Specify an internal transition. To remove an internal transition, click the Remove button Transition Drawing an arrow from one state to other denotes that object s change from one state to another when a specified event occurs (trigger event) and specified guard conditions are satisfied. A simple transition has a single source state and a single target state. A complex transition has more that one target and source states. A transition indicates the way an object in a state responds to the occurrence of an event. The event may have parameters. These are accessible by the actions specified on the transition as well as in the corresponding exit and entry actions associated with the source and target states, respectively. Events are processed one at a time. For more general information about working with symbols, see Section 3, Diagrams Basics. Define the selected transition in the Transition Specification dialog. The difference between a transition in state diagrams from a transition in activity diagrams lies in the event. A transition is often triggered by some specified event in state diagrams, but a transition in activity diagrams has no defined event. An exception is made for transitions that go from the start point to the first activity. They may have an attached event that s defined when the first activity starts. To edit a source/target state of the transition path 1. Double-click the transition path or choose Specification from the path s shortcut menu. The Transition Specification dialog appears. 2. Click the Source/Target button. 3. The State Specification dialog appears in a state diagram appears or Action State Specification dialog in an activity diagram appears. To specify a trigger event for a transition Trigger specifies the event that fires the transition. There can be at most one trigger per transition 1. Double-click the transition path or choose Specification from the path s shortcut menu. The Transition Specification dialog appears. 2. In the Trigger group, click the Edit button. (To remove a trigger event, click the Remove button.) 3. The Event Specification dialog appears. See Section , Events. NOTE Trigger event is not available when a transition source is an initial state, junction/dynamic choice point, vertical/horizontal synchronization bar, or history state. No Magic, Inc of 428

127 To specify an effect action for a transition Specifies an optional action to be performed when the transition fires. 1. Double-click the transition path or choose Specification from the path s shortcut menu. The Transition Specification dialog appears. 2. In the Effect group, click the Edit button. (To remove an effect action, click the Remove button.) 3. The Action Specification dialog appears. See Section , Actions in state and activity diagrams. To specify a guard expression (condition) for a transition A guard expression provides a fine-grained control over the firing of the transition. It is evaluated at the time the event is dispatched. There can be at most one guard per transition. 1. Double-click the transition path or choose Specification from the path s shortcut menu. The Transition Specification dialog appears. 2. In the Guard group, click the Edit button. (To remove a guard expression, click the Remove button.) 3. The Guard Specification dialog appears. 4. Type an expression in the Expression text Decision point A decision point in an activity diagram is used much like a dynamic choice or junction point in state diagrams. Decision points allows to separate and merge transition paths back together Signal sending / receipt shapes Signal sending The sending of a signal is shown as a convex pentagon that looks like a rectangle with a triangular point on one end (it can be on either end). The signature of the signal is shown inside the symbol. (In MagicDraw TM, a signal signature is defined through uninterpreted transition event action.) An unlabeled transition arrow is drawn from the previous action state to the pentagon and another unlabeled transition arrow is drawn from the pentagon to the next action state. As an option, a dashed arrow can be drawn from the point on the pentagon to an object symbol to show the receiver of the signal. To set an action to a signal sending shape 1. Double-click the signal sending shape or choose Specification from the shape shortcut menu. The Transition Specification dialog of the incoming transition path appears. NOTE Specify a signal sending shape in the incoming to the shape transition s specification. 2. Click the Edit button in the Effect group. 3. The Action Specification dialog appears. Define an action. More details about defining actions see Section 0, Actions. Type an action s name directly on the signal sending shape. Signal receipt No Magic, Inc of 428

128 The receipt of a signal can be shown as a concave pentagon that looks like a rectangle with a triangular notch on one end (either end). The signature of the signal is shown inside the symbol. An unlabeled transition arrow is drawn from the previous action state to the pentagon and another unlabeled transition arrow is drawn from the pentagon to the next action state. A dashed arrow can be drawn from an object symbol to the notch on the pentagon to show the sender of the signal; this is optional. To set a trigger event to a signal receipt shape 1. Double-click the signal receipt shape or choose Specification from the shape shortcut menu. The Transition Specification dialog of the outgoing transition path appears. NOTE Specify a signal receipt shape in the outcoming from the shape transition s specification. 2. Click the Edit button in the Trigger group. 3. The Event Specification dialog appears. Define an event. More details about defining events see Section , Events. Type an event s name directly on the signal receipt shape Swimlanes Actions and subactivities can be organized into swimlanes in activity diagrams. Swimlanes are used to organize responsibility for actions and subactivities according to class. They often correspond to organizational units in a business model. An activity diagram can be divided visually into swimlanes, each separated from neighboring swimlanes by vertical solid lines on both sides. Each swimlane represents responsibility for part of the overall activity, and may eventually be implemented by one or more objects. The relative ordering of the swimlanes has no semantic significance, but might indicate some affinity. Each action is assigned to one swimlane. Transitions may cross lanes. There is no significance to the routing of a transition path. To draw a swimlane on the diagram To set a name for a swimlane Click the Swimlane button on the diagram toolbar and click the diagram. 1. Double-click the swimlane line or choose Specification from the line shortcut menu. 2. The Partition Specification dialog appears. Type a name in the Name. 4.6 Implementation Diagrams Overview Implementation diagrams help the developer describe the logical software structure inside a computer or across a large distributed system. Implementation diagrams show aspects of physical implementation, including the structure of components and the run-time deployment system. They come in two forms: 1) component diagrams show the structure of components, including the classifiers that specify them and the artifacts that implement them; and 2) deployment diagrams show the structure of the nodes on which the components are deployed. These diagrams can also be applied in a broader way to business modeling where the components represent business procedures and artifacts, and the deployment nodes represent the organization units and resources (human and otherwise) of the business. No Magic, Inc of 428

129 Component diagram A component diagram represents a physical structure of a code (as opposed to the class diagram, which portrays the logical structure) in terms of code components and their relationships within the implementation environment. A component can be a source code component, a binary component, or an executable component. A component contains information about the logical class or classes that it implements, thus creating a mapping from a logical view to a component view. Dependencies between the components are shown, making it easy to analyze how a change in one component affects the others. Components may also be shown with any of the interfaces that they expose. Components, as with almost any other model element, can be grouped into packages, much like classes or use cases. Component diagrams are used in the later phases of the software development, when there is a need to divide up classes among different components. When working with the CASE facilities, components are used for file-class mapping during code generation, reverse engineering, and round-trip engineering operations. Deployment diagram Deployment diagrams show the physical layout of the various hardware components (nodes) that compose a system, as well as the distribution of executable programs (software components) on this hardware. You may show the actual computers and devices (nodes), along with the connections they have to each other, thus specifying system topology. Inside nodes, the executable components and objects are located in a way that shows where the software units are residing and on which nodes they are executed. You may also show dependencies between the components. Deployment diagrams are crucial when dealing with distributed systems Shapes in implementation diagram Model element Toolbar Button Function Notation Component (C) A collection of classes (or it might be one class). Usually a component stands for a file. Component instance (M) Node A physical object (devices) (O) No Magic, Inc of 428

130 Model element Toolbar Button Function Notation Node instance (E) Package (P) A group of classes and other model elements. Interface (I) All functionality implemented by a particular component. Class Artifact An artifact represents a physical piece of information that is used or produced by a software development process. Examples of Artifacts include models, source files, scripts, and binary executable files. An Artifact may constitute the implementation of a deployable component. No Magic, Inc of 428

131 Model element Toolbar Button Function Notation Instance (O) A particular instance of a classifier. It has a unique name, state, and classifier as the type of identifier Paths in implementation diagram Relationships Association Button (shortcut key) Notation (S) Link Realization A relationship between specification element and implementation element. (E) Dependency Shows an undirectional relationship. (R) (D) Components A component represents all kinds of elements that pertain to piecing together software applications. They can be simple files, such as DLLs or executables. No Magic, Inc of 428

132 A component is shown as a rectangle with two smaller rectangles protruding from one end. For more general information about working with symbols, see Section 3, Diagrams Basics. Define the selected component in the Component Specification dialog. To assign classes, interfaces, and/or collaborations to the component 1. Double-click the component shape or choose Specification from the component s shortcut menu. The Component Specification dialog appears. 2. Click the Resident Elements tab. 3. Click the Assign button. The Select Model Elements screen appears. Select model elements you wish to assign to a component. A component can be represented as both types and instances. The type and instance dichotomy is the same for a class and an object. Component types can be regarded as a class, while component instances are types of objects. The names for component instances are underlined Nodes Any computer or device that is relevant to the implemented system can be shown as a node. A node is drawn as a three-dimensional cube with a name inside it. Devices in a system are typically represented with a stereotype that specifies the device type. Nodes can be represented as types and as instances. A node is shown as a figure that looks like a 3-dimensional view of a cube. For more general information about working with symbols see Diagrams Basics. Define the selected node in the Node Specification dialog. To assign/edit/remov e components to/of the node 1. Double-click the node shape or choose Specification from the node shortcut menu. The Node Specification dialog appears. 2. Click the Resident Elements tab. To assign a component, click the Assign button. The Select Model Element screen appears. Select a node you wish to assign to the node. To edit a component, assigned to a node, click the Edit button. The Component Specification dialog appears. To remove the assigned component from the node, click the Remove button. NOTE After assigning components to a node, those components will not be shown on the diagram pane as assigned to the node. You may add those components to the node by drag-and-drop operation. No Magic, Inc of 428

133 4.7 UML Extension Mechanisms Stereotypes A stereotype is an extension mechanism that defines a new and more specialized element of the model based on an existing element. Stereotype can be based on all types of elements including classes, packages, components, and notes, as well as such relationships as associations, generalizations, and, dependencies. A stereotyped element derives all base element properties and may have additional constraints. Figure Stereotype There are predefined stereotypes for model elements (for example, a class has the following stereotypes: actor, boundary, control, etc). Base Class Abstraction Artifact Association Association End BehavioralFeature CallEvent Classifier Comment Component Constraint Dependency Flow Generalization LinkEnd Message Model ModelClass ModelPackage ObjectFlowState Permission Stimulus Predefined stereotypes <<derive>>, <<realize>>, <<refine>>, <<trace>> <<document>>, <<executable>>, <<file>>, <<library>>, <<source>>, <<table>> <<imlicit>> <<association>>, <<global>>, <<local>>, <<parameter>>, <<self>> <<create>>, <<destroy>> <<create>>, <<destroy>> <<metaclass>>, <<powertype>>, <<process>>, <<thread>>, <<utility>> <<requirement>>, <<responsibility>> <<document>>, <<EJBEntity>>, <<EJBSession>>, <<executable>>, <<file>>, <<library>>, <<table>> <<invariant>>, <<postcondition>>, <<precondition>>, <<stateinvariant>> <<appliedprofile>>, <<call>>, <<modellibrary>> <<become>>, <<copy>> <<implementation>> <<association>>, <<global>>, <<local>>, <<parameter>>, <<self>> <<balking>>, <<time-out>> <<metamodel>>, <<systemmodel>>, <<usecasemodel>> <<auxiliary>>, <<boundary>>, <<control>>, <<entity>>, <<focalclass>>, <<focus>>, <<implementation>>, <<implementationclass>>, <<table>>, <<type>> <<database>>, <<facable>>, <<framework>>, <<modellibrary>>, <<profile>>, <<schema>>, <<stub>>, <<toplevel>> <<signalflow>> <<access>>, <<friend>>, <<import>> <<balking>>, <<time-out>> No Magic, Inc of 428

134 Usage <<call>>, <<create>>, <<instantiate>>, <<send>> To create more stereotypes To export stereotypes in the file (file extension.str) To import stereotypes from file From the Tools menu, choose Stereotypes and then Edit. The Edit Stereotypes dialog appears. From the Tools menu, choose Stereotypes and then Export. From the Tools menu, choose Stereotypes and then Import UML Web Extension This web extension to the UML defines a set of stereotypes, tagged values and constraints that enable us to model web applications. The stereotypes and constraints are applied to certain components that are particular to web applications and allows us to represent them in the same model, and on the same diagrams that describe the rest of the system. The principal element specific to web applications is the web page. There are several stereotypes that can be applied to a web page, and additional stereotypes are assigned to other elements of HTML that represent architecturally significant components of the system (frames, targets and forms). No Magic, Inc of 428

135 Server Page Stereotype Metamodel Class Class Description A server page represents a web page that has scripts executed by the server. These scripts interact with resources on the server (databases, business logic, external systems, etc). The object operations represent the functions in the script, and it s attributes represent the variables that are visible in the pages scope (accessible by all functions in the page). Icon Constraints Server pages can only have relationships with objects on the server. Tagged Values Scripting Engine - either the language or engine that should be used to execute or interpret this page (JavaScript, VBScript, Perl, etc.) Client Page Stereotype Metamodel Class Class Description An instance of a client page is an HTML formatted web page. Like any HTML page it is a mix of data, presentation and even logic. Client pages are rendered by client browsers, and may contain scripts that are interpreted by the browser. Client page functions map to functions in scripts tags in the page. Client page attributes map to variables declared in the pages script tags that are accessible by any function in the page (page scoped). Client pages may have the associations relations with other pages, client or server. Icon Constraints None Tagged Values TitleTag - The title of the page displayed in the browser. BaseTag - The base URL for referencing relative URLs. BodyTag - The set of attributes for the <body> tag that sets background and default text attributes. Form Stereotype No Magic, Inc of 428

136 Metamodel Class Class Description A class with stereotype «form» is a collection of input fields that are part of a client page. A form class maps directly to the HTML form tag. Its attributes represent the HTML forminput fields (input es, text areas, radio buttons, check es, and hidden fields). A «form» has no operations, they are not able to be encapsulated in a form. Any operations that interact with the form would be the property of the page that contains the form. Icon Constraints None Tagged Values Method - the method used to submit data to the action URL, either GET or POST. Frame Set Stereotype Metamodel Class Class Description A frame set is a container of multiple web pages. The rectangular viewing area is divided up into smaller rectangular frames. Each frame may be associated with a single one named «target», although not necessarily. The contents of a frame may be a web page or another frame set. A frame set stereotyped class maps directly to a frameset web page, and the HTML frame tag. Because a frameset is a «client page», it may have operations and attributes, and browsers that do not render frames activate them. Icon Constraints None Tagged Values Rows - The value of the rows attribute of the HTML <frameset> tag. This is a string with comma delimited row heights. Cols - The value of the columns attribute of the HTML <frameset> tag. This is a string with comma delimited column widths. No Magic, Inc of 428

137 Target Stereotype Metamodel Class Class Description A target is a named compartment in a browser window where web pages can be rendered in. The name of the stereotyped class is the name of the target. Typically a target is one frame in a window defined by a frameset, however a target could be a completely new browser instance or window. «Targeted link» associations specify targets as the place where a new web page is to be rendered. Icon Constraints Tagged Values A target name must be unique for each client of the system. This means that only one instance of a target may exist on the same client. None JavaScript Stereotype Metamodel Class Class Description On a JavaScript enabled browser it is possible to simulate user-defined objects with JavaScript functions. Icon Constraints «JavaScript» instances exist only in the context of client pages. Tagged Values None Link Stereotype Metamodel Class Association No Magic, Inc of 428

138 Description Icon A link is a pointer from a client page to another «Page». In a class diagram a link is an association between a «client page» and either another «client page» or a «server page». A Link association maps directly to the HTML anchor tag. None Constraints None Tagged Values Parameters - a list of parameter names that should be passed along with the request for the linked page. Targeted Link Stereotype Metamodel Class Association Description Icon Similar to a «link» association, a «targeted link» is a link where the associated page is rendered in another target. This association maps directly to the HTML anchor tag, with the target specified by the tag target attribute. None Constraints None Tagged Values Parameters - a list of parameter names that should be passed along with the request for the linked page. Target Name - the name of the «target» that the page this link points to should be rendered in. Frame Content Stereotype Metamodel Class Association Description Icon A frame content association is an aggregation association that expressing a frame containment of another page or target. A frame content association can also point to another frameset, indicating nested frames. None Constraints None Tagged Values Row - An integer indicating the specific row of the frame in the frameset that associated page or target belongs in. No Magic, Inc of 428

139 Values Col - An integer indicating the specific column of the frame in the frameset that associated page or target belongs in. Submit Stereotype Metamodel Class Association Description Icon A «submit» association is always between a «form» and a «server page». Forms submit their field values to the server through «server pages» for processing. The web server processes the «server page», which accepts and uses the information in the submitted form. This relationship indicates which page (or pages) is able to process the form, and which forms a «server page». None Constraints None Tagged Values Parameters - a list of parameter names that should be passed along with the request for the linked page. Builds Stereotype Metamodel Class Description Icon The «builds» relationship is a special relationship that bridges the gap between client and server pages. Server pages only exist on the server. They are used to build client pages. The «builds» association identifies which server page is responsible for the creation of a client page. This is a directional relationship, since the client page contains no knowledge of how it came into existence. A server page can build multiple client pages, but a client page can only be built by one server page. None Constraints None Tagged Values None Redirect Stereotype No Magic, Inc of 428

140 Metamodel Class Association Description Icon A «redirect» relationship is a unidirectional association with another web page. It can be directed both from and to client and server pages. If the relationship originates from a «server page» then it indicates that the processing of the page request may continue on with the other page. This does indicate that destination page always participates in the building of a client page, just that it could. This particular relationship is not completely structural, since the actual invocation of a redirection operation must be done programmatically in the code of the originating page. If the relationship originates from a «client page» then this indicates that the browser automatically requests the destination page, without user input. A time delay value can be set that specifies a delay (in seconds) before the second page is requested. This use of redirection corresponds to the META tag and HTTP-EQUIV value of "Refresh". None Constraints None Tagged Values Delay - The amount of time a client page should wait before redirecting to the next page. This value corresponds to the Content attribute of the META tag. Object Stereotype Metamodel Class Association Description Icon An association between a client page and an object that is embedded in it. The object is typically a Java Applet or ActiveX control. This association maps in part to the HTML <object> tag. None Constraints None Tagged Values Object Parameters - a semi colon delimited list of parameter names and optional values that should be placed in <param> tags in the <object> tag definition. IIOP Stereotype Metamodel Class Association Description IIOP (Internet Inter-Orb Protocol) is special type of relationship between objects on the No Magic, Inc of 428

141 client and objects on the server. It represents a communication mechanism other than HTTP for client server communications. Typically this relationship is between Java Beans on the client and Enterprise Java Beans on the server. No Magic, Inc of 428

142 Icon None Constraints None Tagged Values None RMI Stereotype Metamodel Class Association Description Icon RMI (Remote Method Invocation) is a mechanism for Java Applets and Beans to send messages to other Java Beans on different machines. Typically this relationship is between Java Beans or Applets on the client and Enterprise Java Beans on the server. None Constraints None Tagged Values None Input Element Stereotype Metamodel Class Attribute Description Icon An Input Element is an attribute of a «Form» object. It maps directly to the <input> tag in an HTML form. It is used to input of a single word or line of text. The tagged values associated with this stereotyped attribute correspond to the <input> tag attributes. To complete the required values for the HTML tag; the attribute name is used as the <input> tag name, and attribute initial value is the tag value. None Constraints None Tagged Values Type - The type of input control to be used one of {Text, Number, Password, Check, Radio, Submit, and Reset}. Size - Specifies how large an area to allocate on screen, in characters. Maxlength - The maximum number of characters the user can input. Select Element Stereotype No Magic, Inc of 428

143 Metamodel Class Attribute Description Icon An input control used in forms. The select control allows the user to select one or more items from a list. Most browsers render this control as a combo or list. None Constraints None Tagged Values Size - Specifies how many items should be displayed at the same time. Multiple- A Boolean indicating whether or not multiple items may be selected from the list. Text Area Element Stereotype Metamodel Class Attribute Description An input control used in forms that allows multiple line input. Icon None Constraints None Tagged Values Rows - The number of visible text lines. Cols - The visible width of the control in average character widths. Page Stereotype Metamodel Class Component Description A page component is a web page. A browser may request it by name. A Page component may or may not contain client or server scripts. Typically Page components are text files accessible by the web server, but they can also be compiled modules that are loaded and invoked by the web server. Ultimately, when accessed by the web server (as either a file or executable) a page produces an HTML formatted document that is sent in response to a browser s request. Icon Constraints None No Magic, Inc of 428

144 Tagged Values Path - The path required to specify the web page on the web server. This value should be relative to the web application (site) root directory Tagged values A tagged value adds extra information to a model element that is secondary to the element s semantics. It is often used to store management data about the state and progress of the project such as author, status, and tested. A tagged value is another way of adding language implementation data to a model for code generation tools. A tagged value consist of two parts: name and value (example: Author = Joe). There are certain tags predefined in UML, others can be defined by the user. Edit tagged values in the Tagged Values tab of model element specification dialog. To define a new tagged value. Click the Tagged Values tab in the specification dialog for each model element and click the... button. The Edit Tagged Values dialog appears. NOTE You are allowed to share such tagged value among other model elements Object Constraints Language (OCL) A constraint is a semantic condition or restriction on model elements that must be enforced by a correct design of a system. It is represented as a linguistic, enclosed in braces ({}), statement in some formal (OCL, C++, and other), or natural language. There are 14 standard constraints in the UML such as association, global, parameter. You may also define your own constraints. Object Constraint Language (OCL) is a formal language used to express constraints. These typically specify invariant conditions that must hold for the system being modeled. OCL can be used for a number of different purposes: To specify invariants on classes and types in the class model To specify type invariant for Stereotypes To describe pre- and post conditions on Operations and Methods To describe Guards As a navigation language To specify constraints on operations Edit constraints in the Constraints tab of model element specification dialog. To define a new constraint Click the Constraints tab in the specification dialog for each model element and click the... button. The Edit Constraints dialog appears. NOTE You are allowed to share such constraint among other model elements No Magic, Inc of 428

145 5 Code Engineering 5.1 Overview MagicDraw code engineering provides a simple and intuitive graphical interface for merging code and UML models, as well as preparing both code skeletons out of UML models and models from code. MagicDraw code engineering implements several cases where code engineering may by very useful: You already have code that needs to be reversed to a model. You wish to have the implementation of the created model. You need to merge your models and code. The tool may generate code from models and create models out of code. Changes in the existing code can be reflected in the model, and model changes may also be seen in your code. Independent changes to a model and code can be merged without destroying data in the code or model. MagicDraw TM UML code engineering supports Java, C++, CORBA IDL, DDL, and CIL languages also EJB-UML notation is supported support. You may model EJB classes and generate descriptors for them. You may also reverse descriptors and will get a model describing your Enterprise Java Beans. Your models can be converted to any of those languages, or UML models can be created from the source code written in those languages. Also reverse from Java Bytecode is supported. The Code Engineering Sets tool is MagicDraw TM UML tool managing center for all code engineering matters. 5.2 Code Engineering Sets You may manage code engineering in the Code Engineering Sets dialog or the Browser tree. The Code Engineering Sets dialog contains the list of all sets created in the project and instruments for managing those sets. No Magic, Inc of 428

146 5.2.1 Adding new sets To add a new set Click the New button in the Code Engineering sets dialog. Choose New from the Code Engineering Sets item shortcut menu. The New set dialog appears. Figure New set dialog Enter the name of a set in the Name field and select the programming language (possible choices include: Java, C++, CORBA IDL, Java Bytecode, EJB, CIL, and CIL Disassembler) in the Language drop-down list Renaming and deleting sets To rename the set Select the set in the Code Engineering Sets dialog, and then click the Rename button. The Enter name dialog appears. Type a new name in the Enter code engineering set name field. Select Rename in the set shortcut menu. The Enter name dialog appears. Type a new name in the Enter code engineering set name field. Slowly double-click the mouse on the set name (Win9x/WinNT way), and you will be able to edit set name directly in the Browser tree. To delete the set Select the set in the Code Engineering Sets dialog, and then click the Delete button. Choose Delete from the selected set shortcut menu or press DELETE key. TIP: You may delete more than one set at a time by making a multiple selection Editing sets in the Round Trip Set dialog Edit sets in the Round Trip Set dialog. To open the Round ti di l b Click the Edit button in the Code Engineering sets dialog. No Magic, Inc of 428

147 trip dialog Choose Edit from the set shortcut menu. Figure Code Engineering Sets shortcut menu If you are performing round trip for the first time, the tip message appears. Figure Code Engineering Sets tip message Disable the tip message by deselecting the Show this tip next time check. The Round Trip Set dialog allows you to manage entities to be added/removed to your set. No Magic, Inc of 428

148 Figure Round Trip Set dialog. Add files tab The Round Trip Set dialog has two tabs: Add files and Add data from model. The Add files tab helps you manage the files of source code involved in your code engineering set. Element name Element type Function Working Directory All files Box Browsing list Indicates files and required sub-directories, where a code generation output goes. Type a path manually or by browsing in the directory tree, by clicking the button. Helps you find directories with the source files for the set. Path name Field Specify source files directory. Only files that have extensions of the specified set language will be listed. Files of type Drop-down list Contains possible file name extensions for the chosen language. The Add data from model tab helps you manage elements located in the UML model. No Magic, Inc of 428

149 Figure Round Trip Set dialog. Add data from model tab The All data list contains the hierarchy of UML model packages with model elements (or other packages) inside of them. Your code engineering set can be combined out of model and code elements. The following buttons are available in the Round Trip Set dialog : Add Add All Add Recursively Remove Remove All The selected file in the All Files or All Data list is added to the set. All files in the opened or selected directory are added to the set. All files in the selected directory and its subdirectories are added to the set. Removes the selected entity from the set. Removes all entities from the set. 5.3 Generate Code You may generate code for the selected and prepared set and directly for model elements Code Generation for Set Start code generation once the set or sets are prepared. For more details about creating and editing sets, see Section 2.4, "Code Engineering. No Magic, Inc of 428

150 In the Code Engineering Sets dialog, select the set for which you wish to generate a code and click the Generate button. Choose Generate from the Code Engineering Sets item shortcut menu. It allows code generating for all created sets. Choose Generate from the selected set shortcut menu. It allows code generating only for the selected set. The Code Generation Options dialog appears. Figure Code generation options dialog. The Code Generation Options dialog allows you to specify the way your code will be generated. Once generating options are specified for the set, code can be generated. No Magic, Inc of 428

151 Box name Type Function Output Directory Text Type the directory where the generated files will be saved. '...' Set as Working Directory Generate unnamed association ends Reverse before generation If element deleted from model Use spaces in place of tabs Button Check Check Check Group Check The Set Output Directory dialog appears. Select the directory for the generated files. The output directory is set as a working directory and files are saved to the working directory. Gives the names to the unnamed association ends and generates them. Changes your model according to changes in the existing code. WARNING: Exercise caution when selecting the Reverse before generation check. If the model differs from the code, all differences in the model will be discarded. In such cases, you will lose some your work. To influence the structure of generated code, click one of the following option buttons: Delete code. The representation of deleted entities will be deleted from the code file. Comment code. Deleted entities will be commented in the code file. Change nothing. Removals from the model will not affect the code file. This type of generation causes differences between the code and uml model. When selected, spaces (instead of tabs) will be written to the code file. Number of spaces Text Specify the number of spaces to be written. OK Button The Messages Window appears, displaying how code files are being generated (Figure Messages Window). The Messages Window informs you of problems and errors (mainly file access and syntax errors) found in the code generation process and generation summary. You are also prompted to confirm that you wish to overwrite the file if the output directory already contains one with the same name. Cancel Button Closes the dialog without saving changes. Help Button Displays MagicDraw TM UML Help Code Generation for Model Element All the classes contained in the component will be written to one file. However, code for the class can be generated in a different way. Select the class you wish to generate in the browser Data package and click Generate in the class shortcut menu. For packages and components, you may also select Generate, but you will not be able to specify the generation options. All the options related to that task will be set according to the default values. No Magic, Inc of 428

152 If you have chosen framework generation for a single class or for packages, the Code Generation Options dialog does not appear. The code is generated according to the default values. Figure Messages Window If no errors occurred, you may view the results with your favorite file viewer or programming environment. Look for the files in the directory that you specified as your Working directory in the Round trip set dialog or in the Project Options dialog. Additional sub-directories could be created. 5.4 Reverse A reverse is an opposite operation to the code generation. The existing code can be converted to UML models with the help of MagicDraw reverse mechanism. Prepare the sets in the exact same way that you did for code generation (see Section 5.2, Code Engineering Sets ) In the Code engineering set dialog, select the set on which you wish to reverse code and click the Reverse button. Choose Reverse from the Code engineering sets item shortcut menu. It allows code reversing for all already created sets. Choose Reverse from the selected set shortcut menu. The UML model for the component can be reversed in the same way. Just select the component you are interested in from the browser and click Reverse on it shortcut menu. Models can be reversed without creating a set. To reverse a model without creating a set 1. From the Tools menu, choose Quick reverse. The Round Trip Set dialog appears. 2. Select the files from the Round Trip Set dialog on the Add files tab. 3. Click OK. The Reverse options dialog appears. No Magic, Inc of 428

153 Figure Reverse options dialog Element name Eleme nt type Function General Launch new class diagram wizard after reverse Look for classes in classpath Check association end mapping Check Check Check Create class fields as Attributes Option button Associations Model refresh type Merge model and code Change model according to code Option button Option button Option button After reversing, a class diagram wizard appears. It will assist you in creating a class diagram for newly created entities. Search for classes in the classpath while reversing is executed. Association end and attribute type are mapped during the generation. Class fields are represented in model as attributes. Class fields are represented in model as association ends. The model elements are updated by code. Elements that do not exist in the code will not be removed from the model. Model will be created strictly by code. Entities in the model that do not match entities in the code will be discarded. No Magic, Inc of 428

154 Element name Eleme nt type Function OK Button Saves changes and exits the dialog. Cancel Button Exits dialog without saving changes. Help Button Displays MagicDraw Help. If you have a code set combined from several files, you may see the changes you wish to model without reversing all the code. Only changed files should be reversed. This type of reversing can be done by clicking the Refresh button on the set shortcut menu, or by performing model refresh from the Code Engineering Sets dialog. 5.5 Files of Properties The code can be generated out of prepared UML models. The mapping between the identifiers, used in the UML model and the language to which the model is being generated, should be implemented. That mapping includes the following sections: Build-in types (their default values) Generalization types Possible class declarations. Attributes and operations declaration and visibility modifiers Code generation options. The separate prop file is created for every language that is supported by MagicDraw. Files are located in the tool s home directory. The file name pattern is lang.prop, where lang stands for the name of the programming language. Supported language JAVA C++ CORBA IDL JAVABytecode DDL CIL CIL Disassembler File of Properties java.prop C++.prop idl.prop javabytecode.prop ddl.prop cil.prop cil disassembler.prop Files of language properties are separated into sections where all related elements are grouped. You may edit existing entities, add new ones, and change the default values. We strongly recommend that you edit default values only. In general, all the sections have the list of possible and default values for the element. No Magic, Inc of 428

155 5.5.1 Class Java tab Property Name Strictfp Modifier Static Modifier Function Possible values for strictfp keyword: strictfp empty {Default value - <empty>} Possible values are: static not static {Default value not static} C++ tab Property Name Class Key Implementation Type Function If the Class Key property is non-blank the value is used to generate the definition and any forward declarations of this class. The possible values of the Class Key property include any valid C++ class key: class - declares class with keyword class struct - declares class with keyword cstruct union - declares class with keyword union enum - declares class with keyword enum {Default value - class} The Implementation Type property allows you to implement a class using either a class definition or an elemental datatype. By default, the C++ Generator generates a class definition for a class in model. You set the Implementation Type property when you want to implement a class as an elemental data type instead of as a C++ class. The C++ Generator produces a typedef that maps the class to its implementation type. IDL tab Property Name Union Switch Type Modifier Function Type the union switch type modifier. long {Default value - long} No Magic, Inc of 428

156 Value Type Modifier Possible values are: interface valuetype {Default value - interface} Advanced Type Modifier Possible values are: class union enum struct exception{default value - class} CIL tab Property Name Class Key Accessibility Type Layout Interoperation Function Possible values are: class value enum {Default value class} Possible values are: private public assembly family famandassem famorassem {Default value private} Possible values are: auto explicit sequential {Default value auto} Possible values are: ansi unicode autochar {Default value ansi} No Magic, Inc of 428

157 Serializable Beforefieldinit Specialname Rtspecialname Possible values are: serializable not serializable {Default value not serializable} Possible values are: beforefieldinit not beforefieldinit {Default value not beforefieldinit} Possible values are: specialname not specialname {Default value not specialname} Possible values are: rtspecialname not rtspecialname {Default value not rtspecialname} Attribute Java tab Property Name Transient Modifier Volatile Modifier Function The Transient Modifier property specifies whether the attribute is transient or not transient. Transient modifier means that the attribute is not a part of, or the persistent state of, an object. transient - the Java Generator produces a transient modifier for the attribute. not transient - the Java Generator does not produce a transient modifier. {Default value - not transient} The Volatile Modifier property specifies whether the attribute is volatile or not volatile. volatile - the Java Generator produces a volatile modifier for the attribute. not volatile - the Java Generator does not produce a volatile modifier for the attribute. {Default value - not volatile} No Magic, Inc of 428

158 C++ tab Property Name Mutable Volatile Function The Mutable property identifies how the declaration is adorned if a data member is generated for this attribute. true - generate mutable attribute. false - do not generate mutable attribute. {Default value - false} If a data member is generated for this attribute, the declaration will be adorned with the volatile keyword. true - if a data member is generated for this attribute, the declaration will be adorned with the v keyword. false - the declaration will not be adorned with the v keyword. {Default value - false} IDL tab Property Name Function Union Type Modifier <empty> {Default value - <empty>} Read Only Modifier readonly blank {Default value - blank} Container Modifier sequence array none {Default -value none} CIL tab Property Name Attribute Key Function Possible values are: field data {Default value field} No Magic, Inc of 428

159 Accessibility Initonly Serialized Specialname Rtspecialname Type Possible values are: private public assembly family famandassem famorassem compilercontrolled {Default value private} Possible values are: initonly not initonly {Default value not initonly} Possible values are: serialized not serialized {Default value serialized} Possible values are: specialname not specialname {Default value not specialname} Possible values are: rtspecialname not rtspecialname {Default value not rtspecialname} Operation Java tab Property Name Native Modifier Function The Native Modifier property specifies whether or not the method is native. native - the Java Generator produces a native modifier for the method. not native - the Java Generator does not produce a native modifier for the method. {Default value - not native } No Magic, Inc of 428

160 Strictfp Modifier strictfp <empty> {Default value - <empty>} Throws Exceptions The Throws Exception property specifies whether the method throws exception. Depending on the selected value, the code produced by Java generator, is: <empty> - result mname (params). {Default value - <empty>} C++ tab Property Name Function Initialization List <empty> {Default value - <empty>} Throws Exceptions The following table summarizes the possible values for the Throws Exception property. In this table, result is the result type of the member function, fname is the name of the member function, and params is the formal parameter list: <empty> - result fname (params) {Default value - <empty>} Function Specifier Friend Return Value Changeability The Function Specifier property specifies the kind of member function that is generated for a user-defined operation. none - no specifier generated. virtual - generated with virtual specifier inline - generated with virtual specifier explicit - generated with virtual specifier common - generated with virtual specifier {Default value - common} The Friend property specifies which generated operation is a friend or not. true - generate friend operation. false - do not generate friend operation. {Default value - false} none const {Default value - none} IDL tab Property Name Function One Way Modifier oneway blank No Magic, Inc of 428

161 {Default value blank} Context Exceptions <empty> {Default value - <empty>} Raises Exceptions <empty> {Default value - <empty>} Container Modifier sequence array none {Default_value none} CIL tab Property Name Accessibility Virtual Hydebysig Newslot Function Possible values are: private public assembly family famandassem famorassem compilercontrolled {Default value private} Possible values are: initonly not virtual {Default value not virtual} Possible values are: hydebysig not hydebysig {Default value not hydebysig} Possible values are: newslot not newslot {Default value not newslot} No Magic, Inc of 428

162 Code Implementation Managed Modifier Instance Explicit Call Kind Forwardref Internalcall Noinlining Possible values are: cil native runtime {Default value cil} Possible values are: managed unmanaged {Default value managed} Possible values are: instance not instance {Default value not instance} Possible values are: explicit not explicit {Default value not explicit} Possible values are: default vararg cdecl fastcall stdcall thiscall {Default value default} Possible values are: forwardref not forwardref {Default value not forwardef} Possible values are: internalcall not internalcall {Default value not internalcall} Possible values are: noinlining not noinlining {Default value not noinlining} No Magic, Inc of 428

163 Synchronized Specialname Rtspecialname Return Type Possible values are: synchronized not synchronizedf {Default value not synchronized} Possible values are: specialname not specialname {Default value not specialname} Possible values are: rtspecialname not rtspecialname {Default value not rtspecialname} Parameter IDL tab Property Name Container Modifier Function Select one of the following modifiers: sequence array none {Default value none} CIL tab Property Name Function Type Optional Modifier Possible values are: opt not opt {Default value not opt} No Magic, Inc of 428

164 5.5.5 Association End Java tab Property Name Function Transient Modifier The Transient Modifier property specifies whether or not the role is transient, which means that a role is not a part of, or the persistent state of, an object. transient - the Java Generator produces a transient modifier for the role. not transient - the Java Generator does not produce a transient modifier. {Default value - not transient} Volatile Modifier Container The Volatile Modifier property specifies whether the role is volatile or not volatile. volatile - the Java Generator produces a volatile modifier for the role. not volatile - the Java Generator does not produce a volatile modifier for role. {Default value - not volatile} The Container property specifies the type of container for associated elements. This property applies only if the cardinality of the role taken from UML data is not "0" or "1". <empty> java.util.collection - the Java Generator produces an attribute, which type is java.util.collection. java.util.map - the Java Generator produces an attribute, which type is java.util.map. java.util.list - the Java Generator produces an attribute, which type is java.util.list. java.util.set - the Java Generator produces an attribute, which type is java.util.set. java.util.vector - the Java Generator produces an attribute, which type is java.util.vector. java.util.hashtable - the Java Generator produces an attribute, which type is java.util.hashtable. {Default value - <empty>} C++ tab Property Name Mutable Function The Mutable property identifies how the role declaration is produced with mutable keyword. true - generate mutable role false - do not generate mutable role {Default value false} No Magic, Inc of 428

165 Volatile Container The Volatile property identifies how the role declaration is produced with mutable keyword. true - adorne declaration will be with the volatile keyword. false - the declaration will not be adorned with the volatile keyword. {Default value false} The Container property specifies the type of container of associated elements. This property applies only if the cardinality of the role, taken from UML data, is other than "0". <empty> {Default value - <empty>} IDL tab Property Name Function Union Type Modifier <empty> {Default value - <empty>} Read Only Modifier readonly blank {Default value - blank} Container Modifier sequence array none {Default value - none} CIL tab Property Name Accessibility Initonly Function Possible values are: private public assembly family famandassem famorassem compilercontrolled {Default value private} Possible values are: initonly not initonly {Default value not initonly} No Magic, Inc of 428

166 Serialized Specialname Rtspecialname Possible values are: serialized not serialized {Default value serialized} Possible values are: specialname not specialname {Default value not specialname} Possible values are: rtspecialname not rtspecialname {Default value not rtspecialname} Generalization C++ tab Property Name Inheritance Type Virtual Modifier Function Represents visibility for inheritance. public - public inheritance private - private inheritance protected - protected inheritance {Default value - public} A base class specifier that does not contain the keyword virtual, specifies a nonvirtual base class. A base class specifier that contains the keyword virtual, specifies a virtual base class. virtual - specifies a virtual base class not virtual - specifies a nonvirtual base class {Default value not virtual} No Magic, Inc of 428

167 MAGICDRAW TM 5.5 MANUAL 5.6 Global options for Code Engineering To set code engineering options for all sets in your project From the Options menu, choose Project. The Project Options dialog appears. Figure Project Options dialog The Project Options dialog has two main collections of customizable options, which are represented by the hierarchy tree on the left side of the dialog : Styles expands the tree hierarchy of all the styles defined within the project. You may use as many of these styles as you wish. See Section 0, Styles Tree Code engineering these options are found on the right side of the Project options dialog : Default Working Directory list - type the name or browse by clicking the button in the working directory. No Magic, Inc of 428

168 Default language drop-down select the default generation language. Use Syntax Checker check when selected, the syntax checker runs while Code Engineering is executed. Tab name Description Code generation Reverse Set code generation options using the fields listed in the right side of the Project options dialog. The Code generation area contains es that have the same functionality as in the Code generations options dialog (see Figure Code generation options dialog, Section 5.3.1, "Code Generation for Set ). Set reverse options for all reverse actions of the project using the options listed on the right side of the Project options dialog. The Reverse area contains es that have the same functionality as in the Reverse options dialog (see Figure Reverse options dialog, Section 5.4, Reverse ). Tab name Element name Element type Function Java Language Options Set the generated code style for Java programming languages in the Default language field found on the right side of the Project Options dialog : Generate opening bracket in new line Generate spaces Use JavaDoc for documentation Generate empty documentation Java Documentation Properties Check Check Check Check Button Opens a bracket in the new line that is being generated. Generates spaces inside an assignment and other operators. Generates javadoc documentation for commenting the code. Comment brackets are placed in your code, unless class in the model has no documentation. The Java Documentation Properties dialog appears. No Magic, Inc of 428

169 Use CLASSPATH Check The... button is activated. Search a classpath for importing sentences generation in the Set CLASSPATH dialog. Figure Set CLASSPATH dialog C++ Language Options Set the generated code style for C++ programming languages. Comments style Dropdown list Click the Get from system button to get CLASSPATH variable defined by operating system or click the Add button and select the classpath directory in the Add Classpath dialog. Select one of four listed comment styles Header Button Add the specific header to all your code files. Click the button and enter header text in the Header screen. Generate opening bracket in new line Generate spaces Generate empty documentation Use include path Check Opens a bracket in the newly generated line. Check Spaces inside an assignment and other operators are generated. Check Comment brackets are placed in your code, unless class in the model has no documentation. Check Select the Use Include Path check. The... button is activated. Click the... button and then specify the path for the includes in the Set Include Path dialog. Figure Set Include Path dialog Type the path in the text or click the button in the Set include path dialog and select it in the Set Working Directory dialog. No Magic, Inc of 428

170 IDL Language Options Set the generated code style for CORBA IDL programming languages: Use explicit macros Comments style Check Dropdown list Select the Use explicit macros check. The... button is activated, click it and in the C++ macros dialog use a set of predefined macros. Select one of four listed comment styles. Header Button Add the specific header to all your code files. Click the button and enter header text in the Header screen. Generate opening bracket in new line Generate spaces Check Check Opens a bracket in the new line generating. Spaces inside an assignment and other operators are generated. Use JavaDoc for documentation Check Generates JavaDoc specification for commenting the code. Generate empty documentation Java Documentation Properties Comments style Check Button Dropdown list Comment brackets are placed in your code, unless class in the model has no documentation. The Java Documentation Properties dialog appears. Select one of four listed comment styles. Header Button Add the specific header to all your code files. Click the button and enter header text in the Header screen. Use translation table from Dropdown list Select the translation table. DDL Language Options Generate opening bracket in new line Generate spaces Generate documentation Check Check Check Opens a bracket in the new line generating. Spaces inside an assignment and other operators are generated. Comment brackets are placed in your code, unless class in the model has no documentation. Header Button Add the specific header to all your code files. Click the button and enter header text in the Header screen. No Magic, Inc of 428

171 5.7 Round Trip MagicDraw TM UML s round trip keeps your code and model synchronized, and because Round trip traces all the model and code changes, you may freely change entity specifications without discarding code changes made outside the tool. For example, Round Trip prevents a job from being damaged by code additions or changes when these steps are followed: 1. Within the tool, class Base is created. 2. Operation getinstance is added to class. 3. Code is generated 4. With external tool, programmer adds code to that operation. 5. With MagicDraw TM UML, operations name is changed to Instance. 6. Code is generated. If the tool rewrites the whole code, these changes are made without corrupting the programmer s job. The name of the operation is changed, but the internals remain the same. Round trip catches all changes in your project and controls the following actions: If the source code is not changed, it is not allowed to refresh UML model. The Refresh button in the Code Engineering Sets dialog is unavailable. If the model is changed but the code remains the same (new members were added or their headers were changed), refresh is not allowed, and the Refresh button in the Code Engineering Sets dialog is unavailable. When generating code according to changes, all changes in the model are written to the signatures of class members, leaving the old implementation in place. If the code is changed but the model remains the same, refresh can be executed: code will be reversed to the UML models. If the Code Generation options dialog appears when you are attempting to generate code, you may select a code action that differs from the UML model. If the code and model are changed while refreshing, all changes in the code are treated as new items and added to the model. If data in the model file is deleted, it will be restored while refreshing, even when the code has not been changed or the data itself is unimportant. 5.8 Type Mapping Table Languages supported by MagicDraw TM UML have their own built-in types. One language s type might have no matches in another language, or it might have multiple matches. Additionally, some names are interpreted differently in different languages. When performing code generation, therefore, problems may occur when switching between different languages. To avoid this, MagicDraw TM UML uses type-mapping tables to manage mapping between languages. It describes the rules of how one language s built-in types are converted to those of another language 5.9 DDL Script Forward and Reverse Engineering MagicDraw TM UML has the tools that forward engineer UML constructs to DDL script. The resulting DDL script depends on the selected DDL language dialect MagicDraw TM UML forward engineering to DDL script This section describes to what data model constructs MagicDraw TM UML constructs are converted. No Magic, Inc of 428

172 Packages Each database Schema belongs to a Database where the Database is represented as a Package with the <<database>> stereotype. Each View or Table can be assigned to a Schema where the Schema is represented as a Package with the <<schema>> stereotype. A Package, depending on a package stereotype, is mapped to one of the following DDL constructs: A Database, if the package has the <<database>> stereotype. Elements: CREATE DATABASE <database_name> Database name is equal to the package name. A Schema, if the package has the <<schema>> stereotype. Elements: CREATE SCHEMA [<database_name>.]<schema_name> Schema name is equal to the package name. Schema database name is the name of a package that contains schema package. Otherwise it is not mapped. NOTE If a package has no stereotype and the EnableDefaultStereotypes property is true, the <<database>> stereotype is used for the first level packages, and the <<schema>> stereotype is used for the second level packages. <<database>> DB1 <<schema>> Schema1 <<schema>> Schema2 Figure Package mapping example DLL script, generated for example showed in Figure 43, creates one Database and two Schemas: CREATE DATABASE DB1; CREATE SCHEMA DB1.Schema1; CREATE SCHEMA DB1.Schema2; Classes A class, depending on class stereotype, is mapped to one of the following DDL constructs: Table, if the class has the <<table>> stereotype. Elements: CREATE TABLE [<schema_name>.]<table_name> (<column_and_constraint_list>) Table name is equal to the class name. Table schema name is the name of package that contains table class. View, if the class has the <<view>> stereotype. Elements: CREATE VIEW [<schema_name>.]<view_name> [(<column_list>)] AS SELECT <derived_column_list> FROM <table_list>. View name is equal to the class name. The view schema name is the name of a package that contains view class. Table list within view FROM clause are derived from associations between the view class and tables classes. Otherwise it is not mapped. No Magic, Inc of 428

173 NOTE If a class has no stereotype and the EnableDefaultStereotypes property is true, the class is treated as a class with the <<table>> stereotype. <<table>> Person -firstname : VARCHAR (10) -id : INTEGER -lastname : VARCHAR (20) -sex[0..1] : CHAR (1) -socialid : NUMBER (10) Account -accountno : INTEGER -balance : FLOAT (5) = personid : INTEGER -id,firstname,lastname P <<view>> ImportantClient -total = Account.balance -P.* Figure Class mapping example DLL script, generated for classes is showed in Figure 44. It has two Table definition statements (CREATE TABLE) and view definition statement (CREATE VIEW): CREATE TABLE Person ( id INTEGER NOT NULL, socialid NUMBER(10) NOT NULL, lastname VARCHAR(20) NOT NULL, firstname VARCHAR(10) NOT NULL, sex CHAR(1) ); CREATE TABLE Account ( accountno INTEGER NOT NULL, balance FLOAT(5) DEFAULT 0.0, personalid INTEGER NOT NULL ); CREATE VIEW ImportantClient AS SELECT P.*, Account.balance as total FROM Person AS P(id,firstName,lastName), Account; Attributes An attribute of a class with the <<table>> or the <<view>> stereotype, depending on an attribute stereotype, is mapped to one of the following DDL constructs: A Column of a Table, if the class that contains an attribute has the <<table>> stereotype. A Column name is equal to the name of an attribute. A Column type is equal to the type of an attribute. Column default value is equal to the initial value of an attribute (if any). No Magic, Inc of 428

174 A Column of a View, if the class that contains an attribute has the <<view>> stereotype. Elements: [<column_expression> AS] <column_name> A Column name is equal to the name of an attribute. Column expression is equal to the initial value of an attribute (if any). <<table>> Table1 -col1[0..1] : INTEGER = 123 -col2 : INTEGER <<view>> View1 -v1 = Table1.col1 Figure Attributes mapping example Col1 attribute of the Table1 class (see Figure 45) is mapped to the col1 column of a Table1 table, and col1 attribute of the View1 class is mapped to the col1 column of a View1 view. There is DDL script for attributes mapping example: CREATE TABLE Table1 ( col1 INTEGER DEFAULT 123 ); CREATE VIEW view1 AS SELECT Table1.col1 AS v1 FROM Table1; Operations An operation (method) of a class with the <<table>> stereotype, depending on an operation s stereotype, is mapped to one of the following DDL constructs: An Index for a Table, if the operation has the <<index>> stereotype; Elements: CREATE INDEX [<schema_name>.]<index_name> ON <table_name>(<column_list>) An Index name is equal to the name of an operation. Names of comma-delimited set of column for the index are equal to the parameter names of an operation. A Trigger for a Table, if the Operation has the <<trigger>> stereotype. Elements: CREATE TRIGGER <trigger_name> ON <table_name> <triggered_sql_statement> Trigger name is equal to the operation name. <triggered_sql_statement> is not generated (generates expression TRUE). A constraint, if the Operation has the <<PK>>, <<FK>>, <<unique>>, or <<check>> stereotype. Elements: [ALTER TABLE <table_name> ADD] CONSTRAINT <constraint_name> Constraint name is equal to the name of an operation. PRIMARY KEY (<pk_column_list>) Primary key column list contains all attributes with the <<PK>> or <<FPK>> stereotype. FOREIGN KEY (<column_list>) REFERENCES <ref_table_name>[(<ref_column_list>)] Foreign key column list, referenced table, and referenced column list depends on an association with the same name as the name of a foreign key operation. Referenced table name is equal to the name of an associated class. Foreign key column list is equal to the name of an association end A. Referenced column list is equal to the name of an association end B (if any). UNIQUE (<unique_column_list>) Unique constraint element <unique_column_list> is generated from operation s parameter names. CHECK (<check_expression>) Check constraint element <check_expression> is not generated (generates expression TRUE). No Magic, Inc of 428

175 Otherwise it is not mapped. NOTES: IndexNamePrefix property specifies an optional naming standard that is added to the beginning of the name for each generated index. TriggerNamePrefix property specifies an optional naming standard that is added to the beginning of the name for each generated trigger. <<table>> TableA -a1 : INTEGER = 123 -fk : INTEGER <<FK>> +fk1( fk ) <<index>> +indexona1( a1 ) <<trigger>> +trigger1() -fk fk1 Figure Operations mapping example -id <<table>> TableB -b1 : INTEGER -b2 : INTEGER <<PK>> -id : INTEGER <<check>> +checkcolumn( id ) +checktable() <<PK>> +pk1( id ) <<unique>> +unique1( b1, b2 ) An example of the DDL script for operations mapping: CREATE TABLE TableB ( id INTEGER NOT NULL CONSTRAINT checkcolumn CHECK(/*<check_expression>*/), b1 INTEGER NOT NULL, b2 INTEGER NOT NULL, CONSTRAINT pk1 PRIMARY KEY (id), CONSTRAINT checktable CHECK(/*<check_expression>*/), CONSTRAINT unique1 UNIQUE(b1,b2) ); CREATE TABLE TableA ( fk INTEGER NOT NULL, a1 INTEGER DEFAULT 123, CONSTRAINT fk1 FOREIGN KEY (fk) REFERENCES TableB(id) ); CREATE INDEX indexona1 ON TableA(a1); CREATE TRIGGER trigger1 ON TableA /*<triggered_sql_statement>*/; Association cardinalities One-to-many (1:N) association One-to-many (1:N) association is mapped to relationship. No Magic, Inc of 428

176 <<table>> A -b_id FK_1 -id <<table>> B A cb ca B -b_id : INTEGER <<FK>> +FK_1( b_id )??..1 <<PK>> -id : INTEGER Figure Cardinalities of 1:N association For 1:N association cb role allowed cardinalities are 0, 1, N. For ca role allowed cardinalities are 0, 1 (see Figure Cardinalities of 1:N association). Concrete cardinalities of ca and cb roles are mapped to different data model constraints (if any): 1. If cb role does not allow N cardinality, the UNIQUE constraint is assigned to b_id column. When b_id column has the UNIQUE constraint, every A class references a unique B class (if any). Given B class is associated with the unique A class (if any). This means that cb role has no N cardinality. 2. If ca role does not allow 0 cardinality, NOT NULL constraint is assigned to b_id column. When b_id column has NOT NULL constraint, every A class references some B class. This means that ca role does not allow 0 cardinality. Employee 1..* 1 Company <<table>> Employee -c_id : INTEGER <<FK>> +FK_1( c_id ) Figure :N association and mapped representation -c_id 0..* FK_1 -id 1 <<table>> Company <<PK>> -id : INTEGER Script creating 1:N association: CREATE TABLE Company ( id INTEGER NOT NULL PRIMARY KEY ); CREATE TABLE Employee ( c_id INTEGER NOT NULL, CONSTRAINT FK_1 FOREIGN KEY (c_id) REFERENCES Company (id) ); One-to-one (1:1) association One-to-one (1:1) association is handled as a special case of one-to-many relationships, where cb role allowed cardinalities are 0, 1 and ca role allowed cardinalities are 0, 1 (see Figure Cardinalities of 1:N association). 1:1 association is mapped to a relationship. The 1:1 cardinality must be forced through constraints. No Magic, Inc of 428

177 <<table>> Director <<unique>> -c_id : INTEGER -c_id 0..1 FK_1 -id 1 <<table>> Company <<PK>> -id : INTEGER Director 1 1 Company <<FK>> +FK_1( c_id ) Figure :1 association and mapped representation A script that creates a 1:1 association: CREATE TABLE Company ( id INTEGER NOT NULL PRIMARY KEY ); CREATE TABLE Director ( c_id INTEGER NOT NULL UNIQUE, CONSTRAINT FK_1 FOREIGN KEY (c_id) REFERENCES Company (id) ); Nevertheless, this DDL script with these constrains does not ensure a strict 1:1 association Company table may have rows that do not have their counterpart rows within Director table. Many-to-many (N:M) association Many-to-many (N:M) associations are not handled by MagicDraw TM UML. Inheritance Single inheritance Employee <<table>> Employee <<PK>> -id : INTEGER -id 1 FK_1 -id 1 <<table>> Director <<PK>> -id : INTEGER Director <<FK>> +FK_1( id ) Figure Single Inheritance and mapped representation A script that creates a single inheritance: CREATE TABLE Employee ( id INTEGER NOT NULL PRIMARY KEY ); CREATE TABLE Director ( id INTEGER NOT NULL PRIMARY KEY, CONSTRAINT FK_1 FOREIGN KEY (id) REFERENCES Employee(id) ON DELETE CASCADE ); NOTE The Employee table may have rows that do not have their counterpart rows within Director table. No Magic, Inc of 428

178 Multiple inheritance The mapping of a multiple inheritance is similar to the mapping of a single inheritance. <<table>> Base1 <<table>> Base2 <<PK>> -id : INTEGER -id 1 -id 1 <<PK>> -id : INTEGER FK_1 FK_2 -b1_id 0..* <<table>> Derived -b2_id 0..* Base1 Base2 <<PK>> -b1_id : INTEGER -b2_id : INTEGER Derived <<FK>> +FK_1( b1_id ) +FK_2( b2_id ) Figure Multiple Inheritance and mapped representation A script that creates a multiple inheritance: CREATE TABLE Base1 ( id INTEGER NOT NULL PRIMARY KEY ); CREATE TABLE Base2 ( id INTEGER NOT NULL PRIMARY KEY ); CREATE TABLE Derived ( b1_id INTEGER NOT NULL, b2_id INTEGER NOT NULL, PRIMARY KEY (b1_id, b2_id), CONSTRAINT FK_1 FOREIGN KEY (b1_id) REFERENCES Base1(id) ON DELETE CASCADE, CONSTRAINT FK_2 FOREIGN KEY (b2_id) REFERENCES Base2(id) ON DELETE CASCADE ); Not supported UML constructs This section describes constructs that are not mapped into DDL script, because this would lead to a generation of an illegal DDL code. Duplicated names are not allowed. NOTE Uppercase and lowercase letters are equivalent. Database package cannot contain two schema packages with the same name. No Magic, Inc of 428

179 Schema package cannot contain two UML constructs that are mapped to the schema elements such as table classes, view classes, index operations, and trigger operations that have the same name. Table class cannot have two column attributes or constraint operations with the same name. View class cannot have two column attributes with the same name. Table class cannot have two operations with the <<PK>> stereotype, because a table can have only one primary key (if any). References to non-existing columns are illegal. The parameter name of an operation with a DDL stereotype (<<index>>, <<trigger>>, <<PK>>, <<FK>>, <<unique>>, <<check>>) must be the name of an existing column attribute. Referenced column name list, represented as an association role name, must contain names of existing column attributes. Supported attribute multiplicity can be [not specified], [0..1], and [1]. All other attribute multiplicities are not supported MagicDraw TM UML reverse engineering for DDL script Information about a specific database structure acquired reversing DDL script or from JDBC is mapped to the MagicDraw TM UML constructs as described bellow. Database A Database is a system for a data storage and controlled access to the stored data. It is the biggest construct that a data model supports. A package, which is used with the <<database>> stereotype, represents a database in the MagicDraw TM UML model. The database that is modeled as a package must have a name. Example of a DDL script: CREATE DATABASE BankDB; Representation using UML concepts: <<database>> BankDB Figure Database example See also: CurrentDatabaseName property Schema The full description of the data model to be used with the retrieval and storage of data is stored in a schema inside a database. A schema is the biggest unit that can be worked with at any given time. A package with the <<schema>> stereotype within the package with the <<database>> stereotype represents a database schema. No Magic, Inc of 428

180 Example of a DDL script: CREATE SCHEMA Public; Example rewritten using a qualified schema name BankDB.Public : CREATE SCHEMA BankDB.Public; Representation using UML concepts: <<schema>> Public (BankDB) Figure 53 Schema example Note that there can be more than one schema associated to a database. See also: CurrentSchemaName property Table A table is the basic modeling structure of a relational database. It represents a set of records of the same structure, also called rows. Each of these records contains data. Information about the structure of a table is stored in the database itself. A class with the <<table>> stereotype represents a relational table in a schema of a database. Example of a DDL script for table: CREATE TABLE Account ( accountno INTEGER NOT NULL, personid INTEGER NOT NULL, balance FLOAT(5) DEFAULT 0.0 NOT NULL ); This example may be rewritten instead of Account using qualified table name BankDB.Public.Account. Representation using UML concepts: <<table>> Account (BankDB.Public) -accountno : INTEGER -balance : FLOAT (5) = personid : INTEGER Figure 54 Table example Hosting the table in the schema package creates an association of a table to a schema. No Magic, Inc of 428

181 Column A table contains columns. A column must have a defined name and data type; a default value and several constraints are optional. Example: balance FLOAT(5) DEFAULT 0.0 A column is represented as an attribute. A name, data type, and initial value of an attribute are set according to the name, data type, and default value of the column. The stereotype of an attribute is set according to column constraints. Stereotype can be not specified, <<unique>>, or <<PK>>. Constraint A constraint is a rule applied to the structure of a database. This rule extends the structure of a database and can be applied to a column or a table. In general, a constraint may be represented as an operation with an appropriate stereotype and parameter list containing the list of column names that constraint concerns. An operation name is equal to the name of a constraint, but, when a constraint has no name specified, operation is unnamed. All listed constraints (null, not null, uniqueness, primary key, foreign key, and check) are implemented in the following example: CREATE TABLE Person ( id INTEGER NOT NULL PRIMARY KEY, socialid NUMBER(10) NOT NULL UNIQUE CONSTRAINT checksocialid CHECK(socialId>0), lastname VARCHAR(20) NOT NULL, firstname VARCHAR(10) NOT NULL, sex CHAR(1) NULL ); CREATE TABLE Account ( accountno INTEGER NOT NULL, balance FLOAT(5) DEFAULT 0.0 NOT NULL CONSTRAINT checkbalance CHECK(balance>=0), personalid INTEGER NOT NULL, CONSTRAINT PK_Account0 PRIMARY KEY (accountno, personalid), CONSTRAINT FK_Account1 FOREIGN KEY (personalid) REFERENCES Person(id) ); Representation using UML concepts: Figure 55 Constraints example No Magic, Inc of 428

182 Not null, Null NOTE A Null constraint is not defined in SQL-92 standard but some dialects use it. Microsoft SQL Server allows setting a flag, which indicates that all columns have Not Null constraint, which is set by default. A Null constraint that is assigned for a column overrides the default Not Null constraint and allows null values. Not Null constraint indicates that the value for an attribute is required; Null constraint indicates that the value is optional. Example: firstname VARCHAR(10) NOT NULL, sex CHAR(1) NULL Not null constraint and null constraint are modeled as the multiplicity of an attribute. Multiplicity may be indicated by placing a multiplicity indicator in brackets after the name of an attribute. A multiplicity of 0..1 provides a possibility of null values, for an example: sex [0..1]: CHAR(1) In the absence of a multiplicity indicator, an attribute holds exactly one value. See also: ColumnDefaultNullability, AttributeDefaultMultiplicity, GenerateNullConstraint, GenerateNotNullConstraint properties. Example of a DDL script: CREATE TABLE NullableExample ( dontcare INTEGER, optional INTEGER NULL, required INTEGER NOT NULL ); Representation using UML concepts: Figure 56 Not null, null constraints example Uniqueness Uniqueness constraint indicates that the value of a column must be unique within the table. Uniqueness constraint is modeled as the <<unique>> stereotype associated with an attribute and an operation with the <<unique>> stereotype and a parameter list. Example of a DDL script: CREATE TABLE UniqueExample ( col1 INTEGER CONSTRAINT uniquecolumn UNIQUE, col2 INTEGER, col3 INTEGER, CONSTRAINT uniquecombination UNIQUE (col2, col3) ); Representation using UML concepts: No Magic, Inc of 428

183 Figure 57 Unique constraint example Primary Key Primary Keys uniquely identify a row in a table. They mark an attribute as the Primary Key or the part of the Primary Key. The attribute must be of a scalar type. If more than one Primary Key attribute is identified, a concatenated primary key is generated. A Primary Key is represented as the <<PK>> stereotype on an attribute and/or an operation with the <<PK>> stereotype and the parameter list. Example of a DDL script: CREATE TABLE PKColumnExample ( col1 INTEGER Constraint pkcolumn PRIMARY KEY ); CREATE TABLE PKColumnExample ( col2 INTEGER, col3 INTEGER, CONSTRAINT pkcombination PRIMARY KEY (col2, col3) ); Representation using UML concepts: <<table>> PKColumnExample <<PK>> -col2 : INTEGER -col3 : INTEGER <<PK>> +pkcombination( col2, col3 ) Figure 58 Primary key constraint examples Foreign Key A Foreign Key constraint represents a relationship to another table. Foreign Key constraint is represented as an operation with the <<FK>> stereotype and parameter list, and an association to the target table. CONSTRAINT <fkname> FOREIGN KEY (<linkcols>) REFERENCES <targettable>(<targetcols>) UML concept FK element Example Operation name <fkname> fk Operation parameters list <linkcols> l1,l2 Association name <fkname> fk No Magic, Inc of 428

184 UML concept FK element Example Association end A class <linktable> FKLink Association end A name <linkcols> l1,l2 Association end A navigable False Association end B class <targettable> FKTarget Association end B name <targetcols> t1,t2 Association end B navigable True Example of a DDL script: CREATE TABLE FKTarget1( t INTEGER PRIMARY KEY ); CREATE TABLE FKLink1( r INTEGER CONSTRAINT fk1 REFERENCES FKTarget1(t), ); CREATE TABLE FKTarget ( t1 INTEGER, t2 INTEGER, PRIMARY KEY (t1, t2) ); CREATE TABLE FKLink ( r1 INTEGER, r2 INTEGER, CONSTRAINT fk2 FOREIGN KEY (r1,r2) REFERENCES FKTarget(t1,t2) ); Representation using UML concepts: Figure 59 Foreign key constraint example Check The Check constraint checks the value of data according to a given expression. The Check constraint is represented as an operation with the <<check>> stereotype. Operation s name is equal to the name of the check constraint or, if the constraint name is not specified, the name unnamed is generated. No Magic, Inc of 428

185 There are a column check constraint and table check constraint: For column check constraint operation s parameter list contains one parameter with the name that equals to the name of the attribute for witch check constraint is assigned. Table check constraint operation has no parameters. Example: CREATE TABLE CheckExample ( balance INTEGER CONSTRAINT checkbalance CHECK(balance>=0) start INTEGER, -- period start balance income INTEGER CHECK(income>=0), -- unnamed check constraint outcome INTEGER, CONSTRAINT checkinout CHECK(start+income-outcome = balance) ); Representation using UML concepts: Figure 60 Check constraint example Unnamed constraint representation as a stereotype of an attribute Some column characteristics (column primary key constraint, column uniqueness constraint) that apply to one specific column may be represented as stereotype of that attribute. Example DDL script: CREATE TABLE ConstraintExample1 ( col1 INTEGER PRIMARY KEY, col2 INTEGER UNIQUE ); Representation using UML concepts: <<table>> ConstraintExample1 <<PK>> -col1 : INTEGER <<unique>> -col2 : INTEGER Figure 61 Column with unnamed constraint example Only one constraint can be represented as stereotype, because only one stereotype can be assigned for the attribute. If there are other constraints, they should be represented as operations. Although attribute may have several such constraints assigned, in practice there is no need for more than one. If attribute has primary key constraint it is unique too. No Magic, Inc of 428

186 Example DDL script: -- here unique constraint is unnecessary CREATE TABLE ConstraintExample2 ( col1 INTEGER PRIMARY KEY UNIQUE ); Representation using UML concepts: <<table>> ConstraintExample2 <<PK>> -col1 : INTEGER <<unique>> +unnamed1( col1 ) Figure 62 Column with two unnamed constraints example Index An Index is a physical data structure that speeds up the access to data. It does not change the quality or the quantity of data retrieved. The index specifies the columns included and optionally the uniqueness of the index. An index can include multiple columns or just a single column. An index is represented as an operation with the <<index>> stereotype and parameter list. The operation name is equal to the index name and the parameter list of the operation is a column names for the index. The uniqueness of the index is ignored (not mapped). DDL script for an index example that creates the Person table and two indexes: CREATE TABLE Person ( id INTEGER NOT NULL PRIMARY KEY, socialid NUMBER(10) NOT NULL UNIQUE, lastname VARCHAR(20) NOT NULL, firstname VARCHAR(10) NOT NULL, sex CHAR(1) ); CREATE UNIQUE INDEX bysocialid ON Person(socialId); CREATE INDEX byname ON Person(lastName,firstName); Representation using UML concepts: <<table>> Person -firstname[1] : VARCHAR ( 10 ) -lastname[1] : VARCHAR ( 20 ) -sex : char ( 1 ) <<PK>> -id[1] : INTEGER <<unique>> -socialid[1] : NUMBER ( 10 ) <<index>> +byname( lastname, firstname ) +bysocialid( socialid ) Figure 63 Index example No Magic, Inc of 428

187 Trigger A trigger is an activity executed by the DBMS as a side effect or instead of a modification of a table or view to ensure consistent system behavior on data operations. A Trigger is represented as an operation with the <<trigger>> stereotype. DDL script for trigger example that creates trigger: CREATE TRIGGER logactions BEFORE INSERT OR DELETE OR UPDATE ON Person <triggered SQL statement>; Representation using UML concepts: <<table>> Person... <<trigger>> +logactions()... Figure 64 Trigger example View A View is a construct for creating a virtual table based on one or more existing tables or views. A class with the <<view>> stereotype represents a view in a schema of a database. The View column is modeled as an attribute. Relationships between the View and its underlying tables ( FROM clause) are modeled as associations. Referenced table alias is modeled as the name of an association, referenced column list as a name of association role. No Magic, Inc of 428

188 View element UML concept Script example View Class with the <<view>> stereotype CREATE VIEW View name Column Column name Derived column Class name Attribute Attribute name Attribute <expression> AS <name> default value <expression>, name <name> Account.balance AS total * Attribute name * <tablename>.* Attribute name P.* <columnname> Attribute name Balance <tablename>.<columnname> Attribute name <columnname> and default value <tablename>.<columnname> <expression> Generated unique attribute name and default value <expression> Table reference Association Account.balance Referenced table alias Association name P Referenced column list Association role name Id,firstName,lastName DDL script for view example: CREATE TABLE Person ( id INTEGER NOT NULL, socialid NUMBER(10) NOT NULL, lastname VARCHAR(20) NOT NULL, firstname VARCHAR(10) NOT NULL, sex CHAR(1) ); CREATE TABLE Account ( accountno INTEGER NOT NULL, balance FLOAT(5) DEFAULT 0.0 NOT NULL, personalid INTEGER NOT NULL ); CREATE VIEW ImportantClient AS SELECT P.*, Account.balance as total FROM Person as P(id,firstName,lastName), Account WHERE balance >= AND personid = P.id; Representation using UML concepts: No Magic, Inc of 428

189 Figure 65 View example DDL dialects This section reviews DDL implementations from different vendors. Specific implementation usually states compliance to some level of SQL standard and provides some extensions. Standard SQL2 For SQL2 statements supported by MagicDraw TM UML see Section 5.9.7, Supported SQL statements, on page 193. MagicDraw TM UML schema package is located within a database package. Database definition statement is not the part of the SQL2 standard - it is an analogue of a Database (a Catalog). NOTE A Catalog has no explicit definition statement. If a database package for a Catalog does not exist, it should be created (when it is referred for the first time). Informix Cloudscape v3.5 Informix Cloudscape v3.5 dialect has no database definitions statement. A database package with the name specified by CurrentDatabaseName property is used. This dialect has CREATE INDEX and CREATE TRIGGER statements that are not the part of a SQL2 standard but that should be taken into account while reversing DDL script of this dialect. This dialect has some syntax differences from SQL2 standard because of extensions (e.g. some schema definition statements can have PROPERTIES clause). These extensions are ignored while reversing. Oracle Oracle8 Oracle Oracle8 dialect has CREATE DATABASE, CREATE INDEX, and CREATE TRIGGER statements that are not the part of SQL2 standard but that should be taken into account while reversing DDL script of this dialect. No Magic, Inc of 428

190 This dialect has some syntax differences from SQL2 standard because of extensions (e.g. some schema definition statements can have STORAGE clause). These extensions are ignored while reversing. Oracle Oracle8 has object oriented DDL statements (CREATE TYPE and CREATE TYPE BODY). Additional object oriented Oracle8 schema objects are Object Types, Nested Object Types, Nested Table, VARRAY, Object Tables, and Object Views Stereotypes for MagicDraw constructs The following table lists stereotypes that are used with MagicDraw TM UML constructs to represent a database structure: Model Item Stereotype Description Default item stereotype for forward engineering Package Class Attribute Operation <<database>> See Section Database on page 178 <<schema>> See Section Schema on page 178 <<table>> See Section Table on page 179 <<view>> See Section View on page 186 <<PK>> See Primary Key on page 182 <<unique>> See Uniqueness on page 181 <<PK>> See Primary Key on page 182 <<FK>> See Foreign Key on page 182 <<unique>> See Section Operations on page 173 <<check>> See Check on page 183 <<index>> See Section Index on page 185 <<trigger>> See Section Trigger on page 186 If EnableDefaultStereotypes property is true, <<database>> stereotype is used for first level packages, and <<schema>> stereotype is used for second level packages; Otherwise none. If EnableDefaultStereotypes property is true, <<table>> stereotype is used; Otherwise none. None None Properties of code engineering set for DDL There are two separate properties sets, stored as properties of code engineering set for DDL: Properties for DDL script generation, Properties for DDL script reverse engineering. No Magic, Inc of 428

191 Properties for DDL script generation Figure CG Properties Editor dialog. DDL properties No Magic, Inc of 428

192 Property name Type Values list Description TargetDDLScriptFileName String script (default), any entered by the user TargetDDLDialectName String Standard SQL2 (default), Oracle Oracle8, Informix Cloudscape v3.5 EnableDefaultStereotypes Generate ExtendedIndexName The name of the default DDL script file that is created when you generate a DDL script from a UML model. Specifies the name of DDL dialect to be generated. See also TargetDDLScriptFileName property. Boolean True (default), false If EnableDefaultStereotypes property is true, default stereotypes are used if the concept has no stereotype. <<database>> stereotype is used for first level packages, <<schema>> stereotype - for second level packages, and <<table>> stereotype - for classes. Boolean True, false (default) If true, generates index name of the form: TableName_IndexName. Generate ExtendedTriggerName Boolean True, false (default) If true, generates trigger name of the form: TableName_TriggerName. GenerateDropStatements AttributeDefaultMultiplicity String [1] (default), [0..1], not specified GenerateNullConstraint GenerateNotNullConstraint Boolean True (default), false If true, generates a DROP statement before each appropriate schema object. If attribute multiplicity is not specified, the value of this property is used. See also: GenerateNullConstraint, GenerateNotNullConstraint Boolean True, false (default) If true, generates NULL constraint for column attribute with [0..1] multiplicity. If DBMS, you use, support NULL, you can enable this to generate NULL constrains. See also: GenerateNotNullConstraint, AttributeDefaultMultiplicity Boolean True (default), false If true, generates NOT NULL constraint for column attribute with [1] multiplicity. If you set GenerateNullConstraint, you may wish to do not generate NOT NULL constrain. See also: GenerateNullConstraint, AttributeDefaultMultiplicity GenerateIndexForPrimaryKey Boolean True, false (default) If the DBMS, you use, requires explicit indexes for primary key, you may enable explicit index creation using this flag. See also: GenerateIndexForUnique No Magic, Inc of 428

193 Property name Type Values list Description GenerateIndexForUnique Boolean True, false (default) If the DBMS, you use, requires explicit indexes for primary key or unique columns, may enable explicit index creation using this flag. See also: GenerateIndexForPK Properties for DDL script reverse engineering The following table describes the DDL script reverse engineering properties, as well as any defined default values: Property name Type Values list Description SourceDDLDialectName String DefaultCatalogName String None (default), DefaultDatabase, any entered by the user DefaultSchemaName String None (default), DefaultSchema, any entered by the user Standard SQL2 Specifies the name of DDL dialect to be (default), Informix reversed. Cloudscape v3.5, See also SourceDDLScriptFileName Microsoft SQL Server property. v7.0, Oracle Oracle8 Specifies current database name. Used when DDL script does not specify database name explicitly. Specifies current schema name. Used when DDL script does not specify schema name explicitly. MapForeignKeys Boolean True (default), false An operation with <<FK>> stereotype is added into class and association is created to represent Foreign Key. MapIndexes Boolean True (default), false An operation with <<index>> stereotype is added into class to represent index. MapTriggers Boolean True (default), false An operation with <<trigger>> stereotype is added into class to represent trigger. MapViews Boolean True (default), false A class with <<view>> stereotype is created to represent view. MapStereotypes Boolean True (default), false If true, stereotypes are assigned, otherwise they are suppressed. This flag concerns all stereotypes that represent DDL details: <<database>>, <<schema>>, <<table>>, <<view>>, <<PK>>, <<FK>>, <<unique>>, <<check>>, <<index>>, <<trigger>>, <<identifying>>, <<non-identifying>>. No Magic, Inc of 428

194 Property name Type Values list Description UseStereotypes Boolean True, false (default) If true, when reversing an attribute (lets say A attribute) with the UNIQUE constraint, is searched an appropriated operation among the existing ones in the class. If an operation is successfully found, the new operation will not be created. The appropriated operation is an operation with the <<unigue>> stereotype and if the name of its argument is the same as an attribute name ( A in this case) Otherwise, the new unnamed operation will be created which name is the same as an attribute s ( A ) ColumnDefaultNullability String Dialect default (default), not specified, NULL, NOT NULL If column has no NULL or NOT NULL constraint specified, the value of this property is used. DropStatements String Deferred (default), Specifies whether execution of drop Immediate, Ignored statements may be deferred, or must be executed, or must be ignored. Deferred drop may be enabled if elements are recreated later. This will save existing views. Attribute stereotypes, multiplicity and default value always are not dropped immediately. CreateCatalog SetsCurrentCatalog CreateSchema SetsCurrentSchema Boolean True (default), false Boolean True (default), false Specifies whether create catalog statement changes current catalog name. Specifies whether create schema statement changes current schema name Supported SQL statements This section lists SQL statements that MagicDraw TM UML supports (that are parsed and mapped into UML constructs). The following table provides SQL2 SQL schema statements that are supported and that are NOT supported in MagicDraw TM UML: No Magic, Inc of 428

195 SQL schema definition statement SQL schema manipulation statement SQL schema statement Schema definition Table definition View definition Alter table statement Grant statement Domain definition Assertion definition Character set definition Collation definition Translation definition Drop table statement Drop view statement Revoke statement Alter domain statement Drop assertion statement Drop domain statement Drop character set statement Drop collation statement Drop translation statement Supported (Yes/No) Yes Yes Yes Yes No No No No No No Yes Yes No No No No No No No Some SQL schema statements (e.g. schema definition, table definition) allow implicit catalog name and unqualified schema name. In addition to SQL schema statements, the following SQL session statements must be supported: Set catalog statement - sets the current default catalog name. Set schema statement - sets the current default unqualified schema name. MagicDraw TM UML supports the following widely used by dialects statements that are not the part of SQL2: Database definition statement (CREATE DATABASE) that creates database Index statements (CREATE INDEX, DROP INDEX) that create an index on table and remove it Trigger statements (CREATE TRIGGER, DROP TRIGGER) that create a trigger on table and remove it. The following table provides details on mapping on the supported SQL schema manipulation statements into MagicDraw constructs: No Magic, Inc of 428

196 DDL Statement or Concept Action, model Item Description Visible Alter table statement Add column definition Modify class Define attribute Elements: table name and alter table action. Yes Alter table action one of: add column, add table constraint, alter column, drop table constraint, drop column. Elements: column definition. Yes Add table constraint definition Define method Elements: table constraint definition. Yes Alter column definition Modify attribute Elements: mandatory column name, default clause (for add default statement only). Yes Drop table Delete constraint definition method Elements: constraint name, drop behavior Yes Drop column definition Delete attribute Elements: column name, drop behavior Yes Drop schema statement Delete package Elements: schema name, drop behavior Yes Drop table statement Delete class Elements: table name, drop behavior Yes Drop view statement Delete class Elements: table name, drop behavior Yes Drop behavior Action property Modifiers: CASCADE, RESTRICT No Tips Short representation for primary key constraint When primary key is made out of several columns, and columns order is not important, short primary key representation may be used. Columns that make up the primary key must be marked with <<PK>> stereotype. Because a table can contain only one (if any) primary key, these columns are concatenated into one primary key. Short primary key representation using UML concepts and generated DDL script: <<table>> ShortPKExample <<PK>> -col1 : INTEGER -col2 : INTEGER CREATE TABLE ShortPKExample ( col1 INTEGER, col2 INTEGER, PRIMARY KEY (col1, col2) ); No Magic, Inc of 428

197 If the order of columns within the primary key is important, constraint representation as an operation with parameters must be used: <<table>> NoShortPKExample <<PK>> -col1 : INTEGER -col2 : INTEGER CREATE TABLE NoShortPKExample ( col1 INTEGER, col2 INTEGER, PRIMARY KEY (col2, col1) ); <<PK>> +pk( col2, col1 ) Primary key constraint with overhead info Consider such primary key definition using UML concepts and generated DDL script: <<table>> PKWithOverheadExample -col2 : INTEGER <<unique>> -col1 : INTEGER CREATE TABLE PKWithOverheadExample ( col1 INTEGER UNIQUE, col2 INTEGER, PRIMARY KEY (col1, col2) ); <<PK>> +pk( col1, col2 ) This representation is valid, but the primary key contains overhead info (specifically column col2). Unique column alone may be used as a valid primary key: <<table>> PKWithoutOverheadExample -col2 : INTEGER <<PK>> -col1 : INTEGER CREATE TABLE PKWithoutOverheadExample ( col1 INTEGER PRIMARY KEY, col2 INTEGER ); 5.10 EJB-UML The UML is widely used to specify, visualize, construct, and document the types of enterprise applications for which the EJB architecture was designed. Conversely, the EJB architecture is widely used to implement the types of enterprise applications most frequently described by UML models. There is therefore significant motivation for ensuring that the UML can be used to describe EJB-based software systems. No Magic, Inc of 428

198 While the UML already provides standards for the design of object-oriented systems in general, including enterprise computing systems, it does not provide everything necessary for the design of systems based on specific implementation architectures. In particular, it does not explicitly capture the semantics expressible in the EJB architecture4. The UML was designed to be extensible, however, and provides standard extension mechanisms for defining new semantic constructs. These mechanisms can be used to define constructs describing EJB-based software artifacts. Ad hoc attempts to do this have been made by the industry over the past several years. To ensure the interoperability of tools and frameworks from different vendors, and the portability of the applications they support, this specification defines a standard set of UML extensions for modeling EJB-based software systems. In addition, since tool and framework vendors often place UML models describing EJB-based artifacts in the EJB-JARs that contain those artifacts to support display, automation and reflection, this specification defines a standard format for storing a UML model that describes the contents of an EJB-JAR within the EJB-JAR. Collectively, these definitions comprise the UML Profile for EJB. The UML Profile for EJB can be used to develop models describing EJB-based implementation artifacts, and to round trip engineer between the models and the artifacts. EJB SPECIFICATION EJB-UML mapping is based on draft UML Profile For EJB in MagicDraw. Location: GENERATING-REVERSING EJB AND DEPLOYMENT DESCRIPTOR. MISMATCHES: Ejb-client-jar tag is mapped to the EJB project s CG property EJB_CLIENT_JAR Encountered classes in deployment descriptor are created in package tree according to Java package field with tags and stereotypes and placed in Data package. All encountered specifications of enterprise beans in deployment descriptor are represented in subsystems which are created in Data package. Classes and subsystems are linked together as full enterprise bean in EJB engineering set. EJB engineering set can contain subsystems (enterprise bean) and component stereotyped as deployment descriptor. In EJB engineering set all subsystems are represented as Java engineering set, which contains implementation, home and remote respectively. No Magic, Inc of 428

199 MAGICDRAW TM 5.5 MANUAL 6 Tools MagicDraw TM UML provides the following tools and wizards to help you perform the design tasks in your job quickly and easily: New Class Diagram Wizard helps to create and customize new class diagrams. Package Dependency Diagram Wizard generates the package dependency diagram for packages in your project. Reports prepares HTML report documents describing the model. These can be viewed with any Internet browser. Analysis tools prepares diagrams and report documents of the relationships between classes in the UML model. Creating setters/getters creates getting and setting operators for attributes defined in the class. Creating implemented operations creates defined operations down the inheritance tree. 6.1 New Class Diagram Wizard The Class Diagram Wizard helps you create a new class diagram when all classes and their relationships are already created and specified. You may choose which classes, packages, and relationships will be included in a new class diagram, and the details of class representation (attributes, operations, accessibility) to be configured. The Class Diagram Wizard frees you from creating the class diagram manually. The Class Diagram Wizard, along with its dialog es, guide you through several steps and collect information along the way. It will automatically create a new class diagram and all the necessary elements. To start the Class Diagram Wizard From the Tools menu, choose New Class Diagram Wizard. The main Class Diagram Wizard appears. Figure Class Diagram Wizard. Diagram name Type or leave the default the name of a new diagram in the Type diagram name list. No Magic, Inc of 428

200 Buttons available in the Class Diagram Wizard: Next > - proceeds to the next step. See Figure Class Diagram Wizard. Parent package. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Class Diagram Wizard. Parent package Choose the package that will contain the created diagram. The hierarchy of UML model packages is displayed in the Select package for diagram list window. Choose the package that will be the parent for the newly created diagram from the Data tree. Buttons available in the Class Diagram Wizard: Next > - proceeds to the next step. See Figure Class Diagram Wizard. Select elements. <Back returns to the previous dialog. Correct data, entered in the previous step. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Class Diagram Wizard. Select elements No Magic, Inc of 428

201 All Objects list contains all model elements. Selected Objects list contains all the elements that are added to the class diagram. Buttons available in the Class Diagram Wizard. Select elements dialog : Add - adds selected model elements in the All Objects list to the Selected Objects list. Add All - adds all elements located in the same hierarchy level as the selected element to the Selected Objects list. Add Recursively adds all selected elements in the selected package and all elements from nested packages to the Selected Objects list. Remove - removes the selected element from the Selected Objects list. Remove All - removes all selected elements. <Back returns to the previous dialog. Correct data entered in the previous step. Next > - proceeds to the next step. See Figure Class Diagram Wizard. Types. Finish - finishes the configuration of your class diagram. All other options will be set by default. The New Class Diagram Wizard exits and the created class diagram is displayed. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Class Diagram Wizard. Types of paths Select relationships you wish to include in the class diagram from the Select types of paths to show on a diagram check es group: Generalization relationship between a more general and a more specific element (inheritance, extension). Realization relationship between model elements where one of the elements implements the interface defined by the other model element. Association - semantic relationship between classes. Dependency usage relationship between UML model elements. No Magic, Inc of 428

202 Buttons available in the Class Diagram Wizard: <Back returns to the previous dialog. Correct data, entered in the previous step. Next > - proceeds to the next step. See Figure Class Diagram Wizard. Class options. Finish - finishes the configuration of your class diagram. All other options will be set by default. The New Class Diagram Wizard exits and the created class diagram is displayed. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Class Diagram Wizard. Class options Select options for classes to be represented in the class diagram. The following choices are available in the Class options group: Show Operations Signature shows all of the operation parameters in the diagram. Suppress Attributes does not display attributes in the class diagram. Suppress Operations does not display operations in the class diagram. NOTE If the Suppress Attributes and the Suppress Operations check es are selected, the class is displayed only as a rectangular with the class name in it. You may preview your class diagram changes in the preview window on the left side of the panel. Buttons available in the Class Diagram Wizard: <Back returns to the previous dialog. Correct data is entered in the previous step. Finish - finishes the configuration of your class diagram. All other options will be set by default. The New Class Diagram Wizard exits and the created class diagram is displayed. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help No Magic, Inc of 428

203 6.2 Package Dependency Diagram Wizard The Package Dependency Diagram Wizard generates diagrams containing packages (created within a project) and shows the relationships between them. The diagram may reflect all packages in the project, or just those chosen. The Package Dependency Diagram Wizard collects all the information needed to both analyze dependencies and to generate a new diagram. To start the Package Dependency Diagram Wizard Choose the Package Dependency Wizard from the Tools menu. Figure Package Dependency Diagram Wizard. Diagram name Type the name for a newly created diagram in the Type diagram name field. Buttons available in the Package Dependency Diagram Wizard: Next > - proceeds to the next step. See Figure Package Dependency Diagram Wizard. Parent package. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help No Magic, Inc of 428

204 Figure Package Dependency Diagram Wizard. Parent package Choose the package that will contain the created diagram. After generation, look for the diagram in the package you specified in the Select package for diagram list. Buttons available in the Package Dependency Diagram Wizard: <Back returns to the previous dialog. Correct data entered in the previous step. Next > - proceeds to the next step. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Package Dependency Diagram Wizard. Selected Objects All Objects list contains all packages. Selected Objects list contains all packages that are added to the diagram. Buttons available in the Package Dependency Diagram Wizard: Add - adds selected package in the All Objects list to the Selected Objects list. No Magic, Inc of 428

205 Add All - adds all packages located in the same hierarchy level as the selected element to the SelectedObjects list. Add Recursively adds all selected elements in the selected package and all elements from nested packages to the Selected Objects list. Remove - removes the selected element from the Selected Objects list. Remove All - removes all selected elements. <Back returns to the previous dialog. Correct data, entered in the previous step. Next > - proceeds to the next step. See Figure Package Dependency Diagram Wizard. Select criteria. Finish - finishes the configuration of your class diagram. All other options will be set by default. The Package Dependency Diagram Wizard exits and the created class diagram is displayed. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Package Dependency Diagram Wizard. Select criteria Define options for the types of dependencies to analyze in the Select criteria for dependency between packages group : Operation parameters - dependencies that are defined in terms of operations parameters. If the operation of one model element has the argument of another model element, then packages that contain those model elements are interdependent. Attribute types - dependencies that are defined in terms of attribute type. If the attribute of one model element has the type of another model element, then packages that contain those model elements are interdependent. Generalization - dependencies that are defined in terms of model element generalization relationships. If only this check is selected, the analyze output will be the same as in derivation analyze. Realization - dependencies that are defined in terms of model element realize relationship. Association - dependencies that are defined in terms of model element association relationship. Dependency - dependencies that are defined in terms of model element dependency relationship. No Magic, Inc of 428

206 6.3 Report Wizard The Report Wizard dialog is used for selecting the options to generate a report to the HTML format file for diagrams. Generated reports are placed in the same directory where MagicDraw TM UML is installed or you may choose other directory. The Report Wizard contains four tabs. To open the Report Wizard Choose the Report command from the Tools menu. The Report Wizard dialog appears General Options tab Figure Report Wizard. General Options tab Element name Element type Function Report Folder Text Enter the directory of the report where the generated report will be saved, or click the button, to select the location directory and the file name in the Select Folder dialog. No Magic, Inc of 428

207 Element name Report File Name Element type Text Function Type the name of the report. You may rename only printable reports. NOTE Follow the file naming rules of the operation system you are using. If an incorrect name is provided, MagicDraw TM UML notifies you with the error message. Report Title Text Type the title for the report. That title will appear on the top of the generated documentation. Output Format Browsable Printable Display in Browser Option buttons Check Select the type of the report you want to be displayed: Generates a report that is easy to browse. With the browsable table of contents, you may easily find information you want on different pages. Generates a report on one screen. You may easily print and analyze printed report. After the generation, the generated report is opened in the HTML browser. Generate Button Generates the report according to the appropriated options. Close Button Closes and exits the Report Wizard. Help Button Displays MagicDraw TM UML Help Select Package tab From the Select Package tab, select one package from which you want the report will be generated. By default, the Data package is selected and all model elements are included in the report. No Magic, Inc of 428

208 Figure 77 Report Wizard. Select Package tab Select Diagrams tab From the Select Diagrams tab, select diagrams from which images are added to the report. By default, no diagrams are selected. No Magic, Inc of 428

209 Figure Report Wizard. Select Diagrams tab Select All button selects all displayed diagrams. Unselect All button unselects all selected diagrams. To select as many diagrams as you need, press the CTRL key and click the diagrams you want to select, or press the SHIFT key and click two diagrams that cover an interval of diagrams you want to select Style Management tab The Report Wizard allows you to select from an array of predefined report styles, or you can create your own report style. The information in the Style Management tab is organized into trees. MagicDraw TM UML offers you five report styles. You may edit every style, or make one of them as the default style. No Magic, Inc of 428

210 Figure Report Wizard. Style Management tab The following report styles are available in the Style Management tab: Default Behavioral Model Report Full Report Static Model Report Use Case Report Includes all available model elements into the report. NOTE Only public members (with public (+) visibility) are included into the report. Includes class diagram elements, state, and activity diagrams. Includes all available model elements into the report. Includes model elements from class and implementation diagrams. Generates only use case diagrams elements report. Check name Include Class Report Include Artifact Report Include Operations Include Attributes Public Members Only Function (if True) Includes classes, interfaces, and data types in the generated report. Includes artifact report. Includes all available operations are included in the generated report. Includes all available attributes are included in the generated report. Includes only public (with a plus (+) sign) operations and attributes in the generated report. No Magic, Inc of 428

211 Check name Include Use Case Report Include Actors Report Include Extension Points Report Include Collaboration Diagram Report Include Instance Report Include Classifier Role Report Include Component Report Include Node Report Include Activity Diagram Report Include Sequence Diagram Report Include State Diagram Report Include Relation Report Include Tagged Values Include Constraints Function (if True) Includes all available use cases in the generated report. Includes all available actors in the generated report. Includes all available extension points of use cases in the generated report. Includes collaboration diagrams in the generated report. Includes all available instances in the generated report. Includes all available classifiers in the generated report. Includes all available components in the generated report. Includes all available nodes in the generated report. Includes activity diagrams in the generated report. Includes sequence diagrams in the generated report. Includes state diagrams in the generated report. Includes relationships Includes all available tagged values in the generated report. Includes all available constraints diagrams in the generated report. Element name Include Table of Contents Include Documentation Documentation as HTML Preformatted Documentation Include Model Dictionary Include Full Descriptions Include Data Types Package Include Component View Package Function Includes a table of contents: the list of hyperlinks of generated elements that represent classes, packages and diagrams. The hierarchy of the contents is listed top down: from packages to the elements that are included into the packages. NOTE This option is available only for printable reports format. Includes the dictionary and documentation, which was entered while preparing UML models (in the Specification dialog es). The documentation will be printed in the report document. Documentation is generated in html format. You may type documentation text with HTML tags. Documentation is shown as is it entered. If not selected, documentation text is wrapped. Includes UML model dictionary table to the report. Includes the location (parent element) of the model element in the model dictionary index. Includes Data Types package. Includes Component View package. No Magic, Inc of 428

212 Button name Clone Rename Delete Import Export Make Default Save Changes check Function Clone (duplicate) the selected style. Change the name of all existing style Type a new name for a style in the Rename Style dialog. Remove the selected style. The Open dialog appears. Select the style you wish to import (*.rst). The Open dialog appears. Select the directory where you wish to export the selected style. Make the selected style as your default style for the newly created projects. Saves changes to the all styles (except default style). 6.4 Tools for Analysis MagicDraw TM UML contains tools that help you analyze the relationships between elements created in the UML model. It is also possible to analyze the inheritance and dependency relationships between classes. Select a class in the Browser tree or on the Diagram pane. Choose Tools from the class shortcut menu, and then choose Analyze, and then choose the analysis tool Derived Classes The Derived classes tool will analyze the inheritance dependencies associated with the analyzed class. With the help of the Derived classes tool, you can see which classes are inherited from the analyzed class, or from which classes it is inherited. The Derived Classes Analysis Wizard generates diagrams containing classes that are connected to the inheritance relationship. The Derived Classes Analysis Wizard collects all the information needed to both analyze inheritance relationships and to generate a new diagram. To start the Derived Classes Analysis Wizard Select a class in the Browser tree or on the Diagram pane. Choose Tools from the class shortcut menu, choose Analyze, and then choose the Derived Classes command. No Magic, Inc of 428

213 Figure Derived Classes Analysis Wizard. Diagram name Type the name for a new diagram in the Type diagram name field. Buttons available in the Derived Classes Analysis Wizard: Next > - proceeds to the next step. See Figure Derived Classes Analysis Wizard. Diagram name. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Derived Classes Analysis Wizard. Diagram name Choose the package that will contain the created diagram. After generation, look for the diagram in the package you specified in the Select package for diagram list. Buttons available in the Derived Classes Analysis Wizard: <Back returns to the previous dialog. Correct the data entered in the previous step. No Magic, Inc of 428

214 Next > - proceeds to the next step. See Figure Derived Classes Analysis Wizard. Select links. Finish - finishes the configuration of the diagram. All other options will be set by default. The Derived Classes Analysis Wizard exits and the created class diagram is displayed. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Derived Classes Analysis Wizard. Select links. Select relationships you wish to include in the class diagram from the Select types of paths to shown on a diagram check es group: Generalization relationship between a more general and a more specific element (inheritance, extension). Realization relationship between model elements where one of the elements implements the interface defined by the other model element. Association semantic relationship between classes. Dependency usage relationship between UML model elements. Buttons available in the Derived Classes Analysis Wizard: <Back returns to the previous dialog. Correct data, entered in the previous step. Next > - proceeds to the next step. See Figure Derived Classes Analysis Wizard. Class options. Finish - finishes the configuration of your class diagram. All other options will be set by default. The Derived Classes Analysis Wizard exits and the generation starts. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help No Magic, Inc of 428

215 Figure Derived Classes Analysis Wizard. Class options Select options for classes to be represented in the class diagram. The following choices are available in the Class options group: Show Operations Signature shows all operation parameters in the diagram. Suppress Attributes does not display attributes in the class diagram. Suppress Operations does not display operations in the class diagram. NOTE If the Suppress Attributes and the Suppress Operations check es are selected, the class is displayed only as a rectangular with the class name in it. You may preview your revisions to the class diagram in the preview window on the left side of the panel. Buttons available in the Derived Classes Analysis Wizard: <Back returns to the previous dialog. Correct data, entered in the previous step. Finish - finishes the configuration of your class diagram. All other options will be set by default. The Derived Classes Analysis Wizard exits and the generation starts. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help In the created class diagram, you will see the inheritance tree, or if a class does not have any subclasses, you will see a single class Dependencies The Class Dependency Analysis Wizard generates diagrams containing classes connected by dependency relationships. It will show which classes are dependent on the analyzed class, and classes on which the analyzed class is dependent. To start the Class Dependency Analysis Wizard 1. Select a class in the Browser tree or on the Diagram pane. 2. From the class shortcut menu, choose Tools, then choose Analyze, and then choose the Dependencies analysis wizard. No Magic, Inc of 428

216 Figure Class Dependency Analysis Wizard. Diagram name Type the name for a new diagram in the Type diagram name field. Buttons available in the Class Dependency Analysis Wizard: Next > - proceeds to the next step. See Figure Class Dependency Analysis Wizard. Parent package. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Class Dependency Analysis Wizard. Parent package Choose the package containing the created diagram. After generation, look for the diagram in the package you specified in the Select package for diagram list. Buttons available in the Class Dependency Analysis Wizard: <Back returns to the previous dialog. Correct data, entered in the previous step. Next > - proceeds to the next step. See Figure Class Dependency Analysis Wizard. Type of dependency. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help No Magic, Inc of 428

217 Figure Class Dependency Analysis Wizard. Type of dependency Specify the dependencies for the class you wish to analyze, either - classes dependent on the investigated class, or classes that influence the investigated class. Select one of these options: Classes that are dependent on analyzed class. Classes that analyzed class is dependent on. Buttons available in the Class Dependency Analysis Wizard: <Back returns to the previous dialog. Correct data, entered in the previous step. Next > - proceeds to the next step. See Figure Class Dependency Analysis Wizard. Select. Finish - finishes the configuration of your class diagram. All other options will be set by default. The Class Dependency Analysis Wizard exits, and the created class diagram will be displayed in your current workspace. The diagram itself will be placed in the package you specified. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Class Dependency Analysis Wizard. Select types of paths No Magic, Inc of 428

218 Define options for the types of dependencies to analyze in the Select criteria to find dependent classes group : Operation parameters - dependencies that are defined in terms of operations arguments. If the operation of one class has the argument of another class, then those classes are dependent Attribute types - dependencies that are defined in terms of attribute type. If the attribute of one class has the type of another class, then those classes are dependent. Generalization - dependencies that are defined in terms of class generalization relationship. If only this check is selected, the output will be the same as in derivation analysis. Realization- dependencies that are defined in terms of class realize relationship. Association - dependencies that are defined in terms of class association relationship. Dependency - dependencies that are defined in terms of class dependency relationship. Buttons available in the Class Dependency Analysis Wizard: <Back returns to the previous dialog. Correct data, entered in the previous step. Next > - proceeds to the next step. See Error! Reference source not found.. Finish - finishes the configuration of your class diagram. All other options will be set by default. The Class Dependency Analysis Wizard exits and the created class diagram will be displayed in your current workspace. The diagram itself will be placed in the package you specified. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help Figure Class Dependency Analysis Wizard. Class options Select options for classes to be represented in the class diagram. The following choices are available in the Class options group: Show Operations Signature shows all operation parameters in the diagram. Suppress Attributes does not display attributes in the class diagram. Suppress Operations does not display operations in the class diagram. NOTE If the Suppress Attributes and the Suppress Operations check es are selected, the class is displayed only as a rectangular with the class name in it. No Magic, Inc of 428

219 Buttons available in the Class Dependency Analysis Wizard: <Back returns to the previous dialog. Correct data entered in the previous step. Finish - finishes the configuration of your class diagram. All other options will be set by default. The Class Dependency Analysis Wizard exits and generation begins. Cancel - cancels the wizard. Help Displays MagicDraw TM UML Help 6.5 Creating Setters / Getters Setters and getters are common operations that contain almost every class. With the help of MagicDraw TM UML, set and get operations for class attributes can be generated automatically. To create a setter or getter From the shortcut menu of the selected class, choose Tools, and then choose Create Setters/Getters. The Select Attributes dialog appears. Add a tagged value "getter/setter for attribute=attribute_name" to the selected class. Figure Select Attributes dialog No Magic, Inc of 428

220 Box Type Function All List Contains names of all attributes defined within the selected class. Selected List Contains the selected attributes. > Button Moves the selected attribute from the All list to the Selected list. Setter for that attribute will be generated. < Button Moves selected attribute from the Selected list to the All list. >> Button Moves all attributes from the All list to the Selected list. Setters for all of them will be generated. << Button Moves all attributes from the Selected to the All list. Prefix to Remove Create Setters Create Getters Prefix for Setter Prefix for Getter Text Check Check Dropdown list Dropdown list Type a prefix of an attribute (-,.) you want remove while generating setters or getters. Generates setters for the selected attributes. Generates getters for the selected attributes. Choose a prefix for the generated setter (operation). Possible choices: set or Set Choose a prefix for the generated getter (operation). Possible choices: get;is, Get;Is; get, or Get. NOTE Get is used for every getter, is is used if the type of an attribute is set as Boolean. OK Button Generates setters or/and getters for attributes that are in the Selected Items list. Cancel Button Exits the dialog without any changes. Help Button Displays MagicDraw TM UML Help The names of created operations (setters) are combined according to the following format: public void set + <attribute name> (<attribute type> <attribute name>) For example, if you have an attribute called x of type int, then the generated setter will look that way: public void setx (int x) The names of created operations (getters) are combined according to the following format: public <attribute type> get + <attribute name> ( ) For example, if you have an attribute called x of type int, then the generated setter will look this way: public int getx (); 6.6 Implementing or Overriding Operations When you inherit classes from the base class, which has abstract functions, you have to redefine them in the inherited classes. The implement/override operations tool will help you generate operations that are defined as abstract in the base class. The command Implement/Override Operations command can be invoked in 2 cases: When one classifier inherits operations from the base classifier (Generalization relationship). No Magic, Inc of 428

221 When some classifier implements Interface (Realization relationship). To start the Implement/Override Operations tool From the shortcut menu of the selected class, choose Tools. Then, choose Implement/Override Operations. The Select Operations to Implement/Override dialog appears. Figure Select Operations to Implement/Override dialog Box Type Function All List Contains names of all operations defined within the selected class. Selected List Contains the selected operations. > Button Moves the selected operation from the All list to the Selected list. Setter for that operation will be generated. < Button Moves selected operation from the Selected list to the All list. >> Button Moves all operations from the All list to the Selected list. Setters for all of them will be generated. << Button Moves all operations from the Selected to the All list. OK Button Generates operations that are in the Selected list. Cancel Button Exits the dialog without any changes. Help Button Displays MagicDraw TM UML Help TIP: Double-click the item name, and it will be moved to the opposite list. No Magic, Inc of 428

222 MAGICDRAW TM 5.5 MANUAL 7 User Reference 7.1 Menu System File menu Command New Project New From Template Open Project Import Project Save Project Save Project As Button / Shortcut keys CTRL+N CTRL+O CTRL+S Function Creates a new project. A project is nameless until you close or save it by choosing the Save Project or Save Project As commands. You may simultaneously create as many new projects as you wish, without saving and closing the previous created or opened projects. You may work only with one opened or created project simultaneously. If you wish to work with another project, select the project name in the Project list on the main window toolbar. Creates a new project based on a template. The project contains the C++ and Java classes that are most frequently used. The New From Template dialog appears. Opens an existing project. The Open dialog appears. Select a project you wish to open. You may open as many projects as you wish. If you wish to work with another project, just select project name in the Project list on the main window toolbar. Imports an existing project to a previously opened project. This is the recommended command for importing an existing project to the teamwork server. The Open dialog appears. Select the project you wish to import. You may import as many projects as you wish Saves the opened project. To save the current project for the first time, type the name of the project and select the type of the file you wish to save the project. Saves the project giving it a name. Use this command to save the current project for the first time or under a different name, the Save dialog appears. Type the name of the project and select the type of the file you wish to save the project. No Magic, Inc of 428

223 Command Save Project Module Export As Unisys XMI Save As Template Close Project Close All Projects Save Diagram As Image Save All Diagrams As Image Button / Shortcut keys Function Saves only the selected modules of the current project. The Save Project Module dialog appears. Project modules are packages and diagrams. Select project modules you want to save and click the Save button. The Save dialog appears. Type the file name and select the type of the file you wish to save the modules. NOTE Clear the Full Dependency check if you want to save only the selected module without any other dependent elements. Saves the project as Unisys.xml format file. The Save As Template dialog appears. Save the current project as template project. Closes the opened project. If the opened project has unsaved changes, the MagicDraw TM UML displays a message asking whether the changes should be saved or not before the project is closed. Closes all opened projects. If the opened projects have unsaved changes, the MagicDraw TM UML displays a dialog asking whether the changes should be saved before the each project is closed. Saves the opened diagram as image of various formats. The Save Diagram as Image command is used for saving any item or the groups of items selected in the diagram pane in the various image files. The Save dialog appears. Specify the name of the image file, select image file format, and the location where this file is to be placed. Saves all opened diagrams as images of various formats. The Save All Diagrams as Image command is used for saving any item or the groups of items selected in the diagram pane in the various image files. The Save as Image dialog appears. Specify the name of the image file, select the image files format, and the location where this file has to be placed. No Magic, Inc of 428

224 Command Print Active Diagram Print Selected Print Diagrams Print Preview Print Options Project Information Projects Exit Button / Shortcut keys CTRL+P Function Prints an active diagram. The Print Active Diagram command is only available when diagram windows are open within the project. The Print dialog appears. Select the printer, set the options for the printer, specify the number of copies and select the specific pages to be printed. Prints the selected symbols. The Print Selected command is only available when symbols on the diagram pane are selected. The Print dialog appears. Select the printer, set the options for the printer, specify the number of copies and select the specific pages to be printed. Prints diagrams. The Print Diagrams command is only available when projects are opened. The Print Diagrams dialog appears. Fill all required information and click the Print button. The Print dialog appears. Select the printer, set the options for the printer, specify the number of copies and select the specific pages to be printed. Preview the diagram before printing. The Print Preview screen appears. The Print Options dialog appears. The Project Information dialog appears. The Project Information dialog contains information where the project is located, the file size, when it was created and modified for the last time, and the number of diagrams in the project. In the Description tab, type the description of the project or other important information. The list of opened projects. The list shows a specified number of recent project files. Specify the number of files in the Recent Files List Size property in the Environment Options dialog. Exits the application. All opened projects are closed. If the opened projects have unsaved changes, the MagicDraw TM UML displays a message asking whether the changes should be saved before closing the project. No Magic, Inc of 428

225 7.1.2 Edit menu The MagicDraw TM UML allows you to use Edit menu commands while drawing the diagrams on the Diagram pane. The commands allow selecting, cutting, copying, pasting items and entire diagrams, reversing the actions you have taken while drawing, and finding an item in the current project. Command Undo Redo Cut Copy Button/ Shortcut keys CTRL+Z CTRL+Y CTRL+X CTRL+C Function Reverses the last action you have performed while drawing the diagram on the Diagram pane (moving, dragging, resizing, cutting, copying, pasting, deleting, selecting, editing shapes, setting project and shape properties, etc.). Actions are reversed in the order you have performed them. The Undo command reverses actions taken before loading the existing project or creating a new project. By default, the limit of the undo mechanism is 100 steps backwards. To change the limit, choose Environment from the Options menu. The Environment Options dialog appears. Change the Undo List Size property. The Undo command is unavailable until you perform any action after loading the existing project or creating a new project. Each command has an easily recognized name. You will be able to see the command history and undo or redo one action or a group of actions. The main window will have two lists of commands: one for the undo commands, another one for the redo commands. Reverses the action of the Undo command (moving, dragging, resizing, cutting, copying, pasting, deleting, selecting, etc.). The Redo command is unavailable until you use the Undo command. Cuts the selected items or groups of items on the Diagram pane. The cut items are removed from the Diagram pane and placed in the clipboard. Later they can be pasted back to the Diagram pane of the current or other project. The Cut command is unavailable until you select any item or any group of items on the Diagram pane of the current project. Copies the selected items or groups of items on the Diagram pane. The copied items are placed in the clipboard. The copied items can be pasted back to the Diagram pane to the other project. The Copy command is unavailable until you select any item or any group of items on the Diagram pane of the current project. No Magic, Inc of 428

226 Command Paste Paste With New Data Delete Button/ Shortcut keys CTRL+V CTRL+E CTRL+D DELETE Function Pastes the cut or copied items and groups of items from the clipboard to the Diagram pane of the current project. MagicDraw creates shapes for items, or groups of items, in the current project. Use the Paste With New Data command to create new data and shapes in the current project. You may see the data and shapes of the pasted items and diagrams in the Browser window. Pastes the cut and copied items and groups of items from the Clipboard to the Diagram pane of the current project. MagicDraw creates new data and data shapes in the current project. Deletes data together with symbol. It is unavailable until you select any item or group of items in the current project. DELETE key at once deletes the selected symbol without data. Select All CTRL+A Selects all items on the Diagram pane of a particular project. Copy as JPG Copy as WMF CTRL+SHIFT +J CTRL+SHIFT +W Copies the selected model elements as JPG to the system clipboard. If no model elements are selected, copies an active diagram. NOTE Copying as JPG is available only under Windows system. Copies the selected model elements as WMF to the system clipboard. If no model elements are selected, copies an active diagram. NOTE Copying as WMF is available only under Windows system. Paths Path Style - choose the line style for drawing a path. Rectilinear drawing rectilinear lines. Oblique - drawing free form lines. Bezier - in computer graphics, a curve that is calculated mathematically to connect separate points in smooth, free-form curves and surfaces of the type. Change Path Style Switches in series between rectilinear, oblique, and bezier path line style. Shortcut keys CTRL+L. Reset Labels Positions resets the changed path labels (name, roles, etc) to the default position. Remove Break Points removes the break points of the path and makes the path line straight. No Magic, Inc of 428

227 Command Symbol Button/ Shortcut keys Function All commands that are available as symbol s shortcut menu View menu Command Fit In Window Zoom In Zoom Out Zoom 1:1 Zoom To Selection Button / Shortcut keys CTRL+W CTRL+NumL ock PLUS SIGN (+) CTRL+NumL ock MINUS SIGN (-) CTRL+Num Lock SLASH MARK (/) CTRL+NumL ock ASTERICS MARK (*) Function Reduces the size of the whole diagram to fit better in the Diagram pane. Increases the size of the diagram objects in the diagram pane by x percent. To change the zoom step size choose Environment from the Options menu and set the Zoom Step Size property in the Environment Options dialog. Decreases the size of the selected objects in the diagram pane by x percent. To change the zoom step size, choose Environment from the Options menu and set the Zoom Step Size property in the Environment Options dialog. Restores the original size of the selected diagram symbols. Increases the size of the selected model element on the Diagram pane to the maximum visible size. Refresh CTRL+R Repaints all diagram shapes. Grid Show Grid Snap to Grid Grid Size Set grid options. Every diagram may have its own grid settings: Show/hide grid Use/do not use grid Change the grid size. Type the number No Magic, Inc of 428

228 7.1.4 Layout menu Use the commands of the Layout menu for managing the layout of the shapes on the current Diagram pane. You must select at more than one shape for other Layout menu commands. A class diagram should be opened and activated before using the Class Diagram command in this menu. Command Class diagram Make Same Width Make Same Height Align Right Left Top Bottom Center Vertically Horizontally Space evenly Vertically Horizontally Function Lays out class shapes in the class diagram, vertically creating the inheritance tree. Lays out the selected shapes according to their width; after the layout, the width of the shapes is equal (according to the widest). Lays out the selected shapes according the their height; after the layout, height of the shapes is equal (according to the highest). Aligns the selected shapes: Aligns the selected shape(s) vertically, starting with the rightmost shape(s). Aligns the selected shape(s) vertically, starting with the leftmost shape(s). Aligns the selected shape(s) across from the uppermost shape(s). Aligns the selected shape(s) across from the lowermost shape(s). Centers the selected shapes: Centers the selected shape(s) on a vertical line. Centers the selected shape(s) on a horizontal line. Sets spaces among the selected shapes evenly. Spaces between the selected shapes become even on a vertical line. Spaces between the selected shapes become even on a horizontal line Diagrams menu Command Shortcut keys Function Class Diagrams CTRL+1 The Class Diagrams dialog appears. Use Case Diagrams Collaboration Diagrams Sequence Diagrams CTRL+2 CTRL+3 CTRL+4 The Use Case Diagrams dialog appears. The Collaboration Diagrams dialog appears. The Sequence Diagrams dialog appears. State Diagrams CTRL+5 The State Diagrams dialog appears No Magic, Inc of 428

229 Command Shortcut keys Function Activity Diagrams CTRL+6 The Activity Diagrams dialog appears. Implementation Diagrams Previous Diagram Next Diagram CTRL+7 CTRL+0 The Implementation Diagrams dialog appears. Activates the previously opened diagram. Activates the next diagram. CTRL Options menu Command Project Environment Toolbars: Diagrams Symbol Editing Edit File Path Editing Projects Status Bar Teamwork Undo/Redo View Save Configuration on Exit Save Configuration Save Configuration As Look and Feel Function The Project Options dialog appears. The Environment Options dialog appears. Clear the check es of the toolbars you want to hide. Changes MagicDraw graphic user interface style. Styles: Mac, Metal, Motif or Windows. The Look and Feel Themes command allows you to personalize graphic user interface: set your favorite colors and fonts. No Magic, Inc of 428

230 Command Interface Style Function Multiple Windows or Single Window interface style. For more details about dialog es, see Section 7.3, Dialog Boxes Tools menu Command New Class Diagram Wizard Package Dependency Diagram Wizard Stereotypes Shortcut key Function Creates a new class diagram for the existing project data, using the Class Diagram Wizard. Creates a new class diagram with the existing project data, using the Package Dependency Diagram Wizard. Operations with stereotypes. Edit Export Import The Edit Stereotypes dialog appears. You may review, edit, add new stereotypes, or delete them. The Save dialog appears. It allows you to save project stereotypes in the *.str file format. The Open dialog appears. It allows you to import (open) already created *.str files. You may reuse previously created stereotypes for another project. Tag Definitions Edit Export Import Edit Constraints The Edit Tag Definitions dialog appears. You may review, edit, add new tag definitions, or delete them. The Save dialog appears. It allows you to save project tag definitions. The Open dialog appears. It allows you to import (open) already created tag definitions. You may reuse previously created tag definitions for another project. The Edit Constraints dialog appears. You may review, edit, add new constraints, or delete them. No Magic, Inc of 428

231 Command Report Code Engineering Sets Shortcut key Function Reports diagram information. The Report Wizard appears. Set options for generating the report for either all, or selected model elements of the project. The report is generated in the HTML format file. Every report has the following main parts: Report title. Table of contents, which contains links to the description of model elements and their details (name, details, documentation.) Report body, which lists the details of model elements. Dictionary For more details see Section 6.3, Report The Code Engineering Sets dialog appears (For more details see Section 5, Code Engineering ). Quick Reverse CTRL+Q Choose the language you need (Java, Java Bytecode, C++, IDL, DDL, or CIL.) The Round Trip Set dialog appears. (For more details see Section 5, Code Engineering ). Retrieve DB Structure Generate Framework CTRL+G The Retrieve DB Info dialog appears. Generates code for the selected items in the current diagram. The Message Window (see Figure Messages Window) with the information appears (For more details see Section 5, Code Engineering ). Check Syntax CTRL+T Checks syntax in the model according to the default code engineering language. The Message Window (see Figure Messages Window) with the information appears. (For more details see Section 5, Code Engineering ). Select Pattern The Pattern Wizard dialog appears. Create the design pattern for the selected class, interface. No Magic, Inc of 428

232 Command CVS Command Line Shortcut key Function Perform operations with CVS (the detailed description about integration with CVS, see MagicDraw Integrations User s Guide) Allows to enter a cvs command line (like "checkout -c") when ever the cvs command is not avalaible through the menus. The Command Line dialog appears. Checkout Module Add Commit Update Figure Command Line dialog Use this option to checkout from scratch a new module on your disk. The Checkout Module dialog appears. Adds a new project to CVS. The Add Project to CVS dialog appears. NOTE: You can add, update or commit projects to CVS only if they are saved in some checked out directory or subdirectory. Commits a project to CVS. The Commit Project to CVS dialog. Updates the current project by loading the latest project version from CVS. For more details about dialog es, see Section 7.3, Dialog Boxes Window menu You may use commands of the Window menu to manage the layout of the windows. Command Shortcut key Function Browser CTRL+B Opens the Browser window. For more details see Section 2.5, Browser. Message Window CTRL+M The Message Window (see Figure Messages Window) appears. The Message Window is used for displaying the warnings and errors that may appear in the project. It appears automatically and is intended to display the warnings and errors after saving, loading, exporting and importing the project. No Magic, Inc of 428

233 Command Shortcut key Function Cascade Tile Close Al Diagrams But Current Close All Diagrams Arranges windows in cascade formation. Arranges windows in tile formation. Closes all opened diagrams except the on you currently use. Closes all opened diagrams. The Window menu contains the list of the opened windows in the project. The list shows the specified number of the recent diagrams. This number can be customized in the Recent windows list size property in the Environment Options dialog Help menu Command Contents Tip of the Day System Information Submit a Bug License Key About Magic Draw UML on the Web Online Support MagicDraw TM UML Home Page UML Stuff No Magic Home Page Function Displays a table of contents of the MagicDraw Help. Displays the Tip of the Day screen. Displays the System information screen, used by MagicDraw tool. MagicDraw team always welcomes your initiative. Submit bugs and new features in the Submit a Bug dialog. Change the license key in the License Key dialog. Displays the MagicDraw screen about the MagicDraw tool. The WWW pages where you may find additional information about UML. Get online support. Entertainment with UML Memory game. Open pictures to find pairs with as few tries as possible. Puzzle game Transpose the separate parts to get the whole picture. No Magic, Inc of 428

234 7.2 Toolbars In MagicDraw TM, you may hide different toolbar parts: right-click the toolbar and select/clear toolbar parts check es you want to be displayed/hidden. You may also save your own toolbar configuration and set it as a default one Main toolbar NOTE To scroll diagram items in the toolbar, select the scrollable toolbar buttons on the diagram toolbar. Using these buttons, you may scroll down or up through the toolbar in order to select the item of the diagram. Speed up your work using the Main Toolbar buttons: Toolbar button Name New Project Open Project Save Project Cut Copy Paste Delete Undo action Redo action To undo or redo a number of actions at once, select them from the undo or redo list. Click the drop down arrow near the Undo or Redo button to open the list. Print Active Diagram Print Preview Fit in Window Zoom In Zoom Out No Magic, Inc of 428

235 Toolbar button Name Fill Color Pen Color Text Color Text Font Text Size Set Selected Symbol Style as Default Remove Break Points Rectilinear Oblique Bezier Reset Labelt Positions Draw Class Diagram Draw Use case Diagram No Magic, Inc of 428

236 Toolbar button Name Draw Collaboration Diagram Draw Sequence Diagram Draw State Diagram Draw Activity Diagram Draw Implementation Diagram ToolTips Style button click and select the kind of tool tips you wish to be displayed on symbols on the diagram pane: Do not show do not show tips. Object name show symbol s name. Object Documentation show documentation associated with the desired symbol. NOTE To see tool tips, Drag the cursor on the desired symbol on the diagram. The Main Toolbar contains the text displaying tool tips for the selected item. Next diagram Previous diagram The Main Toolbar contains a Projects list with all opened and created project names. As MagicDraw TM UML supports multiple projects, you may open and create as many projects as you wish. However, you can only work with one project at a time. If you wish to work with another opened or created project, select it in the Projects list Class diagram toolbar The Class Diagram toolbar has the following tools for drawing class diagrams: Toolbar button Icon in Browser Name Sticky button Selection Text Box No Magic, Inc of 428

237 Toolbar button Icon in Browser Name Note Anchor to Note Constraint Class Enumeration Interface Package Subsystem Model Realization Realization Dependency Abstraction Usage Binding Dependency Permission Generalization Association Aggregation Composition No Magic, Inc of 428

238 Toolbar button Icon in Browser Name Containment Link Attribute N-ary Association Collaboration Object Link Separator Use Case diagram toolbar The Use Case diagram toolbar has all general tools for drawing Use Case diagrams: Toolbar button Icon in Browser Name Sticky button Selection Text Box Note Anchor to Note Constraint Actor Use Case Package Subsystem No Magic, Inc of 428

239 Toolbar button Icon in Browser Name System boundary Include Extend Association Generalization Dependency Realization Collaboration Separator Collaboration diagram toolbar The Collaboration diagram toolbar has all general tools for drawing Collaboration diagrams: Toolbar button Icon in Browser Name Sticky button Selection Text Box Note Anchor to Note Constraint Object No Magic, Inc of 428

240 Toolbar button Icon in Browser Name Instance Use case instance Subsystem instance Link Link to Self Classifier Role Association role Message/Stimulus to Right Message/Stimulus to Left Separator Sequence diagram toolbar The Sequence Diagram toolbar has all general tools for drawing Sequence diagrams: Toolbar button Icon in Browser Name Sticky button Move dependent messages Selection Text Note Anchor to note Constraint No Magic, Inc of 428

241 Toolbar button Icon in Browser Name Classifier role Message: synchronous uninterpreted Message to self: synchronous uninterpreted Diagonal message: synchronous uninterpreted Concurrent lifeline Recursive message: synchronous uninterpreted Separator State diagram toolbar The State Diagram Window toolbar has all general tools used in drawing the state diagrams: Toolbar button Icon in Browser Name Sticky button Selection Text Box Note Anchor to Note Constraint State Concurrent State Submachine State Action State Call state No Magic, Inc of 428

242 Toolbar button Icon in Browser Name Initial State Final State Synch State History Sate Junction Point Dynamic Choice Point Stub State Horizontal Synchronization Bar Vertical Synchronization Bar Transition Transition to Self Separator Activity diagram toolbar The Activity Diagram Window toolbar has all general tools used in drawing the state diagrams: Toolbar button Icon in Browser Name Sticky button Selection Text Box Note Anchor to Note Constraint No Magic, Inc of 428

243 Toolbar button Icon in Browser Name Action State State Call state Concurrent state Submachine state Subactivity State Initial State Final State Transition Horizontal synchronization Bar Vertical synchronization Bar Decision Point Signal Receipt Signal Sender Swimlane Object Flow State Separator No Magic, Inc of 428

244 7.2.8 Implementation diagram toolbar The Implementation Diagram Window toolbar has all general tools used for drawing an implementation diagram: Toolbar button Icon in Browser Name Sticky button Selection Text Box Note Anchor to Note Constraint Component Component Instance Node Node Instance Package Association Interface Class Artifact Instance Realize Realization No Magic, Inc of 428

245 Toolbar button Icon in Browser Name Dependency Separator No Magic, Inc of 428

246 7.3 Dialog Boxes Assign Main Diagram dialog The Assign Main Diagram dialog allows you to link a model element (such as a use case or package) to the diagram that represents the details of the selected model element. The Assign Main Diagram dialog contains the list of already created diagrams. One of listed diagrams is the main diagram (selected diagram). To open the Assign Main Diagram dialog Choose the Main Diagram from the model element shortcut menu, and then choose the Assign Main Diagram. Figure Assign Main Diagram dialog To open the main model element diagram Choose Main diagram from the model element shortcut menu, and then choose Open main diagram from the model element shortcut menu. Buttons that are available in the Assign Main Diagram dialog : No Magic, Inc of 428

247 Button New Assign Unassign Close Help Function Make a new diagram as the main. The list of diagram types appears. Choose the desired diagram type. The Diagram Name dialog appears. Type the diagram name and click OK Assign the selected diagram as the main one. The diagram is automatically opened after double-clicking the shape. Unassign the already assigned diagram. Exits the dialog. Displays MagicDraw TM UML Help Change Collaboration Numbering To open the Change Collaboration Numbering dialog Right-click the collaboration diagram and choose the Change Numbering command from the shortcut menu. Figure Change Collaboration Numbering dialog Box name Type Function Number Column The number of the stimulus/message. Type Column Displays the type stimulus or message for which the numbering is being edited. No Magic, Inc of 428

248 Box name Type Function Name Column The type, name of the action of the corresponding stimulus/message. Edit Button The Type Number dialog appears. Type the number of the stimulus/message. Increase Button Increases the selected number in one point. Decrease Button Decreases the selected number in one point. OK Button Saves changes and exits the dialog Cancel Button Exits the dialog without saving changes Help Button Displays the MagicDraw Help. No Magic, Inc of 428

249 7.3.3 Code Engineering Sets dialog To open the Code Engineering Sets dialog 1. In the Browser tree, select the Code engineering sets item. 2. Right-click the item, and then choose Sets from the shortcut menu. Choose Code Engineering Sets from the Tools menu. Figure Code Engineering Sets dialog The Code Engineering Sets dialog contains the list of all sets created in the project and instruments for managing those sets. Buttons that are available in the Code Engineering Sets dialog : Button New Edit Properties Rename Delete Function Adds a new set. The New Set dialog appears. Enter the name of a set in the Name field and select the programming language (possible choices include: Java, C++, IDL, JavaBytecode) in the Language drop-down list. The Round Trip Set dialog appears. Edit the set. The CG Properties Editor dialog appears. The detailed description of the CG Properties dialog, see Section 5.5, Files of Properties. The Name of Set dialog appears. Type a new name for the code engineering set. Deletes the selected set. No Magic, Inc of 428

250 Button Reverse Generate Check Syntax Refresh Function Reverses the selected set. The Reverse Options dialog appears. Edit options and click OK. Generates code for the selected set. The Code Generation Options dialog appears. The Message Window appears. Check the syntax of the generated code. The Refresh button is activated when the file is modified not in the MagicDraw TM The Reverse Options dialog appears Color dialog The Color dialog allows you to specify the shape s colors. To open the Color dialog Click the... button near the Color field in the Properties dialog, or when specifying the environment options. The Color dialog appears. The following tabs are available in the Color dialog : Swatches tab - select color from the color table. Click the desired color rectangle to set it. The history of previous settings is shown in the Recent list. Figure Color dialog. Swatches tab HSB tab - set color by using HSB (Hue, Saturation, and Brightness) color model. No Magic, Inc of 428

251 Figure Color dialog. HSB tab Hue (H) is the color reflected from or transmitted through an object. It is expressed as a degree between 0 and 360. Generally, hue is identified by the name of the color. For example, red, orange, or green. Saturation (S) is the strength or purity of the color. Saturation represents the amount of gray in proportion to the hue, measured as a percentage from 0% (gray) to 100% (fully saturated). Brightness (B) is the lightness or darkness of the color, usually measured as a percentage from 0% (black) to 100% (white). By default, you may set hue using vertical slider; set saturation and brightness by pointing on the location in the rectangle. To use a slider to set saturation or brightness, click the desired option button (H, S, and B). RGB tab - set color by using RGB (Red, Green, and Blue) color model. These three colors are mixed to create different colors. The color White is created by mixing all colors together. No Magic, Inc of 428

252 Figure Color dialog. RGB tab All three colors may have value from 0 to 255. You may set this value by using Red, Green, and Blue sliders or by typing directly in the text es. Each tab allows you to set color by using a different color model. See current color setting in the Preview area. The following buttons are available in the Color dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Compartment Edit dialog In the Compartment Edit dialog, control the list of attributes, operations, actions, extension points, constraints, or tagged values that are visible on the corresponding symbols. Control the list of: Attributes in class, actor, interface, state, submachine state, concurrent state, and instance shapes. Operations in class, interface, and actor shapes. Actions in state, submachine state, concurrent state, subactivity state and action state shapes. Extension points in use case shapes. Inner Elements in package, model, subsystem shapes. Constraints for all model elements. Tagged Values for all model elements. No Magic, Inc of 428

253 To open the Compartment Edit dialog Choose the Edit Compartment command from the model element symbol shortcut menu. Figure Compartment edit dialog Each Compartment Edit dialog tab has two lists and the following buttons. Element name Element type Function All List Contains all available items. They are not visible on the diagram. Select List Contains the selected items that are visible on the diagram. > Button Adds the selected item from the All to the Selected list. This item becomes visible. < Button Removes the selected item from the Selected items list. This item becomes invisible. >> Button Adds all items to the Selected list. << Button Removes all items from the Selected list. OK Button Saves changes and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw Help Diagrams dialog To open the corresponding Diagrams dialog From the Diagrams menu, choose one of the diagrams. Depending on the type of the diagram, the opened dialog has a corresponding title (for example, the Class Diagrams dialog. See below). You may perform basic actions with the diagram in the Diagrams dialog. After double-clicking on the selected diagram, the dialog closes up and the selected diagram is opened. No Magic, Inc of 428

254 Figure Diagrams dialog The Diagrams dialog contains the following elements. Element name Element type Function Name List The names of all created corresponding diagrams in the opened project. Owner List The name of the package that owns the diagram. Rename Button Renames the selected diagram. The Diagram Name dialog appears. Type the diagram name and click OK. Add Button Creates a new diagram. The Diagram Name dialog appears. Type the diagram name and click OK. Remove Button Deletes the selected diagram. Open Button Opens the selected diagram. OK Button Saves all actions performed during the session and exits the dialog. Cancel Button Cancels all actions performed during the session and exits the dialog. Help Button Displays the MagicDraw UML Help Edit Constraints dialog A constraint is a semantic relationship among model elements that specifies conditions and propositions that must be maintained as true; otherwise, the system described by the model is invalid (with consequences that are outside the scope of UML). A user-defined constraint is described in words in a given language, whose syntax and interpretation is a tool responsibility. A constraint represents semantic information attached to a model element, not just to a view of it. In the Edit Constraints dialog, define common constraints for your project. Later you may attach them to the particular model element. No Magic, Inc of 428

255 To open the Edit Constraints dialog Choose from the Tools menu, then Edit Constraints. Click the "..." button in the Constraints tab. Figure 100 Edit Constraints dialog The Edit Constraints dialog contains the following elements. Element name Element type Function For List Contains the names of model elements to which defined constraints apply. NOTE: If you open the Edit Constraints dialog from the model element Specification dialog, the dialog contains only constraints of the corresponding model element. Available List Contains constraints that apply to the selected model element. Edit Button Edit the selected constraints in the Constraint Specification dialog. Add Button The Constraint Specification dialog appears. Add a new constraint to the selected model element. Remove Button Deletes the selected constraint. No Magic, Inc of 428

256 Element name Element type Function OK Button Attaches the selected constraint to the particular element and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw TM UML Help Diagram Properties dialog Customize the diagram style (color, grid) in the diagram Properties dialog. To open the diagram Properties dialog Choose Edit diagram from the diagram shortcut menu. The Properties dialog appears. Figure Diagram Properties dialog The diagram Properties dialog contains the following elements. Element name Element type Function Snap Paths to Check Uses grid on diagram for drawing paths. Grid Snap Shapes to Check Uses grid on diagram for drawing shapes. Grid Show Grid Check Shows grid on the Diagram pane. Grid Size Text Set grid size from 2 to 30. Background Color Button Set diagram s background color. Click the... button. The Color dialog appears. Set color in the three difference ways: using Swatches, HSB or RGB tabs. No Magic, Inc of 428

257 Element name Element type Function Styles Drop-down Select the predefined style. list Make Default Check Make the specified style as default. OK Button Saves changes and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw Help Edit Stereotypes dialog To open the Edit Stereotypes dialog From the Tools menu, choose Stereotypes and then Edit. The Edit stereotypes dialog appears. You may define you own stereotypes and edit them Figure Edit stereotypes dialog The Edit Stereotypes dialog contains the following elements. No Magic, Inc of 428

258 Element name Element type Function For List Contains the names of model elements to which stereotypes apply (base classes.) NOTE If you open the Edit Stereotype dialog from the model element Specification dialog, the dialog contains only stereotypes of the corresponding model element. Available List Contains stereotypes that apply to the selected model element. Edit Button Edit the selected stereotype in the Stereotype Specification dialog. Add Button The Stereotype Specification dialog appears. Add a new stereotype to the selected model element. Remove Button Deletes the selected stereotype. NOTE If you remove the predefined stereotype, that removed stereotype will be automatically imported after loading project for the next time. OK Button Saves all actions performed during the session and exits the dialog. Cancel Button Cancels all actions performed during the session and exits the dialog. Help Button Displays the MagicDraw Help. No Magic, Inc of 428

259 Edit Tag Definitions dialog To open the Edit Tag Definitions dialog Choose from the Tools menu, then Edit Tag Definition. Click the "..." button in the Tagged Values tab. Figure Edit Tag Definitions dialog Element name Element type Function For List Contains the names of model elements to which defined tag definitions apply. Available List Contains tag definitions that apply to the selected model element. Edit Button Edit the selected tag definitions in the Tag Definition Specification dialog. Add Button The Tag Definition Specification dialog appears. Add a new tag definition to the selected model element. No Magic, Inc of 428

260 Element name Element type Function Remove Button Deletes the selected tag definition. OK Button Attaches the selected tag definition to the particular element and exits the dialog Editor Properties dialog The Editor Properties dialog is used for selecting a tool for editing text. To open the Editor Properties dialog Choose the Editor Properties command from the selected set shortcut menu. Figure Editor Properties dialog Element name Element type Function Text Editor Text Type the path to the text editor. Button The Select Text Editor dialog appears. Choose the desired text editor. Arguments Text Type values that are passed to the text editor. Arguments: $f - file $r - row $c - column OK Button Saves changes and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw Help. No Magic, Inc of 428

261 Environment Options dialog MagicDraw Environment Options dialog allows you to change the application settings. You may customize MagicDraw to your own preference. To open the Environment Options dialog Choose Environment from the Options menu. General pane Figure Environment options dialog. General pane No Magic, Inc of 428

262 Change the appropriate fields according to your preferences. If the check is selected, the description False changes into True. Element name Element type Function Language Create Backup File Save Settings on Exit Show Tip of the Day Recent Files List Size Recent Windows List Size Dropdown list Check Check Check Text Text Choose the language you wish the MagicDraw GUI to be displayed: Default according to your application. It is set by default. English Korean German Thai Spanish Japanese NOTE Restart MagicDraw to apply the changed language. Back up files of your projects will be created. Backups are saved with name pattern old_name.xml.bak or old_name.xml.zip.bak. The changed settings within current MagicDraw session will be restored in the later sessions. Shows the Tips of the Day dialog every time you start the tool. Type the number of the projects to appear on the File menu. Click the file name to open it. The maximum files list size is 10. The file name list shows files that were used in MagicDraw TM UML. Type the number of recently used windows that are listed in the Window` menu. Click the window name to make it active. The maximum windows list size is 10. Undo List Size Text Type the number of actions that will be available for undo / redo operations. They will be listed in undo / redo drop down lists on the main toolbar. The maximum undo / redo list size is 500. Show Font Face in Font List Display Warning about Possible Data Loss Open Last Project on Startup Save Diagram Background in Image Check Check Check Check Font names that are listed in the Font drop-down list on the main toolbar will be displayed in the original font. Notification about possible data loss when exporting to Rational Rose will be displayed. The project you have finished the last session will be opened next time you start MagicDraw TM UML. Saves the diagram background in the image together with the saved as image diagram. By default the diagram background, after saving as image, is white. HTML Viewer Text Type in the path to the HTML file browser or select that path in the Open dialog, which can be opened by clicking the button No Magic, Inc of 428

263 Element name Icon Size Sort Properties WMF Character Set Use List for Type Select Use Icons in Dialogs Element type Drop down Check Dropdown list Check Check Function Select the size of the icons on the toolbar. The possible choices of icon sizes are 32 and 24. Alphabetically sorts symbols properties in the symbols Properties dialog. Choose the encoding standard for the characters that will be copied to WMF. If selected, displays the list of available classifiers, if not selected, the hierarchy of all model elements is displayed in a drop-down list for selecting a type. Icons on the buttons in dialogs are shown. For example: Figure Example of icons in dialog es Diagrams Load Dropdown list Choose how to load diagrams after opening MagicDraw project. Mode Load all Diagrams opens all diagrams that are created in the project. Load Only Opened Diagrams opens only diagrams that were not closed in earlier usages of the project. Do not Load Diagrams all diagrams are closed after opening a project. Reset to Default Button Resets all properties to the default ones. OK Button Saves changes and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw Help. No Magic, Inc of 428

264 Diagram pane Figure 107 Environment Options dialog. Diagram pane Element name Element type Function Allow Class Members Selection Check Operations and attributes can be selected and dragged & dropped to the other class. Zoom Step Size Text Type in the step value of zooming your diagram views. Step value should be in range from 0.1 to 1.0. Grid Style Dropdown list Select on of the following style of the grid: Show Manipulation Highlighting Use Resizable Editors Check Check Dense Sparse Enable error highlighting of the modeling process. This helps you to see the errors in the model at the drawing time. The valid and invalid actions will be highlighted in different colors (defaults are red for invalid actions, blue for valid actions). The full text is shown while typing it on the symbols. No Magic, Inc of 428

265 Element name Element type Function Text Antialiasing Graphics Antialiasing Check Check Smoothes the jagged edges of text. Smoothes the jagged edges of graphics. Reset to Default Button Resets all properties to the default ones. OK Button Saves changes and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw TM UML Help. Browser pane Figure Environment Options dialog. Browser part Element name Browser Position Show Code Engineering Sets Element type Dropdown list Check Function In the drop-down list, select the Left if you wish the browser to appear in the left side of the workspace. Select the Right if you wish the browser to appear on the right side of the workspace. Shows code engineering sets items in the browser. No Magic, Inc of 428

266 Element name Element type Function Group Diagrams in Diagrams Tree Show Full Types in Browser Sort Always Check Check Check Groups diagrams according diagram type in the Diagrams tree. Shows the full attributes, operations, and relationships data. Always alphabetically sort browser items. Reset to Default Button Resets all properties to the default ones. OK Button Saves changes and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw Help. Teamwork Pane Figure Environment Options dialog. Teamwork pane Element name Auto Login to Server Element type Check Function The user automatically logs on to the Teamwork Server after starting MagicDraw. No Magic, Inc of 428

267 Element name Teamwork Server Name Show Commit Warning Element type Text Check Function Shows the name of your teamwork server. The warning appears (see the picture below) while committing project to the Teamwork Server. Commit Whole Project Check Commits the whole project, including not modified elements to the Teamwork Server. Reset to Default Button Resets all properties to the default ones. OK Button Saves changes and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw Help. No Magic, Inc of 428

268 CVS Pane Element name Element type Function Add Project to CVS After Saving Commit Project to CVS After Saving Update Project from CVS Before Loading Location of the.cvspass Check Check Check Text Every time adds a newly created project in the checked out directory to CVS. The Add Project to CVS dialog appears. Updates the project that is added to CVS while loading. The Update CVS Project dialog appears. Commits project to CVS after saving it. The Commit Project to CVS dialog appears. The path where the.cvspass is located. You may type it or choose the path from the Open dialog. Local Folder Text The path where the module will be saved on checkout action. You may type it or choose the path from the Open dialog. Reset to Default Button Reset all options to default position. OK Button Saves changes and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw Help. No Magic, Inc of 428

269 Keyboard pane Figure Environment Options dialog. Keyboard part Element name Element type Function Category Dropdown list The list of all available categories of the keys (File, Edit, Tools, etc). The default item in this choice is always All Categories Selecting the category opens its context in the Commands list. Commands List The list of commands from the selected category. If All Categories is selected in the Categories list, all commands of an application are shown in this list. Commands are alphabetically sorted. The selecting of the command shows already assigned shortcut keys in the Current keys list. Current Keys Text The list of keys assigned to the selected command. Press New Shortcut Key Text The field for entering the new key. Puts a human representation of any key pressed in the field. If the pressed key is already assigned to other command, the Currently Assigned To label with this command name appears. No Magic, Inc of 428

270 Element name Element type Function Currently Assigned To Label Shows the name of the command of the entered new key if this key is already assigned to some command. By default is hidden. This label is visible just if entered key is already assigned to some command. Assign Button Assigns the entered key to the selected command. The entered key is added to the Current Keys list. Remove Button Removes the selected keys from the selected command. Remove All Button Removes all keys from the selected command. Reset to Default Button Resets all properties to the default ones. OK Button Saves changes and exits the dialog. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw Help Find Item dialog The Find Item dialog serves for finding any kind of item by name in the current project. To open the Find Item dialog From the Edit menu, choose Find or press shortcut keys CTRL+F. Figure Find Item dialog You may define wildcards <*> and <?> for the search in the Find Item dialog. For example, if you define the following input string <a*b>, the system looks for items with <a> at the beginning and <b> at the end of the string. If you define such string as <?agicdraw>, all strings containing <agicdraw> will be found. No Magic, Inc of 428

271 Element name Element type Function Item to Find List Type the name of the item you wish to find. Type Found Items Dropdown list Group Select a type of elements from the proposed items, or leave this field empty. Displays all items that match the string (the item name entered in the Item to Find field). The found items list field has the two columns: Name Column The name of the item that matches the string entered in the Item to Find field. Type Column The type of diagram/package to which the found item belongs. Search in Option Searches for an item among the shapes of the current project. Symbols button Search in Data Option Searches for the item among the data of the current project. button Case Sensitive Check Searches for the groups of items that have the names and capitalization exactly as defined in the string entered in the Item to Find. When unselected, MagicDraw TM UML does not distinguish between uppercase and lowercase characters of the item name entered in the Item to Find field while searching for the item. Match Whole Words Only Check Searches for the groups of items with names that exactly match the string entered in the Item to Find field. When unselected, the MagicDraw searches for the groups of items with the names matching the first parts of the string entered in the Item to Find field. Find Button Searches for items and displays the results of the search in the found items list field. If MagicDraw does not find any item, the message is displayed. Edit Symbol Button Displays the Properties dialog. You may change settings for shape properties, such as font, stereotype font and color. Close Button Closes the Find Item dialog. Help Button Displays MagicDraw Help Font dialog To open the Font dialog In the Properties dialog es, click the Font or Stereotype Font button. The Font dialog allows you to set text font for shapes and stereotypes. No Magic, Inc of 428

272 Figure Font dialog Element name Element type Function Name List The font name. Style List The font style. Size List The font size. Example Displays an example of the selected font. OK Button Saves changes and exits the dialog. Cancel Button Exits dialog without saving changes. Help Button Displays MagicDraw TM UML Help Insert Hyperlink dialog To open the Insert Hyperlink dialog 1. Create a text or a note on a diagram pane. Type the text you need. 2. Set the note/text text as HTML: choose HTML Text from the note/text shortcut menu. 3. Select the text. The HTML editor toolbar appears. 4. Select the text where you want to add hyperlink and click the Insert Hyperlink button. No Magic, Inc of 428

273 Figure Insert Hyperlink dialog Tab name Box Type Function ELEMENT/ SYMBOL Text to display Select Element / Symbol Text Button A text that will be displayed as a hyperlink. The Select Model Element dialog appears. Select the model element you want to link to. Creates a hyperlink that goes to the Select from list List A list of items that have ever been selected as a link. selected model element. Clear Button Removes all items from the Select from list list. WEB PAGE Creates a hyperlink that goes to the specified Web page. Text to display Select Web Page Text Text / Button A text that will be displayed as a hyperlink. Type the web page URL. Click the button. The Web browser window appears. Browse the web and find the web page you want to link to. NOTE Make sure that the path of a HTML viewer is set in the Environment Options dialog. Select from list List A list of items that have ever been selected as a link. No Magic, Inc of 428

274 Tab name Box Type Function Clear Button Removes all items from the Select from list list. FILE Creates a hyperlink that goes to the specified file. Text to display Select Element / Symbol Text Button A text that will be displayed as a hyperlink. The Open dialog appears. Select the file you want to link to. Select from list List A list of items that have ever been selected as a link. Clear Button Removes all items from the Select from list list. Buttons available in the Insert Hyperlink dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Java Documentation Properties dialog To open the Java Documentation Properties dialog Click the Java Documentation Properties button in the Project Options dialog, Java Language Options and IDL Language Options pane. Figure Java Documentation Properties dialog No Magic, Inc of 428

275 Box Name Type Function Tag Name Column Type a tag name. Value Column Type the value of the tag. Generate Check The selected tag will be placed in the generated code as a comment before classifier (class or interface), operation or attribute. Up Button Moves the selected item up the list. Down Button Moves the selected item down the list. Add Button Adds a new item in the list. Remove Button Removes the selected item from the list. OK Button Saves changes and closes the dialog. Cancel Button Closes the dialog without saving changes. Help Button Displays MagicDraw Help License Key dialog The License Key dialog appears when you open the downloaded MagicDraw TM UML for the first time. You may change license key to the other one in the License Key dialog. You have to restart MagicDraw TM UML to connect with the other license key. To open the License Key dialog Choose License Key command from the Help menu. Figure License Key dialog Element name Element type Function User Name Text Type the user name that you get by after downloading MagicDraw. License Key Text Enter license key that you get by after downloading MagicDraw. OK Button Saves changes and exits the dialog. Cancel Button Exits dialog without saving changes. No Magic, Inc of 428

276 Element name Element type Function Help Button Displays MagicDraw Help only when you want to enter other license key New From Template dialog The New From Template command is used for creating a new project from the selected template file. To open the New From Template dialog Choose New From Template command from the File menu. Figure New from Template dialog C++, CIL, Java, DDL, EJB, RUP extensions, and UMLWebExtension templates are available in the New From Template dialog, Select Template group. Template Description Descriptions of templates are displayed. To create a new project from a template To create a template file Select any template from the Select Template list and click OK. 1. Create any project and save it to the Templates folder. 2. Write a template description, save it in the Templates directory as * html file with the same name as the saved template file The No Magic, Inc of 428

277 *.html file with the same name as the saved template file. The description file is not required for creating a template Pattern Wizard To open the Pattern Wizard Choose Tools from the class shortcut menu and then choose the Select Pattern subcommand. Select a class and choose Select Pattern from the Tools mail menu. Figure Pattern Wizard The Pattern Wizard has two main collections of customizable options, which are represented by hierarchy tree on the left side of the dialog : Category Gof Templates described in the Design Patterns of R bl Obj t Design Pattern Adapter Properties Interface class Adapter class Adaptee class No Magic, Inc of 428

278 Category Reusable Object- Oriented Software Java Specific Java design patterns Design Pattern Composite Decorator Observer Proxy Singleton Visitor Main EJB Java RMI Properties Component class Composite class Component class Decorator class Concrete decorator class Subject class Observer class Concrete subject class Concrete observer class Subject class Proxy class Real subject class Singleton class Visitor class Implementation style: visit (MyClass), visitmyclass (MyClass) NOTE The Next > button is activated. In the Elements to Visit screen, select classes and interfaces you want to visit. Main class Bean type: Session beans, Entity beans EJB class Home interface Primary Key Remote interface Use EJB-UML Notation NOTE The Next > button is activated. In the Remote Methods screen, add or remove operations you want to use. Java RMI class Remote interface NOTE The Next > button is activated. In the Remote Methods screen, add or remove operations you want to use. < Back Button Go back to the Pattern screen. Next > Button Go to the Remote Models or Elements to Visit screen. Finish Button Finishes and implements the wizard. The appropriated classes and interfaces are created Cancel Button Cancels the wizard without implementing your actions. No Magic, Inc of 428

279 Category Design Pattern Properties Help Button The MagicDraw TM UML Help is displayed Print Diagrams dialog To open the Print Diagrams dialog From the File menu, choose Print Diagrams. The Print Diagrams dialog contains three tabs: General tab select diagrams you wish to print. Print Options tab - set print options for the whole project. For detailed description see Section , Print Options dialog Print Header/Footer tab - set printed header and footer options. For detailed description see Section , Print Options dialog Figure Print diagram dialog No Magic, Inc of 428

280 Element name Element type Function Not empty diagrams List Shows available diagrams in the project. To select the diagram for printing, click the name of the diagram in the list. The selected diagrams are highlighted. Press CTRL or SHIFT to select more than one diagram. Select All Button Selects all the diagrams in the list for printing. Print Button Prints the selected diagram(s). Close Button Closes the dialog. Help Button Displays MagicDraw TM UML Help. No Magic, Inc of 428

281 Print Options dialog To open the Print Options dialog Choose the Print Options command from the File menu. The Print Options dialog contains the Print Options tab and the Print Header Footer tab. See the description in the following sections. Print Options Tab Click the Print Options tab to customize the printing jobs. Figure Print Options dialog. Print tab Element name Print Background Element type Check Function Prints the background color of your diagrams. No Magic, Inc of 428

282 Element name Element type Function Show Pages on Diagram Fit in Page Zoom Pages Check Check Dropdown list Shows the page boundary on the diagram pane. NOTE You will not see any boundary if the Fit in Page check is selected. The printed diagram fits in one page. If the Fit in Page check is cleared, and the Show Pages in Diagram check is selected, the gridlines of pages are shown on the diagram pane. Zoom the selected diagram to the size you want to print it. NOTE You are not allowed to zoom a diagram if the Fit in Page check is selected. Page Settings Button The standard, according to your application, Page Setup dialog appears. Print Test Page Button Print the test page. Set print options in the Print Options dialog. Preview Preview your diagram s appearance before printing. < Button Preview the previous page. > Button Preview the next page. No Magic, Inc of 428

283 Print Header/Footer Tab Click the Print Header/Footer tab to customize header and footer of the printed pages. Figure 120 Print Options dialog. Print Header/Footer tab Use any text and combine it with these variables - indication how to insert some fields in the header/footer. Customize header check - prints header. Select the Print header check and type the text you wish printed. Customize footer - prints header. Select the Print footer check and type or change the text you wish to be printed. By default MagicDraw TM UML, <$PageNumber$> <$FileName$> <$DiagramName$> <$Date$> <$Time$> is printed Project Options dialog Change some of the default project options and Code Engineering tasks performed by changing project options. To open the Project From the Options menu, choose Project. The Project Options No Magic, Inc of 428

284 Options dialog dialog appears. The Project Options dialog has two main collections of customizable options, which are represented by hierarchy tree on the left side of the dialog : Styles Tree Expands the tree hierarchy of all the styles defined within the project. You may use as many of these styles as you wish. Figure Project Options dialog. Styles section Button name Clone Rename Delete Function Clone (duplicate) the selected style. Change the name of all existing style Type a new name for a style in the Rename Style dialog. Remove the selected style. No Magic, Inc of 428

285 Button name Make Default Apply Import Export Reset to Defaults Function Make the selected style as your default style for the newly created projects. Apply the selected style to the opened project. The Open dialog appears. Select the style you wish to import (*.stl). The Save dialog appears. Select the directory where you wish to export a style. Changes all settings to the default configuration. For every style you may modify the representation of Shape, Path and Diagram. Shape and Paths trees have the inner structure to help you find the model element, the representation of which must be changed. The right side of the dialog contains possible choices and instruments to manage them. Figure Project Options dialog. Styles The following attributes are defined for the formatting symbols: shapes and paths: No Magic, Inc of 428

286 Shapes - set general options for the shapes on the Diagram pane, in the right part of the Project Options dialog. Paths - set general options for the paths on the Diagram, in the right part of the Project Options dialog. Property Box type Function (when selected) Applied (where to find) Fill Color Button The fill color of the symbol. The Color dialog appears. Use Fill Color Check Uses the fill color and symbols are colored on the diagram. Pen Color Button The pen color that is used to draw elements. The Color dialog appears. Text Color Button The color that is used for text coloring. The Color dialog appears. Font Button Font that is used for a name and other displayed properties of the model element. The Font dialog appears. Autosize Check Adjusts the size of a symbol to the contained information. Element borders are changed so that it uses minimum space. Path Style Attributes Sort Mode Direction Header Position Drop-down list Drop-down list Drop-down list Drop-down list The drawing style of a path. Possible choices: Rectilinear, Oblique, or Bezier. The mode for sorting attributes. Possible choices: No Sorting, By Name, By Stereotype, or By Visibility The direction of a signal. Possible choices: Right or Left. The package name position on the symbol. Possible choices: Top or In Tab. HTML Text Check Activates HTML editor for the text of a note and a text. Line Style Operations Sort Mode Show Attributes Visibility Drop-down list Drop-down list A line style for a horizontal separator. Possible choices: Dashed or Solid The mode for sorting operations. Possible choices: No Sorting, By Name, By Stereotype, or By Visibility Check Shows attribute visibility signs (+, -, #,~) on a class or artifact. Common for all (except Anchor to note and Link attribute) Common for all (except Anchor to note and Link attribute) Common for all (excepttext ) Common for all (except Anchor to note and Link attribute) Common for all (except Anchor to note ir Link attribute) Common for all shapes Common for all paths (except message and generalization tree) Class; Artifact Signal Package; Subsystem Note; Text ; Separator Separator Class; Artifact; Enumeration; Class; Artifact No Magic, Inc of 428

287 Property Box type Function (when selected) Applied (where to find) Show Classifier Show Full Classifier Type Show Direction Arrow Show Elements List Show Initial Attribute Value Show More Sign For Attributes Show More Sign For Operations Check Check Check Check Check Check Check Shows a classifier name near a model element name. Shows all attributes that are defined within a class or assigned classifier. Shows the direction arrow on the association. The association must be set as Navigable. Shows model elements that are assigned to a package or subsystem as a list. Shows initial attribute value on a class or artifact. Shows additional information sign in the class, artifact attributes list, when omissions are made by editing class compartment. Shows additional information sign in the class, artifact or numeration operations list, when omissions are made by editing class, artifact or enumeration compartment. Show Name Check Shows the name of a relationship, role and message/stimulus Show Operations Signature Show Operations Visibility Check Shows all of the operation arguments and the return type. Check Shows operation visibility signs (+, -, ~ #). Show Owner Check Shows the name of the owner model element (in parenthesis beneath the corresponding model element name.) Classifier role; Component instance; Instance; Node instance; Object flow state. Artifact; Class; Classifier role; Component instance; Enumeration; Instance; Node instance; Subsystem; Object flow state Association Package; Subsystem Class; Artifact Class; Artifact Class; Artifact; Enumeration Association; Constraint; Dependency; Generalization; Link; Message; Realization; Role; Transition Artifact; Class; Enumeration Artifact; Class; Enumeration; Subsystem Action state; Artifact; Call state; Class; Classifier role; Collaboration; Component; Component instance; Enumeration; Instance; Node; Node instance; Object flow state; Package; State; Subactivity state; Subsystem; Swimlane; Use Case No Magic, Inc of 428

288 Property Box type Function (when selected) Applied (where to find) Show Tagged Values Show Visibility Stereotype Color Stereotype Font Show Stereotype Show Constraints Suppress Actions Suppress Attributes Suppress Content Suppress Extensions Suppress Operations Suppress Realization Elements Suppress Specification Elements Check Shows tagged values on symbols. Action state; Artifact; Call state; Class; Classifier role; Collaboration; Component; Component instance; Enumeration; Instance; Node; Node instance; Object flow state; Package; State; Subactivity state; Subsystem; Swimlane; Use Case; Association; Dependency; Generalization; Link; Message; Realization; Transition Check Shows role visibility signs (+, -, #). Role Button Button Check Check Check The color that will be used to draw stereotypes. The Color dialog appears. The font that will be used to draw stereotypes. The Font dialog appears. Shows stereotype labels on symbols. Shows constraints on symbols. Hides actions associated with the state. Action state; Artifact; Call state; Class; Classifier role; Collaboration; Component; Component instance; Enumeration; Instance; Node; Node instance; Object flow state; Package; State; Subactivity state; Subsystem; Swimlane; Use Case; Association; Dependency; Generalization; Link; Message; Realization; Transition; Role (contains only the Show Constraint option) Action state; Call state; State; Subactivity state Check Hides attributes list. Artifact; Class; Instance; State Check Check Check Check Check Displays only an icon of an assigned element or stereotype. NOTE Only when a model element contains an icon or a stereotype with an icon, the Suppress Content command is activated on the element shortcut menu. Hides use-case extensions on a use case. Hides operations compartment section on class, artifact, enumeration and subsystem shapes. Hides realization elements of a subsystem. Hides specification elements of a subsystem. Action state; Call state; Classifier role; Collaboration; Component; Component instance; Instance; Node; Node instance; Object flow state; Package; State; Subactivity state; Subsystem; Use Case Use Case Artifact; Class; Enumeration; Subsystem Subsystem Subsystem No Magic, Inc of 428

289 Property Box type Function (when selected) Applied (where to find) Text Position Check Changes the text position of a separator. Possible choices: Center, Left, or Right. Wrap Words Check Wraps printed text at the edge of text container. Separator Snap Paths to Check Snaps paths to grid. Diagram Grid Snap Shapes Check Snaps shapes to grid. Diagram to Grid Show Grid Check Shows a grid on the diagrams. Diagram Background Color Button The color of the diagram background. Click the... button to open the Color dialog, select the background color. Note; Separator, Text Box, Association, Constraints, Dependency, Generalization, Link, Message, Realization, Transition, Diagram No Magic, Inc of 428

290 Code Engineering Tree Set code engineering options for all sets in your project in the Project Options dialog, Code Engineering tree. To open the Project Options dialog From the Options menu, choose the Project command. Figure Project options dialog. Code Engineering The Project Options dialog has two main collections of customizable options, which are represented by the hierarchy tree on the left side of the dialog : Styles expands the tree hierarchy of all the styles defined within the project. You may use as many of these styles as you wish. See Section Styles Tree Code engineering No Magic, Inc of 428

291 Tab name Code generation Reverse Description Set code generation options using the fields listed in the right side of the Project options dialog. The Code generation area contains es that have the same functionality as in the Code generations options dialog (see Figure Code generation options dialog, Section 5.3.1, "Code Generation for Set ). Set reverse options for all reverse actions of the project using the options listed on the right side of the Project options dialog. The Reverse area contains es that have the same functionality as in the Reverse options dialog (see Figure Reverse options dialog, Section 5.4, Reverse ). Tab name Element name Element type Function Java Language Options Set the generated code style for Java programming languages in the Default language field found on the right side of the Project Options dialog : Generate opening bracket in new line Generate spaces Use JavaDoc for documentation Generate empty documentation Automatic import generation Check Check Check Check Check Opens a bracket in the new line that is being generated. Generates spaces inside an assignment and other operators. Generates javadoc documentation for commenting the code. Comment brackets are placed in your code, unless class in the model has no documentation. Automatic generation of "import" sentences according to classes that are referenced in the generated class. Java Documentation Properties Button The Java Documentation Properties dialog appears. No Magic, Inc of 428

292 Tab name Element name Element type Function Use CLASSPATH Check The... button is activated. Search a classpath for importing sentences generation in the Set CLASSPATH dialog. C++ Language Options Set the generated code style for C++ programming languages. Comments style Dropdown list Figure Set CLASSPATH dialog Click the Get from system button to get CLASSPATH variable defined by operating system or click the Add button and select the classpath directory in the Add Classpath dialog. Select one of two comment styles Header Button Add the specific header to all your code files. Click the button and enter header text in the Header screen. Generate opening bracket in new line Generate spaces Generate empty documentation Use include path Check Opens a bracket in the newly generated line. Check Spaces inside an assignment and other operators are generated. Check Comment brackets are placed in your code, unless class in the model has no documentation. Check Select the Use Include Path check. The... button is activated. Click the... button and then specify the path for the includes in the Set Include Path dialog. Figure Set Include Path dialog Type the path in the text or click the Add button in the Set Include Path dialog and select it in the Select Folger dialog. No Magic, Inc of 428

293 Tab name Element name Element type Function IDL Language Options Set the generated code style for CORBA IDL programming languages: Use explicit macros Comments style Check Dropdown list Select the Use explicit macros check. The... button is activated, click it and in the C++ macros dialog use a set of predefined macros. Select one of two comment styles. Header Button Add the specific header to all your code files. Click the button and enter header text in the Header screen. Generate opening bracket in new line Generate spaces Check Check Opens a bracket in the new line generating. Spaces inside an assignment and other operators are generated. Use JavaDoc for documentation Check Generates JavaDoc specification for commenting the code. Generate empty documentation Java Documentation Properties Comments style Check Button Dropdown list Comment brackets are placed in your code, unless class in the model has no documentation. The Java Documentation Properties dialog appears. Select one of two comment styles. Header Button Add the specific header to all your code files. Click the button and enter header text in the Header screen. Use translation table from Dropdown list Select the translation table. DDL Language Options Generate opening bracket in new line Check Opens a bracket in the new line generating. Generate spaces Check Spaces inside an assignment and other operators are generated. Generate documentation Check Comment brackets are placed in your code, unless class in the model has no documentation. No Magic, Inc of 428

294 Tab name Element name Element type Function Header Button Add the specific header to all your code files. Click the button and enter header text in the Header screen Retrieve DB Info dialog The Retrieve DB info function allows you to retrieve the information from the existing database or ODBC source. Database structure is retrieved as UML model, using class diagram elements. The mapping of the DB to UML is the same as in DDL reverse engineering. The detailed description about DDL script forward and reverse engineering see Section 5.9, DDL Script Forward and Reverse Engineering on page 170. NOTE As the retrieve DB info function uses JDBC bridge, you may need to have JDBC drivers. All types of drivers (types 1-4) are valid for making a connection. The driver should be able to retrieve the database metadata information. The same applies to the database; it should be able to provide this information. To open the Retrieve DB Info dialog dialog From the Tools menu, choose Retrieve DB Structure. Figure Retrieve DB Info dialog No Magic, Inc of 428

295 Box name Box type Function Profile Name DB Connection URL DB/Catalog Name Dropdown list Text Text Contains the list of the predefined profiles with DB connection information. Contains the connection URL for the selected profile. Contains a name of the selected database. '...' Button Displays the list of available DB/Catalogs. Select the database and click OK. The database name appears in the DB/Catalog Name text. NOTE Only when all other properties in this dialog are correctly defined, a catalog is activated. Driver File Text Contains the name of the.jar file with JDBC connection classes and drivers for the database to be connected. NOTE If the driver file is empty, Driver Class is searched from the claspath..... Button The Open dialog appears. Select the driver file. Driver Class Text Contains the connection driver class.... Button The Select Class dialog appears. The driver file contents tree is displayed. Username Password Text Text Type the username to connect to the database. Type the password to connect to the database. New Button Type the profile name and click OK. A new profile is created. Delete Button Deletes the current profile. Rename Button Type a new profile name and click OK. The current profile is renamed. Save Changes Check Saves all changes to the profiles on the dialog close. Retrieve Button Initiates connection to the database and retrieves information about it. Close Button Closes the dialog. Help Button Displays MagicDraw TM UML Help. No Magic, Inc of 428

296 Reverse Options dialog To open the Reverse Options dialog 1. From the Tools menu, choose Quick reverse. The Round Trip Set dialog appears. 2. Select the files from the Round Trip Set dialog on the Add files tab. 3. Click OK. The Reverse Options dialog appears. Figure Reverse Options dialog Element name Eleme nt type Function General Launch new class diagram wizard after reverse Look for classes in classpath Check association end mapping Check Check Check Create class fields as Attributes Option button After reversing, a class diagram wizard appears. It will assist you in creating a class diagram for newly created entities. Search for classes in the classpath while reversing is executed. Association end and attribute type are mapped during the generation. Class fields are represented in model as attributes. No Magic, Inc of 428

297 Element name Eleme nt type Function Associations Model refresh type Merge model and code Change model according to code Option button Option button Option button Class fields are represented in model as association ends. The model elements are updated by code. Elements that do not exist in the code will not be removed from the model. Model will be created strictly by code. Entities in the model that do not match entities in the code will be discarded. OK Button Saves changes and exits the dialog. Cancel Button Exits dialog without saving changes. Help Button Displays MagicDraw TM Help Round Trip Set dialog Edit sets in the Round Trip Set dialog. To open the Round Trip dialog Click the Edit button in the Code Engineering sets dialog. Choose Edit from the set shortcut menu. Figure Code Engineering Sets shortcut menu If you are performing round trip for the first time, the tip message appears. No Magic, Inc of 428

298 Figure Code Engineering Sets tip message Disable the tip message by deselecting the Show this tip next time check. The Round trip set dialog allows you to manage entities to be added/removed to your set. Figure Round Trip Set dialog. Add files tab The Round Trip Set dialog has two tabs: Add files and Add data from model. No Magic, Inc of 428

299 The Add files tab helps you manage the files of code involved in your code engineering set. Element name Element type Function Working Directory All files Box Browsing list Indicates files and required sub-directories, where a code generation output goes. Type a path manually or by browsing in the directory tree, by clicking the button. Helps you find directories with the source files for the set. Path name Field Specify source files directory. Only files that have extensions of the specified set language will be listed. Files of type Drop-down list Contains possible file name extensions for the chosen language. The Add data from model tab helps you manage elements located in the UML model. Figure Round Trip Set dialog. Add data from model tab The All data list contains the hierarchy of UML model packages with model elements (or other packages) inside of them. Your code engineering set can be combined out of model and code elements. No Magic, Inc of 428

300 The following buttons are available in the Round Trip Set dialog : Add Add All Add Recursively Remove Remove All The selected file in the All Files or All Data list is added to the set. All files in the opened or selected directory are added to the set. All files in the selected directory and its subdirectories are added to the set. Removes the selected entity from the set. Removes all entities from the set Save As Template dialog To save project as template 1. Open a project you want to save as template. From the File menu, choose the Save As Template command. 2. The Save As Template dialog appears. Figure Save As Template dialog Box name Type Function Template Name Text Type a template name. Description Text Type information about the template. OK Button Saves the template and the description in the Templates folder. Cancel Button Closes the dialog without saving a template. Help Button Displays MagicDraw TM UML Help No Magic, Inc of 428

301 Save Project Module dialog To open the Project Module 1. From the File menu, choose the Save Project Module command. 2. The Save Project Module dialog appears. Figure Save Project Module dialog Box name Type Function Modules Full Dependency List Check Contains the list of packages, subsystems, models, and diagrams. Select project modules to save. Save the selected modules with other dependent elements. Select All Button Selects all modules in the Modules list. Clear All Button Unselects all selected modules in the Modules list. Save Button Close Button Closes the dialog. The Save dialog appears. Type the file name and select the type of the file you wish to save the modules, then click Save. Help Button Displays MagicDraw TM UML Help No Magic, Inc of 428

302 Submit a Bug dialog To open the Submit a Bug dialog Choose the Submit a Bug command from the Help menu. Figure Submit a Bug dialog Tab name Box Type Function MAIL FORM Fill the main information about yourself and describe a bug or suggestion. Your Name Text Type your name. Your Text Type your address. To Text The bug description will be sent to bugs@magicdraw.com CC Text Type your or other address if you want to be how your bug description looks like. Bug Name Text Give a name to the bug Bug Category Bug Description Drop-down list Text Select a bug category, or create a new category that is more fitting. Describe the bug. No Magic, Inc of 428

303 Tab name Box Type Function ATTACHMENTS Choose the files you want to attach to the bug description. Attach Log File Attach Project File Check Check Attaches the log file of the Attaches current MagicDraw project file. Attach Diagrams Image Check Attaches current MagicDraw project file. Not Empty Diagrams Check The list of diagrams that contains at least one model element. File Format Drop-down list Choose the image file format:.jpg,.png,.wmf,.dxf,.eps, or.svg. Select All Check Select all diagrams displayed in the Not Empty Diagrams list. BUTTONS OK Button Submit the bug. RECOMMENDATION: You may submit a bug by mailing to bugs@magicdraw.com, but It is recommended that you submit a bug directly in the MagicDraw TM UML tool. This way, the MagicDraw TM team will receive the description of the bug along with your system information. Cancel Button Exits the dialog without saving changes. Help Button Displays MagicDraw Help Tracing dialog To open the Tracing dialog Choose the Tracing command from the appropriate model element shortcut menu in the Browser tree. No Magic, Inc of 428

304 Figure Tracing dialog Element name Element type Function Name List The name of the diagram where the selected model element is located. Owner List The name of the package that owns the diagram. Open Button Opens the selected diagram. Select All Button Selects all listed diagrams. Unselect All Button Clears the selection of all listed diagrams. Load All Diagrams Button Loads all diagrams (even those that are closed) where the model element has its symbol. Close Button Exits the dialog. Help Button Displays the MagicDraw Help. No Magic, Inc of 428

305 7.4 Specification dialog es The specification dialog es are used to define UML model elements such as class, package, activity, and others. Every specification dialog has a different structure based on the element characteristics. All model elements specification dialog es have the Stereotypes, Tagged values and Constrains tabs Stereotypes tab Figure Stereotypes tab Element name Element type Function All List The list of all stereotypes that are predefined to the selected model element. Selected List The list of stereotypes that are shown on the selected model element shape. > Button Adds the selected stereotype from the All to the Selected list. This stereotype becomes visible on the symbol. < Button Removes the selected stereotype from the Selected list. This stereotype becomes invisible. No Magic, Inc of 428

306 Element name Element type Function >> Button Adds all stereotypes from the All list to the Selected list. << Button Removes all stereotypes from the Selected list back to the All list. Edit Button The Edit Stereotypes dialog appears Tagged Values tab Figure Tagged Values tab Element name Element type Function List The list of tagged values that are selected for the current model element. Add Button Creates the tagged value from the Select Tag Definition list. If you click <new>, the Tag Definition Specification dialog appears. Remove Button Removes the selected tag definition from the list No Magic, Inc of 428

307 Element name Element type Function Button Edit common model tagged values or add common tagged value to particular element list of tagged values. The Edit Tag Definitions dialog appears. Tag Definition Box Tag definition that specifies the tagged value. Button The Tag Definition Specification dialog appears. Value List The list of values Add Button Adds a value. Remove Button Removes the selected value Constraints tab Figure Constraints tab Element name Element type Function List The list of constraints assigned to the current model element. Add Button Creates a constraint. Use the Name and Expression es to change the constraint s parameters. No Magic, Inc of 428

308 Element name Element type Function Remove Button Removes the selected constraint from the list. Button Edit common model constraints or add common constraint to a particular element list of constraints. The Edit Constraints dialog appears. Name Text Enter the name of the constraint. Base Class Shows the type of the base class. Expression Text Enter an expression of the constraint. Check OCL Syntax Check If selected, the expression is checked according Object Constraint Language (OCL) Documentation Text Information associated with the selected constraint Action Specification dialog The Action Specification dialog defines an action. To open the Action Specification dialog In the State Specification, Action State Specification, Submachine Specification, Object Flow State, or Subactivity State Specification dialog es, Detail tab click the Edit button in the Actions group. In the Message Specification and Stimulus Specification dialog es, click the Action Type button. In the Transition Specification dialog, click the Edit button in Effect group. No Magic, Inc of 428

309 Figure Action Specification dialog The Action Specification dialog contains four tabs. The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the action Name Type Operation (only for call actions) Text Dropdown list Dropdown list Type the name of the action. Choose the type of an action: call, send, create, return, destroy, terminate, uninterpreted. Choose operations if a state diagram is assigned to a class, which contains operations. NOTE The parameters of an operation are automatically added to the Arguments list. Instantiation (Only for create action) Recurrence / Condition Dropdown list Text Shows the classifier of which an instance will be created of when the create action is performed. Type an expression that states how many times the action should be performed. No Magic, Inc of 428

310 Tab name Box Type Function Iteration Script Documentation Asynchronous Check Text Text Check An iteration represents a sequence of Messages at the given nesting depth. As UML does not prescribe its format MagicDraw TM uses a * sign to represent an iteration. An example would be: *[i := 1..n]. Type an action expression that describes the effects of the action. Type information associated with action Defines an action as asynchronous. ARGUMENTS An argument is an expression describing how to determine the actual values passed in a dispatched request. Expression Column Shows the defined argument expression. Edit Button The Type Expression dialog appears. Edit an expression and click OK. Add Button The Type Expression dialog appears. Type an expression and click OK. Remove Button Removes an argument expression. Buttons available in the Action Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element Action State Specification dialog The Action State Specification dialog defines action state. To open the Action State Specification dialog Double-click the action state shape or choose Specification from the action state shape shortcut menu. No Magic, Inc of 428

311 Figure Actions State Specification dialog The Action State Specification dialog contains five tabs. The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Name Box Type the name of the action state. Set general information about an action state Multiplicity Arguments Dropdown list Text Choose or type the multiplicity value for an action state. The Multiplicity is activated only when an action state is set as dynamic. Type an argument expression for an action state. The Argument is activated only when an action state is set as dynamic. Documentation Text Information associated with the current action state. Dynamic Check Select the Dynamic check and set an action state as dynamic. DETAIL Define an entry action and events. Actions: Entry List Shows the type of an entry action. Edit Button The Action Specification dialog appears. Define an action state. Remove Button Remove the defined action. No Magic, Inc of 428

312 Tab name Box Type Function Deferrable Events: Name List Shows the list of the defined events. Edit Button The Event Specification dialog appears. Edit the event. Add Button The Event Specification dialog appears. Define an event. Remove Button Remove the defined event RELATIONS Contains the list of relationships in which the current action state participates. Name Column Name of the relationship (optional). Type Column Relationship type. It may only be a transition link type. Click the Edit button, or double-click the relationship type, to open the Transition Specification dialog. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The Transition Specification dialog appears. Remove Button Removes the selected relationship from the list. Buttons available in the Action State Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element Actor Specification dialog To open the Actor Specification dialog Choose Specification from the actor shortcut menu, or double-click the actor shape. No Magic, Inc of 428

313 Figure Actor Specification dialog The Actor Specification dialog contains eight tabs. The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the actor Name Text The name of the actor. If you enter the name of the already existing actor, an error message appears. Documentation Text Information associated with an actor. Abstract Check An actor is set as abstract; it is not allowed to have any instances. See Generalizable elements. Leaf Root Check Check Defines an actor as leaf. See Generalizable elements. Defines an actor as root. See Generalizable elements. ATTRIBUTTES Name Column Attribute s name. Contains the Class Column Actor s name that contains the current attribute. actor attributes list and buttons Type Column Attribute s type. It can be a primitive type or another actor. for editing attributes list. Initial Value Column Attribute s initial value. No Magic, Inc of 428

314 Tab name Box name Type Function attributes list. Edit Button The Attribute Specification dialog appears. Specify attribute, change name, define actor name, etc. Add Button Add a new attribute to the actor. The Attribute Specification dialog appears. Remove Button Remove the selected attribute from the actor. Filter Button Filters attributes in the list. The list of filter options appears: Show all base class attributes attributes list shows current and all base class s attributes. Show public base class attributes attributes list shows current and the public base class s attributes. Show public and protected base class attributes attributes list shows current, public and protected base class s attributes. Do not show base class attributes attributes list shows only current class s attributes. OPERATIONS Contains actor operations list and buttons for managing this list: Name Column Operation s name. Class Column Actor s name that contains current operation. Return type Column Operation s return type. Edit Button The Operation Specification dialog appears. Specify operation, change name, define class s name, etc. Add Button Add a new operation to the class. The Operation Specification dialog appears. Remove Button Remove the selected operation from the actor. No Magic, Inc of 428

315 Tab name Box name Type Function Filter Button Filters attributes in the list. The list of filter options appears: Show all base class operations operations list shows current and all base class s operations. Show public base class operations operations list shows current and the public base class s operations. Show public and protected base class operations operations list shows current, public and protected base class s operations. Do not show base class operations operations list shows only current class s operations. RELATIONS Contains the list of relationships in which the current actor participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or doubleclick the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Actor Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

316 7.4.7 Association End Role Specification dialog To open the Association End Role Specification dialog Choose Specification from the association role shortcut menu, or double-click the association role. Click the button in the Association End Role A or Association End Role B group es. Figure Association End Role Specification dialog The Association End Role Specification dialog contains similar fields as the Association End Specification dialog. No Magic, Inc of 428

317 7.4.8 Association End Specification dialog To open the Association End Specification dialog 1. Choose Specification from the association s shortcut menu, or double-click the association. 2. Click the button in the Association End A or Association End B group es. Figure Association End Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Name Box Type the association end s name. Set general information Element List The name of the class, to which the association end is related. about the association Initial Value Tex Type the initial value for an association end. No Magic, Inc of 428

318 Tab name Box Type Function end Multiplicity Dropdown list The association end multiplicity describes how many entities are participating at the each association end: 0 zero and only zero. 1 one and only one zero or one. 0..* - from zero to any positive integer. 1..* - from one to any positive integer. * - any positive integer. Ordering Dropdown list If the multiplicity is greater than one, then the set of related elements can be ordered or unordered. unordered - the elements form an unordered set. This is the default and need not be shown explicitly. ordered - the elements of the set have an ordering, but duplicates are still prohibited. This generic specification includes all kinds of ordering. This may be specified by the keyword syntax {ordered}. Type Modifier Dropdown list Additional information about the type. & - one class has a reference to other model element. * - one class has a pointer to other model element. [] one class has an array of other model elements. Scope Option buttons Specify whether the target value is an instance or a classifier. Instance An instance value is part of each link. This is the default. Classifier A classifier itself is part of each link. Normally this would be fixed at modeling time and need not be stored separately at run time. Visibility Option buttons Set association end s visibility, which defines association end s access level Public The association end can be accessed by any outside object. Package Classifiers in the same package (or a nested subpackage, to any level) as the association declaration may navigate the association and use the role name in expressions. Private The association end can be accessed only from inside the current class. Protected The association end can be accessed from inside the current class and classes derived from that class. No Magic, Inc of 428

319 Tab name Box Type Function Aggregation Kind None Aggregate Composite Changeability Documentation Navigable Language Properties Option buttons Dropdown list Text Check Button When placed on a target end, specifies whether the target end is an aggregation with respect to the source end. Only one end can be an aggregation. The end is not an aggregate. The end is an aggregate; therefore, the other end is a part and must have the aggregation value of none. The part can be contained in other aggregates. The end is a composite; therefore, the other end is a part and must have the aggregation value of none. The part is strongly owned by the composite and may not be part of any other composite. Association end s changeability: Changeable No restrictions on modification. Frozen The value may not be altered after the object is instantiated and its values initialized. No additional values can be added to a sign is added. AddOnly Meaningful only if the multiplicity is not fixed to a single value. Additional values can be added to the set of values, but once created a value may not be removed or altered. Information associated with the current argument. Make an association end navigable. By default both association end are set as navigable. The CG Properties editor dialog appears. QUALIFIERS Define qualifiers of the association end. A qualifier is an attribute of an association end. Name Column The name of the assigned attribute of association end. Type Column The type of the assigned attribute of association end. It can be a class of primitive data type. Initial value Column Initial value of an attribute of an association end. Edit Button The Attribute Specification dialog appears. Edit the selected qualifier. Add Button The Attribute Specification dialog appears. Specify the qualifier. Remove Button Remove the qualifier from the list. Buttons available in the Association End Specification dialog : OK. Saves changes and exits the dialog. No Magic, Inc of 428

320 Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element Association Role Specification dialog To open the Association Role Specification dialog Choose Specification from the association role shortcut menu, or double-click the association role. Figure Association Role Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. No Magic, Inc of 428

321 Tab name Box name Type Function GENERAL Set general information about the association role Name Text Type the association role name. Association End Role A Name Text The name of the association end role A. Button The Association End Role Specification dialog appears. Multiplicity Drop-down list The multiplicity value of an association end role A. Element A Text The name of the classifier role A. Association role End B Name Text The name of the association end role B. Button The Association End Role Specification dialog appears. Multiplicity Drop-down list The multiplicity value of an association end role B. Element B Text The name of the classifier role B. Documentation Text Information associated with the association role. MESSAGES Contains the list of messages of the current association role. NOTE In the Message tab, you are not allowed to add messages. Add messages directly in the diagram. Name Column The name of the message. Type Column The message type: message. Begins Column The name of the source of the association role. The name of the shape from which the path begins. Ends Column Message destination. The name of the shape where the path ends. Edit Button The Message Specification dialog appears. Edit the message. Remove Button Removes the selected message. Buttons available in the Association Role Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

322 Association Specification dialog To open the Association Specification dialog Choose Specification from the association shortcut menu, or double-click the association. Figure Association Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the association Name Association End A Name Text Text Type the association name. The name of the class A. No Magic, Inc of 428

323 Tab name Box name Type Function Button The Association End Specification dialog appears. Multiplicity Element A Dropdown list Text The multiplicity value of an association end A. The name of the class A. Button The Class Specification dialog appears. Association End B Name Text The name of the association end B. Button The Association End Specification dialog appears. Multiplicity Element B Dropdown list Text The multiplicity value of an association end B. The name of the classifier role B. Button The Class Specification dialog appears. Documentation Text Information associated with the association. RELATIONS Contains the list of generalization relationships in which the current association participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or doubleclick the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Association Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. No Magic, Inc of 428

324 Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element Attribute Specification dialog The Attribute Specification dialog defines attribute characteristics, such as name and type. To open the Attribute Specification dialog 1. Open the Class Specification, Actor Specification, Interface Specification dialog es. 2. In the Attributes tab, double-click the desired attribute in the list, or click the Edit or Add button. In the Association End Role Specification, and Association End Role Specification dialog es, Details tab, Qualifiers group, click the Add or Edit button. Double-click the desired attribute directly on the diagram. Figure 146 Attribute Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. No Magic, Inc of 428

325 Tab name Box Type Function GENERAL Set general information for the attribute Name Text Attribute s name. When you create a new attribute, the default name for this attribute is set. You may set your own name. Class Text Shows a class that contains the current attribute. You may not change the value of the Class. It is automatically defined when you create an attribute. Type Dropdown list Shows attribute s type. It can be another project class or primitive type such as int or double or other. Choose the type from the list. Type Modifier Changeability Dropdown list Dropdown list Additional information about the type. & - one class has a reference to other model element. * - one class has a pointer to other model element. [] - one class has an array of other model elements. Attributes changeability: Changeable No restrictions on modification. Frozen The value may not be altered after the object is instantiated and its values initialized. No additional values can be added to a sign is added. AddOnly Meaningful only if the multiplicity is not fixed to a single value. Additional values can be added to the set of values, but once created, a value may not be removed or altered. Initial value Text Type the initial value for the current attribute. Multiplicity Visibility Dropdown list Option buttons The possible number of data values for the attribute that can be held by an instance. The cardinality of the set of values is an implicit part of the attribute. In the common case in which the multiplicity is 1..1, then the attribute is a scalar (i.e., it holds exactly one value). 0 zero and only zero. 1 one and only one zero or one. 0..* - from zero to any positive integer. 1..* - from one to any positive integer. * - any positive integer. Set attribute s visibility, which defines attribute s access level. No Magic, Inc of 428

326 Tab name Box Type Function Public Private Protected Scope Instance Classifier Option buttons The attribute can be accessed by any outside object. The attribute can be accessed only from inside the current class. The attribute can be accessed from inside the current class and classes derived from that class. Specifies whether the targets are ordinary Instances or are Classifiers Each value contains a reference to an Instance of the target Classifier. This is the setting for a normal Attribute. Each value contains a reference to the target Classifier itself. This represents a way to store metainformation. Documentation Text Information associated with the current attribute. Language properties Button Displays the CG Properties editor dialog. Use this to set code generation properties for this attribute. Buttons available in the Attribute Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

327 Binding Specification dialog To open the Binding Specification dialog Choose Specification from the binding dependency shortcut menu, or double-click the binding dependency path. Figure Binding Specification dialog The Binding Specification dialog contains four tabs. The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Name Text Type the relationship s name. Supplier Element Text Shows the name of the dependency s supplier element. Click the button, the corresponding element s specification dialog appears. Client Element Button Shows the name of the dependency s client element. Click the button, the corresponding element s specification dialog appears. Documentation Text Type information associated with the relationship. INITIALIZED Name Column The name of the template parameter. No Magic, Inc of 428

328 Tab name Box name Type Function ARGUMENTS The list of the template parameters attached to the class. Type Column The type of the template parameter. It can be a classifier or a primitive data type. Default value Column The default value of the template parameter. Instantiated Column The default value of the initialized argument that can be changed. By default, it is the value of the template parameter. Edit Button Edit the default value of the initialized arguments in the Type Init Value dialog. Buttons available in the Binding Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Call State Specification dialog To open the Call State Specification dialog Choose Specification from the call state shortcut menu or double-click the call state shape. See Section 7.4.5, Action State Specification dialog on page 309. No Magic, Inc of 428

329 Class Specification dialog The Class Specification dialog defines class characteristics like name, stereotype, operations, and attributes. For more information on working with classes, see Section 4.2.3, Classes. To open the Class Specification dialog Choose Specification from the class shortcut menu or double-click the class shape. Double click the N-ary association shape. Figure Class specification dialog The Class Specification dialog contains eight tabs. The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the class Name Documentation Text Text Type the name of the class. If you enter the name of the already existing class, an error message appears. Type information associated with the class. Abstract Check A class is set as abstract; it is not allowed to have any instances. See Generalizable elements. Leaf Check Defines a class as leaf. See Generalizable elements. Root Check Defines a class as root. See Generalizable elements. No Magic, Inc of 428

330 Tab name Box Type Function Active Language properties Check Button Defines a class as active. The CG Properties editor dialog appears. ATTRIBUTTES Contains the class attributes list and buttons for editing attributes list. Name Column Attribute s name. Classifier Column Class name that contains the current attribute. Type Column Attribute s type. It can be a primitive type or another class. Initial Value Column Attribute s initial value. Edit Button The Attribute Specification dialog appears. Specify attribute, change name, define the name of a class, etc. Add Button Add a new attribute to the class. The Attribute Specification dialog appears. Remove Button Remove the selected attribute from the class. Filter Button Filters attributes in the list. The list of filter options appears: Show all base class attributes attributes list shows current and all base class s attributes. Show public base class attributes attributes list shows current and the public base class s attributes. Show public and protected base class attributes attributes list shows current, public and protected base class s attributes. Do not show base class attributes attributes list shows only current class s attributes. OPERATIONS Contains class s operations list and buttons for managing this list: Name Column Operation s name. Classifier Column Class name that contains current operation. Return type Column Operation s return type. Edit Button The Operation Specification dialog appears. Specify operation, change name, define class s name, etc. Add Button Add a new operation to the class. The Operation Specification dialog appears. No Magic, Inc of 428

331 Tab name Box Type Function Remove Button Remove the selected operation from the class. Filter Button Filters attributes in the list. The list of filter options appears: Show all base class operations operations list shows current and all base class s operations. Show public base class operations operations list shows current and the public base class s operations. Show public and protected base class operations operations list shows current, public and protected base class s operations. Do not show base class operations operations list shows only current class s operations. TEMPLATE PARAMETERS A template is the descriptor for a class with one or more unbound formal parameters. Name Column The name of the template parameter. Type Column Type of the template parameter: other classifier or data type. Default Value Column Set your own value or select a model element in the Select Model Element dialog. Edit Button The Template Parameter Specification dialog appears. Edit the parameter. Add Button The Template Parameter Specification dialog appears. Define the parameter. Remove Button Remove the selected template parameter from the class. INNER ELEMENTS Add another class, use case, interface, or/and collaboration to a class Name Column Model element type and name. Edit Button The corresponding (class, use case, data type, interface, collaboration) specification dialog appears. Edit the selected model element in the dialog. Add Button The corresponding (class, use case, interface, collaboration) specification dialog appears. Define the selected model element in the dialog. Remove Button Remove the selected model element from the class. Name Column Shows the name of the relationship. No Magic, Inc of 428

332 Tab name Box Type Function Name Column Shows the name of the relationship. Type Begins Column Shows Relationship the relationship source. The type. name It can of the be association, shape from generalization, which the path begins. etc. Click the Edit button or double-click the relationship type. The corresponding Ends Column Specifications Relationship destination. dialog The appears. name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Class Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

333 Classifier in State Specification dialog To open the Classifier in State Specification dialog 1. Open the Object Flow State Specification dialog. 2. Set the type of the object flow state by choosing the classifier from the Type drop-down list. The Assign State button is activated and you may create a classifier in state. Click the Assign State button. Figure Classifier in State Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the classifier in state Name Box The name of the classifier in state. States Name Column Shows the name of the assigned state. Type Column The type of the assigned state. Owner Column The name of the owner of the assigned state. Assign Button The Select Model Element dialog appears. Select a state you wish to assign Unassign Button Unassign the selected state from the list. No Magic, Inc of 428

334 Tab name Box Type Function RELATIONS Contains the list of relationships in which the current classifier in state participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or double-click the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

335 Classifier Role Specification dialog The Classifier Role Specification dialog specifies a classifier role. To open the Classifier Role Specification dialog Double-click a classifier role on the diagram pane or choose Specification from the shape shortcut menu. Figure Classifier Role Specification dialog The Classifier Role Specification dialog contains five tabs. The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Name Box Classifier role name. Set general information about the classifier role Base Classifier Multiplicity Dropdown list Dropdown list Shows the base classifier of the classifier role. You may click an arrow button and choose a classifier role. Choose or set your own multiplicity value. Documentation Text Information associated with the current classifier role. RELATIONS Contains the list of relationships in which the Name Column Name of the relationship (optional). Type Column Relationship type. Click the Edit button, or double-click the relationship type, to display the corresponding specification dialog. No Magic, Inc of 428

336 Tab name Box Type Function in which the current classifier role participates. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The Relation Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

337 Collaboration Specification dialog To open the Collaboration Specification dialog Double-click a collaboration shape on the diagram pane or choose Specification from the shape shortcut menu. Figure Collaboration Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the collaboration Name Represented Text Text Type the name of the collaboration. If you enter the name of the already existing collaboration, an error message appears. The name of the model element that will represent a collaboration. Button The Select Model Element dialog appears. Select a model element that will represent a collaboration. Documentation Abstract Text Check Type information associated with the collaboration. A collaboration is set as abstract; it is not allowed to have any instances. See Generalizable elements. No Magic, Inc of 428

338 Tab name Box Type Function Leaf Root Check Check Defines a collaboration as leaf. See Generalizable elements. Defines a collaboration as root. See Generalizable elements. COLLABORATION ROLES Contains the list of collaboration roles and buttons for editing this list. NOTE Add classifier roles to a collaboration by drag-and-drop operation in the Browser COLLABORATION INSTANCE Contains the list of collaboration instances and buttons for managing this list. NOTE Add instances to a collaboration by drag-and-drop operation in the Browser RELATIONS Contains the list of relationships in which the current collaboration participates. Role Name Column The name of the classifier, which is assigned to the collaboration. Name Column The name of the classifier, to which classifier role is assigned. Edit Button The Classifier Role Specification dialog appears. Remove Button Remove the selected classifier role from the collaboration. Instance Name Column The name of the instance, which is assigned to the collaboration. Name Column The name of the classifier, to which the instance is assigned. Edit Button The Instance Specification dialog appears. Remove Button Remove the selected instance from the collaboration. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or doubleclick the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. No Magic, Inc of 428

339 Tab name Box Type Function Remove Button Removes the selected relationship from the list. Buttons available in the Collaboration Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

340 Component Instance Specification dialog To open the Component Instance Specification dialog Choose Specification from the component instance shortcut menu, or by double-clicking the component. Figure Component Instance Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the component instance Name Component Text Text Type the name of the component instance. If you enter the name of the already existing component instance, an error message appears. Shows the name of the component, of which is an instance. Assign Button The Select Model Element dialog appears. Unassign Button Unassign the assigned model element. Documentation Text Type information associated with the component instance. RESIDENT Name Column The name of the assigned inner instance. No Magic, Inc of 428

341 Tab name Box Type Function INSTANCES Model elements that are assigned to the component instance. Type Column The type of the resident model elements. Owner Column The name of the owner of the resident model elements. Edit Button The assigned instance Specification dialog appears. Assign Button The Select Model Elements dialog appears. Select model elements you wish to assign. Remove Button Remove the selected assigned instance from the component instance. RELATIONS Contains the list of relationships in which the current component participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or double-click the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Component Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

342 Component Specification dialog The Component Specification dialog defines a component. To open the Component Specification dialog Choose Specification from the component shortcut menu, or doubleclick the component. Figure Component Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the component Name Documentation Text Text Type the name of the component. If you enter the name of the already existing component, an error message appears. Type information associated with the component. Abstract Check A component is set as abstract; it is not allowed to have any instances. See Generalizable elements. Leaf Check Defines a component as leaf. See Generalizable elements. Root Check Defines a component as root. See Generalizable elements. RESIDENT Name Column The name of the assigned model element. No Magic, Inc of 428

343 Tab name Box name Type Function ELEMENTS Model elements that are assigned to the component. Type Column Assigned model element type. Visibility Column The visibility of the assigned model element. By default [private]. Owner Column The name of the owner of the assigned model element. Edit Button The assigned elements Specification dialog appears. Assign Button The Select Model Elements dialog appears. Select model elements you wish to assign. Remove Button Remove the selected assigned model element from the component. DEPLOYMENT LOCATION Contains the nodes list, where the current component participates IMPLEMENTA TION Contains the list of artifacts that implement component INNER COMPONENTS The list of the components that contains the current component. RELATIONS Contains the list of relationships in which the current Name Column The name of the node, which contains the current component. Type Column The type of the model element (usually node) where the current component participates. Owner Column The name of the owner of the model element in which the current component participates. Edit Button The Node Specification dialog appears. Name Column The name of the artifact Type Column Denotes the type of an element that implements component. Owner Column The owner of the artifact. Edit Button The Artifact Specification dialog appears. Name Column The name of the inner component. Edit Button The Component Specification dialog appears. Edit the component. Add Button The Component Specification dialog appears. Define the component. Remove Button Remove the selected component. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or double-click the relationship type. The corresponding Specifications dialog appears. No Magic, Inc of 428

344 Tab name Box name Type Function current component participates. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Component Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

345 Constraint Specification dialog To open the Constraint Specification dialog In the Edit Constraints dialog, click the Add or Edit button. Figure Constraint Specification dialog Tab name Box Type Function GENERAL Set general information about the constraint Name Text Enter the name of the constraint. Base Class Text Shows the type of the base class. Expression Text Enter an expression of the constraint. Check OCL Syntax Check If selected, the expression is checked according Object Constraint Language (OCL) Documentation Text Information associated with the selected constraint. CONSTRAINED ELEMENTS Name Column The name o f the model element to which the current constraint is assigned. No Magic, Inc of 428

346 Tab name Box Type Function ELEMENTS The list of elements subject to the constraint Type Column The name o f the model element to which the current constraint is assigned. Edit Button The Specification dialog of the selected model elements appears. Buttons available in the Constraint Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element Data Type, Primitive, or Programming Language Data Type Specification dialog To open the Data Type, Primitive, or Programming Language Data Type Specification dialog From the Browser: Choose Specification from the created data type shortcut menu. From the Class, Package, Subsystem, and Model Specification dialog es, Inner Elements tab, click the Add button, and then select Data Type. Double click the data type shape on the diagram pane or choose Specification command from its shortcut menu. Figure Data Type Specification dialog No Magic, Inc of 428

347 The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the data type Name Visibility Text Dropdown list The name of the data type. Public. The data type may be accessed by any outside model element. Package. Any classifier declared in the same package (or a nested subpackage, to any level) can use that data type. Private. Only the data type itself, or elements nested within that data type can see it. Protected. Classifiers derived from that data type may see it. Expression NOTE: Expression is available only for Programmi ng Language Data Type. Text Expression is expressed in data type s particular programming language. Documentati on Text Type information associated with the data type. Abstract Check A data type is set as abstract; it is not allowed to have any instances. See Section Generalizable elements on page 81. Leaf Check Defines a data type as leaf. See Generalizable elements. Root Check Defines a data type as root. See Generalizable elements. OPERATIONS Contains data type s operations list and buttons for managing this list: Name Column Operation s name. Classifier Column Classifier name that contains current operation. Return type Column Operation s return type. Edit Button The Operation Specification dialog appears. Specify operation, change name, etc. No Magic, Inc of 428

348 Tab name Box Type Function list: Add Button Add a new operation to the data type. The Operation Specification dialog appears. Remove Button Remove the selected operation from the data type. Filter Button Filters attributes in the list. The list of filter options appears: Show all base class operations operations list shows current and all base class s operations. Show public base class operations operations list shows current and the public base class s operations. Show public and protected base class operations operations list shows current, public and protected base class s operations. Do not show base class operations operations list shows only current class s operations. RELATIONS Contains the list of relationships in which the current data type participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or double-click the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Data Type Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current model element. No Magic, Inc of 428

349 Dependency and its kinds Specification dialog es Abstraction, usage, dependency, and permission relationships are defined in the same dialog. Differs from one another only corresponding name and different predefined stereotypes. Figure 156 Dependency kinds specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Name Text Type the name of the relationship. Supplier Element Text Shows the name of the dependency s supplier element. Click the button. The corresponding element s specification dialog appears. Client Element Button Shows the name of the dependency s client element. Click the button, the corresponding element s specification dialog appears. Documentation Text Type information associated with the relationship. Buttons available in the dependency Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current model element. No Magic, Inc of 428

350 Enumeration Specification dialog To open the Enumeration Specification dialog Choose Specification from the enumeration shortcut menu or double-click the enumeration shape. Figure Enumeration Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the enumeration Name Visibility Text Dropdown list The name of the enumeration. Public. The enumeration may be accessed by any outside model element. Package. Any classifier declared in the same package (or a nested subpackage, to any level) can use that enumeration. Private. Only the enumeration itself, or elements nested within that enumeration can see it. Protected. Classifiers derived from that enumeration may see it. Documentation Text Type information associated with the enumeration. No Magic, Inc of 428

351 Tab name Box Type Function Abstract Leaf Root Check Check Check A enumeration is set as abstract; it is not allowed to have any instances. See Section Generalizable elements on page 81. Defines a enumeration as leaf. See Generalizable elements. Defines a enumeration as root. See Generalizable elements. OPERATIONS Contains enumeration s operations list and buttons for managing this list: Name Column Operation s name. Classifier Column Classifier name that contains current operation. Return type Column Operation s return type. Edit Button The Operation Specification dialog appears. Specify operation, change name, etc. Add Button Add a new operation to the enumeration. The Operation Specification dialog appears. Remove Button Remove the selected operation from the enumeration. Filter Button Filters attributes in the list. The list of filter options appears: Show all base class operations operations list shows current and all base class s operations. Show public base class operations operations list shows current and the public base class s operations. Show public and protected base class operations operations list shows current, public and protected base class s operations. Do not show base class operations operations list shows only current class s operations. ENUMERATION LITERALS Name Colum n The name of the enumeration literal. An enumeration literal defines an element of the run-time extension of an enumeration Edit Button The Enumeration Literal Specification dialog appears. Edit the enumeration literal. Add Button The Enumeration Literal Specification dialog appears. Define the enumeration literal. No Magic, Inc of 428

352 Tab name Box Type Function data type. Remove Button Remove the selected enumeration literal from the enumeration. RELATIONS Contains the list of relationships in which the current enumeration participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or doubleclick the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Enumeration Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current model element. No Magic, Inc of 428

353 Enumeration Literal Specification To open the Enumeration Literal Specification dialog 1. Open the Enumeration Specification dialog. 2. In the Enumeration Literals tab, double-click the desired literal in the list, or click the Edit or Add button. Figure Enumeration Literal Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Name Text Type the name of the enumeration literal. Documentation Text Type information associated with the enumeration literal. OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

354 Event Specification dialog To open the Event Specification dialog Open the State Specification, Action State Specification, Submachine Specification, or Subactivity State Specification dialog. In the Detail tab, click the Edit or Add button in the Deferrable Events group. In the Transition Specification dialog, click the Edit button in Trigger group. Figure Event Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the event Name Type Text Dropdown list Type the event s name. Define the type of event: signal, call, time, or change. Expression List Type an expression for an event. NOTE The Expression text is available for time and change events No Magic, Inc of 428

355 Operation NOTE The Operation text is available for only for call event. Documentation Dropdown list Text Choose the defined operation. You may choose operation from the list when a diagram is drawn for a classifier, which contains operations. Type information associated with the event. PARAMETERS A parameter is an unbound variable that can be changed, passed, or returned. Name Column Shows the parameter s name. Type Column Shows the parameter s type. It can be a classifier or a data type. Default value Column An expression whose evaluation yields a value to be used when no argument (operation) is supplied for the parameter. Direction kind Column Specifies what kind of a parameter is required: in, out, inout in - an input parameter (may not be modified). out - an output parameter (can be modified to communicate information to the caller). inout - an input parameter that can be modified. Up Button Move the selected item up the list Down Button Move the selected item down the list. Edit Button The Parameter Specification dialog appears. Add Button The Parameter Specification dialog appears. Remove Button Removes the parameter. Buttons available in the Event Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

356 Extend Specification dialog To open the Extend Specification dialog Choose Specification from the extend relationship shortcut menu, or double-click the extend path. Figure Extend Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the extend relationship Name Text Type the extend name of the relationship. Base Button The base Use Case Specification dialog appears. Extension Condition List Dropdown list The extension Use Case Specification dialog appears. An expression specifying the condition, which must be fulfilled if the extension is to take place. Documentation Text Type information associated with the extend relationship. No Magic, Inc of 428

357 Tab name Box Type Function EXTENSION POINTS Select the extension points to be assigned on the extend relationship Assign Button Select already predefined extension points you wish to assign to the extend relationship in the Extension Points dialog. Figure Extension Points dialog Buttons available in the Extend Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

358 Extension Point Specification dialog To open the Extension Point Specification dialog 1. Choose Specification from the use case shortcut menu, or double-click the use case shape. The Use Case Specification dialog appears. 2. Open the Extension Points tab and the Edit or Add buttons. Figure Extension Point Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the extension Name Use case Text Text point Documentation Text The name of the extension point. Change the default name. The name of the use case, which owns the extension point. Type information associated with the extension point. BEHAVIORAL Represents a linkage of an extension point to other model element Link to Column The name of the model element you want to connect an extension point. Type Column The type of the linked model element. Owner Column The name of the owner of the linked model element. or diagram. Edit Button The Select Model Element dialog appears. Change the selected model element. No Magic, Inc of 428

359 Tab name Box name Type Function Add Button The Select Model Element dialog appears. Select a model element or diagram. Remove Button Remove the selected model element or diagram from the extension point list. Buttons available in the Extension Point Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element Generalization Specification dialog The Generalization Specification dialog defines generalization link characteristics. To open the Generalization Specification dialog Double-click the generalization path or click Specification from the generalization path s shortcut menu. Figure Generalization Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. No Magic, Inc of 428

360 Tab name Box Type Function GENERAL Name Box The name of the generalization relationship. Set general information about the generalizati on relationship Documentation Language properties Text Button Information associated with the current generalization relationship. The CG Properties editor dialog appears. Set code generation properties for the generalization path. Buttons available in the Generalization Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

361 Guard Specification dialog A guard is a boolean expression that is attached to a transition as a fine-grained control over its firing. The guard is evaluated when an event instance is dispatched by the state machine. If the guard is true at that time, the transition is enabled, otherwise, it is disabled. To open the Guard Specification dialog 1. Choose Specification from the transition path s shortcut menu, or double-click the transition path. The Transition Specification dialog appears. 2. Click the Edit button in the Guard group. Figure Guard Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the guard Name Expression Text Text Type the guard name. If you enter the name of the already existing guard, an error message appears. NOTE The name of the guard is not visible on the diagram. Type the guard expression. Check OCL Syntax Check Checks Object Constraint Language (OCL) syntax if guard is described using OCL. No Magic, Inc of 428

362 Tab name Box name Type Function Documentation Text Type information associated with the guard. Buttons available in the Guard Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element Include Specification dialog To open the Include Specification dialog Choose Specification from the include relationship shortcut menu, or double-click the include relationship path. Figure Include Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Name Text The name of the include relationship. No Magic, Inc of 428

363 Tab name Box Type Function Set general information about the include relationship Base Button The base Use Case Specification dialog appears. Addition List The addition Use Case Specification dialog appears. Documentation Text Type information associated with the include relationship. Buttons available in the Include Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element Instances Specification dialog es An instance is an individual unit with its own identity and value. Each instance has a descriptor model element. MagicDraw allows you to create instances of classifiers class, interface, use case, subsystem, and actor - in the collaboration and implementation diagram. NOTE: In this section the Specification dialog of Object, Instance, Use Case Instance, and Subsystem Instance will be described. To open the Instance, Object, Use Case Instance, or Subsystem Specification dialog Choose Specification from the appropriated instance shortcut menu or double-click the instance shape. No Magic, Inc of 428

364 Figure Instance Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Name Text Set general information about the instance Documentation Text The name of the instance. If you enter the name of the already existing instance, an error message appears. Type information associated with the instance. ASSIGNED CLASSIFIERS Name Column The name of the assigned classifier. Edit Button The assigned classifier Specification dialog appears. Edit the classifier. A template is the descriptor for a instance with one Assign Button The Select Model Element dialog appears. or more unbound Select classifiers you wish to assign. formal parameters. Unassign Button Unassign the selected classifier from the instance. SLOTS The set of Attribute Links, that hold attribute values of the instance Class Column The name of the class, which is the owner of an attribute. Attribute Column The name of the attribute. Initial Value Column Initial value of the attribute. No Magic, Inc of 428

365 Tab name Box name Type Function instance. NOTE: This tab is available only in Instance and Object Specification dialog es Edit Button The Initial Value dialog appears. Type the initial value of the attribute or click the button and select the instance from the Select Model Element dialog. ATTRIBUTE LINKS A named slot in an instance, which holds the value (the instance that is the value of the AttributeLink) of an attribute (the attribute from which the AttributeLink originates) RELATIONS Contains the list of relationships in which the current instance participates. Type Column The name, which is the owner of the attribute. Attribute Column The name of the attribute. Instance Column The name of an instance, to which the current instance is set as a default value. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or double-click the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Instance Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

366 Interface Specification dialog To open the Interface Specification dialog Choose the Specification from the interface shortcut menu, or double-click the interface shape. Figure Interface Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the interface Name Documentation Text Text Type the name of the interface. If you enter the name of the already existing interface, an error message appears. Type information associated with the interface. Abstract Check An interface is set as abstract; it is not allowed to have any instances. See Generalizable elements. Leaf Check Defines an interface as leaf. See Generalizable elements Root Check Defines an interface as root. See Generalizable elements Language properties Button The CG Properties editor dialog appears. No Magic, Inc of 428

367 Tab name Box name Type Function ATTRIBUTTES Contains the list of attributes of the interface and buttons for editing attributes list. Name Column Attribute s name. Class Column The name of the class or interface that contains the current attribute. Type Column Attribute s type. It can be a primitive type, another interface, or class. Initial Value Column Attribute s initial value. Edit Button The Attribute Specification dialog appears. Specify attribute, change name, define interface name, etc. Add Button Add a new attribute to the interface. The Attribute Specification dialog appears. Remove Button Remove the selected attribute from the interface. Filter Button Filters attributes in the list. The list of filter options appears: Show all base class attributes attributes list shows current and all base class attributes. Show public base class attributes attributes list shows current and the public base class attributes. Show public and protected base class attributes attributes list shows current, public and protected base class attributes. Do not show base class attributes attributes list shows only current class attributes. OPERATIONS Contains interface operations list and buttons for managing this list: Name Column Operation s name. Class Column The name of a class or an interface that contains the current operation. Return type Column Operation s return type. Edit Button The Operation Specification dialog appears. Specify operation, change name, define interface name, etc. Add Button Add a new operation to the interface. The Operation Specification dialog appears. Remove Button Remove the selected operation from the interface. No Magic, Inc of 428

368 Tab name Box name Type Function Filter Button Filters attributes in the list. The list of filter options appears: Show all base class operations operations list shows current and all base class operations. Show public base class operations operations list shows current and the public base class operations. Show public and protected base class operations operations list shows current, public and protected base class operations. Do not show base class operations operations list shows only current class operations. TEMPLATE PARAMETERS A template is the descriptor for an interface with one or more unbound formal parameters. Name Column The name of the template parameter. Type Column Type of the template parameter: other interface or data type. Default Value Column Set your own value or select a model element in the Select Model Element dialog. Edit Button The Template Parameter Specification dialog appears. Edit the parameter. Add Button The Template Parameter Specification dialog appears. Define the parameter. Remove Button Remove the selected template parameter from the interface. INNER ELEMENTS Add class, use case, interface, enumeration, data type, programming language data type or/and collaboration to an interface Name Column Model element type and name. Edit Button The corresponding (class, use case, interface, enumeration, data type, programming language data type, or collaboration) specification dialog appears. Edit the selected model element in the dialog. Add Button The corresponding (class, use case, interface, enumeration, data type, programming language data type, or collaboration) specification dialog appears. Define the selected model element in the dialog. Remove Button Remove the selected model element from an interface. Name Column Shows the name of the relationship. No Magic, Inc of 428

369 Tab name Box name Type Function Name Column Shows the name of the relationship. Type Begins Column Shows Relationship the relationship source. The type. name It can of the be association, shape from generalization, which the path begins. etc. Click the Edit button or doubleclick Ends Column the relationship type. The corresponding Specifications Relationship destination. dialog The appears. name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Interface Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

370 Link End Specification dialog To open the Link End Specification dialog 1. Choose Specification from the link shortcut menu, or double-click the link. The Link Specification dialog appears. 2. Click the button in the Link End A or Link End B group es. Figure Link End Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the link end Name Instance Text List Type the link end name. NOTE The name of the link end is not visible on the diagram. The name of an instance at the link end. Documentation Text Type information associated with the link end. Buttons available in the Link End Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

371 Link Specification dialog The Link Specification dialog defines link characteristics such as name and visibility. To open the Link Specification dialog Choose Specification from the link shortcut menu or double-click the link path. Figure Link Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the link relationship Name Link End A Name Text Text Type the name of the link. If you enter the name of the already existing link, an error message appears. The name of the link end A. Button The Link End Specification dialog appears. No Magic, Inc of 428

372 Tab name Box name Type Function Element A Link End B Name Text Text The name of the model element The name of the link end B. Button The Link End Specification dialog appears. Element B Documentation Text Text The name of the model element Information associated with the link. STIMULUS Contains the list of stimulus which the current link participates. Name Column The name of the stimulus. Action Type Column The type of stimulus action is displayed. Begins Column The name of the source link. The name of the shape from which the path begins. Ends Column Stimulus destination. The name of the shape where the path ends. Edit Button The Stimulus Specification dialog appears. Edit the stimulus. Remove Button Removes the selected stimulus. Buttons available in the Link Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

373 Message Specification dialog To open the Message Specification dialog Choose Specification from the message shortcut menu or double-click the message. Open the Association Role Specification dialog. Open the Messages tab and click the Edit button. Figure Message Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the message Name Action Type Text Text The name of the message. The type of the action: uninterpreted, call, send, create, return, destroy, or terminate. Button The Action Specification dialog. Sender Text The name of the sender classifier role. Button The Classifier Role Specification dialog appears. Receiver Text The name of the receiver classifier role. No Magic, Inc of 428

374 Tab name Box name Type Function Button The Classifier Role Specification dialog appears. Documentation Text Information associated with the message. PREDECESSORS The set of Messages whose completion enables the execution of the current Message. All of them must be completed before execution begins. Number Column The number of the predecessor message Action Column An action that performs that message. Edit Button The Message Specification dialog appears. Buttons available in the Message Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

375 Model Specification dialog To open the Model Specification dialog Choose Specification from the model s shortcut menu or double-click the model shape. Figure Model Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the model Name Text Type the model s name. If you enter the name of the already existing model, an error message appears. Documentation Text Type information associated with the model. Abstract Check A model is set as abstract; it is not allowed to have any instances. See Generalizable elements. Leaf Root Check Check Defines a model as leaf. See Generalizable elements. Defines a model as root. See Generalizable elements. INNER ELEMENTS Name Column A name of an inner model element that is added to a model. No Magic, Inc of 428

376 Tab name Box Type Function ELEMENTS Add other model elements and diagrams to a model Edit Button The corresponding (class, use case, actor, interface, component, node, data type, collaboration, subsystem, model, package) specification dialog appears. Edit the selected model element in the dialog. Or the Enter Name of the corresponding diagram (class diagram, use case diagram, collaboration diagram, sequence diagram, state diagram, activity diagram, and/or implementation diagram) dialog appears. Edit the name of the selected diagram. Add Button The corresponding (class, use case, actor, interface, component, node, data type, collaboration, subsystem, model, package) specification dialog appears. Edit the selected model element in the dialog. Or the Edit Name of the corresponding diagram (class diagram, use case diagram, collaboration diagram, sequence diagram, state diagram, sate diagram, activity diagram, and/or implementation diagram) dialog appears. A new diagram is created. Remove Button Remove the selected model element or diagram from the model. RELATIONS Contains the list of relationships in which the current model participates. Name Column Shows the relationships names. Type Column Shows the relationship type. Click the Edit button or double-click the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Model Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

377 Node Instance Specification dialog To open the Node Instance Specification dialog Choose Specification from the node instance shortcut menu, or double-click the node instance. Figure Node Instance Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the node instance Name Text The name of the node instance. If you enter the name of the already existing node instance, an error message appears. Node Text The name of the node, to which the node instance is assigned. Button The Node Specification dialog appears. Documentation Text Information associated with the node instance. RESIDENT COMPONENTS INSTANCES Name Column The name of the assigned component instance. Type Column The type of the assigned instance. Assign Owner Column The name of the owner of the assigned instance. No Magic, Inc of 428

378 Tab name Box name Type Function component instances to a node instance Edit Button The Component Instance Specification dialog appears. Edit the selected component instance in the dialog. Assign Button The Component Instance Specification dialog appears. Define a component instance. Unassign Button Remove the selected component instance from the node instance. RELATIONS Contains the list of relationships in which the current node instance participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. Click the Edit button or double-click the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Node Instance Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

379 Node Specification dialog A node is a physical object that represents a processing resource, generally, having at least a memory and often processing capability as well. Nodes include computing devices but also human resources or mechanical processing resources. Nodes can be represented as type and as instances. Run time computational instances, both objects and component instances, may reside on node instances. To open the Node Specification dialog Choose Specification from the node shortcut menu or double-click the node. Figure Node Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the node Name Documentation Abstract Text Text Check The name of the node. If you enter the name of the already existing node, an error message appears. Information associated with the node. A node is set as abstract; it is not allowed to have any instances. See Generalizable elements. Leaf Check Defines a node as leaf. See Generalizable elements. Root Check Defines a node as root. See Generalizable elements. No Magic, Inc of 428

380 Tab name Box name Type Function RESIDENT COMPONENTS Assign components to a node Name Column The name of the assigned component. Type Column The type of the assigned component. Owner Column The name of the owner of the assigned component. Edit Button The Component Specification dialog appears. Edit the selected component in the dialog. Assign Button The Component Specification dialog appears. Define a component. Unassign Button Remove the selected component from the node. RELATIONS Contains the list of relationships in which the current node participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be only association and dependency. Click the Edit button or double-click the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Node Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

381 Object Flow State Specification dialog To open the Object Flow State Specification dialog Choose Specification from the object flow state shortcut menu, or double-click the object flow state shape. Figure Object Flow State Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the object flow Name Type Text Dropdown list The name of the object flow state. The list of classifiers. Select a classifier you wish to assign to an object flow state shape. state Button The corresponding classifier specification dialog appears. No Magic, Inc of 428

382 Tab name Box name Type Function Assign State NOTE The Assign State button is activated when the object flow state s type is a classifier. Documentation Synch State Button Text Check The Classifier in State Specification dialog appears. Define a new classifier in state. Information associated with the object flow state. Makes an object flow state as a synch state. DETAIL Contains the object flow state attributes list and buttons for editing attributes list. Actions group Entry Text The type of the entry action. Edit Button The Action Specification dialog appears. Remove Button Remove the entry action. Exit Text The type of the exit action Edit Button The Action Specification dialog appears. Remove Button Remove the exit action. Do Activity Text The type of the do activity action Edit Button The Action Specification dialog appears. Remove Button Remove the do activity action. Deferrable Events group Name Column The name of the event Edit Button The Event Specification dialog appears. Edit the selected event. Add Button Add a new event to the object flow state. The Event Specification dialog appears. Remove Button Remove the selected event from the object flow state. Name Column Shows the name of the relationship. No Magic, Inc of 428

383 Tab name Box name Type Function Name Column Shows the name of the relationship. Type Begins Column Shows Relationship the relationship source. The type name - transition. of the shape Click from the Edit button which the or double-click path begins. the relationship type. The corresponding Specifications dialog appears. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Object Flow State Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

384 Operation Specification dialog The Operation Specification dialog defines attribute characteristics, such as name and return type. To open the Operation Specification dialog 1. Open the Class Specification, Subsystem Specification or the Actor Specification dialog. 2. In the Operations tab, click the Add or Edit buttons, or doubleclick the desired operation in the list. 3. Double-click an operation on the diagram pane. Figure Operation Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general Name Text Operation s name. When you create a new operation, the default name for this operation is set. You may set your own name. No Magic, Inc of 428

385 Tab name Box Type Function information for the operation Class Text Shows a class, which contains the current operation. You may not change the value of the Class. It is automatically defined when you create an operation. Return Type Dropdown list Shows operation s type. It can be another project class or primitive type such as int or double. Choose the type from the list. Return Type Modifier Dropdown list Additional information about the return type. & - one class has a reference to other model element. * - one class has a pointer to other model element. [] - one class has an array of other model elements. Concurrency Dropdown list Set operation s concurrency: sequential, guarded, concurrent. Query Check If selected, the operation is set as query. An operation that returns a value but does not alter the state of the system; an operation without side effects. Visibility Group Set operation s visibility, which defines operation s access level Public Private Protected Option buttons The operation can be accessed by any outside object. The operation can be accessed only from inside the current class. The operation can be accessed from inside the current class and classes derived from that class. Scope Group Specifies whether the operation is an instance or a classifier. Instance Option buttons An instance value is part of each link. This is the default. Classifier A classifier itself is part of each link. Normally this would be fixed at modeling time and need not be stored separately at run time. Abstract Check If selected the operation does not have an implementation, and one must be supplied by a descendant. Leaf Check If selected, the implementation of the operation may not be overridden by a descendant class. Root Check If selected, the class must not inherit a declaration of the same operation. No Magic, Inc of 428

386 Tab name Box Type Function Documentation Language properties Text Button Information associated with the current operation. The CG Properties editor dialog appears. Use this to set code generation properties for this operation. PARAMETERS A parameter is an unbound variable that can be changed, passed, or returned. Name Column Shows the parameter s name. Type Column Shows the parameter s type. It can be a classifier or a data type. Default value Column An expression whose evaluation yields a value to be used when no argument (operation) is supplied for the parameter. Direction kind Column Specifies what kind of a parameter is required: in, out, inout Up Button Move up the list in - an input parameter (may not be modified). out - an output parameter (can be modified to communicate information to the caller). inout - an input parameter that can be modified. Down Button Move down the list. Edit Button The Parameter Specification dialog appears. Add Button The Parameter Specification dialog appears. Remove Button Removes the parameter. Buttons available in the Operation Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

387 Package Specification dialog To open the Package Specification dialog Choose Specification from the package shortcut menu or double-click the package shape. Figure Package Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the package Name Documentation Abstract Text Text Check The name of the package. If you enter the name of an already existing package, an error message appears. Information associated with the package. A package is set as abstract; it is not allowed to have any instances. See Generalizable elements. Leaf Check Defines a package as leaf. See Generalizable elements. Root Check Defines a package as root. See Generalizable elements. INNER ELEMENTS Name Column The type and the name of the model element or diagram, assigned to a package. No Magic, Inc of 428

388 Tab name Box name Type Function ELEMENTS Add another model element or a diagram to a package Edit Button The corresponding (class, use case, actor, interface, component, node, data type, collaboration, subsystem, model, package) specification dialog appears. Edit the selected model element in the dialog. Or the Enter Name of the corresponding diagram (class diagram, use case diagram, collaboration diagram, sequence diagram, state diagram, sate diagram, activity diagram, and/or implementation diagram) dialog appears. Edit the name of the selected diagram. Add Button The corresponding (class, use case, actor, interface, component, node, data type, collaboration, subsystem, model, package) specification dialog appears. Specify the selected model element in the dialog. Or the Edit Name of the corresponding diagram (class diagram, use case diagram, collaboration diagram, sequence diagram, state diagram, sate diagram, activity diagram, and/or implementation diagram) dialog appears. A new diagram is created. Remove Button Remove the selected model element or diagram from the model. RELATIONS Contains the list of relationships in which the current package participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or double-click the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Package Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

389 Parameter Specification dialog The Parameter Specification dialog defines operation s argument. To open the Parameter Specification dialog 1. Open the Operation Specification dialog. 2. Click the Parameters tab, and then double-click the desired parameter. Or click the Add /Edit button. Figure Parameter Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box Type Function GENERAL Set general information about the parameter Name Operation Text List The parameter s name. When you create a new parameter, the default name for this argument is set. The name of the operation, which contains the parameter. Type Dropdown list Shows the parameter s type. It can be a classifier or a data type. No Magic, Inc of 428

390 Tab name Box Type Function Type Modifier Default Value Direction kind Documentation Language Properties Dropdown list Text Dropdown list Text Button Additional information about the type. & - a parameter is a reference to other model element. * - a parameter is a pointer to other model element. [] - a parameter is a an array of other model elements. An expression whose evaluation yields a value to be used when no argument (operation) is supplied for the parameter. Select the direction kind: in, out, inout in - an input parameter (may not be modified). out - an output parameter (can be modified to communicate information to the caller). InOut - an input parameter that can be modified. Type the information associated with the parameter. The CG Properties Editor dialog appears. Buttons available in the Parameter Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

391 Partition Specification dialog To open the Partition Specification dialog Choose Specification from the partition (swimlane) shortcut menu, or double-click the partition line. Figure Partition Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the partition Name Text The name of the partition. Diagram Name Box Shows the name of the activity diagram where the partition is placed. Documentation Text Information associated with the partition. Buttons available in the Partition Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

392 State Specification dialog To open the State Specification dialog Choose Specification from the state shortcut menu, or double-click the state shape. Figure State Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the state DETAIL Contains the state actions, events and buttons for editing list. Name Text The name of the state. If you enter the name of the already existing state, an error message appears. Documentation Text Information associated with the state. Actions group Entry Text The type of the entry action. Edit Button The Action Specification dialog appears. Remove Button Remove the entry action. Exit Text The type of the exit action Edit Button The Action Specification dialog appears. No Magic, Inc of 428

393 Tab name Box name Type Function Remove Button Remove the exit action. Do Activity Text The type of the do activity action Edit Button The Action Specification dialog appears. Remove Button Remove the do activity action. Deferrable Events group Name Column The name of the event Edit Button The Event Specification dialog appears. Edit the selected event. Add Button Add a new event to the state. The Event Specification dialog appears. Remove Button Remove the selected event from the state. INNTERNAL TRANSITIONS A set of transitions that, if triggered, occur without exiting or entering the state. This means that the entry or exit condition of the State will not be invoked. ATTRIBUTES The list of state attributes and buttons for editing them. NOTE Only the name of the attribute can be edited. Name Column The name of the internal transition. Edit Button The Transition Specification dialog appears. Edit the transition. Add Button The Transition Specification dialog appears. Define a new transition. Remove Button Remove the selected transition from the state. Name Column The name of the attribute. Edit Button Edit the name of the attribute in the Enter Name screen. Add Button Type the name of the new state attribute in the Enter Name screen. Remove Button Remove the selected attribute from the state. INNER STATES Name Column The type and name of the assigned composite, final, concurrent, or submachine state. No Magic, Inc of 428

394 Tab name Box name Type Function The list of inner states and buttons for editing them. Edit Button The corresponding (state, concurrent state, submachine state, or final state) specification dialog appears. Edit the selected inner state in the dialog. NOTE The final state s specification dialog does not have the Attributes and Inner States tabs. Add Button Select the inner state you want add. The corresponding (state, concurrent state, submachine state, or final state) specification dialog appears. Define the selected mod in the dialog. NOTE The final state s specification dialog does not have the Attributes and Inner States tabs. Remove Button Remove the selected inner state from the state. RELATIONS Contains the list of relationships in which the current state participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be only transition and transition to self. Click the Edit button or double-click the relationship type. The Transition Specification dialog appears. Begins Column Transition s source. The name of the shape from which the path begins. Ends Column Transition s destination. The name of the shape where the path ends. Edit Button The Transition Specification dialog appears. Remove Button Removes the selected relationship from the list. Buttons available in the State Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

395 State Vertex Specification dialog To open the State Vertex Specification dialog Choose Specification from the state vertex (dynamic choice point, junction point, stub state, history state, synch state, initial state) shortcut menu, or double-click the state vertex. Figure State Vertex Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the state vertex NOTE Dynamic choice point, junction point, stub state, history state, synch state, initial state are specified in the State Vertex Specification dialog Name Pseudo Kind NOTE Available for dynamic choice point, junction point, history state, initial state Reference NOTE Available for stub state Bound NOTE Available for synch state Text Text or dropdown Text and button Dropdown list The name of the state vertex. Dynamic choice point: choice Junction point: junction History state: set history state as deep history or shallow history state. Initial state: initial The Select Model Element dialog appears. Select the model element you wish the stub state will represent. The name of the assigned model element appears in the text. Unspecified: The * is shown in the synch state. Specified: Type the numeric value from 0 to in the text. By default the number is 0. No Magic, Inc of 428

396 Tab name Box name Type Function Documentation Text Information associated with the state vertex. RELATIONS Contains the list of relationships in which the current state vertex participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be only transition. Click the Edit button or double-click the relationship type. The corresponding Specification dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the State Vertex Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

397 Stereotype Specification dialog To open the Stereotype Specification dialog Click the Add or Edit button in the Edit Stereotypes dialog. Figure Stereotype Specification dialog The Constraints tabs have the same construction as described in Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the stereotype Name Text The name of the stereotype. Base Class Box The name of the model element to which the stereotype is applied. Icon Box The file name of the icon image file that represents the current stereotype. Button The Open dialog appears. Choose the icon for the selected stereotype. Remove Button Remove the assigned icon from the current stereotype. Documentation Text Information associated with the stereotype. No Magic, Inc of 428

398 Tab name Box name Type Function Abstract Leaf Root Check Check Check A stereotype is set as abstract; it is not allowed to have any instances. See Generalizable elements. Defines a stereotype as leaf. See Generalizable elements. Defines a stereotype as root. See Generalizable elements. EXTENDED ELEMENTS Shows the model elements affected by the stereotype. DEFINED TAGS Name Column The name of the affected model element. Type Column The type (class, use case, etc.) of that model element. Owner Column The name of the owner (package, subsystem, or model) of the affected model element. Edit Button The corresponding model element's Specification dialog appears. Name Column The name of the tag definition. Type Column The type of the tag. It can be any model element. Edit Button The Tag Definition Specification dialog appears. Edit the selected tag definition. Add Button The Tag Definition Specification dialog appears. Define a new tag definition. Remove Button Removes the selected tag. CONSTRAINTS For the detailed description of the Constraints tab, see Section 7.4.3, Constraints tab on page 306. Buttons available in the Stereotype Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

399 Stimulus Specification dialog To open the Stimulus Specification dialog Choose Specification from the stimulus shortcut menu or double-click the stimulus. Open the Link Specification dialog. Open the Stimulus tab and click the Edit button. Figure Stimulus Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the stimulus Name Action Type Text Text The name of the message. The type of the action: uninterpreted, call, send, create, destroy. Button The Action Specification dialog. Sender Text The name of the sender instance. Button The Instance Specification dialog appears. Receiver Text The name of the receiver instance. No Magic, Inc of 428

400 Tab name Box name Type Function Button The Instance Specification dialog appears. Link Text The name of the link relationship. Button The Link Specification dialog appears. Documentation Text Information associated with the stimulus. Buttons available in the Stimulus Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

401 Subactivity State Specification dialog To open the Subactivity State Specification dialog Choose Specification from the subactivity state shortcut menu, or double-click the subactivity state shape. Figure Subactivity State Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the subactivity state Name Include Text Dropdown list The name of the subactivity state. If you type the name of the already existing subactivity state, an error message appears. Select the already created state machine or activity diagram to include in the subactivity state. No Magic, Inc of 428

402 Tab name Box name Type Function state Multiplicity NOTE Is available only when a subactivity state is set as dynamic. Dropdown list Select the multiplicity value from the list or type it directly in the text. A multiplicity limiting the number of parallel executions of the actions of state. Arguments NOTE Is available only when a subactivity state is set as dynamic. Text Type an expression that determines the number of parallel executions of the submachine of the state. The value must be a set of lists of objects, each list serving as arguments for one execution. Documentation Text Information associated with the subactivity state. Dynamic Check Specifies whether the state's submachine might be executed concurrently. DETAIL Contains the subactivity state actions, events and buttons for editing list. Actions group Entry Text The type of the entry action. Edit Button The Action Specification dialog appears. Remove Button Remove the entry action. Exit Text The type of the exit action Edit Button The Action Specification dialog appears. Remove Button Remove the exit action. Do Activity Text The type of the do activity action Edit Button The Action Specification dialog appears. Remove Button Remove the do activity action. Deferrable Events group Name Column The name of the event Edit Button The Event Specification dialog appears. Edit the selected event. No Magic, Inc of 428

403 Tab name Box name Type Function Add Button Add a new event to the subactivity state. The Event Specification dialog appears. Remove Button Remove the selected event from the subactivity state. RELATIONS Contains the list of relationships in which the current subactivity state participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be only transition. Click the Edit button or double-click the relationship type: the Transition Specification dialog appears. Begins Column Transition s source. The name of the shape from which the path begins. Ends Column Transition s destination. The name of the shape where the path ends. Edit Button The Transition Specification dialog appears. Remove Button Removes the selected relationship from the list. Buttons available in the Subactivity State Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

404 Submachine Specification dialog To open the Submachine Specification dialog Choose Specification from the submachine shortcut menu, or double-click the submachine shape. Figure Submachine Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the submachine Name Include Text Dropdown list The name of the submachine. If you enter the name of the already existing submachine, an error message appears. Select the state machine or activity diagram to include in the submachine. Documentation Text Information associated with the submachine. No Magic, Inc of 428

405 Tab name Box name Type Function DETAIL Contains the submachine actions, events and buttons for editing list. Actions group Entry Text The type of the entry action. Edit Button The Action Specification dialog appears. Remove Button Remove the entry action. Exit Text The type of the exit action Edit Button The Action Specification dialog appears. Remove Button Remove the exit action. Do Activity Text The type of the do activity action Edit Button The Action Specification dialog appears. Remove Button Remove the do activity action. Deferrable Events group Name Column The name of the event Edit Button The Event Specification dialog appears. Edit the selected event. Add Button Add a new event to the object flow submachine. The Event Specification dialog appears. Remove Button Remove the selected event from the object flow submachine. INTERNAL TRANSITIONS A set of transitions that, if triggered, occur without iti Name Column The name of the internal transition. Edit Button The Transition Specification dialog appears. Edit the transition. Add Button The Transition Specification dialog appears. Define a new transition. No Magic, Inc of 428

406 Tab name Box name Type Function exiting or entering the submachine. This means that the entry or exit condition of the Submachine will not be invoked. Remove Button Remove the selected transition from the submachine. ATTRIBUTES The list of submachine attributes and buttons for editing them. NOTE Only the name of the attribute can be edited. INNER STATES Only the stub state can be added to the submachine state. RELATIONS Contains the list of relationships in which the current submachine participates. Name Column The name of the attribute. Edit Button Edit the name of the attribute in the Enter Name screen. Add Button Type the name of the new submachine attribute in the Enter Name screen. Remove Button Remove the selected attribute from the submachine. Name Column The type and name of the assigned stub state. Edit Button The State Vertex Specification dialog appears. Edit the stub state. Add Button The State Vertex Specification dialog appears. Define the stub state. Remove Button Remove the selected stub state from the submachine. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be only transition. Click the Edit button or double-click the relationship type. The Transition Specification dialog appears. Begins Column Transition s source. The name of the shape from which the path begins. Ends Column Transition s destination. The name of the shape where the path ends. Edit Button The Transition Specification dialog appears. Remove Button Removes the selected relationship from the list. No Magic, Inc of 428

407 Buttons available in the Submachine Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element Subsystem Specification dialog To open the Subsystem Specification dialog Choose Specification from the subsystem s shortcut menu or doubleclick the subsystem shape. Figure Subsystem Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the subsystem Name Documentation Text Text The name of the subsystem. If you enter the name of the already existing subsystem, an error message appears. Information associated with the subsystem. No Magic, Inc of 428

408 Tab name Box name Type Function subsystem Instantiable Check Sets a subsystem as instantiable. It means that there may be several system parts with the same definition otherwise a subsystem represents a unique part of the physical system. The string <<instantiable>> is added above subsystem name. Abstract Check A subsystem is set as abstract; it is not allowed to have any instances. See Generalizable elements. Leaf Check Defines a subsystem as leaf. See Generalizable elements. Root Check Defines a subsystem as root. See Generalizable elements. OPERATIONS Contains subsystem operations list and buttons for managing this list: Name Column Operation s name. Classifier Column Subsystem s name that contains current operation. Return type Column Operation s return type. Edit Button The Operation Specification dialog appears. Specify operation, change name, etc. Add Button Add a new operation to the subsystem. The Operation Specification dialog appears. Remove Button Remove the selected operation from the subsystem. INNER ELEMENTS Add another model element or a diagram to a subsystem Name Column The type and the name of the model element or diagram, assigned to a subsystem. Edit Button The corresponding (class, use case, actor, interface, component, node, data type, collaboration, subsystem, model) specification dialog appears. Edit the selected model element in the dialog. Or the Enter Name of the corresponding diagram (class diagram, use case diagram, collaboration diagram, sequence diagram, sate diagram, activity diagram, and/or implementation diagram) dialog appears. Edit the name of the selected diagram. Add Button The corresponding (class, use case, actor, interface, component, node, data type, collaboration, subsystem, model, subsystem) specification dialog appears. Specify the selected model element in the dialog. Or the Enter Name of the corresponding diagram (class diagram, use case diagram, collaboration diagram, sequence diagram, state diagram, sate diagram, activity diagram, and/or implementation diagram) dialog appears. A new diagram is created. No Magic, Inc of 428

409 Tab name Box name Type Function Remove Button Remove the selected model element or diagram from the model. RELATIONS Contains the list of relationships in which the current subsystem participates. Name Column Shows the name of the relationship. Type Column Shows the relationship type. It can be association, generalization, etc. Click the Edit button or doubleclick the relationship type. The corresponding Specifications dialog appears. Begins Column Relationship source. The name of the shape from which the path begins. Ends Column Relationship destination. The name of the shape where the path ends. Edit Button The corresponding Specification dialog appears. The kind of the dialog depends on the relationship type. Remove Button Removes the selected relationship from the list. Buttons available in the Subsystem Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

410 Tag Definition Specification dialog To open the Tag Definition Specification dialog In the Edit Tag Definitions dialog, click the Add or Edit button. Figure Tag Definition Specification dialog Tab name Box name Type Function GENERAL Set general information about the tag definition Name Base Class Text Dropdown list Type the name of the tag definition. The type of the base class. Multiplicity Dropdown list Specifies the number of data values that tagged values based on this tag must have, or, the number of model elements that can be associated to the related tagged values. 0 - zero and only zero. 1 - one and only one zero or one. 0..* - from zero to any positive integer. 1..* - from one to any positive integer. * - any positive integer. No Magic, Inc of 428

411 Tab name Box name Type Function Type Documentation Dropdown list Text In the general case, where the tag type is a data type, this specifies the range of values of the tagged values associated with the tag definition. In the special case, where the tag type refers to a metaclass that is not a data type, the tag value references model elements that are instances of the metaclass. Type information associated with the current tag definition. TYPED VALUES The tagged values that conform to this tag definition. Value Column The name of the tagged value. Owner Column The name of the owner of that value. Edit Button The Tagged Value Specification dialog appears. OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

412 Tagged Value Specification To open the Tag Definition Specification dialog In the Tag Definition Specification, Typed Values tab, click the Edit button. Figure Tagged Value Specification Tab name Box name Type Function GENERAL Set general information about the tagged value Tag Definition Box Tag definition that specifies the tagged value. Button The Tag Definition Specification dialog appears. Value List The list of values. Add Button Adds a value. Remove Button Removes the selected value. Documentation Text Type information associated with the tagged value. No Magic, Inc of 428

413 Template Parameter Specification dialog appears To open the Template Parameter Specification dialog In the Class Specification or Interface Specification dialog, click the Template Parameters tab and then click the Add or Edit button. Figure Template Parameter Specification dialog appears The Template Parameter Specification dialog contains one tab. Tab name Box name Type Function GENERAL Set general information about the template parameter Name Type Default Value Text Dropdown list Text The name of the template parameter Specify the template parameter s type. It can be a class or a primitive type. Type the default value for the template parameter. Button The Select Model Element dialog appears. Select a classifier you wish to assign as a default value to the template parameter. Buttons available in the Template Parameter Specification dialog : OK. Saves changes and exits the dialog. Cancel. Exits the dialog without saving changes. Help. Displays MagicDraw Help Owner. Displays the specification dialog of the model element that owns the current element. No Magic, Inc of 428

414 Transition Specification dialog The Transition specification dialog defines transition or trigger link. To open the Transition Specification dialog Double-click the transition path or choose Specification from the path s shortcut menu. Figure Transition Specification dialog The Stereotypes, Tagged Values and Constraints tabs have the same construction as described in Section 7.4.1, Stereotypes tab, Section 7.4.2, Tagged Values tab and Section Constraints tab. Tab name Box name Type Function GENERAL Set general information about the transition Name Text The name of the transition Target Text The name of the model element (state, submachine, action state, concurrent state, subactivity, other), which is the target of the transition. No Magic, Inc of 428

USER S MANUAL. version 10.0

USER S MANUAL. version 10.0 USER S MANUAL version 10.0 No Magic, Inc. October, 2005 CONTENTS 1 CONTENTS 2 2 INTRODUCING MAGICDRAW 2-10 MagicDraw Editions and Features 2-11 MagicDraw Personal edition 2-11 MagicDraw Standard edition

More information

Model-Code-Deploy platform. Product Overview. Features. UML support. Requirements management

Model-Code-Deploy platform. Product Overview. Features. UML support. Requirements management Product Overview Model-Code-Deploy platform Visual Paradigm for UML (VP-UML) is a powerful, cross-platform and yet the most easy-to-use visual UML modeling and CASE tool. VP-UML provides software developers

More information

TUTORIALS. version

TUTORIALS. version TUTORIALS version 17.0.1 No Magic, Inc. 2011 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced by any means. All

More information

UML PROFILING AND DSL

UML PROFILING AND DSL UML PROFILING AND DSL version 17.0.1 user guide No Magic, Inc. 2011 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced

More information

INTEGRATIONS. version user guide. with Eclipse, NetBeans, IntelliJ IDEA, CaliberRM, ProActivity, CVS, AndroMDA, and oaw

INTEGRATIONS. version user guide. with Eclipse, NetBeans, IntelliJ IDEA, CaliberRM, ProActivity, CVS, AndroMDA, and oaw INTEGRATIONS with Eclipse, NetBeans, IntelliJ IDEA, CaliberRM, ProActivity, CVS, AndroMDA, and oaw version 17.0.1 user guide No Magic, Inc. 2011 All material contained herein is considered proprietary

More information

Enterprise Architect. User Guide Series. Model Navigation. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH

Enterprise Architect. User Guide Series. Model Navigation. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH Enterprise Architect User Guide Series Model Navigation Author: Sparx Systems Date: 30/06/2017 Version: 1.0 CREATED WITH Table of Contents Model Navigation 4 Navigate: Exploring Your Model 5 The Project

More information

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017 IDERA ER/Studio Software Architect Evaluation Guide Version 16.5/2016+ Published February 2017 2017 IDERA, Inc. All rights reserved. IDERA and the IDERA logo are trademarks or registered trademarks of

More information

StarUML Documentation

StarUML Documentation StarUML Documentation Release 2.0.0 MKLab November 20, 2014 Contents 1 Basic Concepts 3 1.1 Project.................................................. 3 1.2 Model Element, View Element, and Diagram..............................

More information

Enterprise Architect. User Guide Series. Model Navigation

Enterprise Architect. User Guide Series. Model Navigation Enterprise Architect User Guide Series Model Navigation How to navigate repositories? In Sparx Systems Enterprise Architect the Project Browser shows model structure. Model Searches and browsers locate

More information

VP-UML Quick Start. Last update: October 15, Copyright Visual Paradigm International Ltd.

VP-UML Quick Start. Last update: October 15, Copyright Visual Paradigm International Ltd. VP-UML Quick Start Last update: October 15, 2012 Copyright 2002-2012 Visual Paradigm International Ltd. Table of Contents Table of Contents... 2 Getting Started... 3 Installing Visual Paradigm for UML

More information

Work Smart: Microsoft Office 2010 User Interface

Work Smart: Microsoft Office 2010 User Interface About the Office 2010 User Interface You can use this guide to learn how to use the new features of the Microsoft Office Ribbon. Topics in this guide include: What s New in the Office 2010 User Interface

More information

Solo 4.6 Release Notes

Solo 4.6 Release Notes June9, 2017 (Updated to include Solo 4.6.4 changes) Solo 4.6 Release Notes This release contains a number of new features, as well as enhancements to the user interface and overall performance. Together

More information

ECDL Module 6 REFERENCE MANUAL

ECDL Module 6 REFERENCE MANUAL ECDL Module 6 REFERENCE MANUAL Presentation Microsoft PowerPoint XP Edition for ECDL Syllabus Four PAGE 2 - ECDL MODULE 6 (USING POWERPOINT XP) - MANUAL 6.1 GETTING STARTED... 4 6.1.1 FIRST STEPS WITH

More information

Enterprise Architect. User Guide Series. Ribbons. Author: Sparx Systems Date: 27/05/2016 Version: 1.0 CREATED WITH

Enterprise Architect. User Guide Series. Ribbons. Author: Sparx Systems Date: 27/05/2016 Version: 1.0 CREATED WITH Enterprise Architect User Guide Series Ribbons Author: Sparx Systems Date: 27/05/2016 Version: 1.0 CREATED WITH Table of Contents Ribbons 4 File Management 6 Show Panel 8 Start Ribbon 12 Using the Explore

More information

25. DECUS Symposium THE Application Development Environment for OpenVMS

25. DECUS Symposium THE Application Development Environment for OpenVMS NetBeans THE Application Development Environment for OpenVMS Sunil Kumaran, Thomas Siebold Agenda What is NetBeans some history Major Features / Demonstrations NetBeans on OpenVMS Questions 5/2/2002 DECUS

More information

Enterprise Architect. User Guide Series. Ribbons. Author: Sparx Systems Date: 15/07/2016 Version: 1.0 CREATED WITH

Enterprise Architect. User Guide Series. Ribbons. Author: Sparx Systems Date: 15/07/2016 Version: 1.0 CREATED WITH Enterprise Architect User Guide Series Ribbons Author: Sparx Systems Date: 15/07/2016 Version: 1.0 CREATED WITH Table of Contents Ribbons 4 File Management 6 Show Panel 8 Start Ribbon 12 Using the Explore

More information

MyEclipse ER-Designer Quickstart

MyEclipse ER-Designer Quickstart MyEclipse ER-Designer Quickstart Last Revision: Outline 1. Preface 2. Requirements 3. Introduction 4. Creating an ER Diagram from a Database 5. Working with an Entity-Relationship Diagram 1. Notation and

More information

Bonita Workflow. Development Guide BONITA WORKFLOW

Bonita Workflow. Development Guide BONITA WORKFLOW Bonita Workflow Development Guide BONITA WORKFLOW Bonita Workflow Development Guide BSOA Workflow v3.0 Software January 2007 Copyright Bull SAS Table of Contents Chapter 1. Overview... 11 1.1 Role of

More information

18.1 user guide No Magic, Inc. 2015

18.1 user guide No Magic, Inc. 2015 18.1 user guide No Magic, Inc. 2015 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced by any means. All information

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: WSAD. J2EE business topologies. Workbench. Project. Workbench components. Java development tools. Java projects

More information

Visual Paradigm Quick Start

Visual Paradigm Quick Start Visual Paradigm Quick Start Last update: Apr 15, 2014 Copyright 2002-2014 Visual Paradigm International Ltd. Table of Contents Table of Contents... 2 Getting Started... 3 Installing Visual Paradigm...

More information

Reporting and Printing Guide

Reporting and Printing Guide Enterprise Studio Reporting and Printing Guide 2017-03-17 Applies to: Enterprise Studio 2.3 and Team Server 2.3 Table of contents 1 About reporting and printing models 4 2 Reporting models to HTML and

More information

DRAFT. Table of Contents About this manual... ix About CuteSITE Builder... ix. Getting Started... 1

DRAFT. Table of Contents About this manual... ix About CuteSITE Builder... ix. Getting Started... 1 DRAFT Table of Contents About this manual... ix About CuteSITE Builder... ix Getting Started... 1 Setting up... 1 System Requirements... 1 To install CuteSITE Builder... 1 To register CuteSITE Builder...

More information

IBM. Tips and Troubleshooting Guide. IBM Emptoris Contract Management. Version SC

IBM. Tips and Troubleshooting Guide. IBM Emptoris Contract Management. Version SC IBM Emptoris Contract Management IBM Tips and Troubleshooting Guide Version 10.0.4 SC27-5345-03 IBM Emptoris Contract Management IBM Tips and Troubleshooting Guide Version 10.0.4 SC27-5345-03 ii IBM Emptoris

More information

Evaluation Guide - WebSphere Integration

Evaluation Guide - WebSphere Integration Evaluation Guide - WebSphere Integration Copyright 1994-2005 Embarcadero Technologies, Inc. Embarcadero Technologies, Inc. 100 California Street, 12th Floor San Francisco, CA 94111 U.S.A. All rights reserved.

More information

Teamcenter 11.1 Systems Engineering and Requirements Management

Teamcenter 11.1 Systems Engineering and Requirements Management SIEMENS Teamcenter 11.1 Systems Engineering and Requirements Management Systems Architect/ Requirements Management Project Administrator's Manual REQ00002 U REQ00002 U Project Administrator's Manual 3

More information

DiskPulse DISK CHANGE MONITOR

DiskPulse DISK CHANGE MONITOR DiskPulse DISK CHANGE MONITOR User Manual Version 10.5 Feb 2018 www.diskpulse.com info@flexense.com 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product

More information

ER/Studio Enterprise Portal User Guide

ER/Studio Enterprise Portal User Guide ER/Studio Enterprise Portal 1.1.1 User Guide Copyright 1994-2009 Embarcadero Technologies, Inc. Embarcadero Technologies, Inc. 100 California Street, 12th Floor San Francisco, CA 94111 U.S.A. All rights

More information

Index. Add Diagram > Sequence Diagram command,

Index. Add Diagram > Sequence Diagram command, Quatrani.book Page 183 Monday, May 8, 2006 11:56 AM Index A abstraction, 3 actions completing before processing, 54 55 data flowing through, 53 passing control between, 51 performing, 155 157 as round-cornered

More information

Tetra4D Reviewer. Version 5.1. User Guide. Details on how to use Tetra4D Reviewer.

Tetra4D Reviewer. Version 5.1. User Guide. Details on how to use Tetra4D Reviewer. Tetra4D Reviewer Version 5.1 User Guide Details on how to use Tetra4D Reviewer. ii Contents Chapter 1: Work area... 7 Looking at the work area... 7 Toolbars and toolbar presets... 8 About toolbars and

More information

User Manual. Autor. Av. de los Labradores, Tres Cantos, Madrid, Spain User Manual IRQA 4 December 2008

User Manual. Autor. Av. de los Labradores, Tres Cantos, Madrid, Spain User Manual IRQA 4 December 2008 User Manual Autor 1 Copyright Notice Copyright 2008 Visure Solutions, S.L. All rights reserved. This document may not be reproduced or transmitted in any way or by any electronic or mechanical means, including

More information

New Features Summary PowerDesigner 15.2

New Features Summary PowerDesigner 15.2 New Features Summary PowerDesigner 15.2 Windows DOCUMENT ID: DC10077-01-1520-01 LAST REVISED: February 2010 Copyright 2010 by Sybase, Inc. All rights reserved. This publication pertains to Sybase software

More information

MindManager Server User Guide

MindManager Server User Guide MindManager Server User Guide Table of Contents What is MindManager Server?... 1 Create a map in 7 easy steps... 2 Begin a new map:... 2 Enter your main idea:... 2 Add supporting ideas:... 2 Add other

More information

Visual Paradigm Quick Start

Visual Paradigm Quick Start Visual Paradigm Quick Start Last update: Apr 23, 2015 Copyright 2002-2015 Visual Paradigm International Ltd. Matrix Diagram... 33 Getting Started Installing Visual Paradigm 1. Execute the Visual Paradigm

More information

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

CA ERwin Data Modeler

CA ERwin Data Modeler CA ERwin Data Modeler Implementation Guide Release 9.5.0 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation

More information

Database Explorer Quickstart

Database Explorer Quickstart Database Explorer Quickstart Last Revision: Outline 1. Preface 2. Requirements 3. Introduction 4. Creating a Database Connection 1. Configuring a JDBC Driver 2. Creating a Connection Profile 3. Opening

More information

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

PASS4TEST. IT Certification Guaranteed, The Easy Way!   We offer free update service for one year PASS4TEST IT Certification Guaranteed, The Easy Way! \ http://www.pass4test.com We offer free update service for one year Exam : 9A0-088 Title : Adobe IIIustrator CS4 Exam Vendors : Adobe Version : DEMO

More information

Step-by. A Very Warm Welcome to the Exciting World of Computers. Let s get Started It s easy with my Step- Instructions

Step-by. A Very Warm Welcome to the Exciting World of Computers. Let s get Started It s easy with my Step- Instructions A Very Warm Welcome to the Exciting World of Computers Let s get Started It s easy with my Step- by-step Instructions This lesson is all about getting to know your Main Menu Bar at the top of your screen.

More information

Open. Select the database and click. Print. Set printing options using the dropdown menus, then click the

Open. Select the database and click. Print. Set printing options using the dropdown menus, then click the The Original Quick Reference Guides Microsoft Access 2010 Access is a tool for creating and managing databases collections of related records structured in an easily accessible format such as a table,

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Troy Mockenhaupt Chi-Hang ( Alex) Lin Pejman ( PJ ) Yedidsion Overview Definition History Behavior Diagrams Interaction Diagrams Structural Diagrams Tools Effect on Software

More information

Enterprise Architect Tips & Tricks Compilation - 1

Enterprise Architect Tips & Tricks Compilation - 1 Enterprise Architect Tips & Tricks Compilation - 1 Sparx Systems India In this article we have complied all the tips and tricks which we discovered from our day to day usage of Enterprise Architect. In

More information

The viewer makes it easy to view and collaborate on virtually any file, including Microsoft Office documents, PDFs, CAD drawings, and image files.

The viewer makes it easy to view and collaborate on virtually any file, including Microsoft Office documents, PDFs, CAD drawings, and image files. Parts of this functionality will only be available in INTERAXO Pro. Introduction The viewer provides users with the capability to load a wide variety of document types online using a web browser. Documents

More information

Exam : 9A Title : Adobe IIIustrator CS4 Exam. Version : Demo

Exam : 9A Title : Adobe IIIustrator CS4 Exam. Version : Demo Exam : 9A0-088 Title : Adobe IIIustrator CS4 Exam Version : Demo 1. While working on a document to be printed on an offset press you decide to print a composite proof to examine the results of color trapping

More information

New Features Summary PowerDesigner 15.3

New Features Summary PowerDesigner 15.3 New Features Summary PowerDesigner 15.3 Windows DOCUMENT ID: DC10077-01-1530-01 LAST REVISED: November 2010 Copyright 2010 by Sybase, Inc. All rights reserved. This publication pertains to Sybase software

More information

Financial Message Designer for Oracle Service Bus User s Guide. Version 10g Release 3 (10.3)

Financial Message Designer for Oracle Service Bus User s Guide. Version 10g Release 3 (10.3) Financial Message Designer for Oracle Service Bus User s Guide Version 10g Release 3 (10.3) FINANCIAL MESSAGE DESIGNER FOR ORACLE SERVICE BUS... 11 DESIGNER USER INTERFACE... 11 MENU BAR... 12 File Menu...

More information

Caja File Manager. Desktop User Guide

Caja File Manager. Desktop User Guide Caja File Manager Desktop User Guide Desktop User Guide» Working with Files This chapter describes how to use the Caja file manager. Introduction Spatial Mode Browser Mode Opening Files Searching For Files

More information

Basic Concepts. Launching MultiAd Creator. To Create an Alias. file://c:\documents and Settings\Gary Horrie\Local Settings\Temp\~hh81F9.

Basic Concepts. Launching MultiAd Creator. To Create an Alias. file://c:\documents and Settings\Gary Horrie\Local Settings\Temp\~hh81F9. Page 1 of 71 This section describes several common tasks that you'll need to know in order to use Creator successfully. Examples include launching Creator and opening, saving and closing Creator documents.

More information

Dreamweaver Basics. Planning your website Organize site structure Plan site design & navigation Gather your assets

Dreamweaver Basics. Planning your website Organize site structure Plan site design & navigation Gather your assets Dreamweaver Basics Planning your website Organize site structure Plan site design & navigation Gather your assets Creating your website Dreamweaver workspace Define a site Create a web page Linking Manually

More information

Creating Reports in Access 2007 Table of Contents GUIDE TO DESIGNING REPORTS... 3 DECIDE HOW TO LAY OUT YOUR REPORT... 3 MAKE A SKETCH OF YOUR

Creating Reports in Access 2007 Table of Contents GUIDE TO DESIGNING REPORTS... 3 DECIDE HOW TO LAY OUT YOUR REPORT... 3 MAKE A SKETCH OF YOUR Creating Reports in Access 2007 Table of Contents GUIDE TO DESIGNING REPORTS... 3 DECIDE HOW TO LAY OUT YOUR REPORT... 3 MAKE A SKETCH OF YOUR REPORT... 3 DECIDE WHICH DATA TO PUT IN EACH REPORT SECTION...

More information

CONFIGURING SAFE V4.0 IN THE IBM COLLABORATIVE LIFECYCLE MANAGEMENT

CONFIGURING SAFE V4.0 IN THE IBM COLLABORATIVE LIFECYCLE MANAGEMENT CONFIGURING SAFE V4.0 IN THE IBM COLLABORATIVE LIFECYCLE MANAGEMENT Abstract In this document, we provide step-by-step guidance to configure support for the SAFe V4.0 methodology in CLM tooling. Amy Silberbauer

More information

Describe Enterprise New Features Guide

Describe Enterprise New Features Guide Describe Enterprise 6.1.0 New Features Guide Embarcadero's Describe Enterprise is a next-generation UML design and development tool that offers both rich modeling features and productivity-focused development

More information

Talend Open Studio for MDM Web User Interface. User Guide 5.6.2

Talend Open Studio for MDM Web User Interface. User Guide 5.6.2 Talend Open Studio for MDM Web User Interface User Guide 5.6.2 Talend Open Studio for MDM Web User Interface Adapted for v5.6.2. Supersedes previous releases. Publication date: May 12, 2015 Copyleft This

More information

Bouml Tutorial. The tutorial must be read in order because I will not repeat each time the general commands to call a menu etc...

Bouml Tutorial. The tutorial must be read in order because I will not repeat each time the general commands to call a menu etc... of 30 11/04/2008 19:18 Bouml Tutorial This tutorial is written to help you to use BOUML for the first time, only few features of BOUML are exposed here, but a fu description of BOUML is given in the reference

More information

Introducing Rational ClearQuest

Introducing Rational ClearQuest Introducing Rational ClearQuest support@rational.com http://www.rational.com IMPORTANT NOTICE COPYRIGHT NOTICE ClearQuest, copyright 1997-1999 Rational Software Corporation. All rights reserved. THIS DOCUMENT

More information

USER GUIDE MADCAP FLARE Topics

USER GUIDE MADCAP FLARE Topics USER GUIDE MADCAP FLARE 2018 Topics Copyright 2018 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this document is furnished

More information

Table of Contents. Page 2 of 72. High Impact 4.0 User Manual

Table of Contents. Page 2 of 72. High Impact  4.0 User Manual Table of Contents Introduction 5 Installing High Impact email 6 Installation Location 6 Select Mail Client 6 Create a ReadyShare Account 6 Create a Default Profile 6 Outlook Configuration Message 6 Complete

More information

CA ERwin Data Modeler

CA ERwin Data Modeler CA ERwin Data Modeler Implementation Guide Service Pack 9.5.2 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to only and is subject

More information

Enterprise Architect Training Courses

Enterprise Architect Training Courses On-site training from as little as 135 per delegate per day! Enterprise Architect Training Courses Tassc trainers are expert practitioners in Enterprise Architect with over 10 years experience in object

More information

Index A Access data formats, 215 exporting data from, to SharePoint, forms and reports changing table used by form, 213 creating, cont

Index A Access data formats, 215 exporting data from, to SharePoint, forms and reports changing table used by form, 213 creating, cont Index A Access data formats, 215 exporting data from, to SharePoint, 215 217 forms and reports changing table used by form, 213 creating, 237 245 controlling availability of, 252 259 data connection to,

More information

Intelligence on Demand. Elixir Report Migration Guide

Intelligence on Demand. Elixir Report Migration Guide Intelligence on Demand Elixir Report Migration Guide Elixir Report Migration Guide Migration Guide This document describes how to migrate from Elixir Report version 4 to Elixir Report version 5 or later.

More information

Extended Search Administration

Extended Search Administration IBM Lotus Extended Search Extended Search Administration Version 4 Release 0.1 SC27-1404-02 IBM Lotus Extended Search Extended Search Administration Version 4 Release 0.1 SC27-1404-02 Note! Before using

More information

SPRECON-E Display Editor

SPRECON-E Display Editor SPRECON-E Display Editor Version 2.0b USERS MANUAL 94.2.912.60en 09/2004 ISSUE A page 2 / 61 Business Sector Enery Station Automation (ENA) [Power systems automation] Sprecher Automation GmbH Franckstrasse

More information

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, January 2018

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, January 2018 News in RSA-RTE 10.1 updated for sprint 2018.03 Mattias Mohlin, January 2018 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10

More information

Getting Started with BarTender

Getting Started with BarTender Getting Started with BarTender MANUAL Contents Getting Started with BarTender 3 Installation 4 Choosing What to Install 4 Automation Editions (Automation and Enterprise Automation) 4 Installing BarTender

More information

IRQA General Information:

IRQA General Information: : TABLE OF CONTENTS INTRODUCTION...4 KEY DIFFERENTIATORS...5 1. Flexibility to visually support multiple end-to-end processes and methodologies in Software and Systems Engineering... 5 2. Low implementation

More information

UML Diagrams MagicDraw UML Diagrams

UML Diagrams MagicDraw UML Diagrams In software development, the diagram is the equivalent of a blueprint. To meet the various needs of many parties, we often need several different blueprints of the same system. Furthermore, every system

More information

Business Intelligence and Reporting Tools

Business Intelligence and Reporting Tools Business Intelligence and Reporting Tools Release 1.0 Requirements Document Version 1.0 November 8, 2004 Contents Eclipse Business Intelligence and Reporting Tools Project Requirements...2 Project Overview...2

More information

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, November 2017

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, November 2017 News in RSA-RTE 10.1 updated for sprint 2017.46 Mattias Mohlin, November 2017 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10

More information

Function. Description

Function. Description Function Check In Get / Checkout Description Checking in a file uploads the file from the user s hard drive into the vault and creates a new file version with any changes to the file that have been saved.

More information

Enterprise Architect. User Guide Series. Model Exchange

Enterprise Architect. User Guide Series. Model Exchange Enterprise Architect User Guide Series Model Exchange How to transfer data between projects? In Sparx Systems Enterprise Architect you can move data between projects using Data Transfer of models to file

More information

The Unified Modeling Language (UML ) Using Enterprise Architect 13.x or 14.x

The Unified Modeling Language (UML ) Using Enterprise Architect 13.x or 14.x The Unified Modeling Language (UML ) Using Enterprise Architect 13.x or 14.x Three Day Course Syllabus DAY I Introduction to Enterprise Architect User Interface Desktop layout Portals Commonly used Windows/Ribbons

More information

EMCO Ping Monitor Enterprise 6. Copyright EMCO. All rights reserved.

EMCO Ping Monitor Enterprise 6. Copyright EMCO. All rights reserved. Copyright 2001-2017 EMCO. All rights reserved. Company web site: emcosoftware.com Support e-mail: support@emcosoftware.com Table of Contents Chapter... 1: Introduction 4 Chapter... 2: Getting Started 6

More information

Release Notes. MindManager 2019 for Windows MindManager Enterprise Version September 25, 2018

Release Notes. MindManager 2019 for Windows MindManager Enterprise Version September 25, 2018 Release Notes MindManager 2019 for Windows MindManager Enterprise 2019 Version 19.0 September 25, 2018 2018 Corel Corporation 1 Table of Contents USABILITY & PERFORMANCE IMPROVEMENTS... 3 User Interface...

More information

ECLIPSEUML STUDIO PRODUCT DOCUMENTATION. ECLIPSEUML 2007 EUROPA For Eclipse 3.3

ECLIPSEUML STUDIO PRODUCT DOCUMENTATION. ECLIPSEUML 2007 EUROPA For Eclipse 3.3 1 ECLIPSEUML STUDIO PRODUCT DOCUMENTATION ECLIPSEUML 2007 EUROPA For Eclipse 3.3 Contents 2 EclipseUML 2007 How To Install. Launch the jar file... Unzip the Eclipse+EclipseUML file... Getting Started..

More information

Microsoft How to Series

Microsoft How to Series Microsoft How to Series Getting Started with EXCEL 2007 A B C D E F Tabs Introduction to the Excel 2007 Interface The Excel 2007 Interface is comprised of several elements, with four main parts: Office

More information

Exploring SharePoint Designer

Exploring SharePoint Designer Exploring SharePoint Designer Microsoft Windows SharePoint Services 3.0 and Microsoft Office SharePoint Server 2007 are large and sophisticated web applications. It should come as no surprise, therefore,

More information

Visual Paradigm Doc. Composer Writer s Guide

Visual Paradigm Doc. Composer Writer s Guide Visual Paradigm Doc. Composer Writer s Guide Last update: Oct 20, 2017 Copyright 2002-2017 Visual Paradigm International Ltd. Copyright Information This document is Copyright 2017 by Visual Paradigm International

More information

Working with Reports

Working with Reports The following topics describe how to work with reports in the Firepower System: Introduction to Reports, page 1 Risk Reports, page 1 Standard Reports, page 2 About Working with Generated Reports, page

More information

dbdos PRO 2 Quick Start Guide dbase, LLC 2013 All rights reserved.

dbdos PRO 2 Quick Start Guide dbase, LLC 2013 All rights reserved. dbdos PRO 2 Quick Start Guide 1 dbase, LLC 2013 All rights reserved. dbase, LLC may have patents and/or pending patent applications covering subject matter in this document. The furnishing of this document

More information

Module Road Map. 7. Version Control with Subversion Introduction Terminology

Module Road Map. 7. Version Control with Subversion Introduction Terminology Module Road Map 1. Overview 2. Installing and Running 3. Building and Running Java Classes 4. Refactoring 5. Debugging 6. Testing with JUnit 7. Version Control with Subversion Introduction Terminology

More information

Getting Started with Access

Getting Started with Access MS Access Chapter 2 Getting Started with Access Course Guide 2 Getting Started with Access The Ribbon The strip across the top of the program window that contains groups of commands is a component of the

More information

MindView Online - Quick Start Guide

MindView Online - Quick Start Guide MindView Online - Quick Start Guide Overview MindView Online is an online concept mapping program that allows users to organize their thoughts visually to create, share, and export mind maps to Microsoft

More information

Quark XML Author for FileNet 2.5 with BusDocs Guide

Quark XML Author for FileNet 2.5 with BusDocs Guide Quark XML Author for FileNet 2.5 with BusDocs Guide CONTENTS Contents Getting started...6 About Quark XML Author...6 System setup and preferences...8 Logging in to the repository...8 Specifying the location

More information

Visual Dialogue User Guide. Version 6.0

Visual Dialogue User Guide. Version 6.0 Visual Dialogue User Guide Version 6.0 2013 Pitney Bowes Software Inc. All rights reserved. This document may contain confidential and proprietary information belonging to Pitney Bowes Inc. and/or its

More information

23 - Report & Export

23 - Report & Export 23 - Report & Export Contents 23 - REPORT & EXPORT... 1 SMART PUBLISHER... 1 Opening Smart Publisher... 1 Smart Publisher Settings... 2 The Finished Report... 5 Alias Names for Codes... 6 The Word Template

More information

ChemSense Studio Client Version 3.0.7

ChemSense Studio Client Version 3.0.7 Quick Start Guide: ChemSense Studio Client Version 3.0.7 January 5, 2005 Comments/Questions/Bug Report? E-mail: chemsense-contact@ctl.sri.com Background The ChemSense Studio Client software supports the

More information

Hortonworks Data Platform

Hortonworks Data Platform Hortonworks Data Platform Workflow Management (August 31, 2017) docs.hortonworks.com Hortonworks Data Platform: Workflow Management Copyright 2012-2017 Hortonworks, Inc. Some rights reserved. The Hortonworks

More information

JUN / 04 VERSION 7.1 FOUNDATION P V I E W G A L M E

JUN / 04 VERSION 7.1 FOUNDATION P V I E W G A L M E JUN / 04 VERSION 7.1 FOUNDATION P V I E W G A L M E www.smar.com Specifications and information are subject to change without notice. Up-to-date address information is available on our website. web: www.smar.com/contactus.asp

More information

2009 Electronics for Imaging, Inc. The information in this publication is covered under Legal Notices for this product.

2009 Electronics for Imaging, Inc. The information in this publication is covered under Legal Notices for this product. GA-1310 Welcome 2009 Electronics for Imaging, Inc. The information in this publication is covered under Legal Notices for this product. 45085373 5 May 2009 WELCOME 3 WELCOME This Welcome document provides

More information

Introduction to Eclipse Rich Client Platform Support in IBM Rational HATS. For IBM System i (5250)

Introduction to Eclipse Rich Client Platform Support in IBM Rational HATS. For IBM System i (5250) Introduction to Eclipse Rich Client Platform Support in IBM Rational HATS For IBM System i (5250) 1 Lab instructions This lab teaches you how to use IBM Rational HATS to create a rich client plug-in application

More information

IBM Rational Rhapsody Gateway Add On. Rhapsody Coupling Notes

IBM Rational Rhapsody Gateway Add On. Rhapsody Coupling Notes Rhapsody Coupling Notes Rhapsody IBM Rational Rhapsody Gateway Add On Rhapsody Coupling Notes License Agreement No part of this publication may be reproduced, transmitted, stored in a retrieval system,

More information

WINDEV 23 - WEBDEV 23 - WINDEV Mobile 23 Documentation version

WINDEV 23 - WEBDEV 23 - WINDEV Mobile 23 Documentation version WINDEV 23 - WEBDEV 23 - WINDEV Mobile 23 Documentation version 23-1 - 04-18 Summary Part 1 - Report editor 1. Introduction... 13 2. How to create a report... 23 3. Data sources of a report... 43 4. Describing

More information

Colleague UI4.3 Documentation

Colleague UI4.3 Documentation Colleague UI4.3 Documentation Table of Contents Getting Started... 2 Add the Shortcuts to your Desktop... 2 Searching for and Using Forms... 3 Begin Your Form Search... 3 Form Search Results... 3 The Navigation

More information

UNIT-4 Behavioral Diagrams

UNIT-4 Behavioral Diagrams UNIT-4 Behavioral Diagrams P. P. Mahale Behavioral Diagrams Use Case Diagram high-level behaviors of the system, user goals, external entities: actors Sequence Diagram focus on time ordering of messages

More information

OU EDUCATE TRAINING MANUAL

OU EDUCATE TRAINING MANUAL OU EDUCATE TRAINING MANUAL OmniUpdate Web Content Management System El Camino College Staff Development 310-660-3868 Course Topics: Section 1: OU Educate Overview and Login Section 2: The OmniUpdate Interface

More information

Quark XML Author 2015 October Update with Business Documents

Quark XML Author 2015 October Update with Business Documents Quark XML Author 2015 October Update with Business Documents CONTENTS Contents Getting started...6 About Quark XML Author...6 Working with documents...8 Basic document features...8 What is a business document...8

More information

4D Write. User Reference Mac OS and Windows Versions. 4D Write D SA/4D, Inc. All Rights reserved.

4D Write. User Reference Mac OS and Windows Versions. 4D Write D SA/4D, Inc. All Rights reserved. 4D Write User Reference Mac OS and Windows Versions 4D Write 1999-2002 4D SA/4D, Inc. All Rights reserved. 4D Write User Reference Version 6.8 for Mac OS and Windows Copyright 1999 2002 4D SA/4D, Inc.

More information

StarTeam File Compare/Merge StarTeam File Compare/Merge Help

StarTeam File Compare/Merge StarTeam File Compare/Merge Help StarTeam File Compare/Merge 12.0 StarTeam File Compare/Merge Help Micro Focus 575 Anton Blvd., Suite 510 Costa Mesa, CA 92626 Copyright 2011 Micro Focus IP Development Limited. All Rights Reserved. Portions

More information

Adobe InDesign Notes. Adobe InDesign CS3

Adobe InDesign Notes. Adobe InDesign CS3 Adobe InDesign Notes Adobe InDesign CS3 Page 2 Introduction These notes have been put together for basic and advanced methods, features and language. I have also created notes on other Adobe products.

More information