0% found this document useful (0 votes)
781 views953 pages

Magic Draw User Manual

MAGICDRAW USER'S MANUAL version 16 is a user's guide. All material contained herein is considered proprietary information owned by no Magic, Inc. And is not to be shared, copied, or reproduced in any means.

Uploaded by

nitokill
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
781 views953 pages

Magic Draw User Manual

MAGICDRAW USER'S MANUAL version 16 is a user's guide. All material contained herein is considered proprietary information owned by no Magic, Inc. And is not to be shared, copied, or reproduced in any means.

Uploaded by

nitokill
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 953

USERS MANUAL

version 16.5

No Magic, Inc. April, 2009

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 copyright 1998-2009 by No Magic, Inc.

CONTENTS

0
20
21
21

Contents 3 1 INTRODUCING MAGICDRAW


About MagicDraw and UML 20 MagicDraw Editions and Features
MagicDraw Editions

MagicDraw Personal Edition 21 MagicDraw Standard Edition 22 MagicDraw Architect Edition 22 MagicDraw Professional Edition 22 MagicDraw Enterprise Edition 23 MagicDraw Community Edition 23 MagicDraw Reader Edition 23

MagicDraw Features

24

Reports Generation 24 Floating License Server 24 Teamwork License Server 24 Code and Database Engineering 25 OpenAPI 25 Integrations 25 MagicDraw Customization 26 MagicDraw Plugins 26 MagicDraw RConverter 27

MagicDraw Welcome Screen 28 MagicDraw News Reader 33 MagicDraw Documentation and Support
Help 35 Other Documentation 35 Support 36
FAQ 36 Newsgroups 36

35

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
E-mail 36 Bug Reports 36 View and submit internal errors 41

2 GETTING STARTED

42
43

System requirements 42 Java Virtual Machine (JVM) Installation Procedure 44

Operating System - dependent issues 44 Windows 2000/2003/NT/XP/Vista* 44 Unix 45 MAC OS X 45 All other platforms instructions (no install version) 45

Licensing Information Display 46 MagicDraw Configuration Files Location Updating 48


Auto-Check for Updates dialog box 49

47

3 USING MAGICDRAW

50
50

Perspective Selection and Customization

Customizing MagicDraw Perspectives 51 MagicDraw Startup dialog box 53 Perspectives dialog box 55 Customize Perspectives dialog box 56

MagicDraw User Interface Menu System 60


File menu 60 Edit menu 63 View menu 67 Layout menu 69 Diagrams menu 72 Options menu 73 Tools menu 73 Analyze menu 77 Teamwork menu 79

58

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Window menu 79 Help menu 81

Toolbars

82

Customizing toolbars 82 Main Toolbar 85 External Tools Toolbar 85

Using the Browser

85
88

The Browser window parts 86

Containment tree

Data branch 90 Code engineering sets 91

Diagrams tree 93 Inheritance tree 95 Model Extensions Tree 96 Search Results Tree 98 Working with Model Elements in the Browser Tree Multiple selection 100 Documentation/Zoom Control/Properties 101
Documentation tab 101 Zoom Control tab 102 Properties tab 103

99

Setting Environment Options


General pane 106 Diagram pane 110 Browser pane 114 Teamwork pane 116 Floating pane 117 CVS pane 118 Update pane 119 HTTP Proxy pane 120 Keyboard pane 121 Plugins pane 122 Resources pane 124 Path Variables Pane 126 Launchers Pane 127 Experience Pane 128 External Tools 130

104

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
EMF UML2 (v2.x) XMI Options Pane 132 EMF UML2 (v1.x) XMI Options Pane 133

Look and Feel: Controlling the Interface Assigning Shortcut Keys 137

135

JIDE and Multiple Windows interface styles 136

4 WORKING WITH PROJECTS


Creating a Project 138

138

Creating a new project 138 Working with multiple projects 139 Creating a new project from the existing source code 141 Creating a new project from a previously created template 142 Creating a new Use Case project 143

Saving a Project 145


Autosave 146

Opening a Project 147 Importing a Project 148 Exporting a Project 148


Exporting a module of a project 148 Exporting a project as a template 148 Exporting a project as MOF 149
MOF Domain model 150 MOF export 150 Metamodeling template 152 Validation constraints 152

Exporting a project as an EMF UML2 (v2.x) XMI 153 Exporting a project as an EMF UML2 (v1.x) XMI 153 Exporting to BPEL 154

Setting Project Options 158


Project Options 158 167

Searching

161
Metacharacters 167 Character Sets 167 Grouping 168 Quantifiers 168

Java Regular Expressions

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Boundary Matchers 169 Embedded Flag Expressions 169

Replacing

170

Project Partitioning 172


Partitioning the model 172 Exporting the module of a project 173 Sharing the module of a project 175 Managing modules (the Modules dialog box) 177 Dependencies Between Elements 178
Package dependencies by relationship 179 Dependencies by reference 182 Diagram dependencies 182

The Package Dependencies dialog box Unresolved dependencies 185 Using the module of a project 186

184

The Use Module Wizard 187 Reusing model parts between models 188

Reloading the module of a project 190 Importing the module of a project 190 Working with partially loaded projects 190 Advanced Concepts 192
Indexing 192 Missing elements for the proxies (orphan proxies) 194

5 WORKING WITH DIAGRAMS


Working with Diagrams 198

197

Diagram Basics 198 Diagrams Dialog Box 201 Diagram Properties 202 Diagram name and its context name synchronization

205

Diagram Frame 206 Table with diagram information 208 Drawing Shapes 209 Drawing the Shapes of the Diagrams 214 Drawing Relationship Paths 215 Inserting a Shape on the Path 218

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Creating Relations from the Model 220 Smart Manipulation 221 Selection and Multiple Selections 224 Dragging, Copying, Cutting, and Pasting 227 Changing the diagram type 229 Zooming 231 Using the Grid 232 Layout 233
Orthogonal Layout Tool 234 Hierarchic Layout Tool 235 Tree Layout Tool 237 Organic Layout Tool 240 Circular Layout Tool 241 Orthogonal Path Router 243 Organic Path Router 244 Class Diagram Layout Tool 244 Activity Diagram Layout Tool 246 Business Process Diagram Layout tool 248 Quick Diagram Layout feature 250 Label layout in the diagram 250
Default label positions 250 Labels positions after moving a path, shape or related element 250

Showing Diagrams in Full Screen 253 Saving as an Image 255


Saving a diagram and selected symbols as an image 255 Setting image saving options 257

Printing 258
Print Range tab 259 Print Options Tab 261 Print Header/Footer Tab 263

6 WORKING WITH MODEL ELEMENTS


Specifying Model Elements
Specification dialog boxes
General tab 266

265

265
265

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Documentation/Hyperlinks tab 267 Attributes tab 270 Usage in Diagrams tab 271 Operations tab 272 Template Parameters tab 273 Relations tab 275 Tags tab 276 Constraints tab 279 Buttons available in the Specification dialog boxes 280

Default Property Values 280


Sharing the default property values 282

Formatting Symbols

283

To set the symbol properties (fill color, text color, and others) 283 Changing symbol properties dialog for multiple symbols 283 To show/hide model element constraints, stereotype and/or tagged values on the diagram pane 284 Displaying icon or image on the symbol or instead the symbol 285

Style Engine

287

Symbol Property Styles Tree 287 Working with Properties Styles 294 Properties extension by diagram 296 Properties Inheritance 299 General Style Properties 299 Shape, Path and Diagram Properties 299 Stereotype properties 301

Defining Hyperlinks Between Elements

303
304

Adding a hyperlink to the model element Insert Hyperlink dialog box 308

Owner of the model element

311
313

Owner display mode 311 Qualified name starting from model library

Converting An Element 313 Replacing An Element 314

7 TOOLS

316
317

Model Merge

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Definitions 317 Introduction to Merging 317
3-way merge 318 2-way merge 319 Model Merge Concepts 320

Introductory Case Studies

320

Case Study 1 - 3-way Merge and Analysis 321 Case Study 2 - merging in Teamwork System 327 Case study 3 - Copying changes from branch to Trunk (in Teamwork) with conflict resolution 337 Case Study 4 - Representing DSL elements in the Merged results 350

Merging concepts in details 352


Change types 353 Accepting or Rejecting changes 354 Dependent changes 354 Conflicting changes 355 Building change tree 356

Analyzing Merging Results 358


The Merge window description 358 Viewing changes in diagrams 383 Finishing projects merge 391

Controlling Merge memory usage 394

Pattern Wizard 395 Creating Setters / Getters 404 Implementing or Overriding Operations Model Transformation Wizard 409

407

Types of transformations 409 Model Transformation Wizard 410 Model Transformation Mapping 414 Transformation Mapping Options 415 Model Transformation Update 419

Resource Manager 420 Spelling Checker 423


Spell checking as you type 423 Spell checking for the whole project or the selected scope 427
Checking spelling for the whole project 427 Checking spelling for the selected scope 428

10

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Analyzing the Check Spelling (the Validation Results window) 429 Solving the spell checking errors 430

Setting the spell checking options


Spell checking options 434 Spell checking dictionaries 435

433

Defining properties of the customized element to be spell checked

436

Import Data to MagicDraw 437


Import data from Rational Software Architect/Modeler using MagicDraw RSXConverter 437 Import data from Rational Rose using MagicDraw RConverter 437 Import data from other tools 437

8 MODEL ANALYSIS
Model Visualizer 440

439

Class Diagram Wizard 441 Package Dependency Wizard

446

Displaying package dependencies 449

Package Overview Diagram Wizard 450 Hierarchy Diagram Wizard 455 Realization Diagram Wizard 459 Activity Decomposition Hierarchy Wizard 463 Content Diagram Wizard 468 Sequence Diagram from Java Source Wizard 471

Displaying related elements 477 Dependencies analysis 479


Usages Functionality 479 Dependent Elements functionality 479 Usages/Dependencies Search Options dialog box 480 Elements Using/Dependencies windows 483

Model Differencing

486
486 491

Models comparison

Understanding model differences 487

Diagrams Comparison

Metrics

494

Metric Suites 495 Displaying Metrics 495

11

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Starting Metrics 496

Metrics window 499

Exporting Metrics 500 Comparing metrics 502 Metrics Options 502 Metrics Properties 505

Dependency Matrix 507


Creating the Dependency Matrix
Dependency Matrix View 509 Dependency Matrix pane 512

508

Working with a Dependency Matrix Template 515 Dialog boxes in Dependency Matrix functionality 517
Dependency Matrix Templates dialog box 517 The Add / Remove Elements dialog box 520 The Dependency Matrix Specification dialog box, tags group 521

Validation

523

Introduction 523 Constraint Types 523 Predefined Validation Suites 524 Validating 525 Validation Results Window 528 Validation Rules 531
OCL Constraints 536 Binary Constraints 537

Validation Suites 537 Advanced Topics 545


Global validation rules 545 Expressions in error messages 547 Modeling other types OCL2.0 constraints/expressions 548 Unsupported OCL2.0 features 550 Adding/customizing severity levels 550 Performance Issues 551

Active Validation 551


Detecting errors in the model 552
Failure indicator 552 Marking errors in the Browser 554 Highlighting errors on the diagram 555

12

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Handling incorrect model 556 Changing the Active Validation Options 557 The Active Validation Suites 558
Validating Parameters and Arguments Synchronization 558 Shape Ownership 559 UML model correctness 563 Validating the Orphaned Proxies (OP) 563

Customizing the Active Validation 564 Validate element that has no representation in diagram

564

Usage in Diagrams

566

Searching for symbol usage in diagrams from the element specification dialog box 567 Searching for symbol usage in diagrams from the element shortcut menu 568

9 UML DIAGRAMS

569

Architectural Views 570


Use Case View 570 Structural View 571 Behavioral View 571 Implementation view 571 Environment view 571

Class Diagram

572
573 582

Class diagram elements

Use Case Diagram 581


Use Case diagram elements

Communication Diagram 584


Communication Diagram elements 585

Sequence Diagram

587

Sequence diagram elements 588 Sequence diagram improvements 593


State Invariant 593 Lost / Found Messages 595

State Machine Diagram 596


State Machine Diagram elements 597

Protocol State Machine Diagram 602


Protocol State Machine Diagram elements 603

Activity Diagram

607

13

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Activity Diagram elements 609 Smart Activity Diagram layout 618
Dynamic centerlines 618 Diagram orientation 619

Implementation Diagram 620


Component diagram overview 620 Deployment diagram overview 621 Implementation Diagram elements 622

Composite Structure Diagram

629
632

Composite Structure Diagram elements 630 Displaying existing Parts on the Composite Structure diagram creation

Interaction Overview Diagram

634

10 EXTENSION DIAGRAMS
General Information 637
Common Elements 639

637

Content Diagram

641
642 647

Content Diagram Elements

Robustness Diagram 646


Robustness Diagram Elements

Web Diagram

648

Web Diagram Elements 649

CORBA IDL Diagram 652


CORBA IDL Diagram Elements 653 655 657

Generic DDL Diagram Oracle DDL Diagram WSDL Diagram 658

654 655

Generic DDL Diagram Elements Oracle DDL Diagram Elements WSDL Diagram Elements 659

XML Schema Diagram 660


XML Schema Diagram Elements 661

Time Diagram Struts Diagram

664
665

Time Diagram Elements

665

14

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Struts Diagram Elements 666 669

Networking Diagram

668

Networking Diagram Elements

Business Process Diagram 672


Business Process Diagram Elements 673

11 MODEL ELEMENTS
Note, Comment 688 Anchor 688 Constraint path 689 Image Shape 689 Separator 689 Documentation 690

685

Common Model Elements in the Diagrams 685

UML Extension Elements


Stereotype 691

690

Stereotype Specification dialog box 695 Assigning a stereotype 697 Changing the stereotype display mode 698

Tags

700
Editing Tagged Value 701

Constraint

703

The Time and Duration Constraints 704 Working with Constraints 704 The Constraint Specification dialog box 706 OCL 707

Profiles 710
Profiles 711 Working with profiles 712 Creating Profiles 712 Using and Importing Profiles 712 Exporting Profiles 713

Action 713
Accept Event Action 714 Call Behavior Action 716 Call Operation Action 717

15

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Opaque Action 719 Send Signal Action 719 Working with actions 720
Advancing actions: applying duration constraint 721

Actor 723 Association

725
728

Association End

Advancing actions: navigable owned association ends 733

Association in Use Case Diagrams 735 Attribute 736 Class 741


Working with classes 742 Creating A Structured Class 744 Design Patterns 746 Class presentation options 746

Collaboration 749 Combined Fragment Component 753 Connector 757 Containment 761 Data type 761
Enumeration 763 Primitive 766

752

Decision Node 766 Dependency 766


Template Binding dependency 769 Abstraction 770 Usage 770 Package Merge 770 Package Import 771 Element Import 771 Access 771 Deployment 772

Deployment Specification 772 Exception Handler 773

16

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Extend 774 Flow Final Node Fragment 777

776

Alternative Fragment 777 Combined Fragment 778

Function Behavior Gate 781 Generalization

780

The formal gate and actual gate usage in the sequence diagram 784

786

Generalizable elements 787 Generalization sets 788

Include 793 Information Flow 795 Information Item 796 Instance 797 Instance Specification 802 Interaction Use 803 Interface 804
Provided and Required Interfaces 805 Provided and Required Interfaces in the Composite Structure diagram Provided/required interfaces in the Component diagram 809 807

Internal transition 809 Lifeline 810 Lifeline in the Sequence Diagram 812 Link 813 Manifestations 813 Message 814
Assigning/Creating operation for message 819 Assigning/Creating signal reception for message Predecessors and activators 821 820

Message in Sequence Diagram Model 825 Node 826


Structured activity node 829 Activity parameter node 830

822

Creating nested activation 822

17

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Expansion Region and Expansion Nodes 830 If, Loop and Sequence Conditional Nodes 830

Object 831 Object Flow 832 Object Node 832 Opaque Behavior 834 Operation 835 Package 842
Working with packages 843 844

Parameter

844

Parameters synchronization with Arguments

Rules of synchronization between parameters and arguments 846 Synchronization between Operation parameters and Behavior parameters 847 Synchronization between Activity parameters and Activity Parameter Nodes 851 Synchronization between Operation parameters and pins on Call Operation Action 853 Synchronization between Behavior parameters and pins of Call Behavior Action 854 Synchronization between Interaction parameters and Interaction Use arguments 857 Synchronization between Operation parameters and Message arguments 857 Synchronization between Interaction Parameters and Lifelines 860 The Parameters Synchronization dialog box 863

Port 871 Pseudo State

874

Initial 875 Final state 876 Terminate 876 Entry Point 876 Exit Point 876 Deep History 876 Shallow History 877 Junction 877 Choice 877 Fork/Join 877

Realization 878 Reception 881 Send Signal Action State 885

883

18

Copyright 1998-2009 No Magic, Inc.

CONTEN TS
Changing State to Composite/submachine/orthogonal State 889 Composite State 890 Submachine 891 Adding connection point reference 891 Defining State Invariant 892 Assigning behavior to state 892

Subsystem 893 Swimlane 894 Template / Parameterized class Transition 901

899

Event types 903 Enhanced Event assignment to transition

904

Use Case 904 Use Case Extension 907 Value Specification 908

APPENDIX: LIST OF ICONS 910


Icons from the MagicDraw GUI 910
Main Toolbar 910 Buttons from the diagram list toolbar 913 Diagram main toolbar 914 Buttons from the Browser window 917
Floating, Auto-hide and Close buttons 918 Buttons from the Containment tree 919 Buttons from the Inheritance tree 920 Buttons from the Diagrams tree 921 Buttons from the Model Extensions tree 921 Buttons from the Search Results tree 922

Diagram Icons 923 Icons of general elements 925 Icons of relationships 939 Icons from Modules and Profile mechanism

945

Index 946

19

Copyright 1998-2009 No Magic, Inc.

INTRODUCING MAGICDRAW

About MagicDraw and UML


Todays 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. Early methodologies, such as Booch notation, OMT, and others served the same purpose: to graphically express the softwares 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. This means that you can use it to design your entire OO system in any programming language and any software development process. 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. The transition from the design to the implementation phase is smoother and more straightforward. Moreover, using the features of reverse engineering and code generation, the developer can move back and forth between the code and the design that is being expressed in the diagrams.

20

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Editions and Features 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 round-trip code 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) being lost. MagicDraw is a visual UML modeling and CASE tool with teamwork support. Designed for Business Analysts, Software Analysts, Programmers, QA Engineers, and Documentation Writers, this dynamic and versatile development tool facilitates analysis and design of Object Oriented (OO) systems and databases. It provides the industry's best code engineering mechanism (with full round-trip support for Java, C#, C++, WSDL, XML Schema, and CORBA IDL programming languages), as well as database schema modeling, DDL generation and reverse engineering facilities.

MagicDraw Editions and Features


A detailed list of MagicDraw features can be found at: http://www.magicdraw.com/files/brochures/a4/MagicDrawDataSheet.pdf

MagicDraw Editions
MagicDraw Personal Edition
MagicDraw Personal Edition contains powerful UML diagramming capabilities, including full UML 2 support and extensibility features, basic reporting functionality, and image export. Exported files are stored in XMI format. All model elements can be accessed via the MagicDraw Open API. In this edition, you will find everything you need to draw, edit, and publish your UML models. Personal Edition is available only in a standalone version and is not designed for use with MagicDraw Teamwork Server.

21

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Editions and Features

MagicDraw Standard Edition


MagicDraw Standard Edition provides all of the Features of Personal Edition and adds WAE, content, and Robustness diagrams. Standard Edition also adds model analysis and facilitation features, customizable and extendable patterns, integrations with most popular IDEs, and a set of predefined model templates and UML profiles. Standard Edition supports UNISYS XMI and the latest Model Driven Architecture (MDA) tool offerings. UNISYS XMI diagramming extensions allow the interchange of MagicDraw models with other UML modeling tools. Standard Edition is available in standalone, floating and mobile license versions and is fully compatible with MagicDraw Teamwork Server. Standard Edition is ideally suited for analysts and architects who need various model extensions and modeling facilitations.

MagicDraw Architect Edition


The Architect Edition is specially packaged to provide the optimal price and technical features necessary for architects that do not need the full capabilities of the Enterprise Edition. This edition combines the common functionality of the Standard Edition together with some powerful options from the Enterprise Edition. These include: advanced modeling facilitations and analysis, reverse engineering and code generation for DDL, WSDL, CORBA IDL and XML. Architects have less need for IDE integrations as well as Java and C++ code engineering, so these capabilities are not included.

MagicDraw Professional Edition


Professional Edition is built on the Standard Edition capabilities and is available in one of three programming language specific versions-Java, C++ and C#. In addition to the Standard Edition features, Professional Edition adds code generation and reverse engineering functionality. Depending on the language version selected, the user will receive:
Java version - Code engineering for Java, Java bytecode. Integration with Java IDEs. C++ version - Code engineering for C++. C# version - Code engineering for C#, CIL (MSIL).

Professional Edition is ideal for anyone who wants to generate code from an existing model or create a UML model from an existing project.

22

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Editions and Features

MagicDraw Enterprise Edition


MagicDraw Enterprise Edition represents the top of the line in the MagicDraw family of products, as well as the ultimate solution for all your modeling needs. Enterprise Edition combines all of the functionality of the Personal and Standard Editions, and all three versions of the Professional Edition, into a comprehensive state-of-the-art UML programming solution. But the Enterprise Edition does not stop there, adding code engineering and diagramming functionality in CORBA IDL, EJB, WSDL and XML schema. For working with DB structure, Enterprise Edition not only provides code engineering and diagramming, but also provides structure retrieval via JDBC. Enterprise Edition is a must when working with multiple development technologies and databases. The MagicDraw family of award-winning products represents the most powerful and best value in the UML modeling industry today.

MagicDraw Community Edition


MagicDraw Community Edition is free for developers working on non-commercial projects. It has a minimal functionality set and only the class diagram has no limitations. Other diagrams allow saving a project with 25 use cases, 25 states, 25 classifier roles, 25 action states, 25 instances, 25 nodes, and 25 components. Community Edition is designed for creating static structure models when XMI output is needed and it is ideally suited for Open Source projects. Printing and image export capabilities are also included.

MagicDraw Reader Edition


MagicDraw Reader Edition is made for reading and previewing UML models created with MagicDraw and it is free of charge. It is extremely useful when you want to share your ideas expressed in UML with partners, colleagues, or clients, who do not have a copy of MagicDraw. Printing and image export capabilities are also included. Since MagicDraw version 14.0, Reader Edition has the ability to open and review Teamwork Server projects.

23

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Editions and Features

MagicDraw Features
Reports Generation
You will find a complete description of the MagicDraw Report Wizard, related OpenAPI, and tutorial in MagicDraw ReportWizard UserGuide.pdf.

Floating License Server


The Floating license agreement does not limit the number of clients you can install on different computers. It only limits the number of applications that can run at the same time. To control loaded applications, a server is required. The server can be installed on several computers, but simultaneously can be started only on the one of them. The license key of the floating server provides information to the server about how many applications may run simultaneously for the particular MagicDraw edition. If you upgrade the MagicDraw version, you do not have to obtain a new license key for the server. The Administrators Console is used to manage client connections and configure the server. For more information about MagicDraw Floating License Server, see MagicDraw FloatingLicense UserGuide.pdf.

Teamwork License Server


NOTE
The Teamwork License Server is available with MagicDraw application (Standard, Professional, Architect, and Enterprise editions).

With MagicDraw Teamwork Server, you can assign as many developers as needed to work simultaneously on the same project using multiple workstations. The resulting Teamwork project is saved on the server for sharing by other MagicDrawTM applications. Users with administrator rights can create new users by giving them their own login name and various permissions to work on projects. Depending on permissions, users can update, commit, edit, create, and delete model elements, diagrams, and projects. To enable Teamwork support, you should install and run the MagicDraw Teamwork Server software. Each MagicDraw application acts as a client in the Teamwork system. Teamwork Server functionality is available with MagicDraw client Standard, Professional, and Enterprise Editions only. MagicDraw Reader Edition is allowed to open and review teamwork projects. For more information about Teamwork License Server, see MagicDraw Teamwork UserGuide.pdf.

24

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Editions and Features

Code and Database Engineering


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 features can be very useful in several situations:
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 (reverse). 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 UML code engineering supports Java, Java Bytecode, C++ (ANSI, CLI, Managed), C#, CIL, CIL Disassembler, CORBA IDL, DDL (Cloudscape, DB2, Microsoft Access, Microsoft SQL server, MySQL, Oracle, Pervasive, Pointbase, PostreSQL, Standard SQL, Sybase), XML Schema, WSDL, and EJB 2.0 notation. For more information on working with code engineering and databases, see MagicDraw Code&DatabaseEngineering UserGuide.pdf.

OpenAPI
This document describes the MagicDraw Open Java API and provides instructions on how to write your own plug-ins, create actions in the menus and toolbars, change UML model elements, and create new patterns. For more information on working with OpenAPI, see MagicDraw OpenAPI UserGuide.pdf.

Integrations
MagicDraw supports the following integrations:
Eclipse RAD BEA Workshop IntelliJ

25

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Editions and Features
JBuilder NetBeans OAW AndroMDA ProActivity CVS CaliberRM

For more information about MagicDraw integrations, see MagicDraw Integrations UserGuide.pdf.

MagicDraw Customization
MagicDraw introduces several advanced customization engines, based on UML Profiles:
Custom Diagram Wizard allows creating your own diagram types for custom profile. You may include your own toolbars, stereotyped elements, symbol styles, and custom smart manipulators. Such customization is saved in the special diagram descriptor that could be exchanged between users. This allows others to use your custom diagrams. Domain Specific Language Customization Engine (DSL customization engine) allows tuning domain specific profiles, customizing multiple GUI, model initialization, and semantic rules, creating your own specification dialogs. DSL customization is model-driven approach, based on UML profiling. Customization is saved as a UML model. Advanced UML Profiling allows the use of some profiling enhancements that are not defined in UML, but helps to solve some common problems like tag grouping, unwanted stereotypes, tags hiding, etc.

For more information about MagicDraw customization see UML Profiling and DSL UserGuide.pdf.

MagicDraw Plugins
For the full MagicDraw plugins list, see the following website: www.magicdraw.com/plugin. DoDAF This document describes all DoDAF artifacts, their forms (diagram, report, matrix, and table), mapping to MagicDraw UML model, implementation details, and useful tips. This information is provided for every type of DoDAF product.

26

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Editions and Features For information on how to install, set up, and use the DoDAF plugin, see DoDAF Plugin UserGuide.pdf. SySML SysML (Systems Modeling Language) supports the specification, analysis, design, verification and validation of a broad range of complex systems. The SysML plugin for MagicDraw supports all SysML diagrams, including Requirements, Block Definition, Internal Blocks, Parametric, and others. With SysML, MagicDraw adds support for additional specification, analysis, design, and validation of a broad range of systems and system integrations. For information on how to install, set up, and use the SysML plugin, see SysML Plugin UserGuide.pdf. MagicRQ MagicRQ plugin is the MagicDraw integration with IBM/Rational RequisitePro and Telelogic DOORS requirements and use case management tools. For information on how to install, set up, and use the MagicRQ plugin, see MagicRQ Plugin UserGuide.pdf.

NOTE

For information about MagicDraw and Plugins compatibility see the following website: http://www.magicdraw.com/compatibility The table shows which versions of MagicDraw and MagicDraw Plugins can work together.

MagicDraw RConverter
MagicDraw RConverter generates data files in Rational Roses (*.mdl) to MagicDraws (*.xml). By obtaining information from Rational Rose via Rational Rose API (REI) and using VB6.0 to calculate the change, the resulting file is saved in the MagicDraw file (xml file extension) format. For information on working with RConverter, see NM_MagicDraw_RConverter_UserManual.pdf.

27

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Welcome Screen

MagicDraw Welcome Screen


The Welcome screen is displayed in the MagicDraw desktop when no projects are opened. It helps to manage projects, provides quick access to the product descriptions, samples, the latest news and updates. See the Welcome screen in Figure 1 on page 28. To open the Welcome screen from the Help main menu, choose the Show Welcome Screen command (note that no projects should be opened). The Show Welcome Screen option is added to the Environment Options dialog box, General branch, Display group. Using this option you can set whether the Welcome Screen will be displayed.

Figure 1 -- The MagicDraw Welcome Screen

28

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Welcome Screen Manage Projects Click Create New Project, to create a blank project. Click Open Project, to open existing project. The Recent Projects list contains list of the recently opened projects. Latest News Click on the particular news to read more detailed description. The news will be displayed in the MagicDraw News Reader. For more information, see MagicDraw News Reader on page 33. Whats New tab Click the description to open the following items:
Introduction to MagicDraw. The introductory MagicDraw sample is opened. New and noteworthy. The www.magicdraw.com/newandnoteworthy webpage is opened. See the list of a new MagicDraw features for the newest version. MagicDraw news. The MagicDraw News Reader is opened. For more information, see MagicDraw News Reader on page 33. MagicDraw updates. The Updates Information dialog box opens, with a list of the latest updates. Here you will be able to see what updates are available and update to a newer version. MagicDraw home page. Click this link to navigate to the www.magicdraw.com webpage.

29

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Welcome Screen

Figure 2 -- The Welcome Screen, Whats New tab

Resources and Plugins


Review available plugins. The www.magicdraw.com/plugin page is opened. All available plugins descriptions are available in this page. Install available resources. Click to open the Resource/Plugin Manager window. Download and install available resources and plugins using this manager. For more information, see Resource Manager on page 420. MagicDraw manuals. Click to open the <MagicDraw installation directory>\manuals folder, which contains MagicDraw manuals.

30

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Welcome Screen
Online demos. The www.magicdraw.com/viewlets webpage is opened. View demos, which introduces MagicDraw and MagicDraw features. MagicDraw eSchool. The http://school.nomagic.com/ webpage is opened.

Figure 3 -- The Welcome Screen, Resources and Plugins tab

31

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Welcome Screen Samples Quick navigation to MagicDraw samples. All samples from <MagicDraw installation folder> \samples directory are accessible in this page.

Figure 4 -- The Welcome Screen, Samples tab

32

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw News Reader

MagicDraw News Reader


Information about the latest MagicDraw events is provided in the new MagicDraw News Reader. The News Reader is accessible from the MagicDraw Help main menu, the MagicDraw News Reader command (see Figure 5 on page 34). MagicDraw News Reader informs about:
No Magic News. All news regarding company news, product news, new services provided, etc. New Versions. Messages about new MagicDraw releases, betas, service packs, plug-ins. Resources. Messages about MagicDraw resources updates.

When some news is available, a small envelope icon will be displayed at the right of MagicDraw status bar. Click on this icon to invoke the MagicDraw News Reader (see Figure 6 on page 35). Reading news in the MagicDraw News Reader Select the news channel at the left side of the MagicDraw News Reader and then select one of the news in the list. Bellow the title of the selected news, the description is presented. Unread messages are displayed in bold. Click the Open in Browser link to read description on www.magicdraw.com website.

To refresh news, press the Reader window.

Refresh button at the left top corner of the MagicDraw News

Setting options of the MagicDraw News Reader To change the checking period, change the Check for MagicDraw News property in the Environment Options dialog box, General section. Property provides the following options:
Once a day Once a week Once a month Do not check.

33

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw News Reader

Figure 5 -- MagicDraw News Reader

34

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Documentation and Support

Figure 6 -- Envelope icon informs about news in MagicDraw News Reader

MagicDraw Documentation and Support


MagicDraw provides several kinds of documentation. Choose the way you want to learn. You can find the MagicDraw manual and user guides in <MagicDraw installation>\manual folder. The main source of information about MagicDraw is www.magicdraw.com and documentation can be downloaded from www.magicdraw.com/documentation.

Help
The integrated help within MagicDraw is based on JavaHelp. MagicDraw help provides detailed descriptions of all MagicDraw dialog boxes, commands, and shortcut menus. You will also find a How-to list, as well as main descriptions and examples of all UML model elements.

Other Documentation
The main readme.html and notes.html files are located in the main MagicDraw installation directory. Readme documents are also available for MagicDraw integrations. In the notes.html file you will find the main information about MagicDraw features.

35

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Documentation and Support
Viewlets. View online demos introducing MagicDraw and particular functionalities. You may find online demos at www.magicdraw.com/viewlets. Samples. In the MagicDraw installation directory (samples directory), you will find the samples of MagicDraw projects.

Support
FAQ
Before you call or write an email, look into our FAQ (Frequently Asked Questions) list. It is constantly updated and perhaps it contains an answer to your question.

Newsgroups
Discuss and get answers about MagicDraw in newsgroups.

E-mail
Professional e-mail support is provided for registered MagicDraw users. [email protected] - private questions about product installation, and more. [email protected] - questions regarding academic and site discounts and/or quotes. [email protected] - e-mail for other contacts. Get an answer in 24 hours!

Bug Reports
Submit notifications of software errors by submitting a bug directly from MagicDraw (Help menu>Submit a Bug) or by sending an email to [email protected]. These reports help us address issues in a more timely manner, as well as speeding up maintenance releases that are free of known defects.

36

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Documentation and Support When sending your report by email, please include (if applicable):
MagicDraw UML version number and name of the edition (Reader, Community, Personal, Standard, Enterprise, Professional Java, Professional C++, Professional C#, Demo, or Academic). demo CD, our homepage download. Version distribution (Standard/Professional, Windows/Java bytecode). Your OS name and version. JDK version, JVM vendor. CLASSPATH settings.

If you do not have this information, you can find it by opening the About dialog from the MagicDraw Help menu. If MagicDraw is unable to load your file, and the file is not confidential, please attach it to your submission. This will assist us in our analysis of your problem.

37

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Documentation and Support To open the Submit a Bug dialog box
Select Submit a Bug from the Help menu.

Figure 7 -- Submit a Bug dialog box, Submit Form tab

38

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Documentation and Support

Figure 8 -- Submit a Bug dialog box, Attachments tab Tab name Submit Form Box Your Name Your E-Mail Bug Name Bug Category Bug Description Function

Type your name. Type your e-mail address. Give a name to the bug. Select a bug category, or create a new category that is more fitting. Describe the bug or suggestion.

Fill in the information about yourself and describe the bug or suggestion.

39

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Documentation and Support
Tab name Attachments Box Attach log file Attach project file Attach used modules Attach diagram images Image format Function

Attach MagicDraw log file with included errors. Attach currect MagicDraw project and send it to the support team. Attached modules used in the project. Attach images of selected diagrams. Select format of the diagram images, which will be sent to the support team. To specify image options click the Options button. Select the Overwrite existing files check box, to overwrite existing files with the current one. Select all diagrams displayed in the Select Diagrams list. Remove all previously selected diagrams from bug report. Loads all diagrams of the project. By default only open diagrams are shown in the Select Diagrams list. Send the bug. RECOMMENDATION: You may submit a bug by mailing to [email protected], but it is recommended that you submit a bug directly from within the MagicDraw tool. This assures that the MagicDraw team will receive the description of the bug along with your system information.

Select a file or diagram you want to attach to the bug description.

Overwrite existing files Select All Clear All Load All Diagrams

Buttons

Send

Cancel Help

Exits the dialog box without saving changes. Displays MagicDraw Help.

To submit a bug when application is unresponsive If MagicDraw becomes unresponsive, a separately executable tool is provided for analyzing the status of the process to aide in bug submission. In these situations, manually start the submitbug.exe file (located in the <MagicDraw installation directory>\bin folder) and follow directions. After submit-

40

Copyright 1998-2009 No Magic, Inc.

1 I N T R O D U C I N G M A G I C D R AW
MagicDraw Documentation and Support bug.exe is started, the Submit a Bug dialog box opens. For more information about the Submit a Bug dialog box, see To open the Submit a Bug dialog box on page 38.

View and submit internal errors


If an error occurs, an error message will appear at the bottom of the MagicDraw window.

Figure 9 -- Message, about MagicDraw internal error.

To view internal errors


To view internal errors you have to open the Unhandled Errors dialog box. There are three methods for to open the Unhandled Errors dialog.
Click the View and submit internal errors button in the message window. From the Help main menu, choose the View and Submit internal errors command. Click the notification icon

on the status bar.

Note: The View and Submit internal errors command is only active in the Help menu and the red button at the bottom of the status bar only exists if the Submit errors dialog box contains errors.

To submit an error
1. Open the Unhandled Errors dialog box. 2. Click the Submit button in the Unhandled Errors dialog box. The Submit Error dialog box appears. 3. Fill in Your name, Your e-mail and Bug description fields and click the Send button. The error will be sent to the MagicDraw support team.

41

Copyright 1998-2009 No Magic, Inc.

GETTING STARTED

In Getting Started, you will find information about how to install, update, and configure MagicDraw.
1. "System requirements", on page 42 2. "Java Virtual Machine (JVM)", on page 43 3. "Installation Procedure", on page 44 4. "MagicDraw Configuration Files Location", on page 47 5. "Updating", on page 48

System requirements
To run MagicDraw UML, your system must meet the following requirements:
Resource type CPU Memory Minimum PentiumTM 3, 800 MHz Recommended PentiumTM 4, 1.4 GHz or higher 1 GB RAM recommended; more memory generally improves responsiveness. 2 GB RAM is recommended for MicrosoftTM Windows Vista and for very large projects 400 MB or more 1280*1024 @ 64k Colors

768 MB

Disk space Video mode Operating system

400 MB 800*600 @ 64k Colors

All that have Java compatible JVM 1.5 or 1.6: Windows 95/98/NT/2000/XP/Vista, Linux, Mac OS X (most testing procedures and debugging were performed on these platforms)

HTML browser Java Virtual Machine (JVM)

Any JDK 1.5

Netscape Navigator or IE Suns JDK 1.6.0_10

42

Copyright 1998-2009 No Magic, Inc.

2 GETTING STARTED
Java Virtual Machine (JVM)

Java Virtual Machine (JVM)


You may have the JVM installed on your computer or install JVM together with MagicDraw specifically for the MagicDraw application. JVM is an application that provides the interpretation of the Java bytecode Java class files. Different operating systems may have different JVM implementations, therefore some bugs may be specific to the operating system or JVM. MagicDraw is a stable environment, if it is configured properly and if a stable JVM is used. USE THE RECOMMENDED JVM TO AVOID MOST PROBLEMS. All recommendations are written below. Because 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 a specific OS. JDK 1.1.x, 1.2.x, 1.3.x, and 1.4.x are not supported. You can review your system and the JVM information in the About dialog box, Environment tab (from the Help menu, select About). The JDK version can also be encountered from the command line by typing:
java -version

To change Java version


All platforms: Change line in file mduml.properties (this file is in <MagicDraw installation directory>/bin folder): JAVA_HOME = <path to new JDK> NOTE Integrated MagicDraw runs on the JVM specified by the IDE. In order to change the JVM, you need to modify the startup properties for the IDE that MagicDraw integrates with. If you are running MagicDraw integrated with IDE, read the appropriate readme.html for specific integration. This file can be found in <MAGICDRAW installation directory>/integrations/<IDE directory>.

To redirect output to the console instead of a log file


By default all MagicDraw output info goes into a file. The output can be redirected to the console instead of a log file. All platforms: Pass application argument (not java property) -verbose.

43

Copyright 1998-2009 No Magic, Inc.

2 GETTING STARTED
Installation Procedure
Add argument into the JAVA_ARGS line in the mduml.properties file (this file is in <MagicDraw installation directory>/bin folder): APP_ARGS =-verbose

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.6.0_10 is recommended. Sun (JDK standard) for Windows (95/98, 2000, 2003, NT, Vista). JDK 1.6.0_10 is recommended. MagicDraw only runs on Mac OS X operating system. We recommend using JDK 1.5.

Installation Procedure
First, obtain the MagicDraw installation files. You can download the latest version from the MagicDraw homepage (http://www.magicdraw.com/.) Because MagicDraw is a Java application, you will need more than the installation files to run the tool successfully. You can also install JVM together with MagicDraw or you may already have it installed. Information about the latest Java ports is available at http://www.magicdraw.com/jvm_list.htm.
NOTE If an installation is for Windows, and has a JVM you do not need anything else.

Windows 2000/2003/NT/XP/Vista*
After downloading, double-click MD_UML_<version>_win.exe.

44

Copyright 1998-2009 No Magic, Inc.

2 GETTING STARTED
Installation Procedure The Setup Wizard automatically adds MagicDraw UML shortcuts to the start menu and the desktop. You may also execute the shortcuts from the installation directory.
NOTE MagicDraw is working on Vista OS since MagicDraw 12.5 version.

Unix
After downloading, open a shell and go to the directory where you downloaded the installer. At the prompt type: sh ./MD_UML_<version>_unix.sh.

MAC OS X
Recommended Mac OS X v10.4 (Tiger), Mac OS X v10.5 (Leopard), and Java 1.5. After downloading, double-click MD_UML_<version>_mac.dmg and install the application by dropping the launcher to the Applications folder (or somewhere else). We suggest to create additional folders for different MagicDraw versions in MAC OS X Applications folder in case do not overwrite old client with the new one. After installing MagicDraw to several folders you will be able to import the old MagicDraw version configuration. To install MagicDraw to newly created folder:
1. In the Applications folder create folder named as MagicDraw version. For example, MagicDraw UML 16.0. 2. Drag MD_UML_<version number>_mac.dmg content to the Applications/MagicDraw UML 16.0.

All other platforms instructions (no install version)


Download MD_UML_<version>_no_install.zip. After downloading, extract the contents of the zip. These files require some modifications prior to launching them. On Windows platform:
Launch mduml.exe in bin directory to start MagicDraw.

On Unix or Mac OS X platform:

45

Copyright 1998-2009 No Magic, Inc.

2 GETTING STARTED
Licensing Information Display
Launch ./mduml in bin directory to start MagicDraw.

Be sure you have JVM installed.

Licensing Information Display


Information about installed or needed licenses and the status is presented in the MagicDraw About screen with the ability to remove unused licenses (see Figure 10 on page 47). User ID User ID is displayed in the About dialog box, Licensing tab. Please refer to user ID when contacting support or sales. Not installed indication If license is not installed, "Not installed" text is displayed after the license name. Not started indication If licenses is installed but not started "Not started" text is displayed after license name and reason is be given. Possible reasons:
Required resource is not installed. Plugin startup failed. Other.

The Remove Unused Licenses button Press button Remove Unused Licenses in the About screen, Licensing tab to remove licenses of not installed plugins. NOTE
If you have any questions or issues, please submit a bug using the Submit a Bug dialog box. For more information, see View and submit internal errors on page 41.

46

Copyright 1998-2009 No Magic, Inc.

2 GETTING STARTED

MagicDraw Configuration Files Location

Figure 10 -- The MagicDraw About window, Licensing tab

MagicDraw Configuration Files Location


By default MagicDraw configuration and auxiliary files are stored in the user home directory - <User home directory>/.magicdraw/<version>. You may also save configuration files:
In the MagicDraw installation directory. In your chosen directory.

47

Copyright 1998-2009 No Magic, Inc.

2 GETTING STARTED
Updating You may check the exact path to the configuration files in the MagicDraw About screen, Environment tab, Configuration files line (invoke the About screen from the Help main menu, About MagicDraw command). To store MagicDraw configuration files in the MagicDraw installation directory
Add argument to JAVA_ARGS line in the file mduml.properties file (this file is in <MagicDraw installation directory>/bin):

JAVA_ARGS=-DLOCALCONFIG=false

To store MagicDraw configuration files to your chosen location You may define custom path for configuration files in two ways:
In the mduml.properties file, JAVA_ARGS line add the property

-Dlocalconfig.location=<custom path>

Define custom path in a newly created file:

1. In the <User home directory>/.magicdraw/<version> folder, create a file named magicdrawredirect. 2. In the created file, type the absolute path where the MagicDraw configuration and auxiliary files will be saved, for example: C:\<directory name>. NOTE If MagicDraw is configured to store files in the MagicDraw installation directory (see the topic To store MagicDraw configuration files in the MagicDraw installation directory above), files will not be stored to your chosen location.

Updating
An automatic updates feature is implemented in MagicDraw. Notification and update of all the patches can be done automatically. To enable an automatic checking for MagicDraw updates
1. Open the Environment Options dialog box, Update pane. For a detailed description of this dialog box, see Update pane on page 119.

48

Copyright 1998-2009 No Magic, Inc.

2 GETTING STARTED
Updating
2. Select a period when MagicDraw should check for updates from the Check for Updates dropdown list box: Manually, On startup, Once a day, Once a week, Once a month. It is recommended to check for updates once a month. NOTE You may also manually check for updates: go to the Help menu and select the Check for Updates command.

Auto-Check for Updates dialog box


The dialog box is opened when automatic checking for MagicDraw updates is enabled on the Update pane in the Environment Options dialog box and the Show Auto-Checking Confirmation Dialog Box check box is selected.
Element Name Show this tip next time Check Cancel Help Function If selected, the dialog box is opened each time that MagicDraw should be updated according to the schedule selected on the Update pane in the Environment Options dialog box. Starts checking for MagicDraw updates in the http:// www.magicdraw.com page. Closes the dialog box without saving changes. Displays MagicDraw Help.

49

Copyright 1998-2009 No Magic, Inc.

USING MAGICDRAW

In Using MagicDraw, you will find information about how to define MagicDraw according to perspective, an introduction to the MagicDraw User Interface, and defining your environment.
"Perspective Selection and Customization", on page 50. "MagicDraw User Interface", on page 58. "Menu System", on page 60. "Toolbars", on page 82. "Using the Browser", on page 85. "Setting Environment Options", on page 104. "Look and Feel: Controlling the Interface", on page 135 "Assigning Shortcut Keys", on page 137.

Perspective Selection and Customization


Launch MagicDraw for the first time and after the application starts, the MagicDraw Startup dialog box appears. In this dialog box you may select your work perspective. Due to the growing number of MagicDraw features, many features may be configured for standard or expert user. MagicDraw can satisfy the needs of different software development process roles. In order to better satisfy user needs, MagicDraw configuration depends on Perspective. Perspectives allow:
The selection of a predefined MagicDraw configuration and features according to your software development process role. Finding features faster, because there are less of them. To choosing a suitable MagicDraw experience mode with a single click. Customizing a set of predefined features and configuration based on user needs.

There are three perspective modes in MagicDraw:

50

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW

Perspective Selection and Customization

Business Analyst - this perspective provides features for the Business Analyst. This role is responsible for defining business architecture. Code engineering, transformations, extensions, and other features are hidden. Software Architect - this perspective provides features primarily involved in designing and implementing projects. It is a set of roles consisting of Software Architect, Designer, Interface designer, and Database designer. This is the default MagicDraw configuration. All functionalities are available for expert mode. System Analyst - this perspective provides features primarily dedicated to obtaining requirements and modeling the system. Analysis features are highlighted. Configuration is modeling oriented. Code engineering, transformations and other features are hidden.

To set the perspective for the MagicDraw environment


Launch MagicDraw for the first time. The MagicDraw Startup dialog box will appear with the possibility to switch between perspectives. Select the desired perspective from the list and click OK. From the Options main menu, choose Perspectives and then Perspectives. The Perspectives dialog box opens. Select the desired perspective and click Apply.

Customizing MagicDraw Perspectives


Perspective customization allows the grouping of functional MagicDraw features to standard/expert modes. Customization also allows the user to hide unnecessary commands, which makes MagicDraw simpler and faster to use. To open the Customize Perspectives dialog box
From the Options main menu, choose Perspectives and then Customize. In the Perspectives dialog box, click the Customize button.

MagicDraw has six customizable areas in three different perspectives. Each of these areas has a set of commands, which can be shown in standard/expert mode, or hidden:
Main menu; Main toolbars; Diagram toolbar; Diagram modeling elements toolbar; Context menu actions;

51

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Reports.

Perspective Selection and Customization

To customize the selected MagicDraw area in a predefined perspective


1. In the Customize Perspectives dialog box, select the perspective and click the Edit button near the selected MagicDraw area. The appropriate Customize dialog box opens. 2. Expand tree sections and select radio buttons beside items in the tree depending on your choice for Standard and Expert, Expert only or Hidden modes. 3. Click OK to save changes, then OK in the Customize Perspectives dialog box, and then Apply in the Perspectives dialog box (if needed).

To switch between Standard/Expert menu, toolbar, or diagram toolbar modes


From the toolbar shortcut menu, select/clear the Expert Menu Mode or Expert Toolbar Mode check box.

From the diagram buttons toolbar menu, select/clear Expert Mode check box.

52

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
MagicDraw Startup dialog box

Perspective Selection and Customization

Launch MagicDraw for the first time. The MagicDraw Startup dialog box will appear with the possibility to switch between perspectives.

Figure 11 -- MagicDraw Startup dialog box Element Name Business Analyst Full Featured Software Architect System Analyst Expert Function Possible perspectives to set, which will load a predefined MagicDraw configuration.

If not selected, a simplified MagicDraw interface with the most popular items and features will be opened and the specification properties will be shown in Standard Mode.

53

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Element Name Integrate OK Help Function

Perspective Selection and Customization

Opens the Integrations dialog box for quick integration with the selected tool. Loads MagicDraw with the selected perspective. Displays MagicDraw Help.

54

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Perspectives dialog box

Perspective Selection and Customization

From the Options main menu, choose Perspectives and then Perspectives.

Figure 12 -- Perspectives dialog box Element Name Business Analyst Software Architect System Analyst Customize Expert Function List of possible perspectives, which will load a predefined MagicDraw configuration.

Opens the Customize Perspective dialog box. If not selected, a simplified MagicDraw interface with the most popular items and features will be opened and the specification properties will be shown in Standard Mode. The selected perspective will be applied for current MagicDraw mode. Closes the dialog box without saving changes.

Apply Cancel

55

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Element Name Help Function

Perspective Selection and Customization

Displays MagicDraw Help.

Customize Perspectives dialog box


From the Options main menu, choose Perspectives and then Customize.

Figure 13 -- Customize Perspectives dialog box Element Name Clone Selected Perspective Function Copies the selected perspective to a new one.

56

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Element Name Rename Selected Perspective Function

Perspective Selection and Customization

The Enter Perspective Name dialog box opens. Change name of the perspective and click OK. Renaming can also be performed using the F2 shortcut key. Deletes the selected perspective from the list.

Remove Selected Perspective

Import New Perspective

The Open dialog box appears. Select *.umd extension file and click Open to import the perspective into the MagicDraw environment.

Export Selected Perspective

The Save dialog box opens. Type a name for the created perspective and click Save to store it as *.umd extension file.

Business Analyst Software Architect System Analyst MagicDraw Area Edit Description Reset to Defaults

List of possible perspectives, which will load the predefined MagicDraw configuration.

List of customizable toolbars and command sections. Click the Edit button to open the Customize Main Menu dialog box in which a commands mode could be changed by selecting radio buttons. Displays short description about each selected area. Resets changes back to the default configuration.

57

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
MagicDraw User Interface

MagicDraw User Interface


MagicDraw main window has the following main parts:
main menu main toolbar browser diagram toolbar diagram pane

Figure 14 -- MagicDraw main UI structure

Nearly all MagicDraw commands can be accessed from multiple places within MagicDraw;

58

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
MagicDraw User Interface
Main menu Main toolbar Browser Diagram toolbar Shortcut menus (accessible by right-clicking) Shortcut keys Smart manipulators (accessible by selecting a symbol on the diagram pane).

The table below shows how several commands are accessible in various ways:
Function Main operations of editing (copy, cut, paste, delete) Accessibility

Edit menu. Main toolbar buttons. Shortcut keys. Shortcut menu commands from Browser.

Opening of Specification dialog boxes

By double-clicking the model element. Specification command from the element shortcut menu on the

diagram or Browser.
When adding one model element to another model element from

the Specification dialog box or Browser.


Defining symbols properties (font, color, etc.)
Symbol shortcut menu -> Symbol(s) Properties. Options menu -> Project. Main toolbar buttons

NOTEs

The Symbol shortcut menu is also accessible from the Edit menu, Symbol. The toolbar of a particular diagram presents the paths and shapes available for the corresponding diagram. If an arrow is placed on the diagram toolbar button, select a button representing the corresponding model element by right-clicking the button.

59

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System

Menu System
File menu
Command New Project Button / Hot keys Function

Creates a new project. Choose an icon to create a new Blank Project, create a Project from an Existing Source, or create a Project from a Template. CTRL+N 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 previously created or open projects. You may work on only one open or created project at a time. If you wish to work with another project, select the project name in the Projects list on the main window toolbar.

Open Project

Opens an existing project. The Open dialog box 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, select the project name in the Projects list on the main window toolbar. Saves the open project. To save the current project for the first time, type the name of the project and select the format of the file you wish to save. CTRL+S

CTRL+O
Save Project

Save Project As

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 box appears. Type the name of the project and select the format of the file you wish to save.

60

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Close Project Button / Hot keys Function

Closes an open project. If the open project has unsaved changes, MagicDraw displays a dialog box asking whether the changes should be saved before the project is closed.

Close All Projects

Closes all open projects. If the open projects have unsaved changes, MagicDraw displays a dialog box asking whether the changes should be saved before the each project is closed.

Import MagicDraw Project

The Import dialog box appears. Select the project you wish to import. You may import as many projects as you wish. Imports an existing project to a previously open project. This is the recommended command for importing an existing project to the teamwork server.

Use Module Export

The Use Module dialog box appears. Choose profile or module for use in the project.
Module - saves the content of the selected objects in

a separate file.
Template - saves the current project as a template

project.
EMF UML2 (v1.x) XMI - exports the MagicDraw

model to EMF based UML 2 compatible XMI.


BPEL - exports the Business Process diagram to the

Business Process Execution Language (BPEL), based on BPEL specification v.1.1


Share Packages Save As Image

Saves the package as a separate module. Saves the open diagram as an image of in the selected formats. The Save As Image command is used for saving any item or group of items selected in the diagram pane, in one of the various image file formats.

61

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Print Button / Hot keys Function

CTRL+P
Print Preview

The Print dialog box appears. Printing of active diagram, selected symbols, or selected diagrams is available. 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 opens.

Print Options Project Properties

The Print Options dialog box opens. The Project Properties dialog box opens. This dialog box contains the following information: project location, file size, date created, date modified for the last time, and number of diagrams in the project. In the Description tab, type the description of the project or other important information. The Modules tab shows a list of modules the project is using. 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 box.

Opened Projects Exit

A list of open projects. Exits the application. All open projects are closed. If an open project has unsaved changes, the MagicDraw displays a dialog box asking whether the changes should be saved before closing the project.

The File menu contains a list of recent projects. The shortcuts with numbers to recent projects are displayed. If the shortcut is selected from the File menu, the recent project will open instantly.

62

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System

Edit menu
MagicDraw allows you to use the Edit menu commands while drawing the diagrams on the Diagram pane. The commands allow selecting, cutting, copying, and pasting of items and entire diagrams, reversing the actions you have taken while drawing, and finding an item in the current project.
Button/ Shortcut keys

Command Undo

Function

CTRL+Z

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 opposite order you have performed them, starting with the most recent. 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 box appears. Change the Undo List Size property. The Undo command is unavailable until you perform any action after loading an 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.

Redo

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. CTRL+Y

63

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Cut Button/ Shortcut keys Function

Cuts the selected items or group of items on the Diagram pane. The cut items are placed in the clipboard. Later they can be pasted back to the Diagram pane of the current or to another project. The Cut command is unavailable until you select any item or any group of items on the Diagram pane of the current project.

CTRL+X

Copy

Copies the selected items or group of items on the Diagram pane. The copied items are placed in the clipboard. The cut items can be pasted back to the Diagram pane or to another project. The Copy command is unavailable until you select any item or any group of items on the Diagram pane of the current project.

CTRL+C

Paste

Pastes the cut or copied items or group of items from the clipboard to the Diagram pane of the current project. MagicDraw creates shapes for items, or a group of items, in the current project. You will see the data and shapes of the pasted items and diagrams in the Browser window. Pastes the cut or copied items or 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.

CTRL+V
Paste With New Data

CTRL+E

Delete

CTRL+D

64

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Delete Symbol(s) Select All Select All of the Same Type Copy as EMF Button/ Shortcut keys Function

DELETE CTRL+A CTRL+ALT+A

Deletes a symbol of model element from the diagrams, by leaving it in the model. Selects all items on the Diagram pane of a particular project. Selects all shapes of the selected types in active diagram. Enabled, when one or more shapes are selected in active diagram. Copies the selected model elements to the system clipboard. If no model elements are selected, the active diagram is copied. NOTE Copying as EMF is available only under Windows system.

CTRL+SHIFT +E

Copy as JPG

CTRL+SHIFT +J Copies the selected model elements to the system clipboard as a JPG image. If no model elements are selected, the active diagram is copied. NOTE Copying as JPG is available only under Windows system.

Copy as PNG CTRL+SHIFT

+P

Copies the selected model elements to the system clipboard as a PNG image. If no model elements are selected, the active diagram is copied. NOTE
Copying as PNG is available only under Windows system.

Find

Opens the Find dialog box.

CTRL+F
Quick Find Find TODO

CTRL+ALT+F

Performs a quick search of class/interface, classifier, or diagram. Performs a search for the TODO tagged value. Results are displayed in the Browser, Search Results tab.

65

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Paths Button/ Shortcut keys Function
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.


Change Path Style switches in series between

rectilinear, oblique, and bezier path line style. Shortcut is 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 a line straight.


Symbol

All commands that are available through the shortcut menu for a particular symbol.

66

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System

View menu
Command Fit In Window Button / Hot keys Function

CTRL+W
Zoom In

Reduces the size of the whole diagram to fit in the Diagram pane. To change the zoom step size choose Environment from the Options menu and set the Zoom Step Size property in the Environment Options dialog box. Decreases the size of the selected objects in the diagram pane by x percent.

CTRL+NUMPAD PLUS SIGN (+)


Zoom Out

CTRL+NUMPAD MINUS SIGN (-)

To change the zoom step size, choose Environment from the Options menu and set the Zoom Step Size property in the Environment Options dialog box. Restores the original size of the selected diagram symbols.

Zoom 1:1

CTRL+NUMPAD SLASH MARK (/)


Zoom To Selection

CTRL+NUMPAD ASTERICS MARK (*) CTRL+R

Increases the size of the selected model element on the Diagram pane to the maximum visible size. Repaints all diagram shapes.

Refresh

67

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Grid Button / Hot keys Function

Set grid options. Every diagram may have its own grid settings:
Show Grid - show/hide grid Snap Paths to Grid - use/do not

use grid for drawing paths.


Snap Shapes to Grid - use/do not

use grid for drawing shapes.


Grid Size - change the grid size.

Type the number.


Recently Closed Diagrams Main Toolbars: Menu Bar
File Diagrams Custom Diagrams Opened Prijects Teamwork Rearrangable Hidable Floatable Expert Menu Mode Expert Toolbar Mode Customize

F12

Opens a list of diagrams that were last closed. Clear the check boxes of the toolbars you want to hide or select/clear check boxes to rearrange toolbar modes.

68

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Diagram Toolbars: Symbol Editing
Path Editing Edit View Layout Rearrangable Hidable Floatable Expert Mode Customize

Button / Hot keys

Function

Clear the check boxes of the toolbars you want to hide or select/clear check boxes to rearrange toolbar modes.

Status Line

Select the check box of Show Status Bar or Show Memory Monitor to display this info on the status line.

Layout menu
Use the commands of the Layout menu for managing the layout of the shapes on the current Diagram pane. You must select more than one shape for other Layout menu commands. A class diagram should be open and activate before using the Class Diagram command in this menu.
Command Layout Options Quick Diagram Layout (CTRL+Q) Layout Class Diagram Style Layout Activity Diagram Style Layout Business Process Diagram Style Function

Opens the Diagram Layout Options dialog box. Layout options for the diagram can be set. Applies recommended layout with default options on the active diagram. Applies layout, which uses specific layout algorithms to improve class diagram readability. Applies layout, which uses specific layout algorithms to improve activity diagram readability. Applies layout, which uses specific layout algorithms to improve business process diagram readability.

69

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Layout Hierarchic Style Function

Applies layout that portrays the main direction or flow of directed graphs. It is ideal for many application areas, especially for Workflow, Software Engineering, Customer relationship management, Configuration management, Process modeling, Database Modeling, and Bio informatics. Applies layout, which specializes in the layout of treestructured graphs. The need to visualize directed or undirected trees arises in many application areas, e.g. Dataflow analysis, Software Engineering, Network management, Bio informatics. Applies layout that is well suited for medium sized sparse diagrams. It produces compact drawings with no overlapping shapes, few crossings, and few bends. All edges will be routed in an orthogonal style, i.e. only rectilinear style links will be used. Applies layout of the organic style graph. Applies layout of the algorithm that portrays interconnected ring and star topologies. It is excellent for applications in social networking (criminology, economics, ...), network management, WWW visualization, and eCommerce. only vertical and horizontal line segments, while keeping the positions of the shapes in the diagram fixed. The routed links will usually not cross through any shapes and not overlap any other links.

Layout Tree Style

Layout Orthogonal Style

Layout Organic Style Layout Circular Style

Route Paths Orthogonal Style Applies layout, which routes the links of a diagram using

Route Paths Organic Style

Applies layout, which routes the links of a diagram using oblique link style, while keeping the positions of the shapes in the diagram fixed. The routed links will usually not cross through any shapes and not overlap any other links. Applies layout to the selected shapes according to their width. After the layout, the width of the shapes is equal (according to the widest).

Make Same Width

70

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Make Same Height Function

Applies layout to the selected shapes according the their height. After the layout, height of the shapes is equal (according to the tallest). Aligns the selected shapes:
Aligns the selected shape(s) vertically, starting with the

Align Right
Left Top Bottom

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 horizontal line. Centers the selected shape(s) on a vertical line.

Center Horizontally
Vertically

Space Evenly Horizontally


Vertically

Sets spaces among the selected shapes evenly.


Spaces between the selected shapes becomes even on

a horizontal line.
Spaces between the selected shapes becomes even on

a vertical line.

71

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System

Diagrams menu
Command Diagrams Customize Diagram Wizards Hot keys Function

Select the required diagram in the list, to create it. The Customize Diagrams dialog box opens. Wizards for creating diagrams may be opened:
Class Diagram Wizard Package Dependency Diagram Wizard Package Overview Diagram Wizard Activity Decomposition Hierarchy Wizard Hierarchy Diagram Wizard Realization Diagram Wizard Sequence Diagram from Java Source

Wizard
Content Diagram Wizard

Previous Diagram

Activates the previously open diagram.

CTRL+0
Next Diagram

Activates the next diagram.

CTRL+9
Load All Diagrams

If there are unloaded diagrams in the project, this command loads all diagrams.

72

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System

Options menu
Command Project Modules Environment Perspectives Look and Feel Function

The Project Options dialog box opens. The Modules dialog box opens. The Environment Options dialog box opens. Choose a command from the submenu - to switch to different Perspective or to Customize. Changes MagicDraw graphic user interface style. Styles: Metal, CDE/Motif, Vsnet (Windows XP), Office 2003 (Windows XP), Eclipse (Windows), Xerto. The Look and Feel Themes command allows you to personalize the graphical user interface: set your favorite colors and fonts.

Interface Style

Multiple Windows, Single Window or JIDE interface style.

Tools menu
Command Apply Pattern Hot key Function

The Pattern Wizard dialog box appears. Create the design pattern for the selected class, interface. Opens the Model Transformations Wizard dialog box with a list of all available transformations. Opens the Hyperlink dialog where you can add hyperlinks to any model elements.

Model Transformations

Hyperlinks

73

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Report Wizard Hot key Function

The Report Wizard is the new report engine for MD 14.0 and above. It is designed to solve the several problems of the old engines (XSL/XSLT and JPython). It supports text based templates to generate the output file. The format of output file depends on the type of the template file. The type of template files that the Report Wizard supports are normal text, RTF, HTML, Spreadsheet template (need to be saved as HTML format), and XML template (DocBook or FO). All commercial MagicDraw editions will have full use of all features within the Report Wizard. MagicDraw Community edition will allow the user to generate output with watermarks. For more details, see the MagicDraw ReportWizard UserGuide.pdf, which is located in the MagicDraw installation directory, Manual folder.

Software Design Model Enrichment Use Case Model Enrichment Quick Reverse

Opens the Software Design Model Wizard dialog box. Opens the Use Case Model Wizard dialog box. Choose the language you need (Java, Java Bytecode, C++, C#, CIL, CIL Disassembler, IDL, CORBA IDL, DDL, EJB, EJB 2.0, XML Schema, WSDL). Opens the Round Trip Set dialog box. (For more details, see Code Engineering Users Guide).
CTRL+G

Generate Code Framework

Generates code for the selected items in the current diagram. Opens the Message Window with the information appears (For more details, see Code Engineering Users Guide). Checks syntax in the model according to the default code engineering language. Opens the Message Window with the information.

Check Syntax

CTRL+T

74

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Set empty tags to defaults Hot key Function

Set default tag value to tag with empty value. This functionality is needed when the stereotype is already assigned to an element and the new mandatory tag definition with default value is created for the stereotype. After creating such a tag definition, the model elements that have the modified stereotype applied will have newly created tags unset. For more information see To create default tag values on page 702.

Integrations CaliberRM
Login Logout Launch CaliberRM Client CaliberRM Requirements

Opens the Integrations dialog box with a list of tools for possible integration with MagicDraw. Integration with CaliberRM. Opens the Login dialog box for login to CaliberRM server. Logs out from CaliberRM server. Launches CaliberRM Client application.
CTRL+ SHIFT+R

Opens the CaliberRM Requirements window in MagicDraw.

75

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command CVS
Command Line

Hot key

Function

Performs operations with CVS (for detailed description of integration with CVS, see MagicDraw Integrations Users Guide)
Allows the user to enter a CVS command line

(like checkout -c) whenever the CVS command is not available through the menus. The Command Line dialog box opens.

Checkout Module Add Project to CVS

Figure 15 -- Command Line dialog box


Use this option to checkout a new module on

your disk. The Checkout Module dialog box opens.


Adds a new project to CVS. The Add Project

to CVS dialog box opens. NOTE: You can add, update or commit projects to CVS only if they are saved in some checked out directory or subdirectory.

Commit Project to CVS Update CVS Project

Commits a project to CVS. The Commit

Project to CVS dialog box opens.


Updates the current project by loading the

latest project version from CVS.

76

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command ProActivity Import Hot key Function

The Import ProActivity Files dialog box opens. Specify ProActivity files to start the import process. The UML diagrams will be generated depending on the input files. The Export to ProActivity wizard guides the MagicDraw model export process to ProActivity. For more information about C# code engineering, read MagicDraw Code&DatabaseEngineering UserGuide.pdf For more information about C++ code engineering, read MagicDraw Code&DatabaseEngineering UserGuide.pdf

Export

Update C# Language Properties and Profiles

Update C++ Language Properties and Profiles

Analyze menu

Command Model Visualizer Metrics

Hot key

Function

Opens the Model Visualizer dialog box with a list of all available wizards. Metrics functionality allows the measurement of a project by different viewpoints. Specify the metrics scope in the Metrics Options dialog box. Opens the Compare Projects dialog box, where you can choose projects to perform model differencing.

Compare Projects

77

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Dependency Matrix Hot key Function

Dependency Matrix is a method of visualizing and representing dependency criteria. Diagrams, UML, and extended UML elements serve as row and column entries. The cells in the matrix show where these elements are associated - related. Choose the Create Blank Matrix command to open the Matrix Dependency View Choose the Matrix Templates command to open the Dependency Matrix Templates dialog box.

Validation Validate Shape Ownership

For more information about validation, read Validation section. Validates if the symbol owner on the diagram matches the actual element owner in the model. Using the symbol ownership validation feature, shape ownership problems will be highlighted on the diagram pane and you will be able to easily see and resolve them. For more information about shapes checking on diagram see Resource Manager on page 420. Validates if a symbol owner on the diagram matches the actual element owner in the model. Using the symbol ownership validation feature, shape ownership problems will be highlighted on the diagram pane and you will be able to easily see and resolve them. For more information see Resource Manager on page 420. Displays paths among shapes that are already created in the model data. Displays elements related to the selected element.

Validate Shape Ownership

Display Paths Display Related Elements

78

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Used By Depends On Go To Hot key CTRL+ALT+U CTRL+ALT+D Function

Finds a list of all elements that reference the current element. Finds a list of the elements that depend on the current element. This is a feature that allows you to find model elements associated with the selected model element. Enabled when a selected element is related to another model element.

Teamwork menu
For a detailed description about Teamwork Server, see MagicDraw Teamwork System Users Guide.

Window menu
You may use commands of the Window menu to manage the layout of the windows.
Command Containment Inheritance Diagrams Model Extensions Search Results Documentation Zoom Hot key Function

Opens the Containment Tree tab in the Browser window. Opens the Inheritance Tree tab in the Browser window. Opens the Diagrams Tree tab in the Browser window. Opens the Model Extensions Tree tab in the Browser window. Opens the Search Results tab in the Browser window. Opens the Documentation tab in the Browser window. Opens the Zoom tab in the Browser window

79

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System
Command Properties Messages Window Hot key Function

Opens the Properties tab in the Browser window CTRL+M Opens the Messages Window. The Messages 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. All Browser tabs are placed in their default position. Displays a list of open diagrams. CTRL+ SHIFT+ F4 Closes all open diagrams except the one you currently being used.

Reset Windows Configuration List of opened diagrams Close All Diagrams But Current

Close All Diagrams

CTRL+ ALT+F4

Closes all open diagrams.

The Window menu contains a list of open diagrams 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 box. For a detailed description on this dialog box, see the Section Setting Environment Options on page 104.

80

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Menu System

Help menu
Command Help Contents User Manual Tip of the Day View and Submit Internal Errors Function

Displays a table of contents for the MagicDraw Help. Opens the MagicDraw User Manual. Displays the Tip of the Day screen. View errors received during work with MagicDraw. Send a bug report to the MagicDraw support team. For more information about submitting a bug see Bug Reports on page 36.

Submit a Bug

The MagicDraw team always welcomes your initiative. Submit bugs, suggestions, and new feature requests in the Submit a Bug dialog box. Opens The HTTP Proxy Server Connection dialog box. Set the data for connection to start the MagicDraw UML update. Change/enter the unlock key in the MagicDraw Unlock Key dialog box. Check for available updates and new resources in the Resource/Plugin Manager window. The WWW pages where you can find additional information about MagicDraw and UML. Get online support.

Check for Updates

Unlock MagicDraw/Plugin Key Resource/Plugin Manager MagicDraw on the Web Online Support
Online Demo New and Noteworthy MagicDraw Home Page UML Stuff No Magic Home Page

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.
About MagicDraw

Displays the information screen about the MagicDraw tool.

81

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Toolbars

Toolbars
In MagicDraw, you can hide different toolbar parts: right-click the toolbar and select/clear toolbar check boxes you want to be displayed/hidden. You may also save your own toolbar configuration and set it as a default one.

Customizing toolbars
Toolbars configuration shortcut menu has the following commands:

Check box Rearrangable

Function

If selected, it is possible to change the toolbar position by selecting the dotted line in front of the desired toolbar group and dragging it to a new location. If selected, there is no possibility to close a separately opened toolbar group (for example, dragged diagram pane) with the X button on the right top corner.

Hidable

82

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Toolbars
Check box Floatable Expert Menu Mode Function

If selected, the toolbar group can be dragged to any desirable position inside the MagicDraw borders. If selected, all menu commands will be listed on the menu. Otherwise, the command list will be shortened and you can expand it by clicking the arrow on the bottom. If selected, displays all toolbar buttons, which were marked to be shown in the Expert mode perspective. Opens the Customize Main Toolbars dialog box.

Expert Toolbar Mode Customizet

To customize toolbars
1. From the toolbars configuration shortcut menu, select Customize. The Customize

Main Toolbars dialog box opens.


2. Click the Add button to append a new button or toolbar to the selected main toolbars

section. 3. If add button was selected, the Add Button dialog box opens. Choose the desired command from the tree and click OK. The button will be added in the selected main toolbar section.

83

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Toolbars
If the choice was made to add a toolbar, the Enter Toolbar Name dialog box opens.

Type the name and click OK to create a new toolbar section, to which a new button group can be added.

Figure 16 -- The Customize Main Toolbars dialog box Button Add Edit Remove Up Down Reset to Defaults Function

Adds new button or toolbar. The Edit Icon dialog box opens. Click the ... button to add an icon to the selected toolbar button. Removes the selected button from the toolbar section. Moves the selected button up the toolbar list. Moves the selected button down the toolbar list. Resets changes made to the toolbar back to the default settings.

84

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser

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.

The Main Toolbar contains a Projects list box with all open and created project names. MagicDraw UML supports multiple projects, so 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 open or created project, select it from the Projects list box.

External Tools Toolbar


From the main toolbar shortcut menu, select the External Tools to open this toolbar. External tools configuration from the Environment Options dialog box is visible in a compact user-friendly form. Click the arrow button to launch any external tool from the list.

To configure external tools, go to the Options main menu, select Environment, then select the External Tools pane. For more information, see the section External Tools on page 130.

Using the Browser


View Online Demo MagicDraw Basics

The Browser provides a visual representation of the hierarchy of your model elements. The items in this hierarchy are either:
Compressed - a plus sign next to an icon indicates that the icon is compressed, which means that 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, it does not contain other model elements.

85

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser The Browser is a hierarchical navigation tool that allows you to manage your model data, including packages, components, classes, all UML diagrams, extension mechanisms, and other data. The Browser may be used as an alternative tool to the menus and toolbars that are in MagicDraw. It is easier to work with project 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 deleting 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 then 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 of a class directly from the classpath. Adjusting the code engineering sets. Code generation for particular sets. Filtering of the visible items, by any model type,(e.g. class, package, operation, component, state and others - for both 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. Displaying search results.

The Browser window parts


The Browser window is divided into two parts:
Containment tree/Diagrams tree/Inheritance tree/Model Extensions tree/Search Results. The Containment tree tab groups data in the logical sets. The Diagrams tab groups diagrams that are represented on the diagram pane according to the diagrams type or shows them as a list.

86

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser
The Inherence tree tab represents the class hierarchy of the project. The Model Extensions tree tab represents all predefined and created constraints and stereotypes. The Search results tab displays search results.
Documentation/Zoom Control part. The Documentation tab shows documentation associated with the selected item. The Zoom Control tab is responsible for zooming the current diagram.

Figure 17 -- Browser

87

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser When at least one Project is open, the Browser is placed to the left side of the main window. Beginning with MagicDraw version 7.5, it is possible to move the Browser to any place on the the MagicDraw application. Also, all tabs can be viewed separately and you may set up the Browser according to your needs by hiding the desired tabs. To change the size of either part of the Browser
Drag the bar that separates the two parts.

To change the Browser position from the Options menu


1. Select Environment from the Options menu. The Environment Options dialog box opens. 2. In the Browser tab, change the Browser Position property to Right or Left.

To close or reopen the desired tab of the Browser


From the Window menu, choose the tab you want to close/open.

To reset all Browser tabs to the default position


From the Window menu, choose Reset Windows Configuration command.

To sort items in browser alphabetically


1. Select Environment from the Options menu. The Environment Options dialog box opens. 2. In the Browser tab, set the Sort Always check box 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. To open the Containment tree
Click the Containment Tree tab at the top of the Browser.

88

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser
If the Containment tree is hidden, from the Window menu, select Containment Tree.

Figure 18 -- Containment tree

To show full information of operations, attributes, and relationships in the Containment Tree
In the Containment Tree tab, click the Show Full Types in Browser button

1. Choose Environment command from the Options menu. The Environment Options dialog box appears. 2. In the Browser tab, set the Show Full Types in Browser check box to true (default false).

To show stereotypes in the Containment tree


In the Containment Tree tab, click the Show Stereotypes in Browser button

1. Select Environment from the Options menu. The Environment Options dialog box opens. 2. In the Browser tab, set the Show Stereotypes in Browser check box to true (default false).

89

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser To show/hide Code Engineering sets branch
In the Containment Tree tab, click the Show Code Engineering Sets button

1. Select Environment from the Options menu. The Environment Options dialog box opens. 2. In the Browser tab, set the Show Code Engineering Sets check box to true (default true).

To show/hide Modules
In the Containment Tree tab, click the Show Modules button

1. Select Environment from the Options menu. The Environment Options dialog box opens. 2. In the Browser tab, set the Show Modules check box to true/false (default true).

To open package contents in a new tab


In the Containment Tree tab, click the Open in New Tab button name and tree contents will be opened in the Browser.

. New tab with package

Data branch
The Data branch represents the model and structure of a project. All model elements are stored in packages. This helps you distribute data into logical groups. By default, all new model element data (inner structure) are stored in the Data package. You may create your own packages for storing your model element data. The Data branch also contains the File View package, UML Standard Profile with stereotypes and data types, and Relations package (appears only when at least one path is drawn on the diagram pane). The File View package is where the components are placed during code engineering. The UML Standard Profile contains a list of stereotypes, data types, and elements from the UML 2 metamodel. To create a new element
1. Select New Element from the package in the Browser shortcut menu and then select the desired element from the list. 2. Type the name of the element directly in the Browser tree.

90

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser For more information about managing model elements from the Browser, see Working with Model Elements in the Browser Tree on page 99.

Code engineering sets


The Code engineering sets branch is a gateway between your source code and model data. Using sets, you can perform Java, C++, IDL, DDL, EJB, CIL, and C# round-trip code engineering (code generation + reverse engineering). To create a new Code engineering set
1. Right-click the Code Engineering Sets item and select New from the item shortcut menu or open the Code Engineering Sets dialog box and click the New button. The New Set dialog box opens. 2. Type the set name and select the programming language from the drop-down list (by default Java). 3. Click OK to finish the set creation.

To edit the selected set


Select Edit from the set shortcut menu. The Round Trip Set dialog box opens. Add/remove files or classes from the Code engineering set.

To rename the selected set


Select Rename from the set shortcut menu and type the set name.

To change the code generation properties


Select Properties from the set shortcut menu. The CG Properties Editor for Data dialog box opens. For detailed description of the CG Properties Editor dialog boxes, see MagicDraw Help.

To delete the selected set


Select Delete from the set shortcut menu.

To restore the deleted set


From the Edit menu, select Undo or press the shortcut keys CTRL+Z.

91

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser To generate code from the selected set
1. Select Generate from the set shortcut menu. The Code Generation Options dialog box opens. 2. Adjust the code generation options. 3. Click OK. The Messages Window dialog box opens. Information about generated files is shown.

To check syntax
Select Check Syntax from the set shortcut menu. If no errors are found, then a message box opens stating there are no syntax errors in the model.

To reverse the selected set


1. Select Reverse from the set shortcut menu. 2. The Reverse Options dialog box opens. Define options and click OK. For the detailed descriptions about the reverse, see Section Reverse in the Code Engineering Users Guide.

To reverse files that have been changed


1. Select Refresh from the set shortcut menu. 2. The Reverse Options dialog box opens. Define the options and click OK. For detailed description about the reverse process, see the Reverse Section in the Code Engineering Users Guide. TIP! All functions listed above can be performed in the Code Engineering Sets dialog box.

To select a text editor for source code


1. In the Options menu, select Environment, then select the Launchers group in the dialog box that opens. 2. In the Default launchers field, click the ... button and select the directory where the text editor is located. 3. Click OK.

92

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser

Diagrams tree
The Diagrams tree in the Browser represents the external structure of a diagram.

Figure 19 -- Diagrams tree

In the Diagrams tree, with the selected diagrams, you can perform the operations listed below. To group diagrams according to their diagram type
Click the Group by Diagram Type button

in the Diagrams tree.

From the shortcut menu, select the Group by Diagram Type check box.

93

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser To open the selected diagram from the Browser
Select Open from the item shortcut menu or double-click the item in the diagram.

To delete the selected diagram


Select Delete from the selected diagram shortcut menu.

To rename the selected diagram


Select Specification from the diagram shortcut menu. The corresponding Diagram Specification dialog box opens. Type the diagram name and click OK. TIP! In the Diagram Specification dialog box you can add documentation to the diagram, view the relationships in which the diagram participates, and define hyperliks, stereotypes, constraints, and tagged values.

To print the selected diagram


Select Print from the diagram item shortcut menu. If the diagram is empty, it will not be printed.

94

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser

Inheritance tree
The Inheritance tree represents classifiers, packages, data types, and stereotypes hierarchy within your project. Inheritance according to the UML Specification is shown using the generalization relationship.

Figure 20 -- Inheritance tree

For more information about managing model elements from the Browser, see Working with Model Elements in the Browser Tree on page 99. To show stereotypes in the Inheritance tree
In the Inheritance Tree tab, click the Show Stereotypes in Browser button

1. Select Environment command from the Options menu. The Environment Options dialog box opens.

95

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser
2. In the Browser tab, set the Show Stereotypes in Browser check box to true (default false).

To show classifier hierarchies in the Inheritance tree


In the Inheritance Tree tab, click the Show only Hierarchies button no generalization relationship, it will not be visible on the tree.

. If the classifier has

1. Select Environment command from the Options menu. The Environment Options dialog box opens. 2. In the Browser tab, set the Show Only Hierarchies check box to true/false (default false).

To invert tree in the Inheritance tree


In the Inheritance Tree tab, click the Invert Tree button . The current view in the Inheritance tab shows classifiers, more specific classifiers are shown as their children. After inverting a tree, the classifiers tree view will be change to show the child as a root classifier.

1. SelectChoose Environment command from the Options menu. The Environment Options dialog box opens. 2. In the Browser tab, set the Invert Tree check box to true/false (default false).

Model Extensions Tree


The Model Extensions Tree contains all Stereotypes that are predefined and created manually in the project. In this tree you can create, review, copy/paste, and delete extension mechanisms.

96

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser It is mainly used for the work of a team using Teamwork server for locking for edit/unlocking extension mechanisms.

Figure 21 -- Model Extensions Tree

To group extensions by profiles


In the Model Extensions Tree, click the Group by Profiles button

From the Model Extensions Tree shortcut menu, select the Group by Profiles check box.

To group extensions by metaclasses


In the Model Extensions Tree, click the Group by Metaclasses button

From the Model Extensions Tree shortcut menu, select the Group by Metaclasses check box.

97

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser

Search Results Tree


The Search Results tree shows results of a search, which may be performed through the Find dialog box.

Figure 22 -- Search Results tab

The results in the tab are dispalyed in two packages:


From Diagrams - elements are shown that are displayed on the diagram(s). From Model - elements are shown that are created in the model data.

For information about how to perform a search, see Searching on page 161. To open the Find dialog box from the Search Results Tree
Click the Find button , or press CTRL+F keys.

To clear the results of the previous search


Click the Clear Results button Results tab. or select the Clear Results button from the Search

98

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser

Working with Model Elements in the Browser Tree


To create a model element or a diagram in the Browser
1. Right-click the package in the Browser. 2. From the New command, select the model element or diagram you wish to create.

To copy/cut and paste the selected model element in the Browser tree
1. Select Copy or Cut from the item shortcut menu. 2. Select the item where you wish to put the model element. 3. Select Paste from the item shortcut menu.

To copy/cut and paste the selected model element among different projects
1. Select 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 element. 4. Select Paste from the item shortcut menu.

To delete a model element from the Browser tree


Select Delete from the item shortcut menu.

To drag-and-drop the selected item in the Browser tree


1. Make sure that the place you wish to drag the item is visible. 2. Drag the selected item to the destination and drop it.

To draw a symbol on the diagram


Select 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.

To show/hide the model elements in the Browser tree


1. Right-click in the Browser. 2. From the shortcut menu, select Filter.

99

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser
3. The Items Filter dialog box opens. Clear the check boxes of those model elements that you would not like to appear in the Browser tree.

Multiple selection
A group of model elements can be selected within the Browser tree and you can edit all the selected model elements at the same time. To make multiple selections
Hold down the SHIFT key and click the last element you wish to include in the 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.

To select all model elements or all browser tree items


Click the mouse pointer in the area you want to select all elements and press the shortcut keys CTRL+A. NOTE All selected model elements can be moved or deleted as a single selected element. While moving the group of elements, a border appears denoting the area you have selected. Be careful when deleting multiple elements because no confirmation dialog box will appear.

100

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser

Documentation/Zoom Control/Properties
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 or from the Window menu, select Documentation. If there is no documentation for the selected element, no documentation message is displayed in the section.

To write documentation for the selected model element


1. Click the Documentation tab. 2. Type information.

101

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser

Zoom Control tab


In this tab, you can preview the desired diagram by selecting it in the Browser on the Content diagram. Also you use this tab for zooming the diagram.

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 rectangle. NOTE By default the zoom slider is not visible. To display the zoom slider in the Zoom tab, in the Environment Options dialog box, Browser tab, select the Show Diagram Zoom Slider check box.

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 in the diagram window.

To fit the diagram to the window using the Zoom tab


Click the Fit in Window button on the square in the Zoom tab.

102

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Using the Browser

Properties tab
Since MagicDraw version 8.0, you can edit model elements and diagram properties such as data, symbol properties, or language properties directly from the Browser, Properties tab. The Properties tab has two modes - Standard and Expert. Choose the mode that best suits your needs.

103

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

Figure 23 -- Customize Properties dialog box

Setting Environment Options


You can customize MagicDraw according to your preferences: Change the application settings in the Environment Options dialog box. To open the Environment Options dialog box
Select Environment from the Options menu.

104

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options Buttons available in the Environment Options dialog box
Reset to Defaults OK Cancel Help Resets all properties to the default settings. Saves changes and exits the dialog box. Exits the dialog box without saving changes. Displays MagicDraw Help.

105

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

General pane

Figure 24 -- Environment options dialog box. General pane

Change the appropriate fields according to your preferences. If the check box is selected, the description False changes to True.
Property name Use icons in dialogs Function Icons are shown on the button of dialog boxes.

106

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Language Function Select the language for the MagicDraw GUI:

Default according to your application. It is set by default. English French German Italian Japanese Korean Portuguese Brazil Spanish Thai NOTE Restart MagicDraw to apply changes to the language property.

Show font face in font list Mark elements with active hyperlink Show status bar Show memory monitor Create backup file Save project recovery data on idle Idle time to activate recovery save Open last project on startup Diagrams load mode

Font names that are listed in the Font drop-down list box on the main toolbar will be displayed in the original font. Shows active hyperlink arrow on the element symbol. Shows status bar line at the bottom of the MagicDraw window. Shows the project memory usage line at the bottom of the MagicDraw window. Backup files of your projects will be created. Backups are saved with the name pattern old_name.xml.bak or old_name.xml.zip.bak. Saves AutoRecovery file of the open project(s) when a system is not in use. Enter the system idle time (in minutes). This is the amount of time until the file recovery save is activated. The last project of your previous session will be opened next time you start MagicDraw. Select how to load diagrams after opening a MagicDraw project.
Load all Diagrams opens all diagrams that are in the project. Load Only Open Diagrams (default) opens only diagrams that

were not closed in the previous use of the project.


Do not Load Diagrams no diagrams will be opened when opening

the project.
Save rich XMI Saves maximum additional information to an xmi file, which is not required for MagicDraw load but may be needed when using other tools.

107

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Save UUID Check dependency on module export/share Possible choices:
Do not check Allow dependencies (default) Do not allow dependencies

Function

Blank project template

Default location and template file name: <install.root>\templates\template.xml

Save settings on exit Show tip of the day Recent files list size

The altered settings within the current MagicDraw session will be stored and applied for all future sessions. Shows the Tip of the Day dialog box every time you start MagicDraw. Type the number of projects to appear in the File menu. Click the file name to open it. The maximum file list size is 10. The file name list shows files that were used in MagicDraw. 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. 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. Saves the diagram with background. By default, the diagram background is white after saving as image. This is a JPEG format option. This is an SVG format option. This property is DPI property value with numeric value range from 1 to 4800. Default value is 72. Define image size in percent. Default value is 100%. For example; if 200% is defined, then the view is enlarged (zoomed) before generating an image. Raster image will not loose quality as additional pixels are introduced. This is a TIFF format option. This is a TIFF format option. Choose the font that will be used in the Help window.

Recent windows list size Undo list size

Save diagram background in image JPEG Compression Quality Use SVG <text> tag for text output Image resolution (DPI) Exported image size [%] TIFF Color Space TIFF Compression Help font

108

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Help server port Use model enrichment wizard Function The default Help server port is 1111. Change it if some other server is using this port. The Use Case Model Wizard dialog and the Software Design Model Wizard dialog are model enrichment wizards. To invoke the Use Case Model Wizard dialog from the Tools main menu, choose the Use Model Enrichment Wizard command. To invoke the Software Design Model Wizard dialog from the Tools main menu, choose the Software Design Model Enrichment command. For more information about reports generation see "MagicDraw ReportWizard UserGuide.pdf" which is in <MagicDraw installation directory>\Manuals folder. Show model enrichment suggestion dialog Specification opening mode For more information about reports generation see "MagicDraw ReportWizard UserGuide.pdf" which is in <MagicDraw installation directory>\Manuals folder. Possible choice:
In the same window In a new window

Recent specifications list size Specifications history size Opaque Expression default language

Specify the list size for specifications. Possible range 1 to 20. Specify the history size for open element specifications. Possible range 1 to 20. Possible choices:
English OCL

Opaque Expression displaying lines

Possible choices:

1 2 3 4 5 All Lines

Hide toolbars in full screen mode

The main toolbar is hidden when the diagram full screen mode is turned on. To display the main toolbar, clear the Hide toolbars in full screen mode check box in the Environment Options dialog box, General pane, General group.

109

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

Diagram pane

110

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Figure 25 -- Environment Options dialog box. Diagram pane Property name Text antialiasing Graphics antialiasing Grid style Validate Shape Ownership Function Smooths the jagged edges of text. Smooths the jagged edges of graphics. Select one of the following styles of the grid: Dense or Sparse.

Validates if the symbol owner on the diagram matches the actual element owner in the model. Using the symbol ownership validation feature, shape ownership problems will be highlighted on the diagram pane and you will be able to easily see and resolve them.
For more information see Resource Manager on page 420. Type the period in seconds to check diagram for symbol ownership problems.

Shape Ownership Validation Period (seconds) Edit name with stereotypes Show manipulation highlighting

Allows the management of stereotypes by editing the stereotype name directly on the Diagram pane. Enable error highlighting of the modeling process. This helps you to see the errors in the model at drawing time. The valid and invalid actions will be highlighted in different colors (defaults are red for invalid actions, blue for valid actions). Operations and attributes can be selected, then dragged & dropped to another class. When a path is drawn in various directions, this option removes loops from the path. Applies the created stereotype style to a symbol when adding the stereotype to an element. Applies the stereotype style in teamwork for unlocked diagrams.

Allow class members selection Optimize paths Apply stereotype style for all symbols Apply stereotype style for symbols in unlocked diagrams Mark selected labels Display paths on element drop

Mark path labels after a path is selected. When dragging and dropping an element from the Browser or executing a Create Symbol action, the path to the existing symbols is created.

111

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Insert Element Function Splits the path into two paths by drawing a symbol on it and inserts this symbol according to the choice. Possible choices:
Before path After path Do not insert Ask where to insert NOTE: This is valid only in state and activity diagrams.

Set preferred size after hiding compartment

Specifies if shape size shall be set to preferred after one of shapes compartments is supressed in the diagram. Possible choices:
Never; Always; If no connected paths (default).

Auto completion includes metaclasses Auto completion includes elements from profiles and modules

If selected, the list of available elements to choose , element types, or stereotypes includes metaclasses (in MagicDraw metaclasses are placed in the UML Standard Profile. Default value is false. When selected, the list of available elements to choose, element types, or stereotypes includes elements, which are placed in profiles and modules. Default value is true. NOTE: This option toggles all profiles except UML Standard Profile.

Zoom step size Center on the mouse location when zooming Show Smart Manipulations Mouses Left Button Action

Type in the step value of zooming your diagram views. Step value should be in the range from 0.1 to 1.0. Centers zooming according to mouse arrow. Set smart manipulator visibility. For a detailed description about the smart manipulation feature, see Smart Manipulation on page 221 Possible choices: Create element - target element is created during the creation of a path after a mouse click on the diagram pane. Make a break point - set a break point for the path after a mouse click.

Smart Manipulator fade time on mouse over

Set the smart manipulators fade time in seconds.

112

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Smart Manipulator appearance Function Possible choices:
Mouse Over Shift

Show Names in Toolbar Toolbar Position

Shows element names in toolbars near icon. Change toolbar appearance near diagram pane. Possible choices:
Right Left

113

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

Browser pane

Figure 26 -- Environment Options dialog box. Browser pane

114

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Browser position Function In the drop-down list, select Left if you wish the browser to appear on the left side of the workspace. Select Right if you wish the browser to appear on the right side of the workspace. Shows code engineering set items in the browser. Shows the full attributes, operations, and relationships data. Shows/hides the profiles, modules with applied <<auxiliaryResources>> stereotype in the Browser. If Show Auxiliary Resources option is false and profiles/modules are not displayed in the Browser, while exporting module, a message will appear. Always sort browser items alphabetically. Shows stereotypes that are assigned to the model elements. Highlight edited or added model elements and diagrams in the Browser. Shows hyperlinks that are assigned to the model elements. Groups diagrams according to diagram type in the Diagrams tree. When selected, classifiers without hierarchies are not displayed in Inheritance tree. In this case, Inheritance tree displays only classifiers connected with the generalization relationship. When selected, hierarchies are inverted so that at the top of the hierarchy, the specific element is displayed. Displays warning when element was not found in the Inheritance tree.

Show code engineering sets Show full types in browser Show Auxiliary Resources Show message on auxiliary modules visibility during use Sort always Show stereotypes in browser Show changes in browser Show hyperlinks in browser Group by diagram type Show Only Hierarchies Invert Tree Display warning when element is not found in inheritance tree Group by Profiles Group by Metaclasses Show diagram zoom slider

Stereotypes, tagged values, and constraints are grouped by profiles in the Model Extensions Tree. Groups stereotypes by Metaclass in the Model Extensions Tree. Shows zoom slider in the Zoom Control tab.

115

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

Teamwork pane

Figure 27 -- Environment Options dialog box. Teamwork pane Property name Auto login to server Teamwork server name Show commit warning Show modules versions conflict warning Function The user automatically logs on to the Teamwork Server when MagicDraw starts. Shows the name of your teamwork server. The warning appears while committing a project to the Teamwork Server. The warning appears when two modules (or module and a project) use the same submodules.

116

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

Floating pane
This pane is available only if you use MagicDraw Floating License.

Figure 28 -- Environment Options dialog box. Floating pane Property name Floating license server name Floating license server port Auto login to floating license server Function Specify the name of the Floating License Server. Enter the port number of the Floating License Server. The server may be started on many different ports. If selected, automatically logs in to the Floating License Server when MagicDraw starts.

117

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

CVS pane

Figure 29 -- Environment Options dialog box. CVS pane Property name Add project to CVS after saving Commit project to CVS after saving Update project from CVS before loading Location of .cvspass Local folder Function When a new project is saved, it will be added to the CVS checked out directory. The Add Project to CVS dialog box appears. Commits project to CVS after saving it. The Commit Project to CVS dialog box opens. Updates the project from CVS before loading. The Update CVS Project dialog box opens. The path where the .cvspass is located. You may type it or choose the path from the Open dialog box. The path where the module will be saved on checkout action. You may type it or choose the path from the Open dialog box.

118

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

Update pane

Figure 30 -- Environment Options dialog box. Update pane

Property name Check for Updates

Function Select the period for checking MagicDraw for updates.


Manually On startup Once a day Once a week Once a month (recommended)

Show auto-checking confirmation dialog box

If selected, shows the confirmation dialog each time before auto-checking.

119

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

HTTP Proxy pane

Figure 31 -- Environment Options dialog box. HTTP Proxy pane

Property name

Function

Use HTTP proxy server If selected, uses the HTTP Proxy Server when MagicDraw is checking for updates. HTTP proxy server address HTTP proxy server port HTTP proxy server user Authenticate HTTP proxy server Type the HTTP Proxy Server name or IP address. Type the port of the HTTP Proxy Server. The default number is 8080. Type the name of the HTTP Proxy Server user. Authenticates the HTTP Proxy Server.

120

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

Keyboard pane

Figure 32 -- Environment Options dialog box. Keyboard pane Property name Category Function 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 content in the 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 sorted alphabetically. Selecting the command shows the preset shortcut keys in the Current keys list. The list of keys assigned to the selected command. The field for entering a new shortcut key. Puts a human representation of any key pressed in the field. If the key pressed is already assigned to another command, the Currently Assigned To label appears with the current command name using that key.

Commands

Current keys Press new shortcut key

121

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Currently assigned to Assign Remove Remove All Function Shows the name of the command for the new key entered when this key is already assigned to some other command. By default is hidden. This label is only visible if the entered key is already assigned to another command. Assigns the key entered to the selected command. The key entered is added to the Current Keys list. Removes the selected keys from the selected command. Removes all keys from the selected command.

Plugins pane

Figure 33 -- Environment Options dialog box. Plugins pane

122

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Name Provider Version Loaded Enabled Disable/Enable Function The name of the plugin. The name of the company which provides the plugin. Version number of the selected plugin. Indicates if the plugin is correctly loaded. Shows the status of the plugin. If True, the selected plugin is activated in MagicDraw. Disables or enables the selected plugin.

123

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

Resources pane
Displays the external resources such as dtd, xsd, etc. that are used in MagicDraw.

Figure 34 -- Environment Options dialog box. Resources pane

Property name Configure External Resources Location URI

Function Define external resources that will be used in XML parsing. The location of the external resource. The URI of the external resource.

124

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Edit Add Remove Configure Ignored Resources URI Edit Add Remove The URI of the external resource that will not be ignored in MagicDraw. Edit the URI of the ignored external resource in the External Resource dialog box. Add a new external resource that will be ignored. Remove the selected ignored resource from the list. Function Edit the location and the URI of the resource in the External Resource dialog box. Add a new external resource. Remove the selected resource form the list.

125

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

Path Variables Pane

Figure 35 -- Environment Options dialog box. Path Variables pane Property name Name Value Description Edit Add Remove Function Any name for a path variable. Path to the folder. Description of the path variable. In the list, select an existing path variable. Double click on the item in the list, or click the Edit button. The Path Variables dialog box opens. Edit the path variable. The Path Variables dialog box opens. Specify a name, value, and description for the new path variable. Remove the selected path variable.

126

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Show suggestion to use path variables Function In all places where path variables can be used, after specifying absolute path is suggested to use proper path variables. For this, the Use Path Variables dialog box will open.

Launchers Pane

Figure 36 -- Environment Options dialog box. Launchers pane Property name Default Launcher Default Browser Defined Launchers Edit Add Opens the Launcher Properties dialog box for editing launcher information. Adds a launcher in the Launcher Properties dialog box. Function The Launcher Properties dialog box opens. The Launcher Properties dialog box opens.

127

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Remove Function Removes a launcher from the list.

Experience Pane

Figure 37 -- Environment Options dialog box. Experience pane Property name Main Menu Expert Mode Context Menu Expert Mode Main Toolbar Expert Mode Diagram Main Toolbar Expert Mode Function Toggles visibility of the main menu by adding/removing arrows to expand menus. Toggles visibility of the context menu actions by adding/hiding them, depending on which mode they were set to appear. Toggles visibility of the toolbar menu buttons by adding/hiding them depending on which mode they were set to appear. Toggles visibility of the diagram toolbar menu buttons by adding/hiding them depending on which mode they were set to appear.

128

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Diagram Elements Toolbar Expert Mode Properties Mode Function Toggles visibility of the diagram elements toolbar menu buttons by adding/ hiding them depending on which mode they were set to appear. Possible choices:
Standard Expert All

Smart Manipulator Expert Mode Reports Expert Mode

Toggles visibility of buttons in the smart manipulators menu depending on which mode they were set to appear. Toggles visibility of the report templates.

129

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

External Tools

Figure 38 -- Environment Options dialog box. External tools pane Property name Name Command line Function Name of the command, which will appear in the external toolbar. The command line is executed upon selection. The command line can include the project file name variable, $project_file$, if it depends on the MagicDraw project file name.

130

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Save before run Function Actions, which can be made with a project (save/export) before starting external tools that use a MagicDraw project file. Possible choices:

Save project Do not save EMF UML2 (v1.x) XMI EMF UML2 (v2.x) XMI

Edit Add Remove

The External Tool dialog box opens. You may change the name, icon, command line text , and project save/export options here. The External Tool dialog box opens for new external tool configuration. Removes the selected external tool from the list.

131

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options

EMF UML2 (v2.x) XMI Options Pane

Figure 39 -- Environment Options dialog box. EMF UML2 (v2.x) XMI Options pane Property name Export Saved Model to EMF UML2 XMI Function Exports MagicDraw models (without diagrams) to UML2 format. Possible choices:
Do not Export Ask Before Export Always Export

Ask to overwrite exported files Preserve Exported IDs

If true, a message is displayed requesting confirmation to overwrite previously exported files. If selected, ID of the same exported element will not be changed when performing export several times.

132

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Apply MagicDraw UML Standard Profile Stereotypes Apply EMF UML Profile Stereotypes Show 'Stereotypes from the same profile' warning Display warnings in Message Window Function MagicDraw contains standard UML stereotypes and EMF has standard UML stereotypes as well. If selected, exported elements will have stereotypes from the MagicDraw UML Standard Profile applied. If selected, exported elements will have stereotypes from the EMF UML profile applied. If true, warnings that the stereotype will not be applied to the element, if this element is in the same profile with the stereotype, will appear when exporting. If selected, warnings related to project export, will be listed in the Message Window.

EMF UML2 (v1.x) XMI Options Pane

Figure 40 -- Environment Options dialog box. EMF UML2 (v1.x) XMI Options pane

133

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Setting Environment Options
Property name Export Saved Model to EMF UML2 XMI Function Exports MagicDraw models (without diagrams) to UML2 format. Possible choices:
Do not Export Ask Before Export Always Export

Ask to overwrite exported files Preserve Exported IDs Apply MagicDraw UML Standard Profile Stereotypes Apply EMF UML Profile Stereotypes Show 'Stereotypes from the same profile' warning Display warnings in Message Window Export Element Tag as

If true, a message is displayed for requesting confirmation to overwrite previously exported files. If selected, ID of the same exported element will not be changed when performing export several times. MagicDraw contains standard UML stereotypes and EMF has standard UML stereotypes as well. If selected, exported elements will have stereotypes from the MagicDraw UML Standard Profile applied. If selected, exported elements will have stereotypes from the EMF UML profile applied. If true, warnings that the stereotype will not be applied to element, if this element is in the same profile with the stereotype, will appear when exporting. If selected, warnings related to project export will be listed in the Message Window. Possible choices:
Qualified Name ID

134

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW

Look and Feel: Controlling the Interface

Look and Feel: Controlling the Interface


The appearance of MagicDraw windows, dialog boxes, 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 41 -- Look and Feel Themes submenu

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.

135

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW

Look and Feel: Controlling the Interface

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 are valid only for the metal style. Choose from any of the following themes:
Aqua Contrast Big Contrast Green MagicDraw Big MagicDraw Khaki Ocean Custom set your own options in the Properties dialog box.

JIDE and Multiple Windows interface styles


Beginning with MagicDraw version 7.5, the modern JIDE library is implemented. Using the JIDE interface style, it is possible to work with the Browser window in a more flexible way, use documentation, zoom, and dock message windows above the main window. Now you can arrange the Browser window in combinations or even hide the desired Browser windows. Also, you may use the different Multiple Windows style. It allows you to manage all windows independently, as if they belong to different applications. For instance, you can overlap the windows across each other, resize them independently, and so on. There is no main window containing all the other windows. To set interface style
From the Options menu, select Interface Style, and then select one of the desired interface styles: Multiple Windows, or JIDE.

136

Copyright 1998-2009 No Magic, Inc.

3 U S I N G M A G I C D R AW
Assigning Shortcut Keys To make the Browser tab a separate window From the Browser tab title shortcut menu, select Floating, and move the window to any desired position

If the Dockable check box is selected, the floating tab window will appear in a fixed edge position after trying to move it outside the MagicDraw window borders.

Assigning Shortcut Keys


To assign or change a command shortcut key
1. From the Options menu, select Environment. 2. The Environment Options dialog box opens. 3. Select the Keyboard pane and assign the desired shortcut keys in the right pane of

the dialog box. For more information about the Keyboard pane, see Keyboard pane on page 121.

137

Copyright 1998-2009 No Magic, Inc.

WORKING WITH PROJECTS

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. All work in MagicDrawTM UML is organized into projects. Project is the top 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. In this Section, you will find the following chapters:
1. "Creating a Project", on page 138. 2. "Saving a Project", on page 145 3. "Opening a Project", on page 147 4. "Importing a Project", on page 148 5. "Exporting a Project", on page 148 6. "Setting Project Options", on page 158 7. "Searching", on page 161 8. "Project Partitioning", on page 172

Creating a Project
View Online Demo MagicDraw Basics

Creating a new project


All project information is stored in a single file. A project name matches the file name where the project is saved. The newly created project consists of the following packages:
Data package is empty and holds all model elements.

138

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Creating a Project
File View package contains components that are created during code engineering and represent source files. Adding a resident element to a particular component causes that element to be generated within the source file. UML Standard Profile contains stereotypes that are necessary for working with MagicDraw, primitive data types and constraints (which are UML standard), and UML 2 metamodel elements. The following data types are specified in MagicDraw: boolean, byte, char, date, double, float, int, Integer, long, short, void, and string.

You can also create your own packages for holding the model elements. By default, packages cannot be deleted or renamed in a project (except for the File View package). To start a new project, you must create a new workspace for it. To create a new workspace for a blank project
From the File menu, select New Project. On the main toolbar, click the New Project button. Press shortcut key CTRL+N.

In all cases, the New Project dialog box opens. 1. Select the Blank Project icon. 2. Specify the file name in the Name text box. 3. Click the ... button to select the location to store a newly created project in your computer. Click OK.

Working with multiple projects


Because you may need to manage several projects at the same time, MagicDraw allows you to work with several projects simultaneously. All open projects are held in separate workspaces. Different active projects may exchange data. Entities from one project can be copied or moved to another. To switch between loaded projects
In the Projects drop-down combo box, click the additional project you wish to open. Select Projects from the File menu, click the name of the project you wish to open.

139

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Creating a Project To close all open projects
Select Close All Projects from the File menu. The Question message box appears.

Figure 42 -- Question message box

Choose the way your projects will be closed:


Yes Yes To All No No To All Cancel The project you are currently closing will be saved (its name appears in the question). The dialog box is displayed again when the next project closes. Save all projects without prompting. The Save dialog box will not appear for each open project. Project you are currently closing will not be saved. The dialog box is displayed again when the next project closes. All the projects will be closed without saving or further prompting. Cancel saving projects.

To exchange model entities between open projects


Use the Cut, Copy, and Paste commands in the Edit menu, or the 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 open within MagicDraw. You may not copy/paste elements between instances of different tools that are currently running or to other applications.

140

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Creating a Project

Creating a new project from the existing source code


To create a new project from existing source files
From the File menu, select New Project. On the main toolbar, click the New Project button. Press shortcut key CTRL+N.

In all cases, the New Project dialog box opens. 1. Select the New Project from Existing Source icon. 2. Specify the file name in the Name text box. 3. Click the ... button to select the location to store a newly created project in your computer. 4. Select a code engineering language from the list by clicking the ... button and click OK.

Figure 43 -- New Project dialog box - New Project from Existing Source 5. The Round Trip Set dialog box opens. Add the source files to enable code engineering to reverse them into a newly created project.

141

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Creating a Project

Creating a new project from a previously created template


NOTE: This functionality is available in Standard, Professional, Architect and Enterprise editions only.

C++, CIL, Java, C#, DDL, EJB, WSDL, XML Schema, Metamodeling, RUP extensions, CORBA IDL, and UMLWebExtension templates are available in the New Project dialog box. To create a new project from a specified template
From the File menu, select New Project. On the main toolbar, click the New Project button. Press shortcut key CTRL+N.

In all cases, the New Project dialog box opens. 1. Select the New Project from Template icon. 2. Specify the file name in the Name text box. 3. Click the ... button to select the location to store a newly created project in your computer.

142

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Creating a Project
4. Select the template from the templates tree and click OK.

Figure 44 -- New Project dialog box - New Project from Template The newly created project from a template will contain specific model elements and stereotypes. TIP! All MagicDraw templates are located in the <MagicDraw installation directory>/ templates folder so you can import the desired template into your previously created project using the Import MagicDraw Project command from the File menu.

Creating a new Use Case project


To create a new project from existing source files
From the File menu, select New Project.

143

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Creating a Project
On the main toolbar, click the New Project button. Press shortcut key CTRL+N.

In all cases, the New Project dialog box opens. 1. Select the Use Case Project icon. 2. Specify the file name in the Name text box.

Click the ... button to select the location to store a newly created project in your computer.

Figure 45 -- New Project dialog box - Use Case Project The newly created project will automatically load the UseCase Description Profile. Also Actor, High-Level Use Case and System-Level Use Case packages will be created in the Data tree. Additional properties will be displayed in the newly created use cases Specification dialog box.

144

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Saving a Project

Saving a Project
IMPORTANT! The native MagicDraw format is *.mdzip and *.mdxml. Saving in *.xml, *.xml.zip format will also be allowed.

To save changes for later sessions, revised projects must be saved. While saving, you can edit the name of the project and the file format. To save the project
1. From the File menu, select the Save Project or Save Project As command. Alternatively, you can click the Save button on the main toolbar or press the shortcut keys CTRL+S. The Save dialog box opens. 2. Select the destination directory (where you wish to save the project) and type the chosen file name. 3. Select the format for saving a project: Packed MagicDraw File Format (*.mdzip) (default) or MagicDraw File Format (*.mdxml)

145

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Saving a Project
4. Select the version of XMI 1.2. Also, if you want to save maximum additional information to an xmi file (not required in loading to MagicDraw load, but may be useful when using other tools), select the Rich XMI button.

Figure 46 -- Save dialog box NOTE If the Create Backup File check box is selected in the Environment Options dialog box, MagicDraw always creates a backup file of the previously saved project. The backup is held in a file with a name identical to that of the project. For a detailed description of the Environment Options dialog box, see Setting Environment Options on page 104.

Autosave
After you stop working with MagicDraw, an idle time passes and the current project is saved to a special file called the AutoRecovery file.

146

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Opening a Project If the application is terminated normally, the AutoRecovery file is removed. If the application crashes, the AutoRecovery file is left. On startup, MagicDraw checks for an AutoRecovery file. If it exists, MagicDraw suggests loading the project from this file. To save an AutoRecovery file of the open project(s) when a system is not in use.
1. Open the Environment Options dialog box. 2. In the General pane, select the Save Project Recovery Data on Idle check box. Enter the system idle time (in minutes) in the Idle Time to Activate Recovery Save text box. This is the length of time the system must be idle in order to activate an AutoRecovery save.

Opening a Project
IMPORTANT! The native MagicDraw format is *.mdxml, or *.mdzip. To edit or review previously created projects
1. From the File menu, select Open Project or click the Open Project button on the main toolbar. 2. In the Open dialog box, select the project you wish to open and click Open. Drag-and-drop the project you wish to open directly from the open window to MagicDraw and the project is started immediately. Double-click a project file with the *.mdxml or *.mdzip extension, it will open a new MagicDraw application window. NOTES: If the Open Last Project on Startup check box in the Environment Options dialog box is selected, the last project you worked with will be opened right after MagicDraw starts. XMI v2.1 is the native MagicDraw file format for model storage. But this format does not specify how to store diagrams. So, if you use MagicDraw to open an XMI file exported from another tool, only the model will be loaded (not diagrams or views). MagicDraw can not "import" XMI, it can only open it. For model interchange you should use the RConverter. For more about RConverter, See Reusing model parts between models on page 188.

TIP:

You may load more than one project within the same MagicDraw session. A separate workspace will be created for each project that is opened.

147

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Importing a Project

Importing a Project
To import a previously created project to an open project
1. From the File menu, select Import. 2. The Import dialog box opens. Select the project you want to import and click OK. The diagrams of the imported project are placed in the open project.

Exporting a Project
Exporting a module of a project
You can export part of a project as a module and share it with other users/projects. For more information about data partitioning, see Project Partitioning on page 172.

Exporting a project as a template


NOTE: This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

You can save (export) the created project as a template and use the same project for creating other new projects. To export project as template
1. Open a project you want to export as a template. From the File menu, select Export and then Template. 2. The Export Template dialog box opens. 3. Type the name and a description of the template.

148

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Exporting a Project
4. Click OK.

Figure 47 -- Export Template dialog box Box Template Name Description OK Cancel Help Function Type a template name. Type information about the template. Exports the template and the description to the Templates folder. Closes the dialog box without exporting the template. Displays MagicDraw Help

Exporting a project as MOF


This feature renews the MagicDraw metamodeling portfolio. MagicDraw is able to export/import the UML model into/from the MOF (both CMOF and EMOF) XMI format.

149

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Exporting a Project To export a project as a MOF To export the model into the MOF, from the File main menu, select Export and then MOF. To import a project as a MOF To import the MOF from the File main menu, select Open Project and select to open *.emof or *.cmof file. Data which can not be exported
Diagram data can not be exported. None of the model features that are available only in UML will be exported (behavioral models in particular, etc).

MOF Domain model


Domain model for CMOF can be glanced at the MOF2.0 spec, 06-01-01.pdf document from OMG.

MOF export
Under File->Export->MOF group there are 2 items MOF Whole Model, MOF Selection. Exporting the whole MOF model To export the whole model into the MOF, from the File main menu, select Export, MOF, and then MOF Whole Model. The Select Target File dialog box opens (see Figure 48 on page 151).

150

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Exporting a Project

Figure 48 -- The Select Target File dialog box

Select directory to export the file, type the file name. At the right side of dialog box you can choose to export EMOF or CMOF. The extension of file is by default .cmof or .emof correspondingly. After this the whole model is exported except the model parts marked as auxiliary resources (UML standard profile, Metamodeling profile, etc). Select or clear the Validate check box for validating the MOF model export. When export runs, the exported model is also checked using the appropriate (CMOF/EMOF) validation suite. For more information about MOF model validation, see Validation constraints on page 152. Exporting the selected part of the MOF model To export the selected part of the model into the MOF, from the File main menu, select Export, MOF, and then MOF Selection. The Select Packages to Export dialog box opens (see Figure 49 on page 152). Select one or multiple packages to choose the model part to be exported. After this the selected model part (package granularity level) is exported to CMOF or EMOF correspondingly.

151

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Exporting a Project After the package selection, click OK and the Select Target File dialog box opens. Detailed description, see above Exporting the whole MOF model on page 150.

Figure 49 -- The Select Packages to Export dialog box

Metamodeling template
You can create a new project using a Metamodeling template. Template contains Metamodeling profile usage. It can be used as a starting point for developing your own metamodels. Also look at the Ecore Metamodel Example in the samples directory for a larger example of how to use the profile. For more information about templates usage, see "Creating a new project from a previously created template", on page 142.

Validation constraints
There are 2 new validation suites for testing the model being exported to MOF (1 each for CMOF and EMOF). These suites contain batches of rules, which display warnings about elements not being exported. Rules are run together with model export (if the Validate checkbox is checked).

152

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Exporting a Project Rules are warnings only - they warn about elements not being exported (diagrams, behavioral elements etc) but do not preclude the model from being exported. Unsuitable elements are simply skipped.

Exporting a project as an EMF UML2 (v2.x) XMI


Export of a MagicDraw model to an EMF based UML2 (v2.x) compatible XMI. It allows the interchange of UML 2 models for further manipulations and transformations with the most popular MDA tools such as AndroMDA, OpenArchitectureWare, and other tools. To export a project as an EMF UML2 XMI
1. Open a project you want to export as an EMF UML2 (v2.x) XMI. From the File menu, select Export and then EMF UML2 (v2.x) XMI. 2. The Select Location dialog box opens. 3. Type the name and select location for exporting the project. 4. Click OK. The project and profiles will be saved with the *.uml extension.

To change the export options


1. From the Options main menu, select Environment. The Environment Options dialog box opens. 2. Select the EMF UML2 (v2.x) XMI Options group and change the options in the right side pane. For more information, see EMF UML2 (v2.x) XMI Options Pane on page 132.

Exporting a project as an EMF UML2 (v1.x) XMI


Export of a MagicDraw model to an EMF based UML2 (v1.x) compatible XMI. It allows the interchange of UML 2 models for further manipulations and transformations with the most popular MDA tools such as AndroMDA, OpenArchitectureWare, and other tools. To export a project as an EMF UML2 XMI
1. Open a project you want to export as an EMF UML2 (v1.x) XMI. From the File menu, select Export and then EMF UML2 (v1.x) XMI. 2. The Select Location dialog box opens. 3. Type the name and select a location for exporting the project.

153

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Exporting a Project
4. Click OK. The project and profiles will be saved in *.uml2 extension.

To change the export options


1. From the Options main menu, select Environment. The Environment Options dialog box opens. 2. Select the EMF UML2 (v1.x) XMI Options group and change the options in the right side pane. For more information, see EMF UML2 (v1.x) XMI Options Pane on page 133.

Exporting to BPEL
The Business Process Execution Language (BPEL) is an XML schema language for specifying the automated business processes bidirectionally between multiple enterprises using Web Service technology. The BPEL is suitable for all technical staff to manipulate data of process and execute the business process. The MagicDraw UML BPEL Export exports the Business Process diagram to the valuable BPEL, based on BPEL specification v.1.1. The Business Process Diagram (BPD) is a helpful tool for business analysts/users to generate a model for business processes. Different from other UML diagrams such as an Activity Diagram or a Use Case Diagram, the BP diagram allows technical staff to easily understand and implement business diagrams. To optimize the valuation of BPD, converting BPD to the execution form (BPEL), which can use the benefit of Web Service, is quite a challenge. To export a BP diagram to BPEL
1. Create Business Process diagram. 2. From the File menu, select Export and then BPEL. The BPEL Export dialog box opens. 3. Select the existing Business Process diagram in the tree and click the Export button. The Save dialog box opens. 4. Save the BPEL file in the selected location. A message stating the export was successful will appear.

If the BPEL export can not be performed, a Message Window appears with a detailed description of problems.

154

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Exporting a Project To evaluate validation rules for export After exporting the BPMN notations from the BPD diagram to the BPEL files, some additional process data and Web Services information require manipulation in order to deploy the BPEL files on the vendor-specific servers. It is because BPEL version 1.1 is not a standard yet. There are still many open issues and questions about implementation. Each vendor has made their own decision on specific implementation on the open issues and those questions. BEA is the chosen vendor of this version of MagicDraw BPEL Export. This MagicDraw BPEL Export version will focus on the BEA Web Logic Workshop (WLW) and the BEA Web Logic Integration (WLI); therefore the limitations and open issues from BEA are concerned. In order to export a BP Diagram based on BPMN specification version 1.0 to a BPEL file based on BPEL4WS Version 1.1 specification with a flavor of BEA, the validation rules for mapping between two standards are required and can be found below. Ignored Notations Note, Note HTML, Text Box, Text Box HTML, Anchor to Note, Constraint, Separator, RectangularShape and Group will be ignored and will not be mapped. UnMappable Notations Start Event None, Intermediate Event None, Intermediate Event Link, Intermediate Event Cancel, Intermediate Event Multiple, End Event None, End Event Cancel, End Event Multiple, Compensation Task, Gateway Complex, Manual Task, Reference Task, Expanded Sub-Process Compensation, Collapsed Sub-Process Compensation, Collapsed Ad-Hoc Sub-Process, Expanded Ad-Hoc Sub-Process, Association, Directional Association, Compensation Association, Message Flow, Data Object, Horizontal Pool, and Vertical Pool cannot be mapped. Event Notations Start Event
A process level must have one and only one Start Event notation. Start Event notation must be a source of Sequence Flow. This means the Start Event notation must have an outgoing Sequence Flow.

End Event
At lease one End Event notation must be present in the diagram.

155

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Exporting a Project
Multiple End Events are allowed in the diagram. Every branch of the process must have the End Event notation. However, in Expanded SubProcess notation, the End Event None notation can be used as the ending point.

Intermediate Event
Intermediate Event notation must be between Start Event and End Event notations. Only Message, Timer, Error, and Rule Intermediate Event can be used in normal flow. Intermediate Message, Timer, Error, and Rule must have only one incoming Flow. Intermediate Event must have only one outgoing Sequence Flow. Intermediate Event Link will not be mapped because the methodology of mapping needs to track the flow to the element. Therefore, if the Intermediate Event Link does not have a flow to it, it will not be recognized.

Task and Sub-Process


Task and Sub-Process cannot have any Event attached to them. Task notations must have only one incoming Sequence Flow. In case there are multiple incoming Sequence Flows for a Task, it is recommended to use the Gateway for convergence, instead. A diagram (process) inside the Expanded Sub-Process must follow the same rules as the outer diagram (process).

An exception to this is the End Event None can be used in the Expanded Sub-Process. All notations inside the Expanded Sub-Process cannot have an incoming Sequence Flow or an outgoing Sequence Flow linked directly to notations outside the Expanded Sub-Process.

Gateway
If a Gateway has only one incoming and one outgoing Sequence Flow, the gateway is not needed in the BP Diagram. A Gateway cannot have both multiple incoming Sequence Flows and multiple outgoing Sequence Flows. If it has multiple incoming Sequence Flows, it must have only one outgoing Sequence Flow. If it has multiple outgoing Sequence Flows, it must have only one incoming Sequence Flow.

DataBased XOR Gateway


If there is only one incoming Sequence Flow to the Data-based XOR Gateway and more than one outgoing Sequence Flow, the Data-based XOR Gateway will act as a convergence. A Data-based XOR Gateway must have one outgoing Default Sequence Flow and at least one

156

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Exporting a Project
outgoing Condition Sequence Flow with condition expression. The normal Sequence Flow cannot be an outgoing Flow from a Data-based XOR, which acts as a convergence.
If there are more than one incoming Sequence Flows to a Data-based XOR Gateway and only one outgoing Sequence Flow, the Data-based XOR Gateway will act as a divergence. The only outgoing Sequence Flow from a Data-based XOR Gateway must be a normal Sequence Flow and not a Condition Sequence Flow or Default Sequence Flow.

EventBased XOR
For an EventBased XOR Gateway, the outgoing Sequence Flow can only target a Task, with the TaskType set to Receive or an Intermediate Event with a Trigger attribute set to Message, Timer, or Rule. If there is only one incoming Sequence Flow to an Event-based XOR Gateway and more than one outgoing Sequence Flow, the Event-based XOR Gateway will act as a convergence. The only outgoing Sequence Flows from an Event-based XOR Gateway must be a normal Sequence Flows and not a Condition Sequence Flow or Default Sequence Flow. If there are more than one incoming Sequence Flows to an Event-based XOR Gateway and only one outgoing Sequence Flow, the Event-based XOR Gateway will act as a divergence. The only outgoing Sequence Flow from an Event-based XOR Gateway must be a normal Sequence Flow and not a Condition Sequence Flow or Default Sequence Flow. If the outgoing Sequence Flow targets a Receive Task, then an Intermediate Event with a Trigger Message cannot be a target of the other outgoing Sequence Flow of this Event-based XOR Gateway.

Inclusive OR
If there is only one incoming Sequence Flow to an Inclusive OR Gateway and more than one outgoing Sequence Flow, the Inclusive OR Gateway will act as a convergence. An Inclusive OR Gateway must have one outgoing Default Sequence Flow and at least one outgoing Conditional Sequence Flow with condition expression. The normal Sequence Flow cannot be an outgoing Flow from an Inclusive OR, which acts as a convergence. If there are more than one incoming Sequence Flows to an Inclusive OR Gateway and only one outgoing Sequence Flow, the Inclusive OR Gateway will act as a divergence. The only outgoing Sequence Flow from an Inclusive OR Gateway must be a normal Sequence Flow and not a Condition Sequence Flow or Default Sequence Flow.

Parallel AND
If there is only one incoming Sequence Flow to a Parallel AND Gateway and more than one outgoing Sequence Flow, the Parallel AND Gateway will act as a convergence (Parallel AND

157

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Setting Project Options
Fork). The only outgoing Sequence Flows from a Parallel AND Gateway must be a normal Sequence Flows and not a Condition Sequence Flow or Default Sequence Flow.
If there are more than one incoming Sequence Flows to a Parallel AND Gateway and only one outgoing Sequence Flow, the Parallel AND Gateway will act as a divergence (Parallel AND Join). The only outgoing Sequence Flow from a Parallel AND Gateway must be a normal Sequence Flow and not a Condition Sequence Flow or Default Sequence Flow.

Sequence Flow
All notations, except Start Event must have an incoming Sequence Flow All notations, except End Event, must have an outgoing Sequence Flow. Isolate notation is prohibited in the diagram. This means that any notations without any incoming and outgoing flow are not allowed in the diagram. All notations, except Gateway, must not have more than one incoming Sequence Flow. Default Sequence Flow and Condition Sequence Flow are only allowed to be used with the Gateway notation.

Setting Project Options


Project Options
The Project Options dialog box is used for defining properties for the model elements (shapes and paths) and diagrams, for creating your own project style, for importing or exporting a created project style, for applying the default element properties, and for defining code engineering options.

158

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Setting Project Options To define Project Options
From the Options main menu, select Project. The Project Options dialog box opens.

Figure 50 -- Project Options dialog box

159

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Setting Project Options The Project Options dialog box has several collections of customizable options:
General Project Options
In the Modules Path text box, enter the path where by

default modules will be stored. Define the default packages where the extension elements will be stored. Also, if desired, you can select the package every time when creating a new extension element, the dialog box asking about the storage place will open. In the Modules Path text box, enter the path where, by default, modules will be stored. If the Auto synchronize Parameters and Arguments check box is selected, arguments will be created on parameters creation and they will be synchronized. After Auto synchronize Parameters and Arguments check box is cleared parameters and arguments are not synchronized anymore. By default the Auto synchronize Parameters and Arguments check box is selected. For more information about parameters and arguments synchronization see Parameters synchronization with Arguments on page 844. The Qualified name display style option: - Absolute. - Model Library relative (Model Library is a package with modelLibrary stereotype). - Model relative means that element's qualified name shown on its symbol (not property) should be cropped from the nearest model found in hierarchy without its name. - Model or model library relative option combines two options "Model relative" and "Model Library relative" in one option.

Diagram Info Symbols Properties Styles

Customize how and what information will be displayed in the Diagram Info table. Expands the tree hierarchy of all the styles defined within the project. You can create as many of these styles as you like.

NOTE To apply the changed project options to an open project, click the Apply button. For more information about the style engine, see Style Engine on page 287.

160

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching
Default model properties

You may define model element properties in the Project Options dialog box, in the Default model properties branch. Select the exact element in the tree and change the property value in the right side pane. To reset the element properties to the default value, click the Reset to Defaults button. To reset the property values for all elements select the Default model properties branch and click the Reset to Defaults button. For more information about setting the default element property values, see Default Property Values on page 280.

Code Engineering

Define general code engineering options, as well as options specific to languages. For more information, see Code Engineering users guide.

To find elements to change, browse the options tree in the Project Options dialog box. 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.

Searching
The MagicDraw search mechanism enables searching within model elements data, symbols, and extensions. You may also search for usages and dependant elements of the selected elements. This functionality is described in the Changing the diagram type on page 229.

161

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching To quickly find the needed classifier or diagram
From the Edit menu, select Quick Find. In the dialog box that appears, type the name of the classifier or diagram (also, you can select it from the drop-down list) and choose one of the option buttons.

Figure 1 -- Quick Find screen

Filters in the autocompletion dialog allow the filtering of rarely used items, such as "metaclasses" and "elements from modules". This allows comfortable and clear usage of the autocompletion dialog for modeling, without active usage of the elements from profiles and it increases modeling speed. At the bottom of the drop-down list box, you will find buttons to perform filtering:
The Auto completion includes metaclasses button. When pressed, the list of available elements, element types, or stereotypes includes metaclasses (in MagicDraw metaclasses are placed in the UML Standard Profile) appears. The Auto completion includes elements from profiles and modules button. When pressed, the list of available elements, element types or stereotypes includes elements, which are placed in modules appears. (Note! This option toggles all profiles except the UML Standard Profile.) The Auto completion uses camel case button. When pressed, you may search for elements via the capital letter patterns. For example, instead of typing ArrayIndexOutOfBoundsException you may type AIOOBE.

Find all elements of the same type


1. From the Edit menu, select Find, or press corresponding shortcut key Ctrl+F, or click the Find button on the main toolbar. The Find dialog box opens. 2. Type the "*" symbol in the Name text box. 3. Click the "..." button near the Type text box to open the Select Element/Symbol Type dropdown combo box. Select the types of elements and click OK. The Model elements in this box are listed according to the metamodel.

162

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching
4. Click the Find button to start search. The search results will appear in the Search Tree in the Browser. TIP! To generalize the beginning or ending of the name, add the "?" symbol to the front or to the end of the string.

Find model elements and symbols in your project


1. Choose Find from the Edit menu or press the corresponding shortcut key Ctrl+F or click the Search tab in the Browser. 2. In the Name text box, type the name of the element. If you want to find all elements of the selected type, enter the "*" symbol in the Name text box. 3. Click the "..." button near the Type text box to open the Select Model Element/Symbol Type drop-down combo box. Select the types of elements and click OK. The Model elements in this box are listed according to the metamodel. 4. To start a search, click the Find button. The search results will appear in the Search Results tree in the Browser. TIP! To generalize the beginning or ending of the name, add the "?" symbol to the front or to the end of the string. If the Clear Previous Results check box is cleared, new results are appended to the previous search results in the tree. Select Search Data Unused in Diagrams check box to find only elements without shapes.

NOTE

TIP!

To search for symbols in an active diagram


Search in the active diagram using the Find or Quick find dialog is a time saving feature. You can search for the symbols of elements, which are drawn in the open diagram: 1. Select the Find in Diagram command from the diagram shortcut menu. The Find dialog box opens. In the Find dialog box, the Limit results to active diagram check box is selected. 2. Type the element name for the symbol you are searching for. Click the Find button. 3. In the Search Results tree, double click on the element and the symbol of this element is selected on the diagram pane.

-or Press the Shift+F key. The Find dialog box opens. Press the Ctrl+Shift+F key to open the Quick find dialog.

163

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching Find dialog box

Figure 51 -- Find dialog box

The Find dialog box contains five tabs:


Tab Name Search Element by Name Search Element by Stereotype Tab Icon

164

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching
Tab Name Search Element by Tagged Value Tab Icon

Search Element by Constraint Value

Search Element by Documentation

165

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching Search Elements
Element Name Function Type the name of the item you wish to find.

NOTE:

You may define wildcards <*> and <?> for the search. 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 the string as <?agicDraw>, all strings containing <agicDraw> will be found.

Type Scope Limit results to active diagram

Select an element type from the proposed items, or leave the default value of <any>. Specify a package where the content search will be performed. The search scope is limited to the symbols of active diagrams. The Check box is disabled if all diagrams are closed or if the active diagram is empty. The default value is false. If the Find dialog box is opened from the diagram shortcut menu, the Limit results to active diagrams check box is selected. NOTE: The Limit results to active diagrams check box does not exist in the Find dialog box when it is opened from the model comparing dialog.

Value

Select or input a value of the Tagged Value or Constaint Value. NOTE: Only available for Search Element by Tagged Value and Constraint Value tab.

Load elements (not loaded) and autoloadable modules Case Sensitive

If the model has diagrams or modules that are not loaded, select this check box to load all elements to be included in the search. NOTE: Elements will not be included in the search if the module load mode is set to Manual load. Search for items that have capitalization exactly as defined in the string entered in the Item to Find box. When the check box is cleared, MagicDraw does not distinguish between uppercase and lowercase characters of the item name entered in the Name box while searching.

Match Whole Words Only

Search for items with names that exactly match the string entered in the Item to Find box. When the check box is cleared, MagicDraw searches for items with names matching the first part of the string entered in the Name field.

166

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching
Search Data Unused in Diagrams Java Regular Expression Clear Previous Results Find Close Help Only searches elements that do not contain symbols in any diagram. In the Java Regular Expressions on page 167, you can find several expressions that will help you to make a search in MagicDraw. Removes all previous search results from the Browser tree. Searches for items and displays the results in the found items list field. If MagicDraw does not find any items, a message is displayed. Exits the dialog box. Displays MagicDraw Help.

Java Regular Expressions


Metacharacters
There are several characters supported, which are used to form search patterns ([{\^$|)?*+. There are two ways to force a metacharacter to be treated as an ordinary character:
+ Precede the metacharacter with a backslash + Enclose it within \Q (starts the quote) and \E (ends it).

Character Sets
[abc] [^abc] [a-z] [a-z[A-Z]] [a-z&&[r-z]] [a-z&&[^r-z]] Any character of a, b, or c. Any character except a, b, or c (negation). All characters from a to z (range). All characters from a to z and A to Z (union). Characters from r to z (intersection). Characters from a to q (subtraction).

Predefined character sets:


. \d Any character. Any digit character.

167

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching
\D \s \S \w \W Any non digit character. White space character (\t\n\x0B\f\r). Any non white character. Word character (a-z, A-Z,_,0-9). Any non word character.

Example:
Regular expression: [ABC][^\s]\d Matched text: any sequence starting with an "A", "B", or "C" symbol, followed by any non white space character and any digit.

Grouping
Capturing groups helps to treat multiple characters as a single unit. Example:
Regular Expression: ABC|(\dABC) Matched text: any text containing ABC symbol set or ABC symbol set beginning with any digit symbol.

Quantifiers
Quantifiers allow specify a number of character (X) appearances.
X? X* X+ X{n} X{n,} X{n,m} Match X zero or one time. Match X zero or many time. Match X one or many time. Match X exactly n times. Match X at least n times. Match X exactly n times, but not more than m times.

Example:
Regular expression: Cla(s{2}) Matched text:any sequence starting with "Cla" symbols, followed by "s" symbol two times. It will match any text containing the string "Class".

168

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching

Boundary Matchers
Boundary matchers help to match strings more precisely. Boundary matchers help by matching a particular word, beginning or end of line, or beginning or end of the input.
^ $ \b \B \A \z Beginning of the line. The end of the line. A word boundary. A non word boundary. Beginning of the input. End of the input.

Example:
Regular expression: \bCla(s{2})\b Matched text:any sequence starting with "Cla" symbols, followed by "s" symbol two times. It will match any text containing string "Class" as whole word ("Classs" won't be matched).

Embedded Flag Expressions


Allows setting to set properties for a regular expression matcher. (?i) (?x) (?m) (?s) (?u) (?d) Case insensitive matching. Ignores white spaces in regular expression. Enables multi line option. If not specified, boundary matches ^ and $ matches beginning of the input and end respectively. Enables expression "." to match any character including line terminators. If not specified, dot in expression does not match line terminators. Enable Unicode-aware case folding. When this flag is specified, case insensitivity is applied to the Unicode standard. Enable Unix lines mode. Only terminator '\n' is recognized in behavior of ".","^","$"

Example:
Regular expression: (?m)^\bCla(s{2})\b Matched text: any sequence from a new line, starting with "Cla" symbols, followed by "s" symbol two times.

169

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching References
http://java.sun.com/docs/books/tutorial/extra/regex/index.html

Replacing
The Find and Replace functionality allows replacing one specified model value with another value. You can change the values for the following properties:
Names Documentation Tag values Text included to Notes Text included to Text Boxes Expressions.

To replace a value:

170

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Searching
1. From the Edit menu, select Find and Replace. The Find and Replace dialog box opens.

Figure 52 -- Find and Replace dialog box 2. Type the value to be replaced into the Find What field. 3. In the Replace With field, type the value that will replace the value of the found ele-

ment. 4. Specify the search criteria. For more information about the search criteria, see Searching on page 161.

171

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning
5. Click the Replace button to start the replacement. On each property replacement the

question appears. You may choose to replace value, replace all values or not replace.
NOTE

You will see the error when changing value to not valid:
For example, if value type is boolean, you may replace values from true to

false or from false to true, but if you will try to replace the value true or false to other, for example, to Motor, an error message will be displayed.
You will not be allowed to change the Integer value to String when it is a part

of the value. For example, if you have the 120 value and trying to replace 20 with AB, an error message will be displayed.

Project Partitioning
View Online Demo Shared Packages

Partitioning the model


If you developed, or are developing, a large model that has several weakly dependent parts, it is advisable to split it into several module files. Partitioning opens up possibilities for reusing model parts in several related projects and may improve performance on very large projects, when modules are loaded selectively. Partitioning has a package level granularity. Smaller elements cannot be split into separate modules. In principle each package in a containment tree could be partitioned into a separate module, however this is excessive. The decision on how to split a model into parts should be made carefully. You should isolate model parts, which form some cohesive, logically complete piece of structure (subsystem, code library, profile) and have light interdependencies. When there are many one-way dependencies to some model part (parts A, B, C depend on part D, but part D does not depend on any of the parts A, B, C), this part is a good candidate for placement into module.

172

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning When one big project is used to store all the modeling information of the project models (use case models, high level architectural models of the project, detailed implementation level class, sequence, state, etc.), it may be useful to partition the models according to the modeling domains (use cases in one module, architectural models in another, implementation level models in yet another). This allows unloading unnecessary modules while working on one part or another (saving computer and improving performance), but still retain the relationships between domains and load modules, on demand.
NOTE Avoid partitioning a model into parts, which have circular dependencies. (A B or A->B->C->A situations)!

Usually programmers are very adept at splitting large code bases into libraries. The very same criteria should be applied to splitting the large models into modules. MagicDraw module functionality allows two important posibilities:
possibility to work without all modules loaded; read-write modules.

Modules are often used for profile storing, however a module is not a profile and it is important not to mix the two. Any model part can be stored in the module.

Exporting the module of a project


NOTE: This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

Using the Export Module dialog box, you can partition the model and save the content of a selected package as a separate module. Once exported, the package and its containing elements are readonly and the module name is displayed in brackets next to the package name in the Browser tree.

173

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning To export any module using the File menu
1. From the File main menu, select Export, and then select Module. The Export Profile/Module dialog box opens.

Figure 53 -- The Select Package dialog box for module exportation 2. In the All Data list, select the package you want to save as a separate module. Click Add. The package is added to the Selected Objects list. 3. If desired, type a description of the module in the Profile Module Description window. This description is displayed in the documentation of the package. 4. Click OK.

To export the selected module using the package shortcut menu


1. In the Browser tree, select the package you want to save as a separate module (you can also select multiple packages).

174

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning
2. From the package shortcut menu, select Modules, and then select Export Module. The Export Module dialog box opens. 3. In the All Data list, select the package you want to save as a separate module. Click Add. The package is added to the Selected Objects list. 4. If desired, type the description of the module in the Profile Module Description window. This description is displayed in the documentation of the package. 5. Click OK.

MagicDraw will check for dependencies from the exported part of the model to the part of the model not. You will have to resolve them. The dependency resolution process is the same as for dependency resolution between shared and parts of the module not shared. When dependencies are resolved, MagicDraw will ask for the file and export the module. This action can be thought as consisting of 3 elementary steps:
Saving model elements into the module file. Sharing the entire contents of the module. Using the module in the main project.

Alternatively, if you have several small, related projects, you can join them together into a larger, partitioned project to work with all the information from one place. This is achieved by using the Use Module command that was previously mentioned.
NOTE: Only packages can be exported as modules. To export the created diagram, you must move it to a package containing elements to export.

Sharing the module of a project


NOTE: This functionality is available in Standard, Professional, Architect and Enterprise editions only.

Not all module contents are visible in the project being used. The Module has a shared part and private part. Only contents of the shared part are visible in the project being used. The concept is similar to the public/private parts of modules in programming languages (e.g. Pascal). To designate packages of the module as shared
From the File main menu, select Shared Packages.

175

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning
From the package shortcut menu, select Modules and then Shared Packages. The Shared Packages dialog box opens. Use the Add button to select more packages for multiple simultaneous sharing, if needed. Click OK.

Only the package selected is shared and everything else is not shared. When the module with shared package(s) is used in the project, the shared part(s) is mounted into the module of the project. Each shared package can have a different mount point. Modules of profiles are typically mounted directly under the top level Data element of the package being used, however this can be changed. Example:
Shared package "util" from the module can be mounted on the "com::company" path in the main project - to form the "com::company::util" path. The Preferred Path of the Shared Package (can be tuned in the Shared Packages dialog box) of the module, serves as a hint for MagicDraw on where to mount the package.

Modules form a recursive data structure - the main project uses one or several modules; these modules in turn can use other modules; those other modules can use yet another set of modules and so on. All model pieces from these modules are gathered and connected into the integral model, which is shown in the model Browser when the main project is opened.

176

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning

Managing modules (the Modules dialog box)


From the Options main menu, select Modules.

Figure 54 -- The Modules dialog box Box name Module Accessability Function Specifies the way a module can be used in a project:
read-only modules are not editable within the project using

it.
read-write modules can be edited in place - directly in the

project using it.

177

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning
Module Load Mode Sets the module loading mode:
Always load (default) - modules are always loaded when

the project is opened.


Autoload - module is not loaded when the project using it is

loaded. However, MagicDraw monitors user activities in the project and tries to anticipate guess when the user might want to use the model piece from the unloaded module. Autoload with prompt - mode is similar to Autoload. However, MagicDraw will ask the user before loading the module. Manual load - module is not loaded when the project using it is loaded.
Use Module Index If selected, uses the indexing scope specified in the Project Options dialog. For more information about indexing, see Indexing on page 192. Name of the shared package. Carries the information about the path where the shared package should be placed in the project using it. Holds the packages of the project on which the corresponding module share is mounted. Click the ... button to change package or create a new one. Enabled, when the module is selected as read-write. Allows the use of the module in the selected module. Removes module from the project. Imports module to the project. Reloads module in the project. Unloads module from the project. Opens the selected project as a module. The Project Options dialog box opens.

Shared Package Preferred Path Mounted On

Use Module Remove Import Reload Unload Open as Project Options

Dependencies Between Elements


A package can be exported to an independent module only if it does not depend on external elements (except other modules). Cyclical dependencies between several modules are not allowed. There are three types of dependencies:

178

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning
Dependency by relationship Dependency by reference Diagram dependencies

Package dependencies by relationship


The module depends on external elements If a module element has a relationship with an external element and this relationship is contained in the module package, an error message appears when exporting the module.

Figure 55 -- Example of a module dependency on an external element

Such dependencies on external elements are displayed in the Browser tree:

Figure 56 -- Package has a dependency on an external element

179

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning

Figure 57 -- Error in the Package Dependencies dialog box

In this situation, MagicDraw can suggest moving the relationship into the parent package of this external element. For example, package1 is a parent of class B, so the relationship can be moved from the module into package1:

Figure 58 -- Resolved package dependency on an external element

Some movements can be achieved by clicking Solve in the Package Dependencies dialog box. For a detailed description of this dialog box, see The module package can now be exported into an independent module. on page 183. You can also drag-and-drop the relationship from one package to another in the Browser tree.

180

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning The module depends on an external element, but can be exported (with warning) Though the module element has a relationship with an external element, this relationship is contained in an external package:

Figure 59 -- Example of a legal module dependency on an external element

In this case, the dependency on an external element is displayed in the Browser tree:

Figure 60 -- Legal module dependency on an external element in the data model browser

The package can be exported as a module because the relationship is contained in an external package.

181

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning The module does not depend on an external element If the module element has a relationship with an external element is irrelevant in the context of UML (for instance, the external model uses the module, but not vice versa) and this relationship is contained in an external model, the package can be exported into an independent module:

Figure 61 -- Example of a relationship when the module does not depend on an external element

Dependencies by reference
The module depends on external elements when the model elements from the module packages have references to external elements.

Figure 62 -- Example of a dependency by reference

In this case, the module package cannot be exported to an independent module.

Diagram dependencies
The diagram depends on all model elements displayed within it.

182

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning If the diagram is contained in a module package and depends on external elements, this package cannot be exported to a module.

Figure 63 -- Example of the relationship when a diagram depends on an external element

For more information about the package dependencies on external elements, see The module depends on external elements on page 179. In this case, if the diagram is not important to the module, it can be moved from the module package into any external package by dragging and dropping it within the Browser tree:

Figure 64 -- Diagram is moved from the module package to the package1 package.

The module package can now be exported into an independent module. MagicDraw Teamwork Server is an ideal solution for group work on the same project. For more information about the Teamwork Server, see the MagicDraw Teamwork System Users Guide.

183

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning

The Package Dependencies dialog box


The Package Dependencies dialog box opens when the package cannot be exported to the project module, because dependencies with external model elements have been found. To open the Package Dependencies dialog box In the Browser tree, select the package containing a dependency with an external model element. From the shortcut menu, select Modules, and then Export Module.

Figure 65 -- The Package Dependencies dialog box Box name Status Function Status of the problem. It can be Error or Warning.

184

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning
Element Type Dependency Type Depends On Solve Click the button to solve Error dependencies. It is available when the error status dependency is selected in the table and a solution for the problem can be found. The message is displayed detailing how the dependency can be solved. The dependency status in the dependencies table is changed from Error to Warning. Select in Containment Tree Click the button to select the element in the Browser, which is already selected in the dependent element table. Refresh Click the button to perform a module dependency check and refresh the module dependencies table. Change Exports Export The Export Module dialog box opens. You can change the package set, selected for export. Export a package as a separate module. Available when all module dependencies have a Warning status or no problem dependencies exist. Cancel Help Exit the dialog box without saving changes. Display MagicDraw Help. The type of element. The type of dependency. Model element on which the package element is dependent.

Unresolved dependencies
When a model part is exported to a separate module, if there are dependencies from the module back to the project, you are asked to resolve them (dependencies in the opposite direction - elements in project depending on elements in module - are OK). The same situation occurs when you edit the module inside the project (when the module is mounted read-write on the project) and introduce dependencies from the module back to the project. In this case, you will be asked to resolve these dependencies on module save. However, it might be inconvenient to resolve these dependencies at that moment (perhaps you have finished work for today and you will resolve dependencies tomorrow, and now you just want to save the project and leave; perhaps the particular dependency resolution is not a trivial task, which will take some time).

185

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning MagicDraw allows you to continue without resolving these dependencies. The elements, which were referenced, but are missing in the module will be shown as missing proxy elements (see Missing elements for the proxies (orphan proxies) on page 194). This is one more improvement - in previous versions MagicDraw was strict in checking dependencies and did not allow dangling references. Now more flexibility is allowed. This behavior is controlled by the Check dependency on module export/share environment option (from the Options menu, select Environment, General section). There are three choices:
Do not allow dependencies setting restores previous, strict checking. Allow dependencies is the default setting, described above. Do not check setting is an even more lax setting; it does not prompt the user to resolve dependencies at all. If you are not careful, this can lead to the proliferation of missing proxy elements, hence proceed with care.

Using the module of a project


When a module is used in another project, its contents are linked-in and made accessible in the model tree of the project using them as if it were part of the project. To use a module in a project
1. From the File main menu, select Use Module. 2. In the Use Module dialog box, select the module you want to use in your project, specify the module settings and click OK. The model elements are still stored separately; module elements - in the module file and main project elements - in the main project file.

186

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning

The Use Module Wizard


From the File menu, select the Use Module command.

Figure 66 -- The Use Module Wizard, Step1 - Select Module Box name Modules path Module description Next Finish Cancel Help Function Displays the path, from which the modules list can be displayed. Displays the module description. Proceeds to the next step. Saves changes and closes the dialog box. Cancels the dialog box without saving changes Displays MagicDraw Help.

187

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning

Figure 67 -- The Use Module Wizard, Step2 - Module Settings

For more information about the options in this step, see Managing modules (the Modules dialog box) on page 177.

Reusing model parts between models


When models are properly partitioned, model parts can be reused in other projects. For example, a common situation in Java software projects is this layout of the packages (in project A):

188

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning Common and util packages are good candidates for refactoring into modules. Then in project B these modules can be reused. There are two ways to use the module in the project:
read-only modules are not editable within the project using it. read-write modules can be edited in place - directly in the project using it.

The usage mode can be specified in the Use Module Wizard, Step 2. By default, the module is used in the project in read-only mode. To change module accessability mode
1. From the Options main menu, select Module. The Module Options dialog box opens. 2. Select module in the tree and change the Module Accessability option from read-only to readwrite or vice versa. Click OK.

You can change content of a module and make its inner elements editable by selecting Open Module As Project (from the module shortcut menu, Modules submenu). The module opens as a separate project. When to use read-only module? The decision to use a module as read-only or read-write depends on the maturity of the module and the organization ownership/responsibility rules for the projects, developing modules. If the library in the module is mature (changes to it are not expected/likely/possible) it should be used in read-only mode. If the module is owned by a team, working on one project, and this team is responsible for this module and the module is reused in another project, the module should be used in the other project as readonly. This prevents inadvertent changes to the library. When to use read-write module? In the case where a module is actively developed and evolves together with the projects that are using it, a module should be used read-write.

189

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning In this case, if there are multiple projects using the module, you should be careful and remember, that your changes to the module will be reflected in other projects, therefore care should be exercised. Usage of teamwork server might be advisable in this case. And, of course, there can be mixed usage situations - when a module is used read-only in some projects and read-write in others.

Reloading the module of a project


The best way to access the latest changes to your module is to reload it. All modifications made in the other project for this module and then exported as modules with the same name, are reloaded in the current project. To reload the module
In the Browser tree, from the exported module shortcut menu, select Modules, and then select Reload Module. NOTE: If you open your module as a project, be sure to save any changes you have made (by using the Save command). All modifications appear after reloading the module in the other open project, which includes your module as a component.

Importing the module of a project


If you wish to store model elements of the module in the main project file, you can import the module into the project. To import a module into a project
From the package shortcut menu in the Browser, select Modules and then Import Module. All the model elements from the module will be copied into the main project, and the module will be unlinked from the project.

Working with partially loaded projects


In MagicDraw v11.5, the possibility to work with some modules unloaded was added. Prior to this release, all the modules were required to be loaded when the main project was loaded. If the module file was missing, it was an error.

190

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning This feature allows some memory to be saved and improved performance when working with very large projects. "Large" for MagicDraw is several thousands of classes and other complex elements. If counting all the small elements, such as properties, methods, method parameters, ~50K of elements is considered a large project. A good example of a large module is a module having a model of Java rt.jar reversed into it. Also diagrams are large elements - 20 or more complex diagrams should be considered large. When working with a large project partitioned into several modules, at any moment a module can be unloaded. When editing a project, if you see that the module will not be used for some time (perhaps you are working on a different part of the large project), you can unload it - this will save resources. To unload a module from a project
From the module shortcut menu, select Modules and then Unload Module. An unloaded module can be loaded at any time.

To load a module in a project


From the module shortcut menu, select Modules and then Load Module.

When the module is unloaded, there are some model elements left in the place where the module was mounted. These elements are not editable, and they have a small M in the upper right corner of their icon. These are the so-called "proxy" elements of the real elements from the module. Instead of the real model elements, the proxy carries only the name and kind of the model element information - it is a lightweight surrogate for the real model element. The proxies are left in the place of those module elements, which are referenced from the main project. These proxies are normal and necessary to maintain project integrity (so that there are no dangling ends of relationships, types of properties do not disappear, etc.). There are 4 module loading modes:
Always load (default) - this mode of operation closely mimics the pre-v11.5 MagicDraw functionality. In this mode, modules are always loaded when the project is opened. They can be unloaded if the user deems it necessary. Autoload - module is not loaded when the using project using it is loaded. However, MagicDraw monitors user activities in the project and tries to anticipates when the user might want to use the model piece from the unloaded module. E.g. if the user does the search, finds usages/ dependencies, reports, metrics, transformations, or code engineering actions with a scope that touches the unloaded module, MagicDraw will load the module.

191

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning
Autoload with prompt - mode differs from the Autoload mode in this way: MagicDraw will ask the user before loading the module. Manual load - module is not loaded when the project using it is loaded. It can be loaded, using the aforementioned Load Module command.

To change the module loading mode


1. From the Options main menu, select Module. The Module Options dialog box opens. 2. Select a module in the tree and change Module Load Mode by selecting the approriate radio button.

Modules, which are used very frequently, should be set in the Always load mode. Modules, which are used only occasionally, should be set in the Autoload mode (or Autoload with prompt if you like to have more control on the loading behavior). Modules, which are used only very rarely, can be put in the Manual load mode. Another frequent case where modules can be set into Manual load mode is when modules represent some software library, which is not expected to change. See the paragraph 1.6.1 Indexing below.

Advanced Concepts
Indexing
Indexing can be considered as an intermediate form of work, between working with a fully loaded module and working with the module unloaded. When a module is unloaded/not loaded in the project, only necessary proxy elements are shown in the place of the module. However, there is a possibility to retain more proxies from the unloaded module than is kept by default. There is one case, where this functionality is particularly useful. Consider the large software library module in a project. Lets say, only the various classes are used in the main project - some library classes are set as types of properties in the model classes, some model classes inherit from the library classes, etc. In this case, structural information of the library classes (their properties and methods) is not important. If proxies of all classes could be retained when the module is unloaded, this library module could be used in the main project in the unloaded state (saving a considerable amount of computer resources). The indexing feature allows achieving this functionality.

192

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning To specify indexing scope
1. First open the module as a project. 2. From the Options menu, select Project. The Project Options dialog box opens. Select the Indexing section.

3. Select the Common Indexing radio button. This enables indexing of the module and determines what information will be indexed. 4. When common indexing is chosen, classifiers and their inheritance relationships will be indexed. If you want more elements to be indexed, select the Custom Indexing option and fine-tune what element types (properties, methods, etc) should be indexed. The more elements you select, the more elements will be accessible in the project using them as proxies. However, your gains in performance from the module unloading will also diminish. Hence, a balance is needed when customizing the index. It is usually better to use the common indexing variant. Click OK. 5. In the project using the indexed module, go to the options of this module (Options menu >Modules) and select the Use Module Index checkbox for that module.

193

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning Such setup causes all the classes of the module to be visible as proxies when the module is not loaded (it is also advisable to change the loading mode of this module to Manual loading). These proxies can be used as normal model elements in the project using them, without ever loading the module. They can be set as types of properties of the classes in the main project, they can be set as an association ends, classes may be derived from them, etc. If you ever need more information from that module, you can load it at any time to access the full data in the module. An example could be in the module holding standard Java classes (rt.jar was reversed into it). This module is large, having all the details of standard Java classes. Many of these details are unused in the project; frequently only class information is used in the project for modeling tasks.

Missing elements for the proxies (orphan proxies)


Orphaned proxy (indicated with [!] adornment in the model tree) is really an indication of the dangling reference. Appearance of the proxy is indication that some other elements for example from outside the module (i.e. elements in the main project or other modules) reference to the element in the module that was previously there but no longer exists. Element was deleted/removed/somehow made unavailable in the module. In such case MagicDraw creates so called "orphan proxy" in place of the missing element - a surrogate/not real element (with exclamation mark - "!") in place where real element was once in the past. Searching for orphan proxies Run a search (Ctrl+F), check the Orphaned Proxies Only checkbox. This will give you all the orphan proxies in your model in the search results. Resolving orphan proxies To resolve the orphan:
Right-click the orphan in the search result or containment tree>Orphaned proxy Resolution.

There are 3 actions you can do with the orphan proxies:


1. Clear Proxy Usages. Can also be triggered by simply pressing the Delete button. This action clears all the references to this non existing element, hence there is no more need for the proxy to appear.

194

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning
2. Replace With. This replaces all the references to the orphan with references to a chosen element. 3. Create New Substitute. This "resurrects" the element which is missing (module must be editable for this).

Which one of them to choose depends on wherever these missing elements are necessary or are they unnecessary. If they are necessary (i.e. you want these elements to exist; they must be there), this means that they were deleted by mistake at some point in the past. Maybe MagicDraw can not find the required module? Or elements were moved to some other module? Or maybe the old version of the module is used, which hasn't got these elements? The causes may be numerous. You have to find where these elements are in your modules/main project.
If they were moved to some other module, you have to use that module into your main project (File>Use module). If elements were in the part of the module which was unshared, share this module part again. If MagicDraw can not find the module on disk, it should ask you to provide path to it on project load. If elements were deleted from the module/main project, you have to roll back to the previous version of the module/project (in your version control system or Teamwork server, or wherever you back your files up into) which still had these elements.

Creating New Substitute As the last resort, if you have no version saved, where these elements still exist, you can try to "resurrect" them. Right-click each proxy>Orphaned Proxy Resolution>Create New Substitute. MagicDraw will recreate the missing element from the bits of information it still has (which is not much - ID, name and kind of the element).

NOTE:

This action might be disabled if the substitute to be created must be in the module, but this module read-only. In this case simply change module to readwrite in the Module Options dialog (Options>Modules) and the action will be enabled.

195

Copyright 1998-2009 No Magic, Inc.

4 WOR KING WITH PRO JECTS


Project Partitioning Deleting orphan proxies If these elements are unnecessary (i.e. you want them to disappear; they must not be there), this means that they were deleted properly. Now all we have to do is clear the dangling references, which still exist in the other modules/main project to these non existing elements. To delete orphan proxy:
right-click each proxy>Orphaned Proxy Resolution>Clear Proxy Usages; or press Delete on the selected orphan proxy.

You can also do this en masse:


1. run a search (Ctrl+F); 2. check the Orphaned Proxies Only checkbox. This will give you all the orphan proxies in your model in the search results; 3. select them all and press Delete.

When references to them are cleared, orphan proxies will disappear.

NOTES:

Note that if references to these non existing elements are in the modules, which are mounted read-only, this action can not clear them. Clear Proxy Usages or Del button resolution method works temporarily only- when project is loaded next time orphan proxies will reappear. To delete proxies fully you have to open each module as project and clean orphan proxies there.

196

Copyright 1998-2009 No Magic, Inc.

WORKING WITH DIAGRAMS

This chapter offers an overview of working with diagrams. In general, the topics discussed apply to all supported diagram types. When working with diagrams it is helpful to keep in mind the following concepts:
A shape refers to a notation of a model element, such as a package, class, state, use case, object, or others. 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.

In this Section, you will find the following chapters:


1. "Working with Diagrams", on page 198 2. "Table with diagram information", on page 208 3. "Drawing Shapes", on page 209 4. "Drawing the Shapes of the Diagrams", on page 214 5. "Drawing Relationship Paths", on page 215 6. "Inserting a Shape on the Path", on page 218 7. "Creating Relations from the Model", on page 220 8. "Smart Manipulation", on page 221 9. "Selection and Multiple Selections", on page 224 10. "Dragging, Copying, Cutting, and Pasting", on page 227 11. "Changing the diagram type", on page 229 12. "Using the Grid", on page 232 13. "Layout", on page 233 14. "Showing Diagrams in Full Screen", on page 253 15. "Saving as an Image", on page 255 16. "Printing", on page 258

197

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Working with Diagrams

Working with Diagrams


View Online Demo MagicDraw Basics

Diagram Basics
To create a new diagram
From the toolbar: Click the desired diagram button on the toolbar. The Create Diagram dialog box opens. Enter the name of the diagram and select or create a package where you wish to create your diagram. From the Diagrams menu: From the Diagrams menu, select the desired diagram. The corresponding Diagrams dialog box opens. Click Add. The Create Diagram dialog box opens. Enter the name of the diagram and select or create a package where you wish to create your diagram. From the Browser: Right-click the desired model element in which you would like to create a diagram and, from the shortcut menu, select New Diagram. Type the name for diagram directly in the Browser. From the model element Specification dialog box: Open the Package, Profile, Model Specification or other elements Inner Elements tab. Click Create. The corresponding Diagram Specification dialog box opens. In this dialog box, you can define the diagram name, enter documentation, define stereotypes, and add tagged values and/or constraints.

NOTE To open a diagram

You may create a diagram in the selected package, model, or profile.

From the Browser: Select Open from the diagram item shortcut menu or double-click the diagram item. From the Diagrams menu: From the Diagrams menu, select the desired diagram. The corresponding Diagrams dialog box opens. Click the Open button. From the Content Diagram (available in the Standard, Professional, Architect, and Enterprise editions only), if a diagram is added to the table of contents or a symbol of a diagram is drawn on the Diagram Pane.

198

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Working with Diagrams
If the diagram is assigned to a particular model element, double click this model element.

TIP 1!

To load all diagrams that have been created in the project, from the Diagrams menu, select Load All Diagrams. To open the list of diagrams that were most recently closed, from the View menu, select Recently Closed Diagrams and double-click the diagram you want to open. The F12 key also activates this command. In the General pane of the Environment Options dialog box, you can select a method for loading diagrams while opening a project. Three options are available:
Load all Diagrams loads all diagrams that exist in the project. Load Only Open Diagrams loads only diagrams that were not closed in earlier usages of the project. Do not Load Diagrams all diagrams are not loaded and closed after opening a project.

TIP 2!

TIP 3!

To close a diagram Click the Close Diagram button on the diagram pane or select Close Diagram from the diagram shortcut menu. Define a diagram in the corresponding Diagram Specification dialog box. To split diagrams in new horizontal or vertical group
1. Select the open diagram tab and drag it to the diagram pane. The shortcut menu with

commands appears.

2. Select New Horizontal Group or New Vertical Group to split diagram pane and

have more than one diagram opened at the same time.


Commands can be found in the diagram tab shortcut menu, when so many diagrams are opened that diagram tabs are filled in the toolbar line.

199

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Working with Diagrams To show the diagram owner on the diagram tab
1. In the package, create diagram. 2. Select the open diagram tab and right-click to open the shortcut menu. 3. Select the Show Owner check box. The package name appears on the diagram tab.

Diagram Specification dialog box

Figure 68 -- Diagram Specification dialog box

Refer to Specification dialog boxes on page 265 for information on these specification elements. To rename a diagram In the corresponding Diagram Specification dialog box, type a new diagram name. To change diagram context
In the corresponding diagram Specification dialog box, near the Context box, click the ... button. Then, the Select Element dialog box appears. Select the diagram context.

200

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Working with Diagrams

Diagrams Dialog Box


The Diagrams dialog box is used for the following purposes:
For viewing the owner of the diagram. For creating a new corresponding type of diagram. For editing the name and other characteristics of the diagram. For removing a diagram from the project. For opening a diagram.

To open the corresponding Diagrams dialog box From the Diagrams menu, select one of the diagrams. Depending on the type of diagram, the dialog box that opens has a corresponding title.

Figure 69 -- Diagrams dialog box

The Diagrams dialog box contains the following elements: Element name Name Owner

Function The names of all created corresponding diagrams in the open project. The name of the package that owns the diagram.

201

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Working with Diagrams Element name Edit Add Remove Open Close Help Function The Diagram Specification dialog box opens. Type the diagram name, select a package, and click OK. Creates a new diagram. The Create Diagram dialog box opens. Type the diagram name, select a package, and click OK. Deletes the selected diagram. Opens the selected diagram. Saves all actions performed during the session and exits the dialog box. Displays the MagicDraw Help.

Diagram Properties
Customize the diagram style (color, grid) in the Diagram Properties dialog box. To open the Diagram Properties dialog box
Select Diagram Properties from the diagram shortcut menu. The Properties dialog box opens. From the Edit menu, select Symbol, and then select Diagram Properties.

202

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Working with Diagrams
Press SHIFT+ENTER.

Figure 70 -- Diagram Properties dialog box

The Diagram Properties dialog box contains the following elements: Element name Pen Color Text Color Font Function Change the color of paths or diagram frame line. Change the text color of the diagram frame name. Change the font style of the text.

203

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Working with Diagrams Element name Background Color Function Set the diagram background color. Click the ... button. The Color dialog box opens. Set the color in one of three different ways: using Swatches, HSB, or RGB tabs. Sets the gradient for the shapes fill color. Displays 3D shadow on symbols. Shows the grid on the Diagram pane. Sets grid size from 2 to 30. Uses the grid on the diagram for drawing paths. Uses the grid on the diagram for drawing shapes. Displays message numbers on the diagram.

Use Gradient Fill 3D Shadow Show Grid Grid Size Snap Paths to Grid Snap Shapes to Grid Show Message Numbers (Available only for Activity, Communication, and Sequence diagrams) Use Advanced Numbering (Available only for Activity, Communication, and Sequence diagrams) Show Diagram Info

Displays more detailed message numbering on the diagram.

Displays a table on the diagram that contains information about the diagram (Diagram name, Author, Creation date, Modification date, etc.). You can specify what information you want to include in the Project Options dialog box (Options menu->Project). Displays diagram owner on the diagram tab. Displays stereotypes on the diagram symbol. Utilizing the Use Stereotype property, you may choose to display context stereotype or diagram stereotype in the diagram frame and on the diagram shape. For more information about the Use Stereotype property, see To display the context stereotype instead of the diagram stereotype on the diagram frame on page 208. Changes the color of the stereotyped text label.

Show Owner Show Stereotypes Use Stereotype

Stereotype Color

204

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Working with Diagrams Element name Stereotype Font Diagram Orientation Function Changes the font style of the stereotyped text label. Available for Activity and Business Process diagrams for correct rectilinear path braking and drawing paths between shapes from side to side, or from bottom to top shape borders. Selects the predefined style. Sets the specified style as default. Saves changes and exits the dialog box. Exits the dialog box without saving changes. Displays MagicDraw Help.

Apply Style Make Default OK Cancel Help

Diagram name and its context name synchronization


The diagram name and its context name are synchronized automatically. For example, create an Activity diagram. Type a name for the Activity diagram, for example, Receive. The name of the Activity automatically changes to Receive. And conversely - change the name of the Activity and the Activity diagram name will be changed automatically. This is synchronization of a diagram name and its context name: Synchronization works in the following cases:
Activity and Activity diagram inside. Interaction and Communication or Sequence diagram inside. (Protocol) State Machine and (Protocol) State Machine diagram inside. Class and all available inner diagrams inside.

To turn off the synchronization clear the Synchronize the diagram name with its context name check box in the Environment Options dialog box, General branch, and Editing group. NOTE If the second diagram will be created in the branch, diagram names will not be synchronized.

205

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Diagram Frame

Diagram Frame
According to UML specifications, the diagram may have a diagram frame. The frame is primarily used in cases where a diagrammed element has graphical border elements (like ports, gates). Beginning with MagicDraw version 12.0, each UML diagram has a contents area. The diagram frame is primarily used in cases where the diagrammed element has graphical border elements (like ports for classes and components, entry/exit points on statemachines). By default, the diagram frame is displayed in the diagram pane when a new diagram is created. The frame is rectangle for all diagrams, except State and Activity. State machine and Activity diagram frames have rounded corners. The frame can be resized manually by selecting and dragging the corners or borders. To show/hide the diagram frame From the diagram pane shortcut menu, select/clear the Show Diagram Frame check box.

To change the diagram frame properties


1. From the Options main menu, select Project. The Project Options dialog box

opens. 2. Select the Diagrams group and change the properties in the right window, Diagram Frame properties group.

206

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Diagram Frame
From the diagram frame shortcut menu, select Diagram Properties or press SHIFT+ENTER to open the Properties dialog box. Change the properties in the Diagram Frame properties group.

Property name Show Diagram Frame Show Abbreviated Types Show Diagram Name Show Parameters Show Context Name Show Context Type Show Diagram Type Show Context Kind

Function Displays the diagram frame on the diagram pane. Shows full/abbreviated diagram keyword type on the diagram frame header. Shows the diagram name and icon in the diagram frame header. Diagram context element parameters are displayed in the diagram frame header. Diagram context element name is displayed in the diagram frame header. Diagram context element type is displayed in the diagram frame header. Shows the diagram type in the diagram frame header. Shows context kind, which is a keyword predefined in UML (e.g. package, class, activity) in the diagram frame header. Adjusts the size of the diagram frame to the contained information so that it uses minimum space.

Autosize

To hide the icon on the diagram frame


1. Invoke the diagram Properties dialog box. 2. Change the Show Stereotypes property value to Text.

207

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Table with diagram information

Figure 71 -- Diagram Frame with hidden diagram icon

To display the context stereotype instead of the diagram stereotype on the diagram frame
In the diagram Properties dialog box, Diagram Frame properties group, select one of the Use Stereotype property options:
Diagram. Diagram stereotype is displayed in the diagram frame and on

the diagram shape. This is the default property.


Context. Context stereotype is displayed instead of the diagram

stereotype in the diagram frame or on the diagram shape. NOTES


For more information about the context of a diagram, see To change

diagram context on page 200.


The Use Stereotype property is associated with the Show Stereotypes property. If you want to change the stereotype and its icon visibility use the Show Stereotypes property. For more information about the Show Stereotypes property, see Changing the stereotype display mode on page 698.

Table with diagram information


On the diagram, you may display a table containing various diagram details: its name, author, status, the dates it was created and modified, etc. By default, the Diagram info table is displayed at the right top corner of the diagram frame, but you can drag and drop it to any other position on the diagram.

208

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Drawing Shapes The table includes the following fields:
Diagram name Author Creation date Modification date Other available tag definitions

To show the table containing the diagram information


1. From the diagram shortcut menu, select Show Diagram Info. 2. The table with the predefined information will be displayed on the diagram.

To define information that will be included in the table


1. From the diagram info table shortcut menu, select Customize, or from the Options

menu, select Project. The Project Options dialog box opens.


2. Open the Diagram Info pane. 3. In the Source pane, select the type of information you want to include in the table:

Standard Mode or Custom Mode.


4. Standard Mode contains the following fields that will be shown in the table: Author,

Creation date, Modification date, and all other tag definitions that can be assigned to the diagram. In the Custom Mode field, you may create your own table or any other object in HTML. 5. Preview the selected table or other created object in the Preview pane.

Drawing Shapes
View Online Demo MagicDraw Basics

To draw a shape on the Diagram pane


1. Click the shape button on the diagram toolbar, or press the appropriate shortcut key

for the shape you wish to draw (the button remains pressed). For a detailed description of diagram toolbars, see Toolbars on page 82.

209

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Drawing Shapes
2. Click the desired location on the diagram pane. The new shape is placed on the dia-

gram pane at the point you click. OR


Click the shape button on the diagram toolbar, hold down the left mouse button, and dragg shape from the toolbar to the diagram. The new shape is placed on the diagram pane at the point you will release the mouse. Create the desired model element in the Browser tree. From the created item shortcut menu, select Create Symbol or drag and drop the selected model element to 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 key

for the shape you wish to draw (the button remains pressed.)
2. Click the Sticky button on the diagram toolbar (shortcut key is Z.) 3. Click the desired location on the diagram pane. The new shape is placed on the dia-

gram 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 the desired number of shapes. 5. To undo the shapes, click the Sticky button on the diagram toolbar (shortcut key is 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. From the item shortcut menu, select Create Symbol or drag and drop the selected

model element onto the diagram pane. To specify the name of the shape (when it is allowed)
1. Double-click the shape or select Specification from the shape shortcut menu. The

corresponding Specification dialog box opens. 2. Type the shape name in the Name text box and click Close.
Type the shape name directly on the selected shape on the Diagram pane. Type the shape name after slowly double-clicking the shape in the Browser tree.

210

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Drawing Shapes To create several shapes with the same data
From the shortcut menu of the desired item in the Browser tree, select Create Symbol. Or, drag and drop the selected model element onto 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 of the same kind on the Diagram pane. 3. Click the shape in the name area. The list of existing shape names appears. 4. Select a name for the shape from the list.
These shapes will contain identical data. Auto completion for entering names is available for all elements.

NOTES

IMPORTANT

If you attempt to enter an existing name in the corresponding Specification dialog box, an error message alerts you to the existence of the current name of the shape. You may not specify a name for a new shape if another shape of the same name and kind is already present in the package.

To use autocompletion when typing the element name


On the diagram pane, click on the element and then click on the element name area. The autocompletion list with already created elements appears.

211

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Drawing Shapes
Type the first letter(s) of your searched element and the list is reduced according to the letters you typed. For, example, if you are searching for Profile class, type the Pro letters and all classes, which beggins with Pro will be shown in the list.,

You can also press the Ctrl+Space or Ctrl+Backspace to invoke the autocompletion list. Filters in the autocompletion dialog allow the filtering of rarely used items as "metaclasses" and "elements from profiles". This allows comfortable and clear usage of the autocompletion dialog for modeling without active usage of elements from profiles and it increases modeling speed. At the bottom of the drop-down list box, you will find buttons to perform filtering:
The Auto completion includes metaclasses button. When pressed, the list of available elements, element types, or stereotypes includes metaclasses (in MagicDraw metaclasses are placed in the UML Standard Profile) appears. The Auto completion includes elements from profiles and modules button. When pressed, the list of available elements, element types or stereotypes includes elements, which are placed in modules appears. (Note! This option toggles all profiles except the UML Standard Profile.) The Auto completion uses camel case button. When pressed, you may search for elements via the capital letter patterns. For example, instead of typing ArrayIndexOutOfBoundsException you may type AIOOBE.

212

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Drawing Shapes To assign an existing type or to create a new type to an element You may quickly assign a type for the attribute, operation, parameter, instance, and lifeline using the autocompletion list:
1. On the diagram pane in the element name area type ":" and now you may assign the

element its type:


Type the name of a non-existant element. A new class and the assigned type are created in the project. Type the name of an already existing classifier and it will be assigned as the type. If in the project two classifiers exist with the same title after the classifier name is typed, the Select Classifier dialog box opens. Select the element you want to assign as type.

2. On the diagram pane in the element name area type ":" and press Ctrl+Space or

Ctrl+Backspace. The list of possible elements to assign opens. To find the element in the list by name, type its name.

To delete the selected model element or symbol


From the Edit menu, select Delete (both data and symbol are deleted.) On the main toolbar, click Delete (both data and symbol are deleted.) Press CTRL+D keys (both data and symbol are deleted.)

213

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Drawing the Shapes of the Diagrams
Press Delete key (only the symbol is deleted, leaving the data intact.)

NOTE

When deleting paths by pressing the DELETE key, the Delete Data? message appears. To delete the relationship data from the model, click Yes. When you use other methods to delete relationships, the relationship data is automatically deleted.

Drawing the Shapes of the Diagrams


UML diagrams are graphical representations of parts of the UML model. You can show any diagram shape in all types of diagram. To display a diagram shape on the diagram pane
1. Select the diagram in the Browser. 2. Drag the diagram and drop it in the diagram pane. The diagram symbol is displayed

on the diagram pane. The diagram type is written in the diagram heading - class, use case, etc.

To display stereotypes, tags, and constraints on the diagram shape


1. From the diagram shape shortcut menu, open the Symbol Properties dialog box. 2. Select the Show Stereotypes, Show Constraints, or Show Tagged Values check

boxes. In the diagram heading you cannot display the full diagram type name, but an abbreviated diagram name.

214

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Drawing Relationship Paths To display the abbreviated diagram type
1. On the diagram pane select the diagram shape. 2. In the shortcut menu, select the Show Abbreviated Type check box. -or From the diagram shape shortcut menu, open the Symbol Properties dialog box and select the Show Abbreviated Type check box.

The list of abbreviated diagram types is presented in the following table: Diagram name Use Case Communication Sequence State Machine Activity Implementation Composite Structure Abbreviation uc comm sd stm sct impl cs

Drawing Relationship Paths


View Online Demo MagicDraw Basics

To create a path between shapes


1. Click the appropriate path button on the diagram toolbar for the relationship you wish

to draw. For a detailed description of the diagram toolbars, see Toolbars on page 82. 2. Click the first (source) shape of the path. 3. Drag the path to the second (target) shape of the path and drop it there. To create a number of paths
1. Click the appropriate path button on the diagram toolbar.

215

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Drawing Relationship Paths
2. Click the Sticky button on the Diagram toolbar (shortcut key is Z.) 3. Click the first (source) shape of the path. 4. Drag the path to the second (target) shape of the path and drop it there. 5. Click the first (source) shape of the path to draw the next path. 6. Drag the path to the target shape and drop it there. The new path is created between

the two shapes. Repeat this until you create the desired number of paths of that type. 7. Click the Sticky button on the Diagram toolbar (shortcut key is Z.) To change a path appearance style
1. Select the path. 2. Right-click the path or select Path from the Edit menu, and select the commands you

need:
To set the path as rectilinear, oblique, or bezier, select Path Style. To select a path style, select Change Path Style (shortcut keys CTRL+L.) To reset path labels to the default position, select Reset Labels

Positions.
To remove all angles of the path, select Remove Break Points.

NOTES

Every diagram has the Manipulation Highlighting feature. When

drawing a path between two model elements, you will see that those shapes are bordered with a red or blue rectangle. The red color indicates that the path may not be drawn between these shapes. Blue rectangle allows a path to be drawn.
Remove the manipulation highlighting in the Environment Options

dialog box, Diagram section, Edit group. For more information, see Setting Environment Options on page 104.
For drawing a path, you can use smart manipulations menu, which

appears near the element symbol. Select a path and drag it to the target shape. To make the path corners rounded
1. Select the path. 2. From the paths shortcut menu, select the Rounded Corners check box. Right-click the path and select Symbol(s) Properties and in the Properties dialog box, set the Rounded Corners property to true

216

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Drawing Relationship Paths To create line jumps Line jumps represent an intersection of lines. If you have a large diagram with lots of intersecting paths, line jumps make the diagram easier to understand. By default line jumps are not displayed.You can configure a diagram to display line jumps in the following way:
1. From the diagram shortcut menu, choose Diagram Properties. The Properties dia-

log box appears.


2. Change the Add Line Jumps To property.

The Add Line Jumps To property has the following options:


None. Line jumps are not displayed. (Default value)

Figure 72 -- Diagram with no line jumps


Horizontal Line. Line jumps are displayed on horizontal lines.

Figure 73 -- Diagram with horizontal line jumps

217

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Inserting a Shape on the Path
Vertical Line. Line jumps are displayed on vertical lines.

Figure 74 -- Diagram with vertical line jumps

Changing the Add Line Jumps To property for a particular diagram from within the diagram Properties dialog box, will change line jumps for the current diagram only. For more information about how to change line jumps for the whole project, seeStyle Engine on page 287 .

Inserting a Shape on the Path


NOTE: This functionality is available in the State and Activity diagrams. In the State and Activity diagrams you may split a path into two paths, by drawing a symbol on it. This is valid for Transition / Control Flow / Object Flow relationships and allowed to connect with these path elements. To insert a new shape splitting path on the diagram pane
1. Select the symbol you want to insert or click the diagram toolbar button to create a

new one.
2. Drag it on the path. The path is highlighted in blue. 3. Drop the symbol. A Message dialog box appears asking if you want to insert the sym-

bol on the path. Possible solutions:


Before <path type>. Symbol is inserted before the path. It means a new path is created, then the dropped element symbol is drawn and then the existing path is drawn. For example: Password read transition is drawn from Read Name state to Verification state. If you want to

218

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Inserting a Shape on the Path
insert the Read password state before the Password read transition, drop the Read password state on the transition and in the open dialog, click the Before Transition button.

After <path type>. Symbol is inserted before path. It means, the existing path is created, then the dropped element symbol is drawn, and then a new path is drawn. For example: Name read transition is drawn from Read Name state to Verification state. If you want to insert the Read password state after the Name read transition, drop the Read password state on the transition and in the open dialog, click the After Transition button.

Do not insert. Action is cancelled and the dialog is closed.

219

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Creating Relations from the Model Select the Remember my choice check box and the next time an element will be inserted before or after the path, depending on your selection made this time.

Creating Relations from the Model


The main purpose of this functionality is to allow connecting and create traceability, according to UML, among elements, which are not from the same diagram. In other words, to link elements from a model without the need to place them in the same diagram. Advantages of this implementation:
Working time is saved on creating a diagram just to link elements for traceability. Some elements cannot be added to the same diagram and linked (elements from Behavior diagrams - Actions, States, Lifelines cannot be added to Static diagrams), this feature will allow the linking of such elements. Capability to relate multiple elements to a single element quickly. This is the usual case when a single element is represented with many elements in different abstraction levels or domains. The allocation relationship can provide an effective means for navigating the model by establishing cross relationships and ensuring the various parts of the model are properly integrated. For example, activity allocation to a bloc in SysML. Another example is creating an abstraction relationship with a stereotype <<trace>> between the model elements or sets of model elements that represent the same concept in different models. Smart manipulators allow connecting to any existing element quickly. Also, any Relation used with an element has a smart manipulator included. Draw any relation from any element and you will be able to select the existing target element from the browser.

To create a new relation for an element


1. From an element shortcut menu in the browser, select New Relation and then select

the desired link from the group of Outgoing or Incoming relations. The Create New <relation name> To (From) dialog box opens. 2. In the model element tree, select an element to (from) which you want to create a relation. Click OK. The link will appear in the Browser. Type the name or leave it unnamed. -or-

220

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Smart Manipulation
1. In the element Specification dialog box, select the Relations group. 2. Click the Outgoing or Incoming button and then select the desired link from the list.

The Create New <relation name> To (From) dialog box opens. 3. In the model element tree, select an element to (from) which you want to create a relation. Click OK. The link will appear in the Relations group. -or1. On the diagram pane, select an element and then select the desired link from the

smart manipulator relations list that opens.


2. Right-click to open the target element list and select the Select From Model com-

mand. The Create New <relation name> To dialog box opens. 3. In the model element tree, select an element to which you want to create a relation. Click OK. The link will be drawn on the diagram pane.

Smart Manipulation
View Online Demo Smart Manipulators

Smart Manipulation is a feature designed to make working with MagicDraw even easier. Use Smart Manipulation to suppress attributes and operations, set an auto-size option, reset a label position on a path, and draw relationships with most commonly used elements. MagicDraw offers varying smart mechanisms depending on the shapes involved. There are two types of Smart Manipulators:

221

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Smart Manipulation
1. Small buttons are displayed within the symbol on the diagram pane. .

2. Smart Manipulator toolbar, which appears when elements are selected on the dia-

gram pane.

In the Smart Manipulator toolbar, smart manipulators are divided into standard and extra modes. You can toggle between these two modes by clicking the Expand button - the arrow symbol - located at the bottom of every Smart Manipulator toolbar. The program remembers your mode choice and displays it for all elements. Use the Smart Manipulators toolbar to quickly perform simple actions and create new elements. To create a new element connected to a particular element
1. Select a symbol on the diagram pane. The Smart Manipulator toolbar appears. In the

toolbar, select the relationship you want to draw. The drawing of the selected relationship is initiated and the mouse cursor displays the new element which will be created.

222

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Smart Manipulation For example, create a class symbol. In the class Smart Manipulator toolbar, select the Directed Association relationship for drawing. The drawing of this Directed Association relationship is initiated and the mouse cursor displays a class icon. Click the left mouse button. The element displayed on the mouse cursor is created together with the relationship.
2. Use the Smart Manipulator toolbar to select which element you want to draw at the

other end of relationship. In the toolbar, select the relationship and then click the right mouse button. The list of elements available for creating appears. Select the element from the list and it will be created. TIP! To create a path breakpoint use the following keyboard combination: Ctrl key + Mouse click. To cancel the drawing of an element, press Esc.

TIP!

The Autosize option is automatically added for all shapes. To hide smart manipulation
1. From the Options menu, select Environment. The Environment Options dialog

box opens.
2. In the Diagram pane, Smart Manipulators group, clear the Show Smart Manipula-

tion check box and click OK. To solve the detected symbol ownership problem
1. Select the element from the diagram pane, which is drawn on an incorrect ownership

(which is highlighted in red). The Smart Manipulator toolbar appears.


2. Click the red button, which is at the top of the Smart Manipulator toolbar. The menu

with the possible problem solving solutions appears.

For more information see Resource Manager on page 420.

223

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Selection and Multiple Selections

Selection and Multiple Selections


To select a shape
Click the desired shape on the Diagram pane.

To deselect the selected shape Click outside the shape on the Diagram pane. To select all shapes of the same type Press ALT and click the shape. All shapes of the same type are selected. To select all shapes on the diagram

From the Edit menu, select Select All (shortcut keys CTRL+A.)To make multiple selections
1. Click the shape on the Diagram pane. 2. Hold down the SHIFT key and click another shape. Repeat until you select the

desired number of shapes.


Drag the cursor diagonally across the area you wish to select. All shapes in the selected area will be selected.

To select a group of shapes To select a group of shapes drag the cursor diagonally across the area you wish to select. This is a simple and fast way to select a group of shapes on the diagram.

224

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Selection and Multiple Selections See the sample of the rectangular selection in Figure 1.

Figure 75 -- Rectangular selection

After the selection process represented in the Figure 1, the following shapes are selected, as shown in Figure 2.

Figure 76 -- Rectangular selection result with partial selection coverage mode

The following rectangular selection modes are available:


1. Partial coverage. Symbols which are only partly covered with the rectangular selector

are selected. See Figure 2. After the selection process represented in Figure 1, the class Shipment is selected by therectangular selector, even though it was only partially covered. 2. Complete coverage. Only those symbols that are fully covered by the rectangular selection process will be selected. See Figure 3. For example, after the selection pro-

225

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Selection and Multiple Selections cess shown in the Figure 1, the class Shipment and the associations are not selected because these symbols were not fully covered.

Figure 77 -- Rectangular selection result with complete coverage selection mode

Default selection mode is Partial coverage. To quickly change the group selection mode from Partial coverage to Complete coverage mode or conversely:
Press the Ctrl key and then drag the cursor diagonally across the area you want to

select. To change the group selection mode for the whole project:
In the main diagram toolbar press the Complete coverage mode for group selection button (see Figure 78 on page 227).

OR
1. From the Options main menu, select Environment. The Environment Options dia-

log box appears.


2. In the Diagram branch, Symbols Manipulation group, change the property of the

Group selection mode option.

226

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Dragging, Copying, Cutting, and Pasting

Figure 78 -- The Complete coverage mode for group selection button

Dragging, Copying, Cutting, and Pasting


Move a shape to another location on the diagram pane by dragging-and-dropping. To drag multiple selected symbols Select the symbols and drag them to the desired area on the diagram pane. To copy a shape using dragging-and-dropping Hold down the CTRL key while dragging the selected shape to the area where you wish to make a copy.

227

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Dragging, Copying, Cutting, and Pasting Drag and drop items from the browser to the diagram pane
1. In the Browser tree, select the created model element you wish to draw. 2. Drag it to the desired location on the diagram pane and drop it there.
You may select several model elements and draw them on the diagram pane. If the selected model elements are not compatible with the open diagram, you will not be allowed to draw those model elements.

NOTES

To copy/cut and paste the selected shape on the diagram


1. From the Edit menu, select Copy/Cut (shortcut keys CTRL+C/CTRL+X.) 2. From the Edit menu, select Paste (shortcut keys CTRL+V.)

NOTE:

You may copy/paste many (but not all) model elements among various diagrams.

To paste one or more copied model elements by creating new data and symbols From the Edit menu, select the Paste With New Data command (shortcut keys CTRL+E.) To copy the whole diagram and paste it to MS Office or other application
1. Select or deselect all model elements on the diagram. 2. From the Edit menu, select Copy as EMF Image, Copy as JPG Image, or Copy as

PNG Image (shortcut keys CTRL+SHIFT+E, CTRL+SHIFT+J, or CTRL+SHIFT+P)


3. Open the desired application and paste the copied diagram.

To copy the selected model elements and paste to MS Office or other application
1. Select the desired model elements on the diagram pane. 2. From the Edit menu, select Copy as EMF Image, Copy as JPG Image, or Copy as

PNG Image (shortcut keys CTRL+SHIFT+E, CTRL+SHIFT+J, or CTRL+SHIFT+P). 3. Open the desired application and paste the copied model elements. TIP! You can drag and drop source code files from the native file manager to a MagicDraw Code Engineering Set.

228

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Changing the diagram type NOTE You can copy or cut and paste the text only when using the shortcut keys CTRL+C or CTRL+X and CTRL+V. When you use the buttons or commands, the whole element is copied/cut and pasted.

Changing the diagram type


The diagram type may be changed to another type of diagram if both diagram types are compatible. Note: diagram elements are not converted. Changing the diagram type is usable:
To migrate with existing project to the a diagram type which was not available till then. For example, to migrate Class diagram to the SysML Block Definition diagram. To migrate with existing project from the diagram type, which will be dropped from your project. For example, if user has decided to drop plug-in, and needs to convert plugin specific diagram to standard MagicDraw diagrams.

Diagram conversion scenarios:


Any static diagram may be converted to another type of static diagram. Any dynamic diagram may be converted to another diagram, if both diagrams are based on the same diagram type and diagrams are compatible.

To change the diagram type:


1. Select one or more the same type diagrams in the Browser (Containment or Dia-

grams tree).
2. From the shortcut menu, choose command Change Type To and select desired dia-

gram type from the list (see Figure 79 on page 230). You can also convert multiple the same type diagrams select them in the Browser and choose command Change Type To.

229

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Changing the diagram type

Figure 79 -- Changing the diagram type

230

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Zooming

Zooming
Zooming allows you to select a particular part of a diagram, zoom into it, and make changes while working with a finer level of detail. You can also gain an overview of a diagram by zooming out from it. To fit the current diagram in the window
From the View menu or from the diagram shortcut menu, select Fit in Window (shortcut keys CTRL+W.) In the Browser Zoom tab, click Fit in Window

To zoom into the current diagram


From the View menu or from the diagram shortcut menu, select Zoom In (shortcut keys CTRL+NumPad PLUS SIGN (+) or scroll.) Click the Zoom In toolbar button

To zoom out from the current diagram


From the View menu or from the diagram shortcut menu, select Zoom Out (shortcut keys CTRL+NumPad MINUS SIGN (-) or scroll.) Click the Zoom Out toolbar button

TIP!

You can zoom in or zoom out using the CTRL+wheel keys.

To restore the diagram to the original size


From the View menu or from the diagram shortcut menu, select Zoom 1:1 (shortcut keys CTRL+NumPad SLASH MARK (/).) Click the Zoom 1:1 toolbar button

To view the selected shapes at maximum size Select the shapes and then from either the View menu or the diagram shortcut menu, select Zoom to Selection (shortcut keys CTRL+NumPad ASTERICS MARK (*).)

231

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Using the Grid To select the zoom settings
1. From the Options menu, select Environment. The Environment Options dialog

box opens.
2. Open the Diagram pane and change the 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 Documentation/ Zoom Control/Properties on page 101.

Using the Grid


The grid helps to arrange diagram symbols on the diagram pane. By default the grid is in the visible state. To change the grid state (visible, not visible) From either the View menu or from the diagram shortcut menu, select Grid and then select/clear the Show Grid check box. To pull a path with the intersection of gridlines From either the View menu or from the diagram shortcut menu, select Grid and then select/clear the Snap Paths to Grid check box. To pull a shape with the intersection of gridlines From either the View menu or from the diagram shortcut menu, select Grid and then select/clear the Snap Shapes to Grid check box. To change the grid size
1. From either the View menu or from the diagram shortcut menu, select Grid and then

select Grid Size.


2. The Grid Size dialog box opens. 3. Enter a grid size between 2 and 30 (default is 10).

232

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout
4. Click OK.

To change the grid style


1. From the Options menu, select Environment. The Environment Options dialog

box opens. 2. From the Grid Style drop-down list, select one of the following styles:
Dense Sparse (default)

Layout
NOTE The diagram layout engine has nine layout options available in Standard, Professional, Architect, and Enterprise editions only.

With MagicDraw, it is easy to manage simple or complex diagrams using the automated layout features that optimize diagram layout for viewing. Arrange your symbols on the Diagram pane using the Layout menu, or you can use the symbol shortcut menu when two or more symbols are selected. Since MagicDraw version 8.0, a new layout component has been applied with many more possibilities for arranging your models. To resize the selected shape Drag the corner of the shape to the desired size. To automatically resize the selected shape to a preferred size From the shape shortcut menu, select Autosize. To alter the routing of the path line Drag any point of the selected path in any direction.

233

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout The MagicDraw layout mechanism is built on various layout tools. All layout tools could be separated into 2 different groups: general layout tools and specific diagram layout tools. MagicDraw has only one specific diagram layout tool - the Class Diagram Layout Tool. The General Layout Tools are:
Orthogonal Layout Tool Hierarchic Layout Tool Tree Layout Tool Organic Layout Tool Circular Layout Tool Path Router

These layout tools are provided by Files layout tool component. You can arrange each diagram (except Sequence and Time Diagram) by using any of the 6 general layout tools. The Class diagram can also be arranged by using the Class Diagram Layout Tool.

Orthogonal Layout Tool


The Orthogonal Layout is well suited for medium sized sparse diagrams. It produces compact drawings with no shape overlaps, few crossings and few bends. All edges will be routed in an orthogonal style, i.e. only rectilinear style paths will be used. Orthogonal layout options Option Use Existing Drawing as Sketch Values Boolean Default Value False Description The layout tool tries to "orthogonalize" the given sketch by interpreting it and without making too many modifications in respect to the original drawing. Keeps the relative position of symbols inside packages and performs the top level layout.

Layout Only Top Level Symbols

Boolean

False

234

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Group Layout Quality Values 0-1 Default Value 1 Description Set the desired layout quality. Higher values result in less connection crossings and smaller layout area, but also increased computation time. Defines the virtual grid spacing used by the layout tool. Each shape center point lies on a grid point.

Orthogonal Grid

Integer

50

Hierarchic Layout Tool


The Hierarchic layout can be used to highlight the main direction or flow within a diagram. Cyclic dependencies of shapes will be automatically detected and resolved. Shapes will be placed in layers, arranged by hierarchy. Additionally, the ordering of nodes within each layer is chosen in such a way that the number of path crossings is minimal. Hierarchy layout options Option Reverse Orientation in Activity Diagram Minimal Layer Distance Minimal Shape Distance Minimal Path Distance Values Boolean Default Value True Description If True, orientation is reversed in activity diagram.

Integer Integer

40 30

Determines the minimal distance between shapes that reside in adjacent layers. Determines the minimal distance between adjacent shapes that reside in the same layer. Determines the distance between adjacent pairs of horizontal path segments and between horizontal path segments and shapes.

Integer

30

235

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Minimal First Segment Length Values Integer Default Value 10 Description Determines the minimal length of the first and last segments for orthogonal path routings, i.e. the length from the intersection points to the first or last bend point respectively.

Orientation

Top to Bottom, Bottom to Top, Left to Right, Right to Left

Top to Bottom Determines main layout orientation.

Shape Placement

Linear Seg- Simplex ments, Polyline, Simplex, Pendulum, Median Simplex, Tree

Linear Segments. Aligns shapes in such a way that path segments tend to have very few bends. It is a very good choice in combination with Path Routing set to Orthogonal. However, this greatly increases layout width.
Polyline. Aligns shapes by slightly

reducing the width without shape overlaps. Although, paths will have lots of bends.
Pendulum. A sound combination of Linear

Segments and Polyline.


Simplex. Produces high quality drawings.

Similar to Linear Segments, aligns shapes in such a way that path segments tend to have very few bends. Additionally, the resulting layout will be more balanced and more compact.
Median Simplex. Tends to produce more

locally symmetric layouts for the sake of a few more bends.


Tree. Produces very nice layout, when the

graph is a tree. If the graph is not a tree, the placement policy of Linear Segments will be used.

236

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Path Routing Values Oblique, Orthogonal Default Value Orthogonal Description
Oblique. Paths are routed to oblique style

with a certain number of bends.


Orthogonal. Paths are routed to

orthogonal style. Orthogonal path routing increases the height of the layout. Randomization Rounds Integer 40 Determines the number of rounds that are initialized using different randomized starting positions. Greater values can lead to fewer crossings and longer running times. Huge diagrams with lots of inherent crossings should be processed using smaller values. Keeps the relative position of symbols inside packages and performs the layout only on the top level. Inheritance paths are joined into inheritance arcs.

Layout Only Top Level Symbols Make Sub Trees

Boolean

False

Boolean

True

Tree Layout Tool


The Tree layouter organizes diagram shapes into a tree structure. The Tree layout tool might be applied on shapes that have no undirected cyclic paths between them.

237

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Table 3, Visible Tree layout options Default Value Directed Option Layout Style Values Directed, Balloon, HorizontalVertical Description
Directed. The tree is a hierarchy

layout hierarchically with the root shape on the top. This is a good choice for directed trees with a unique root shape and a moderate number of shapes on a single hierarchy level. This layout style uses the current diagram layout as a sketch to determine the order of siblings at a common shape.
Balloon. The tree is routed in a radial

style. This is a good choice for undirected, dense, or huge trees with a high number of shapes on a single hierarchy level.
Horizontal-Vertical. Children of a

shape are either arranged on a horizontal or on a vertical line. Paths are routed orthogonally. This layout can be very compact if you choose the right alignment type for children of a node. Make Sub Trees Directed Minimal Layer Distance Minimal Shape Distance Orientation Integer Integer Top to Bottom, Bottom to Top, Left to Right, Left to Right 50 50 Top to bottom Determines the minimal distance between parent and child shapes. Determines the minimal distance between siblings of a shape. Determines the main layout orientation. The layout tool tries to arrange shapes in such a way that all paths point in the main layout direction. Boolean True Inheritance paths are joined into inheritance arcs.

238

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Port Style Values Border Centered, Border Distributed Default Value Border Centered Description Determines the way paths are attached to shapes.
Border Centered. Paths are attached

to the center of the border of corresponding shapes.


Border Distributed. Path attachment

points are distributed along the border of corresponding shapes. Orthogonal Path Routing Boolean True If selected, all paths are routed orthogonally in a bus-like fashion. If not selected, paths are routed as straight line segments.
Directed Root. Selects a shape with

Balloon Root Shape Position Directed Root, Center Root Center Root indegree zero if present. A good choice for directed root trees.
Center Root. Selects the root shape in

such a way that the depth of the resulting tree is minimized. Preferred Child Wedge 0-360 340 Determines the angular range of the sector that will be reserved for children of a shape. The remaining angular range will be automatically used to accommodate the edge that connects to the root node. Determines the angular range of the sector that will be reserved around the root shape to accommodate attached subtrees. Determines the minimal length of a path. A smaller compactness factor will result in shorter paths and a more compact overall layout.

Preferred Root Wedge

0-360

360

Minimal Path Length Compactness Factor

Integer 0.1-0.9

50 0.5

Horizontal-Vertical

239

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Horizontal Spacing Vertical Spacing Values Integer integer Default Value 20 20 Description The minimal horizontal distance between adjacent shapes. The minimal vertical distance between adjacent shapes.

Organic Layout Tool


The organic layout is well-suited for the visualization of highly connected backbone regions with attached peripheral ring or star structures. These structurally different regions of a network can be easily identified by looking at a drawing produced by this layout tool. Organic layout options Default Value 50

Option Preferred Path Length

Values Integer

Description Specify the preferred length of all paths. The layout tool tries to arrange the shapes in such a way that paths have a determined path length. If True, the distance between two shapes is calculated with respect to the size of the shape. Regulates the tendency of the shapes to be placed near the center of the diagram. The greater the factor is, the closer shapes are placed to the center of diagram. Negative values lead to huge layouts. Higher values make Layout tool obey the given preferred path length. Higher values result in greater shape distances.

Obey Shape Size Gravity Factor

Boolean

True

-0.2-2

Path Attraction Shape Repulsion

0-2 0-2

2 0

240

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Activate Tree Beautifier Layout Only Top Level Symbols Package Shape Compactness Values Boolean Default Value True Description If True, optimizes tree-like substructures of the diagram. The optimization process might ignore some layout options. If True, the algorithm keeps the relative position of the symbols inside thepackages and performs the layout only on the top level. Control the compactness of the package shape. Larger values lead to more compact package shapes, but paths between packages may be longer and the shapes inside packages tend to get clutched together at the center of the package.

Boolean

False

0-1

0.2

Circular Layout Tool


The Circular Layout produces arrangements that emphasize group and tree structures within a network. It partitions shapes into groups by analyzing the connectivity structure of the network. The detected groups are arranged on separate circles. The circles themselves are arranged in a radial tree layout fashion.

241

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Circular Layouter options Default Value Compact Option Layout Style Values Compact, Isolated, Single Cycle Description
Compact. Each group will consist

of shapes that are reachable by two disjoint paths. Shapes that belong to more than one group will be assigned exclusively to one group.
Isolated. Each group will consist of

shapes that are reachable by two path disjoint paths. All shapes belonging to more than one group will be assigned to an isolated group.
Single Cycle. All shapes will be

arranged on a single circle. Minimal Shape Distance Integer 100 Determines the minimal distance between borders of two adjacent shapes on a common circle. The smaller the distance, the more compact the resulting layout. If True, automatically determines the radius of each circle in the layout. An automatically chosen radius is usually the smallest possible radius that obeys Minimal Node Distance. If Auto Circle Radius is not set, this option determines the fixed radius for all circles in the resulting layout. Minimal Node Distance will be ignored in this case. Determines the angular range of the sector that will be reserved for children of a shape. The remaining angular range will be automatically used to accommodate the paths that connect to the root node.

Auto Circle Radius

Boolean

True

Fixed Circle Radius

Integer

200

Preferred Child Wedge

0-360

340

242

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Minimal Path Length Values Integer Default Value 50 Description Determines the minimal length of a path that connects two shapes that lie on separate circles. The smaller the chosen value, the more compact the resulting layout. The bigger the chosen value, the more compact the resulting layout. If the value is smaller than 90 degrees, the tree-edges might cross through the circularly arranged groups of shapes. The smaller the compactness factor, the shorter paths and the more compact the overall layout.

Maximal Deviation Angle

10-360

100

Compactness Factor

0.1-0.9

0.5

Orthogonal Path Router


This layout routes paths using only vertical and horizontal line segments, while keeping the positions of shapes in the diagram fixed. The routed paths usually will not cross any shapes and will not overlap any other paths. Orthogonal Path layout options Default Value 20 False

Option Minimal Distance Use Existing Bends Route Only Necessary

Values Integer Boolean

Description Specifies the minimal allowed distance between shapes and paths. Specifies whether existing bends should be used as an initial solution for the new routing. If True, only paths that violate the minimal distance criterion will be rerouted.

Boolean

False

243

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout

Organic Path Router


This layout routes paths using an oblique path style, while keeping fixed positions of shapes on a diagram. The routed paths usually will not cross any shapes and will not overlap any other paths. Organic Path layout options Option Minimum Path Distance Custom Minimum Distance to Nodes Values Integer Integer Default Value Description 1 10 Determines the minimum distance between any two path segments. Determines the distance between any path segment and any shape side. The path router strictly adheres to the set value. Router does not use this value by default due to increased calculation times. If True, all paths are routed on grid lines from the predefined grid. Determines the ratio between two complementary weighting strategies when looking for a path, namely "center driven" and "space driven" weighting. Values closer to 0 lead to paths that are more distributed over the available space. Values closer to 1 give more emphasis to paths closer to a path center. If False, the number of crossings seen at a shape side can increase considerably. Since this option has a positive effect on a diagram "readability," it is enabled by default.

Route on Grid Space Driven Vs. Center Driven Search

Boolean 0-1

True 1

Local Crossing Minimization

Boolean

True

Class Diagram Layout Tool


The Class diagram layout tool uses different layout algorithms to improve class diagram readability.

244

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Class Diagram layout options Option Minimal Layer Distance Minimal Shape Distance Orientation Values Integer Integer Top to Bottom, Bottom to Top, Left to Right, Right to Left 0-1 Default Value 50 50 Top to bottom Description Determines the minimal distance between parent and child shapes. Determines the minimal distance between the siblings of a shape. Determines the main layout orientation. The layout tool tries to arrange shapes in such a way that all paths point in the main layout direction.

Compactness Factor

Adjusting this value can lead to a variety of differing layouts. For small values, the resulting layout will use more space and shapes tend to be far away from each other. Values around 0.5 lead to evenly distributed shapes, whereas values near 1.0 produce highly compact layouts. Determines the ratio between two complementary weighting strategies when looking for a path, namely "center driven" and "space driven" weighting. Values closer to 0 lead to paths that are more distributed over the available space. Values closer to 1 give more emphasis to paths closer to a path center. Classes connected by generalization paths are organized into hierarchies. Classes connected by realization paths are organized into hierarchies. Classes connected by containment paths are organized into hierarchies.

Space Driven Vs. Center Driven Search

0-1

Build Generalization Hierarchies Build Realization Hierarchies Build Containment Hierarchies

Boolean

True

Boolean

False

Boolean

False

245

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Make Sub Trees Values Boolean Default Value True Description If enabled, inheritance paths will be joined into inheritance arcs.

Activity Diagram Layout Tool


The Activity diagram layout tool uses different layout algorithms to improve activity diagram readability. Activity Diagram layout options Option Minimal Layer Distance Minimal Shape Distance Minimal path distance Values Integer Integer Integer Default Value 40 30 30 Description Determines the minimal distance between parent and child shapes. Determines the minimal distance between the siblings of a shape. Determines the distance between adjacent pairs of horizontal path segments and between horizontal path segments and shapes. Determines the minimal length of the first and last segments for orthogonal path routings, i.e. the length from the intersection points to the first or last bend point respectively. Determines the main layout orientation.

Integer Minimal first segment length

30

Orientation

Top to Bottom, Bottom to Top, Left to Right, Right to Left

Top to bottom

246

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Shape Placement Values Default Value Description Linear segments - aligns shapes in such a way that path segments tend to have very few bends. It is a very good choice in combination with Path Routing set to Orthogonal. However, this greatly increases the width of the layout. Polyline - aligns shapes by slightly reducing the width without shape overlaps. Although paths will have lots of bends. Pendulum - a sound combination of Linear Segments and Polyline. Simplex - produces high quality drawings. Similar to Linear Segments, aligns shapes in such a way that path segments tend to have very few bends. Additionally, the resulting layout will be more balanced and more compact. Median Simplex - tends to produce more locally symmetric layouts for the sake of a few more bends. Tree - produces very nice layouts, when the graph is a tree. If the graph is not a tree, a placement policy of Linear Segments will be used. Path Routing Oblique Orthogonal Orthogonal Oblique - paths are routed to oblique style with a certain number of bends. Orthogonal - paths are routed to orthogonal style. Orthogonal path routing increases the height of the layout. 40 Determines the number of rounds that are initialized using different randomized starting positions. Greater values can lead to fewer crossings and longer running times. Huge diagrams with lots of inherent crossings should be processed using smaller values. Keeps the relative position of symbols inside packages and performs the top level layout. Simplex Linear segments Polyline Simplex Pendulum Median simplex Tree

Randomization Rounds

Integer

Layout only top level symbols

Boolean

False

247

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout For more information about the smart layout feature drawing diagram, see Smart Activity Diagram layout on page 618.

Business Process Diagram Layout tool


The Business process diagram layout uses different layout algorithms to improve business process diagram readability. Business process diagram layout options Option Minimal Layer Distance Minimal Shape Distance Values Integer Integer Default Value 40 30 Description Determines the minimal distance between shapes that reside in adjacent layers. Determines the minimal distance between borders of two adjacent shapes on a common circle. The smaller the distance, the more compact the resulting layout. Determines the distance between adjacent pairs of horizontal path segments and between horizontal path segments and shapes. Determines the minimal length of the first and last segments for orthogonal path routings, i.e. the length from the intersection points to the first or last bend point respectively. Determines the main layout orientation.

Minimal Path Distance

Integer

30

Integer Minimal first segment length

30

Orientation

Top to Bottom, Bottom to Top, Left to Right, Right to Left

Top to bottom

248

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout Option Shape Placement Values Default Value Description Linear segments - aligns shapes in such a way that path segments tend to have very few bends. It is a very good choice in combination with Path Routing set to Orthogonal. However, this greatly increases the width of the layout. Polyline - aligns shapes by slightly reducing the width without shape overlaps. Although paths will have lots of bends. Pendulum - a sound combination of Linear Segments and Polyline. Simplex - produces high quality drawings. Similar to Linear Segments, aligns shapes in such a way that path segments tend to have very few bends. Additionally, the resulting layout will be more balanced and more compact. Median Simplex - tends to produce more locally symmetric layouts for the sake of a few more bends. Tree - produces very nice layouts, when the graph is a tree. If the graph is not a tree, a placement policy of Linear Segments will be used. Path Routing Oblique Orthogonal Orthogonal Oblique - paths are routed to oblique style with a certain number of bends. Orthogonal - paths are routed to orthogonal style. Orthogonal path routing increases the height of the layout. 40 Determines the number of rounds that are initialized using different randomized starting positions. Greater values can lead to fewer crossings and longer running times. Huge diagrams with lots of inherent crossings should be processed using smaller values. Keeps the relative position of symbols inside packages and performs the top level layout. Tree Linear segments Polyline Simplex Pendulum Median simplex Tree

Randomization Rounds

Integer

Layout only top level symbols

Boolean

False

249

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout

Quick Diagram Layout feature


You may use the Quick Layout feature when editing diagrams other than class or sequence. This feature applies recommended layout tool with default options on active diagram.

Label layout in the diagram


In MagicDraw 16.0 version there is improved label layout in the diagram. The following label positions are improved for paths, relationship ends, and shapes:
Default label positions were reviewed and improved. Label positions after moving a path, shape, or related element.

Default label positions


Default label positions leaves after moving a path, shape, or related element if it is semantically logical decision. See an example below, there association multiplicities leaves at their default positions after class is moved.

Figure 80 -- Default label position example

NOTE:

If labels are at their default position, reselt labels position functionality is disabled.

Labels positions after moving a path, shape or related element


After moving a path, shape or related element default label positions leaves if it is semantically logical decision.

250

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout For nicer representation of labels in diagram in the following cases labels positions are reseted to their default position automatically:
1. Symbol properties edit. When symbol properties edit causes label text box addition or

removal from diagram pane labels positions are reseted.


2. Path, path end or port properties edit. When path, path end or port data edit causes

label text box addition or removal from diagram pane labels positions are recalculated. See an example when qualifier is added in Figure 82 on page 251. 3. Path, shape or related element movement. See an example, when related element is moved Figure 83 on page 252.

Figure 81 -- Label position before changes

Figure 82 -- Label position is reseted to its default position after qualifier is added

251

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Layout

Figure 83 -- Label position is reseted to its default position after Order class movement

Displaying label deviation from default position While moving text box from default position, dotted line shows deviation from default position. This helps to see the current labels owner (See Figure 84 on page 252).

Figure 84 -- Dotted line, which shows deviation from the default position

Indicating label if it is not at its default position If label is not at its default labels position, label right bottom corner is marked after label owner (path or shape) selection on diagram pane (see Figure 85 on page 253).

252

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Showing Diagrams in Full Screen

Figure 85 -- Marking the label when it is not at its default position

Showing Diagrams in Full Screen


If you want to see your diagrams in full screen and work exclusively from the diagram, use the (show diagrams in full screen) functionality. In full screen mode all necessary modeling commands will be visible, with option to hide, and the Browser will be in auto hide mode. You may also manage the MagicDraw interface components to be displayed or hidden. To turn on diagram full screen mode There are four ways to turn on the diagram full screen mode:
Double click on the diagram tab with the diagram name at the top of diagram. From the diagram shortcut menu, select the Show Diagrams in Full Screen

command.
From the View menu, select the Show Diagrams in Full Screen command. Press the F11 key.

NOTE: You may change the Show diagrams in full screen shortcut key in the Environment Options dialog box, Keyboard pane. For more information, see Assigning Shortcut Keys on page 137.

253

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Showing Diagrams in Full Screen

Figure 86 -- Diagram displayed in full screen mode

You may turn off the diagram full screen mode in the same way as turning it on. Managing the MagicDraw interface components in the diagram full screen mode:
1. Browser windows are in auto hide mode when the diagram full screen mode is turned

on. Located at the left side of the window are tabs of browser windows. To display the browser, move the mouse cursor over the browser window tab (for example, on the Containment tab) and the browser window will open. For more information about working with windows in auto hide mode, see Using the Browser on page 85. 2. The main toolbar is hidden when the diagram full screen mode is turned on. To display the main toolbar, clear the Hide toolbars in full screen mode check box in the Environment Options dialog box, General pane, General group. 3. The diagram toolbar is displayed when the diagram full screen mode is turned on. Right click the diagram toolbar to manage it.

NOTE

Showing the diagram in full screen mode is available only in JIDE interface style.

254

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Saving as an Image

Saving as an Image
Saving a diagram and selected symbols as an image
Diagrams that were created in the model can be saved as an image in the following formats:
Enhanced Metafile Format (*.emf) - supports language specific symbols. Encapsulated PostScript (*.eps) Joint Photographic Experts Group (*.jpg, *.jpeg) Portable Network Graphics (*.png) Scalable Vector Graphics (*.svg) Tagged Image File Format (*.tif, *.tiff) Windows Metafile Format (*.wmf)

MagicDraw version 15.0 and above allows exporting of a created diagram to Tagged Image File Format (TIFF) and choice of desired color space and compression. TIFF images can be edited and resaved without suffering a compression loss and it is a flexible and adaptable file format for high color depth images. TIFF format is superior to JPG format. To save the current diagram or the selected elements within the diagram as an image
1. From the File menu, select Save As Image. The Save As Image dialog box opens. 2. Select the Active Diagram or the Selected Symbols option button. 3. Select the image format (*.emf, *.eps, *.jpg, *.png, *.svg, *tif, *tiff, *.wmf), file name, and the location directory.

To save the selected diagrams of your project as images


1. Select the Save As Images command from the File menu. The Save As Image dialog box opens. 2. Check the Selected diagrams radio button, and select the diagrams you want to save as images 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 to the directory list.

255

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Saving as an Image
4. Select the graphical file format in the Image Format drop down list (EMF, EPS, JPG, PNG, SVG, TIF, or WMF) and click Save.

Figure 87 -- Save As Image dialog box

The filename of the saved diagram will be the same as the name of that diagram. The Not empty diagrams list contains all exportable diagrams that contain UML elements. Select the diagrams you wish to export. To make multiple selections
Press the CTRL key and click the diagrams you wish to export.

To select or clear all diagrams


Click the Select All button (press CTRL+A keys) or Unselect All button.

256

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Saving as an Image To display the list of all diagrams that are available in the project
Click the Load All Diagrams button in the Save As Image dialog box.

Setting image saving options


MagicDraw version 15.0 and above allows changing image size, resolution (DPI), and specifying other image properties specific to the selected image format. To specify image options:
1. Select the Save As Images command from the File menu. The Save As Image dia-

log box opens.


2. Select the graphical file format in the Image Format drop down list. 3. Click the Options button near the Image Format drop down list. The Image Export

Options dialog box opens. Modify image export properties, which are described in the table below:
Property name Save diagram background in image Image resolution (DPI) Description Saves the diagram with background. By default, the diagram background is white after saving as an image. This property is the DPI property value with numeric value range from 1 to 4800. Default value is 72. Formats This property is included in all format options. Property is not included in SVG and WMF format options. Property is not included in WMF format options list.

Exported image size [%] Define image size in percent. Default value is 100%. For example, if 200% is defined, then the view is enlarged (zoomed) before generating the image. Raster image will not loose its quality as additional pixels are introduced. Other image export options:

JPEG Compression Quality property is included in JPEG format options list. Use SVG <tag> for text output property is included in SVG format options list. Compression, Color space properties are included only in TIFF format options list.

257

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Printing You may also define image saving options in the Environment Options dialog box. For more information see Setting Environment Options on page 104.

Printing
In MagicDraw you can print an active diagram, multiple diagrams, or selected model elements. All printing menu commands are found in the File menu. You can also use the toolbar buttons or the shortcut keys. Before printing, use the Print dialog box to set your printing options. NOTE If the size of the text is too small, it may not be visible on the printed page.

To open the Print dialog box


From the File menu, select Print. In the Print Preview screen, click the

button.

The Print dialog box contains the following tabs: Print Range, Print Options, and Print Header/ Footer. Descriptions for these tabs appear in the following sections.

258

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Printing

Print Range tab


In the Print Range tab, select the item you want to print.

Figure 88 -- Print dialog box. Print Range tab

Element name Active Diagram

Function Print the currently open diagram.

259

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Printing Element name Selected Symbols Selected Diagrams Name Function Print symbols you select on the diagram. The desired symbols should be selected to activate this option button. From the Not Empty Diagrams list, select the diagrams you want to print. Show 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. The name of the model element that owns the particular diagram. Select all diagrams in the list for printing. Remove the selection. Load all diagrams belonging to a project. By default only open diagrams are shown in the Print dialog box. Print the selected diagram(s). Close the dialog box. Display MagicDraw UML Help.

Owner Select All Unselect All Load All Diagrams Print Close Help

260

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Printing

Print Options Tab


Click the Print Options tab to customize the printing jobs.

Figure 89 -- Print dialog box. Print Options tab

Element name Print Background Use gradient fill

Function Print the background color of your diagrams. Select this option to enable diagram symbols gradient fill in printing.

261

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Printing Element name Show Pages on Diagram Function Show the page boundary on the diagram pane. NOTE You will not see any boundary if the Fit in Page check box is selected.

Fit in Page

The printed diagram fits in one page. If the Fit in Page check box is cleared and the Show Pages in Diagram check box is selected, the gridlines of pages are shown on the diagram pane. Zoom the selected diagram to the size you want for printing. NOTE You are not allowed to zoom a diagram if the Fit in Page check box is selected.

Zoom

Pages

Set the number of pages on which you want to print the diagram.
Vertical. The number of vertical pages on which the diagram will

be displayed.
Horizontal. The number of horizontal pages on which the diagram

will be displayed. Page Settings Print Test Page Preview < > The Page Setup dialog box opens. Print the test page. Set print options in the Print Options dialog box. Preview the diagram appearance before printing. Preview the previous page. Preview the next page.

262

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Printing

Print Header/Footer Tab


Click the Print Header/Footer tab to customize the header and footer of the printed pages.

Figure 90 -- Print dialog box. Print Header/Footer tab


Use any text and combine it with these variables box - use this box to indicate which fields you want to include in the header/footer. Customize header group box - prints the header. Select the Print Header check box and type the text you wish to be printed. Use the "" button to select the desired font.

263

Copyright 1998-2009 No Magic, Inc.

5 WORKING WITH DIAGRAMS


Printing
Customize footer group box - prints the footer. Select the Print Footer check box and type or change the text you wish to print. Use the "" button to select the desired font. By default <$PageNumber$> <$FileName$> <$DiagramName$> <$Date$> <$Time$> is printed.

264

Copyright 1998-2009 No Magic, Inc.

WORKING WITH MODEL ELEMENTS

Specifying Model Elements


View Online Demo Specification Windows

You can define all model elements in the corresponding Specification dialog boxes. The MagicDraw shortcut menus, toolbars, and browser help ease the task of editing model elements. IMPORTANT Beginning with version 8.0, MagicDraw enables the editing of model elements and symbol properties directly from the Browser, located in the Quick Properties tab. For more information, see Properties tab on page 103.

Specification dialog boxes


The Specification dialog boxes are used to define UML model elements such as class, package, activity, and others. Every Specification dialog box has a different structure based on the element characteristics. Model elements that may participate in the relationships contain the Relations tab. All model element specification dialog boxes have Template Parameters, Tags, Constraints, and Documentation/ Hyperlinks tabs. Descriptions of these tabs are presented in the following sections. To open the corresponding Specification dialog box
Select Specification from the selected symbol shortcut menu. Double-click a symbol on the Diagram pane or Browser. Select a symbol on the Diagram pane and press the ENTER key. The element Specification dialog box opens when you add one model element to another model element from another Specification dialog box. The second Specification dialog box opens on top of the first. Use the Back to or Forward to arrow buttons for switching between windows.

265

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements

General tab
Name text box

Type or view the model element name. If you enter the name of an existing model element, an error message opens. For some model elements (attribute, operation, and so forth), the default name Untitled 1 is set. You can change this name to a preferred name. Is Active, or Is Abstract check boxes

When one of these check boxes is selected, the model element is correspondingly set as an active or abstract generalizable model element. A generalizable element is a model element that may participate in a generalization relationship. Name Is Abstract Function 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 be 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.

Applied Stereotype

Click the "..." button to open the list of all available applied stereotypes, select the check box for the chosen stereotype and click Apply.

266

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements Visibility To define an element access level, use the drop down list to set its visibility. There are four levels of access:
Public. The element can be accessed by any outside object. Package. The element can be accessed by any classifier declared in the same package (or a nested subpackage, to any level). Private. The element can be accessed only from inside the current class. Protected. The element can be accessed from inside the current class and classes derived from that class.

ToDo

Type or view information about an element. The To Do property is used for keeping special information, exclusive cases, or additional records. Image Click the ... button to assign the image to the element. Assigned image can be displayed on the shape or instead of the shape. For more information, about changing the image display mode, see Displaying icon or image on the symbol or instead the symbol on page 285.

Documentation/Hyperlinks tab
Use the Documentation/Hyperlinks tab to add comments to the selected element and to assign hyperlinks. The hyperlink can direct the user to a model element, web page, or a file.

267

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements

Figure 91 -- Specification dialog box. Documentation/Hyperlinks tab

To write documentation in HTML format, simply select the HTML check box to display a menu with the available text formatting options. Button Text Color Font Name Font Size Bold Function Select font color of the text. Select font style of the text. Select font size of the text. Set text as bold.

268

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements Button Italic Underline Align left Center Align Right Insert Hyperlink Unordered list Ordered list Decrease Indent Increase Indent HTML Source Function Set text as italic. Set text as underlined. Align text to the left side border. Center the selected text. Align the selected text to the right side border. Add a hyperlink to the desired file, model element, or web page for the selected text. The Insert Hyperlink dialog box opens. Change text style to bullet list. Change text style to numbered list. Decrease indent by moving text closer to the left border. Increase indent by moving text closer to the right border. Show text with HTML source characters.

In the Hyperlinks tab, manage the hyperlinks you want to add to the model element Active Hyperlink If selected, the hyperlink is activated and will work when double-clicking the model element. Display information about the hyperlink: diagram or element name, file path, or URL name.

269

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements Open Edit Add Remove Opens the previously assigned hyperlink. The Insert Hyperlink dialog box opens. Edit the selected hyperlink. The Insert Hyperlink dialog box opens. Select the hyperlink you want to add to the model element. Remove the selected hyperlink from the model element.

Attributes tab

Figure 92 -- Attributes tab

The Attributes tab contains the model element attributes list and buttons for editing the attributes list. Name Type Default Value Attribute name. Attribute type. It can be a primitive type or another class. Attribute default value.

270

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements Classifier Up Down Create Clone Class name that contains the current attribute. Move item to upper position in the list. Move item to lower position in the list. Add a new attribute to the class. The Attribute Specification dialog box opens. Enabled when the element is selected in the list. A new element will be created. The new element derives all properties from the cloned element. The name will be changed to "<element_name><number>". Remove the selected attribute from the class. Click this button to open the Attribute Specification dialog box.

Delete

Usage in Diagrams tab


For more information about searching for symbol usage in diagrams from the Usage In Diagrams branch, see Searching for symbol usage in diagrams from the element specification dialog box on page 567.

271

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements

Operations tab

Figure 93 -- Operations tab

The Operation tab contains the model element operations list and buttons for managing this list. Name Return type Classifier Up Down Create Clone Operation name. Operation return type. The name of the classifier containing the current operation. Move item to upper position in the list. Move item to lower position in the list. Add a new operation to the model element. The Operation Specification dialog box opens. Enabled when the element is selected in the list. A new element will be created. The new element derives all properties from cloned element. The name will be changed to "<element_name><number>".

272

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements Delete Remove the selected operation from the model element. Click this button to open the Operation Specification dialog box.

Template Parameters tab

Figure 94 -- Operations tab

The Template Parameter tab contains the model element template parameters list and buttons for managing this list. Name Type Default Up The name of the template parameter. Type of template parameter: classifier or data type. The Select Element dialog box opens. Here you can assign the element as the default element for the template parameter. Move the item to the upper position.

273

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements Down Create Clone Move the item to the lower position. Create a new template parameter. Enabled when the element is selected in the list. A new element will be created. The new element derives all properties from the cloned element. The name will be changed to "<element_name><number>". Remove the template parameter from the class. Click this button to open the Template Parameter Specification dialog box.

Delete

274

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements

Relations tab
The Relations tab contains the list of relationships in which the appropriate model element participates.

Figure 95 -- Specification dialog box. Relations tab

Element name Name Element Direction Element

Function Name of the relationship (optional). One of the relationship endings. Shows a relationships direction, helps to specify source and target. Another relationship ending. After clicking this button, the relationship Specification dialog box opens.

275

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements Delete Removes the selected relationship from the list.

Tags tab

Figure 96 -- Specification dialog box. Tagged Values tab

Element name Profile

Function Lists the profiles available for the current project. If tag definitions are grouped and those groups are collapsed, expands the groups.

Expand All Tree Branches

276

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements Element name Function If tag definitions are grouped and those groups are expanded, collapses the groups. Collapse All Tree Branches

Only displays in the list those tag definitions that have values. Show Tag Definitions with Values If tag definitions are grouped into specific packages, shows those packages on the list by grouping tag definitions. Show Tag Definitions Groups Sorts tag definitions by the assigned stereotypes. Group By Stereotype Displays types of tag definitions in the list. Show Tag Definitions Types The list of tag definitions with values that are selected for the current model element. Create Value Creates a value for the selected tag definition. The right pane of the dialog box is activated. Select or enter the value. All data types and types of metamodel can be types of values. Removes the value(s) from the selected tag definition.

Remove Value (available only when the tag definition has a value) Edit Value Edit Tag Definitions

The Tagged Value Specification dialog box opens, allowing you to edit or extend the selected tagged value. The Profiles dialog box opens. Edit, add, or remove tag definitions for the current model element.

Right pane of the dialog box Tag Definition ... Click the ... button and edit the selected tag definition in the Tag Definition Specification dialog box.

277

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements Element name HTML Value (if the value is added) Edit Add Remove Function Set the tagged value text as HTML. Type or select the value. Edit the selected value. Add a new value. Remove the selected value.

For more information about how to create a new tagged value, see To create a new tag definition on page 700.

278

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Specifying Model Elements

Constraints tab

Figure 97 -- Specification dialog box. Constraints tab

Element name

Function The list of constraints assigned to the current model element.

Name Specification

Enter the name of the constraint. A comment associated with the selected constraint. To edit the comment, double click the Specification line. Click the button to open the Edit Specification dialog box. This allows you to edit expressions and select the Object Constraint Language (OCL) to check the expression syntax. Click this button to open the Constraint Specification dialog box.

279

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Default Property Values Element name Create Apply Unapply Function Creates a constraint. The Select Elements dialog box opens. Select an existing constraint from the model and apply it to the element. Removes the selected constraint from the list.

Buttons available in the Specification dialog boxes

Button Close Back Forward Help

Function Save changes and exit the dialog box. Return to the previous dialog box. Proceed to the next dialog box. Display MagicDraw Help.

Default Property Values


MagicDraw version 15.0 and above allows for defining the initial (default) properties for elements. The Default element properties can be defined for:
the whole project. the specific diagram.

To set the default properties for the whole project


1. From the Options main menu, select the Project command. The Project Options

dialog box opens.


2. Expand the Default model properties branch. Select the exact element and in the

right pane side, change the property value.

280

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Default Property Values After creating a new element it will have new property values. Values for previously created elements will not be changed. To reset element properties to the default value, click the Reset to Defaults button. To reset property values for all elements select the Default model properties branch and click the Reset to Defaults button. (Exception: interface attribute default visibility will always be #public, no matter what your settings.) To set the default properties for the specific diagram
1. From the Diagrams main menu, select the Customize command. The Customize

Diagram wizard opens. 2. Define the new or created diagram properties and in the Specify toolbar buttons step, click the Add button. In the appeared menu that opens, select the New Button command. The Edit button dialog box opens. 3. Open the Element Properties tab. Select the Specify own values radio button and change the default element property values.

Figure 98 -- The Edit Button dialog box, Element Properties tab

Create a new element from the customized diagram toolbar and the element will have the defined, default properties. For more information about the Customize Diagram wizard, see UML Profiling and DSL UserGuide.pdf, which is located in the <MagicDraw installation directory>/Manual folder.

281

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Default Property Values

Sharing the default property values


If you want to share the default properties with other users for their new project, change the property values in the Project Options dialog box and then create a project template, which other users may use:
1. From the File main menu select the Export > Template... command and save the

project as a template. A template will be created in the <MagicDraw installation directory>/templates directory.
2. To import the created template to a new project from the File main menu, select the

New Project command. The New Project dialog box opens. Select the Project from Template icon and in the Select template tree, select your template. The project options are imported to the project together with the template.

Parent topic: "Working With Diagrams", on page 197.

282

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Formatting Symbols Related topics: Project Options on page 158.

Formatting Symbols
In MagicDraw, every symbol may have its own style: color, font, size, and so forth. There are several ways to define the symbol properties:
From the symbol properties dialog box: from the selected symbol shortcut menu or from the Edit menu, select Symbols and then Symbol(s) Properties. From the Project Options dialog box: this dialog box enables you to change all available symbol properties, create your own style for the project, apply different symbol properties for different diagrams, define stereotype properties that may be bound to the symbol, and more. From the MagicDraw main toolbar: using this toolbar, you may change the color, font, and path style of a symbol.

For more information about symbol properties, see Project Options on page 158.

To set the symbol properties (fill color, text color, and others)
From the symbol shortcut menu, select Symbol(s) Properties. From the Options menu, select Project. The Project Options dialog box opens. Select the desired options for the selected model elements. Select a symbol and from the Edit menu, select Symbol, and then select Symbol(s) Properties.

NOTE

To apply changes made in the Project Options dialog box, click Apply.

Changing symbol properties dialog for multiple symbols


Symbol properties dialog may be invoked now when multiple symbols are selected in the diagram: select multiple symbols, invoke context menu and choose command Symbol(s) Properties. Common selected symbols properties are displayed by default. If you wish to see all properties, turn on Show All Properties button that is located above properties table.

283

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Formatting Symbols Note: Multiple symbol properties also may be changed using quick properties panel at the bottom of the Browser.

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 boxes from the symbol shortcut menu.

3. From the Options menu, select Project. 4. The Project Options dialog box opens. Select the Show Constraints, Show Ste-

reotype, and/or Show Tagged Values check boxes for the selected model elements. NOTE To apply changes made in the Project Options dialog box, click the Apply button in the Styles tab.

284

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Formatting Symbols

Displaying icon or image on the symbol or instead the symbol


Definitions Definition Symbol Description The term "symbol" means a visual representation of some model elements in the diagram. Symbols are subdivided into shapes and paths (lines in the model, for displaying various relationships). Every symbol may have its own style: color, font, size, and so forth. Symbol properties may be defined for the concrete symbol, for all symbol of one element, or according to the diagram type. For more information about symbol properties definition, see Formatting Symbols on page 283, about style engine, see Style Engine on page 287. A stereotype defines how an existing metaclass may be extended. It enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass. [The OMG UML specification (UML 2.2: Superstructure)]. For more information about stereotype, see Stereotype on page 691. For more information about applying stereotype properties, see Stereotype properties on page 301. Icon of stereotype. Icon is a small image displayed in the top-right corner of shape. To assign icon to stereotype in the Stereotype specification dialog box, define the Icon property. For more information on how to assign Icon for stereotype, see To create a stereotype with an image on page 692. Text Image Stereotype name, displayed on the symbol. Image which can be assigned to element and displayed as icon or instead of element shape. To assign image to element in the element specification dialog box, assign the Image property. For more information on how to assign icon for element, see Image on page 267.

Symbol properties

Stereotype

Icon

To change the icon visibility mode on the element shape:


1. From the element shape shortcut menu, select the Presentation Options > Show

Stereotypes command and then select the desired property mode.


2. You may change the stereotype/icon visibility mode in the symbol Properties dialog

box > Show Stereotypes combo box.

285

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Formatting Symbols Select one of the six property modes for Show Stereotypes. The property modes are described in the table below:

Show Stereotypes Property Mode Icon and Text

Displayed on the diagram pane

Icon of the stereotype and stereotype name are assigned to element Icon of stereotype displayed. Name of stereotype displayed.

Image to element is assigned Image of element is displayed in the corner of shape.

Icon

Icon of stereotype displayed in the corner of symbol. Name of stereotype is not displayed.

Image of element is displayed in the corner of shape.

Text Only

Image of element is not Icon of stereotype is not displayed. Name of stereo- displayed. type is displayed.

Shape Image andText*

Icon of stereotype is displayed instead of shape. Name of stereotype is displayed. Icon of stereotype is displayed instead of shape. Name of stereotype is not displayed.

Image of element is displayed instead of shape.

Shape Image*

Image of element is displayed instead of the shape.

286

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine Show Stereotypes Property Mode Do Not Display Displayed on the diagram pane Icon of the stereotype and stereotype name are assigned to element Image to element is assigned Icon of stereotype is not Image of element is not displayed. Name of stereo- displayed. type is not displayed.

* - To display the icon of a stereotype instead of the element shape all element compartments should be suppressed. TIP! If element has assigned both - image and stereotype icon - then image of element will be displayed on the shape.

NOTE

Shape Image and Text and Shape Image properties are not added to the Path element properties list.

Style Engine
The Style engine is a part of the MagicDraw UML system that defines diagrams, shapes, paths, and stereotype properties. There may be few property styles defined, but all symbols are created according to the style that is selected as default. There is a possibility to apply different presentation styles for diagram/shape/path/stereotype depending on the diagram type.

Symbol Property 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. Shape and Path 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 box contains possible choices and instruments to manage them.

287

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine

Figure 99 -- Project Options dialog box. Styles

The following buttons are available in the Project Options dialog box, the Symbols properties styles branch:
Button name Clone Rename Delete Make Default Apply Function Clone (duplicate) the selected style. Change the name of all existing styles. Type a new name for a style in the Enter Style Name dialog box. Remove the selected style. Make the selected style the default style for newly created projects. Apply the selected style to the open project.

288

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine
Button name Import Export Reset to Defaults Function The Open dialog box opens. Select the style you wish to import (*.stl). The Save dialog box opens. Select the directory where you wish to export a style. Change all settings to the default configuration.

To create a new style by cloning the existing one


1. Select the default style in the Styles list box and click the Clone button. 2. Type a name for the new style in the Enter Style Name dialog box. 3. Change options of the new style.

To change the name of the selected style


1. Select a style you want to rename and click the Rename button. 2. Type a new name for the style in the Enter Style Name dialog box.

To remove the selected style


Click the Delete button in the Project Options dialog box.

To make a selected style your default style for newly created projects
Click the Make Default button in the Project Options dialog box.

To apply the selected style or changed option to a current project


Click the Apply button in the Project Options dialog box, Styles pane.

NOTE

You can also apply the desired options to the selected diagram model elements. Click the Apply button in the specific elements pane.

To import an already created (and exported) project style


Click the Import button. The Open dialog box opens. Select the style you wish to import (*.stl).

289

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine To save the created style (export) for a later usage or for other users
Click the Export button. The Save dialog box opens. Select the directory where you wish to export a style.

In the following table you will find all possible options that can be set for the symbols:
Property Fill Color Use Fill Color Pen Color Text Color Font Autosize Use Fixed Connection Points Path Style Function (when selected) The fill color of the symbol. The Color dialog box opens. Uses the selected fill color and the symbols color changes on the diagram. The pen color that is used to draw elements. The Color dialog box opens. The color that is used for text coloring. The Color dialog box opens. The font that is used for the name and other displayed properties of a model element. The Font dialog box opens. Adjusts the size of a symbol to the contained information. Element borders are changed so that it uses minimum space. The end of the path is connected to the fixed point of the shape. The drawing style of a path. Possible choices: Rectilinear, Oblique, or Bezier. Attributes Color Attributes Font Attributes Sort Mode Constraint Text Mode The color of the attribute name. The Color dialog box opens. The font that is used for the name of an attribute. The Font dialog box opens. The mode for sorting attributes. Possible choices: No Sorting, By Name, By Stereotype, or By Visibility. Displays constraint name or expression on a symbol.

290

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine
Property Show Qualified Name for Operation Function (when selected)

The Show Qualified Name for Operation property shows the operation name and the class of the operation on the activity shape (using style ClassName::OperationName). The default property value is true.

NOTE For projects that were created before MagicDraw version 15.0, the Show Qualified Name for Operation property is unchecked.
For more information about displaying qualified name for operation, see Call Operation Action on page 717. Direction The direction of a signal. Possible choices: Right or Left. Enable Lolipop notation If the Enable Lolipop notation check box is selected, notation of the interface becomes as "lolipop". NOTE The Enable Lolipop notation property is included only for the interface symbol properties Header Position The package name position on the symbol. Possible choices: Top or In Tab. Header in Bold HTML Text Line Style Shows the name of the symbol in bold. Activates the HTML editor for the text of a note and a text box. A line style for a horizontal separator. Possible choices: Dashed or Solid. Operations Color Operations Font Operations Sort Mode The color of the operation name. The Color dialog box opens. The font that is used for the name of an operation. The Font dialog box opens. The mode for sorting operations. Possible choices: No Sorting, By Name, By Stereotype, or By Visibility. Orientation Show Attributes Constraints Primarily the sychronization bar diagram button is set to the vertical or horizontal position. Shows constraints of attributes.

291

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine
Property Show Attributes Properties Show Attributes Stereotypes Show Attributes Visibility Show Base Classes Show Classifier Show Direction Arrow Function (when selected) Shows tagged values of attributes. Shows stereotypes of attributes. Shows attribute visibility signs (+, -, #,~). Shows a base class on the stereotype symbol. Shows a classifier name near the model element name. Shows the Direction Arrow on the association. Default Direction Arrow direction is displayed according path creation direction. It helps to read diagram and explain diagram semantics. For more information about Direction Arrow, see To show the direction arrow near the association name on page 726. Shows model elements that are assigned to a model, package, or subsystem as a list. Shows the entire activation bar on an active classifier role in a sequence diagram. Shows all attributes that are defined within a class or assigned classifier. Shows the initial attribute value on a class or artifact. Shows the message numbers on a diagram. Shows an additional information sign in the class, artifact attributes list, when omissions are made by editing the class compartment. Shows an additional information sign in the class, artifact or numeration operations list, when omissions are made by editing the class, artifact, or enumeration compartment. Shows the multiplicity value. Shows the name of a relationship, role and message/stimulus. Shows constraints of operations. Shows all of the operation arguments and the return type.

Show Elements List Show Entire Activation Show Full Classifier Type Show Initial Attribute Value Show Message Numbers Show More Sign for Attributes Show More Sign for Operations Show Multiplicity Show Name Show Operations Constraints Show Operations Signature

Show Operations Stereotypes Shows stereotypes of operations. Show Operation Parameters Direction Kind Show Operations Properties Show Operations Visibility Shows the direction kind for operation parameters Shows tagged values and concurrency of an operation. Shows operation visibility signs (+, -, ~ #).

292

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine
Property Suppress Signal Receptions Signal Receptions Color Signal Receptions Font Show Signal Receptions Signature Show More Sign for Signal Receptions Signal Receptions Sort Mode Show Signal Receptions Visibility Show Signal Receptions Stereotypes Show Signal Receptions Properties Show Signal Receptions Constraints Show Signal Receptions parameter Direction Kind Show Owner Show Predecessors Show Visibility Stereotype Color Stereotype Font Show Stereotypes Function (when selected) Hides attributes list from the shape. The color of the signal reception name. The Color dialog box opens. The font that is used for the name of a signal reception. The Font dialog box opens. Shows the parameter and related information. Shows additional information sign in the signal reception list, when omissions are made by editing the signal reception compartment. The mode for sorting signal receptions. Possible choices: No Sorting, By Signal Name, By Stereotype, or By Visibility. Shows signal reception visibility signs (+, -, ~ #). Shows stereotypes of signal receptions. Shows tagged values and concurrency of properties. Shows constraints of signal reception. Shows the direction kind for signal reception parameters.

Changes the display position of qualified name on the element shape.


Shows predecessors on the message. Shows role visibility signs (+, -, #). The color that will be used to draw stereotypes. The Color dialog box opens. The font that will be used to draw stereotypes. The Font dialog box opens.

If you want to change a stereotype and its icon visibility on the element shape, use the Show Stereotypes property. For more information about stereotype display mode, see Changing the stereotype display mode on page 698.
Shows constraints on symbols. Shows tagged values on symbols.

Show Constraints Show Tagged Values

293

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine
Property Suppress Actions Suppress Attributes Suppress Extension Points Extension Points Color Extension Points Font Suppress Enumeration Literals Enumeration Literals Color Enumeration Literals Font Suppress Operations Suppress Realization Elements Suppress Specification Elements Text Position Function (when selected) Hides actions associated with the state. Hides the attribute list. Hides use-case extensions on a use case. The color of the extension point name. The Color dialog box opens. The font that is used for the name of an extension point. The Font dialog box opens. Hides enumeration literals on a enumeration. The color of the enumeration literal name. The Color dialog box opens. The font that is used for the name of an enumeration literal. The Font dialog box opens. Hides operations compartment section. Hides realization elements of a subsystem. Hides specification elements of a subsystem. Changes the text position of a separator. Possible choices: Center, Left, or Right. Wrap Words Background Color Snap Paths to Grid Snap Shapes to Grid Grid Size Show Grid Show Diagram Info

Wrap words to a new line when text exceeds the textbox width.
The color of the diagram background. Click the ... button to open the Color dialog box, select the background color. Snap paths to grid. Snap shapes to grid. Grid size settings from 2 to 30. Shows a grid on the diagram. Shows diagram information table on the diagram pane.

Working with Properties Styles


All symbols in MagicDraw are created according to active properties styles. There may be more than one property style in the same project, and the whole style may be applied for the project.

294

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine Every style has its own presentation of Diagram, Shape, Path, and Stereotype that you can modify using the Project Options dialog box in the Symbols Properties Styles branch. You can set your own options for every model element to the current style. Path, Shape, and Stereotype 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 box contains possible choices and instruments to manage them. The following properties are defined for the formatting symbols:
Shapes. Set general options for the shapes in the right pane of the Project Options dialog box. You can set options for all shapes that appear on the Diagram pane. Paths. Set general options for the paths in the right pane of the Project Options dialog box. You can set options for all paths that appear on the Diagram pane. Diagram. Set general options about a diagram. Stereotypes. Set general options for the stereotypes in the right pane of the Project Options dialog box. You can set options for all stereotypes that may be applied to elements on the Diagram pane.

Changing properties for multiple element To change properties for multiple symbols, using Ctrl or Shift key select few elements in the Project Options dialog box, Symbol properties styles branch.

295

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine

Figure 100 -- The Project Options dialog box, multiple element symbols style is selected

Properties extension by diagram


Diagram, shape, path, and stereotype properties can be extended by the particular diagram type. This means that presentation style options will be applied only for the specified element symbol in the specific diagram.

296

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine To extend the element properties by diagram
1. In the Project Options dialog box, the Symbols Properties Styles tree, expand a branch, select the specific element (shape, path, diagram, or stereotype) and right click the mouse button. The list of diagrams in which the element symbol may be created, opens.

Figure 2 -- Element extension by diagram

2. Select the diagram type. The Diagram is added as an additional branch to the section.

Figure 3 -- Extended diagram addition

3. Set the style properties for the element in the right pane of the Project Options dialog box. The properties will be applied only in the specified type of diagram.

297

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine
The element can be extended by diagram in the Project Options dialog box, specific elements pane, by clicking the Extend by Diagram button. The Extend by Diagram dialog box opens. Click the Add Diagram button and select a diagram from the list.

Figure 4 -- Extend by Diagram dialog box

To remove the extended diagram from the tree


Select the extended diagram and right click on the mouse, then select Remove.

Figure 5 -- Remove extended diagram

In the Project Options dialog box, the extended diagram style properties pane, click the Remove button.

298

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine

Properties Inheritance
All element properties have the inherited check box. This check box indicates the property is derived from the base element properties or is it specific. The Inherited column check box value in the elements properties pane specifies if the current property is synchronized with its parent property. When the Inherited value is true, the element property is changed after changing the parent property. If the property has no correspondent property in the upper (parent) level, the Inherited column check box will be cleared and disabled. If the property is modified for the specific element and the value differs from the upper level current property value, the Inherited column check box is cleared automatically.

General Style Properties


You can define the common properties for the whole style. The style properties are displayed when the properties style is selected in the Project Options dialog box styles tree.

Shape, Path and Diagram Properties


All shapes, paths and diagrams that can be created in the project, are listed in the Project Options dialog box. If the Shape, Path, or Diagram branches are selected in the tree, the general properties can be set in the right pane of this dialog box. When expanding any of these branches, the style for a concrete element (diagram) can be created.

299

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine To apply a new style to a previously created element symbol
1. In the Project Options dialog box, change the element style properties and click the Apply button. The Select Diagrams dialog box opens. The list of diagrams created in the project is displayed.

Figure 6 -- Select Diagrams dialog box

300

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine
2. Select the diagrams to which the element properties will be applied and click OK. The Select Properties to Apply dialog box opens.

Figure 7 -- Select Properties to Apply dialog box

3. Select the properties to be applied to the element symbol by moving them from the All list to the Selected list. Click OK. NOTE! If a new style was set, it will be applied for all newly created elements after drawing them on the diagram pane. You can always set the default symbols style to the element by clicking the Apply Default Symbol Style button in the main toolbar.

Stereotype properties
The Stereotype properties can be applied only if the stereotype properties style is created in the Project Options dialog box. The Stereotype properties are derived from their base class. The Stereotype base class is defined in the label of the right pane of the Project Options dialog box. The same element can have several stereotypes assigned. In this case, the style of the first stereotype will be applied to the element symbol. If the stereotype is removed from the element, the next (first) stereotype properties are applied. If the last stereotype is removed from the element, the base class (shape or path) properties are applied to the element symbol.

301

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Style Engine Stereotypes may be extended by diagram. All stereotypes that have defined symbol properties are included in the Stereotypes branch. By default only boundary, control, and entity stereotypes are added to the tree when expanding the Stereotypes branch. The default style is created for these stereotypes. To add a stereotype to the branch
1. In the Project Options dialog box, the Symbols Properties Styles tree, right-click the Stereotypes branch. The list of stereotypes opens.

Figure 8 -- List of stereotypes

2. Select the check box near the stereotype and click the Apply button. The stereotype will be included into the Stereotypes branch. Set the stereotype style properties in the right pane of the Project Options dialog box.

To remove a stereotype from the branch


1. In the Project Options dialog box, the Symbols Properties Styles tree, select the Stereotypes branch. The list of stereotypes opens. 2. Clear the check box near the stereotype and click Apply. The stereotype is removed from the branch.

302

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Defining Hyperlinks Between Elements To change stereotype properties
1. Expand the Stereotypes branch and select a stereotype. 2. Set properties in the right pane of the Project Options dialog box.

To apply the stereotype properties to a previously created symbol with assigned stereotype
1. When the stereotype style properties in the right pane of the Project Options dialog box are changed, click the Apply button. The Select Diagrams dialog box opens. 2. Select the diagrams to which the stereotype properties will be applied and click OK. 3. In the Select Properties to Apply dialog box, select which properties will be applied to the stereotype. Click OK. NOTE! You can apply stereotype properties to a symbol after changing the style properties and in the Project Options dialog box, click OK. The style will be applied when selecting symbol on the diagram pane and clicking the Apply Default Symbol Style button on the main toolbar .

To apply the stereotype properties when assigning a stereotype to an element


NOTE! In the Environment Options dialog box, Diagrams tab, the Apply Stereotype Style for All Symbols check box should be selected and in the Project Options dialog box, the style properties should be changed for stereotype. 1. In the created diagram, draw an element. 2. From the element shortcut menu, select Stereotype. The list of available stereotypes opens. 3. Select the check box near the stereotype you want to assign to the element. Click Apply. The stereotype properties are applied automatically when assigning the stereotype to the element.

Defining Hyperlinks Between Elements


You can set text for notes, text boxes, or separators as HTML text. You can also hyperlink to any model element, diagram, external file, or requirement.

303

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Defining Hyperlinks Between Elements

Adding a hyperlink to the model element


There are three ways to add a hyperlink to the model element: from diagram Smart Manipulator, from Specification and from the Browser tree. To add a hyperlink from the diagram
1. Select the element and click on the Smart Manipulator for Hyperlink.

Figure 9 -- Smart manipulator for hyperlinks.

Figure 10 -- Hyperlinks menu.

2. The hyperlink menu opens, listing:


Previously created hyperlinks with icons corresponding to element type,

diagram type, external file, or requirement.


Menu item for adding and editing existing hyperlinks - Add/Edit

Hyperlink(s)
If there are no hyperlinks yet defined, only the menu item to add a

hyperlink will be in the hyperlink menu.

304

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Defining Hyperlinks Between Elements
3. Click Add/Edit Hyperlink(s) item. The hyperlinks creation editing dialog opens.

Figure 11 -- Hyperlinks dialog.

4. Click Add and define the hyperlink to any model element, file, or Web page in the

Insert Hyperlink dialog box. If you want this hyperlink to be active, select the Active Hyperlink check box. 5. Click OK. To add a hyperlink from Specification:
1. Open the model element Specification dialog box and select the Documentation/

Hyperlinks tab.
2. Define the hyperlink to any model element, file, or Web page in the Insert Hyperlink

dialog box. If you want this hyperlink to be active, select the Active Hyperlink check box. 3. Click OK. To add a hyperlink from the Browser tree Now hyperlinks can be created and edited straight from the element shortcut menu:

305

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Defining Hyperlinks Between Elements
Invoke element shortcut menu from the Browser. Choose Go To and Hyperlinks (see Figure 101 on page 306).

For more detailed description on managing hyperlinks, see To add a hyperlink from the diagram on page 304.

Figure 101 -- Hyperlinks creation from the Browser tree

306

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Defining Hyperlinks Between Elements To set the note/text box/separator text as HTML
Select the element and click on Smart Manipulator Switch To HTML Text.

From the note/text box shortcut menu, select HTML Text. Draw the note or text box, using the Note (HTML text) or Text Box (HTML text) toolbar buttons.

When selecting the text, the HTML editor toolbar opens. To add a hyperlink to a note, text box, or separator text
1. Select the text where you want to add a hyperlink and click Insert Hyperlink

2. The Insert Hyperlink dialog box opens. Select the hyperlink you want to insert, either

to a Web page, another model element, or a file:


To link to an existing model element, click the Element/Symbol tab. Click

the Select Element/Symbol button and select the model element or symbol you want to link to in the Select Model Element dialog box.
To link to an existing Web page, click the Web Page tab, and in the Type

the Web page name text box, type the URL of the Web page you want to link to. You can click the button and browse the Web for the desired Web page. NOTE Set the path of the HTML viewer in the Environment Options dialog box (for a description, see Setting Environment Options on page 104.)

307

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Defining Hyperlinks Between Elements
To link to an existing file, click the File tab and enter the path to the file

you want to link to. Or, click the Type the file name button and, in the Open dialog box, select the file you want to link to. NOTES:
The selected file opens in the HTML browser. Set the path of the HTML viewer in the Environment Options dialog box. You can only link to an existing file. New files are not created for you.

Using the HTML editor toolbar, you can change the font, color, size, and the alignment of the selected text.

Insert Hyperlink dialog box


To open the Insert Hyperlink dialog box
1. Create a text box or a note on a diagram pane. Type the text you need. Set the text in

the note/text box as HTML by choosing HTML Text from the note/text box shortcut menu. -orCreate a text box or note by clicking the Text Box (HTML Text) or Note (HTML Text) buttons. 2. Select the text. The HTML editor toolbar opens.

308

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Defining Hyperlinks Between Elements
3. Select the text you want to add the hyperlink and click Insert Hyperlink.

Figure 102 -- Insert Hyperlink dialog box

Tab name Element/ Symbol Creates a hyperlink that goes to the selected model element.

Box

Function

Text to display A text that will be displayed as a hyperlink. Select Element / Symbol Select from list Clear The Select Model Element dialog box opens. Select the model element you want to link to. A list of all items that have previously been selected as links. Remove all items from the Select from list.

309

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Defining Hyperlinks Between Elements Tab name Box Active Function If selected, activates the hyperlink on the diagram. Only one hyperlink can be active. Target referenced by the active hyperlink is accessed after double clicking an element with a hyperlink. By default the last added hyperlink is the active one.

Web Page Creates a hyperlink that goes to the specified Web page.

Text to display The text that will be displayed as a hyperlink.

Type the Web Page name

Type the web page URL. Click the button. The Web browser window opens. Browse the Web and find the web page you want to link to. NOTE Make sure that the path of the HTML viewer is set in the Environment Options dialog box.

Select from list Clear

A list of all items that have previously been selected as links. Remove all items from the Select from list.

File Creates a hyperlink that goes to a specified file.

Text to display A text that will be displayed as a hyperlink. Type the file name Type the path to the file you want to be opened or click the ... button. The Open dialog box opens. Select the file you want to link to. Select from list Clear A list of items that have previously been selected as links. Remove all items from the Select from list.

310

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Owner of the model element

Owner of the model element


Model elements and diagrams belong to a package, model (system boundary), subsystem or other appropriated model element, which is called owner. The name of the owner is displayed in the model element name compartment in parentheses. To add a model element to a package, model (system boundary), or subsystem
Drag a model element to the desired package on the Diagram pane or in the Browser tree. Open the Inner Elements tab, located in the Package, Model, or Subsystem Specification dialog box. Click Add and select a model element or diagram you want to add to a package. Define a model element or diagram in the open Specification dialog box and click OK. From the selected owner shortcut menu in the Browser tree, select New Element. From the list, select the desired model element and type its name in the Browser.

To display/hide the package/system boundary/subsystem name (the owner of an actor) on a model element
From the symbol shortcut menu, select Symbol(s) Properties. The Properties dialog box opens. Select/clear the Show Owner check box. From the Options menu, select Project. The Project Options dialog box opens. Select the desired model element and select/clear the Show Owner check box. If you want to apply changes for previously created model elements, click Apply.

TIP!

For a class, actor, or interface, you may display/hide the name of the owner from the symbol shortcut menu: select Presentation Options, and then select/clear the Show Owner check box.

Owner display mode


MagicDraw version 15.0 and later has improved the owner display functionality. Now you can change the display position of the qualified name on the element shape. To change the qualified name position:
From the element shape shortcut menu, select the Presentation Options > Show

Owner command and then select the desired property mode.

311

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Owner of the model element
You can change the qualified name position in the symbol Properties dialog box,

Show Owner drop-down list. Select one of the four property modes for Show Owner. The property modes are described in the table below.
Show Owner Property Mode Shape Description Notation

Do Not Display

Only element name is displayed on the element shape. This is the default value. Owner is displayed below the element name.

Below Element Name

This is MagicDraw style notation. The owner name is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the owner of the NamedElement itself. Containing namespaces are separated by dot and owner is displayed in brackets. This is a notation from UML specification. The qualified name is constructed from the names of the containing namespaces, starting at the root of the hierarchy and ending with the name of the NamedElement itself. Containing namespaces are separated by double colons. The double colon is shown to separate containing namespaces and element name.

Element owner is displayed in the same line as the element name.


In Same Line With Name

Above Element Name

Owner is displayed above the element name.

Notation is the same as In Same Line With Name option notation.

312

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Converting An Element

Qualified name starting from model library


MagicDraw version 15.0 and above includes an option to show the owner hierarchy starting from the model library as the root.
Model Library

is a package with modelLibrary stereotype.

This option is called Qualified name display style. To change its value:
1. From the Options menu select the Project command. The Project Option dialog

box opens.
2. Select the General Project Options branch. In the right side pane, you can modify

the option property. The Qualified name display style property is added to the Project Options dialog box, General Project Options branch. If the Model Library Relative property value is selected (default value for a new project), then the full qualified name hierarchy is displayed on the shape, starting from the model library as a root. The model library itself is not displayed. The Qualified name display style property allows for having the relative path for library items used in the project.

Converting An Element
Element conversion allows converting one element type to another. Sometimes, during the modeling process, there is a demand to change a class to a component or another type of classifier. The element conversion copies all compatible properties to a converted element (for example Ports of a class will become Ports of a component). If some properties are not compatible, they will be lost. Element conversion functionality allows UML element conversion from one meta-class to another. To convert an element From the element shortcut menu, select Refactor and then Convert To and then select the element from the open list, to which you want to convert.

313

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Replacing An Element When an element is being converted, the converter finds all usages of this element and recreates these references to a new element after conversion. For example, if an instance specification has an element assigned as a classifier, it remains after conversion. The usages that are not valid after conversion, will be removed. For example, an Interface has an Interface Realization relationship. An interface is converted to a Class. The Interface Realization will be removed from model. If the converted element and new element have the same symbol properties, then they are reassigned for the new element. For example, if a class is converted to an interface, and the class had the property Suppress Operations - true, then the Interface property for Suppress Operations will be true also.

Replacing An Element
You can replace one model element with another of the same metatype type element. Model element replacement is useful when during the modeling process you notice that one model element needs to be replaced with another. All relations and references to former element are updated to point to the newly selected model element. After the replacement source will be replaced with replacement target:
All references to replacement source will be replaced by references to replacement

target.
The replacement target will be displayed in all diagrams instead of replacement

source.
The replacement target after replacement will have all paths of replacement target

and replacement source.


Replacement source will be deleted.

To replace one element with another:


1. In the element shortcut menu, select Refactor and then Replace With. The Select

Element dialog box opens.


2. Select the element with which you want to replace.

314

Copyright 1998-2009 No Magic, Inc.

6 WOR KING WITH MODEL ELEMENTS


Replacing An Element See an example in the Figure 103 on page 315 and Figure 104 on page 315. In the Figure 103 on page 315 you can see two classes, which are similar to each other - Customer and User. Using Replacement functionality you can replace User class with Customer class quickly without redrawing relationships (see Figure 104 on page 315).

Figure 103 -- Model before the element replacement

Figure 104 -- Model after the User class has been replaced with the Customer class

315

Copyright 1998-2009 No Magic, Inc.

TOOLS

MagicDraw provides the following tools and wizards to help you quickly and easily perform design tasks.
"Model Merge" - Model Merge enables porting changes between different project

versions.
Report Wizard - report engine built on top of the Velocity Engine. It is described in a

separate document MagicDraw ReportWizard UserGuide.pdf, which is located in the MagicDraw installation directory, Manual folder.
"Pattern Wizard" - creates various GOF, Java, Junit, CORBA IDL, XML Schema and

others design patterns.


"Creating Setters / Getters" creates getting and setting operators for attributes

defined in the class.


"Implementing or Overriding Operations" creates defined operations down the

inheritance tree.
"Model Transformation Wizard" - is a data set, which fully describes the action of

applying the model transformation on a set of packages. Transformation type, parameters, packages set to transform, and the destination of the model transformation results are the parts of model transformation.
"Resource Manager" - MagicDraw Resource Manager functionality allows you to

manage resources (Profiles, Plugins, Templates, Language resources, Case studies/ examples, Custom diagrams, and others).
"Spelling Checker" - Spell Checker will check spelling as you type. Select what you

want to be spell checked (the whole project or some specific parts).


"Import Data to MagicDraw" - Data Import to MagicDraw using RConverter and data

import from other tools to MagicDraw.

316

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Model Merge
View Online Demo NOTE Model Merge

Model Merge functionality is available in Standard Edition and above for an additional fee.

Definitions
Name Model Merge Definition

Model Merge enables copying changes between different project versions. This functionality is usually needed when there are several branches that reflect different releases or versions of the product, e.g. when certain fixes have to be copied from a release branch to the mainstream development. 2-way merge is a simple merge, which compares two projects and joins them into one. 3-way merge does not only compare and merge two projects into one project, but it also considers the common ancestor of both projects. Participants of 2-way and 3-way merges are called contributors. Ancestor is the common parent project for two projects. In 3-way merge, the target is the contributor into which changes are copied, and the source is the contributor from which changes are copied. A conflict is two changes that are incompatible, i.e. changes that cannot be accepted together. For more information about conflicting changes, see Conflicting changes on page 355.

2-way merge 3-way merge Contributor Ancestor Target, Source

Conflict

Introduction to Merging
Model merge enables copying changes between different project versions. This functionality is usually needed when there are several branches that reflect different releases or versions of the product, e.g. when certain fixes have to be copied from a release branch to the mainstream development.

317

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Merge functionality in MagicDraw works both on projects stored in MagicDraw Teamwork Server or files.
3. Select Project Merge from the Tools main menu. The Merge Projects dialog box opens. 4. Select the source, target, and ancestor projects (changes are going to be copied from the source to the target project). The source and target projects can be stored in the system file or the Teamwork Server. If both projects are stored in the Teamwork Server, the ancestor is determined automatically. For more information about the Optimize for option, see Controlling Merge memory usage on page 394. 5. The Merge window appears, to let the user accept or reject the changes and resolve the conflicts that occurred in both contributors (e.g. when the same class is edited in both contributors). 6. Confirm the changes made to the target.

Figure 105 -- The Merge Projects dialog box

Two merge types are implemented:


3-way merge on page 318. 2-way merge on page 319.

3-way merge
Conceptually 3-way merge is a reconciliation of 2 difference sets. To merge projects v2 and v3, which have common ancestor v1, difference sets of projects v1-v2 and v1-v3 must be reconciled. 3-way merge can be used for merging changes from one branch into another.

318

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

See Figure 106 on page 319, where the merging changes from one branch into another is presented. Branch b.1 is created from the project version i. Team members work in parallel on project version i and make changes in project branch b.1. The merge is performed and changes made to branch are copied to the trunk.

Figure 106 -- 3-way merge

2-way merge
2-way merging is a specific case of 3-way merging. This type of merging is usually used in a nonteamwork environment. In the 2-way merging there is no explicit ancestor available, thus the target version or file is taken as an ancestor. See Figure 107 on page 320, where the first user works with project version i and creates project versions i+1, ..., n-1, n and the other user creates branch b.1 of the project i and later creates project versions b.1, ..., b.n. Merging of the following projects is performed: project of the first user (n) and project of the second user (b.n.) are merged.

319

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 107 -- 2-way merge

Model Merge Concepts


A change is a delta between the ancestor and participants of a 2-way or 3-way merge. The participants of 2-way and 3-way merges are called contributors. Changes in Model Merge are classified as addition, deletion, modification, move, and order changes. Every change can be accepted or rejected and has dependent changes. If conflicts are detected, the user will be informed which change created the conflict. Merging begins with building a composite change tree, which consists of model, diagramming, and non-model changes. Model, diagramming, and non-model changes depend on each other. This means that accepting or rejecting one change not only will accept or reject other changes in the same change tree, but also in other change trees. For more information about model merge concept, see Merging concepts in details on page 352.

Introductory Case Studies


This section will present the following case studies:
Case Study 1 - 3-way Merge and Analysis on page 321. Case Study 2 - merging in Teamwork System on page 327.

320

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge
Case study 3 - Copying changes from branch to Trunk (in Teamwork) with conflict resolution on page 337.

These case studies will show how merging is performed by accepting or rejecting changes and resolving conflicts.

Case Study 1 - 3-way Merge and Analysis


This case study presents step-by-step instructions for merging projects and analyzing results. Merge functionality in MagicDraw works for both on projects stored in MagicDraw Teamwork Server and files. This case study presents projects. For information about how merging is performed in Teamwork, see Case Study 2 - merging in Teamwork System on page 327. Inventory Control System.mdzip project will be used to show basic merge functionality. You can find this project in the MagicDraw installation folder > samples > case studies folder. In this case study User1 and User2 will make changes in parallel in the same project and later User1 will copy the changes from User2 file to his/her own file. Actions before merging User1 opens the Inventory Control System.mdzip project and makes the following changes to the project.
1. Create a new Customer Group class in the Top Level class diagram class diagram, in

the Static View package (see Figure 108 on page 322).


2. Save the project.

User2 opens the original Inventory Control System.mdzip project and makes the following changes to the project.
1. Rename the Shipment class to Delivery in the Product Shipment object diagram class

diagram (see Figure 109 on page 323).


2. Save this project.

321

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 108 -- Changes made by User1 in the Inventory Control System.mdzip project

322

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 109 -- Changes made by User2 in the Inventory Control System.mdzip project

User1 merges the projects


1. User1 opens the target project - the Inventory Control System.mdzip project, which

includes changes made by himself/herself.


2. Chooses the projects to merge and starts merging: 3 From the Tools menu, select Project Merge. The Merge Projects

dialog box opens (see Figure 110 on page 324).


4 Click the ... button in the Source group and select the Inventory Control System.mdzip project, which includes the changes made by User2. 5 Click the ... button in the Ancestor group and selects the original Inventory Control System.mdzip project that contains no changes.

323

Copyright 1998-2009 No Magic, Inc.

7
NOTE

TOOLS
Model Merge

6 Click the Merge button. The Merge window opens (see Figure 111 on

page 325). A 3-way merging needs an ancestor project. If there is no ancestor project, use 2-way merge. For more information about 2-way and 3way merge, see the Introduction to Merging on page 317.

Figure 110 -- The Merge Projects dialog box

Analyzing merging results The Merge window allows reviewing differences. The merger automatically applies changes made in both source and target projects and highlights those changes in the Merged Result tree (see Figure 111 on page 325). Grey lines underneath the Static View means that there are changes inside the package. Expand the Static View node and see that Customer Group class is added in the package, the Shipment class and the Top Level class diagram are modified (see Figure 112 on page 326).

324

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 111 -- The Merge window - Merge Result tree

325

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 112 -- The Merged Result tree - the Customer Group class is added in the Static View package

Completing the merging procedure


Confirm the changes made to the target by pressing the Finish Merging button. The changes in the source project will be copied to the target project, in the example the Customer Group class is added and the Shipment class is renamed as Delivery (see Figure 113 on page 327).

326

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 113 -- The Inventory Control System.mdzip project after merge

Case Study 2 - merging in Teamwork System


This case study shows how simple changes can be copied from the release branch to the main development branch when User1 and User2 are working on the same project in Teamwork Environment. User1 and User2 actions before merging projects in the Teamwork System User1 adds the Inventory Control System.mdzip project to the Teamwork Server. User2 creates a branch for the Inventory Control System.mdzip project and modifies it.
1. To create a project branch:

327

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

From the Teamwork menu, select Projects. The Edit Projects dialog box opens (see Figure 114 on page 329). button. The Versions dialog box opens (see Figure 115 on page 330).

3 Select the Inventory Control System project and click the Versions 4 Select the first version of the project and click Create Branch. Now

User2 has created a branch, which is derived from the project version 1 from trunk (see Figure 116 on page 331).
5. To modify a project branch. 6 In the Versions dialog box, select Release 1.0 and click the Open button

to open the project. The Release 1.0 branch of the Inventory Control System project opens.
7 Create the Customer Group class in Top Level class diagram, in the

Static View package (see Figure 117 on page 332).


8 Commit changes.

For more information about branching in Teamwork, see Project branching in Teamwork section, MagicDraw Teamwork UserGuide.pdf.

328

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 114 -- The Edit Projects dialog box

329

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 115 -- The Versions dialog box

330

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 116 -- The Inventory Control System project versions with created Release 1.0 branch

331

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 117 -- Changes made by User2

User1 actions to merge changes from branch into the trunk


1. To merge changes from branch into the trunk by opening the latest version of trunk. 2 From the Teamwork menu, select Open Teamwork Project. The Open

Teamwork Project dialog opens (see Figure 118 on page 333).


3 Select the Inventory Control System project and click Open. The latest

version of trunk is opened.


4. To merge changes from the latest version of the project branch to the current active

project.
5 From the Teamwork menu, select Merge From. The Select Teamwork

Project dialog opens (see Figure 119 on page 334).

332

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

6 Expand the 1st node and select the Release 1.0 branch (see Figure 120

on page 334).
7. Click the Merge button. The Merge window opens (see Figure 121 on page 335). The Merge window allows the user to review differences and complete the merge procedure.

Figure 118 -- The Open Teamwork Project dialog box

333

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 119 -- The Select Teamwork Project dialog box

Figure 120 -- The Select Teamwork Project dialog box with selected branch from which we are going to copy changes

334

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 121 -- The Merge window

Analyzing the merge results

335

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Expand the Static View node in the Merge Result tree and you can see that Customer Group class was added to the package and the Top Level class diagram has modification changes (see Figure 122 on page 336).

Figure 122 -- Case study 2 - the Merge window, Merge Result tree

User1 confirms merging changes


1. User1 confirms changes made to the target by clicking the Finish Merging button in the Merge window. The changes from the source project are copied to the target project, in this sample the Customer Group class is added to the trunk project (see Figure 123 on page 337). 2. User1 commits the changes to the Teamwork Server.

336

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 123 -- Changes are copied from the branch to the Trunk - the Customer Group class is added to the Trunk project

For more information about analyzing merging results, see Analyzing Merging Results on page 358.

Case study 3 - Copying changes from branch to Trunk (in Teamwork) with conflict resolution
This case study analyzes how conflicts are resolved during the merging process. Actions Before Merging User1 adds the Inventory Control System.mdzip project to the Teamwork Server and modifies it.

337

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

1. Rename the Customer class as Client class (see Figure 124 on page 338). The Cus-

tomer class is located on Top Level class diagram, in the Static View package.
2. Commit changes to the Teamwork Server.

Figure 124 -- Case Study 3 - User1 changes in the project

User2 creates a branch of the Inventory Control System project and modifies it.
1. To create a project branch: 2

From the Teamwork menu, select Projects. The Edit Projects dialog box opens (see Figure 125 on page 339). button. The Versions dialog box opens (see Figure 126 on page 340).

3 Select the Inventory Control System project and click the Versions

338

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

4 Select the first version of the project and click Create Branch. Now

User2 has created a branch, which is derived from the project version 1 from trunk (see Figure 127 on page 341).
5. To modify a project branch. 6 In the Versions dialog box, select Release 1.0 and click the Open button

to open the project. The Release 1.0 branch of the Inventory Control System project opens.
7 Rename the Customer class as Customer Group class (see Figure 128

on page 342). The Customer class is located on Top Level class diagram, in the Static View package.
8 Commit changes.

Figure 125 -- Case Study 3 - the Edit Projects dialog box

339

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 126 -- Case Study 3 - the Versions dialog box

340

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 127 -- Case Study 3 - the branch Release 1.0 is created

341

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 128 -- Case Study 3 - User2 changes made to the project

User1 merges changes from branch into trunk


1. To merge changes from branch into the trunk by opening the latest version of the

trunk.
2 From the Teamwork menu, User1 selects Open Teamwork Project.

The Open Teamwork Project dialog opens.


3 Select the Inventory Control System project and click Open. The latest

version of trunk opens.


4. To merge changes from the latest version of the project branch to the current active

project.
5 From the Teamwork menu, choose Merge From. The Select

Teamwork Project dialog opens.

342

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

6 Expand the 1 node and selects the Release 1.0 branch (see Figure 129

on page 343).
7. Clicks the Merge button. The Merge window opens (see Figure 130 on page 344).

Figure 129 -- Case Study 3 - the Select Teamwork Project dialog box

343

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 130 -- Case Study 3 - the Merge window

Analyzing conflicting changes


1. Figure 130 on page 344 shows the Merge Results tree in which there are conflicting

changes that cannot be accepted. They are distinguished by red diamond shapes. The Data package has inner changes and conflicts and the Customer class has con-

344

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

flicts (the name was changed in the source and target projects) (see Figure 131 on page 346).
2. The merge engine automatically accepts all non-conflicting changes from the source

and the target projects. Then it accepts all conflicting changes from the target project and rejects all the conflicting changes from the source. The user can review automatically accepted conflicting changes from the target and select to apply change from the other contributor. 3. To navigate the automatically accepted conflicting changes from the target project 4 Click the Go To Next Conflict button in the quick navigation toolbar, to navigate the conflicting changes (see Figure 132 on page 347).
5 The element that has conflicts (the Customer class) is selected (see

Figure 133 on page 348). Its specification is also opened. The name of the Customer class is changed in the source and in the target project. Only the change in the target is automatically accepted.

345

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 131 -- The conflicting change

346

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 132 -- Case Study 3 - the Merge window, the Go To Next Conflict button

347

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 133 -- Case study 3 - the Merge window, Customer class is selected in the Merged Results tree

Changing the conflict resolution and finishing the merge


1. Lets change the automatic acceptance setting of the conflict resolution and accept

the name change from the source project.

348

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

2 In the Change details panel of the Customer class, right-click on the not

accepted change. The shortcut menu opens (see Figure 134 on page 349).
3 Accept the class name modification from the source project by selecting

the Accept shortcut menu item. The name modification from the source project is accepted.
4. Click the Finish Merging button and commit changes to Teamwork.

User1 has successfully resolved conflicting changes and merged them into the target project. The Customer class is renamed to Customer Group (see Figure 135 on page 350).

Figure 134 -- The Merge window, Specification panel with invoked shortcut menu

349

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 135 -- Project after merge

Case Study 4 - Representing DSL elements in the Merged results


Model elements and their properties are displayed and merged using DSL rules, specified as MagicDraw DSL customization artifacts. This case study represents how DoDAF model elements are represented in the Merge window. Actions before merging In the DoDAF sample.mdzip project, which is located in the <MagicDraw installation folder>\samples directory, in the source project user makes the following change:

350

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

In the OV-4 Organizational Structure diagram, in the Rear Production Division Target Materials Branch element Specification dialog box, change the Military Service Type property to the Army value. Merge projects. Analyzing the merge results See the Merge window with the merge results in Figure 136 on page 352. You can see that DSL elements in the Merge window are represented in the same way as they are represented in MagicDraw languages. That means that representation in the Merge window matches the assigned metaclasses in project:
In the Merged Results tree, elements are displayed with DSL icons. In this example,

see the icon of the Organization element, Role element, OV-4 Organizational Structure diagram.
In the Specification pane, title of the element matches title of the DSL element. In

this example, you can see that the Organization element specification properties are represented.
In the Specification pane, DSL properties titles are represented. In this example,

see the Military Service Type property.

351

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

In the Change details pane, information is presented using the titles of the DSL elements.

Figure 136 -- DoDAF elements representation in the Merge window

Merging concepts in details


This section will introduce: the change concept, change the type to accept and reject changes and conflict concept.

352

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

A change is a difference, found between the ancestor and participant of the 2-way or 3-way merge. For example, a merger compares elements of the ancestor project to those of the source or target project. Changes are classified as follows:
addition deletion modification order

For a brief information about changes, see Change types on page 353. Each change can be accepted or rejected and have dependent changes. See Accepting or Rejecting changes on page 354 for the details. Dependent changes are described in Dependent changes on page 354. Changes can conflict with each other. See Conflicting changes on page 355.

Change types
Addition change If an element is added to the contributor then an addition change occurs. If the addition change is accepted a new element will be created. See the example of addition change in the Addition changes on page 367. Modification change If an element property in the contributor is modified then a modification change occurs (Note: element property means the element specification property, such as Is Abstract, Multiplicity, and others). For example, if the Is Abstract class property in the ancestor has a default value (which is false) and the Is Abstract property in the contributor is changed to true, a modification change would occur. There are three types of modification changes:
Addition modification change adds a value to the property. Deletion modification change removes a value from a property.

353

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Replacement modification change replaces one value with another. This type of

modification change occurs only for properties that have multiplicity less or equal to 1. For more information about modification change, see Elements with modified properties on page 370. Deletion change If an element is removed from the contributor, then a deletion change occurs in the removed element. For more information about deletion change, see Deletion changes on page 368. Change order If the order of elements in the ancestor and contributor differs, then an order change occurs. For more information about order change, see Order changes on page 370.

Accepting or Rejecting changes


Every change, whether it is addition, modification, deletion, or order change, can be accepted or rejected. Accepted changes are incorporated into the final project. Alternatively, they can be rejected and will not be applied to into the target project. For more information about accepted or rejected changes in the Merge window, see Analyzing Merging Results on page 358.

Dependent changes
In some cases, other changes have to be accepted or rejected before accepting or rejecting the selected change. In other words, the selected change sometimes depends on other changes, then it is called a dependent change or dependant. An example of a dependent change is a type change. If a class attribute type is changed to a type that is created by another change, then the attribute type change is dependent on the change that created the type. This means that type creation has to be accepted before accepting type modification change.

354

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Another example is the type deletion, modification, and addition. Suppose there is an attribute type change in a contributor. The old type is deleted and a new type is added to the contributor. In this case, three changes are formed:
deletion change (for the old type), addition change (for the new type), and modification change (for the property type).

These are also ownership changes, but they are accepted together with deletion and addition changes. A modification change depends on an addition change and a deletion change depends on a modification change. Accepting the addition change does not mean accepting any other changes in this case. Accepting the modification change means accepting the addition change and then accepting itself. Accepting the deletion change means accepting the addition change, the modification change and the deletion change itself. The change dependencies for the described case is depicted in Figure 137 on page 355.

Figure 137 -- Sample of the dependent changes - type deletion, modification, and addition

Conflicting changes
A conflict is two differences that are incompatible with each other, i.e. changes that can not be accepted together. Every change can have several conflicting changes.
NOTE

Conflicting changes occur only in a 3-way merge.

Some examples of the conflicting changes:


Each contributor changed a class name or any other element properties

(metaproperty).

355

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

One contributor added an operation to a class and the other contributor deleted the

class.
One contributor moved a class into one package while the other contributor moved it

to another package. For more information about the representation of the conflicting changes, see Analyzing Merging Results on page 358.

Building change tree


There are two groups of elements that are compared and merged:
1. Model/diagram elements 2. Non-model elements.

The Model/diagram tree is represented in the Merged Result tree as it is done in the Browser in the main MagicDraw window. The Non-model tree is represented in the Merged Result tree with two branches:
Module mount table. Module mount table node lists the in the project used modules.

See the sample of changes in the module mount table.


Project options. Project options node shows if any project options is changed or not.

Sample of changes in the module mount table Three changes occurs in this sample: Profile A module is updated to a newer version (change c1), which has type A removed (change c2), which implies type unsetting for the typed element P2 (change c3) (see Figure 138 on page 357). Change c1 and c2 are dependent on each other and change c2 depends on change c3. This situation is depicted in Figure 139 on page 357.

356

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 138 -- Sample of the changes in the module mount table

Figure 139 -- Sample of the changes in the module mount table - dependencies

357

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Analyzing Merging Results


Merging results are presented in the Merge window (see Figure 140 on page 359).

The Merge window description


Look at each part of the Merge window separately. The Merge window consists of the following parts:
"The Merged Result tree" "Toolbar for displaying and navigating through changes" "Toolbar for accepting and rejecting changes" "Change legend and summary" "Buttons for quick navigation through conflicting changes" "Element Specification panel" "Change details panel"

Reorganizing panels of the Merge window Panels of the Merge window can be organized to your desired positions. The following changes can be done to the Merge window: The Summary/Legend panel can be turned on or off using the Summary/Legend button, which is on the left side of the Summary/Legend panel (see Figure 141 on page 360). The Change details and Specification panels can be maximized, toggled to floating or auto-hide windows using buttons, located at the top-right side of the panel (see Figure 142 on page 361). You can also manage panels of the Merge window, using shortcut menu. To invoke it, right-click on the title bar of the window. See the location of the shortcut menu invocation in Figure 142 on page 361 and in Figure 144 on page 363. To reset the position of the panels of the Merge window panel, from the panel shortcut menu select the Reset Windows Configuration command or press the Reset Windows Configuration button at the top of the Merge window (see Figure 145 on page 364). For information about managing diagram tabs, see Viewing changes in diagrams on page 383.

358

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 140 -- The Merge window

359

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 141 -- The Summary/Legend button in the Merge window

360

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 142 -- Buttons to manage the Change details and the Specification panels in the Merge window

361

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 143 -- Shortcut menu of the Merge panels

362

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 144 -- Shortcut menu of the Specification window

363

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 145 -- The Merge window, Reset Windows Configuration button

364

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

The Merged Result tree

Figure 146 -- The Merged result tree

The merged result tree combines both containment and change trees. The following types of changes are displayed in the merged result tree:
1. Addition changes on page 367

365

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

2. Deletion changes on page 368 3. Move changes on page 368 4. Order changes on page 370 5. Elements with modified properties on page 370 6. Elements with changed inner elements on page 370.

Modification changes are displayed in the element properties panel other changes are displayed in the Merged Result tree. Element decoration in the Merged Result tree A change occurs on a single element and that element has an icon indicating the state of the change (see the table bellow).
Decoration Change state Example

Accepted

(green tick before the element) New element is created in one of the contributors and its addition is accepted. Rejected

(red cross before element) New element is created in one of the contributors and its addition is rejected. For more information about accepted/rejected changes, see Accepting or Rejecting changes on page 354.

366

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Changes that have conflicts are additionally decorated with icons showed in the table bellow. Parents of conflicting elements have conflict decorations too.
Decoration Change applied by Example

System

(red diamond on the left-bottom corner of element) Element has conflicting modification change. User

(yellow diamond on the left-bottom corner of element) Element has conflicting modification change which is resolved by the user. Addition changes Addition changes occur when elements are created in the contributors. In the merged result tree added elements are highlighted with green color (see Figure 147 on page 367).

Figure 147 -- Addition change

367

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Deletion changes Deletion changes occur when elements are deleted in the contributors. Deletion changes are highlighted with grey color (see Figure 148 on page 368).

Figure 148 -- Deletion changes

Move changes Move changes are highlighted using the same blue color that is used to highlight modification changes, because move change is just a kind of modification change. Additionally, move changes are displayed with arrows before the moved element icon. In the following example, element X is moved from package A to package B. The illustration shows the initial situation when where the move change is accepted and element X is owned by package B.

Figure 149 -- Move changes

Navigation from the original to the new location (and vice versa) for elements that have been moved is possible from the moved element shortcut menu (see Figure 150 on page 369 and Figure 151 on page 369).

368

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 150 -- Navigation to the new element location

Figure 151 -- Navigation to the original element location

369

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Order changes Order changes occur on elements such as attributes, operations, and other ordered elements. Even if a single element in a collection has changed its place, the order change is applied to the entire collection. After accepting the change, all elements in the collection is reordered so that it would be the same as in one of the contributors the change occurred. An element can have several ordered collections. This means several order changes can occur for a single element. Changes in the element will be highlighted using the same blue color that is used to highlight modification changes.

Figure 152 -- Order changes

Elements with modified properties Modification changes occur when element properties changed in the contributors. Elements whose properties changed are highlighted in blue.

Figure 153 -- Elements with modified properties

Elements with changed inner elements Elements whose inner elements (in any nesting level) have pending changes are highlighted using red dashes as shown below. If the element has pending property modification changes, then the modification highlight color is mixed with changed inner element highlight, i.e. the element is highlighted using blue color with red dashes.

370

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 154 -- Element X with changed inner elements Y and attribute

Figure 155 -- Element X with changed inner elements Y and attribute and modification change

371

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Toolbar for displaying and navigating through changes The toolbar for displaying and navigating through changes is located at the top of the Merge window. See the highlighted area in Figure 156 on page 372.

Figure 156 -- Toolbar for displaying and navigating through changes

372

Copyright 1998-2009 No Magic, Inc.

7
Button

TOOLS
Model Merge

The toolbar buttons are used to navigate through the Merged Result tree and the Specification panel:
Title Expand Function Expand all nodes in the merged result tree.

Collapse

Collapse all nodes in the merged result tree.

Go To First Change Alt+Home

Select the first model change in the merged result tree. Note: The Go To First Change button is disabled if the first change is already selected in the merged result tree. Select previous change in the merged result tree.

Go To Previous Change Alt+up arrow Go To Next Change Alt + down arrow Go To Last Change Alt+End Go To Next Conflict Alt+Page Down

Select the next change in the merged result tree.

Select the last difference in the merged result tree.

Select the next conflict in the merged result tree. Note: The Go To Next Conflict button is disabled if there are no conflicts. For more information about navigation through conflicting changes, see Buttons for quick navigation through conflicting changes on page 378.

Show auxiliary resources

Press the button to show or hide the profiles, modules with applied <<auxiliaryResources>> stereotype in the Merged Result tree (for example, UML Standard Profile). Undo the last action.

Undo

373

Copyright 1998-2009 No Magic, Inc.

7
Button

TOOLS
Model Merge

Title Redo

Function Cancel undo command.

Filter

Press the Filter button to invoke the Items Filter dialog box. Clear the checkbox next to the it to hide element in the merged result tree. Press this button to annotate diagram for the postmerge review. For more information, see Annotations in the merged diagram on page 391. Press the Reset Windows button to organize panels of the Merge window to its original location. For more information about resetting windows configuration, see Reorganizing panels of the Merge window on page 358. List filter options for types of change in the merged result tree:
All. This is the default value. Display all

Annotate Merged Diagram

Reset Windows Configuration

elements in the Merged Result tree.


All Changes. Display elements with changes

or have inner changes.


All Conflicting Changes. Display elements

that have conflicting changes or inner conflicting changes. Addition Changes. Display elements that are added to the model or have inner addition changes. Modification Changes. Display elements that have been modified or have inner modification changes. Deletion Changes. Display elements that have been deleted or have inner deletion changes. Move Changes. Display elements that have been moved or have inner move changes. Order Changes. Display elements whose order has been changed or have inner order changes.

374

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Toolbar for accepting and rejecting changes The toolbar located above the merged result tree is used for accepting and rejecting changes. Accept and reject buttons are described in the table bellow and more about accepting and reject you can see Accepting or Rejecting changes on page 354.

Figure 157 -- The toolbar for accepting and rejecting changes

375

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Button Buttons for accepting changes

Title Accept the selected change, its property changes and all subelement changes Accept the selected change its property change Accept the selected change

Function Accept all changes from the left and right contributors starting from the selected element. E.g. if the Data model is selected, then all changes for the whole project will be accepted. Perform the same function as the button, except that only the selected change and its metaproperty changes are accepted. Perform the same function as the button, except that only the selected change is accepted.

Buttons for rejecting changes

Reject the selected change, its property changes and all subelement changes Reject the selected change its property change Reject the selected change

Reject all changes from left and right contributor starting from the selected package. E.g. if the Data model is selected, then all changes for the whole project will be rejected. Reject the selected change and its metaproperty changes.

Reject the selected element change.

376

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Change legend and summary There is a legend on the right of the merged result for counting differences from ancestor and to display the meaning of colors that are used to mark changed elements.

Figure 158 -- Change legend and summary

Press the Summary/Legend button at the top of the change legend to hide or show the summary panel.

377

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Buttons for quick navigation through conflicting changes Lets analyze the quick navigation through the automatically accepted conflicting changes in the Merge window (see Figure 159 on page 378).

Figure 159 -- Buttons for quick navigation through conflicting changes

378

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

The panel to the right of the merged result tree displays yellow buttons representing conflicting changes. Press the yellow button to select the automatically accepted conflicting changes in the merged result tree. A message with a warning icon is displayed in the Merge window stating the number of conflicting changes that are accepted from the target. This message is located above the Merged Result tree (see Figure 159 on page 378). Element Specification panel Modification changes can only occur in properties. Modification and move changes (which are a certain type of modification changes) are displayed at the bottom of the panel, the Specification panel (Figure 160 on page 379). In the first column of the Specification panel, property titles are listed. The Source, Ancestor and Target columns display corresponding change properties from both contributors and the ancestor. Changed properties have blue background. For example, Figure 160 on page 379 shows a class has different lists of values in source and target. Class is renamed in the source to B class and class is renamed to C in the target. Green tick in the Target column shows that class name change was accepted. Additions in properties have green background, deletions grey have background (just like in the Merge Result tree) (see Figure 161 on page 380).

Figure 160 -- Displaying changes in element specification panel

379

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 161 -- Displaying changes in the specification panel - value addition and deletion from a property

To navigate from the Specification panel to the Merged Result tree:


1. Select a property in the Properties column, which references other elements. 2. In the shortcut menu select the Select in Merged Result Tree command and then

choose element to which you want to navigate (see Figure 162 on page 380).

Figure 162 -- Navigating from the Specification panel to the Merged Result tree

380

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

You can also navigate to the Merged Result tree by invoking shortcut menu from the column cell, which references other elements. The Select in Merged Result Tree command has submenu items corresponding to the referenced elements for the selected cell.

Figure 163 -- Navigating from the Specification panel to the Merged Result tree

Change details panel The Change details panel is located at the bottom of the merge window. The Change details panel has a tree reflecting changes occurred on the element selected in the merged result tree or element properties panel. The tree has two root-level nodes:
1. Source changes 2. Target changes

381

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

The Source changes and Target changes nodes display changes occurred in the source or target respectively. If several nodes in the merged result tree are selected, then all changes occurred in the nodes are displayed in the Change details panel.

Figure 164 -- Change details panel

The Change details panel displays results after click on the element in the Merged Result tree or on property in the Specification panel. Press the Lock contents of this panel button in the Change details panel to freeze the Change details results, that is, the last result is displayed and result is not refreshed (see Figure 165 on page 382). To unfreeze the Change details panel, press the Lock contents of this panel button again.

Figure 165 -- The Lock contents of this panel button in the Change details panel

382

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Shortcut menu in the Merge window The table bellow lists the commands of the shortcut menu, which is available in the Merged Result tree and Change details panel.
Command Name Accept Reject Accept With Properties Reject With Properties Accept Recursively Reject Recursively Description

Accepts the selected change. Rejects the selected change. Accepts the selected change and its property changes. Rejects the selecting change, its property changes. Accepts the selected change, its property changes, and all subelement changes. Rejects the selected change, its property changes, and all subelement changes. The Mark As Resolved command makes the change resolved by user, not the system. The conflicting change is marked as resolved by user too. This menu item changes depending on the type of the change.

Mark as Resolved Select in Merged Result Tree / Select in Specification panel

Viewing changes in diagrams


The merge window has functionality to open merged diagrams from the source, ancestor, and target projects in separate tabs. Opening the diagrams with changes from the Merge window To open diagrams with changes double click on modified diagram in the Merged Result tree. Two or free views of the same diagram are opened. Ancestor view of diagram is opened always and source diagram is opened if changes were done in diagram in source project, accordingly the targed diagram is opened if changes were done in diagram in target project. See the Merge window with the opened diagrams (see Figure 166 on page 384).

383

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

You can switch between Merged Result window and diagram windows, by pressing tabs at the top of the Merge window.

Figure 166 -- The Merge window with opened diagrams

Analyzing differences in diagrams In opened diagrams changed diagram areas are highlighted with dashed blue background (see Figure 167 on page 385). The following changes are highlighted in diagrams:
The symbol or few symbols were moved or resized in diagram Then new symbol diagram was added

384

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge
The symbol was deleted from diagram

In summary all visual changes in diagram are highlighted.

Figure 167 -- Diagram with highlighted differences

385

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Managing the diagram view Using the buttons located at the bottom of the diagram viewer tab (see Figure 168 on page 388) you can turn on or off difference showing, print a diagram, zoom, synchronize zooming and scrolling in diagram view. See the buttons description in the table bellow.
Button image and title Synchronize Zooming Description

When button is pressed (default value) source, ancestor, and target diagrams zooming is dependent, i.e. the same zooming operations are performed on diagrams simultaneously. To turn off synchronization of zooming, depress the Synchronize Zooming. NOTE Synchronization is valid for the source, ancestor, and target views of the same diagram.

Synchronize Scrolling

When button is pressed (default value) source, ancestor, and target diagrams scrolling is dependent, i.e. the same scrolling operations are performed on diagrams simultaneously. To turn off synchronization of scrolling, depress the Synchronize Zooming. NOTE Synchronization is valid for the source, ancestor, and target views of the same diagram.

386

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Button image and title Mark Changes

Description

Difference showing od hiding is controlled by the Mark Changes button. It is possible to press or depress this button in every diagram independently:
If this button is pressed in the source diagram, then differences

are shown in the source and ancestor diagrams.


If this button is pressed in the target diagram, then differences

are shown in the target and ancestor diagrams.


If this button is pressed in the ancestor diagram, then differences

are shown in the source, target, and ancestor diagrams. If buttons in the source and/or target diagrams were depressed previously, they are pressed after pressing this button in the ancestor diagram. If difference showing is turned on for both source and target diagrams or it is turned on for the ancestor diagram, then area that highlights differences in the ancestor is combined from the areas that would be shown in the ancestor if only showing differences for source or target would be enabled.
Print Diagram

To print a diagram, press the Print Diagram button. Diagrams are printed with highlighted area with the Mark Changes button is pressed (default value). Resize the view of diagram by the zooming buttons. To synchronize or desynchronize zooming use the Synchronize Zooming button (see description above).

Zooming

387

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 168 -- Buttons group in the diagram difference viewer

Symbol properties changes marking in the diagram difference viewer Symbols, which are marked as changed in diagram difference viewer, but has no visual differences, may have symbol properties changes. It means that symbol properties there changes, but no affect on symbol was made. See an example in Figure 169 on page 389 and in Figure 170 on page 390. In this example the Shipment class is displayed as changed in diagram, but it has no visual differences nor in Target neither in Source diagrams. The following symbol properties change was made to the Shipment class: in the class Properties dialog box, the Show Stereotypes option value was changed. Symbol properties

388

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

changes were made for the class and they are detected in the diagram difference viewer in order to merge them correctly.

Figure 169 -- The diagram difference viewer window, displaying symbol properties changes in the Target diagram

389

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 170 -- The diagram difference viewer window, displaying symbol properties changes in the Source diagram

390

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Finishing projects merge


To finish the merge, in the Merge window, click the Finish Merging button. The question dialog box appears (see Figure 171 on page 391).

Figure 171 -- The Confirm Changes question dialog box

After pressing Yes in the Confirm Changes dialog box, project changes to the target project is confirmed. After pressing No, the target project leaves not changed. Pressing Cancel will cancel the Confirm Changes dialog box and you will be able to continue merging.
NOTE After the merge results are copied to the project, do not forget to save or to commit project to Teamwork Server.

Annotations in the merged diagram The Annotate merged diagram button specifies whether merged diagrams will be annotated for the post-merge review or not. Press this button to annotate merged diagram. See the location of the button in Figure 172 on page 392. See an example of the annotated diagram in Figure 173 on page 393. Click the warning at the right-bottom corner of the MagicDraw window to invoke the Active Validation Results window, there information about merged diagrams is represented (see Figure 174 on page 394). For more information, see Validation on page 523.

391

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 172 -- The Merge window, the Annotate Merged Diagram button

392

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 173 -- Annotations in the merged diagram

393

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Merge

Figure 174 -- Validation results of the merged diagrams

Controlling Merge memory usage


You can customize merge memory usage by selecting the optimization option:
1. From the Tools main menu, select the Project Merge command. The Projects

Merge dialog box opens (see Figure 175 on page 395).


2. Select the Optimize for option.

394

Copyright 1998-2009 No Magic, Inc.

TOOLS
Pattern Wizard

You can also specify the Optimize for option in the Environment Options dialog box, General pane, Merge group. Select the Speed property to merge the projects faster, but it would require more memory. If your PC doesnt have memory enough, in the Optimize for option, select the Memory property. Merge time will be slower, but memory usage will decrease.

Figure 175 -- The Merge Projects dialog box

Pattern Wizard
In MagicDraw, you can find various GOF, Java, Junit, CORBA IDL, and XML Schema design patterns.
NOTE This functionality is available in Standard, Professional, and Enterprise editions only.

You can also create new patterns and edit existing ones using Java code or JPython scripts. For a detailed description, see MagicDraw open API users guide.

395

Copyright 1998-2009 No Magic, Inc.

TOOLS
Pattern Wizard

To open the Pattern Wizard


Select Tools from the class shortcut menu and then select the Apply Pattern

subcommand.

Figure 176 -- Pattern Wizard

396

Copyright 1998-2009 No Magic, Inc.

TOOLS
Pattern Wizard

The Pattern Wizard has three main collections of customizable options, which are represented by the hierarchy tree on the left side of the dialog box:
Design Pattern Adapter

Category GOF

Properties

Interface Class Adapter Class Adaptee Class NOTE The Next > button is activated. In the Adapter Operations screen, add or remove operations you want to use.

Templates described in the Design Patterns of Reusable Object-Oriented Software

Bridge

Abstraction Implementor Implementor is: Abstract Class or Interface Name of Reference Suffix of the Concrete Implementor NOTE The Next > button is activated. In the Deriver Classes screen, add or remove classes you want to use.

Composite

Component Class Composite Class NOTE The Next > button is activated. In the Composite Operations screen, add or remove operations you want to use.

Decorator

Component Class Decorator Class Concrete Decorator Class NOTE The Next > button is activated. In the Decorator Operations screen, add or remove operations you want to use.

397

Copyright 1998-2009 No Magic, Inc.

TOOLS
Pattern Wizard

Category

Design Pattern Observer

Properties

Subject Class Observer Class Concrete Subject Class Concrete Observer Class

Proxy

Subject Class Proxy Class Real Subject Class NOTE The Next > button is activated. In the Proxy Operations screen, add or remove operations you want to use.

Singleton Visitor

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.

Java

Main

Main class

Specific Java design patterns


RMI

Java RMI classes Remote Interface NOTE The Next > button is activated. In the Remote methods screen, select methods from the All list to the Selected list.

398

Copyright 1998-2009 No Magic, Inc.

TOOLS
Pattern Wizard

Category

Design Pattern EJB Entity

Properties

Synchronize Names EJB Name EJB Class Remote Interface Home Interface Local Interface Local Home Interface Display Name Large Icon Small Icon Abstract Schema Name Cmp Version Persistence Type Reentrant Primary Key Class

Message Driven

EJB Name EJB Class Display Name Large Icon Small Icon Acknowledge Mode Destination Type Subscripting Durability Message Selector Transaction Type

399

Copyright 1998-2009 No Magic, Inc.

TOOLS
Pattern Wizard

Category

Design Pattern Session

Properties

Synchronize Names EJB Name EJB Class Remote Interface Home Interface Local Interface Local Home Interface Display Name Large Icon Small Icon Session Type Transaction Type NOTE The Next > button is activated. In the Remote Methods screen, add or remove operations you want to use.

JUnit

TestCase

TestCase Class Create suite() Create Constructor TestCase(String) Create runTest() Create setUp() Create tearDown()

JUnit is a regression testing framework. It is used by the developer who implements unit tests in Java. JUnit is Open Source Software. The provided templates allow the user to create the constructions implemented in the JUnit framework. For more information, go to http:// www.junit.org.

400

Copyright 1998-2009 No Magic, Inc.

TOOLS
Pattern Wizard

Category

Design Pattern Tested Class

Properties

Tested Class TestCase Class Create suite() Create Constructor TestCase(String) Create runTest() Create setUp() Create tearDown() NOTE: The Next > button is activated. In the Tested Operations pane, add or remove operations you want to use.

XML Schema Specific XML design patterns

XSD complex Type XSD compositor

Target Class Content: XSDcomplex content, XSDsimple content. Target Class Compositor: XSDall, XSDchoice, XSDsequence Particle Target Class Content: XSDrestriction, XSDlist, XSDunion Target Class Item Type Target Class

XSD simpleType XSD simpleType (XSDlist) XSD simpleType (XSDunion)

401

Copyright 1998-2009 No Magic, Inc.

TOOLS
Pattern Wizard

Category

Design Pattern Simple XSD restriction

Properties

Target Class Stereotype: XSDsimpleType, XSDsimpleContent Base Min Exclusive Max Exclusive Max Inclusive Min Inclusive Total Digits Fraction Digits Length Min Length Max Length White Space Pattern

WSDL Specific WSDL design pattern CORBA IDL Specific CORBA IDL design patterns

Binding

Use the Binding pattern when you want to create binding of some PortType. Name Abstract Local Interface

Interface

Value Type

Name Abstract Custom Value Type

Type Definition

Name Type Definition Specifier: typedef, boxed value Base Type

402

Copyright 1998-2009 No Magic, Inc.

TOOLS
Pattern Wizard

Category

Design Pattern Sequence

Properties

Name Base Type Sequence Size Anonymous

Array

Name Base Type Array Size Anonymous

Fixed

Name Digits Scale Anonymous

Union

Name Discriminator Type Name Name Name Go back to the Pattern screen. Go to the other appropriated screen. Finish and implement the wizard. The appropriated classes and interfaces are created. Cancel the wizard without implementing your actions. The MagicDraw Help is displayed.

Enume ration Struct Exception < Back Next > Finish Cancel Help

403

Copyright 1998-2009 No Magic, Inc.

7
NOTE

TOOLS
Creating Setters / Getters

Creating Setters / Getters


This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

Setters and getters are common operations that contain almost every class. With the help of MagicDraw 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, select Tools, and then select Create

Setters/Getters. The Select Attributes/Association Ends dialog box opens.

404

Copyright 1998-2009 No Magic, Inc.

TOOLS
Creating Setters / Getters
Add a tagged value "getter/setter for attribute=attribute_name" to the selected class.

Figure 177 -- Select Attributes dialog box Box All Selected > < >> << Prefix to Remove Function

Contains names of all attributes defined within the selected class. Contains the selected attributes. Moves the selected attribute from the All list to the Selected list. Setter for that attribute will be generated. Moves selected attribute from the Selected list to the All list. Moves all attributes from the All list to the Selected list. Setters for all attributes will be generated. Moves all attributes from the Selected to the All list. Type a prefix of an attribute (-, .) you want to remove while generating setters or getters.

405

Copyright 1998-2009 No Magic, Inc.

7
Box

TOOLS
Creating Setters / Getters

Function

Create Setters Create Getters Prefix for Setter Prefix for Getter

Generates setters for the selected attributes. Generates getters for the selected attributes. Select a prefix for the generated setter (operation). Possible choices: set or Set. Select 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 Cancel Help

Generates setters and/or getters for attributes that are in the Selected Items list. Exits the dialog box without any changes. Displays the MagicDraw 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 this 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 ();

406

Copyright 1998-2009 No Magic, Inc.

7
NOTE

TOOLS
Implementing or Overriding Operations

Implementing or Overriding Operations


This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

When you inherit classes from the base class that 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 Implement/Override Operations command can be invoked in 2 cases:
When one classifier inherits operations from the base classifier (Generalization

relationship).
When some classifiers implement an Interface (Realization relationship).

407

Copyright 1998-2009 No Magic, Inc.

TOOLS
Implementing or Overriding Operations

To start the Implement/Override Operations tool From the shortcut menu of the selected class, select Tools. Then, select Implement/Override Operations. The Select Operations to Implement/Override dialog box opens.

Figure 178 -- Select Operations to Implement/Override dialog box Box All Selected > < >> << OK Cancel Help Function

Contains names of all operations defined within the selected class. Contains the selected operations. Moves the selected operation from the All list to the Selected list. Moves selected operation from the Selected list to the All list. Moves all operations from the All list to the Selected list. Moves all operations from the Selected to the All list. Generates operations that are in the Selected list. Exits the dialog box without any changes. Displays the MagicDraw Help.
Double-click the item name and it will be moved to the opposite list.

TIP!:

408

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard

Model Transformation Wizard


View Online Demo NOTE Transformations This functionality is available in Architect and Enterprise editions only.

Model transformation is a data set that describes the action of applying model transformations to a set of packages. Components of model transformations include transformation types, parameters, packages set to transform, and the destination for the model transformation.

Types of transformations
Transformations can be categorized by the formats, models, and other entities they are being transferred from and to:
Any to Any - copies all or part of your model to another package without making

changes. You can also change the destination model by applying transformation mapping rules.
UML to XML Schema - creates XML Schema models from pure UML models. Once

the source model is copied, the necessary stereotypes are applied according to the XML schema modeling rules.
XML Schema to UML - creates a pure UML model from the XML Schema. The

source model is copied, but stripped of all unnecessary stereotypes. Because it derives abstract models from more specific ones, reverse transformation can occasionally lose information in the destination model.
Generic DDL to Oracle DDL - creates more specific Oracle DDL models from

Generic DDL. In this transformation, mapping will be performed using appropriate Oracle DDL types.
UML to Generic DDL - creates generic DDL models from UML models. Once the

source elements are copied to the destination, the appropriate stereotypes are applied. This transformation works only with classes, packages, and association relationships.
UML to Oracle DDL - creates Oracle DDL models from UML models. Mapping is

performed using the appropriate Oracle DDL types.


DDL to UML - derives UML models from DDL models.

409

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard

Model Transformation Wizard


To start the Model Transformation Wizard
From the Tools main menu, select Model Transformations. Select the package(s). From the shortcut menu, select Tools and then select

Transform.

Figure 179 -- Model Transformation Wizard. Select transformation type

Transformation types are displayed in the list window. The following operations are available in the Select transformation type window:
Next > proceed to the next step (in this case, Select source/destination.) Cancel cancel the wizard.

410

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard
Help display the MagicDraw Help.

Figure 180 -- Model Transformation Wizard. Select source/destination

The Transformation Source tree displays all project data (the packages and their inner elements) that can be selected as sources for transformation. Select the Place transformation model in package option button to specify the package to which the source will be transformed. Click the ... button to display the Destination Package dialog box. Select an existing package from the Packages tree or create a new one. Select the Transform in place option button if you want the source package structure to correspond to the destination package. The following operations are available in the Select source/destination window:
< Back return to the previous dialog box. Next > proceed to the next step (in this case, Select type mappings.)

411

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard

Finish finish the transformation configuration. All other options will be set by

default. The Model Transformations Wizard exits and transformation results appear in the project.
Cancel cancel the wizard. Help display the MagicDraw Help.

Figure 181 -- Model Transformation Wizard. Select type mappings

To see a list of the default or manually created mapping profiles, click the down arrow in the Transformation type map field. These mapping profiles specify which mapping rules should be applied to the model during transformation. The From type and To type fields display the type mappings of the selected transformation profile. The Run type mapping in reverse order check box creates opposite type mapping in transformations. The following operations are available in the Select type mapping window:
< Back return to the previous dialog box.

412

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard
Next > proceed to the next step - Specify transformation details. (This button is

disabled during Any to Any transformations.)


Finish finish the configuration of the transformation. The Model Transformations

Wizard exits and transformation results appear in the project.


Cancel cancel the wizard. Help display the MagicDraw Help.

Figure 182 -- Model Transformation Wizard. Specify transformation details

The Transformation Details table displays the various properties (selected in Step 1 of the Model Transformation Wizard of a specific transformation Here you can change the element's default value. Click Reset to Defaults to change the transformation properties to the default values. The following operations are available in the Specify transformation details window:
< Back return to the previous dialog box.

413

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard

Finish finish the transformation configuration. The Model Transformations

Wizard exits and transformation results appear in the project.


Cancel cancel the wizard. Help display the MagicDraw Help.

Model Transformation Mapping


When transforming your model, you can map the types used in the transformation classes. This mapping is usually used to map primitive types from one domain to appropriate primitive types in another domain. The map is a collection of rules framed by the "from type - to type" relationship. The following elements can be used in creating mapping rules. They are stored in the Model Transformation Profile.

414

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard

To create transformation mapping rules


1. Import or use Model_Transformation_Profile.xml.zip. 2. Apply the stereotype named <<typeMap>> to the newly created rules package. 3. Select the standard types that will be used in transformation mapping, then create the

desired dependency relationship between the two types. Apply the stereotype named <<map>> to the dependency.

In the example above, after the transformation, all int types will be transformed to char. NOTE:
To change the behavior of the mapping, See Transformation Mapping Options on page 415. 4. Start the Model Transformations Wizard. In Step 3, select type mapping, click the

Transformation type map profile field and select the package containing mapping rules. 5. Click Finish. Transformation mapping, as specified by the newly-created rules, will be performed on the transformed model.

Transformation Mapping Options


To change a mapping behavior, set appropriate tags on the dependency relationship:
Default type mapping can be applied both ways. For example, you can use the type

map from int to char to change all int types to char. But if you select the Run type mapping in reverse order check box under the Select type mappings (Step 3 of the Model Transformation Wizard), the type map will be applied in reverse order all char will be changed to int. To change this, create a value for the direction tag in the Dependency Specification dialog box, Tags tab.
The default value is "both". Change this value to "forward" to make this mapping valid for forward dependencies. Change the value to "reverse" to have this mapping valid for reverse dependencies.
To apply the order of direction for all dependencies, set the defaultDirection tag

value in the Package Specification dialog box. This package contains the <<typeMap>> stereotype. Initially, the <<map>> dependency direction tag is checked. If not found, the <<typeMap>> package defaultDirection tag value is set.
You may have several <<map>> relationships from one source or to one destination.

In these cases, the "default" tag for at least one of the relationships must be set.

415

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard

Dependencies from one source without default tags (or with several) is invalid. Also, dependencies to one destination with "reverse" or "both" direction order set, must have one with a default tag.
Transitive mapping for the elements (for example, Type1 -> Type2 -> Type3) is not

supported.
You may also control mapping behavior for the type inheritance source of the model.

By default, derived subtypes are also mapped by the rule governing the parent type (unless, of course, they have their own rules for mapping). If the blockInheritedSourceTypes tagged value is set, derived types are not affected by this rule.

Here T1, T2, and T5 are types in the source domain, while T2 and T4 are types in the destination domain. Given these two mappings (T1 ->T2 and T3 ->T4), the following statement is true: T1, and all types derived from it (such as T5), are mapped to the T2 type, except T3 and any of the types derived from it. These types are mapped to T4.

416

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard

Now consider an example where blockInheritedSourceTypes is set:

In this case, T3, along with the types derived from it, are still mapped to T4. T1 is still mapped to T2. However, unlike the previous example, T5 and all the types inherited from T1 are NOT mapped to T2.
You can also control the mapping behavior of the type inheritance in the destination

model. This is only effective on the second (and successive) applications of the transformation. By default, derived subtypes in the destination model are not overwritten since they are considered suitable substitutes of their parent.

Here T1 is a type in the source domain, while T2 and T4 are types in the destination domain. Given this mapping (T1 ->T2), on the first application of the transformation, type T1 residing in the source model will be mapped to type T2 in the destination model. Now let us look at a case where the user refines the destination model - changing the type on the destination model attribute from T2 to - T4. This situation is quite common: for example, the user refines an attribute type from string to basic URI in the XML schema, or from Integer to nonNegativeInteger, and so forth). In essence, the mapping for inherited types of T2 is performed as if there was a mapping T1->T2 (default), T1->T4, T1-> any_other_type_inherited_from_T2.

417

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard

Now consider what happens when we apply the blockInheritedDestinationTypes tagged value:

In this case, type T4 has no special treatment. If the user applies the transformation, T1 is mapped to T2. In another scenario, the user refines the destination model, changing the attribute type from T2 to T4. If the user now reapplies (updates the destination) the transformation, the attribute type is overwritten: T4 is reset back to T2. When the user loads the type map in the reverse direction, the roles of the "blockInheritedSourceTypes" and "blockInheritedDestinationTypes" are transposed (unless of course the "direction" mandates that this mapping is not used in the reverse direction).
The special type EmptySourceType is used to indicate that the attributes with no

type should be mapped with this dependency.


The special type EmptyDestinationType is used to indicate that the attributes in the

destination classes should have no type after remapping (type removal).


The special type AnySourceType - is a template that matches any type in the source

model (see mapping rules for type inheritance). By using this type, together with the inheritance mapping rules, the user can specify that any other types not defined by the mapping should be interpreted by this mapping. According to this rule, any other types in the source model should be stripped in the destination model.

The special type AnyDestinationType is a template that matches any type in the

destination model (see mapping rules for type inheritance).

418

Copyright 1998-2009 No Magic, Inc.

TOOLS
Model Transformation Wizard

Model Transformation Update


When reapplying a transformation, relationships are retrieved from storage. They are then used to find the model elements in the destination model that correspond to the given model element in the source model. The presence of unmapped model elements in the source model indicates that these are newly added elements. Apply the usual rules for the transformation using the same behavior as if this were the first application of the transformation. If the model elements already contain mapping, then the user can either update properties of the mapped element or leave the transformation model intact. To update a transformed model
From the destination package shortcut menu, select Tools and then select Update

Transformed Model. The Model Refresh Options dialog box opens:

Figure 183 -- Model refresh options dialog box

The Change destination properties according to source option overwrites element properties in the destination model with properties from the source model (but only the elements connected with mapping dependencies). The Leave destination properties intact option does not overwrite properties in the destination model with properties from the source model (retaining changes made to the destination model while ignoring changes made to the source model).
NOTE

This update option works only with data for elements that have already been created (renaming, changing type, etc.) and contain type mapping dependencies. If new elements are added to the source, once the update occurs, copies of the new elements will be created in the destination model. If an element is deleted from the source, it will not be removed from the destination after the update.

419

Copyright 1998-2009 No Magic, Inc.

TOOLS
Resource Manager

Resource Manager
MagicDraw Resource Manager functionality allows you to manage local resources (installed with MagicDraw, downloaded) and resources available on the web. With RM (Resource Manager) you can manage different types of resources (Profiles, Plugins, Templates, Language resources, Case studies/examples, Custom diagrams, and others). RM allows:
Review Remove (delete) Import, download Update resources.

The following are benefits of the Resource Manager functionality: Benefits:


Easier to find needed resources and download them. More informative resource descriptions. The possibility to create your own resources and share them. The possibility to check resource dependency in the required table.

The Resource Manager functionality is included in all MagicDraw editions, except, Reader. To open the Resource Manager:
From the Options main menu, select the Resources command. The Resource Manager window opens.

420

Copyright 1998-2009 No Magic, Inc.

TOOLS
Resource Manager

The table below lists items of the Resource Manager window.


Element Name Name Function Different types of resources are listed in separate nodes. There are the following resources types: examples, templates, languages, and profiles. In front of each resource is a check box. Select this check box to manage this resource. If the resource is unavailable, it is impossible to select the check box in front of it (checkbox is grey). The required table rows contain information about why it is not available. ID Category Resource ID. Resource type.

421

Copyright 1998-2009 No Magic, Inc.

TOOLS
Resource Manager

State

The following states of resources are possible:


Not installed (downloaded) Will be installed after restart Installed Will be removed after restart Not downloaded removed (if resource does not exist on the web).

Ver Obtained Ver Available

The Version Obtained column indicates the version for a resources and the state: installed, not installed, and removed. The Version Available Column indicates the newest resource version on the web.
Does not exist on the web. If the resource does not exist on the

web.
Check for updates. If the resource list has not been downloaded

from the web.


Date Size Meaning of text colors Resource creation date. Size of the particular resource. One row lists the meanings of the text colors:
Green - installed resources are marked green. Blue - not downloaded resources are marked blue. If the resources

are already installed or downloaded and the newer version is available, the resources are marked blue. Black - changes will be fully applied after restarting MagicDraw.
More>>/<<Less Expands / Collapses the main Resource Manager window with additional fields. The following fields list all data of the selection in the resource list:
Name, Resource home page, Provider, Description Required table (with Name, Required, Status columns). If a

resource is installed but a newer version is available on the web, the required table shows the newest version requirements.
Check for Updates Download/Install The Check for Updates button is inactive if the resource list has already been successfully downloaded. Downloads the selected resources and installs. The Download/Install button is inactive if no resources have been selected.

422

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Remove

Button is active if at least one resource is selected with states not installed or installed. The resources of other states may not be removed from the RM list. The remove functionality is not available for required resources. The Open dialog is opened. Import the resource you need. If the resource requires payment, the Price of the particular resource is displayed in the Resource Manager window under the Price column.

Import NOTE

Spelling Checker
Spelling Checker enables you to:
Check spelling as you type. A shortcut menu provides spelling options. Right click the

word underlined in red to enter the shortcut menu. Spelling options will be displayed. Words can also be entered into a customized dictionary using Add to Dictionary (see Spell checking as you type on page 423).
Check the spelling of a whole project or of a selected part. You can list all the

spelling errors found in a project and correct them easily (see Spell checking for the whole project or the selected scope on page 427).
Set Spelling Checker options. You can set spelling checker options, such as skipping

numbers, upper case words in the Environment Options dialog box (Spell Check option) (see Setting the spell checking options on page 433).
Add a spell checking dictionaries . All "Open Office" supportive spelling languages

can be added additionally to the existing ones (see Spell checking dictionaries on page 435).

Spell checking as you type


On typing spell checker checks if typed word is correct. In case the word is incorrect it is underlined with red winding line. Right-click on underlined word invokes context menu with suggested editions and capability to add word to dictionary. Spell checking as you type is performed in the following locations in MagicDraw:

423

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

symbol names on diagram pane, for properties in the specification dialog boxes, in the documentation pane, in the Containment tree, In various location on log messages, names, typing and comment fields.

Right-click on underlined word to invoke the shortcut menu in the following MagicDraw window locations:
1. Diagram pane (see Figure 184 on page 424). 2. Containment tree (see Figure 185 on page 425). 3. Dialog boxes (see Figure 186 on page 426).

Figure 184 -- Shortcut menu of the spelling error on the diagram pane

424

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Figure 185 -- Shortcut menu of the spelling error in the Containment tree

425

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Figure 186 -- Shortcut menu of the spelling error in the dialog box

There are three ways to correct the spelling error:


1. Wrongly typed word can be changed by typing or by selecting provided suggestion

that is always correct syntactically, but not always correct semantically.


2. The Ignore command. Select the Ignore menu item and the wrongly spelled word is

treated as correct for this time, but will be discovered as wrongly spelled in the other case.

426

Copyright 1998-2009 No Magic, Inc.

7
NOTE:

TOOLS
Spelling Checker

3. The Add to dictionary command. Select the Add to dictionary menu item in pop-up

menu. By pressing this item the wrongly spelled word will be added to custom dictionary. Next time it will not be treated as wrongly typed.
Wrongly spelled words are underlined only in edit mode of particular component. If edit mode has been left, underline disappears and vice versa.

Spell checking for the whole project or the selected scope


Checking spelling for the whole project
1. From the Tools main menu, select the Check Spelling command or press the Check

Spelling

button in the main toolbar. The Check Spelling dialog box opens.

2. Click the Check button. The Validation Results dialog box opens.

Figure 187 -- The Check Spelling dialog box

427

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Figure 188 -- The Validation Results dialog box

Checking spelling for the selected scope


1. From the Tools main menu, select the Check Spelling command. The Check Spell-

ing dialog box opens.


2. In the Check Spelling For combo box select the Validation Selection option. 3. Click the "" button. The Select Elements dialog box opens. Select the scope to

check spelling.
4. Click OK. 5. In the Check Spelling dialog box, click Check. The Validation Results dialog box

opens.

Figure 189 -- The Check Spelling dialog box, the Check Spelling For option

428

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Figure 190 -- The Select Elements dialog box

Analyzing the Check Spelling (the Validation Results window)


The Validation Results window provides with all spelling errors. You can choose either to correct particular error or to ignore it. For more information about correcting the spell checking error, Solving the spell checking errors on page 430. Spelling error in the Validation Results window has description of construct as follows:
Column title Description

Element Error Message

Element with contains spelling error. Spelling error can be found in the element name, or inner properties, such as documentation, the To Do property and others. <Element property name>: <Spelling error found>

429

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Figure 191 -- The Validation Results window

For more information about validation functionality, see Validation on page 523. Here the Validation Results window is described in more details.

Solving the spell checking errors


To solve the error:
1. In the Validation Results window select the error and with right click invoke its short-

cut menu.
2. In the Containment Tree select the element with error (marked with red circle and

white cross inside) and with right-click invoke its shortcut menu.
3. On the diagram pane, select the element with error (highlighted with red border) and

with right-click invoke its shortcut menu. In the shortcut menu of element with error, select the Correct command to invoke the Spell Checker dialog box. In the Spell Checker dialog box the Element property shows the name of the element. The Property shows the name of the element's property that has spelling error in its value. In the Value property all wrongly spelled words are underlined. Press the Next button to go to the next spelling error found during validation. To close spelling dialog and save changes press OK. To close dialog without saving changes press Cancel.

430

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Figure 192 -- Solving the spell checking errors in the Validation Results window

431

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Figure 193 -- Solving spell checking errors in the Containment tree

432

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Figure 194 -- Solving spell checking errors in the diagram pane

Figure 195 -- The Spell Checker dialog box

Setting the spell checking options


1. From the Options main menu, select Environment. The Environment Options dia-

log box opens.


2. Select the Spelling branch. Define the spelling options.

433

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Figure 196 -- The Environment Options dialog box, the Spelling branch

Spell checking options


See the spelling options in the table below.
Property name Function

434

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

Check Spelling as you type Check Tagged Values

Underlines wrongly spelled words and provide the suggestions list of possible corrections in context menu. For more information about spell check on type, see Spell checking as you type on page 423. Checks all tagged values that is Type of string. Select language for spelling. All "Open Office" supportive spelling languages can be added additionally to the existing ones. For more information about spelling dictionaries, see Spell checking dictionaries on page 435. If true, words will differ in meaning based on differing use of uppercase and lowercase letters.

Dictionary Case Sensitive

If true, compound words or phrases in which the words are joined without spaces and are capitalized within the comUse camel case words pound-as in BackColor, will be spelled as separate words.
Ignore upper case words Skip numbers

If true, words with uppercase words only are not to be spell checked. If true, numbers are not to be spell checked.

Spell checking dictionaries


All "Open office" supportive spelling languages are available. To import spelling dictionaries:
1. Click the Add button in the Environment Options dialog box > the Spelling branch

> the Add Spelling Dictionaries group. The Dictionary dialog box opens.
2. Type the name of a new spelling dictionary in the Name text box. 3. Click the "" button and select the OpenOffice zip file location.

435

Copyright 1998-2009 No Magic, Inc.

TOOLS
Spelling Checker

4. Type the description of a new spelling dictionary in the Description text box.

Figure 197 -- The Dictionary dialog box

NOTE

More dictionaries can be found on: http://wiki.services.openoffice.org/ wiki/Dictionaries

Defining properties of the customized element to be spell checked


DSL customization classes and their properties can be checked either. You can choose what properties of the customized element (Class with <<Customization>> stereotype) you want to be spelling checked. Defining customization class tag "checkSpelling" value can do it. "checkSpelling" tag can be found in properties tag group. By creating value for this tag you can choose String properties to check spelling for. By default there are no properties marked as checkable. For more information about DSL, see UML Profiling and DSL UserGuide.pdf.

436

Copyright 1998-2009 No Magic, Inc.

TOOLS
Import Data to MagicDraw

Import Data to MagicDraw


Import data from Rational Software Architect/Modeler using MagicDraw RSXConverter
MagicDraw RSXConverter provides a seamless way to convert IBM Rational Software Architect (RSA) or IBM Rational Software Modeler (RSM) file format (*.emx, epx and efx) to MagicDrawsupported file format (*.mdxml). For more information about MagicDraw RSXConverter see:
MagicDraw RSXConverter

Import data from Rational Rose using MagicDraw RConverter


MagicDraw RConverter provides a seamless way to convert Rational Rose Model file format (*.mdl) to MagicDraw-supported file format (*.xmi). For more information about MagicDraw RConverter, see:
MagicDraw RConverter plugin

Import data from other tools


MagicDraw can import most of the model data from the latest Enterprise Architect

version. Enterprise Architect does not export 100% standard UML 2.1.1 XMI and this causes some data loss on import. Diagramming information is not imported.
XDE model import is not available. Rational Software Architect/Modeler 6.x model files (not diagrams) can be imported

with EMF UML2 1.x import.


Rational Software Architect/Modeler 7.x model files (not diagrams) can be imported

with MagicDraw RSXConverter (see Import data from Rational Software Architect/ Modeler using MagicDraw RSXConverter on page 437) or EMF UML2 2.x import could be used.

437

Copyright 1998-2009 No Magic, Inc.

TOOLS
Import Data to MagicDraw

Rational Rose model files can be imported with MagicDraw RConverter (see Import

data from Rational Rose using MagicDraw RConverter on page 437).


Together 2006 model files (not diagrams) can be imported with EMF UML2 1.x

import.
Visio model files can be imported using a XMI exporter. Most of the static structure

elements (not diagrams) can be imported. XMI plugin for Visio can be found:
Executable file of the XMI plugin XMIExport.exe

Visio versions Microsoft Visio 2002 Professional, Microsoft Visual Studio .NET Enterprise Architect (Visio for Enterprise Architects)

Link http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=BE6D20EF36BA-4ABF-A26F-91434C7E7B7

XMIExprt.exe

Microsoft Visio 2003

http://www.microsoft.com/ downloads/details.aspx?familyid=3DD3F3BE-656D-4830A868-D0044406F57D&displaylang=en#Overview

438

Copyright 1998-2009 No Magic, Inc.

MODEL ANALYSIS

MagicDraw provides the following analysis capabilities to help you analyze your model:
"Model Visualizer": "Class Diagram Wizard" helps to create and customize new class

diagrams.
"Package Overview Diagram Wizard" generates the package

dependency diagram for packages in your project.


"Package Dependency Wizard"- generates diagrams containing packages

(created within a project) and shows the relationships between them.


"Hierarchy Diagram Wizard" and "Realization Diagram Wizard" prepares

diagrams and report documents of the relationships between classes in the UML model.
"Activity Decomposition Hierarchy Wizard" - converts activity into class

and/or SysML Block Definition Diagram.


"Content Diagram Wizard" - generates content of diagrams that are used

in the project.
"Sequence Diagram from Java Source Wizard" - creates a sequence

diagram of Java method implementation.


"Displaying related elements" - displays paths among shapes that have already

been created in the model data, use the quick and simple Display related elements functionality.
"Dependencies analysis" - the MagicDraw Usages and Dependencies feature

enables you to track and view element dependencies in UML models, explore how model elements are used by other elements, and understand the relationships between used and dependent elements.
"Model Differencing" - compares two MagicDraw UML local projects or teamwork

project versions, as well as diagrams.


"Metrics" - allows measuring a project by different viewpoints. "Dependency Matrix" - is a method of visualizing and representing dependency

criteria.

439

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

"Validation" - a facility for evaluating completeness and correctness of the models

created by the user.


"Active Validation" - instantly checks model for correctness and completenes,

displays errors in the model and suggests solutions.


"Usage in Diagrams" - validates if the symbol owner on the diagram matches the

actual element owner in the model.


"Usage in Diagrams" - Displaying the list of diagrams in which symbol of current

element is represented.

Model Visualizer
NOTE This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

MagicDraw contains tools that help to create elements from existing data and analyze the relationships between elements created in the UML model. It is also possible to analyze the inheritance and dependency relationships between classes. All model visualizing and analyzing tools are presented in MagicDraw as Wizards with several steps that should be followed in order to accomplish the desired operation. All Wizards have several common buttons:
Add add selected model elements from the All list to the Selected list. Add All add all elements to the Selected list that are located in the same hierarchy

level as the selected element.


Add Recursively add all elements in the selected packages and all elements from

nested packages to the Selected list.


Remove remove the selected element from the Selected list. Remove All remove all selected elements. < Back return to the previous dialog box. Next > proceed to the next step.

440

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer
Finish finish the configuration. All other options will be set by default. The Wizard

exits and results are displayed.


Cancel cancel the wizard. Reset To Defaults - if changes were made to the element properties, values will be

set to default.

Class Diagram Wizard


NOTE This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

The Class Diagram Wizard helps you create a new class diagram when all classes and their relationships are already created and specified. You can select which classes, packages, and relationships will be included in a new class diagram and the details of the class representation to be configured (attributes, operations, accessibility). The Class Diagram Wizard frees you from creating the class diagram manually. The Class Diagram Wizard guides you through several steps and collects information along the way. It will automatically create a new class diagram and all the necessary elements. To start the Class Diagram Wizard
1. From the Analyze menu, select Model Visualizer. The Model Visualizer dialog box

opens.
2. From the wizards list, select the Class Diagram Wizard.

441

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

3. Click Start. The Class Diagram Wizard opens.

Figure 198 -- Class Diagram Wizard. Diagram name

Type the name of the new diagram in the Type Class Diagram name text box or leave the default name. Select the package that will contain the created diagram. The hierarchy of UML model packages is displayed in the Select package for diagram list window. Select the package from the data tree that will be the parent for the newly created diagram or create a new package by clicking the New button. When you select the Specify name and package option, the following functions are available:
Create - create a new package.

442

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer
Clone - copy an existing package to a new one.

Figure 199 -- Class Diagram Wizard. Select Elements


All list contains all model elements.

443

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

Selected list contains the elements that are added to the class diagram.

Figure 200 -- Class Diagram Wizard. Select Relationships

Select relationships to include in the class diagram:


Generalization relationship between a general element 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.

444

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer
Dependency usage relationship between UML model elements.

Figure 201 -- Class Diagram Wizard. Specify Symbols Properties

Select options for representing elements in the class diagram.


NOTE

If the Suppress Attributes and the Suppress Operations check boxes are selected, the class is displayed only as a rectangle with the class name in it.

445

Copyright 1998-2009 No Magic, Inc.

8
NOTE

MOD EL ANALYSIS
Model Visualizer

Package Dependency Wizard


This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

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 selected. The Package Dependency Diagram Wizard collects all the information needed to both analyze dependencies and generate a new diagram. To start the Package Dependency Diagram Wizard
1. From the Analyze menu, select Model Visualizer. The Model Visualizer dialog box

opens.
2. From the wizards list, select the Package Dependency Diagram Wizard.

446

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

3. Click Start. The Package Dependency Diagram Wizard opens.

Figure 202 -- Package Dependency Diagram Wizard. Diagram name

Type a name for the newly created diagram in the Type Class Diagram name text box. Select the package that will contain the created diagram. The hierarchy of UML model packages is displayed in the Select package for diagram list window. Select the package from the data tree that

447

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

will be the parent for the newly created diagram or create a new package by clicking the Create button.

Figure 203 -- Package Dependency Diagram Wizard. Select Package.


All list contains all packages.

448

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer
Selected list contains all packages that are added to the diagram.

Figure 204 -- Package Dependency Diagram Wizard. Specify Symbols Properties

Select options for representing elements in the class diagram.

Displaying package dependencies


If a package has inner elements used by or dependent on other package elements, the Package Dependencies Wizard will analyze dependencies and create virtual relations between dependent packages.

449

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

For example:

The Virtual dependencies package containing dependency links is created after finishing the wizard. If there is more than one dependency between the package inner elements, then the tagged value number {n=...} on the virtual dependency will be changed according to the number of dependencies.

Package Overview Diagram Wizard


NOTE This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

The Package Overview Diagram Wizard allows the creation of a diagram for every package from the selected scope (reversed packages). The created diagram displays the content of the packages inner packages with inner elements connected with available relations.

450

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

To start the Package Overview Diagram Wizard


Select the Package Overview Diagram Wizard from the Diagrams menu, Diagram

Wizards submenu.
Open the package shortcut menu, select Tools and then Package Overview

Diagram Wizard.
From the Analyze menu, select the Model Visualizer command. The Model

Visualizer dialog box opens. In the wizards list, select the Package Overview Diagram Wizard. Click the Start button.

Figure 205 -- Package Dependency Diagram Wizard. Diagram name

Type a name for the newly created diagram in the Type Class Diagram name text box.

451

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

The Add diagrams into their own package option button - adds diagrams in the same package they are created. The Add all diagrams into selected package - while creating new package overview diagrams, adds diagrams in the selected package. Select the package that will contain the created diagram. The hierarchy of UML model packages is displayed in the Select package for diagram list window. Select the package that will be the parent for the newly created diagram from the Data tree or create a new package by clicking the New button.

Figure 206 -- Package Overview Diagram Wizard. Select Package.

Select the packages, which will be represented in the new diagram. For every selection, a package diagram will be created.

452

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

If the selected package is read-only and the package for the diagrams is not specified, a warning will be displayed when the Next button is pressed.

Figure 207 -- Package Overview Diagram Wizard. Define Advanced Options

Set the advanced properties for elements to be represented in the diagrams. If you want to see the classifiers structure in the created class diagram, then select the create dependencies between Classifiers check box in the Analysis options group. If create dependencies between Packages check box is selected, then only the package content class diagram will be created. Analyzes are performed of all inner elements, recursively by all criteria. The Show inner packages in the package shape check box - displays one level of inner packages in every package shape, connected with dependencies.

453

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

The Assign hyperlinks to created diagrams check box - adds an active hyperlink to every package, referenced to the inner diagram of this package.

Figure 208 -- Package Overview Diagram Wizard. Select Relationships

Select the relationships you wish to include in the class diagram:


Generalization relationship between a general element 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.

454

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer
Dependency usage relationship between UML model elements.

Figure 209 -- Package Overview Diagram Wizard. Specify symbols properties

Select options for representing elements in the diagram.

Hierarchy Diagram Wizard


NOTE This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

The Hierarchy Diagram Wizard collects the largest hierarchies and allows every of them to be displayed as separate diagrams or all in one diagram.

455

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

To start the Hierarchy Diagram Wizard


From the Diagrams main menu, select the Diagram Wizards command and then

Hierarchy Diagram Wizard.


From the Analyze menu, select the Model Visualizer command. The Model

Visualizer dialog box opens. From the wizards list, select the Hierarchy Diagram Wizard.
From the model element shortcut menu, select Tools and then Hierarchy Diagram

Wizard.

Figure 210 -- Hierarchy Diagram Wizard. Specify Name and Package

Type a name for the new diagram in the Type diagram name field. Select the package that will contain the created diagram. The hierarchy of UML model packages is displayed in the Select package for diagram list window. Select the package that will be the parent

456

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

for the newly created diagram from the Data tree or create a new package by clicking the Create button.

Figure 211 -- Hierarchy Diagram Wizard. Select Scope

457

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

Select packages from the All list to the Selected list.

Figure 212 -- Hierarchy Diagram Wizard. Select Hierarchies.

The Add all hierarchies into one diagram check box creates only one diagram for all selected hierarchies. This option is enabled only if the selected hierarchies can be added into one diagram (the same diagram type). All available hierarchies are listed in the Parent Element column. In the Children Count column, the number of model elements is presented. The Show outside parent check box shows hierarchies, when derived packages are in the scope, but specializations is from outside the scope.

458

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

The Show outside children check box counts outside derived elements from the displayed hierarchies. Otherwise the hierarchy will not be fully displayed and the diagram may be not valid.

Figure 213 -- Hierarchy Diagram Wizard. Specify Symbols Properties

Select options for representing elements in the diagram.

Realization Diagram Wizard


NOTE This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

The Realization Diagram Wizard shows a table of the largest element groups that realize some interface.

459

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

To start the Realization Diagram Wizard


From the Diagrams main menu, select the Diagram Wizards command and then

Realization Diagram Wizard .


From the Analyze menu, select the Model Visualizer command. The Model

Visualizer dialog box opens. From the wizards list, select the Realization Diagram Wizard.
From the model element shortcut menu, select Tools and then Realization Diagram

Wizard.

Figure 214 -- Realization Diagram Wizard. Specify Name and Package

Type a name for the new diagram in the Type diagram name field. Select the package that will contain the created diagram. The hierarchy of UML model packages is displayed in the Select package for diagram list window. Select the package that will be the parent

460

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

for the newly created diagram from the Data tree or create a new package by clicking the Create button.

Figure 215 -- Realization Diagram Wizard. Select Scope

461

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

Select packages from the All list and add them to the Selected list to search for hierarchy elements.

Figure 216 -- Realziation Diagram Wizard. Select Implementations

The Add all implementations into one diagram check box creates only one diagram for all selected realizations. This option is enabled only if the selected realizations can be added into one diagram (the same diagram type). All available implementations are listed in the Specialization Element column. In the Implementations Count column, the number of model elements is presented. The Show outside specializations check box show realizations, when derived interfaces are in the scope, but specializations is from outside the scope.

462

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

The Show outside implementations check box count outside derived elements from displayed realizations. Otherwise realization will not be fully displayed and the diagram cannot be valid.

Figure 217 -- Realization Diagram Wizard. Specify Symbols Properties

Select options for representing elements in the diagram.

Activity Decomposition Hierarchy Wizard


NOTE This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

Activity Decomposition Hierarchy Wizard allows converting activity into class and SysML Block Definition Diagram. This gives the capability to represent, analyze, and document activity hierarchies in the structure diagrams.

463

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

Diagram generation rules:


Behaviors will be connected with contained object node types by compositions. The

name of the object node that corresponds to the composition will be used as the end name of the association on the end towards the object node type.
Pins are not included in the calculation. CallBehaviorActions that are not directly in the Activity, but are in the Structured

Activity Nodes contained by the Activity, for example, are also included in the calculation.
Activity will be connected by composition association with other behaviors that are

called by CallBehaviorActions . The part end name must be the same as the name of a CallBehaviorAction in the composing activity. If the action has no name, then the end name is as same as that of the invoked activity.
Hierarchical layout - Top to Bottom is used to arrange the generated diagram. If CallBehaviorAction calls the same activity, the composition to self will be displayed

on the generated diagram. Recursive structure analysis will be stopped after reaching the same behavior, which has already been analyzed. This requirement prevents an endless cycle.
In such a case, the composition will be created in a previously analyzed

activity in the diagram. The new behavior symbol will not be created.
There will be as many compositions from one activity into another as

different CallBehaviorActions call this activity. To start the Activity Decomposition Hierarchy Wizard
From the Diagrams main menu, select the Diagram Wizards command and then

Activity Decomposition Hierarchy Wizard.

464

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer
From the Analyze menu, select the Model Visualizer command. The Model

Visualizer dialog box opens. From the wizards list, select the Activity Decomposition Hierarchy Wizard.

Figure 218 -- Activity Decomposition Hierarchy Wizard. Specify name and package tab

In the Specify name and package tab, type the diagram name, select the diagram type the activity will be converted and select or create a package that will contain the desired activity diagram.
NOTE

If you are using the SysML plugin, SysML Block Definition and Class diagrams are available as diagram types. For other domains this list depends on a plug-in of those domains.

465

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

Figure 219 -- Activity Decomposition Hierarchy Wizard. Select structure tab

In the Select structure tab, select Activities structures that will be decomposed. To add all activity structures into one diagram, select Add all structures into one diagram check box. Select check boxes of the desired activity structures. The Children Count column shows the number of included behaviors (also owned object nodes if the Add contained Object Nodes check box is selected). The number also depends on the option Search recursively.

466

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer
The Add contained Object Nodes check box is selected by default. If selected,

types of object nodes are displayed and connected to the composition with activities containing object nodes.
The Search recursively check box is selected by default: If not selected, the search will be conducted in only one level of the

selected activity.
If selected, the search will be conducted in the selected activity and those

activities that are invoked by CallBehaviorActions that are in the selected activity. This search is recursive.

Figure 220 -- Activity Decomposition Hierarchy Wizard. Specify symbols properties tab

467

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

Specify properties for symbols for model elements.

Content Diagram Wizard


NOTE This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

The Content Diagram Wizard generates content of all diagrams that are usable in the project. To start the Content Diagram Wizard
From the Diagrams main menu, select the Diagram Wizards command and then

Content Diagram Wizard.

468

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer
From the Analyze menu, select the Model Visualizer command. The Model

Visualizer dialog box opens. From the wizards list, select the Content Diagram Wizard.

Figure 221 -- Content Diagram Wizard. Specify Name and Package

Type a name for the new diagram in the Type Content Diagram name text box. Select the package that will contain the created diagram. The hierarchy of UML model packages is displayed in the Select package for diagram list window. Select the package that will be the parent

469

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

for the newly created diagram from the Data tree or create a new package by clicking the Create button.

Figure 222 -- Content Diagram Wizard. Select Diagrams Types.

470

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

Select the types of diagrams to be included in the content diagram.

Figure 223 -- Content Diagram Wizard. Select diagrams.

Sequence Diagram from Java Source Wizard


NOTE This functionality is available in Enterprise edition only.

The Sequence Diagram from Java Source Wizard enables the visualization of Java method implementation with UML Sequence diagrams. Because UML Sequence diagrams cannot yet show Java code with 100% accuracy, MagicDraw provides a mechanism to generate a diagram that reflects essential Java method content. To start the Sequence Diagram from Java Source Wizard
1. From the Analyze menu, select Model Visualizer. The Model Visualizer dialog box

opens. 2. From the wizards list, select the Sequence Diagram from Java Source Wizard.

471

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

3. Click Start. The Sequence Diagram from Java Source Wizard opens. From the Diagrams menu, select Diagram Wizards, then Sequence Diagram from

Java Source Wizard.


Create a class with operation. Create a new code engineering Java set. Add a class

to this set. In the Browser, Code engineering sets tree, select the RTMethod node. From its shortcut menu, select Reverse Implementation. The Sequence Diagram from Java Source Wizard opens (method is selected in the wizard).
Create a class with operation. Select the operation in the Browser. From the

operation shortcut menu, select the Reverse Implementation command. The Sequence Diagram from Java Source Wizard opens (method is selected in the wizard).

472

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer
In the Sequence diagram, create call message. Select it on the diagram pane. From

the message shortcut menu, select Reverse Implementation. The Sequence Diagram from Java Source Wizard opens (method is selected in the wizard).

Figure 224 -- Sequence Diagram from Java Source Wizard. Specify Name and Package

In the Type diagram name text box, type a name for the new sequence diagram. By default, the name of the class and method is assigned to the sequence diagram.

473

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

Select the package that will contain the created diagram. The hierarchy of UML model packages is displayed in the Select package for diagram list window. From the Data tree, select the package that will be the parent for the newly created diagram, or create a new package by clicking New.

Figure 225 -- Sequence Diagram from Java Source Wizard. Select Operations.

Select the operation, which will be displayed in the sequence diagram. When you start the wizard from either the operation shortcut menu or the Sequence diagram, both the operation and Java source file are selected by default.

474

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

In the Select Java source file field, specify the Java source file (if this file cannot be found automatically).

Figure 226 -- Sequence Diagram from Java Source Wizard. Select Classes for Diagram.

Select Classes for Diagram includes the following check boxes:


Analyze and split long expressions in diagram - if the expression contains calls and cannot be displayed as a call message, every call is displayed as a separate call message with temporary variable initialization. In the final expression message, these calls are replaced with appropriate temporary variable names. Create return message - displays a return message for every call message.

475

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Visualizer

Wrap message text - specifies the maximum message text length in pixels for wrapping longer messages.

Using Specify Symbol Properties, you can select options for the elements to be represented in your sequence diagram.
NOTE:

You can extend the created sequence diagram by method: Select the method (message), which you want to be displayed with additional details (this can include referenced classes and other defining methods). Then, from the message shortcut menu, select Reverse Implementation. The Sequence Diagram from Java Source Wizard opens.

476

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Displaying related elements

Displaying related elements


To display elements related to the selected element
1. From the Edit menu, Symbol submenu or from the shape shortcut menu, select

Related Elements and then select Display Related Elements. 2. The Display Related Elements dialog box opens.

Figure 12 -- Display Related Elements dialog box

477

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Displaying related elements

3. Select the desired options for displaying the related elements:

Option name Expand Relations

Function Select what kind of elements should be displayed on the diagram:


Clients Suppliers Both

Scope

Select in what scope the elements related to the selected model element will be found:
Whole Project Package

Depth

Specify the range for searching for selected relationships:


Indefinite. All possible relationships are involved. Definite. Specify the level of hierarchy for the

relationships involved. Relations Always create new symbols Select the relationships you want to display on the diagram. When this check box is selected, a new symbol is created even if a related element already has a symbol in the diagram.

To display paths among shapes that already exist in the model data
From the shape shortcut menu, select Related Elements and then Display Paths. Select a symbol and from the Edit menu, select Symbol, then Related Elements, and then select Display Paths.

478

Copyright 1998-2009 No Magic, Inc.

8
NOTE

MOD EL ANALYSIS
Dependencies analysis

Dependencies analysis
This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

The MagicDraw Usages and Dependencies feature enables you to track and view element dependencies in UML models, explore how model elements are used by other elements, and understand the relationships between used and dependent elements. It is also useful for analyzing associations between elements or searching for diagrams where these elements are represented. To search for usages / dependent elements:
1. Select model element in the Browser or in the Diagram pane. 2. From the element shortcut menu, select the Related Elements command and then

select either the Used By or Depends On command. The Usages/Dependencies Search Options dialog box opens. 3. In the Usages/Dependencies Search Options dialog box, specify options and click OK. Depending on which command you selected on the shortcut menu, either the Element used by or depends on window opens.

Usages Functionality
The Elements used by window provides a list of all the elements that reference the current element. For example: If element1 references element2, then element1 uses element2. Conversely, element2 is also used by element1. In the Attribute Specification dialog box, add class2 in the Type box. This means that class2 is used by that attribute. Containing other elements is not considered usage. For example, when a package contains an inner element class, this does not mean that the package uses the class. The class is categorized as only a container of the package.

Dependent Elements functionality


Dependency functionality gives the opposite results of those provided by the Elements used by window. The Element depends on window displays a list of the elements that depend on the current element.

479

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependencies analysis

For example: If element1 contains a reference to element2, then element1 depends on element2.

Usages/Dependencies Search Options dialog box


Use the Usages/Dependencies Search Options to specify various options (for example, search and visualization options). The Usages/Dependencies Search Options dialog box covers the spectrum of usages and dependent element functionality. This means that if you clear or select any check boxes in the Usages/ Dependencies Search Options dialog box, the next time you search for dependencies, the values for these check boxes remain the same. To open the Usages/Dependencies Search Options dialog box:
1. Select a model element in the Browser tree or on the diagram pane. 2. Select Related Elements from the shortcut menu and then select either Used By or

Depends On command.

480

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependencies analysis

3. The Usages/Dependencies Search Options dialog box opens.

Figure 227 -- Find Usages/Dependent Elements Options

Element Name Load diagrams and autoloadable modules

Function If the model has unloaded diagrams or modules, select this check box to load all elements to be included in performing the usages/dependencies search.

481

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependencies analysis

Element Name Search recursively

Function Usages/dependencies of inner elements (beneath the level of the current element) are listed in the search results list. When the Seatch recursively check box is cleared (default value), the usages/dependencies table lists those elements that are using the current element. For example: element1 contains element2. When you search non-recursively, those elements that use element1 are listed. When you search recursively, elements using element1 are listed, while the other branch lists those elements that use element2.

Ignore inter-relations

Only usages/dependencies outside the current element (above the level of current element and in the same level) are listed. You may use this option when you export the package as modules. You may analyze the dependencies of a package inner element to its outer elements (note that you cannot export a package that contains inner elements with dependencies to the outer elements according to this package). For example: create package p1 and package p2. Connect these packages with a dependency relationship. In the Browser, drag and drop this dependency to p1. In the Usages/Dependencies Search Options dialog box, select the Ignore inter-relations check box. Search for the p1 dependency. The dependency to the dependency relationship will not be found because this element is a child of p1.

Level of details

Select predefined types (Classifiers, Packages) from the combo box or click the ... button, which opens Select Element/Symbol Type dialog box and allows the selection of custom types. Only elements of these types will be displayed in the search results. For example, Package selected as "level of details". Class B depends on Class A (owned in package p2), because it uses A as type of one operation parameter. In this case package p2 will be displayed as a result, class A will be added under p2 node.

Treat relationships as search result

Search results provide a complete list of used or dependent relationships together with other results.

482

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependencies analysis

Element Name Treat model elements at the end of relationships as search results Show results in the new tab Show this dialog before searching

Function Relationships are skipped and only usages/dependent elements between the model elements connected with these relationships are displayed. If you want new Elements Using/Dependencies windows displayed for every new search, select Show results in the new tab check box. If the Show this dialog before searching check box is selected, the Find Usages/Dependent Elements Options dialog box opens when you search for usages or dependencies. If the Show this dialog before searching check box is cleared, you may access the Find Usages/Dependent Elements Options dialog box from the Elements Using/Dependencies window by pressing the Show Usages/Dependent Elements Options button.

Elements Using/Dependencies windows


The Elements Using/Dependencies window lists the results of the usages/dependencies. In the Elements Using/Dependencies window you can analyze results, search for an element location (in a diagram, for example, or in a browser), and filter results. Because the Usages/Dependent Elements Results window is not synchronized with the model, any changes made to the model elements will not show in the results window until you click Refresh. To open the Elements Using / Dependencies windows:
1. Select a model element in the Browser tree or on the diagram pane. 2. Select Related Elements from the shortcut menu and then select either Find

Usages or Find Dependent Elements.


3. The Find Usages/Dependent Elements dialog box opens. Click OK to open the Ele-

ments Using/Dependencies window.

483

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependencies analysis

Figure 228 -- Elements using/ Dependencies window

The following table presents more information about the Elements Using/Dependencies window. Item Name Expand Collapse Select in Containment Tree Function Expands records listed in groups. Click the plus sign next to the group name to display the contents. Collapses records listed in groups. In the usages/dependencies table, select the record. Click the Select in Containment Tree button. The Element is selected in the Browser, and the Containment tree, and the symbol of this element is selected in the diagram pane. Click the Select in Containment Tree button to open any closed and previously loaded diagrams.You can also select the element in the Containment Tree by double clicking it. NOTE: The Select in Containment Tree button is not available for multiple element selections. Move to Search Results In the usages/dependencies table, select the record. Click the Move to Search Results button. In the usages/dependencies table results are moved to the Browser, Search Results tree. In the Search Results tree, you will see all the results in one list and organized in two groups: From diagram and From model.

484

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependencies analysis

Open all diagrams that contain current Usages/ Dependencies

Diagrams, which are referenced in the usages/dependencies table, are opened. In the open diagrams, the view is focused on used/dependent elements. NOTE: The Open all diagrams that contain current Usages/ Dependencies button is inactive when there are no elements that are used in diagrams. The full path is displayed next to the element name. NOTE: For a symbol this button is not valid. The usages/dependencies table should be refreshed after:
Elements or symbols are deleted. New dependencies/usages are created for the particular model

Show/hide the Full Path Names Refresh

element. Show Usages/ Dependencies Search Options Filter The Find Usages/Dependent Elements Options dialog box opens. Filter boxes in the Elements used by and depends on windows are placed above the column, which will be filtered. In the used by window, you can filter by element type or usage type. In the depends on window, you can filter according to element type and dependency type. When you expand the Filter box, you will see items listed in the usages/dependencies columns. NOTE: In the Element Type Filter box within the used by window, combo box, additional Show All but Symbols filtering options is added.

485

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Differencing

Model Differencing
View Online Demo NOTE Visual Model Differencing This functionality is available in Architect, and Enterprise editions only.

The use of model differencing functionality allows you to compare two MagicDraw UML local projects or teamwork project versions, as well as diagrams. Model elements are compared by the element ID. You can compare:
current project with locally saved project. current project with open project. two teamwork project versions. current project with teamwork project version. local project and teamwork project version. diagrams.

Models comparison
First of all you have to select the projects you want to compare. Model comparison will be displayed as two model trees. Differences between the model versions are marked using colors and highlighting. When comparing two models the following data changes will be reflected:
New model elements. Deleted model elements. Model elements with modified data. Model elements that changed location. Inner elements changes.

486

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Differencing

To select the projects you want to compare


1. Open a project you want to compare and from the Analyze menu, select Compare

Projects.
2. The Compare Projects dialog box opens.

Figure 229 -- Select Projects to Compare dialog box 3. From the Active Project combo box, select a project you want to compare with

another project. The list contains names of all open projects in MagicDraw.
4. From the Compare With combo box, select a project with which you want to compare

the first project. The following options are available: open project names are listed, except the project, which is selected in the Active Project combo box.
Local Project. Click the "" button and select a project version you want

to compare the current project with.


Teamwork Project. Click the ... button and from the Open Teamwork

Project dialog box, select a project and its version you want to compare with.
<current project>Disk version. By selecting this option you will be able to

compare currently changed project version with the unchanged project version on the disc without current changes. By default the first opened project should be selected. If there are no more projects open, Local Project is selected as the value.

Understanding model differences


All model version differences are displayed in the Difference Viewer dialog box.

487

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Differencing

488

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Differencing

Figure 230 -- Difference Viewer dialog box

In the Difference Viewer dialog box two compared projects are displayed. The number of differences is displayed at the bottom of the dialog box. The number of differences number includes inserted, deleted, and modified elements. The number does not include elements with changes to inner elements. Differences number is displayed in following order: To mark changes in the model elements several colors are used:
Elements that do not exist in the other model (inserted elements). Element is

displayed only in the right-hand tree. New element is highlighted in light green.
Elements that exist in the other model, but do not exist in current model (deleted

elements). Elements are always displayed in the left-hand tree. The deleted element is highlighted in grey.
Elements with modified element data (modified elements). The modified element is

highlighted as changed in both trees. The modified element is highlighted in light blue.
Elements that changed location (parent has changed). Element is marked as a

modified element. Empty nodes are displayed in the opposite tree where the element does not exist. On the moved element and on its former position, a button is displayed. Pressing the button on the former position, selects the place where the element has moved to. Pressing the button on the moved element position, selects the former element place. Also, you can perform these operations using the shortcut menu commands Go to former position or Go to moved element.
Elements that have inner elements that changed. The element is marked in both

trees and is highlighted in light grey dashes. An element with modified element data and changed inner elements is marked as modified and as element with changed inner elements. Element is marked as modified when:
Element specification properties have changed. Element specification

properties include all properties, which are not displayed in the Browser as separate elements. Model element specification properties are treated as changed only if the element property can be changed from the element specification. If an element specification has changed because of changes made to other elements, the element should not be treated as changed. Example: typed values in the tagged values specification, attribute links in an object and instance specification, etc.
Element parent has changed. Path is drawn from/to element.

489

Copyright 1998-2009 No Magic, Inc.

8
Button

MOD EL ANALYSIS
Model Differencing

Buttons available in the Difference Viewer dialog box:


Function

Both trees are expanded.


Expand All

Both trees are collapsed.


Collapse All

Select the difference listed prior to the current one.


Go to Previous Difference

Select the difference listed next from the current one.


Go to Next Difference

The Filter dialog box opens. Show/hide the elements you want to analyze.
Filter

Relations are displayed in the elements specifications. A relation added to the element means that the element is marked as modified.
Include Relation Ends Display: All - Shows all elements of the projects. All Differences - Shows only differences made between the projects. Deleted Elements - Shows only elements that were deleted from the projects. Inserted Elements - Shows only elements that were inserted in the projects. Modified Elements - Shows only elements that were modified.

The Find dialog box opens. Search for elements within the corresponding project.
Find Next Element More>> <<Less

More/Less button shows/hides the element properties table. By default, the properties table is hidden.

490

Copyright 1998-2009 No Magic, Inc.

8
Button

MOD EL ANALYSIS
Model Differencing

Function

Export Differences

Creates .html or .txt differences report. In the Save Difference Report As dialog box, select the directory where you want to save this report. NOTE: *.html format is suitable for viewing the difference report. If you want to copy this report to another program, use of the *.txt format is recommended.

The first column of the Property window contains the same properties as the Quick Properties tab in the Browser. The second column title is the left-hand project name (with path) for local projects, and teamwork project name and version number for teamwork projects. The third column title is the righthand project name (with path) for local projects, and teamwork project name and version number for teamwork projects. Modified properties are marked with the same color as in the model element tree.

Diagrams Comparison
To compare diagrams
1. In the Difference Viewer dialog box, select the diagram you want to compare and

click the Compare Diagrams button.

491

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Differencing

2. The Diagrams Difference Viewer dialog box opens, which displays both diagrams

with changes made in them.

Figure 231 -- Diagram Difference Viewer dialog box

Diagrams Difference Viewer displays two diagrams:


Current (or first opened) project diagram is displayed at the right-hand side. Diagram that is compared with is displayed at the left-hand side.

492

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Model Differencing

Symbol changes that are reflected in the diagram:


Modified symbol properties New symbol creation Symbol deletion Symbol bound changes (resize, bound changes because of element properties

changes) All changes are highlighted in light blue dashes. Buttons available in the Diagrams Difference Viewer dialog box:
Button Function

If pressed, zooming affects both diagrams: zooming one diagram causes zooming of the other diagram.
Synchronize Zooming

If pressed, scrolling one diagram causes scrolling of the other diagram.


Synchronize Scrolling

If pressed, places where diagram has changed are marked on both diagrams.
Mark Changes

Prints the corresponding diagram together with marked changes.


Print Diagram

Zooms the corresponding diagram(s) to the original size.


Zoom 1:1

Zooms the corresponding diagram(s) to the size that fits the window.
Fit in Window

493

Copyright 1998-2009 No Magic, Inc.

8
Button

MOD EL ANALYSIS
Metrics

Function

Zooms the corresponding diagram(s) in.


Zoom In

Zooms the corresponding diagram(s) out.


Zoom Out

Select the percentage for zooming the corresponding diagram(s).

Metrics
NOTE This functionality is available in Architect and Enterprise editions only.

MagicDraw metrics functionality, which is implemented as a plugin and accessible through the Open API, enables you to measure your project from three different viewpoints:
UML model metrics System metrics Requirements metrics.

Using UML model metrics, you can measure your project using package, class, and diagram measurements (for example, measuring the number of classes, inheritance tree depth, and so on). System metrics analyze models using the most popular object oriented project metrics: Halstead, McCabe, Chidamber, and Kemerer defined metrics (for example, cyclomatic complexity and weighted methods per class). Requirement metrics consist of function points and use case metrics. These two metrics groups are so structurally similar that use case metrics are regarded as a subset of function point metrics. Use case metrics measure both the number of use cases in a project and the user case analysis through selected tagged values (priority, for example).

494

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

The results of these analyses are displayed in a table, where you can select which metric you would like displayed. You can also export the metrics to a separate file. Metrics are implemented as a plugin and are accessible through the Open API. A metric is a numeric value that measures a model or is counted according to model measuring. Each metric has both a lowest and highest limit specified. Metrics that fall outside of this range are marked:
Values that are too low are displayed in a blue font. Values that are too high are displayed in a red font. Note: if the highest limit equals

zero, the metric is never marked as too high.

Metric Suites
In MagicDraw, you can create your own metric suites or use one of the three predefined metric suites: System Metrics, UML Model Metrics, or Requirements Metrics. The metric suites contain a list of metrics that will be counted and the properties specified for each selected metric. To create your own metric suites, clone an existing suite and specify the suite properties. You can edit the predefined metrics suites, and all metric suites can be imported or exported, facilitating the exchange of ideas with other users.

Displaying Metrics
Metrics are counted according to properties defined in a selected metric suite and can be counted for an entire project or just the selected packages, classes, interfaces, or diagrams. The results are displayed in the Metrics window, which opens at the bottom of the MagicDraw application window. The Metrics window contains two tabs:
Data tab. The counted metrics of the selected suite are displayed in a metrics table,

which includes counted metrics only.


Graphics tab. The selected metric is displayed as a graphic.

495

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

Metrics tables display packages, classes, interfaces, and diagrams. Additionally, elements that contain packages, classes, interfaces, and diagrams, which are displayed using a tree structure, are not counted for these elements. The following is an example of a metrics table structure: Model Element PackageA Inner class1 Inner class2 Metric1 value value value Metric2 value value value Metric3 value value value value value value . value value value MetricN value value value

If a value is not counted for a class, interface, package, or diagram, the cell is left empty. You can apply the following filters to the metrics table:
All Packages Classes (classes and interfaces are displayed) Diagrams Package Violations (only rows that contain package violations are displayed) Class Violations (only rows that contain class or interface violations are displayed)

When the Classes, Diagrams, or Class Violations filters are selected, the owner is displayed next to the following element: c1 (Classes::Package1)

Starting Metrics
To start Metrics:
Click Metrics on the Analyze menu, or on the class/package/interface/diagram shortcut menu, click Tools and then click Metrics.

496

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

The Metrics dialog box opens.

Figure 232 -- Metrics dialog box Element Metrics Suite Calculate For Description

Lists all the available metrics suites. Lists two values:


Whole Project calculates metrics for the entire project. Selection calculates metrics for selected items only. Click the

"" button to open the Select Elements dialog box.


Metrics Options Calculate

Opens the Metrics Options dialog box. Opens the Metrics window.

497

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

To set element options for Metrics, click the "" button to open the Select Elements dialog box:

Figure 233 -- Select Elements dialog box

Packages, classes and diagrams are displayed in the Select Elements dialog box. If you select the box next to a parent element (for example, the Data check box in the image above), all its related child elements are automatically selected. Conversely, clearing the box next to a parent element clears all its related child elements.

498

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

If you clear the box next to a child element, the parent box is also cleared. For example, if the Data box is selected, all its related child elements are selected. If you then clear the Package View box, its child elements are also cleared, as is the box next to Data, but all the other boxes remain selected.

Metrics window
The Metrics window is implemented as a JIDE GUI window. Like the Messages window, it is available at the bottom of the MagicDraw application window.

Figure 234 -- Metrics window GUI element Expand Current Branch Collapse Current Branch Refresh Metrics Options Export Compare Metrics With Print Description

Expands all elements in the selected branch within the results table. Collapses all elements in the selected branch within the results table. Recalculates metrics results according to the current model. Opens the Metrics Options dialog box. Opens the Export Metrics dialog box. Opens the Open dialog box, where you can select a text file to compare with the currently open metric set. Prints the metrics table. The Print dialog opens.

499

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

Filter

Contains these values:


All Packages Classes Diagrams Package Violations Class Violations

The selected metrics rows or cells can be copied to the clipboard by clicking Copy on the shortcut menu or by Ctrl+C on your keyboard.

Exporting Metrics
You can export the selected metrics rows and columns, or the entire metrics table, to a metrics results file. Metrics results can be exported using *.txt and *.html formats. In the following example, metrics are presented in *.txt format and are separated by tabs: Element Package Package1 Class class1 (Package1::class1) Class class2 (Package2::class2) Metric1 Metric2 Metric3 . value value value value value value value value value . . . MetricN Value Value Value

Here Metric1 .. MetricN the metric name abbreviation. Technical information is displayed at the bottom of the file. Text "Element IDs" are added after the metrics of an element and are also printed. This information is needed for metrics comparison.

500

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

In the following example, information is presented in *.html format: Metrics Report Element Metric1 Metric2 Metric3 . Metric N Value value

Package Package1 (Package1) Class class1 (Package1::class1)

value value

value value

value value

. .

Here Metric1 .. MetricN the metric name abbreviation. Each metric name is hyperlinked with its metric description. Metric descriptions can be opened in a separate window after clicking the hyperlink. NOTE:
*.html format is best suited for viewing metrics. If you want to copy the metrics table to another program, use of the *.txt format.

To export Metrics, click the Export Metrics button in the Metrics window. The Export Metrics dialog box opens:

Figure 235 -- Export Metrics dialog box Element Description

Metrics Output File: Displays the path and file names of the metrics results output file.

Click the "" button to select the location and file.

501

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

Output Type:

Contains these values:


Text (*.txt) HTML (*.html)

Export Selected Rows Only

When selected, only the selected table rows and the header row are exported. When cleared, the entire metrics table is exported.

Comparing metrics
Counted metrics can be compared with metrics that are saved in a *.txt file. Metrics can be compared only when the metrics window is open. Comparison results are displayed in the same metrics table. If a cell contains a metric that has increased, it has a red fill color. If the metric has decreased, a blue fill color is used. Metrics that are not found in other file cells have a grey fill color. The metrics comparison can be canceled using the ESC key.

Metrics Options
Metrics suites are managed in the Metrics Options dialog box. To open the Metrics Options dialog box:
From the Analyze menu, select Metrics and then Metrics Options In the Metrics dialog box, click Metrics Options.

The left pane of the Metrics Options dialog box displays the defined metrics suites. Using the buttons or shortcut menu, metrics suites can be cloned, renamed, removed, exported, and imported. Predefined metrics sets cannot be renamed or removed. The suite properties are displayed in the right pane:

502

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

Figure 236 -- Metrics Options dialog box Element Description

Metrics suites list

Displays all created metrics suites in a list.

503

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

Metrics suites list buttons:


Clone Rename Remove Import Export

Clone clone the selected suite. Rename rename the selected suite. Remove remove the selected suite. Import import a new suite. The Open dialog box opens. Export export the selected suite. The Save dialog box opens.

All these commands are available from each metric suite shortcut menu. Use this tree to select the metrics you want to include in your metrics suite. All metrics are displayed in the metrics tree. Metrics properties are displayed individually for each property. Selects all metrics. Clears all metrics. Predefined MagicDraw metrics are reset to the default metrics suite. User-created metrics suites are reset to the selected predefined metrics suite. The Reset Metrics Suite Properties dialog box opens:

Metrics tree Properties list


Select All Clear All Reset to Default

Description OK

Displays the selected metric description. Saves all changes and closes the dialog box.

504

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

Metrics Properties
Properties Group General Property Description

Calculate

Defines what will be counted:


Local inside package (class). Global - inside package (class) recursively. Average metrics will be counted from the lowest level of the

elements tree. Each upper level metric will be counted as an average of the current object metric and all lower level metrics: Average_element_metric = (Element_metric_value (if counted separately) + sum (inner_elements_metrics_values)) / (1 (if element_metric_value was counted) + count_of_inner_elements_that_have_metrics_counted) Average metric value should be rounded down to the lower value (for example, 1.5 = 1, 1.6 =2)
Min lowest level metrics will be counted. Each upper level

metric will be set to the minimum of the current object metric and all lower level metrics (except the metrics that are equal 0). Min_element_metric = min (Element_metric_value, min (inner_elements_metrics_values)) Here metric_value > 0
Max lowest level metrics will be counted. Each upper level

metric will be set to the maximum of the current object metric and all lower level metrics. Max_element_metric = max (Element_metric_value, max (inner_elements_metrics_values)) Here metric_value > 0
Lowest limit

Package Class Diagram

Recommended lowest metric value for the package. Editable. Recommended lowest metric value for class and interface. Editable. Recommended lowest metric value for the diagram. Editable.

505

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Metrics

Properties Group Highest limit

Property

Description

Package

Recommended highest metric value for package. Editable. Note: if the highest limit is equal to 0, the metric is never marked as too high (in red font color).

Class

Recommended highest metric value for class and interface. Editable. Note: if the highest limit is equal to 0, the metric is never marked as too high (in red font color).

Diagram

Recommended highest metric value for diagram. Editable. Note: if the highest limit is equal to 0, the metric is never marked as too high (in red font color).

Include Weight

This properties group specifies whether the information is included when counting metrics. This properties group specifies whether the information is included when counting metrics.

The following is an example of a metrics calculation used for calculating the number of classes (NC) in this tree:

Calculated metric values with a different aggregation: Element Top Local 1 Global 8 Average 1 Min 1 Max 2

506

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Calculated metric values with a different aggregation: Inner1 C1 C2 c_in1 c_in2 Inner2 C3 c_in3 c_in4 C4 2 0 2 0 0 1 2 0 0 0 4 0 2 0 0 3 2 0 0 0 1 0 1 0 0 1 1 0 0 0 2 0 2 0 0 1 2 0 0 0 2 0 2 0 0 2 2 0 0 0

Dependency Matrix
View Online Demo NOTE Dependency Matrix This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

The Dependency Matrix is a method of visualizing and representing dependency criteria. Diagrams, UML, and extended UML elements serve as row and columns entries. The cells in the matrix show where these elements are associated - related. Dependency matrixes include different dependency criteria: UML relations, extended UML relations, semantic dependencies (dependency through property), and relationships through tags. Relationship through tags is a relationship where a cell represents a relation that is implemented as a tag added to the element with a reference to another element. A relation through tags allows relate

507

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

UML element of any type. Tags are one of the methods for relating elements that cannot be represented on the same diagram. The Dependency Matrix fulfills the feature, which helps visualize the many-to-many traceability from elements not from the same diagrams. The Dependency Matrix also provides the visualization of many-to-many for large interconnected system elements. The most usefulness is complete the lack of functionality to support different domains - DoDAF. Dependency Matrix functionality is useful for:
Quickly visualizing dependency criteria. Compactly visualizing relations of a big system. Such system relations cannot be

represented by a diagram on a single sheet of paper, as the diagram is very big.


Creating a matrix template for domains and supporting domain specific element

relation visualizations.
Studying relations from a particular scope and type of element by filtering the

unimportant.
Showing relations that cannot be represented in diagrams: representation (class by

lifeline); behavior representation in other diagrams, operation representation by Call Behavior Action, Use Case relations with describing activities through property Owned Behavior, etc. The Semantic dependency matrix is needed for deeper model analysis. The Matrix allows the representation of any kind of relations through the element property.
Another method of showing custom relations - through tags.

Creating the Dependency Matrix


The matrix element in the model is similar to the diagram element. After creating a new matrix, it appears in the Browser as a model element and the matrix pane can be opened by double-clicking on the matrix name. The same actions, which can be performed with diagrams, are valid for matrixes. To open the Matrix Dependency View
From the Diagrams main menu, select Dependency Matrixes. The Dependency

Matrixes dialog box opens. Click Add to create a new dependency matrix and then click Open.

508

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix
From the Analyze main menu, select Dependency Matrix and then Create Blank

Matrix. Type a name and select the package where you want to save it in the project and click OK.
From the package shortcut menu in the Browser, select New Diagram and then

Dependency Matrix.
In the custom diagrams toolbar, click the Dependency Matrix button. Type a name

and select the package where you want to save it in the project and click OK. To change the dependency matrix properties
1. In the Dependency Matrix Specification dialog box (see The Dependency Matrix

Specification dialog box, tags group on page 521), open the Tags group.
2. In the <<matrix template>> subgroup, select balded tag, marked with icon

from the

list and edit its value in the Value field.

Dependency Matrix View

Figure 237 -- Dependency Matrix View

Row Element Type

Click the ... button to select the element or multiple element types to show in rows of the dependency matrix.

509

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Column Element Type Row Scope

Click the ... button to select the element or multiple element types to show in columns of the dependency matrix. Click the ... button to define the scope of the model (packages/profiles), from which elements should be displayed in rows of the dependency matrix. Click the ... button to define the scope of the model (packages/profiles), from which elements should be displayed in columns of the dependency matrix. +<owner>::<element> value shows the row that is added to the matrix. <owner>::<element> value shows the row that is removed from the matrix. Click "..." button to add or remove row from the dependency matrix table. The Add/Remove Elements dialog box opens. For more information about this dialog box, see The Add / Remove Elements dialog box on page 520.

Column Scope

Row Added/ Removed Element

Column Added/ Removed Element

+<owner>::<element> value shows the column that is added to the matrix. -<owner>::<element> value shows the column that is removed from the matrix. Click "..." button to add or remove column from the dependency matrix table. The Add/Remove Elements dialog box opens. For more information about this dialog box, see The Add / Remove Elements dialog box on page 520.

Dependency Criteria

Click the ... button to define what relations between row and column elements to display in the matrix cells.
UML Relations. The matrix cells will display the existence of

relationships between row elements and column elements.


Tagged Value. The matrix cells will display relations through tags if

matrix row elements have tagged values pointing to matrix column elements or vice versa.
Properties. The matrix rows will display relations through properties if

matrix row elements have properties pointing to column elements or vice versa.
Make column same as row More>>

If selected, sets the column filter setting to the same as row. Click More>> button to expand the toolbar and find advanced matrix filters areas.

510

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Row Property/ Column Property

Select item from the combo box to select row/column elements, filtered by some property. Only entries that meet selected property values will be displayed in the rows/columns. Possible choices:
Applied stereotype; Visibility; Tagged Value; To Do.

Row Property Value Column Property Value Rebuild Add Remove Elements

The ... button is enabled only when some Property is selected. The corresponding dialog box with available property values opens. Multiple property value selections are available. Columns and rows rebuild action, which rebuilds element lists according to the filters configuration. Add/remove elements and diagrams from/to Matrix rows or columns independently from the filter settings.

Click the button to open the Add Remove Elements dialog box. For more information about this dialog box, see The Add / Remove Elements dialog box on page 520.
Matrix Properties

Click the button to open the Dependency Matrix Specification dialog box. For more information about this dialog box, see The Dependency Matrix Specification dialog box, tags group on page 521
Quick Diagram Layout

Click the button to automatically layout the matrix cells to default width and height.
Change Axes

Click the other.

button. Columns and rows will be exchanged with each

511

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Save as *.csv

Click the button. The Save dialog box opens. Select location for a file and enter a file name (default name will be set the same as Matrix Name). The file will be saved in Comma Separated Values (*.csv) format. The file can be opened with MS Excel, Open Office, MC Excel imported into databases.
Safe Configuration As Template

Click the button to save the filters configuration as a matrix template. The saved template can be imported into the Dependency Matrix Template dialog box and used in other projects.
Load Matrix Template

Click the button to open the Load Matrix Template dialog box. Select a template from the list and click OK.

Dependency Matrix pane


After the dependency criteria (filter options) are specified, click the Build button. The Dependency Matrix pane will be opened.

512

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Dependencies between elements are displayed in cells. Rows and columns display elements, which were specified in the Matrix View fields.

Figure 238 -- Dependency Matrix pane

An Icon with dependency direction representation is displayed in a cell if the single dependency is presented in this cell. Arrows can be:
One directional arrow - direction shows that element is dependent on the element, to

which direction it points;

513

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Line - shows that elements depend on each other; "X" icon - appears when multiple dependencies are presented in the cell.

The number of dependencies between package elements is displayed in a cell where packages are intersecting with any element. Right-click on the empty space in the Dependency Matrix pane to open the shortcut menu:

514

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

To open the relation specification dialog box of the dependent element


1. Double click a cell that is not empty or select it and from the shortcut menu, select

Dependency List. The Dependency List dialog box opens.

2. Click the

button near the selected dependency to open the correscopding dependency Specification dialog box.

Working with a Dependency Matrix Template


Matrix properties and filter configurations are stored in MagicDraw. The matrix configuration is called the matrix template. The matrix template is used to save a matrix independently of a project and to share them with other users. The user can create a matrix based on a predefine template. The matrix template can be imported and exported as a file. Filters and Matrix properties will be saved as a matrix template. To create a Dependency Matrix from a Template
1. From the Analyze main menu, select Dependency Matrix and then Matrix Tem-

plates. The Dependency Matrix Templates dialog box opens.


2. Select the template from the list and click Create Matrix, or click OK. After closing the

dialog box, click Rebuild in the Matrix View.

515

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

To load a Dependency Matrix Template


1. In the Matrix View, click the Load Matrix Template button

. The Load Matrix Template dialog box opens. 2. Select a template from the list and click OK. The dialog box is closed and template values appear in the rows/columns filter fields in the Matrix View. 3. Click Rebuild in order to apply the template filter for the dependency matrix. To save a configuration as a Dependency Matrix Template
1. Specify the desired filter values for rows and columns. 2. In the Matrix View, click the Save Configuration As Template button

. The

Save dialog box opens. 3. Type a name for the template, select a location and click Save. To export a Dependency Matrix Template
1. In the Dependency Matrix Templates dialog box, click the Export Selected Matrix

template button

. The Save dialog box opens.

2. Type a name for the template, select a location and click Save.

To import a Dependency Matrix Template


1. In the Dependency Matrix Templates dialog box, click the Import New Matrix tem-

plate button . The Open dialog box opens. 2. Select a matrix template and click Open. The template with defined properties will be added to the templates list.

516

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Dialog boxes in Dependency Matrix functionality


Dependency Matrix Templates dialog box
From the Analyze main menu, select Dependency Matrix and then Matrix Templates. The Dependency Matrix Templates dialog box opens.

Figure 239 -- The Package Dependencies dialog box

517

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Box name Clone Selected Matrix template

Function

Select the template and click the button. A copy of the existing matrix template will be created with the same properties and filter options.
Rename Selected Matrix template

Select the template and click the button. The template name will be set to editable mode for renaming.
Remove Selected Matrix template

Select the template and click the button. The template will be removed from the templates list.
Import New Matrix template

Click the box opens.


Export Selected Matrix template

button to import a template. The Open dialog

Click the opens.


Filters Options Take all model as default scope

button to export a template. The Save dialog box

For more information, see Dependency Matrix View on page 509. If selected, upon matrix creation, the whole model will be taken as the scope (later scope can be changed in Dependency Matrix View). If cleared, matrix will be empty until specifying scope.

Matrix Properties

518

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Columns text direction

Changes text direction in column headers. Possible choices:


Horizontal Vertical

Show inner dependencies

If selected, the number of dependencies among container elements will be shown in the cell where the container is intersecting with other elements. If selected, displays the element owners in the column headers. Displays the element owner in the row headers. Possible choices:
Full qualified name Hide Tree

Show owner for columns Show owner for rows

Show related/unrelated elements

Allows showing elements with or without their dependency criteria. Possible choices:
Show all; Show related elements only; Show unrelated elements only.

Description Change Exports OK Create Matrix Cancel Help

Displays the matrix template description. Select the HTML check box to edit text using the advanced style. The Export Module dialog box opens. You can change the package set, selected for export. Closes the dialog box and adds changes to the Matrix View fields according to the selected template. Closes the dialog box and creates the dependency matrix, applying filters and options from the selected template. Exits the dialog box without saving changes. Displays MagicDraw Help.

519

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

The Add / Remove Elements dialog box


In the Dependency Matrix View, click the button to open the Add Remove Elements dialog box.

Figure 240 -- The Add / Remove Elements dialog box

520

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

Box name Make column same as row Row elements Column elements Add Add All Add Recursively Remove Remove All OK Cancel Help

Function

If selected, applies the same element combination that was set for row, to column. Displays a list of all model elements and chosen elements to display in the matrix rows. Displays a list of all model elements and chosen elements to display in the matrix columns. Adds the selected element from the All data list to Row (Column) elements list without adding its inner elements. Adds all model elements from the All data list to Row (Column) elements list. Adds the selected element from the All data list to Row (Column) elements list together with its inner elements. Removes the selected element from the Row (Column)elements list. Removes all elements from the Row (Column)elements list. Saves changes and closes dialog box. Closes dialog box without saving changes. Displays the MagicDraw help.

The Dependency Matrix Specification dialog box, tags group


In the Browser, select the matrix element and from the shortcut menu, choose

Specification.

521

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Dependency Matrix

From the Dependency Matrix pane shortcut menu, click Matrix Properties.

Figure 241 -- The Dependency Matrix specification dialog box, Tags group

This dialog box can be used to change matrix property values. In the <<matrix template>> tags group, select bolded tags and in the right open window, change the default value to the desired one.

522

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

Validation
View Online Demo NOTE Validation This functionality is available in Architect and Enterprise editions only.

Introduction
MagicDraw has the functionality to check the created models. It consists of:
A set of validation rules. Each validation rule captures some imperative conditions,

which must be checked against the model. Validation rules are specified as invariant constraints in the model.
One or more validation suites (modeled as packages). A validation suite is a simple

concept of grouping the validation rules into meaningful groups, so that the collection of rules can be applied. To run the validation, select some suites and validation scope - either the entire model or some part of it. When the validation is run, each rule from the suite is evaluated for each suitable element in the validation scope. Each element that violates the rule (constraint evaluates to false) is reported in the results table. Since rules and suites are model elements, they can be manipulated using the standard MagicDraw modeling means - they can be copied, moved, and edited in the model; they can be refactored into modules, to facilitate reuse in other projects, placed in the Teamwork Server for exchange, etc. And of course this approach allows editing predefined rules and defining new, custom rules for models and profiles.

Constraint Types
Each validation rule, modeled as a constraint has a target classifier property. This property determines on what type of element this rule applies. Thus the usual level - metalevel separation appears. Constraints that are defined on some particular classifiers are evaluated on the instances of these particular classifiers when validating. Inheritance is taken into account - instances of the subclasses of the class are also validated. Thus there are 3 types of constraints that MagicDraw can evaluate:

523

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

Classifier level constraints. Constraints that are placed on the classes, datatypes

and other classifiers of the model are evaluated on all the instances of these classifiers - i.e. those InstanceSpecifications that have the particular classifier set as their type.
Constraints on metaclasses. When a constraint is placed on a metaclass (one of

the classes in the UML Standard Profile::UML2 Metamodel), this constraint is evaluated on all the model elements of that kind. E.g. if the constraint is placed on Actor metaclass, then this constraint applies to all the actor elements in the model. The following is an example of rule (specified in OCL2.0), which mandates that all actor names in the model must be capitalized:
context Actor inv capitalize: let startswith:String = name.substring(1,1) in startswith.toUpper() = startswith These constraints are useful for specifying generic rules, which must apply on all the model elements of particular kind.
Constraints on stereotypes. When a constraint is placed on some stereotypes of

the profile, that constraint applies to all the model elements that have these stereotypes applied to them. These constraints are useful when creating domain specific profiles. When adapting UML to some specific modeling domain, a profile is usually created with extensions for that domain - stereotypes, tags etc. The constraints on these stereotypes allow enforcing the rules of that domain. It is advisable not to mix the constraints from different metalevels into one suite (constraints on classifiers versus constraints on stereotypes and metaclasses).

Predefined Validation Suites


There are several validation suites (collections of validation rules) predefined in the profiles that come with MagicDraw. Since validation rules and validation suites are concepts, stored in the model, the availability of list of validation suites for validating depends on what profiles the model includes. UML Standard Profile brings two predefined suites with it. These two suites are present in all models:
UML completeness constraints; UML correctness constraints.

524

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

Completeness suite has a collection of rules, which check if a model is complete, that there are no gaps, and the essential information fields in the elements have been filled in (e.g. checks that all the properties have type specified etc.). Correctness suite has a collection of rules, which check common mistakes while modeling in UML2 (NOTE: this collection is not exhaustive). Additionally, there are validation suites for each of these modeling domains - XML schemas, DDL, Java, C++ plus DoDAF and SysML, if any. These validation suites are defined in the corresponding profiles of these modeling domains, hence they are included automatically when you start modeling in that domain. For example - if you create a new XML schema diagram, XML schema profile will be automatically included in your model and this profile brings in XML schema validation suite with it. So, from that moment, XML schema validation suite is available in the project.

Validating
To run the validation, you have to select a group of rules to be validated (validation suite) and indicate which part of the model to check (validation scope - either the entire model or some part of it).

525

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

To validate UML model for correctness


1. Open model. From the Analyze main menu, select Validation and then Validation

again. The Validation dialog box appears.

Figure 242 -- Validation dialog box. 2. In the Validation Suite combo box, select the UML correctness constraints . All avail-

able validation suites are listed here. The list of available validation suites depends on the open project - the validation suites and validation rules are stored in the model as normal model elements. By default, a project has two suites UML completeness constraints and UML correctness constraints - defined in the Standard profile. If a project uses other profiles/modules - such as Java/XML schema/DDL profile, these profiles bring in their own predefined suites. And you can create your own validation rules and group them into a suite and this suite will be available in this combobox.

526

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

3. Select validation for Validation Selection (if you want to run validation on the entire

model select Whole Project here) then click the button to select the scope. As usual a dialog box for element selection opens:

Figure 243 -- Select Elements dialog box 4. In the Select Elements dialog box, select packages and/or elements for validation.

NOTE: validation is always recursive, hence if you select a package for validation, you do not need to select its inner elements (no need for Add Recursively button). In the case depicted above, all model elements in the Classifiers Demo and Meta Demo packages will be validated. Adding Data package is equivalent to validating the entire model. 5. Select the Minimal Severity level. By default, debug is chosen as minimum severity level. Since debug is the lowest possible severity level, all validation rules will be run. 6. Click Validate. Validation results are displayed in the Validation Results window.

527

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

Validation Results Window


Validation results are displayed in the Validation results window.

Figure 244 -- Validations Results view.

Window opens automatically after the validation has ended. The Validation result window has the following columns:
Column Description

Element Severity Abbreviation Error Message

Elements, which violate the constraint rule are shown here. Rule severity violations. Simple short strings showing the abbreviation of the violated constraint. Mostly used for sorting/grouping. Error texts of the violated constraints.

528

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

If the validation rule is incorrect, Validations Results view will show the reason. This rule is then excluded from checking models.

Figure 245 -- Buttons of Validation Results view.

To validate a model We will validate SysML model - SysML.mdzip for correctness and completeness. The model is located in MagicDraw installation directory / samples. This model requires that SysML plugin would be installed. This can be done from Help menu Resource / Plugin Manager.
1. Open model. From the Analyze menu, select Validation command, and then Valida-

tion. The Validation dialog box opens.


2. Select SysML Validation Constraints suite and click Validate. The Validations

Results view opens. 3. Narrow the validation scope. Click the Run validation with a new

settings button, the Validation dialog box opens. Change the scope to validation selection and select SI Value Types package, click Validate. The Validations Results view is refreshed with new options. 4. Double click the violating element kg in the results view or click Select in

529

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

Containment Tree

button. The element is selected in the model.

5. Fix the problem and click the Refresh

button to rerun the validation suite with the same options and refresh validation results. Refreshed results do not include element kg. 6. Select other violating element N in the results view and click Open all

Diagrams Containing the Selected Elements grams, containing the selected model elements.

button to open all the dia-

When the validation result view is opened and diagrams are shown on the screen, elements and links of the diagram, which have at least one result in the validation result view, are highlighted:

Figure 246 -- "N" element violating validation rule is highlighted.

In general, highlighting depends on the validation rule severity:


Error - red Warning - yellow Debug - gray

530

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation
Info - black

Figure 247 -- Elements and links violating constraints are highligted.

If the element violates multiple rules, the color of the most severe rule is used. Highlighting is shown until the rule is violated or the Validations Results view is not closed. Other features available for the Validations Results view:
By clicking the Select Rule in Containment Tree

button, you may select rule in

the model.
You may move the selected results of the validation to the search result window by

clicking the Move to Search Results

button. button opens all the

The Open all Diagrams Containing the Selected Elements

diagrams, containing the selected model element.


The Show / hide the Full Path names

button shows element location in the model

path.

Validation Rules
The validation rules are modeled as UML2 constraints. This approach allows treating the validation rules as simple model elements. They can be handled using usual modeling mechanisms. They can be copied, moved around in the model, refactored into a separate module, stored in the teamwork server for easy information exchange, etc.

531

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

Since constraints can have different semantic meanings in UML2, a special type of the constraint invariant constraint is used for modeling validation rules. To distinguish these constraints from the other types of constraints, <<invariant>> stereotype should be applied to them. Additionally, validation rules require other pieces of information severity level (for sorting/filtering), abbreviation string (a short string, for easy recognition) and error message (complete description of error explanation). This information is displayed in the validation result view. For storing this information, a special stereotype <<validationRule>>, derived from the <<invariant>>, is used. If you want to run this constraint as validation rule, use the former stereotype. If you have created the constraint just for documentation purposes and do not intend to run it, the latter constraint is sufficient. Validation rules can be placed anywhere in the model (where UML2 constraint can be placed), however, usually they are stored in the classifier, which is constrained classes, datatypes, etc. (for classifier level constraints), stereotypes (for meta-classifier level constraints). This convention breaks down for the constraints, placed on metaclasses (since these classes are stored in read only profile). In this case, place constraints wherever you like (e.g. group them into a package). To create a validation rule on a metaclass
1. Select a package where you want to place the rule. 2. Right-click this package, select New Element, and then Constraint.

To create a validation rule on a classifier or stereotype


1. Open their specification, select Constraints section, and click Create.

Example: Lets say we have 2 stereotypes - <<product>> and <<part>>. We want to place a validation rule, that products must have at least one part in them.

532

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

1. Open the product stereotype specification, select Constraints section, and click Cre-

ate.

Figure 248 -- Creating constraints

533

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

2. The name of the constraint and the expression can be specified right away, but since

we want to specifiy more information, we need to open the specification of a newly created constraint (press the button on the right of the constraint).

Figure 249 -- Specifying details of the constraint 3. In the specification panel of the constraint, specify the constraint name. Then ensure

that the Constrained Element field points to the necessary classifier (product stereotype in our case). If we have created the constraint as described here, this field will be filled automatically. If we have created the constraint through the right-click, Create Element, Constraint route (e.g. constraint for metaclasses), we will need to specify the constrained element manually. For constraints on metaclasses select the appropriate element from the UML Standard Profile::UML2 Metamodel. In UML2 the constrained element field is multivalued, but only single value is supported for validation rules.

534

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

4. Now apply the <<validationRule>> stereotype on this constraint. Additional fields will

open on the pane (Abbreviation, Error Message and Severity). If these fields do not open automatically, click Customize and then Reset to Defaults in the open customization dialog box (you can also access these fields in the Tags section of the specification). 5. Fill in the values for those fields. Usage of the Severity levels (approximate guidelines):
DEBUG. This severity level should be assigned only to those validation rules, which

fit the description of INFO, but are too numerous and annoying to constantly bother the user.
INFO. Situations, which might be interesting to the user. WARNING. Used for less severe situations than ERROR, which are not errors per

se, but have a high probability of causing errors. A good example would be In Java model user redefines equals() method of the class, but does not redefine hashCode(). This is a dangerous coding situation.
ERROR. Normal error message. For ordinary, run-of-the-mill errors. FATAL. Used for the errors, which lead to model corruption or are not valid from the

UML metamodel structure viewpoint. There should be few or no validation rules of this level since MagicDraw automatically precludes such situations. This level is mostly reserved for future use. Abbreviation is a simple (and preferably short) string, for quickly distinguishing the validation rules among other rules and sorting. Acronyms and short forms, used in the domain of this validation rule can be used here (e.g. NPE for hypothetical NullPointerException check). Error Message is a longer string, fully describing the invalid situation.

Now that we have all the peripheral information about the validation rule, lets specify the actual validation rule expression. Validating expression is stored in the Specification field. UML2 expression has 2 fields Language and Body. MagicDraw supports 2 languages for expressions, that can be evaluated:
OCL2.0 is used for validation rules, specified in OCL language (version 2.0 of the

spec - 06-05-01 specification document from OMG).

535

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

Binary is used for more advanced expressions, which are not easily expressed in

OCL. These expressions are written in Java, compiled, specified in the MagicDraw classpath. Then these expressions can be specified as validation rule expressions . Other languages are not evaluatable (OCL1.5, English and others). They can be used for documentation purposes.

OCL Constraints

Figure 250 -- validation rule in OCL

Continuing our example, in the constraint Specification dialog box, click the button near the Specification field and open the Edit Specification dialog box. Select OCL2.0 language. Observe that MagicDraw has automatically generated the header of the expression from the constraint information,

536

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

and we only need to specify the body of expression. The expression header is generated according to the following rules: context <constrained element> <constraint type> <constraint name if any>: Constraint type is one of the types, defined in the OCL2.0 spec:
inv - when the expression is placed in the constraint with <<invariant>> stereotype

applied.
def when the expression is placed in the constraint with <<definition>> stereotype

applied.
init, derive when the expression is placed in the default value of the property. pre, post, body when the expression is placed in the appropriate fields of operation.

Since our constraint is stereotyped with <<validationRule>> stereotype (derived from invariant stereotype), inv is shown in the header. Only invariant stereotype is used for the validation rules and are executed (plus derive expressions, when referenced from invariants see Advanced Topics on page 545), other types of constraints can be used for documentation purposes. MagicDraw checks the syntax of expression as you type. However this syntax check is not enough to catch all the errors. When the validation rule is run, additional checks are performed (semantic checks such as checks for the existence of appropriate properties, type checks, multiplicity checks, etc.) to ensure that the expression can be evaluated correctly (internally, MagicDraw generates Java code from the expressions and then compiles it for execution).

Binary Constraints
For more information about Binary Constraints, see MagicDraw OpenAPI UserGuide.pdf.

Validation Suites
In MagicDraw, you can create your own validation suites or use one of the predefined ones as: UML completeness constraints and UML correctness constraints. The validation suite defines the set of validation rules, which will be applied when validating. The purpose of the validation suites is to group constraints without duplicating them.

537

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

To create a new validation suite We need to check the Oracle model for correctness, but not all constraints in Generic DDL constraints suite are suitable for our Oracle model. We will create a new suite with a narrow constraint collection.
1. From the Analyze menu, choose Validation command, and then Validation

Options. The Validation Options dialog box opens. 2. Click the Create New Validation Suite button and name it Oracle specific constraints.

538

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

3. Define the validation rules in the Validation Rules pane.

Figure 251 -- Parts of Generic DDL constraints suite are included into Oracle specific constraints suite.

The validation suite is stored in a model as a package, to which <<ValidationSuite>> stereotype is applied. The Validation Suites pane lists all such packages of the entire model as suites. So, the alternative method to create the validation suite is to apply <<ValidationSuite>> stereotype for a package.

539

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

When the user includes / excludes the constraint, the appropriate element import link is created/ deleted in the model.

Figure 252 -- Element import relation showing in model that Oracle specific constraints suite includes other constraints.

Also, there can be constraints that are stored directly in the suite package - they are also considered as contained in this suite, and because they are physical in package those constraints can not be excluded from the suite through Validation Options dialog box. Typically, validation rules should be stored in a constrained element, but in cases when the constrained element is read-only, for example it is stored in a read-only profile, adding constraints to it requires profile editing and a separate constraints grouping is easier. Constraint Tree The constraint tree is shown in the right Validation Options pane. This tree shows all the constraints with <<invariant>> or <<validationRule>> stereotype applied, presented in the model, together with the appropriate grouping elements. Each item has a checkbox, indicating inclusion or exclusion of the constraint in the selected validation suite. The constraint tree contains packages and other model elements. If it contains constraints, they are arranged according to their containment in a model. Additionally, this tree contains other validation suites. The user can include / exclude rules and these rules must suit the selected validation suite by selecting / unselecting these checkboxes in the tree.

540

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

To group two or more suites into one We have created an abstract system model, and modeled its implementation with Java specific classes. To check this model completeness, correctness, and conformity to Java language by using three suites. We will combine all these suites to one in order to simplify the model checking.
1. From the Analyze menu, choose Validation command, and then Validation

Options. The Validation Options dialog box appears.


2. Create a new suite, name it General, and select it.

541

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

3. Include the existing validation suites: Java constraints, UML completeness con-

straints and UML correctness constraints in the suite by selecting the checkbox in front of the packages in the Validation Rules panel.

Figure 253 -- UML correctness, UML completeness, and Java validation suites included in the General

542

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

validation suite.

Figure 254 -- Package import is signifying in the model that one General suite includes the other as a subset.

To share constraints Lets say we have created a validation suite with constraints and need to share it for other group members for their models validation. Validation rules/suites sharing is available through standard MagicDraw module mechanism. Package with constraints might be exported as module and used by any other project. Another way of sharing constrains is copying them between projects. Since validation rules are simple model elements, any mechanism can be used on them.
1. From the model select Java constraints package to which <<ValidationSuite>> ste-

reotype is applied. 2. From the package context menu select Modules and select Export module. 3. Save the exported package as Java constraints.mdzip. Only constraints that are stored physically in the Java constraints package are exported together with the package. Now the exported package can be used by other users and projects.
1. From the File menu, select Use Module. The Use Module dialog appears. 2. Select path to Java constraints.mdzip and select it to use. 3. Specify module import options. 4. Module is added into a project and the constraints can be used for validation.

543

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

The validation suite can be defined in the module, which is mounted as read-only in the project. Read-only and Autoload module will not be loaded into the project, but will be visible through validations dialog box if <<ValidationSuite>> stereotype was applied to the exported package. In this way the model and the profile will be smaller. And the validation suite is still visible through validation dialog box.

Figure 255 -- Java constraint validation suite module is mounted onto the project as Read-only and Autoload. In this way constraints are not added into project by default, until the validation suite is used.

544

Copyright 1998-2009 No Magic, Inc.

8
.

MOD EL ANALYSIS
Validation

Figure 256 -- Unloaded module with Java constrains validation suite is avaialable through Validation dialog.

Advanced Topics
Global validation rules
Some of the validation rules, specified in OCL, do not refer to the current element (self). Such rules are often encountered when using allInstances() method to refer to all instances of a particular classifier. Such validation rules are called global validation rules in MagicDraw terminology. Evaluating these rules for each model element is pointless, hence they are evaluated only once per entire validation run. When reporting violations, such rules have a string <model> in the column of violating model elements. This means that it is not the concrete element that violates the rule, but the entire model itself. Here is an example of such a rule (always fails): context anything inv: false Such a rule is not very useful indeed. The following is another example: context SomeSingletonClass inv: SomeSingletonClass::allInstances()->size() <= 1

545

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

This rule checks that there is at most one instance of the SomeSingletonClass in the model. The following is a more complex example:

Figure 257 -- example of global validation rule

Here, ReseachProject class has a following validation rule (budget must be balanced sum of expenses of all projects must be less than sum of all sponsor contributions): context ResearchProject inv balanced_budget: ResearchProject::allInstances().budget->sum() <= Sponsor::allInstances().contribution->sum() Sponsor class has a following rule (anticorruption rule - each sponsor can not contribute more than 40% of the funds): context Sponsor inv anticorruption_law: contribution < Sponsor::allInstances().contribution->sum() * 0.4 Now look at the results of applying these rules:

546

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

Figure 258 -- results of running the global validation rule

We see that budget balancing rule is a global rule it is not the concrete instance of ResearchProject that violates the rule, but the entirety of instances in the model. Hence the string <model> in the column of that offending elements. However, note that anticorruption rule is not a global rule - it refers to contribution field, which is really a shorthand for self.contribution, hence this rule refers to self variable and therefore, is not global and is evaluated for each instance of the Sponsor class separately. MagicDraw has no means to determine if the binary validation rules are global, hence all binary rules are treated as local.

Expressions in error messages


When specifying error messages, more than a simple error string can be entered. Error messages can have template areas, which hold expressions, that will be evaluated and expanded when displaying validation results. Refer to the ResearchProject/Sponsor example above. The validation result shows: Budget not balanced overbudget by 500$

547

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

Where does the number 500 come from? It is not directly specified in the error message string (since it is different for different models) but a calculated value of the expression, embedded in an error string. This error string in this case is: Budget not balanced - overbudget by { ResearchProject::allInstances().budget->sum() Sponsor::allInstances().contribution->sum()}$ Expressions are embedded in the error messages by using curly brackets - {}. Everything between them is treated as an expression and evaluated for each validation result. Expressions are treated as OCL2.0 expression by default, however you can also use binary expressions. In this case use {bin: <binary expression>} syntax.

Modeling other types OCL2.0 constraints/expressions


Only inv constraints can be evaluated in MagicDraw. However, there are more constraint types defined in the OCL2.0 specification. There are also def, init, derive, pre, post, body constraints. These constraints are not evaluated, but can be modeled for documentation purposes. Here is how to model them:
def create a usual constraint, but apply <<definition>> stereotype, instead of

<<invariant>> or <<validationRule>>.
init place an opaque expression in the defaultValue field of the property.

548

Copyright 1998-2009 No Magic, Inc.

8
.

MOD EL ANALYSIS
Validation

Figure 259 -- setting the expression as a default value of property

To place an opaque expression in the default value of the property, rightclick on the default value field in the specification of the property and select Value Specification, Opaque Expression.
derive when the expression is placed in the default value of the property (the same

as for init expressions) but the property is marked as derived in the specification.

549

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Validation

pre, post, body when constraints are placed in the appropriate fields of operation

(precondition, postcondition and body condition respectively). Note that derive expressions can be evaluated indirectly, when the validation rule (inv constraint) is referencing the property and the validation rule is evaluated.

Unsupported OCL2.0 features


Not all OCL2.0 features are supported in the current release of MagicDraw. In particular these features are not supported:
Distinction between null values and undefined values. Tuples. All the operations, defined in the UML2 superstructure specification on the

metaclasses are not present and are not callable.


Defining and calling operations on classifiers.

There may be some other features that are not working properly. These features can be reported to [email protected]. MagicDraw uses external library Dresden OCL Toolkit for constraint evaluation.

Adding/customizing severity levels


If the default severity level choice, provided by MagicDraw is not enough for you, new severity levels can be added. This can be done by editing the SeverityKind enumeration in the UML Standard Profile::Validation Profile package. Each enumeration literal in this enumeration corresponds to available severity levels. Severity levels in this enumeration should be sorted in ascending order. If you need to specify a new icon for your custom severity level:
1. Create stereotype, derived from the imaged stereotype, with the EnumerationLiteral

as base class.
2. Set the necessary icon on this stereotype. 3. Apply this stereotype on your custom severity level enumeration literal. 4. Additionally, specify the highlightColor tagged value on the literal. This field (of the

String type) determines how the offending elements will be highlighted in the diagrams. The string format is the same as for the specifying colors in HTML pages (as described in http://www.w3.org/TR/html4/types.html#h-6.5 ). Simple string con-

550

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

straints (such as highlightColor=red) or numeric values (such as highlightColor=#FF0000) can be used here.

Performance Issues
When validation rules, written in OCL are evaluated, MagicDraw generates Java source for them and invokes Java compiler to compile them into an executable form. Hence, on the first run of validation there is usually a delay of 20-30 seconds (depending on the computer performance) while Java compiler is loading. Subsequent runs will be faster that the first one. Also, this process consumes some amount of RAM. If the validation process is run heavily on medium-large projects, increasing the default Java VM size is advisable. By default, VM size is set to 400MB in MagicDraw; increasing this to 600 (or 800 if the computer has sufficient RAM) might improve the performance.

Active Validation
View Online Demo Active Validation

NOTE

This functionality is available in all MagicDraw editions.

Active Validation instantly checks the accuracy, completeness, and correctnes of a model, displays errors in the model, and suggests solutions. The following modeling cases are validated with the Active Validation:
Parameters and arguments synchronization validation Correct ownership validation Orphaned proxies' validation.

Active Validation is an extendable mechanism that identifies common problems and solutions. Custom validation suites and constraints can be created using binary or OCL constraint. Invalid symbols are marked on diagrams and elements in the model. Errors in the model are represented in the following ways:

551

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

If an invalid or incomplete model is created, an error indicator will appear in the

bottom righ corner of MagicDraw.


Invalid elements are marked in the Browser and Diagram.

From the invalid element/symbol shortcut menu, you can analyze incorrect elements, and solve problems, resulting from the errors, through the Active Validation Results window. Model is validated with three predefined validation suites and the Validation is performed for the parameters and arguments synchronization, correct ownership, and orphaned proxies. You can modify these suites and create your own through the Validation Options dialog box.

Detecting errors in the model


When Active Validation detects errors in the model, errors will be revealed in the following ways:
the failure indicator in the Browser, an invalid element is marked with little cross an x symbol. on the diagram, invalid symbol is highlighted.

Failure indicator
If an error occurs, the failure indicator will appear in the bottom right corner of MagicDraw (see Figure 260 on page 553). Click this indicator and the Active Validation Results window will open.

552

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Figure 260 -- General validation notification in MagicDraw

See the parts of the failure indicator in the figure bellow.

Figure 261 -- The failure indicator

553

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Example of the failure indication

Explanation Error symbol showing the level of severity.

Possible values - indicating warning - indicating error or fatal error. - indicating debug error or info.

1 w

Number of errors of that specific severity First letter of the error severity

1, 2, 3 ... F - fatal error E - error W - warning D - debug I - info

TABLE 1. Parts of the failure indicator

Marking errors in the Browser


An invalid model element is marked in the Browser with a small x symbol (see Figure 262 on page 555). The owner of this element is marked with a small grey symbol.

554

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Figure 262 -- Invalid elements marking in browser

Highlighting errors on the diagram


The element symbol is colored according to the severity of the error on the diagram.

555

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Figure 263 -- Invalid symbols marking in diagram

Handling incorrect model


The Active Validation Results window lists the active validation results. It can navigate users to have ability not only to navigate to constraints and invalid elements or symbols, correct errors, filter, and ignore problems.

556

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Figure 264 -- The Active Validation Results window

Changing the Active Validation Options


To change the active validation options:
1. From the Options main menu, select Project. 2. In the Project Options dialog box, select the General project options group. 3. In the Active Validation group, specify the active validation options.

557

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Figure 265 -- The Project Options dialog box, Active Validation group

The Active Validation Suites


Validating Parameters and Arguments Synchronization
More informaction about Parameter Synchronization can be found here Parameters synchronization with Arguments on page 844. In most cases the parameters and arguments synchronization is not visible. Automation and synchronization between Parameters and Arguments (for example Operation parameters and Call Behavior Action Pins) increase modeling speed and helps avoid modelling errors.

558

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Arguments should always in sync with Parameters. But in cases when synchronization is not possible or corrupted, the active validation will notify the user by highlighting the symbols on the diagrams.

Shape Ownership
The term symbol means a visual representation of some model elements in the diagram. Symbols are further subdivided into shapes and paths (lines in the model, for displaying various relationships). When drawing UML diagrams, the element ownership is not easily visible. One diagram can contain symbols for elements from several different packages. Element rearrangements in the model may lead to situations where the element ownership in the model does not match the symbol ownership as displayed in the diagram. Such situations are not easy to detect from diagram view. MagicDraw version 15.0 has a built-in validation code to detect this mismatch. This feature is enabled by default and run unnoticed without requiring any additional input from the user. When the symbol ownership on the diagram pane does not match the actual element ownership in the model, the symbol is highlighted with red. So, you will easily see it on the diagram and will be able to correct the problem (problem correction hints are also suggested).

Figure 266 -- Class symbol highlighted with red border

When the mismatch is resolved, the highlighted symbol will return to normal. The symbol ownership validation feature uses the same mechanism for problem highlighting as the generic validation feature available in MagicDraw Enterprise edition. If you run some validation suites against the model, the element can be highlighted due to any of the validations failures:
either validation rule(s) from that suite, or this automatic symbol ownership checking rule(s).

For more information about validation, see Validation on page 523. Symbol ownership validation covers two cases:
Class diagram and its derivatives (use case, implementation, composite structure

diagrams etc.) can display elements from many model locations and show their

559

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

ownership. If shape owner is incorrect (not the same as the element owner in the model), this shape will be highlighted.
Dynamic diagrams (state machine, activity and interaction diagrams) have a

restriction that only elements from one definite state machine, activity or interaction can occur in each concrete diagram. Validation rule checks for these diagrams that only elements from correct state machine, activity, or interaction appear in the diagram. All foreign elements are highlighted as erroneous. These cases are summarized in the table below
Validation of ownership on the diagram pane Validation rule Validation of diagram owner, on which element is drawn

Check if the symbol owner on the diagram correctly reflects the element owner in the model.

Check if the element and the diagram on which the symbol is drawn belong to the same owner. This is valid for dynamic diagrams. The checking is performed according to the context of the diagram.

What is checked Cases

Shapes are checked, excluding paths. Validation works for shapes, including paths. Check is performed:
if the element symbol is draw on the

Check is performed:
if the communication diagram and

same package/model/profile to which it actually belongs;


if the element symbol is drawn on

elements from the communication diagram are in the same interaction;


if the sequence diagram and its

the same component/node to which it actually belongs;


if the element symbol is drawn on

elements are in the same interaction;


if the state diagram and its elements

are in the same state machine;


if the protocol state machine diagram

the same state to which it actually belongs; and other similar cases.

and its elements are in the same protocol state machine.


if the activity diagram and its

elements are in the same activity.

560

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Validation of ownership on the diagram pane Examples

Validation of diagram owner, on which element is drawn

For example, on the diagram pane, an element shape is nested in package A, but actually the element is in package B.

For example, a diagram belongs to activity A, but elements of this diagram belong to activity B.

Important TIP

Ownership validation is not available in the Business Process diagram. To locate the actual owner of the element:
Select the element on the diagram pane and right click. Select the Select in

Containment Tree command. In the Browser you can see the actual element. The parent in the tree is the actual owner.
In the element Specification dialog box, look up the Owner property.

Solving the detected symbol ownership problems In this section you will find out the reasons why an element is highlighted in red and how to solve symbol ownership problems quickly.

561

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Select the highlighted element on the diagram pane. The Smart Manipulator toolbar opens. Notice the red button on the top of Smart Manipulator toolbar.

To see the reason why a shape is highlighted, move the mouse pointer over the red button in the Smart Manipulator toolbar. You will see a tool tip that explains why the element is highlighted. For example: Shape ownership in the diagram does not correspond to the element ownership in the model. You may either solve the problem yourself or choose one of the suggested solutions. To select an available solution, click the red button in the Smart Manipulator toolbar. A menu with the following commands will open (note that some items might not be included depending on the situation in the model):
Remove this Shape. Symbol is deleted from the diagram pane.

NOTE: When a symbol is deleted, the element is not deleted from the project.
Move Element Here. Element is moved to the new owner in the model, so that the

element ownership in the model corresponds to the present shape ownership in the diagram.
De-nest this Shape. Shape (not element!) will be extracted from the current owner

and placed directly on the diagram. This solution is applicable only for some cases

562

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

(e.g. De-nest, this Shape command is not available for shape, placed in the incorrect state machine, activity, interaction diagrams).

To turn the ownership validation on/off


Select/clear the Validate Shape Ownership check box in the Analyze main menu. Select/clear the Validate Shape Ownership check box in the Environment Options

dialog box, Diagram branch, Display options group. To define the ownership checking period
In the Environment Options dialog box, Diagram branch, Display group, Diagram Checking Period text box, type the diagram checking period in seconds.

Related Topics Setting Environment Options on page 104. Smart Manipulation on page 221.

UML model correctness


Active validation instantly check the most important correctness rules of UML model. The following validation rules are checked: Ports compatibility, Pin types compatibility, Slot and Tags multiplicity correctness and others. Automated solutions are suggested for solving the model errors.

Validating the Orphaned Proxies (OP)


Checking for OP moved from a separate feature into one unified validation mechanism that identifies problems and solutions.

563

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

During model editing theres is possibility can happen that an element is referenced using proxy, but the real element is not shared or does not exist in the module. After the modules that load such proxies are detectd, they are called Orphaned Proxies. These proxies are marked by a validation sign in the browser. Actions to clean such proxies are added.

Customizing the Active Validation


Any constraint (binary or OCL), additionally optimized, can be used to validate models in real-time. MagicDraw provides predefined suites for validation of: Correct ownership in the model and on the diagram, Parameters and arguments synchronization, missing referenced elements (Orphaned Proxies) in the modules, and others. A model is validated automatically without any additional input. Additional constraints can be added or properties can be customized from Analyze (main menu)-> Validation.

Validate element that has no representation in diagram


Element or its symbol is highlighted in diagram pane and in Browser if it is owner of element that can not be represented in diagram and has validation error. See the examples of the spelling error in the table below:
Representation in Diagram Representation in Containment Tree

Sample description

Notes To the symbol smart manipulator toolbar there is added additional button (grey circle with cross inside) that presents the errors solving solutions.

Use Case documentation (comment owned by Use Case and annotating Use Case) has a spelling error

Use Case symbol is highlighted with red dashed border (see Figure 267 on page 565).

The owner of the hidden element with error is marked with white x in red quadrant in the Containment tree as itself would have error (see Figure on page 565).

564

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Active Validation

Sample description

Representation in Diagram

Representation in Containment Tree

Notes

Use Case extension point name has a spelling error

Use Case symbol is highlighted with red dashed border (see Figure 268 on page 566).

The owner of the corrupted and not represented in diagram element is marked with white X in grey quadrant in the Containment tree (see Figure 269 on page 566).

Figure 267 -- The Use Case is highlighted with red dashed border, because it has documentation with spelling error

The Use Case is highlighted with white X in red quadrant in the Containment tree, because it has documentation has a spelling error

565

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Usage in Diagrams

Figure 268 -- The "Register return" Use Case is highlighted with red dashed border, because the "Return violationn" Extension Point has a spelling error

Figure 269 -- The Register return Use Case is highlighted with white X in grey quadrant in the Containment tree, because the Return violationn Extension Point has a spelling error

Usage in Diagrams
Definition

The term symbol means a visual representation of some model element in the diagram. Symbols are further subdivided into shapes and paths (paths are lines used in the model for representing various relationships).

The symbol usage in diagrams functionality allows the user to see the usage of a symbol throughout the diagrams of a project. The two diagram searching possibilities are:
"Searching for symbol usage in diagrams from the element specification dialog box" "Searching for symbol usage in diagrams from the element shortcut menu".

566

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Usage in Diagrams

Searching for symbol usage in diagrams from the element specification dialog box
1. To see the diagram list, open the element specification dialog box and select Usage

in Diagrams. The table shows all diagrams in which the symbol is represented.
2. Select the diagram you want to open. 3. Press the Open button. The diagram is opened and the symbols of the element are

selected. If the diagram includes more than one of the same element symbol, all symbols of the same element are selected in the diagram.

Figure 270 -- The element specification dialog box, the Usage in Diagrams branch

To open the diagram specification dialog box, press the

button near the diagram in the list.

For more information about working with the element specification dialog box, see Specification dialog boxes on page 265.

567

Copyright 1998-2009 No Magic, Inc.

MOD EL ANALYSIS
Usage in Diagrams

Searching for symbol usage in diagrams from the element shortcut menu
1. Select the element in the Browser or select the symbol in the diagram. 2. From the element shortcut menu, select Go To and then Usage in Diagrams. 3. Select the diagram that you want to see the particular element symbol. The diagram

is opened and symbols of the current element are selected on the diagram.

Figure 271 -- Searching for symbol usage in diagrams from the element shortcut menu Tip!

You can also search from usage in diagrams in the following way:
Select the symbol on the diagram. Then, from the Analyze main

menu, select the Go To command and the Usage in Diagrams.


NOTES
All symbols of the same element are selected in the opened

diagram.
If more than one symbol exists in the same diagram, then the

diagram is zoomed out, to fit the view in screen. For information about the Usages /Dependencies functionality for analyzing associations between elements, see Dependencies analysis on page 479.

568

Copyright 1998-2009 No Magic, Inc.

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 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 supports the following diagrams that are defined in UML 2:


UML Diagrams MagicDraw UML Diagrams

Use Case Diagram Class Diagram Object Diagram Composite Structure Diagram State Machine Diagram Protocol State Machine Diagram Activity Diagram Interaction Overview Diagram Sequence Diagram Communication Diagram Component Diagram Deployment Diagram

Use Case Diagrama Class Diagrama Composite Structure Diagram State Machine Diagram Protocol State Machine Diagram Activity Diagram Interaction Overview Diagram Sequence Diagram Communication Diagram Implementation Diagrama

a. The Package Diagram is provided for use with Use Case, Class, and Implementation Diagrams

569

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Architectural Views

Architectural Views
UML defines 13 diagrams that describe 4+1 architectural views:

Figure 272 -- Architectural 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 or subsystem as it is perceived by external users. This view is targeted mainly at 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 the contents drive the development of the other views. It is also used for project planning. Every single use case unit is deemed as a manageable unit during the project execution.

570

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Architectural Views

Structural View
The structural view represents structural elements for implementing a solution for defined requirements. It identifies all of the business entities and how these entities are related to each other. Usually entities are represented as classifiers and their instances in class and object diagrams in multiple abstraction levels. System decomposition to different layers can be displayed using Package diagrams. A Composite structure diagram can be used to represent the classifier inner structure. The system structural view artifacts are created by software architects and represent the system implementation design solutions.

Behavioral View
The dynamic behavior of the system is displayed on the Interaction (sequence and collaboration), State, Activity, Interaction overview, and Timing 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.

Implementation view
The implementation view describes the implementation artifacts of logical subsystems defined in the structural view. It may include the intermediate artifacts used in a system construction (code files, libraries, data files, etc.) This view defines dependencies between the implementation components and their connections by the required and provided interfaces. Components and their relationships are displayed on the Component diagram. Inner parts of the component can be represented with the Composite structure diagrams. The implementation view helps analyze system parts and their dependencies in a higher component level.

Environment view
The environment 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) manifested by artifacts within the system.

571

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Class Diagram The environment view is displayed on the deployment diagram that is called the implementation diagram in MagicDrawTM UML.

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. The 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 the interaction diagrams. The 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 with 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 an existing or future source code. The classes can be grouped into packages. The 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).

572

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Class Diagram

Class diagram elements


Model element Class Button (hot key) Notation

A descriptor for a set of objects with similar struc(C) tures, behaviors, and relationships.

Enumeration

A user-defined data type whose instances are a (K) set of user-specified named enumeration literals. The literals have a relative order but no algebra is defined on them.
Class by Pattern

(SHIFT+P)
Signal

Data Type

Primitive Type

573

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Class Diagram
Model element Interface Button (hot key) Notation

The description of a visible behavior of a class, a component or a package. Attributes and operations inside the Interface can be suppressed.

(I)

Package

A group of classes and other model elements. (P)

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.

(M)

574

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Class Diagram
Model element Button (hot key) Notation

Generalization A relationship between a more general and a more specific element. Note: Choose a different Generalization direction from the toolbar to draw a line with an opposite arrow end. Association A connection among classes, which also means a connection among objects of those classes.
Directed Association

(G)

(S)

Non-navigable Association

575

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Class Diagram
Model element N-ary association Button (hot key) Notation

An association among two or more classes (a single class may appear more than once).

(O)

Association Class

The Association Class is a declaration of a semantic relationship between Classifiers. The Association Class, which has a set of features of its own, is both an Association and a Class. Aggregation An aggregation is an association that represents a whole-part relationship.

(A)

Directed Aggregation

576

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Class Diagram
Model element Composition Button (hot key) Notation

A composition is a form of aggregation with a stronger ownership and coincident lifetime of part with the whole.

(F)

Directed Composition

Interface Realization A relationship is usually used between an interface and an implementation class. Note: Choose a different Interface Realization direction from the toolbar to draw a line with an opposite arrow end.
Realization

(R)

A relationship between a specification and its implementation.

(E)

577

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Class Diagram
Model element Substitution Button (hot key) Notation

A substitution is a relationship between two classifiers.


Usage

A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. Note: Choose a different Usage direction from the toolbar to draw a line with an opposite arrow end.
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.
Template Binding A binding is a relationship between a template and a model element generated from the template.

(B)

578

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Class Diagram
Model element Package Merge Button (hot key) Notation

A package merge is a directed relationship between two packages that indicates that the contents of the two packages are to be combined.
Package Import

A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace.
Element Import

An element import is defined as a directed relationship between an importing namespace and a packageable element.
Instance

(SHIFT+O)
Link

A connection between two or more objects. (SHIFT+L)


Profiling Mechanism Toolbar

579

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Class Diagram
Model element Stereotype Button (hot key) Notation

A stereotype is an extension mechanism that defines a new and more specialized element of the model based on an existing element.
MetaClass

(SHIFT+S)

A class whose instances are classes. Metaclasses are typically used to construct metamodels.
Extension

An extension is used to indicate that the properties of a metaclass are extended through a stereotype, and gives the ability to flexibly add (and later remove) stereotypes to classes.
Profile

A Profile is a kind of Package that extends a reference metamodel.


Profile Application

A profile application is used to show which profiles have been applied to a package.

580

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Use Case Diagram

Use Case Diagram


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 a textual form (a simple table), where the use case diagram provides additional information about the relationship between the use cases and the external users. The diagram also allows a definition of the system's boundary. The Use cases are described only in terms of how they appear when 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. The Use cases are not object-oriented, but they are included in the UML to simplify the approach of the project's lifecycle -- from the specification to the implementation.

Figure 273 -- The schematic view of the use cases in the system.

581

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Use Case Diagram

Use Case diagram elements


Element Actor Button (hot key) Notation

Actors represent roles played by (A) human users, external hardware, and other subjects. An actor does not necessarily represent a specific physical entity but merely a particular facet (that is, "role") of some entities that is relevant to the specification of its associated use cases.
Use Case

A use case is a kind of behaviorrelated classifier that represents a declaration of an offered behavior. (U) Each use case specifies a particular behavior, possibly including the variants that the subject can perform in collaboration with one or more actors. The subject of a use case could be a physical system or any other element that may initiate a behavior, such as a component, a subsystem, or a class.

(P)
Package

A group of classes and other model elements. A package may contain other packages.

582

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Use Case Diagram
Element Button (hot key) Notation

Subsystem

A subsystem is treated as an (Y) abstract single unit. It groups model elements by representing the behavioral unit in a physical system.
System Boundary

Another representation of a package. A system boundary element consists of use cases related by Exclude or Include (uses) relationships, which are visually located inside the system boundary rectangle.
Include

(B)

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.

(C)

Extend

A relationship from an extending use case to an extended use case that specifies how and when the behavior defined in the extending use case can be inserted into the behavior defined in the extended use case. The extension takes place at one or more specific extension points defined in the extended use case. Note: Choose a different Extend direction from the toolbar to draw a line with an opposite arrow end.

(E)

583

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Communication Diagram
Element Association Button (hot key) Notation

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.
Generalization

(S)

A relationship between a more general and a more specific element. Note: Choose a different Generalization direction from the toolbar to draw a line with an opposite arrow end. (G)

Communication Diagram
The Communication diagram illustrates the various static connections between objects, and models their interactions. It also presents a collaboration that contains a set of instances as well as their required relationships given in a particular context, and includes an interaction that defines a set of messages. These messages specify the interaction between the classifier roles within a collaboration that will serve to achieve the desired result. A Communication diagram is given in two different forms: at the instance level or at the specification level.

584

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Communication Diagram

Communication Diagram elements


Element Lifeline Button (hot key) Notation

A lifeline represents an individual participant in the Interaction. The Lifelines (O) represent only one interacting entity.
Connector

Specifies a link that enables (C) communication between two or more lifelines. Each connector may be attached to two or more connectable elements, each representing a set of lifelines.
Connector to Self

Self connector for self-calls. It begins and ends on the same lifeline.

(S)

585

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Communication Diagram
Element Message to Right Message to Left Button (hot key) Notation

A Message defines a particular communication between the Lifelines of an Interaction. It implies that one object uses the services of another object, or sends a message to that object. A communication can be formed by e.g. raising a signal, invoking an Operation, creating or destroying an Instance. Click on the arrow to expand the toolbar and choose an appropriate message type.
Call Message to Right

Call Message to Left

Send Message to Right

Send Message to Left

586

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Sequence Diagram
Element Reply Message to Right Button (hot key) Notation

Reply Message to Left

Create Message to Right

Create Message to Left

Deleta Message to Right

Delete Message to Left

Sequence Diagram
A sequence diagram shows the interaction information with an emphasis on the time sequence. The diagram has two dimensions: the vertical axis that represents time and the horizontal axis that represents the participating objects. The time axis could be an actual reference point (by placing the time labels as text boxes). The horizontal ordering of the objects is not significant to the operation, and you may rearrange them as necessary.

587

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Sequence Diagram

Sequence diagram elements


Model elements Button (hot key) Notation

(O)

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.

Alternatives

(SHIFT+A)

Loop

(SHIFT+L)

Option

(SHIFT+O)

588

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Sequence Diagram
Model elements Button (hot key) Notation

Parallel

(SHIFT+P)

Break

(SHIFT+B)

Negative

(SHIFT+G)

Critical Region

(SHIFT+R)

Consider

(SHIFT+C)

Ignore

(SHIFT+I)

Weak Sequencing

(SHIFT+W)

589

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Sequence Diagram
Model elements Button (hot key) Notation

Strict Sequencing

(SHIFT+S)

Assertion Interaction Use

(SHIFT+R)

A reference to interactions, communication diagram, sequence diagram, and time diagram can be created.

(SHIFT+T)

Message

A communication between objects that conveys information with the expectation that an action will ensue. The receipt of a message is one type of event.

(M)

Call Message

(A)

Send Message

(E)

590

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Sequence Diagram
Model elements Button (hot key) Notation

Reply Message

(R)

Create Message

(C)

Delete Message

(T)

(D)
Diagonal Message

Requires some time to arrive, during which another action occurs.

(S)
Message to Self

591

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Sequence Diagram
Model elements Button (hot key) Notation

(U)
Recursive message

A connected set of messages can be enclosed and marked as iteration.

Duration Constraint

A duration defines a value specification that specifies the temporal distance between two time instants.

Time Constraint

Specifies the combination of min and max timing interval values.

592

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Sequence Diagram

Sequence diagram improvements


State Invariant

Term

The OMG UML specification (UML 2.2: Superstructure) states: "A StateInvariant is a runtime constraint on the participants of the interaction. It may be used to specify a variety of different kinds of constraints, such as values of attributes or variables, internal or external states, and so on".

State invariant element support is added in sequence diagram: In the Figure 274 on page 594, the State Invariant element is presented in two cases:
1. State Invariant with a assigned mystate State. 2. State Invariant with a defined constraint Y.p=15.

593

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Sequence Diagram

Figure 274 -- State Invariant in a Sequence diagram

594

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Sequence Diagram

Lost / Found Messages

Terms

The OMG UML specification (UML 2.2: Superstructure) states: "A lost message is a message where the sending event occurrence is known, but there is no receiving event occurrence. We interpret this to be because the message never reached its destination." "A found message is a message where the receiving event occurrence is known, but there is no (known) sending event occurrence. We interpret this to be because the origin of the message is outside the scope of the description. This may for example be noise or other activity that we do not want to describe in detail.

Figure 275 -- Lost Message in a Sequence diagram

595

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
State Machine Diagram

Figure 276 -- Found message in a Sequence diagram

State Machine Diagram


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. The 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 its 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.

596

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
State Machine Diagram 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 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, the state diagrams describe the behavior of classes, but the 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 the appropriate state and pseudostate symbols, while transitions are generally rendered by directed arcs that inter-connect them. The 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 the state symbols, while the transitions are represented by arrows connecting the state symbols. The state diagram concerns with 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. The state diagram shows all the possible states that objects or collaborations may have, and the events that 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 conditions have 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.

State Machine Diagram elements


NOTE

597

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
State Machine Diagram
If a black arrow is placed on a button, right-click the button, to open other available buttons. Button (hot key) Model elements State Notation

A state models a situation during which some (usually implicit) invariant conditions holds. The invariant may represent a static situation such as an object waiting for some external events to occur. However, it can also model dynamic conditions such as the process of performing some behavior.s
Composite State A composite state either contains one region or is decomposed into two or more orthogonal regions. Each region has a set of mutually exclusive disjoint subvertices and a set of transitions.

(SHIFT+S)

(SHIFT+ C)

Orthogonal State

An orthogonal state is a composite state with at least 2 regions.

(C)

598

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
State Machine Diagram
Model elements Submachine State Button (hot key) Notation

The submachine state specifies the insertion of the specification of a submachine state machine. The Submachine state is a decomposition mechanism that allows factoring of common behaviors and their reuse.
Initial

(A)

Denotes an initial state when an object is created. (I)


Final State

Denotes an object destruction or the end of a collaboration. (F)


Terminate

(R)
Entry Point

The entry point connection points a reference as the target of a transition. This implies that the target of the transition is the entry point pseudostate as defined in the submachine of the submachine state.

(Y)

599

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
State Machine Diagram
Model elements Exit Point Button (hot key) Notation

The exit point connection points a reference as the source of a transition. This implies that the source of the transition is the exit point pseudostate as defined in the submachine of the submachine state that has the exit point connection point defined.
Connection Point Reference

(U)

The Connection point references of a submachine state can be used as the (Z) sources/targets of the transitions. They represent entries into or exits out of the submachine state machine referred by the submachine state.
Deep History

Represents the most recent active configuration of the composite state that directly contains the pseudostate; e.g. the state configuration that was active when the composite state was last exited.

(P)

600

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
State Machine Diagram
Model elements Shallow History Button (hot key) Notation

Represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex.
Junction

(SHIFT+R )

The junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct the compound transition paths between states.

(J)

Choice

The choice points are used to split transition paths. In the dynamic choice point, a decision corncerning which branch to take is only made after the transition from State1 is taken and the choice point is reached.

(O)

601

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Model elements Fork/Join Vertical

Protocol State Machine Diagram

Button (hot key)

Notation

Helps to control parallel actions. (G)


Fork/Join Horizontal

Helps to control parallel actions. (D)


Transition

The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine.

(T)

Transition to Self

When an object returns to the same state after the specified event occurs.

(E)

Protocol State Machine Diagram


A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called, in which state, and under which condition, thus specifying the allowable call sequences on the classifiers operations. The protocol state machine presents the possible and permitted transitions on the instances of its context classifier, together with the operations that carry the transitions.

602

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS

Protocol State Machine Diagram

In this manner, an instance lifecycle can be created for a classifier, by specifying the order in which the operations can be activated and the states through which the instance progresses during its existence. The Protocol State Machine Diagram is created for use with the Protocol State Machine and the Protocol Transitions.

Protocol State Machine Diagram elements


NOTE
If a black arrow is placed on a button, right-click the button to open other available buttons. Button (hot key)

Model elements State

Notation

The states of the protocol state machines are exposed to the users of (SHIFT+S) their context classifiers. A protocol state represents an exposed stable situation of its context classifier: When an instance of the classifier is not processing any operation, the user of this instance can always know its configuration state.
Composite State A composite state either contains one region or is decomposed into two or more orthogonal regions. Each region has a set of mutually exclusive disjoint subvertices and a set of transitions.

(SHIFT+ C)

603

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Model elements Orthogonal State

Protocol State Machine Diagram

Button (hot key)

Notation

An orthogonal state is a composite state with at least 2 regions.

(C)

Submachine State

A submachine state specifies the insertion of the specification of a submachine state machine. The submachine state is a decomposition mechanism that allows factoring of common behaviors and their reuse.
Initial

(A)

Denotes an initial state when an object is created. (I)


Final State

Denotes an object destruction or the end of a collaboration. (F)


Terminate

(R)

604

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Model elements Entry Point

Protocol State Machine Diagram

Button (hot key)

Notation

The entry point connection points a reference as the target of a transition. This implies that the target of the transition is the entry point pseudostate as defined in the submachine of the submachine state.
Exit Point

(Y)

The exit point connection points a reference as the source of a transition. This implies that the source of the transition is the exit point pseudostate as defined in the submachine of the submachine state that has the exit point connection point defined.
Connection Point Reference

(U)

The connection point references of a submachine state that can be used as the sources/targets of the transitions. They represent entries into or exits out of the submachine state machine referenced by the submachine state.

(Z)

605

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Model elements Junction

Protocol State Machine Diagram

Button (hot key)

Notation

The junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct the compound transition paths between states.

(J)

Choice

The choice points are used to split 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.

(O)

Fork/Join Vertical

Helps to control parallel actions. (G)


Fork/Join Horizontal

Helps to control parallel actions. (D)

606

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram
Model elements Protocol Transition Button (hot key) Notation

A protocol transition (transition as specialized in the ProtocolStateMachines (T) package) specifies a legal transition for an operation. Transitions of the protocol state machines have the following information: a pre condition (guard), on trigger, and a post condition. Every protocol transition is associated to zero or one operation that belongs to the context classifier of the protocol state machine.
Protocol Transition to Self

When an object returns to the same state after the specified event occurs.

(E)

Activity Diagram
An activity graph is a variation of a state machine. In the 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 the internal processing (as opposed to external events). You should use the 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 the ordinary state diagrams in situations where asynchronous events occur. An activity diagram is a variant of a state diagram. Organized according to actions, the activity diagrams are mainly targeted towards the representation of the internal behavior of a method (the implementation of an operation) or a use case.

607

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram Though activity diagrams are often classified alongside the interaction diagrams, they actually focus on the 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. The activity diagram provides 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.

608

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram

Activity Diagram elements


Element Action Button (hot key) Notation

An action is a named element that is the fundamen(B) tal unit of an executable functionality. The execution of an action represents some transformations or processing in the modeled system. When the action is to be executed or what its actual inputs are is determined by the concrete action and the behaviors in which it is used.
Call Operation Action

An action that transmits an operation call request to the target object, where it may cause the invocation of the associated behavior. The argument values of the action are available to the execution of the invoked behavior.
Opaque Action

(O)

An opaque action is introduced for implementing specific actions or for use as a temporary placeholder before some other actions are chosen.

609

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram
Element Any Action Button (hot key) Notation

This element is introduced in order to maintain any other desirable action element with an appropriate metaclass stereotype applied.
Object Node

The Activity nodes are introduced to provide a general class for the nodes connected by activity edges. The ActivityNode replaces the use of the StateVertex and its children for activity modeling in UML.
Data Store

(SHIFT+B)

A data store node is a central buffer node for a non(SHIFT+D) transient information. A data store keeps all tokens that enter it, copies them when they are chosen to move downstream. Incoming tokens containing a particular object replace any tokens in the object node containing that object.

610

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram
Element Activity Parameter Node Button (hot key) Notation

It is an object node for inputs and outputs to the activities. The Activity parameters are object nodes at the beginning and end of the flows, to accept inputs to an activity and provide outputs from it.

Input Expansion Node

An expansion node is an object node used to indicate a flow across the boundary of an expansion region. A flow into a region contains a collection that is broken into its individual elements inside the region, which is executed once per element.
Output Expansion Node

A flow out of a region combines individual elements into a collection for use outside the region.

611

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram
Element Object Flow Button (hot key) Notation

Is an activity edge that can have objects or data passing along it. An object flow models the flow of values to or from the object nodes.

(SHIFT+F)

Control Flow

Is an edge that starts an activity node after the previous one is finished. Objects and data cannot pass along the control flow edge.
Send Signal Action

(F)

Is an action that creates a signal instance from its inputs, and transmits it to the target object, where it may trigger the state machine transition or the execution of an activity.
Accept Event Action

(SHIFT+S)

Is an action that waits for the occurrence of an event that meets the specified conditions. The Accept event actions handle event occurrences detected by the object owning the behavior.

(E)

612

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram
Element Initial Node Button (hot key) Notation

An initial node is a starting point for executing an activity. It has no incoming edges.

(T)

Activity Final

An activity final node is a final node that stops all flows in an activity.

(D)

Flow Final

The Final node that terminates a flow and destroys all tokens that arrive at it. It has no impact on other flows in the activity.

(L)

Decision

Decision is a control node that chooses between outgoing flows. A decision (G) node has one incoming edge and multiple outgoing activity edges.

613

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram
Element Merge Button (hot key) Notation

A merge node is a control node that brings together multiple alternate flows. It is not used to synchronize concurrent flows but it is used to accept one among several alternate flows.
Fork/Join Horizontal

(G)

Helps to control parallel actions. (K)


Fork/Join Vertical

Helps to control parallel actions. (SHIFT+K)


Exception Handler

An exception handler is an element that specifies a body to execute in case (P) the specified exception occurs during the execution of the protected node.

614

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram
Element Button (hot key) Notation

Structured Activity Node A structured activity node is an executable activity node that may have an expansion into the subordinate nodes. The structured activity node represents a structured portion of the activity that is not shared with any other structured node, except for nesting.
Conditional Node

A conditional node is a structured activity node that represents an exclusive choice among alternatives.

Sequence Node

A sequence node is a structured activity node that executes its actions in order.

615

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram
Element Loop Node Button (hot key) Notation

A loop node is a structured activity node that represents a loop with the setup, test, and body sections.

Expansion Region

An expansion region is a structured activity region that executes multiple times corresponding to the elements of an input collection.

Time Event

A time event specifies a point of time by an expression. The expression might be absolute or might be relative to some other points of time.

616

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram
Element Input Pin Button (hot key) Notation

An input pin is a pin that holds input values to be consumed by an action. They are object nodes that receive values from other actions through object flows.
Output Pin

(SHIFT+I)

A pin that holds output values produced by an action. Output pins are object (SHIFT+O) nodes that deliver values to other actions through object flows.
Value Pin

A value pin is an input pin that provides a value to an action that does not come from an incoming object flow edge.
Swimlanes

Swimlanes are used to organize responsibility for actions and subactivities according to the class, dividing an activity diagram.

(SHIFT+V)

(SHIFT+W)

617

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram

Smart Activity Diagram layout


Dynamic centerlines
The centerlines are displayed only when a center of the shape that was moved or newly drawn is located near the center of another shape that already exists in the diagram. These lines help to draw diagram with aligned shapes easily. When the center of the shape that was moved coincides with a center of any shape that is placed to its right or left, a horizontal centerline is displayed. When the center of the shape is close to any center of a shape that is located above or below it, a vertical centerline is displayed.

Figure 277 -- Dynamic vertical centerline

To switch off the dynamic centerlines


Click the Show Centerlines button

in the diagram toolbar or press C.

From the Options main menu, select Environment. In the open dialog box, click the Diagram node and clear the Show centerlines in flow diagrams check box in the Display properties group.

618

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Activity Diagram

Diagram orientation
The diagram orientation is used to assign the correct rectilinear path breaks and draw paths betweenthe activity diagram shapes. The paths can be drawn from from side to side, or from the lower to the upper shape borders. Example: For a vertical diagram orientation - in this case if two shapes are not in the same centerline, the paths will be connected from the lower border of the first shape to the upper border of the next shape, adding break points:

For a horizontal diagram orientation - in this case the paths will be connected from the side border of the first shape to the next side border of the second shape, adding break points:

To change the diagram orientation


From the Options main menu, select Project. In the open dialog box, expand Diagram group and in the right side properties list, change the value for the Diagram Orientation property. From the diagram pane shortcut menu, select Diagram Properties and change the value for the Diagram Orientation property.

619

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Implementation Diagram For applying the Activity diagram layout tool, see Activity Diagram Layout Tool on page 246.

Implementation Diagram
The Implementation diagrams help developers describe the logical software structure inside a computer system or across a large distributed system. They show aspects of the physical implementation, including the structure of components and the run-time deployment system. They come in two forms:
1. Component diagrams that show the structure of the components, including the clas-

sifiers that specify them and the artifacts that implement them; and
2. Deployment diagrams that show the structure of the nodes on which the components are deployed.

These diagrams can also be applied in a broader way on the business modeling where the components represent the business procedures and artifacts, and the deployment nodes represent the organization units and resources (human and otherwise) of the business.

Component diagram overview


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. The components may also be shown with any of the interfaces that they expose. They, as with almost any other model elements, can be grouped into packages, much like classes or use cases. The 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, the components are used for file-class mapping during code generation, reverse engineering, and roundtrip engineering operations.

620

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Implementation Diagram

Deployment diagram overview


The 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. The Deployment diagrams are crucial when dealing with distributed systems. You may show the actual computers and devices (nodes), along with the connections they have to each other, thus specifying a system topology. Inside the nodes, the executable components and objects are located in a way that it shows where the software units are residing and on which nodes they are executed. You may also show dependencies between the components.

621

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Implementation Diagram

Implementation Diagram elements


Element Component Button (hot key) Notation

The Component may be used to define the requirements for each physical software element.
Component Instance

(K)

An instance of a component. (A)


Port

Ports represent interaction points between a classifier and its environment. A port has the ability to specify that any requests arriving at this port are handled.
Node

(SHIFT+R)

A Node is a physical object that represents a processing resource, generally having at least a memory and often the processing capability as well.

(O)

622

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Implementation Diagram
Element Execution Environment Button (hot key) Notation

The element that is used to indicate that a node is the execution environment.

Device

A physical computational resource with the processing capability upon which artifacts may be deployed for an execution.

Node Instance

An instance of a node. (T)

Execution Environment Instance

The element that is used to indicate that a node is an instance of the execution environment.

623

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Implementation Diagram
Element Device Instance Button (hot key) Notation

Package

A group of classes and other model elements. (P)

Artifact

An artifact represents a physical piece of information that is used or (B) 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.
Deployment Specification

It indicates a set of properties that defines how a component should be deployed.

624

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Implementation Diagram
Element Artifact Instance Button (hot key) Notation

Deployment Specification Instance

Interface

All functionalities implemented by a particular component.


Interface Realization

(F)

The classifier at the tail of the arrow implements the interface that is located at the arrow head or uses that interface. Note: Choose a different Interface Realization direction from the toolbar to draw a line with an opposite arrow end.
Realization

(R)

A realization signifies that the client set of elements are an implemen- (E) tation of the supplier set, which serves as the specification.

625

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Implementation Diagram
Element Usage Button (hot key) Notation

A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. Usage is also used to create required interface. Note: Choose a different Usage direction from the toolbar to draw a line with an opposite arrow end.
Instance

(U)

An instance specifies the existence of an entity in a modeled system and completely or partially describes the entity. It has a unique name, state, and classifier as the type of the identifier.

(SHIFT+O)

626

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Implementation Diagram
Element Button (hot key) Notation

Assembly Connector

An assembly connector is a connector between two components that defines that one component provides the services that another component requires.

Delegation Connector

A delegation connector is a connector that links the external contract of a component (as specified by its ports) to the internal realization of that behavior by the components parts.

627

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Implementation Diagram
Element Button (hot key) Notation

Deployment

A deployment is the allocation of a deployment target to an artifact or artifact instance.

Manifestation

A manifestation is the concrete physical rendering of one or more model elements by an artifact.

628

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Composite Structure Diagram
Element Button (hot key) Notation

(G)

Generalization Link

A relationship between a specification element and an implementation element.

(L)

Communication Path

A communication path is an association between two DeploymentTargets, through which they are able to exchange signals and messages.

Composite Structure Diagram


The Composite Structure diagram allows a decomposition and modeling of the internal structure of the classifiers.

629

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Composite Structure Diagram

Composite Structure Diagram elements


Element Classifier Button (hot key) Notation

Is extended with the capability to own collaboration uses. These collaboration uses link a collaboration with the classifier to give a description of the works of the classifier.
Part

(SHIFT+G)

(P)

Port

A port may appear either on a contained part representing a port on that part, or on the boundary of the class diagram, representing a port on the represented classifier itself.
Collaboration

(SHIFT+R)

A collaboration describes a structure of collaborating elements (roles), each performing a specialized function, which collectively accomplishes some desired functionalities. Its primary purpose is to explain how a system works and, therefore, it typically only incorporates those aspects of reality that are deemed relevant to the explanation.

(Q)

630

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Composite Structure Diagram
Element Collaboration Use Button (hot key) Notation

A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. The collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration.
Connector

(U)

Each connector may be attached to two or more connectable elements, each representing a set of instances. Each connector end is distinct in the sense that it plays a distinct role in the communication realized over the connector.
Role Binding

(C)

Is a relationship from parts to the Collaboration Use (in diagram). (B)

631

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Composite Structure Diagram

Displaying existing Parts on the Composite Structure diagram creation


On a new Composite Structure diagram creation, if context classifier has properties, the Select Part dialog will open. Select Parts to be drawn automatically in the Composite Structure diagram. Case study to display existing parts on the Composite Structure diagram [Example is taken from UML 2 Superstructure Specification]:
1. Create the Observer package with CallQueue, SlidingBarIcon classes inside and

Observer collaboration.
2. To the Observer collaboration add Subject property (CallQueue type) and Observer property (SlidingBarIcon type) (see Figure 278 on page 632). 3. Create a composite structure diagram inside the collaboration. The Select Parts dialog will open (see Figure 279 on page 633). 4. Select properties (parts) to display them in a diagram. Click OK. 5. Parts are displayed in a diagram (Figure 280 on page 633).

Figure 278 -- Sample with Observer Collaboration

632

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Composite Structure Diagram

Figure 279 -- The Select Parts dialog box

Figure 280 -- Observer composite structure diagram with parts

633

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Interaction Overview Diagram

Interaction Overview Diagram


The Interaction Overview diagram focuses on the overview of the flow of control between Interactions. It is based on the Activity diagram notation. Interactions in the Interaction Use diagram are represented using the Interaction Use element. See the sample of the Interaction Overview diagram in Figure 281 on page 635.

634

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Interaction Overview Diagram

Figure 281 -- Sample of the Interaction Overview diagram

635

Copyright 1998-2009 No Magic, Inc.

9 UML D IAGRAMS
Interaction Overview Diagram
Element Button (hot key) Notation

Interaction Use Represents interactions. (Shift-T)

Other elements of the Interaction Overview diagram are the same as in the Activity diagram. For more information about the Activity diagram, see Activity Diagram elements on page 609.

636

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS

General Information
MagicDraw supports an extension to UML diagrams:
"Content Diagram" (Standard, Professional, Architect, and Enterprise editions only) "Robustness Diagram" (Standard, Professional, Architect, and Enterprise editions

only) Also,MagicDraw provides various types of other diagrams:


"Web Diagram" (Standard, Professional, Architect, and Enterprise editions only) "CORBA IDL Diagram" (Architect and Enterprise editions only) "Generic DDL Diagram" (Architect and Enterprise editions only) "Oracle DDL Diagram" (Architect and Enterprise editions only) "WSDL Diagram" (Architect and Enterprise editions only) "XML Schema Diagram" (Architect and Enterprise editions only) "Time Diagram" (Standard, Professional, Architect, and Enterprise editions only) "Struts Diagram" (Professional, Architect, and Enterprise editions only) "Networking Diagram" (Standard, Professional, Architect, and Enterprise editions

only)
"Business Process Diagram" (Standard, Professional, Architect and Enterprise

editions only) Working with Diagrams For a general information about working with diagrams, see Chapters Diagrams Basics and UML Diagrams. In the Environment Options dialog box, Plugins pane, you may select what extension diagrams you want to enable or disable.

637

Copyright 1998-2009 No Magic, Inc.

10
Patterns

EXTENSION DIAGRAMS
General Information

Various types of classes can be created in every class diagram using a Pattern Wizard. It contains GOF, Java, Junit, CORBA IDL, XML Schema, and WSDL design patterns. New patterns and modifications of the existing ones can also be created using Java code or JPython scripts. For a detailed description, see MagicDraw Open Api users guide. For a detailed description of the Pattern Wizard, see Controlling Merge memory usage on page 394. To open the Pattern Wizard
In the class diagram, click the Class by Pattern button. From the class shortcut menu, select Tools and then select the Apply Pattern

subcommand.
Select a class and select Apply Pattern from the Tools main menu.

638

Copyright 1998-2009 No Magic, Inc.

10
Selection

EXTENSION DIAGRAMS
General Information

Common Elements
Toolbar Button Button (Hot key)

(Escape)
Sticky Button

(Z)
Text Box

(X)
Text Box (HTML Text)

(SHIFT+X)
Note

(N)
Note (HTML Text)

(SHIFT+N)
Comment

639

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
General Information

Toolbar Button Comment (HTML Text)

Button (Hot key)

Anchor

(H)
Constraint

(SHIFT+H)
Containment

(SHIFT+C)
Dependency

(SHIFT+D)
Separator

(W)
Rectangular Shape

(SHIFT+Q)

640

Copyright 1998-2009 No Magic, Inc.

10
NOTE

EXTENSION DIAGRAMS
Content Diagram

Content Diagram
This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

The Content Diagram is an extension of UML notation. The purpose of the content diagram is to generate or represent a project structure (diagrams) and relations between them. The content table works as a table of contents for a project. All created diagrams have their own Specifications, in which you can specify their name, documentation, and view the relationships in which they participate. You can also add stereotypes, tagged values and constraints.

641

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Content Diagram

Content Diagram Elements


Toolbar Button Content Shape Button (Hot key) Notation

Creates a table of contents of all diagrams of the project.

(C)

Package

(P)

Class Diagram

Creates a class diagram.

Use Case Diagram

Creates a use case diagram.

642

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Content Diagram

Toolbar Button Communication Diagram

Button (Hot key)

Notation

Creates a communication diagram.

Sequence Diagram

Creates a sequence diagram.

State Diagram

Creates a state diagram.

Activity Diagram

Creates an activity diagram.

Implementation Diagram

Creates an implementation diagram.

643

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Content Diagram

Toolbar Button Composite Structure Diagram

Button (Hot key)

Notation

Creates a composite structure diagram.


Time Diagram Creates a time diagram.

Struts Diagram Creates a struts diagram.

Web Diagram

Creates a web diagram.

Business Process Diagram Creates a business process diagram.

644

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Content Diagram

Toolbar Button CORBA IDL Diagram

Button (Hot key)

Notation

Creates a CORBA IDL diagram.

WSDL Diagram

Creates a WSDL diagram.

XML Schema Diagram

Creates an xml schema diagram.

Robustness Diagram

Creates a robustness diagram.

Generic DDL Diagram

Creates a DDL diagram.

Oracle DDL Diagram

Creates an Oracle DDL diagram.

645

Copyright 1998-2009 No Magic, Inc.

10
Content Diagram

EXTENSION DIAGRAMS
Robustness Diagram

Toolbar Button

Button (Hot key)

Notation

Creates a content diagram.

Robustness Diagram
NOTE This functionality is available in Standard, Professional, Architect, and Enterprise

editions only. The Robustness Analysis involves analyzing the narrative text of use cases, identifying a first-guess set of objects that will participate in those use cases, and classifying these objects based on the roles they play.
Boundary or Interface objects are what actors use in communicating with the system. Entity objects are usually objects from the domain model. Control objects (are usually called controllers because they often are not real

objects), serve as the glue between boundary objects and entity objects. The Robustness analysis serves as a preliminary design within the project life cycle and provides the missing link between an analysis and a detailed design. Four basic rules apply:
1. Actors can only talk to the boundary objects. 2. The boundary objects can only talk to the controllers and actors. 3. The entity objects can only talk to the controllers. 4. The controllers can talk to the boundary objects and entity objects, and to other con-

trollers, but not to the actors. Both the boundary objects and entity objects are nouns, and the controllers are verbs. Nouns cannot talk to other nouns, but verbs can talk to either nouns or verbs.

646

Copyright 1998-2009 No Magic, Inc.

10
Actor

EXTENSION DIAGRAMS
Robustness Diagram

Robustness Diagram Elements


Toolbar Button/Model Element Button (Hot key) Notation

An actor represents a role played by an external person, a process or a thing interacting with a system. One physical object may play several roles.
Boundary

(A)

Actors use the boundary objects to communicate with the system (sometimes called the interface objects.). A class with a stereotype boundary
Control

(B)

Serves as the glue between the boundary objects and the entity objects. A class with a stereotype control
Entity

(C)

The entity objects usually are objects from the domain model. A class with a stereotype entity (E)

Robustness Association

The Association with a default Association End A navigability = false and Association End B navigability = true values.

(S)

647

Copyright 1998-2009 No Magic, Inc.

10
NOTE

EXTENSION DIAGRAMS
Web Diagram

Web Diagram
This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

The web system consists of server applications, network, communicating protocol, and the browser. Basically, a users requests begin from starting the browser and requesting a document through a network from the server (host computer). The web server running on the host computer, catches the users request, locates the document and delivers it to the user. UML is a standard language for modeling software. However, modeling specific web components cannot be done by using just a standard UML. The Web-UML diagram provides an extension to the UML model, which enables developers to model web applications. The MagicDraw Web-UML diagram includes Web-UML elements (stereotyped UML elements) for modeling: client, server pages, web form, frame classes, java script class representation and target class, and web page component. Reference: Building Web Applications with UML by Jim Conallen Copyright 2000 by Addison Wesley Longman, Inc.

648

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Web Diagram

Web Diagram Elements


Toolbar Button/ Model Element Client Page Button (Hot key) Some examples

(SHIFT+G)

Server Page

(SHIFT+S)

Form

(SHIFT+F)

Frame

(SHIFT+E)

649

Copyright 1998-2009 No Magic, Inc.

10
Target

EXTENSION DIAGRAMS
Web Diagram

Toolbar Button/ Model Element

Button (Hot key)

Some examples

(SHIFT+T)

Java Script

(SHIFT+J)

Page

(SHIFT+P)

Builds

(B)

Link

(L)

650

Copyright 1998-2009 No Magic, Inc.

10
Redirect

EXTENSION DIAGRAMS
Web Diagram

Toolbar Button/ Model Element

Button (Hot key)

Some examples

(T)
Targeted Link

(SHIFT+L)

Frame Content

(SHIFT+O)

Submit

(U)

Object

(O)
RMI

(SHIFT+R)

651

Copyright 1998-2009 No Magic, Inc.

10
IIOP

EXTENSION DIAGRAMS
CORBA IDL Diagram

Toolbar Button/ Model Element

Button (Hot key)

Some examples

(SHIFT+I)

CORBA IDL Diagram


NOTE This functionality is available in Architect and Enterprise editions only.

The CORBA IDL diagram facilitates the creation of CORBA IDL elements. The following patterns are also available for CORBA IDL: Interface, Value Type, Type Definition, Sequence, Array, Fixed, Union, Enumeration, Struct, and Exception. For more information about CORBA IDL usage in MagicDraw, see the MagicDraw Code & Database Engineering User Guide, Chapter CORBA IDL Mapping to UML. Reference: UMLTM Profile for CORBATM Specification, Version 1.0, April 2002. http://www.omg.org/ technology/documents/formal/profile_corba.htm

652

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
CORBA IDL Diagram

CORBA IDL Diagram Elements


Toolbar Button/ Model Element CORBAModule Button (Hot key)

(M)
CORBA IDL Interface

(U)
CORBA IDL Value

(V)
Generalization

(G)
Truncatable Generalization

Value Supports Generalization

CORBA IDL Association

653

Copyright 1998-2009 No Magic, Inc.

10
Interface

EXTENSION DIAGRAMS
Generic DDL Diagram

Toolbar Button/ Model Element

Button (Hot key)

(I)

Generic DDL Diagram


NOTE This functionality is available in Architect and Enterprise editions only.

The DDL diagram is used to draw database definition elements. It simplifies the creation of primary key, foreign key, triggers, etc. For a detailed description about DDL usage in MagicDraw, see MagicDraw Code & Database Engineering Users Guide, Chapter DDL Script Engineering.

654

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Oracle DDL Diagram

Generic DDL Diagram Elements


Toolbar Button/ Model Element Table Button (Hot key)

(T)
View

(V)
Relationship

(R)
Foreign Key

(F)
Database

(D)
Schema

(S)

Oracle DDL Diagram


NOTE This functionality is available in Architect, and Enterprise edition only.

655

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Oracle DDL Diagram

The DDL diagram is used to draw database definition elements. It simplifies the creation of primary key, foreign key, triggers and etc. For a detailed description about DDL usage in MagicDraw, see MagicDraw Code & Database Engineering Users Guide, Chapter DDL Script Engineering.

656

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Oracle DDL Diagram

Oracle DDL Diagram Elements


Toolbar Button/ Model Element Table Button (Hot key)

(T)
View

(V)
Materialized View

(M)
Package

(P)
Type

Relationship

(R)
Foreign Key

(F)

657

Copyright 1998-2009 No Magic, Inc.

10
Scope

EXTENSION DIAGRAMS
WSDL Diagram

Toolbar Button/ Model Element

Button (Hot key)

Database

(D)
Schema

(S)

WSDL Diagram
NOTE This functionality is available in Architect and Enterprise editions only.

The WSDL diagram is used to draw WSDL elements. It allows the creation of all elements used in the wsdl file, except schema. The schema elements can be created using the XMLSchema diagram. WSDL plugin provides patterns to create binding elements. The WSDL plugin requires XMLSchema plugin.

658

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
WSDL Diagram

WSDL Diagram Elements


Model Element WSDLmessage Button (Hot key)

(M)
WSDLporttype

(T)
WSDLbinding

(B)
WSDLport

(SHIFT+P)
WSDLservice

(S)
WSDLdefinitions

(D)
WSDLtypes

(Y)

659

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
XML Schema Diagram

Model Element WSDLimport

Button (Hot key)

(I)
Xmlns

(SHIFT+L)
XSDnamespace

(P)

XML Schema Diagram


NOTE This functionality is available in Architect and Enterprise editions only.

The purpose of the diagram is to create the structure of the xml schema file. It helps to draw the xml schema elements quickly. These elements are the stereotyped UML elements from the class and implementation diagrams. The following patterns are also available for the XML Schema: XSDcomplexType, XSDcomposition, XSDsimpleType, XSDsimpleType(XSDlist), XSDsimpleType(XSDunion), and Simple XSDrestriction. For a detailed description about XML Schema usage in MagicDraw, see MagicDraw Code & Database Engineering Users Guide, Chapter XML Schema. Reference: http://www.w3.org/TR/xmlschema-2/

660

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
XML Schema Diagram

XML Schema Diagram Elements


Toolbar Button/ Model Element XSDcomplexType Button (Hot key)

(C)
XSDsimpleType

(S)
XSDsimpleType(XSDlist)

(SHIFT+S)
XSDsimpleType(XSDunion)

(U)
XSDall

(L)
XSDchoice

(O)
XSDsequence

(Q)

661

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
XML Schema Diagram

Toolbar Button/ Model Element XSDgroup

Button (Hot key)

(G)
XSDattributeGroup

(T)
XSDschema

(SHIFT+M)
XSDnamespace

(P)
Aggregation

(A)
Composition

(F)
Template Binding

(B)

662

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
XML Schema Diagram

Toolbar Button/ Model Element XSDrestriction

Button (Hot key)

(R)
XSDextension

(E)
XSDimport

(M)
XSDinclude

(D)
XSDredefine

(SHIFT+F)
xmlns

(SHIFT+L)

663

Copyright 1998-2009 No Magic, Inc.

10
NOTE

EXTENSION DIAGRAMS
Time Diagram

Time Diagram
This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

A Time Diagram is an extension of UML notation. The time diagram is similar to a sequence diagram, but the model elements of the time diagram have the predefined stereotypes.

664

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Struts Diagram

Time Diagram Elements


Toolbar Button/ Model Element Lifeline <<CRconcurrent>> Button (Hot key)

Lifeline <<SAshedRes>>

Message <<RTevent>>, <<CRimmediate>>

Message <<CRimmediate>>

Message <<SAtrigger>>

Struts Diagram
NOTE This functionality is available in Professiona, Architect. and Enterprise editions only.

A Struts Diagram is an extension of UML notation.

665

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Struts Diagram

Struts Diagram Elements


Toolbar Button/ Model Element Class Button (Hot key)

(C)
Class by Pattern

(SHIFT+P)
Interface

(I)
ActionForm class for struts

(G)
Action class for struts

JavaServer Page for use with struts

Package

(P)

666

Copyright 1998-2009 No Magic, Inc.

10
Model

EXTENSION DIAGRAMS
Struts Diagram

Toolbar Button/ Model Element

Button (Hot key)

(M)
Interface Realization

(R)
Realization

(E)
Abstraction

(T)
Usage

(U)
Generalization

(G)
Association

(S)

667

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Networking Diagram

Toolbar Button/ Model Element Aggregation

Button (Hot key)

(A)
Composition

(F)

Networking Diagram
NOTE This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

This diagram allows a visual display of the network topology. The Networking Profile contains stereotypes for the network description. Elements with icons can be drawn on the Diagram pane. The Networking Diagram is commonly used to depict hardware nodes as well as the connections between them.

668

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Networking Diagram

Networking Diagram Elements


Toolbar Button/ Model Element Server Button (Hot key)

Application Server

DB Server

File Server

Proxy Server

Web Server

PC

Laptop

Monitor

Fax

669

Copyright 1998-2009 No Magic, Inc.

10
Plotter

EXTENSION DIAGRAMS
Networking Diagram

Toolbar Button/ Model Element

Button (Hot key)

Printer

Scanner

Modem

Router

Switch

Firewall

Database

Program

Internet Browser

Document

670

Copyright 1998-2009 No Magic, Inc.

10
File

EXTENSION DIAGRAMS
Networking Diagram

Toolbar Button/ Model Element

Button (Hot key)

Wireless Network

Internet

Building

City

Actor

User

HTTP

Ethernet

RMI

Communication Path

671

Copyright 1998-2009 No Magic, Inc.

10
NOTE

EXTENSION DIAGRAMS
Business Process Diagram

Business Process Diagram


This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

BPMN (Business Process Modeling Notation) is the most recognized standard used by business users for an end-to-end business process modeling. MagicDraw with its business-oriented notation support has become one useful tool for both business and IT users. Working with business and IT models in one tool helps save time and solve model interchange problems. The Business Process Diagrams convey the business processes of different participants in a modeled system. In a MagicDraw model, Process contains the Business Process Diagram, depicting it as a graph of the Flow Objects. The BP diagrams can be used for three basic BPMN sub-models creation:
Private (internal) business processes Abstract (public) processes Collaboration (global) processes

Within and between these three BPMN sub-models, many types of Diagrams can be created (Highlevel private process activities, detailed private business processes, Collaboration Processes, etc.). Since a BPMN Diagram may depict the Processes of different Participants, each Participant may view the diagram differently.

672

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Business Process Diagram Elements

673

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation Start Event None

The Start Event indicates where a particular process will start.

Start Event Message

Start Event Timer

Start Event Rule

Start Event Link

Start Event Multiple

674

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation Intermediate Event None

The Intermediate Events occur between a Start Event and an End Event. It will affect the flow of the process, but will not start or (directly) terminate the process.

Intermediate Event Message

Intermediate Event Timer

Intermediate Event Error

Intermediate Event Cancel

Intermediate Event Compensation

675

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation End Event None

The End Event indicates where a process will end.

End Event Message

End Event Error

End Event Cancel

End Event Compensation

676

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation End Event Link

End Event Terminate

End Event Multiple

Task

The Task is used when the work in the Process is not broken down to a finer level of Process Model detail.

Loop Task

677

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation Multiple-Instance Task

Compensation Task

Collapsed Sub-Process

A Sub-Process is a compound activity that is included within a Process. It can be broken down into a finer level of detail (a Process) through a set of subactivities.

Collapsed Transaction

Collapsed Loop SubProcess

678

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation Collapsed Multiple-Instance Sub-Process

Collapsed Compensation Sub-Process

Collapsed Ad-Hoc SubProcess

Expanded Sub-Process

679

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation Expanded Transaction

Expanded Loop SubProcess

Expanded Multiple-Instance Sub-Process

Expanded Compensation Sub-Process

Expanded Ad-Hoc SubProcess

680

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation Gateway

A Gateway is used to control the divergence and convergence of multiple Sequence Flows.

Data-Based XOR

Event-Based XOR

OR

Complex

AND

681

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation Sequence Flow

A Sequence Flow is used to show the order of how activities will be performed in a Process.

Conditional Sequence Flow

Default Sequence Flow

Compensation Association

The Compensation Association occurs outside the Normal Flow of the Process and is based on an event (a Cancel Intermediate Event) that is triggered through the failure of a Transaction or a Compensate Event. A Message Flow is used to show the flow of messages between two entities that are prepared to send and receive them.

Message Flow

682

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation Horizontal/Vertical Pool

A Pool represents a Participant in a Process.

Pool with Lanes

Data Object

The Data Objects provide information about what activities are required to be performed and/or what they produce.

Association

An Association is used to associate information with the Flow Objects.

Directional Association

683

Copyright 1998-2009 No Magic, Inc.

10

EXTENSION DIAGRAMS
Business Process Diagram

Toolbar Button/ Model Element

Button

Element Description

Text Annotation

Association of Text Annotation Group

A grouping of activities that does not affect the Sequence Flow.

The Business Process diagram posseses smart layout features. For more information about these features, see Smart Activity Diagram layout on page 618.

684

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS

Common Model Elements in the Diagrams


The following symbols are only graphical symbols. They do not possess any data. Model elements Text Box Text Box (HTML text) Button Function Type texts directly on the diagram. (X) Notation

(SHIFT+X)

685

Copyright 1998-2009 No Magic, Inc.

11
Note

MODEL ELEMENTS
Common Model Elements in the Diagrams

Model elements

Button

Function A graphical symbol containing a textual information. Use a note to add any information needed for your diagram. Usually the note is connected to another symbol using an anchor line.

Notation

Note (HTML text)

(N)

(SHIFT+N)

Comment

Comment (HTML text)

A graphical symbol, which gives an ability to display different remarks on the diagrams.

Anchor

(H)

Relates symbols and notes. Use an anchor to relate any symbol to a note or comment. The style of the anchor can be changed to rectilinear, oblique, or bezier. For a detailed description on editing the appearance of paths, see Drawing Relationship Paths on page 215.

686

Copyright 1998-2009 No Magic, Inc.

11
Constraint NOTE

M ODEL ELEM ENTS


Common Model Elements in the Diagrams

Model elements

Button (SHIFT+H)

Function The presentation of a constraint between two graphical symbols.

Notation

To select a constraint, right-click the Note Anchor button. Containment SHIFT+C

Shows a class, package or other model elements declared within another model element.

Dependency

Indicates a semantic relationship between two or more model elements. (SHIFT+D)

Image Shape

(I)

Provides a simple and quick way to insert pictures into a diagram. They can be logo, graph, table, etc. Separates different parts of a diagram with a horizontal line. Separates different parts of a diagram with a rectangular shape.

Separator (W) Rectangular Shape

687

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Common Model Elements in the Diagrams

Note, Comment
A note is a graphical symbol containing a textual information. It is used to add any information needed for your diagram. A note is usually connected to another element symbol using an anchor line. A comment is a graphical symbol used to display different remarks on the diagrams. To change the text display mode
1. Connect a note to an element symbol with an anchorlink. 2. From the note shortcut menu, select Text Display Mode and then Show Text, to dis-

play the text that is added to the note. Select Show Documentation, to display a documentation of the element on the note. To show the constraints and/or tagged values on the note
1. Connect a note to an element, the constraint and/or tagged value of which is speci-

fied, by an anchor link. 2. From the note shortcut menu, select Show Constraint and/or Show Tagged Value. Separate compartments with the constraint and tagged values will be displayed on the note. To remove a line between the compartments on the note
1. From the note shortcut menu, select Symbol(s) Properties. 2. Clear the Show Line Between Compartments check box in the open dialog.

Anchor
Use anchors to relate symbol to a note or comment. You can change the anchor style to rectilinear, oblique, or bezier. For a detailed description on editing the appearance of paths, see Drawing Relationship Paths on page 215.

688

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Common Model Elements in the Diagrams

Constraint path
The constraint for two graphical symbols (such as two classes or two associations) is shown as a dashed arrow from one element to the other. The constraint is labeled by the constraint string (in braces {}). The direction of the arrow represents a relevant information within the constraint. The client (the tail of the arrow) is mapped to the first position and the supplier (arrowhead) is mapped to the second position in the constraint. To add a constraint expression to the constraint path From the constraint path shortcut menu, choose Select Constraint and select one of the following:
Select <new>. The Select Extension Element Storage dialog box opens. Select the folder where the constraint will be stored and click OK. The Constraint Specification dialog box opens. Fill in the dialog box fields. Select an already created constraint from the list.

Image Shape
The Image Shape provides a simple and quick way to insert a picture into a diagram. This can be logo, graph, table, etc. The preferred shape size after the insertion is the actual image size. To insert a picture on the Diagram pane
1. Click the Image Shape button on the Common toolbar. The Open dialog box opens. 2. Select an image in *.gif, *.jpg, *.jpeg, *.svg, or *.png format and click Open.

Separator
You may use a horizontal separator to rule off different parts of a diagram. To set the text position of a separator name
From the separator shortcut menu, select Text Position, and then select the text position you need: Left (default), Center, or Right. Set the text position in the Project Options dialog box.

689

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

To set a separator line style (dashed or solid)


From the separator shortcut menu, select Line Style, and then select the style you need: Dashed (default) or Solid.

Documentation
Define a documentation for various documents in the Comment Specification dialog box. You can also define a comment stereotypes, tagged values, and constraints. To open the Comment Specification dialog box
1. In the element Specification dialog box, click Documentation/Hyperlinks. 2. Expand the Documentation/Hyperlinks branch in the Specification tree and double

click Comment. To display the documentation on the Diagram pane


1. Draw a note on the Diagram pane. 2. Using an Anchor to Note, connect the note to the model element containing the docu-

mentation you want to display.


3. From the note shortcut menu, select Text Display Node and then Show Documen-

tation. TIP! If a comment contains stereotypes, tagged values, and/or constraints, you can choose to display them in the content of the note.

UML Extension Elements


UML is a general purpose visual modeling language for specifying, constructing and documenting the artifacts of systems that can be used with all major application domains and implementation platforms. It has been widely adopted by both industry and academia as the standard language for describing software systms. However, the fact that UML is a general purpose notation may limit its suitability for modeling some particular specific domains (e.g. web applications or business processes), for which specialized languages and tools may be more appropriate.

690

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

UML provides a set of extension mechanisms (stereotypes, tag definitions, and constraints) for specializing its elements, allowing customized extensions of UML for particular application domains. These customizations are sets of UML extensions grouped into UML profiles. There are several reasons why you may want to extend a metamodel:
Assign a terminology that is adapted to a particular platform or domain (such as

capturing EJB terminology like home interfaces, enterprise java beans, and archives).
Assign a syntax for constructs that do not have a notation (such as in the case of

actions).
Assign a different notation for the existing symbols (such as being able to use a

picture of a computer instead of the ordinary node symbol to represent a computer in a network).
Add semantics that is left unspecified in the metamodel (such as how to deal with

priority when receiving signals in a statemachine).


Add semantics that does not exist in the metamodel (such as defining a timer, clock,

or continuous time).
Add constraints that restrict the way you may use the metamodel and its constructs

(such as disallowing actions from being able to execute in parallel within a single transition).
Add information that can be used when transforming a model to another model or

code (such as defining mapping rules between a model and Java code). MagicDraw goes beyond the traditional profiling. It allows developers to create a new modeling tool based on their UML profile. In the following sections, you will find information about how to work with profiles, stereotypes, and tags. For a detailed description of UML Profiling and DSL in MagicDraw, see the UML Profing and DSL Users Guide.

Stereotype
A stereotype defines how an existing metaclass may be extended. It enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass.

691

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

Just like a class, a stereotype may have properties, which may be referred to as tag definitions. When a stereotype is applied to a model element, the values of the properties may be referred to as tagged values. Any model element from the reference metamodel (any UML model element) can be extended by a stereotype. For example in UML, States, Transitions, Activities, Use cases, Components, Attributes, Dependencies, etc. can all be extended with the stereotypes. The stereotypes are created as separate model elements and can be drawn in the Class diagrams. According to UML, the stereotypes have to be stored in the Profiles (a subtype of Package), so the Class diagram for the stereotypes should be created in the Profile instead of the Package. For more information about working with symbols, see Chapter Working With Diagrams on page 197. To create a new stereotype
To create a new stereotype it is recommended to first create a profile (see the Section above).
Use the Stereotype button on the class diagram toolbar, Profiling Mechanism

group. The Select Metaclass dialog box opens. Specify the metaclass that you want to extend and click OK. Double-click to open the Stereotype Specification dialog box. For a detailed description of this dialog box, see Section Stereotype Specification dialog box on page 695.
From the Profile or Package shortcut menu in the Browser, select New, and then

select Stereotype. To create a stereotype with an image


1. Open the Stereotype Specification dialog box. 2. Click the Icon ... button and from the Open dialog box, select an image you want to place for the stereotype. Click the Open button.

NOTE

For more information about displaying stereotype icon on shape, see Displaying icon or image on the symbol or instead the symbol on page 285.

To view assigned image properties


1. In the Stereotype specification dialog box, invoke the Icon text box shortcut menu.

692

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

2. Select the Open Specification dialog box. The Image specification dialog box opens. You can see the format and location of the image, and specify the other image properties.

To display a stereotype icon as a main shape on the diagram pane


From the shape that has an assigned stereotype with an icon, select Presentation Options and then Shape Image from the Shape Shortcut menu. Note that all compartments must have been suppressed before.

To order stereotypes Stereotypes can be ordered. Symbol style of the first in the list stereotype will by applied to the symbol on diagram and in Browser. To order stereotypes:
1. Invoke symbol shortcut menu, select the Stereotype command. The list of stereo-

types opens (see Figure 282 on page 694). 2. Click the Order button. The Order Stereotypes dialog box opens (see Figure 283 on page 695). 3. Click Up or Down buttons to order stereotypes.

693

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

Figure 282 -- The Order button in the Stereotypes list, in the Class symbol shortcut menu

694

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

Figure 283 -- The Order Stereotypes dialog box

Saving of stereotype information in XMI Ability to choose options where to save applied stereotype information in XMI file. Information can be saved at the end of the file or inside the element information. By default stereotype information is stored at the end of XMI file. To store information inside element, open Environment Options dialog (choose Options - Environment command from main menu), and in General - Save/Load section select property Save stereotype information within element.

Stereotype Specification dialog box


Define the selected stereotype in the Stereotype Specification dialog box.

695

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

To open the Stereotype specification dialog box


Double-click the stereotype shape or select Specification from the stereotype

shortcut menu.

Figure 284 -- Stereotype Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.

Group name General

Box name Icon

Function

Set a general information about the stereotype.


Tag Definitions Name

An image file icon. Refer to the UML Profiling and DSL manual for the description of the advanced icons for relationships.

The name of a stereotype attribute.

Specify information for tag definition

696

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

Type

In 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 a 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. The classifier element of a stereotype attribute. The default value for tag definition. Creates a new tag definition. Deletes an existing tag definition.

Classifier Default value Create Delete Clone Up/Down Stereotyped Elements Name

The name of the stereotyped model element.

Shows the model elements affected by the stereotype.


Type

The type (class, use case, etc.) of a model element.

Add Remove

Applies a stereotype to the selected model element. Unapplies a stereotype from the selected model element.

Assigning a stereotype
You may assign a stereotype to an element in the following ways:
Open the corresponding element Specification dialog box. Click the "..." button in

the general pane, next to the Applied Stereotype property. Select one or more available stereotypes from the open list and click Apply. Or you may create a new stereotype by clicking New.
You may apply a stereotype to a model element easily from the model element

shortcut menu. To do this, follow these steps:


1. Select the model element on the diagram pane or in the Browser. Open its shortcut menu by right-clicking the mouse.

697

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

2. From the model elements shortcut menu, select the Stereotype command. The stereotype menu opens. 3. The list of all stereotypes is seen. You can type the name of the stereotype for which you are searching in the text box, above the list. Or, you can create a new stereotype by clicking the New button. 4. When you find the stereotype that you want, or create a new one, select the check boxes of those stereotypes to add to the model element. 5. Click the Apply button. On the diagram pane in the element name area, type two open angle brackets <<,

type the stereotype name and type two close angle brackets. Then you may type the element name itself. For example: if you want to name element Books and assign <<table>> stereotype, in the element name area type the following: <<table>>Books. The name completion for the stereotypes works in the name editing mode, press the Ctrl+Space or Ctrl+Backspace to get a list of possible to apply stereotypes.

Changing the stereotype display mode


MagicDraw version 15.0 and later has improved the stereotype display functionality. Now you can change the stereotype name and its icon visibility on the element shape instead of on the display stereotype image. To change the stereotype visibility mode on the element shape:
From the element shape shortcut menu, select the Presentation Options > Show

Stereotypes command and then select the desired property mode.


You may change the stereotype visibility mode in the symbol Properties dialog box >

Show Stereotypes combo box. Select one of the six property modes for Show Stereotypes. The property modes are described in the table below.
Show Stereotypes Property Mode Shape Icon of the stereotype on the shape Name of the stereotype Image of the stereotype instead of the element shape

Text and icon

displayed

displayed

698

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

Show Stereotypes Property Mode

Shape

Icon of the stereotype on the shape

Name of the stereotype

Image of the stereotype instead of the element shape

Text

not displayed

displayed

Icon

displayed

not displayed

Shape Image and Text

displayed

displayed*

Shape Image

not displayed

displayed*

Do Not Display

not displayed

not displayed

* - To display the image of a stereotype instead of the element shape all element compartments should be suppressed. NOTE

Shape Image and Text and Shape Image properties are not added to the Relationships, Roles and Diagram Frame element properties list.

Parent topic: Stereotype on page 691. Related topics: Assigning a stereotype on page 697.

699

Copyright 1998-2009 No Magic, Inc.

11
Tags

MODEL ELEMENTS
UML Extension Elements

Just like a class, a stereotype may have properties, which may be referred to as tag definitions. When a stereotype is applied to a model element, the values of the properties may be referred to as tagged values. The tag definitions are used to define new meta attributes of the extended metaclass, they are used as regular class attributes. For more infomration about working with class attributes, see Section Drag and drop the selected Opaque Behavior element from the Browser tree on the Diagram pane. on page 834. An actual instance of the tag definition is a tagged value (tag). A tag holds extra information like:
additional information that does not come with UML, for example Precondition for

Use Cases.
management data about the state and progress of the project such as author, status,

and tested.
language specific data for code generation tools.

A tagged value consists of two parts: name and value (example: Author = Joe). To create a new tag definition
1. Create a new stereotype. Open the Stereotype Specification dialog box. 2. Click the Tag Definitions tab and use the Create button to add a new tag definition for stereotype. Select the type of this property. It may be a standard UML data type or another user defined Stereotype. Regular classes should not be used as types of tag definition. 3. Click Close in the Stereotype Specification dialog box to save changes.

Refer to Section Stereotype Specification dialog box on page 695 for more information about Stereotype Specification dialog box fields not covered in this section.

700

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

Editing Tagged Value


To create a new tagged value
In the element Specification dialog box, Tags group, select an available tag

definition and click the Create Value button.

Figure 285 -- Tags dialog box

701

Copyright 1998-2009 No Magic, Inc.

11
Button

MODEL ELEMENTS
UML Extension Elements

Description

Moves the created value to an upper position in the list.

Up

Moves the created value to a lower position in the list.

Down

Opens an editable window for value.

Edit

Adds a new tagged value to the list.

Add

Removes a tagged value from the list.

Remove

To create default tag values


1. In the Stereotype specification dialog box, expand the Tag Definitions branch and

select the tag definition. 2. Specify a default value in the Default Value field. 3. Create an element and assign it a stereotype. The element will have tags with assigned default values. To set a default tag value to tag with empty value MagicDraw version 15.0 and later allows setting default tag values to tag with empty value. This functionality is needed when a stereotype is already assigned to an element and a new mandatory tag definition with a default value is created for the stereotype. After creating such a tag definition, the model elements that have the modified stereotype applied will have the newly created tags unset.

702

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

To set default values instead of empty values:


1. From the Tools main menu, select the Set Empty Tags to Defaults command. The

Select Package dialog box opens.


2. Select the scope of elements to which you want to set the default tag values. Note If you want to assign default values to all project tags, in the All data tree select the Data model and click the Add All button. Data package is added to the Selected objects list. Click OK. 3. The Question dialog box opens informing you that this action will set the mandatory

tags without values to defaults.


If you do not want to see this message again next time, clear the Show this message next time check box. 4. Click Yes. Now, the element with stereotype tags has been assigned default values.

The following conditions are required to set the default tag values:
1. The element should have an assigned stereotype with a specified default value prop-

erty.
2. The tag definition, to which you want to assign a default value, should contain no

value.
NOTE

The default tag values are not set when the stereotype property (tag definition) multiplicity is equal to 0.

Parent Topic: UML Extension Elements on page 690. Related topics Stereotype on page 691. Attribute on page 736.

Constraint
A Constraint represents additional semantic information attached to the constrained elements. It is an assertion that indicates a restriction that must be satisfied by a correct design of the system. The constrained elements are those elements required to evaluate the constraint specification. In addition, the context of the Constraint may be accessed, and may be used as the namespace for interpreting names used in the specification.

703

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

A Constraint is represented as a linguistic, enclosed in braces ({}), statement in some formal (OCL, C++, and other), or a natural language. There are 14 standard constraints in UML such as association, global, and parameter. You may also define your own constraints.

The Time and Duration Constraints


The Time Constraint specifies the combination of min and max timing interval values. The Duration Constraint defines a value specification that specifies the temporal distance between two time instants.

Working with Constraints


Edit constraints in the Constraints tab of the Model Element Specification dialog box.

704

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

To define a new constraint


From the element shortcut menu in the Browser, select New, and then select Constraint. Click the Inner Elements tab in the Specification dialog box for each model element and click the Create button (select Constraint from the open list, if needed). Specify the information aboutthe constraint in the open Constraint Specification dialog box. Click the Constraints tab in the Specification dialog box for each model element and click the Create button. Type the name and specification of the constraint.

NOTE

If a constraint is displayed in the Constraints tab of the Element Specification dialog box, it means this constraint is valid and applied for the element. If it is displayed in the Inner Elements list, this constraint is only owned by the element.

To apply a constraint to an element


1. Click the Constraints tab in the Specification dialog box for each model element and click the Apply button. 2. The Select Elements dialog box opens. Select a constraint existing in the model from the All Data tree and click the Add button to move it to the Selected Objects list. 3. Click OK.

705

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

The Constraint Specification dialog box


To open the Constraint Specification dialog box In the Edit Constraints dialog box, click the Add or Edit button.

Figure 286 -- Constraint Specification dialog box

Tab name

Box

Function

706

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

General Set a general information about the constraint.

Name Owner Specification

Enter the name of the constraint. The name of the model element to which the current constraint is assigned. Enter an expression of the constraint. Click ... button and in the Edit Specification window, choose OCL. The specification will be checked according to Object Constraint Language (OCL) Additional information can be added.

ToDo

Documentation/ Hyperlinks

Documentation

Set the tagged value documentation. It can be HTML text also.

Hyperlink Tags Constraints

Choose a hyperlink for the tagged value. It can be a file, model element, or web site. Creates, edits, and removes tagged definitions. Creates, applies, and removes a constraint for a tag.

OCL
Object Constraint Language (OCL) is a formal language used to express constraints. These typically specify the invariant conditions that must hold for the system being modeled. Expressions can be used in a number of places in a UML model:
To specify the initial value of an attribute or association end. To specify the derivation rule for an attribute or association end. To specify the body of an operation. To indicate an instance in a dynamic diagram. To indicate a condition in a dynamic diagram. To indicate the actual parameter values in a dynamic diagram.

707

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

There are four types of constraints:


An invariant is a constraint that states a condition that must always be met by all instances of the class, type, or interface. The invariant is described using an expression that evaluates to true if the invariant is met. Invariants must be true all the time. A precondition to an operation is a restriction that must be true at the moment the operation is going to be executed. The obligations are specified by the postconditions. A postcondition to an operation is a restriction that must be true at the moment the operation has just been executed. A guard is a constraint that must be true before a state transition discharged.

Invariants on attributes The simplest constraint is an invariant on an attribute. Suppose a model contains a class Customer with an attribute age, then the following constraint restricts the value of the attribute:
context Customer inv: age >= 18

Invariants on associations One may also put constraints on the associated objects. Suppose a model contains the class Customer that has an association to the class Salesperson with the role name salesrep and multiplicity 1, then the following constraint restricts the value of the attribute knowledgelevel of the associated instance of Salesperson:
context Customer inv: salesrep.knowledgelevel >= 5

Collections of objects In most cases the multiplicity of an association is not 1, but more than 1. Evaluating a constraint in these cases will result in a collection of instances of the associated class. Constraints can be put on either the collection itself, e.g. limiting the size, or on the elements of the collection. Suppose in a model the association between Salesperson and Customer has the role name clients and multiplicity 1..* on the side of the Customer class, then we might restrict this relationship by the following constraints:
context Salesperson inv: clients->size() <= 100 and clients->forAll(c: Customer | c.age >= 40)

708

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

Pre- and postconditions In the pre- and postconditions the parameters of the operation may be used. Furthermore, there is a special keyword result which denotes the return value of the operation. It can be used in the postcondition only. For example an operation sell was added to the Salesperson class.
context Salesperson::sell( item: Thing ): Real pre: self.sellableItems->includes( item ) post: not self.sellableItems->includes( item ) and result = item.price

Derivation Rules Models often define derived attributes and associations. A derived element does not stand alone. The value of a derived element must always be determined from other (base) values in the model. Omitting the way to derive the element value results in an incomplete model. Using OCL, the derivation can be expressed in a derivation rule. In the following example, the value of a derived element usedServices is defined to be all services that have generated transactions on the account:
context LoyaltyAccount::usedServices : Set(Services) derive: transactions.service->asSet()

Initial Values In the model information, the initial value of an attribute or association role can be specified by an OCL expression. In the following examples, the initial value for the attribute points is 0, and for the association end transactions, it is an empty set:
context LoyaltyAccount::points : Integer init: 0 context LoyaltyAccount::transactions : Set(Transaction) init: Set{}

Body of Query Operations The class diagram can introduce a number of query operations. The query operations are operations that have no side effects, i.e. do not change the state of any instance in the system. The execution of a query operation results in a value or set of values without any alterations in the state of the system. The query operations can be introduced in the class diagram, but can only be fully defined by specifying the result of the operation. Using OCL, the result can be given in a single expression, called a body expression. In fact, OCL is a full query language, comparable to SQL. The use of body expressions is an illustration thereof. The next example states that the operation getCustomerName will always result in the name of the card owner associated with the loyalty account:

709

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

context LoyaltyAccount::getCustomerName() : String body: Membership.card.owner.name

To check OCL syntax according to OCL grammar


1. Click the ... button near the Specification field in the Constraint Specification dialog box. The Edit Specification dialog box opens. 2. Select the OCL in Language field and check the Check OCL syntax check box. Incorrect expression in the Body text field will be highlighted in red.

Profiles
A Profile is a kind of Package that extends a reference metamodel. The primary extension construct is the Stereotype, which are defined as part of the Profiles. A profile introduces several constraints, or restrictions, on ordinary metamodeling through the use of the metaclasses defined in the package. It is a restricted form of a metamodel that must always be related to a reference metamodel, such as UML, as described below. It cannot be used without its ref-

710

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


UML Extension Elements

erence metamodel, and it defines a limited capability to extend metaclasses of the reference metamodel. The extensions are defined as stereotypes that apply to the existing metaclasses. The profile is defined as a package it has package properties in the Profile Specification dialog box. For a detailed description of packages, see Package on page 842.

Figure 287 -- Subsystem Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.

Profiles
The Profiles are defined using the UML extensibility mechanisms. These allow modelers to customize UML for specific domains such as software development processes. In MagicDraw, the mechanism of the profile is similar to the functionality of the modules, except that the profile is a package containing the stereotype <<profile>>, and its content is visible in both the Profiles dialog box and the UML extensions tabs of the Specification dialog boxes.

711

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
UML Extension Elements

Working with profiles


There are several ways to work with profiles. You may:
1. Create your own profile. 2. Use the preexisting one. 3. Import the preexisting one. 4. Export your created profile.

Further details on these functions can be found in the following sections.

Creating Profiles
Usually a profile contains specific stereotypes, constraints, and tagged values that you can use according to your needs. The Profiles often contain other specific model elements, which MagicDraw allows you to include in your profile. You can use your existing profile in other parts of the projects. Additionally, other users may reuse your profile as a module. To create your own profile
1. Create a profile element (in the Browser or using the Class Diagram toolbar, Profiling Mechanism group) 2. Add the stereotypes, constraints, and/or other model elements you need for extending UML.

Using and Importing Profiles


You may use other profiles in your project, or import them. MagicDraw offers several profiles, found in the <MagicDraw installation directory>/profiles folder. To use the preexisting profile in your project
1. From the File menu, select Use Module. 2. The Use Module dialog box opens. If needed, select the directory where the desired profile is located. Select the desired profile, and click OK.

The selected profile opens in the Browser tree as a read-only profile. You may use it in your project. You can also import and edit it, if necessary.

712

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Action

To import the preexisting profile into your project


From your selected profile, go to the Browser's shortcut menu. Select Modules and

then Import Module.


From the File menu, select Import. The Import dialog box opens. Select the profile

you want to import and click Open. The imported profile will open as an editable package in the Browser.

Exporting Profiles
If you want to use the existing profile in another project, or enable other users to use it, you need to save it in your selected directory. Exporting profiles is similar to exporting module functionality.
1. From the File menu, select Export, and then Module.

The Export Module dialog box opens. Select the profile package you want to export and add it to the Selected list. Write the description of the profile in the text box, click OK, and save it to the desired directory.

Action
An action is a named element that is the fundamental unit of an executable functionality. The execution of an action represents some transformations or processing in the modeled system, be it a computer system or otherwise. An action execution represents the run-time behavior of executing an action within a specific behavior execution. As action is an abstract class, all action executions will be the executions of a specific kind of action. When the action will be executed and what its actual inputs will be are determined by the concrete action and the behaviors in which it is used. The following are types of actions:
Call Behavior Action on page 716. Call Operation Action on page 717. Opaque Action on page 719. Send Signal Action on page 719 Any other Action.

713

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Action

See also: Working with actions on page 720. Usage in diagrams: Activity Diagram on page 607. Parent topic: Model Elements on page 685. Related topics Specification dialog boxes on page 265. Formatting Symbols on page 283.

Accept Event Action


The Accept event action is an action that waits for the occurrence of an event that meets specified conditions. If an accept event action has no incoming edges, then the action starts when the containing activity or structured node starts, whichever most immediately contains the action. In addition, an accept event action with no incoming edges remains enabled after it accepts an event. It does not terminate after accepting an event and outputting a value, but continues to wait for other events. An accept event action with no incoming edges and contained by a structured node is terminated when its container is terminated.
Notation Accept event action Description

The Order cancel request accept event action is connected to Cancel order with the exception handler relationship.

Rotated accept event action

The symbol of accept event action is rotated.

714

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Action

Accept time event action

The time event is connected to the call behavior action.

To set a trigger to an accept event action


1. Double-click the accept event action shape or select Specification from the shape

shortcut menu. 2. Click + in the Trigger field. The Trigger specification dialog box opens. Specify the trigger, which will be assigned for the accept event action. To draw the time event To draw the accept event action with the time event shape, in the activity diagram toolbar, select the Time Event button and then click on the diagram pane. To change the position of the accept event action name
1. Select the accept event action on the diagram pane:

2. Click the Rotate State button

on the upper-right side of the shape. Now the accept event action shape looks like the following:

715

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Action

To specify Is Unmarshal property In the Accept Event Action specification dialog box, select/clear the Is Unmarshal property, which indicates whether there is a single output pin for the event, or multiple output pins for the attributes of the event.

Call Behavior Action


The call behavior action invokes a behavior directly rather than invoking a behavioral feature that, in turn, causes the behavior. The argument values of the action are available to the execution of the invoked behavior. The execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. In particular, the invoked behavior may be an activity.

The Receive Order and Fill Order call behavior actions To assign a behavior to the call behavior action
From the call behavior action shortcut menu select the Behavior command. In the Call Behavior Action specification dialog box, modify the Behavior field.

NOTES

Double click the call behavior action with the assigned behavior - the behavior specification dialog box is opened or if the assigned behavior is a diagram, the diagram will be opened. After the behavior is assigned to the call behavior

action, a rake symbol is displayed on the action shape.

To create a new diagram for the call behavior action From the call behavior action symbols shortcut menu, select New Diagram and then diagram from the list. This accelerates the creation of behavior diagrams.

716

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Action

To select the name display mode on the call behavior action Stereotypes from the behavior can be visible on the call behavior action. You can select to show an action name, a behavior name or both by changing the Name Display Mode property in the call behavior action symbol Properties dialog box.

Call Operation Action


The call operation action transmits an operation call request to the target object, where it may cause the invocation of an associated behavior. You can display an action name and/or name of the operation on the call operation action shape. For example, if you have two call operation action elements calling the same operation, you may specify their names to distinguish which action means what.
Notation The call operation action with getOrder operation Description

In this example the call operation action has been assigned getOrder operation whose type is OrdersDB class.
The call operation action named Get supplementary

order Call operation action with hidden classified name

In this example the call operation action is named Get supplementary order. It has been assigned getOrder operation whose type is OrdersDB class.

The classified name of operation is hidden from the call operation action shape.

To assign an operation for the call operation action From the action shortcut menu, select the Operation command or set an operation in the Call Operation Action specification dialog box, Operation field.

717

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Action

MagicDraw version 15.0 and later allows the display of operation name and class of operation on the call operation action shape. When an operation is assigned to the call operation action, there are three name/operation display options available:
If the call operation action is not named, the name of the class is displayed under the

operation name.

If the name of the call operation action is the same as the assigned operation name,

then the name of the class is displayed under the operation name.

If the call operation action name differs from the assigned operation name, then

<class of the operation>::<operation name> is displayed under the call operation action name.

To hide the operation name and class of the operation from the call operation action shape From the call operation action shortcut menu, clear the Show Qualified Name for Operation check box. You may also customize this property in the call operation action Properties dialog box.
NOTE

When loading a project from a version older than MagicDraw version 15.0, by default the class of the operation is not displayed on the diagram pane. The Show Qualified Name for Operation option is unchecked.

718

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Action

Opaque Action
The opaque action is introduced for implementation-specific actions or for use as a temporary placeholder before some other actions are chosen. The opaque action has no specific notation. There are additional Body and Language text fields in the Opaque Action specification dialog box.

Send Signal Action


The send signal actions creates a signal instance from its inputs and transmits it to the target object, where it may cause the start of a state machine transition or the execution of an activity. The argument values are available to the execution of associated behaviors. The requester continues the execution immediately. Any reply message is ignored and is not transmitted to the requester. If the input is already a signal instance, use the Send object action.
Notation Send signal action Description

This example describes an order process.


1. First, an order is created (Create order

call behavior action). 2. Then, a signal to fill the order request is sent to the warehouse (Fill order request send a signal action). 3. Finally, an invoice is created (Create invoice call behavior action). The relationships are represented with control flow paths. To assign a signal to the send signal action
1. Double-click the send signal action shape or select Specification from the shape

shortcut menu. The Send Signal Action specification dialog box opens.
2. Click ... in the Signal Field. The Select Element dialog box opens. 3. Select the signal or create a new one.

719

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Action

Working with actions


To quickly create any action
1. In the activity diagram toolbar, right-click the Action button. The menu opens.

2. Select the Any Action command. The Select Action Metaclass dialog box opens.

3. Select an action metaclass from the list or type the first letter of the metaclass. Click

OK. The action is created. 4. Click on the diagram pane. An action symbol is drawn.

720

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Action

To assign pins for an action


1. In the action specification dialog box, select the Pins branch. 2. In the right window size, in the Input Pin field, select the Argument box. Click + but-

ton. A menu with input pin, action input pin, or value pin opens.

3. Select the pin from the list. The pin specification dialog box opens. In the Output Pin field, select the Result box and click + button. The Output Pin

specification dialog box opens.


NOTES
The Output pin is not included when selecting the send signal action. The Input pin is not included when selecting the accept event action.

Advancing actions: applying duration constraint


You can create and apply a time duration constraint on an action that states that the output must occur after delay from the input. To create and apply a time duration constraint
1. Select an action and create the input and output pins to specify the events. 2. Create a duration constraint for the action: m In the Call Behavior Action specification dialog box, select the

Constraints branch. At the bottom of the right side pane, click the Apply button. The Select Elements dialog box opens.
n Select the constraint storage place and click the Create button. In the

menu that opens, select the Duration Constraint command. The Duration Constraint specification dialog box opens.
3. Specify a duration interval. In the Duration Constraint dialog box, select the Expert

property display mode. Type the minimum and maximum duration for holding an activity in the Min and Max fields, e.g. type the following values: 0 sec and 30 sec. 4. Assign the events for the input and output pins:

721

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Action

a In the open Duration Constraint specification dialog box, right-click the

Specification field. The following menu opens:

b Select the Open Specification command. The Duration Interval

specification dialog box opens.


c Right-click the Min property and select the Open Specification

command. The Duration specification dialog box opens.


d In the Event field, click the ... button. The Select Element dialog box

opens. Select the activity input pin.


e Repeat steps c and d for the Max property - select the action output pin

as an event.
5. Apply the created duration constraint on the action. TIP

To return to the former dialog box in the specification dialog box, click the Back button.

722

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Actor

The sample below depicts an activity diagram with a duration constraint applied on an action.

Actor
Actors represent roles played by human users, external hardware, and other subjects. An actor does not necessarily represent a specific physical entity but merely a particular facet (that is, "role") of some entities that is relevant to the specification of its associated use cases. An actor requires 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. A general information about working with shapes is offered in Chapter 5, "Working With Diagrams."

723

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Actor

Define an actor in the Actor Specification dialog box.

Figure 288 -- the Actor Specification dialog box

Refer to the Specification dialog boxes on page 265 for more information on the specification elements.

Tab name Inner Elements

Box Name Type Create Delete

Function

The constraint name. The constraint type. The Constraint Specification dialog box opens. Define the constraint in the dialog box. Removes the selected constraint element from the actor.

Add a constraint to a actor

To define an actor as abstract


1. Double-click the selected actor or select Specification from the actor shortcut menu.

The Actor Specification dialog box opens.

724

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Association

2. Select the Is Abstract check box in the general properties group.

To draw an actor icon in the sequence diagram


1. Drag an actor from the Browser and drop it on the diagram pane. 2. From the classifier shortcut menu, select the Suppress Content command.

Association
An association in the 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 the 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 a general information about working with symbols, see Chapter 5, "Working With Diagrams." Specify an association in the Association Specification dialog box. Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box Association End A Name Function

Set a general information about the association.

The name of the class A. Click the button, to open the Name dialog box. If selected, a navigable owned end of the association indicates that the association is navigable from the opposite ends, otherwise the association is not navigable from the opposite ends.

Navigable

725

Copyright 1998-2009 No Magic, Inc.

11
Tab name

MODEL ELEMENTS
Association

Box Owned By

Function
If a Classifier is selected, the classifier name

from the opposite association end is displayed on the association end.


If an Association is selected, the name of the

association to which the association end belongs is displayed on the association end.
Multiplicity Default Value

The multiplicity value of an association end A. Click the ... button to open the Select Elements dialog box and select the value for the model elements tree. The name of the association end B. Click the button, to open the Name dialog box. If selected, a navigable owned end of the association indicates that the association is navigable from the opposite ends, otherwise the association is not navigable from the opposite ends.
If a Classifier is selected, the classifier name

Association End B Name Navigable

Owned By

from the opposite association end is displayed on the association end.


If an Association is selected, the name of the

association to which the association end belongs is displayed on the association end.
Multiplicity Default Value

The multiplicity value of an association end B. Click the ... button to open the Select Elements dialog box and select the value for the model elements tree.

To show the direction arrow near the association name


From the association shortcut menu, select the Show Direction Arrow check box. Default Direction Arrow direction is displayed according path creation direction. To change the Direction Arrow direction from the association shortcut menu, select the Reverse Direction Arrow command.

726

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Association

The Direction Arrow is graphical display most often used in top level domain class diagrams. The Direction Arrow helps to read diagram and explain diagram semantics. The Direction Arrow has no meaning in a model. Usually Direction Arrow is used in diagram where navigability is not defined yet. Direction Arrows are usually displayed for named associations. When you move on with your modeling and create mode detail diagrams with specified navigability, direction arrows and associations names usually are not displayed in this type of diagrams. See an example in Figure 289 on page 727 and Figure 290 on page 727. User and Account classes are connected with association. Navigation arrow may be displayed to either side, depending on the association name. If association name is belongs to - Direction Arrow should point from Account class to User class. If association name is has - Direction Arrow should point from User class to Account class.

Figure 289 -- The Direction Arrow points from Account class to User class

Figure 290 -- The Direction Arrow points from User class to Account class

To draw an association class


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 connected to the association. 1. Draw two classes. 2. Click the Association Class button on the diagram toolbar. 3. On the diagram pane click the first class shape (path source).

727

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Association

4. Drag the path to the second class (path destination) and drop it there.

Figure 291 -- Sample of the association class

NOTE

If you need to model a relationship among a number of classes, N-ary association is used.

To draw an N-ary association class


The N-ary association is drawn as a big diamond with all the associations attached to its points. Every involved class may have a role name and multiplicity. 1. Draw three classes on the Diagram pane. 2. Draw the N-ary association connector icon. 3. Connect all classes and the N-ary association connector icon using an association

path.

Association End
The associations ends are represented by properties, each of which is connected to the type of the end. When a property is an association end, the value or values are related to the instance or instances at the other end(s) of the association. An association end is the connection between the lines depicting an association and the icon (often a box) depicting the connected classifier. To open the Association End Specification dialog box
1. Double-click the association path. The Association Specification dialog box

appears.
2. Select the Association Ends group in the specification tree and expand it by clicking

the plus sign.

728

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Association

3. Double click the selected Association End. The Property Specification dialog box

opens.
From the association end shortcut menu, select Specification.

An association end is defined as a property it has attribute properties in the Property Specification dialog box. For a detailed description of attributes, see Drag and drop the selected Opaque Behavior element from the Browser tree on the Diagram pane. on page 834. Click the Expert in the Properties field for showing more properties of the association end. Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box Type Default Value Owner Type Modifier Function

Set general information about the association end

Shows an association end type - name of the class, to which the association end is related. Click the ... button to open the Select Elements dialog box and select the value for the model elements tree. Shows a class name, containing an association end as the property. Additional information about the type.
& - one class has a reference to other model elements. * - one class has a pointer to other model elements. [] one class has an array of other model elements.

Navigable

If selected, a navigable owned end of the association indicates that the association is navigable from the opposite ends, otherwise the association is not navigable from the opposite ends. The multiplicity value of an association end A. If true, the association end may only be read, not written. This property scope means that the values returned by the property have no duplicates.

Multiplicity Is Read Only Is Static

729

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Association

Tab name

Box Aggregation

Function

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.
None. The end is not an aggregate. Shared. 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.
Composite. 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 composites.
Is Derived

Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information. If the multiplicity is greater than one, then the set of related elements can be ordered or unordered.
False - the elements form an unordered set. This is the

Is Ordered

default and need not be shown explicitly.


True - the elements of the set are ordered, but

duplicates are still prohibited. This generic specification includes all ordering types.
Is Unique Qualifiers Name Type Property Default value Up Down Create

If true, the collection of values may not contain duplicates. The name of the assigned attribute of an association end. The type of the assigned attribute of an association end. Shows the owner of the qualifier - to which property it belongs. The initial value of an attribute of an association end. Moves item to an upper position in the list Moves item to a lower position in the list. The Property Specification dialog box opens.

Define qualifiers of the association end. A qualifier is an attribute of an association end.

730

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Association

Tab name

Box Delete

Function

Removes the qualifier.

To define an association end name


1. Open the Property Specification dialog box. 2. Type an association end name in the Name box. Select Role A of <class name> or Role B of <class name> from the association

shortcut menu, and then select the Edit Name subcommand, then type or edit the name directly on the Diagram pane. To make a special case of an association path (aggregation/composition)
1. Open the Property Specification dialog box. 2. Click the desired option button for an aggregation kind (None, Shared or Compos-

ite).
From the association shortcut menu, select Role A of (class name) or Role B of

(class name), and then select None, Shared, or Composite.


Click the Composition or Aggregation button and draw an appropriate path on the

diagram.
Right click the association path end and select Shared or Composite command from

the shortcut menu. To change the association navigability


The association navigability indicates whether it is possible to traverse an association within an expression of a classifier to obtain the object or set of objects associated with the instances. The navigability is shown as an arrow that can be attached to the end of the path to indicate that the navigation is supported toward the classifier attached to the arrow.
Open the Association End Specification dialog box and select/clear the Navigable

check box.
Select Role A of (class name) or Role B of (class name) from the association

shortcut menu, and then select/clear the Navigable check box..


NOTE

By default, an association is navigable on both sides and its navigability is not visible.

731

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Association

To display the association navigability From both association ends shortcut menu, select the Show Navigability check boxes. In the Figure below the association is navigable on both sides and its navigability is visible.

NOTEs

To open the assocation ends shortcut menu, right-click on the end of the association (on the association end area) on the diagram pane. Open the association shortcut menu and select the Role A of <class name> or Role B of <class name>.

To define the association end visibility


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, package, protected, and private). 1. Open the Property Specification dialog box. 2. From the Visibility drop-down list box, choose public, package, protected, or pri-

vate. To place multiplicity values in the association path ends


The association end multiplicity describes how many entities are participating at each association end:
0 zero and only zero. 1 one and only one. 0..1 zero or one. 0..* from zero to any positive integer. 1..* from one to any positive integer. * any positive integer.

1. Open the Property Specification dialog box.

732

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Association

2. Type or select from the list multiplicity value (1, *, 0..*, etc.) in the Multiplicity box. Open the Association Specification dialog box and from the Multiplicity drop-

down list box, select or type the multiplicity value for the desired association end.
From the association shortcut menu, select Role A of (class name) or Role B of

(class name), then select the multiplicity value (1, *, 0..*, etc.). To add, edit, or remove a qualifier to/from an association end
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. It 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. 1. Open the Association End Specification dialog box, Qualifiers group. 2. Click the Create button. The Property Specification dialog box opens. Define a

qualifier. 3. To remove the qualifier, click the Delete button. To show the association ends as attributes on linked class shapes
If two classes are linked with an association path, both classes have a property created with an opposite class assigned as the property type in them. This property can be displayed on the class shape as well as an association link. From the class shortcut menu, select Symbol(s) Properties. In the open Properties dialog box, the Attribute group, select one of the possible options near the Show Association End property:
All - property and association paths will be displayed on the diagram pane. Without Association Symbol - if an association symbol is deleted, the property will

be displayed on the class shape.


Do Not Show - neither property, nor association path will be displayed on the

diagram pane.

Advancing actions: navigable owned association ends


Navigability describes the need for an object to access another object by navigating across the link. According to the UML 2 specification, the association ends owned by the classes and associations

733

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Association

navigable. This improved functionality allows a proper management of the navigableOwnedEnd property for associations:
1. Able to manually change the ownership of an association end.

Figure 292 -- Sample of navigable endB, which is owned by association

Figure 293 -- Sample of navigable endB, which is owned by Class Library

To change the ownership of an association end, select the Owned By command from the Association End shortcut menu and then select the desired owner.
2. Set the navigability for the association ends owned by the associations while keeping

the ownership.

Figure 294 -- Sample of navigable endB, which is owned by Association

734

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Association in Use Case Diagrams

Figure 295 -- Sample of Non-navigable endB, which is owned by Association 3. Support the dot notation.

The ownership of association ends by an associated Classifier is now indicated graphically. The following example shows that endA is owned by the Customer class and endB is owned by the association.

Figure 296 -- Sample of endA owned by class and endB owned by association

To enable the dot notation from the Options menu select the Project command and then select the General project options branch. Next, select the Enable dot notation for associations check box.

Association in Use Case Diagrams


The participation of an actor in a use case, i.e. instances where an actor and a use case communicate with each other. This is the only relationship between actors and use cases. The association relationships are also known as communication associations. For more information on defining associations, see Realization on page 878.

735

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Attribute

Attribute
An attribute is a named property of a class that describes a range of values that can be held by the instances of that class. To create a new attribute
Double-click the selected class or select Specification from the class shortcut menu.

The Class Specification dialog box opens. Click the Attributes tab and then click the Create button. The Property Specification dialog box opens. Define a new attribute and click OK.
Select the Insert New Attribute from the class shortcut menu. Type the attribute

name directly on the class shape.


In the Browser tree, select an already created class. From the class item shortcut

menu, select New and then Property.


Press CTRL+ALT+A shortcut key and type the attribute name on the Diagram pane. Select a class shape and click the small orange Insert New Attribute smart

manipulation button. Define an attribute in the Property Specification dialog box. To open the Property Specification dialog
1. Open the Class Specification, Actor Specification, or Interface Specification dia-

log box. 2. In the Attributes tab, double-click the desired attribute in the tree, or click the Create button. Draw an association path and click on the association end.

736

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Attribute
Double-click the desired attribute directly on the diagram.

Figure 297 -- Property Specification dialog box

Click the Expert in the Properties field for showing more properties of the attribute. Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Options Type Function

Set a general information for the attribute.

Shows an attribute type. It can be another project class or primitive type such as int or double or other. Select a type from drop-down combo box or click ... button and select the type from the Select Element tree. Type a value for an attribute or click ... button and enter it in the Default Value dialog box.

Default Value

737

Copyright 1998-2009 No Magic, Inc.

11
Tab name

MODEL ELEMENTS
Attribute

Options Type Modifier

Function

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.

Navigable Multiplicity Is Read Only Is Static Aggregation

Indicates whether it is possible to navigate across the property. The multiplicity value of an attribute. If true, the property may only be read, and not written. This property scope means that the values returned by the property have no duplicates. 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.
None. The end is not an aggregate. Shared. 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.
Composite. 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.
Is Derived Is Ordered

Specifies whether the property is derived, i.e., whether its value or values can be computed from other information. If the multiplicity is greater than one, then the set of related elements can be ordered or unordered.
False - the elements form an unordered set. This is the

default and need not be shown explicitly.


True - the elements of the set are ordered, but duplicates are

still prohibited. This generic specification includes all ordering types.


Is Unique

If true, the collection of values may not contain duplicates.

738

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Attribute

To create an association class


1. Draw two classes (for example A and B). 2. From the class diagram toolbar, expand the Association elements group and select

the Association Class to draw. 3. Link the previously drawn classes with this path. An additional class with a dashed line will be created on the association between classes.

If an attribute type is another model class, this attribute can be represented as an association with a role (attribute name) between the owner class and the class of attribute type
Select Create Roles from the class shortcut menu. A list of available attributes opens. Select all or only 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.

To change an attribute name The attribute name must be unique in the class scope.
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 box.

To define the type of an attribute The attribute type can be of the other class, interface, or a primitive class, such as int or double.
Select the type of an attribute from the Type drop-down list box in the Attribute

Specification dialog box.

739

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Attribute

Type a colon : and the name of the attribute type just after the attribute name on the

diagram pane. If you specify a nonexistent type of an attribute, a new class is created.
Click the ... button in the Type field and select they type from the Select Elements

tree. To add additional information about the type of an attribute


1. Open the Attribute Specification dialog box. 2. Click the Show Expert Properties button to enlarge a list of general available attri-

bute properties.
3. Select a sign in the Type Modifier drop-down list box: & - one class has a reference to other model elements.
* - one class has a pointer to other model elements. [] - one class has an array of other model elements.

To set the attribute visibility


Visibility Name Public + Package ~ Protected # Private - Function

an attribute can be accessed by any other elements. an attribute can be accessed by elements from the same package. an attribute can be accessed from the inside of the selected class and classes derived from that class. an attribute can be accessed only from inside of that class.
Type +, ~, -, or # visibility marks just before an attribute name directly on a

diagram.
1. Open the Attribute Specification dialog box. 2. From the Visibility drop-down list box, select the desired item (public, package, pro-

tected, and private.).


NOTE

The attribute visibility is shown at the attribute signature.

To set an attribute scope


1. Open the Attribute Specification dialog box.

740

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Class

2. Click the Show Expert Properties button to enlarge the list of available attribute

properties. 3. Select the Is Static check box. To set the attribute multiplicity
1. Open the Attribute Specification dialog box (see above). 2. Click the Show Expert Properties button to enlarge the list of available attribute

properties. 3. Select or set the multiplicity value in the Multiplicity drop-down box. To set the attribute changeability The attribute changeability controls the access by operations on the class on the opposite end.
Name Is Read Only Function

When false - no restrictions on modifications. When true - the value may not be altered after the object is instantiated and its values initialized. No additional values can be added to a set.
1. Open the Attribute Specification dialog box (see above). 2. Click the Show Expert Properties button to enlarge the list of available attribute

properties.
3. Select/clear the Is Read Only check box.

Class
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 properties; the bottom list compartment holds a list of operations. The property and operation compartments are optional and you may suppress them.

741

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Class

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 runtime execution provides its extension, that is, its instances. Classes are declared in the class diagrams and used in most of other diagrams. UML provides a graphical notation for declaring and using these 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. It has a data structure, behavior, and relationships to other elements. The name of a class has a scope within the package in which it is declared and the name must be unique (among class names) within its package.

Working with classes


A general information about working with shapes is offered in Chapter 5, "Working With Diagrams." All options associated with a class can be set in the Class Specification dialog box. Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box Base Classifiers Function

Set general information about the class

Click ... and assign an existing class from a model in the Select Elements dialog box or create a new one. Click ... and assign an existing interface from a model in the Select Elements dialog box or create a new one. Name of the class port. Type, assigned to the port. Provided classifier is displayed. Required classifier is displayed. Name of classifier, owning port. Creates a new port. Removes an existing port from the class.

Realized Interfaces

Ports

Name Type Provided Required Classifier Create Delete

742

Copyright 1998-2009 No Magic, Inc.

11
Tab name

M ODEL ELEM ENTS


Class

Box

Function

Signal Receptions

Manage the receptions of a class. For more information about receptions, see Reception on page 881.
Name Type Create Delete

Behaviors

Name of the behavior. Type, assigned to the behavior. Choose item from the list - activity, interaction, state machine. Removes a behavior from the class. Model element name. Model element type. The corresponding specification dialog box opens. Define the selected model element in the dialog box. Removes the selected model element from the class.

Inner Elements

Name Type Create

Add another element to a .

Delete

To insert an inner element in the selected class


1. Double-click the selected class or select Specification from the class shortcut menu.

The Class Specification dialog box opens.


2. Click the Inner Elements tab and then click the Create button. Select the element

you wish to add from the list. 3. Click the selected element. 4. The corresponding Specification dialog box opens. Define the class, use case or interface, and click OK. To show an inner element on the diagram
1. Select a created inner element in the Browser. 2. From the element shortcut menu, select Create Symbol.

743

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Class

To generate operations for setting or getting private data to the selected class
From the class shortcut menu, select Tools and then Create Setters/Getters. For a detailed description, see Creating Setters / Getters on page 404.

To control a list of operations and attributes that are visible on a diagram


Select Edit Compartment from the class shortcut menu. The Compartment Edit dialog box opens.

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. To define a class as abstract and/or active
1. Double-click the selected class or select Specification from the class shortcut menu.

The Class Specification dialog box opens.


2. Select the Is Abstract, and/or Is Active check box in the General tab.

To show members (attributes and operations) on the classifier shape according to the visibility
From the shape shortcut menu, point to Presentation Options, and then select one of the check boxes in the Show Members subcommand. Possible choices:
All; Only Public; Not Private.

Creating A Structured Class


There is a way to create a piece of model with a single click: class, with a composite structure diagram inside it and hyperlink them. It may be useful for architects and system engineers. The same applies to SysML Block and IBD. To create a structured class:
1. Create a class diagram.

744

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Class

2. In the class diagram toolbar, right-click the Class button. A menu with available

options opens. Select the Structured Class element. 3. Click on the diagram. The class element with a hyperlink to a composite structure diagram is created. 4. Select the class in the Browser to see its structure. To do this, choose Select in Containment Tree on the diagram from the class shortcut menu, .

Figure 298 -- Example of structured class

See the above example of a structured class. In the Browser you may see the created class with the composite structure diagram inside it. The class is linked with the diagram. It means that after double click the diagram, or the Browser, the composite structure diagram will be opened. For more information about hyperlink,s see Defining Hyperlinks Between Elements on page 303. The names of the class and the composite structure diagram are synchronized. Type a name for the class, for example, Order, and the name of the diagram is automatically changed to Order and vice versa. This is synchronization of a diagram name and its context name. For more information about diagram name and its context synchronization, see Diagram name and its context name synchronization on page 205.

745

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Class

Design Patterns
In MagicDraw, you may create and edit the design patterns for the selected class. A detailed description of templates can be found in the Design Patterns of Reusable Object-Oriented Software. To create the design pattern for the selected class
1. From the class shortcut menu, select Tools, and then Apply Pattern. The Pattern

Wizard dialog box opens. 2. Select the design pattern you want to apply and select the desired options. Click OK. Select the class and then Apply Pattern from the Tools menu. For a detailed description of this dialog box, see Section Controlling Merge memory usage on page -394.

Class presentation options


To organize a class data on the class shape
Select Presentation Options from the class shortcut menu. The following choices

are available in the Presentation Options submenu.


The class presentation options can also be defined in the Project Options dialog

box. For a detailed description of this dialog box, see Section Project Options on page -158.

746

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Class

Figure 299 -- Presentation Options submenu Command Show Operations Signature Function (when selected)

Shows the operation signature (arguments, return value, etc.).

747

Copyright 1998-2009 No Magic, Inc.

11
Command

MODEL ELEMENTS
Class

Function (when selected)

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 Attributes Sort Mode By Name
By Stereotype By Visibility No Sorting

Shows the full track of the type of an attribute from the root package. Shows the initial attribute value. Shows the attribute visibility (public, package, private, or protected). Shows the operation visibility (public, package, private, or protected). Attributes compartment is suppressed. Operations compartment is suppressed. Shows only the public attributes and operations. The default settings are restored and shows all attributes and operations. Choose the sorting parameter:
Sort attributes by name. Sort attributes by stereotype Sort attributes by visibility (public, package, private, or

protected)
No sorting is executed.

Operations Sort Mode By Name


By Stereotypes By Visibility No Sorting

Choose the sorting parameter:


Sort operations by name. Sort operations by stereotype. Sort operations by visibility (public, package, private, or

protected)
No sorting is executed.

Show More Sign For Attributes

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 operations are omitted by editing a class compartment. Shows the stereotypes on a class.

Show More Sign For Operations

Show Stereotypes

748

Copyright 1998-2009 No Magic, Inc.

11
Command

M ODEL ELEM ENTS


Collaboration

Function (when selected)

Show Constraints Show Tagged Values Show Owner

Shows the constraints on a class. Shows the tagged values on a class. Shows the owners (package, subsystem, or model) name on a class.

Collaboration
A collaboration is represented as a kind of classifier. It defines a set of cooperating entities to be played by instances (its roles) as well as a set of connectors that define the communication paths between the participating instances. The cooperating entities are the properties of the collaboration. A collaboration specifies a view (or projection) of a set of cooperating classifiers. It describes the required links between instances that play the roles of the collaboration as well as the required features of the classifiers that specify the participating instances. Several collaborations may describe different projections of the same set of classifiers.

749

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Collaboration

Define a collaboration in the Collaboration Specification dialog box.

Figure 300 -- Collaboration Specification dialog box

Refer to the Specification dialog boxes on page 265 for the information of the specification elements not covered in this section.
Tab name Behaviors Box Name Type Create Function

Name of the added behavior. Type of the behavior Select the kind of behavior you want to create - Activity, Interation, or State Machine. The coresponding Specification dialog box opens.

Any behavior attached to the collaboration type applies to the set of roles and connectors bound within a given collaboration use.

Delete

Remove the selected behavior from the collaboration.

750

Copyright 1998-2009 No Magic, Inc.

11
Tab name

M ODEL ELEM ENTS


Collaboration

Box Name Type Create

Function

Inner Elements

Name of the inner collaboration element. Type of the inner collaboration element. Select an element from the list. The corresponding Specification dialog box opens. Define the element and click Back to return to Collaboration Specification. Remove the inner element from the collaboration.

Delete

To assign a new behavior to the collaboration


In the Collaboration Specification dialog box, Behaviors tab, click the Create

button. Define a behavior in the open Specification dialog box.


From the collaboration shortcut menu in the Browser, select New, and then Activity,

Interaction, or State Machine. Type the name of the behavior and modify it in the open Specification dialog box.
NOTE

You can edit the assigned classifier role in the Collaboration Specification dialog box, Behaviors tab.

To draw the Collaboration


1. From the Composite Structure diagram toolbar, select the Collaboration to draw on

the diagram pane and type the collaboration name. 2. Draw Part from the Composite Structure diagram toolbar and from the shortcut menu, Type submenu, select an already existing (or create a new) classifier as the part type. 3. From the Composite Structure diagram toolbar, select the Connector to connect the parts.

751

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Combined Fragment

4. From the Composite Structure diagram toolbar, select the Collaboration Use element

to draw on the collaboration. Select an already existing, or create new collaboration for the Collaboration Use. 5. From the Composite Structure diagram toolbar, select the Role Binding path to connect the parts and Collaboration Use role, which can be selected in the Select Role dialog box.

Combined Fragment
A fragment is an abstract notion of the most general interaction unit. It is a piece of an interaction. Each interaction fragment is conceptually like an interaction by itself. Using the Combined Fragment, a fragment of a sequence diagram can be separated. MagicDraw represents twelve kinds of fragments: Alternatives, Loop, Option, Parallel, Break, Negative, Critical Region, Consider, Ignore, Weak Sequencing, Strict Sequencing, and Assertion.
Tab name General Property Interaction Operator Function

Select an operator for the fragment. Available options: seq, alt, opt, break, par, strict, loop, critical, neg, assert, ignore, consider.

752

Copyright 1998-2009 No Magic, Inc.

11
Tab name

M ODEL ELEM ENTS


Component

Property

Function

Formal Gates Actual Gates

In the Formal Gates and Actual Gates panes are listed inside or outside combined fragment created gates. For more information about gates, see Gate on page 781.
Guard Create Delete Up Down

Operands

Separated alternative parts of the interaction fragment. Creates a new guard value. Removes a value from the list. Moves an item to an upper position in the list. Moves an item to a lower position in the list.

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.

Component
A component represents all kinds of elements pertaining to piecing together software applications. They can be simple files, such as DLLs or executables. According to UML it is possible to list component properties. The following compartments are available for the component:
Provided/required interfaces Realizations

753

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Component

Artifacts

For more information about working with symbols, see Chapter 5, "Working With Diagrams."

754

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Component

Define the selected component in the Component Specification dialog box.

Figure 301 -- Component Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.

Tab name Ports

Box Name Type Provided Required Classifier Create Delete

Function

Name of the port. Type, assigned to the port. The provided classifier is displayed. The required classifier is displayed. Name of the classifier, owning a port. Creates a new port. Removes an existing port from the component.

755

Copyright 1998-2009 No Magic, Inc.

11
Tab name

MODEL ELEMENTS
Component

Box Name Type Add Remove

Function

Provided/Required Interfaces

Name of the provided/required interface. Possible values - provided or required. Adds the provided/required interface. Removes the provided/required interface from the list. Name of the realizing classifier Type of the classifier (class, interface, etc.) The model element name, owning a classifier. Click button to open the classifier

Realizing Classifiers

Name Type Owner

Specification dialog box.


Add Remove Behaviors Name Type Create Delete Inner Elements Name Type Create

The Select Elements dialog box opens. Select an element from the model element tree. Removes a realizing classifier from the list. Name of the behavior. Type, assigned to the behavior. Select an item from the list - activity, interaction, state machine. Removes a behavior from the class. The model element name. The model element type. Select an element from the list. The corresponding specification dialog box opens. Define the selected model element in the dialog box. Removes the selected model element from the component.

Add another element to a component.

Delete

Displaying interfaces, realizations, and artifacts on the component The following component shape compartments can be displayed or hidden:
Provided/Required interfaces

756

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Connector
Realizing classifiers Manifested artifacts.

To show/hide the interfaces, realizations, and artifacts on the component shape:


From the component shape shortcut menu, select Presentation Options and then

clear/select Suppress Interfaces, Suppress Realizations, or Suppress Artifacts check box.


From the component shape shortcut menu, select Symbol(s) Properties. Change

the same check box values in the open Component Properties dialog box.

Connector
Specifies a link that enables communication between two or more instances. This link may be an instance of an association, or it may represent the possibility of the instances being able to communicate because their identities are known by virtue of being passed on as parameters, held in variables or slots, or because the communicating instances are the same instance. The link may be realized by something as simple as a pointer or by something as complex as a network connection. In contrast to the associations, which specify the links between any instance of the associated classifiers, the connectors specify the links between instances playing the connected parts only.

757

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Connector

Each connector may be attached to two or more connectable elements, each representing a set of instances. For more information about working with symbols, see Chapter 5, "Working With Diagrams." Define the selected connector in the Connector Specification dialog box.

Figure 302 -- the Connector Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box Owner Contract Function

The name of the element, which owns a connector. Assign an activity, interaction, or state machine to a connector. Click the ... button and select the elements in the Select Elements dialog box. Possible choices:
delegation (default) assembly

Set a general information about the include relationship.

Kind

758

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Connector

To open the Connector End Specification dialog box


1. In the Browser tree, expand Interaction, Relations branch and in the Connector

group, select one of the roles. Select Specification from the shortcut menu, or double-click the role. The Connector End Specification dialog box opens.

Figure 303 -- the Connector End Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box name Owner Function

Set general information about the link end


Role Multiplicity

The name of the connector, which onws the connector end.

The name of the property, representing a lifeline. The multiplicity value of the connector end.

759

Copyright 1998-2009 No Magic, Inc.

11
Tab name

MODEL ELEMENTS
Connector

Box name Defining End

Function

When a connector has an association specifying the type of the connector, connector end, this property refers to the appropriate association end. Refers to the part containing the port that the connector is attached to.

Part With Port

Drawing a connector end The connector end information can be displayed on the diagram.

760

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Containment

Containment

A 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.

Data type
A data type is a type whose values have no identity; that is, they are pure values. It is a classifier and inherits the general features of the classifier: visibility, generalizable element properties, and operations. MagicDraw provides the following predefined data types: boolean, byte, char, date, double, float, int, Integer, long, short, void, and String. You may also create Enumeration or Primitive data types. To create a new Data Type, including Enumeration or Primitive
From the Browser, select New from the class or New Element from the package,

subsystem, or model shortcut menu, and then select Data Type, Enumeration, or Primitive.

761

Copyright 1998-2009 No Magic, Inc.

11
NOTE:

MODEL ELEMENTS
Data type

In the Class, Package, Subsystem, and Model Specification dialog boxes, Inner

Elements tab, click Create and select a data type. You may create an enumeration by clicking the Enumeration button from the class diagram toolbar:

To create a symbol of the created data type


From the created data type shortcut menu in the Browser, select the Create Symbol command.

762

Copyright 1998-2009 No Magic, Inc.

11
Tab name

M ODEL ELEM ENTS


Data type

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Box Owner Function

General Set general information about the data type Inner Elements

Shows an element, which contains the data package. The default data packages contain the UML Standard Profile. Displays a constraint name. Shows an item type, in this case Constraint. Click the button to open the Constraint Specification dialog box. The Constraint Specification dialog box opens. Define the constraint. Removes the selected constraint from the inner elements list.

Name Type

Add constraint to data t ype.

Create Delete

Enumeration
The enumeration defines a kind of data type whose range is a list of predefined values, called enumeration literals. An Enumeration may contain operations, but they must be pure functions (this is the rule for all data type elements).

763

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Data type

Define an enumeration in the Enumeration Specification dialog box.

Figure 304 -- Enumeration Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box Owner Function

Set a general information about the enumeration

Shows the name of the element, which contains an enumeration.

764

Copyright 1998-2009 No Magic, Inc.

11
Tab name

M ODEL ELEM ENTS


Data type

Box Name Enumeration

Function

Enumeration Literals

The name of the enumeration literal. The owner of the enumeration literal. Click the button to open the Enumeration Literal Specification dialog box and edit the information about the enumeration literal. The Enumeration Literal Specification dialog box opens. Define a new enumeration literal. Removes the selected enumeration literal from the enumeration. Displays a constraint name. Shows an item type, in this case Constraint. Click the button to open the Constraint Specification dialog box. The Constraint Specification dialog box opens. Define the constraint. Removes the selected constraint from the inner elements list.

An enumeration literal defines an element of the runtime extension of an enumeration data type.

Create Delete Name Type Create Delete

Inner Elements

Add a constraint to an enumeration

To add an enumeration literal


An enumeration literal defines an element of the run-time extension of an Enumeration data type. It has no relevant substructure, therefore, it is atomic. 1. Open the Enumeration Specification dialog box. 2. In the Enumeration Literals tab, click Create button. 3. The Enumeration Literal Specification dialog box opens. Define an enumeration lit-

eral. Click Back to return to Enumeration Specification dialog box.


Choose the Insert New Enumeration Literal command from the Enumeration

shortcut menu. To suppress the enumeration literals


1. From the enumeration shortcut menu, select Presentation Options. 2. Select the Suppress Enumeration Literals check box. Use the smart manipulation button with minus sign on the diagram pane,

enumeration symbol.

765

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Decision Node

To open the Enumeration Literal Specification dialog box


1. Open the Enumeration Specification dialog box. 2. In the Enumeration Literals tab expand tree, double-click the desired literal, or click

the Edit, or Create button.

Primitive
A primitive defines a predefined data type without possessing any relevant UML substructure; that is, it has no UML parts. A primitive data type may have an algebra as well as operations defined outside of UML (for example, mathematically). The primitive data types used in UML include Integer, Unlimited Integer, and String.

Decision Node
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 shape, which may have one or more incoming transitions and two or more outgoing transitions. A decision in an activity diagram is used much like a choice or junction point in the state diagrams. Decision points allow to separate and merge the transition paths back together. The Decision Node can be converted to a Merge Node. Right-click to open the shortcut menu and select Convert to Merge Node.

Dependency
A dependency is a relationship signifying that a single or a set of model elements requir es other model elements for their specification or implementation. This means that the complete semantics of the depending elements is either semantically or structurally dependent on the definition of the supplier element(s).

766

Copyright 1998-2009 No Magic, Inc.

11
NOTE

M ODEL ELEM ENTS


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. You may also draw a dependency between a class and other class elements, such as attributes and operations.

For more information about working with the symbols, see Chapter 5, "Working With Diagrams." Example of the dependency relationships See the example of dependency relationships in the Figure below.

767

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Dependency

The Dependency and Its Kinds Specification dialog boxes Dependency, abstraction, and usage relationships defined in the dialog box of the same structure. They differ from one another only by the corresponding Specification name.

Figure 305 -- Dependency Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box name Source Target Function

Shows the name of the dependencys supplier element. Shows the name of the dependencys client element.

768

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Dependency

Template Binding dependency

Term

The OMG UML specification (UML 2.2: Superstructure) states: A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template.

Define a binding dependency in the Template Binding Specification dialog box.

Figure 306 -- Binding Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box name Source Target Function

Shows the name of the dependencys supplier element. Shows the name of the dependencys client element.

769

Copyright 1998-2009 No Magic, Inc.

11
Tab name

MODEL ELEMENTS
Dependency

Box name Name Type Actual Create Delete

Function

Template Parameter Substitutions

The name of the template parameter. The type of the template parameter. A reference to a formal template parameter of the target template signature. The Select Template Parameter dialog box opens. Select the item from the list and click OK. Removes the template parameter substitution.

The parameter substitutions owned by this template binding.

Abstraction
An abstraction is a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints. In the metamodel, an abstraction is a dependency in which there is a mapping between the supplier and the client. Define an abstraction relationship in the Abstraction Specification dialog box. For a detailed description of this dialog box, see The Dependency and Its Kinds Specification dialog boxes on page 768.

Usage
A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. In the metamodel, a usage is a dependency in which the client requires the presence of the supplier. Define a usage relationship in the Usage Specification dialog box. For a detailed description of this dialog box, see The Dependency and Its Kinds Specification dialog boxes on page 768.

Package Merge
A package merge is a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It has a dependency relation with the applied stereotype <<merge>>.

770

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Dependency

Define a merge relationship in the Dependency Specification dialog box. For a detailed description of this dialog box, see The Dependency and Its Kinds Specification dialog boxes on page 768.

Package Import
A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace. It is a relationship between an importing namespace and a package, indicating that the importing namespace adds the names of the members of the package to its own namespace. It is dependency relation with applied stereotype <<import>>. Define an import relationship in the Dependency Specification dialog box. For a detailed description of this dialog box, see The Dependency and Its Kinds Specification dialog boxes on page 768. To draw the Package Import link, select the Package Import path to draw in the Class diagram toolbar, from the Abstraction group.

Element Import
An element import is defined as a directed relationship between an importing namespace and a packageable element. The name of the packageable element or its alias is to be added to the namespace of the importing namespace. It has a dependency relation with the applied stereotype <<import>>. Define an import relationship in the Dependency Specification dialog box. For a detailed description of this dialog box, see The Dependency and Its Kinds Specification dialog boxes on page 768. To draw the Element Import link, select the Element Import path to draw in the Class diagram toolbar, from the Abstraction group, .

Access
An access relationship shows that elements can only be accessed from a package, and it cannot be referenced.

771

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Deployment Specification

To draw an Access link:


3. In the Class diagram toolbar, from the Abstraction group, select the Package Import

path to draw.
4. Open the Package Import Specification dialog box and set the Visibility property to

private.

Deployment
To draw a deployment link
1. In the implementation diagram toolbar, click the Deployment button and draw a

deployment link from a node to an artifact.


2. From the node shortcut menu, Presentation Options submenu, clear the Suppress

Deployment check box to display the deployed artifacts on the node instance shape.

Deployment Specification
The Deployment Specification is a type of Artifact. To draw the Deployment Specification on the diagram pane In the Implementation diagram toolbar, right-click the Artifact button group. In the open list, select the Deployment Specification to draw.

The Deployment Specification is a general mechanism to parameterize a Deployment relationship. To specify the Deployment relationship
1. Create the Deployment Specification.

772

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Exception Handler

2. Between the Deployment relationship and Deployment Specification draw the Depen-

dency relationship. The Dependency is drawn without an arrow.

Exception Handler
An Exception Handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node. The Exception Handler may be drawn from an Output Pin to an Input Pin or from an Action to an Input Pin:

773

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Extend

Extend
A relationship from an extending use case to an extended use case that specifies how and when the behavior defined in the extending use case can be inserted into the behavior defined in the extended use case. The extension takes place at one or more specific extension points defined in the extended use case. Define the extend relationships in the Extend Specification dialog box.

Figure 307 -- the Extend Specification dialog box

774

Copyright 1998-2009 No Magic, Inc.

11
Group name General

M ODEL ELEM ENTS


Extend

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Box Condition Function

Set general information about the extend relationship


Extension Points Assign

An expression specifying the condition, which must be fulfilled if the extension is to take place.

Select the extension points to be assigned to the extend relationship

Select predefined extension points you wish to assign to the extend relationship in the Extension Points dialog box. Remove an already created extension point from the use case. Move the selected extension point to an upper position. Move the selected extension point to a lower position.

Unassign Up Down

To open the Extension Point Specification dialog box


1. Select Specification from the use case shortcut menu, or double-click the use case

shape. The Use Case Specification dialog box opens.

775

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Flow Final Node

2. Expand the Extension Points group and then click on the created extension point.

(Double-clicking opens an independent Extension Points Specification window).

Figure 308 -- Extension Point Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box name Owner Function

A general information about the extension point is displayed.

The name of the use case, which owns the extension point.

Flow Final Node


It is a final node that terminates a flow and destroys all tokens that arrive at it. It has no effect on other flows in the activity.

776

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Fragment

See the following example for the flow final element notation in a MagicDraw project.

For more information about defining the flow final node, see Containment on page 761.

Fragment
MagicDraw represents twelve kinds of fragments: Alternatives, Loop, Option, Parallel, Break, Negative, Critical Region, Consider, Ignore, Weak Sequencing, Strict Sequencing, and Assertion.

Alternative Fragment
The alternative fragment models ifthenelse constructions.

777

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Fragment

To draw an Alternative Fragment


In the Sequence diagram toolbar, select the Alternatives element to draw.

Combined Fragment
The UML Combined Fragment element allows the expressions of interaction fragments to be defined in the sequence diagram. The combined fragments provide a means to define special conditions and subprocesses for any sections of lifelines in the sequence diagram by specifying an area where the

778

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Fragment

conditions or subprocesses apply. Using the Combined Fragment, a fragment of the sequence diagram can be separated. To draw a Combined Fragment
In the Sequence diagram toolbar, select the Alternatives element to draw. From the combined fragment shortcut menu select the Covered Lifelines command

and in the Covered Lifelines dialog box, select the lifelines to display.
In the Sequence diagram toolbar, Options group, select the Parallel combined

fragment to draw.
Draw the Critical Region combined fragment from the Sequence diagram toolbar,

Option button group.

779

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Function Behavior

Function Behavior
Term

The OMG UML specification (UML 2.2: Superstructure) states: A function behavior is an opaque behavior that does not access or modify any objects or other external data. Primitive functions transform a set of input values to a set of output values by invoking a function. They represent functions from a set of input values to a set of output values. The execution of a primitive function depends only on the input values and has no other effect than to compute output values. A primitive function does not read or write structural feature or link values, nor otherwise interact with object memory or other objects. Its behavior is completely self-contained. Specific primitive functions are not defined in the UML, but would be defined in domain-specific extensions. Typical primitive functions would include arithmetic, Boolean, and string functions. During the execution of the function, no communication or interaction with the rest of the system is possible. The amount of time to compute the results is undefined. FunctionBehavior may raise exceptions for certain input values, in which case the computation is abandoned.

The function behavior allows modeling external functions that take only inputs and produce outputs. It has no effect on the specified system. To create the function behavior In the Browser tree, right-click the Data package. In the shortcut menu, select the New Element command and then select Function Behavior .

Parent topic: Model Elements on page 685.

780

Copyright 1998-2009 No Magic, Inc.

11
Gate
Term

M ODEL ELEM ENTS


Gate

The OMG UML specification (UML 2.2: Superstructure) states: A Gate is a connection point for relating a Message outside an InteractionFragment with a Message inside the InteractionFragment. Gates are connected through Messages. A Gate is actually a representative of an OccurrenceSpecification that is not in the same scope as the Gate. Gates play different roles: we have formal gates on Interactions, actual gates on InteractionUses, expression gates on CombinedFragments.

MagicDraw version 15.0 and later allows the display of messages leaving or entering a sequence diagram, interaction use, or combined fragment. The Gate is a connection point for representing a message from the outside to the current sequence diagram, interaction use, or combined fragment. Gates can be used in three cases:
For passing and returning arguments to InteractionUse, which calls some Interaction. For displaying exceptions as messages that stops an interaction execution and

leaves it.
For calling sequence blocks represented as CombinedFragments.

Gate has no notation. Gates are created as message ends when drawing messages to/from a diagram frame, an interaction use, or a combined fragment. Parent topic: Model Elements on page 685. Usage in diagrams: Sequence Diagram on page 587. Related topics: Model on page 825. Lifeline in the Sequence Diagram on page 812. Combined Fragment on page 752. Interaction Use on page 803.

781

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Gate

To create a formal gate


Draw a call, send, create, or delete a message from the diagram frame. Draw a reply message to the diagram frame. Draw a call, send, create, or delete a message from the combined fragment (inside

combined fragment).
NOTES
You can view the created gates of message in the Message specification dialog box. In the Send Event list box you may see formal gate and the Receive Event lists the actual gate. The Gate uses text from the message as an identification name. For example, a message name or a message operation.

To draw create an actual gate of the formal gate


Draw a call, send, create, or delete a message to the interaction use, which refers to

the diagram with the formal gates. The Select Formal Gate dialog box opens.
Draw a reply message from the interaction use, which refers to the diagram with the

formal gates. The Select Formal Gate dialog box opens.


Draw a call, send, create, or delete a message to the combined fragment (outside

combined fragment). The Select Formal Gate dialog box appears.


NOTE

You can also view the formal and actual gates in the gates Interaction specification dialog box, Interaction Use dialog box, Combined Fragment dialog box, and the Actual Gates and Formal Gates panes.

To select a formal gate for the actual gate


1. Draw a message to invoke the Select Formal Gate dialog box (see To draw create

an actual gate of the formal gate on page 782). 2. Select one of the listed formal gates and click OK. An actual gate is created. Or from the message shortcut menu, select the Select Formal Gate command. The Select Formal Gate dialog box opens.
NOTE

The Select Formal Gates command exists only if there are formal gates.

782

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Gate

Figure 309 -- The Select Formal Gate dialog box

783

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Gate

The formal gate and actual gate usage in the sequence diagram
See Figure 310 on page 784 where the getBalance message is drawn from the diagram frame to the theirBank lifeline. The getBalance message has a gate.

Figure 310 -- Formal gates usage in Sequence diagram

See Figure 311 on page 785 where the actual gate is presented. The Balance Lookup interaction use refers to the Balance Lookup sequence diagram. The getBalance message (see the 2nd message) has selected the formal gate and automatically repeats the data of the getBalance message from the Balance Lookup diagram.

784

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Gate

Figure 311 -- Actual gates usage in sequence diagram

785

Copyright 1998-2009 No Magic, Inc.

11
Term

MODEL ELEMENTS
Generalization

Generalization
The OMG UML specification (UML 2.2: Superstructure) states: A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier. Where a generalization relates a specific classifier to a general classifier, each instance of the specific classifier is also an instance of the general classifier. Therefore, features specified for instances of the general classifier are implicitly specified for instances of the specific classifier. Any constraint applying to instances of the general classifier also applies to instances of the specific classifier. For more information about working with symbols, see Chapter 5, "Working With Diagrams." Define the generalization in the Generalization Specification dialog box. Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box General Specific Function

The name of the parent element. The name of the child element.

Set a general information about the generalization relationship.

To group generalization paths into a tree


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. Select Make Sub Tree from the parent class shortcut menu.
Select Make Sub Tree from the parent package shortcut menu.

786

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Generalization

To ungroup a generalization tree


1. Click the generalization trees hollow triangle pointing to a parent element. 2. From the tree shortcut menu, select Ungroup Tree.

To separate the generalization path from the generalization tree


From the generalization path shortcut menu, select Remove From Tree. Drag one generalization path to another class.

NOTE

This command is available if the same tree contains the selected generalization path.

Generalizable elements
A generalizable element is a model element that may participate in a generalization relationship.
Name Is Abstract Function

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 be an instance of the generalizable element that is not an instance of a child. An abstract generalizable element cannot be instantiated since it does not contain all the necessary information. Specifies whether the generalizable element is with descendants. True indicates that it may not have any descendant. False indicates that it may have some descendants (whether or not it actually has any descendants at the moment.)

Is Leaf

To define a generalizable model element (class, package, use case, etc.) as abstract or leaf
1. Open the corresponding Specification dialog box. 2. Select the Is Abstract or Is Leaf check box(es) in the General tab.

787

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Generalization

Generalization sets
Each generalization is a binary relationship that relates classifier to a more specific classifier. The Generalization Set defines a particular set of generalization relationships that describes the way in which a general classifier may be divided using specific types. For example: the Person class can be specialized as either a Male Person or a Female Person. Furthermore, the Person may be specialized as an employee. The Female Person and Male Person constitute one Generalization Set and the Employee another:

The label next to the generalization designates the name of the Generalization Set to which the generalization belongs.

788

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Generalization

The generalization set may be drawn as two or more generalization lines drawn to the same arrowhead. In this case it is labeled once. Drawing such a tree helps to understand the grouping of generalizations sets quickly .

The generalization set may contain only generalizations that have the same General element. The following is the example of generalizations, which may not have the same generalization set:

From the above example, the generalization, which is between the Flower and Rose classes, may not belong to the kind of tree generalization set, because its general element is Flower and the general element for the kind of tree generalizations is Tree. MagicDraw only lists all generalization sets that are allowed to assign. If a generalization set created in project does not have any generalizations, it may contain any generalization sets.

789

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Generalization

To create a new or assignan existing generalization set


In the Generalization Specification dialog box, near the Generalization Set box

click "..." button. In the open Select Elements dialog box assign an existing generalization set or click the Create button to create new generalization set.
NOTE!

In the Generalization Set list many generalization sets can be listed, but in this case on the diagram pane, near the generalization, only the first in the list is displayed.
On the diagram pane, select a generalization. From the

generalization shortcut menu, select the Generalization Set command. In the opened list, select the generalization set or click the New button and in the indicated place create a new Generalization Set to which the current generalization is assigned.
On the diagram pane select some generalizations, which you want to

assign to the generalization set. From the shortcut menu, select the Generalization Set command.
NOTE!

The Generalization Set command is enabled only if all selected generalizations have the same general element.
Draw or move a generalization line to a generalization set tree or to a

generalization that belongs to a generalization set. The newly created generalization is assigned to the same generalization set.

790

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Generalization

The Generalization Set dialog box Specify the Generalization set in the Generalization Set dialog box.

Figure 312 -- the Generalization Set dialog box

791

Copyright 1998-2009 No Magic, Inc.

11
Tab name General

MODEL ELEMENTS
Generalization

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Box Is Disjoint Function

Set a general information about the generalization relationship.


Is Covering

Indicates whether or not a set of specific Classifiers in a Generalization relationship has a common instance. If the value is true, the Classifiers for a particular GeneralizationSet have no members in common; that is, their intersection is empty. The default value of the Is Disjoint property is false. Indicates whether or not a set of specific Classifiers is covering for a particular general classifier. When the value is true, every instance of a particular general Classifier is also an instance of at least one of its specific Classifiers for the Generalization Set.

In the Generalization Set dialog box, the Generalization list box lists the generalizations which are assigned to the current generalization set. To assign a generalization:
1. Near the Generalization list click the "..." button. The list of available generalizations

opens. 2. Near the generalization you want to assign to the generalization set, select the check box. 3. Click the Apply button.
NOTE!

The generalizations that belong to other sets are allowed to be selected. Selecting such a generalization removes it from the previous set and adds it to the current one.

To open the Generalization Set symbol properties


On the diagram pane select the generalization set name and from its shortcut menu, select the Symbol(s) Properties command.

If the Show Powertype check box is selected, on the diagram pane, next to the generalization, the label of Powertype of Generalization Set is displayed instead of the Generalization Set name. The default Show Powertype property value is false.

792

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Include

If the Show Complete/Disjoint check box is selected, on the diagram pane, next to the generalization, the values of Is Covering and Is Disjoint properties are displayed on the diagram. The default Show Complete/Disjoint property value is false. To group the generalizations to the generalization set trees
1. Select a general classifier on the diagram pane. 2. From the classifier shortcut menu, select the Make Generalization Set Tree com-

mand. The generalizations are grouped to trees, according to the generalization sets. When the Make Generalization Set Tree command is selected, a tree is created for each generalization set. The generalizations, which do not belong to any generalization set, are grouped to a separate tree. For example:

Include
An include (uses) relationship from the use case A to the use case B indicates that an instance of the use case A will also contain the behavior as specified by B. The include relationship is used when there are common parts of the behavior among two or more use cases. Each common part is then extracted to a separate use case, to be included by all base use cases having this part in common. Since the primary use of the include relationship is to reuse

793

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Include

the common parts, what is left in the base use case is usually not complete in itself but dependent on the included parts for meaning and context. This is reflected in the direction of the relationship, indicating that the base use case depends on the addition but not vice versa. Define the extend relationships in the Include Specification dialog box.

Figure 313 -- Include Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about specification elements not covered in this section.
Tab name General Box Owner Function

Set a general information about the include relationship.


Including Case Addition

The name of the use case, which owns the include relationship.

Name of the use case to where the relationship goes. Name of the use case from where the relationship comes.

794

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Information Flow

Information Flow
An Information Flow specifies that one or more information items circulates from its sources to its targets. Information flows require some kind of information channel for transmitting information items from the source to the destination. An information channel is represented in various ways depending on the nature of its sources and targets. It may be represented by connectors, links, associations, or even dependencies. For example, if the source and destination are parts in some composite structure diagrams such as a collaboration, then the information channel is likely to be represented by a connector between them. Or, if the source and target are objects (which are a kind of InstanceSpecification), they may be represented by a link that joins the two, and so on. The information flow and the information item notation are added. You may draw them using the Information Flows toolbar in the class or composite structure diagram:

You can also create information flows in the associations in cthe lass diagram and on the connectors in the composite structure diagrams:
3. Draw classes and associations. 4. From the association shortcut menu select command Symbol(s) Properties and

select the Show conveyed information A and Show conveyed information B checkboxes.

795

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Information Item

5. Drag the class or information item on an association. An information flow is created.

Information Item
The InformationFlows package provides mechanisms for specifying the exchange of information between entities of a system at a high level of abstraction. The Information flows describe a circulation of information in a system in a general manner. They do not specify the nature of the information nor the mechanisms by which this information is conveyed (message passing, signal, common data store, parameter of operation, etc.). They also do not specify sequences or any control conditions. It is intended that, while modeling in detail, representation and realization links will be able to specify which model element implements the specified information flow, and how the information will be conveyed. An information item is an abstraction of all kinds of information that can be exchanged between objects. It is a kind of classifier intended for representing information in a very abstract way, the one which cannot be instantiated. One purpose of information items is to be able to define preliminary models, before making a detailed modeling decisions on types or structures. Another purpose of information items and information

796

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Instance

flows is to abstract complex models by using a less specific but more general representation of the information exchanged between entities of a system. In a classifier, the information item can be represented as a name inside a rectangle. The black triangle icon on top of this rectangle indicates that it is an information item.

the information Items (or any conveyed classifiers) can be displayed on any relationship:
1. Select the information item on the diagram pane and drag it on the relationship

shape. The Add Conveyed Information dialog box opens.

2. After specifying information flow and direction arrow, click OK.

Instance
An instance specification specifies the existence of an entity in a modeled system and completely or partially describes the entity. The description may include:

797

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Instance

The classification of an entity by one or more classifiers of which the entity is an

instance. If the only classifier specified is abstract, then the instance specification only partially describes the entity.
A kind of instance based on its classifier or classifiers - for example, an instance

specification whose classifier is a class describes an object of that class, while an instance specification whose classifier is an association describes a link of that association.
A specification of values of structural features of the entity. Not all structural features

of all classifiers of the instance specification need to be represented by slots, in which case the instance specification is a partial description.
A specification of how to compute, derive, or construct the instance (optional).

MagicDraw allows you to create the instances of classifiers class, interface, enumeration, use case, actor, node, component, artifact, and other classifiers. The instances are shown using a rectangle by underlining the name string of an instance element. The instance of an actor is shown as an actor stick man figure with the actors name string below the symbol. For more information about working with symbols, see Chapter 5, "Working With Diagrams." Define the selected instance in the Instance Specification dialog box. An instance is an individual unit with its own identity and value. Each instance has a descriptor model element. To open the Instance Specification dialog box

798

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Instance

Select Specification from the instance shortcut menu or double-click the instance shape.

Figure 314 -- Instance Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box name Owner Classifier Name Type Owner Function

The name of the element, containing an instance. The name of the assigned classifier. The name of the artifact or instance. An element, which appears as a type of deployed artifact. The name of the element, containing deployed artifact.

Set general options for the instance.


Deployed Artifacts

List of an artifacts or artifact instances that has been deployed to a deployment target.

799

Copyright 1998-2009 No Magic, Inc.

11
Tab name Slots

MODEL ELEMENTS
Instance

Box name Type Attribute Instance

Function

The name, which is the owner of the attribute. The name of the attribute. The name of an instance, to which the current instance is set as a default value.

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).

To assign an already existing classifier to an instance


1. Right-click the instance shape and select Type from the instance shortcut menu. 2. Select the classifier you wish to assign to an instance. Open the Instance Specification dialog box and in the Classifiers field, click the ...

button. The Select Elements dialog box opens. Move the classifier from All to the Selected list and click OK. To assign/unassign an existing classifier for an instance in the Instance Specification dialog box
1. Double-click an instance shape or select Specification from the shape shortcut

menu.
2. The Instance Specification dialog box appears. Click the ... button in the Classifi-

ers property. To assign a new classifier, select an element in All and click the Add button to move it to the Selected list.
To unassign the assigned classifier, select an element in the Selected list

and click the Remove button. To hide/show an assigned classifier


From the instance shortcut menu, select/clear the Show Classifier check box.

To set the initial value to an attribute of the assigned classifier


1. Double-click an instance shape or select Specification from the shape shortcut

menu.

800

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Instance

2. The Instance Specification dialog box opens. Click the Slots tab. 3. Click the Edit Value button and type the name of the value.

To show/hide slots of the assigned classifier


Clear/select Suppress Slots check box in the instance shortcut menu. NOTE

By default slots of the classifier are suppressed.

To display slot type on the instance symbol Slot type can be optionally displayed on Instance or Part shapes. Property Show Slot Type is added to slot symbol properties (select command Symbol(s) Properties from instance shortcut menu to invoke Properties dialog). Slot type name (see Figure 315 on page 801), slot type qualified name (see Figure 316 on page 801) or no slot type (see Figure 317 on page 802) may be displayed next to slot.

Figure 315 -- Slot type name is displayed next to slot

Figure 316 -- Slot type qualified name is displayed next to slot

801

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Instance Specification

Figure 317 -- No slot type is displayed

To select slot in a diagram Slot can be selected in a diagram. This allows the deletion of a slot straight from the diagram and to attach a note to a slot.

Figure 318 -- Slot selected in a diagram

Instance Specification
An instance specification represents an instance in a modeled system. In the implementation diagram Node Instance, Component Instance, Artifact Instance elements are the same Instance Specification elements with an assigned component, node or artifact. To create a Component Instance
1. In the Implementation diagram toolbar, click the Component Instance button. The

Select Components dialog box opens. 2. Select a component from the list or click the Create button to create a new one. Click OK.

802

Copyright 1998-2009 No Magic, Inc.

11
TIP!

M ODEL ELEM ENTS


Interaction Use

The same is valid for the Node Instance and Artifact Instance creation. Use the Node Instance button to create the Instance Specification with assigned Node and the Node Instance will have a Node shape.

To display specification value on the Instance Specification symbol Specification value can be optionally displayed on the Instance Specification symbol. Check box Show Specification Value is added to Instance Specification properties (select command Symbol(s) Properties from instance shortcut menu to invoke Properties dialog).

Figure 319 -- Specification value is displayed on the Instance Specification symbol

Assigning Instance Specification as Default Value quickly You can drag Instance Specification element on Classifier property on a diagram to assign it as default value. Drag and drop is available only if Instance Specification classifiers are compatible with Property type and if Property is editable.

Interaction Use
Interactions are units of behavior of an enclosing Classifier. They focus on the passing of information with Messages between the Connectable Elements of the Classifier.

803

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Interface

A reference to the interaction can be created. Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section. To add a reference to an element
In the Interaction Use specification dialog box, click the Refers To drop down list. A

list of interactions, created in the project, opens. Click ... button, to add the interaction from the Select Element tree. Click the Create button to create a new interaction.
From the interaction use shortcut menu select the Refers To command. In the

appeared list select the interaction or create a new one. To add an actual gate
1. Add a reference to the diagram, from which the diagram frame formal message is cre-

ated. 2. To the current interaction use draw an actual message with the selected formal gate.
For more information about working with gates, see Gate on page 781.

Interface
An interface is a specifier for the externally-visible operations of a class, component, or other classifiers (including subsystems) without a specification of the internal structure. Each interface often specifies only a limited part of the behavior of an actual class. The set of interfaces realized by a classifier is its provided interfaces, which represent the obligations that instances of that classifier have to their clients. They describe the services that the instances of that classifier offer to their clients. All options associated with an interface can be set in the Interface Specification dialog box.

804

Copyright 1998-2009 No Magic, Inc.

11
Tab name

M ODEL ELEM ENTS


Interface

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Box name Function

Signal Receptions

Manage the receptions of an interface in the Signal Receptions pane. For more information about signal receptions, see Reception on page 881.
Name Type Create

Inner Elements

The model element name. the model element type. Select an element from the list. The corresponding (class, use case, interface, enumeration, data type, primitive, collaboration, or constraint) specification dialog box openss. Define the selected model element in the dialog box. Remove the selected model element from an interface.

Add class, use case, interface, enumeration, data type, primitive, collaboration, or constraint to an interface

Delete

Provided and Required Interfaces


The set of interfaces realized by a classifier is its provided interfaces, which represent the obligations that instances of that classifier have to their clients. They describe the services that the instances of that classifier offer to their clients. The interfaces may also be used to specify required interfaces, which are specified by a usage dependency between the classifier and the corresponding interfaces. Required interfaces specify services that a classifier needs in order to perform its function and fulfill its own obligations to its clients. To draw a Provided Interface
1. In the Class diagram toolbar, select the Interface Realization path to draw from a

class to an interface.

805

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Interface

2. Suppress the attributes and operations of the interface (from the interface shortcut

menu, Presentation Options submenu, select the Suppress Attributes and Suppress Operations check boxes.).

To draw a Required Interface


1. In the Class diagram toolbar, select the Usage path to draw from a class to an inter-

face.
2. Suppress the attributes and operations of the interface (from the interface shortcut

menu, Presentation Options submenu, select the Suppress Attributes and Suppress Operations check boxes.).

To draw both Provided and Required Interfaces together

Working with s is similar to working with classes. For more information, see Working with classes on page 742. A general information about working with shapes is offered in Chapter 5, "Working With Diagrams."

806

Copyright 1998-2009 No Magic, Inc.

11
Term

M ODEL ELEM ENTS


Interface

Provided and Required Interfaces in the Composite Structure diagram


The OMG UML specification (UML 2.2: Superstructure Specification) states: Ports represent interaction points between a classifier and its environment. The interfaces associated with a port specify the nature of the interactions that may occur over a port. The required interfaces of a port characterize the requests that may be made from the classifier to its environment through this port. The provided interfaces of a port characterize requests to the classifier that its environment may make through this port. Information about provided and required interfaces is crucial in the assembly stage of complex internal structures. It helps to decide where connectors should be attached. Provided and required interfaces are valuable parts of the UML Composite Structure Diagram and SysML Internal Block Diagram. A provided interface is shown using the "lollipop" notation attached to the port and required interface is shown using the "fork" notation attached to the port (see Figure 320 on page 807).

Figure 320 -- Provided and Required interface

807

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Interface

In the Composite Structure diagram you cannot draw provided and required interfaces itself, but with the new functionality of MagicDraw you can display preexisting port with the required and provided interfaces as images.

Figure 321 -- Provided and required interface in the Composite Structure diagram

Lollipop and fork symbols in the Composite Structure diagram are implemented as small attachments to a Port symbol (like name label). It is not the same as the independent standalone notation of the interface, it is only part of port symbol. It is important for Composite Structure diagrams where real Interfaces (as Classifiers) can not be used. It is an optional notation, a port does not display provided or required interfaces by default. Displaying provided/required interfaces in the Composite Structure diagram
1. Create provided and required interfaces in the Class diagram. See section To draw a

Provided Interface on page 805 and section To draw a Required Interface on page 806. 2. In the Composite Structure diagram, select Related Elements from the port shortcut menu and then Display Provided/Required Interfaces. Or, in the individual Port symbol Properties dialog box, select the Show Provided Interfaces and Show Required Interfaces check boxes.

808

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Internal transition

As Port can provide or require many interfaces, displayed or hidden interfaces can be managed in the Edit Compartment dialog box.

Provided/required interfaces in the Component diagram


A component specifies a formal contract of the services that it provides to its clients and those that it requires from other components or services in the system in terms of its provided and required interfaces. The required and provided interfaces may optionally be organized through ports. To add and manage the added provided and required interfaces quickly, in the Component Specification dialog box, select the Provided/Required Interfaces pane. For more information about provided and required interfaces, see Provided and Required Interfaces on page 805.

Internal transition
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 transitions, see The join vertices are used to merge several transitions emanating from the source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers. on page 877.

809

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Lifeline

Specify the internal transition in the Transition Specification dialog box. For a detailed description of this dialog box, see Transition Specification dialog box on page 901. To define an internal transition
1. Double-click the state or select Specification from the state shortcut menu. The

State Specification dialog box opens.


2. Click the Internal Transitions group. 3. Click the Create button. The Transition Specification dialog box opens. Specify an

internal transition. To remove the internal transition, click the Delete button. The Information Flow can be related to any relationship.

Lifeline
A lifeline represents an individual participant in the Interaction. The lifeline represents only one interacting entity. It is shown using a rectangle symbol. For more general information about working with symbols, see Chapter 5, "Working With Diagrams."

810

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Lifeline

Define the lifeline in the Lifeline Specification dialog box.

Figure 322 -- Lifeline Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Set a general information about the lifeline. Box Owner Represents Function

The name of the interaction, which owns a lifeline. The property name, which represents a lifeline in an interaction.

To assign a type (classifier) to a lifeline


1. Right-click the lifeline shape and select Type from the shortcut menu. 2. Select the classifier you wish to assign to a classifier role or click New and select the

element from the list.

811

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Lifeline in the Sequence Diagram

To hide/show a base classifier


Select the Show Classifier check box from the lifeline shortcut menu.

Lifeline in the Sequence Diagram


A lifeline represents the existence of the object at a particular time. It stretches from the top to the bottom of the diagram. In the sequence diagram, an object lifeline denotes an Object playing a specific role. For more information about the Lifeline Specification dialog box, see Lifeline Specification dialog box on page 811. To destroy a sequence object - a large X at the end of its lifeline marks its destruction
Select Destroy Mark from the lifeline 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 the activation bar size
1. Click the desired activation bar on the Diagram pane.

NOTE

2. Drag the activation bar to the desired direction. After resizing, the lines on the activation bar are thickened, but the size may not change automatically.

To add a recursive message to a lifeline Click the Recursive Message button on the diagram toolbar and click the lifeline on the desired place where you wish to draw this message.

812

Copyright 1998-2009 No Magic, Inc.

11
Link

M ODEL ELEM ENTS


Link

Link is instance specification with assigned classifier - association. An instance specification whose classifier is an association represents a link and is shown using the same notation as for an association, but the solid path or paths connect instance specifications rather than classifiers. End names can adorn the ends. Navigation arrows can be shown, but if shown, they must agree with the navigation of the association ends. You can show role names and navigability on the link symbol (seeFigure 323 on page 813). Properties Show End A, Show End B, and Show Navigability are added to link shortcut menu and symbol properties. These properties are displayed according classifier association.

Figure 323 -- Role names displayed on the link symbol

Manifestations
An artifact embodies or manifests a number of model elements. It owns the manifestations, each representing the utilization of a packageable element. To create the manifestations, simply draw the Manifestation link from an artifact to a component.

813

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Message

To display the manifested artifacts on the component shape From the component shortcut menu select Presentation Options and then clear the Suppress Artifacts check box.

Message
A Message is an element that defines one specific kind of communication in an Interaction. A communication can be, for example, raising a signal, invoking an Operation, creating or destroying an Instance. The Message specifies not only the kind of communication given by the dispatching Execution Specification, but also the sender and the receiver. A message is shown as a line from the sender message end to the receiver message end. The form of the line or arrowhead reflect the properties of the message:

Name

Function

Notation in Communication Diagram

Notation in Sequence Diagram

Asynchronou s Message

The sender is not waiting for the recipients acceptance.

814

Copyright 1998-2009 No Magic, Inc.

11
Name

M ODEL ELEM ENTS


Message

Function

Notation in Communication Diagram

Notation in Sequence Diagram

Synchronous Message

The operation that should be completed before the caller resumes the execution. A call message represents the request to invoke a specific operation. A send message specifies the sending of a request to invoke a specific operation. The reply message returns the values to the caller of the previous call, completing the execution of the call. A create message specifies the creation of a specific operation. Destroy message represents the destruction of the instance described by the lifeline. The message is connected directly to an object (not lifeline). A large X mark is displayed on the objects lifeline in the messages destination.

Call Message

Send Message

Reply Message

Create Message

Destroy Message

815

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Message

To open the Message Specification dialog box


Select Specification from the message shortcut menu or double-click the message. Open the Association Role Specification dialog box. Open the Messages tab and

click the Edit button.

Figure 324 -- Message Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box name Signature Owner Send Event Function

Set a general information about the message.

The definition of the message sort, depending on its type. Note that this field is not editable. The name of the interaction, which owns the message. The name of the sender interaction.

816

Copyright 1998-2009 No Magic, Inc.

11
Tab name

M ODEL ELEM ENTS


Message

Box name Receive Event Message Sort

Function

The name of the receiver interaction. The type of the action: synchCall, asynchCall, asynchSignal, . Click the button to select a type from the list:
synchCall asynchCall asynchSignal createMessage deleteMessage reply

Arguments

Create Delete Up Down

Specify a message argument value that appears during the execution.

A list of arguments opens. Select an argument and specify the value in the Argument field. Removes an argument from the list. Move the selected item to an upper position. Move the selected item to a lower position.

To draw a message on the connector


1. Click the Message to Right or Left button on the diagram toolbar. 2. Click the desired connector on the Diagram pane. A message arrow is placed to the

connector you click on the diagram. NOTE


A message flow has two directions: right and left. Choose one of them by clicking the associated button on the diagram toolbar.

To set an action type for a message


1. Open the Message Specification dialog box. 2. Click the Message Sort ... button and select the action type from the drop-down list.

See Message on page 814. To show/hide the numbers of the messages


From the communication diagram shortcut menu, select Numbering and then select/clear the Show Meesage Numbers check box.

817

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Message

To remove the automatic advanced numbering of messages


From the communication diagram shortcut menu, select Numbering and then clear the Advanced Message Numbering check box and you will be able to number messages according your needs.

To change the numbering of the messages


1. From the communication diagram shortcut menu, select the Change Numbering

command.
2. Increase, decrease, and/or change the level of numbering in the Change Communi-

cation Numbering dialog box:

Figure 325 -- Change Communication Numbering dialog box Box name Number Name Edit Function

The number of the message. The type, name of the action of the corresponding message. The Type Number dialog box opens. Type the number of the message.

818

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Message

Box name Increase Decrease OK Cancel Help

Function

Increases the selected number to one point. Decreases the selected number to one point. Saves changes and exits the dialog box. Exits the dialog box without saving changes. Displays the MagicDraw Help.

Assigning/Creating operation for message


Usually a model creation order is the following: there is a created class diagram with classes and then the sequence diagram uses the classes and operations to representing the call order. MagicDraw allows a faster way to assign or create operations than the traditional model creation does. A sequence diagram is created to represent classes and messages, and with single click you can convert a message into a call as well as create operations in the classes according to the message name. To create a new operation to the message
1. Draw call message between the lifelines.

819

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Message

2. Select it on the diagram pane. Click on the smart manipulator at the end of the mes-

sage name to create a new operation.

3. The new operation, the name of which is as same as that of the message, is created.

The parameters, if provided, are added to the operation. -or From the message shortcut menu, select the Create New Operation command.

NOTE:

The possibility to create a new operation exists only if the lifeline to which the message is drawn has an assigned type. The type element is not a read only type and it may have operations.

Assigning/Creating signal reception for message


To create a new signal reception to the message
1. Draw any send message between the lifelines. Lifelines need to have types specified. 2. Assign signal to the message. 3. Select message on the diagram pane. Click on the smart manipulator at the end of

the message name to create a new signal reception. 4. The new signal reception, the name of which is as same as that of the message, is created for a type of a lifeline. The parameters, if provided, are added to the signal reception.

820

Copyright 1998-2009 No Magic, Inc.

11
-or-

M ODEL ELEM ENTS


Message

From the message shortcut menu, select the Create New Signal Reception

command.

Predecessors and activators


The predecessor is the set of messages of which the completion enables the execution of the current message. It is a comma-separated list of sequence numbers followed by a slash (/): sequence-number , . . . / The meaning of the predecessor is that the execution of a message is not enabled until all of the communications of which the sequence numbers appeared 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 does not need to 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 3.1.4.5 is the predecessor of 3.1.4.6, where the number 3 is an activator. To show the predecessors on the message
Select Show Predecessors from the current message shortcut menu. Select the Symbol(s) Properties command from the message shortcut menu and

select the Show Predecessors check box. To change the activator number of the messages
1. Select the Activator command from the current message shortcut menu. 2. Select the number of activators 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 message in the Message Specification dialog box. For a detailed description of this dialog box, see Section Message Specification dialog box on page -816.

821

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Message in Sequence Diagram

Message in Sequence Diagram


Messages are the main tool for displaying an interaction between objects, which is usually an operation call or a 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 box. For more information on working with messages, Message on page 814.

Creating nested activation


Nested activations allow modeling parallel execution of operations that belong to a single class and modeling callback messages. To create a nested activation, create at least two incoming messages for the activation, select the second (or any subsequent) message and from its shortcut menu select Create Nested Activation. Nested activations can be created for the following message sorts:
1. synchCall 2. asynchCall 3. asynchSignal

Nested activations are used in three cases:


1. Modeling of parallel execution for a non-active object.
Create at least two incoming messages for the activation. Select the second (or any subsequent) message and select the Create

Nested Activation menu item from the shortcut menu.

822

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Message in Sequence Diagram
A nested activation will be created for the selected message.

Figure 326 -- Nested activation 2. Modeling of parallel execution for an active object. Create an outgoing message for the activation that has the Show Entire

Activation" mode enabled.


Select the created message and select the Create Nested Activation

menu item from the shortcut menu.

823

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Message in Sequence Diagram

A nested activation will be created for the selected message.

Figure 327 -- Parallel execution for an active object 3. Modeling of callback messages. Create an incoming message (the modeled callback message) for the

activation that has an outgoing message to the activation for which the modeled message acts as an outgoing message.
Select the created message and select the Create Nested Activation

menu item from the shortcut menu.

824

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Model
A nested activation will be created for the selected message.

Figure 328 -- Callback messages

To merge the nested activations with parent activation


From the message shortcut menu select the Reduce Nesting Level command. The message will be connected to the parent activation.

Model
A model contains a (hierarchical) set of elements that together describe the physical system being modeled. It may also contain a set of elements that represents the environment of the system, typically Actors, together with their interrelationships, such as Associations and Dependencies. 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.

825

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Node

Themodel is defined as a package it has package properties - in the Model Specification dialog box. For a detailed description of packages, see Package on page 842.

Figure 329 -- Model Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.

Node
Any computer or device that is relevant to the implemented system can be shown as a node. The 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. The nodes can be represented as types and as instances. It is shown as a figure that looks like a 3-dimensional view of a cube. For more information about working with symbols, see Chapter 5, "Working With Diagrams."

826

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Node

Define the selected node in the Node Specification dialog box.

Figure 330 -- Node Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.

Tab name Ports

Box Name Type Provided Required Classifier Create Delete

Function

Name of the port. Type, assigned to the port. The provided classifier is displayed. The required classifier is displayed. The name of classifier, owning a port. Create a new port. Remove an existing port from the node.

827

Copyright 1998-2009 No Magic, Inc.

11
Tab name

MODEL ELEMENTS
Node

Box Name Type Add Remove

Function

Deployed Artifacts

Name of the deployed artifact. Type of the item - artifact. Add an artifact to the list. Remove an artifact from the list. Name of the behaviors. Type, assigned to the behavior. Select an item from the list - activity, interaction, and state machine. Remove a behavior from the class. Name of the nested node. Type of the classifier (class, interface, etc.). Click button to open the classifier

Behaviors

Name Type Create Delete

Nested Nodes

Name Type

Specification dialog box.


Create

Select a node, device, or execution environment from the list. The element Specification dialog box opens. Remove a node from the list. The model element name. The model element type. Select an element from the list. The corresponding specification dialog box openss. Define the selected model element in the dialog box. Remove the selected model element from the node.

Remove Inner Elements Name Type Create

Add another element to a node.

Delete

828

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Node

Structured activity node


A structured activity node is an executable activity node that may have an expansion into the subordinate nodes. It represents a structured portion of the activity that is not shared with any other structured node, except for nesting.

829

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Node

Activity parameter node


It is an object node for inputs and outputs to activities. The activity parameters are object nodes at the beginning and end of the flows, to accept inputs to an activity and provide outputs from it.

Expansion Region and Expansion Nodes


The Expansion Region and Expansion Nodes may be drawn in the activity diagram (the Input and Output Expansion Nodes may be found in the diagram toolbar Object Node button group):

If, Loop and Sequence Conditional Nodes


A conditional node is a structured activity node that represents an exclusive choice among some number of alternatives.

830

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Object

A sequence node is a structured activity node that executes its actions in order. A loop node is a structured activity node that represents a loop with the setup, test, and body sections.

Object
To convert a pin to an object:
1. Draw an Input, Output, or Value Pin on the Action:

2. Select an Output, Input or Value Pin on the diagram pane and from its shortcut menu

select Convert to Object. The Pin is converted to an Object:

831

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Object Flow

Object Flow
To split an Object Flow:
1. Draw an Object Flow relation between two Actions.

2. From the Object Flow shortcut menu, select the Split Object Flow command.

Object Node
An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity. It can be used in a variety of ways, depending on where the objects are flowing from and to, as described in the semantics section. For more information about working with symbols, see Chapter 5, "Working With Diagrams."

832

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Object Node

Define the selected object node in the Central Buffer Node Specification dialog box.

Figure 331 -- Central Buffer Node Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box name Type Function

Set a general information about the object node


In State

A list of classifiers. Select a classifier you wish to assign to an object node shape. Click the button to open the Select Element dialog box for selecting the type from the elements tree. Click the ... button to assign an existing final state or state from the model in the Select Elements dialog box, or click Create for defining a new one.

833

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Opaque Behavior

To set a classifier to an object node


1. Double-click the object node or select Specification from the shape shortcut menu.

The Central Buffer Node Specification dialog box opens.


2. Select a classifier you wish to assign to an object node from the Type drop-down list.

To assign a state or final state to an object node


1. Click the ... button in the Central Buffer Node Specification dialog box, In State

field. The Select Elements dialog box opens.


2. Select a state from the existing model elements, or click Create. The State Specifi-

cation dialog box opens. Specify a new state, which will be assigned to an object node.

Opaque Behavior
A behavior with implementation-specific semantics. The Opaque Behavior is introduced for implementation-specific behavior or for use as a place-holder before one of the other behaviors is chosen. To create a new Opaque Behavior:
1. In the Browser, select a package. 2. From the package shortcut menu, select New Element and then Opaque Behavior.

Enter the name for a newly created element. To create an Opaque Behavior symbol Drag and drop the selected Opaque Behavior element from the Browser tree on the Diagram pane.

834

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Operation

Operation
Entries in the operation compartment are strings that show the operations defined on classes as well as those that are supplied by the classes. An operation is a service that can be requested to perform by an instance of the class. It has a name and a list of arguments. Usually class attributes are accessed through the operations. The 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 select Specification from the class shortcut menu.

The Class Specification dialog box opens. Click the Operations tab and then click the Create button. The Operation Specification dialog box opens. Define a new operation and click OK.
Select Insert New Operation from the class shortcut menu. Type an operation name

directly on the class shape.


In the Browser tree, select an already created class. From the class item shortcut

menu, choose New and then Operation.


Select a class shape, press CTRL+ALT+O shortcut key and type the operation name

on the Diagram pane.


Select the class shape and click the small green Insert New Operation smart

manipulation button. Define an operation in the Operation Specification dialog box. To open the Operation Specification dialog box
1. Double-click the class /actor or select Specification from the class/actor shortcut

menu. The Class Specification / Actor Specification dialog box opens. 2. Click the Operations tab. Double-click the desired operation in the tree, or click the Create button. The Operation Specification dialog box opens.

835

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Operation

Double-click an operation on the Diagram pane or in the Browser.

Figure 332 -- Operation Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Set a general information for the operation Box Owner Function

Shows a class, which contains the current operation. The value of the Owner field cannot be changed. It is automatically defined when an operation is created. Shows an operation type. It can be another project class or primitive type such as int or double. Select the type from the list or create a new one by clicking ... button. Click the ... button to open the Select Elements dialog box. The Activity, Interaction, or State Machine elements can be assigned from the model.

Type

Method

836

Copyright 1998-2009 No Magic, Inc.

11
Tab name Parameters

M ODEL ELEM ENTS


Operation

Box Name Type Default Value

Function

Shows the parameter name. Shows the parameter type. It can be a classifier or a data type. An expression whose evaluation yields a value to be used when no argument (operation) is supplied for the parameter. Specifies what kind of parameter is required:
return - return parameter. in - an input parameter (may not be modified). out - an output parameter (can be modified to

A parameter is an unbound variable that can be changed, passed, or returned.

Direction

communicate information to the caller).


inOut - an input parameter that can be modified.

Up Down Create Delete

Move the list up. Move the list down. The Parameter Specification dialog box opens. Removes the parameter.

To change an operation name


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 box.

To define the type of an operation


In the Operation Specification dialog box, the Type drop-down list box, select the

operation type.
Type a colon : and the name of the operation type just after the operation name on

the diagram pane. If you specify a nonexistent type of an operation, a new class is created.

837

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Operation

To edit / add an operation parameter


1. Open the Operation Specification dialog box. 2. Click the Parameters tab. 3. Double click on the existing parameter name in the expanded tree or click the Create

button. The Parameter Specification dialog box opens.


Type a parameter text (in parenthesis) directly on a diagram. Select an operation in the Browser tree, select New from its shortcut menu and select

Parameter. The Parameter Specification dialog box opens. The Parameter Specification dialog box The Parameter Specification dialog box defines an operation argument. To open the Parameter Specification dialog box
1. Open the Operation Specification dialog box.

838

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Operation

2. Click the Parameters tab, expand tree, and then double-click the desired parameter.

Or click the Create button.

Figure 333 -- Parameter Specification dialog box

Click the Show Expert Properties button for showing more properties of the parameter. Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Set general information about the parameter Box Owner Type Function

The name of the operation, which contains the parameter. Shows the parameter type. It can be a classifier or a data type. Select a type from the list or create a new one by clicking the ... button.

839

Copyright 1998-2009 No Magic, Inc.

11
Tab name

MODEL ELEMENTS
Operation

Box Type Modifier

Function

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.

Default Value

An expression whose evaluation yields a value to be used when no argument (operation) is supplied for the parameter. Select the direction kind:
return - return parameter. in - an input parameter (may not be modified). out - an output parameter (can be modified to

Direction

communicate information to the caller).


InOut - an input parameter that can be modified.

To add additional information about the return type of an operation


1. Open the Operation Specification dialog box. 2. Click the Show Expert Properties button. More properties for the operation show. 3. Select a sign from the Type Modifier drop-down list box: & - 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.

An operation can be defined as:


Name Is Abstract Is Static Is Query Function

The operation does not have an implementation, and one must be supplied by a descendant. This operation scope means that the values returned by the parameter have no duplicates. The operation does not change the state of the system.

840

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Operation

To define an operation as abstract, static, or query


1. Open the Operation Specification dialog box. 2. Select the Expert mode from the Properties field. More properties for the operation

show. 3. Select the Is Abstract, Is Static, and/or Is Query check box(es) in the General tab. To set the operation visibility
Visibility name Public + Package ~ Private - Protected # Function

The operation can be accessed by any other object from the outside. The operation can be accessed by an element from the same package. The operation can be accessed only from that class. The operation can be accessed from the inside of that class and the classes derived from that class.
1. Open the Operation Specification dialog box. 2. From the Visibility drop-down list box, select Public, Package, Private, or Pro-

tected.
NOTE

The operation visibility is shown in the operation signature.

841

Copyright 1998-2009 No Magic, Inc.

11
Name Sequential

MODEL ELEMENTS
Package

To set an operation Concurrency: sequential, guarded or concurrent


Function

The callers must coordinate, so that only one call to an Instance (on any sequential Operation) is made at a time. If simultaneous calls occur, then the semantics and the integrity of the system can 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. The Guarded Operations must perform correctly (or block themselves) in case a simultaneous sequential Operation or guarded semantics cannot 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. The Concurrent Operations must perform correctly in case a simultaneous sequential or the guarded Operation, or concurrent semantics cannot be claimed.
1. Open the Operation Specification dialog box. 2. Select the Expert mode from the Properties field. More properties for the operation

Guarded

Concurrent

show.
3. Select the concurrency type in the Concurrency drop-down list box.

Package
A package groups classes and other model elements together. All types of UML model elements can be organized into packages. Each diagram must be owned by one package and the packages themselves can be nested within other packages. Subsystems and models are special kinds of packages. The packages may have dependency, generalization, realize, containment, and association relationships. These relationships are usually derived from the relationships between the classes inside those packages.

842

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Package

Working with packages


For more information about working with symbols, see Chapter 5, "Working With Diagrams." Define the selected package in the Package Specification dialog box.

Figure 334 -- Package Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section. To add inner elements to the selected package
1. Open the Package Specification dialog box. 2. Click the Inner Elements tab. 3. Click the Create button, and then click an element you wish to add. 4. After selecting the element, the corresponding element Specification dialog box

opens. If you select a diagram, the Diagram Specification dialog box opens.
5. Define the information and click Back to return to Package Specification.

843

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

To change the package header (name, stereotypes, tagged values, and constraints) position
From the package shortcut menu, select Header Position and then Top or In Tab. Select Symbol(s) Properties from the package shortcut menu, and then Header

Position Top or In Tab in the Properties dialog box. To show the list of elements assigned to a package on the package shape
Select Show Elements List from the package shortcut menu.

Parameter
Parameters synchronization with Arguments
After you have modeled certain references between elements, arguments will be created automatically according to the parameters. Such synchronization increases modeling speed and helps to avoid invalid models. The table below lists parameter and argument synchronizations.
Link to synchronization description 1

Parameter Operation parameter

Argument Behavior parameter

Paired elements Parameter and paramemeter

"Synchronization between Operation parameters and Behavior parameters" "Synchronization between Activity parameters and Activity Parameter Nodes" "Synchronization between Operation parameters and pins on Call Operation Action"

Activity parame- Activity Paramter eter Node

Parameter and activity parameter node

-Operation parameter -Behavior parameter

- Pin of Call Operation Action - Pin of Call Behavior Action

Parameter and Pin

844

Copyright 1998-2009 No Magic, Inc.

11
4

M ODEL ELEM ENTS


Parameter

Link to synchronization description

Parameter Interaction parameter Operation parameter Interaction parameter

Argument - Argument of Interaction Use - Argument of Message Lifeline

Paired elements Parameter and Argument

"Synchronization between Interaction parameters and Interaction Use arguments". "Synchronization between Interaction Parameters and Lifelines"

Parameter and Lifeline

Created arguments have the same number, order, and name as the parameters. Some properties of the parameters are cloned to argument properties, such as name, type, direction, and multiplicity for a particular argument. Changes made in parameters are reflected in arguments. Changes to arguments are not reflected in parameters. Exception: synchronization between Activity Parameters and Activity Parameter Node. When synchronization case is removed, arguments created on synchronization are not removed, but synchronization between parameters and arguments is not working anymore. For synchronization to work it should match criteria, such as number, order, or other criteria that should be the same for the parameter and argument. To turn on/off the parameters and arguments synchronization for the whole project,select/clear the Auto synchronize Parameters and Arguments check box in the Project Options dialog box. After the synchronization is turned off, arguments will not be created and modified on parameters creation and modification. By default the Auto synchronize Parameters and Arguments check box is selected. The new in MagicDraw 15.5 Active Validation functionality improves the parameters and arguments synchronization. Active Validation functionality displays unsynchronized elements on diagram pane and in Browser. You can also use the Parameters Synchronization dialog for automatic and manual synchronization solving. For more information about the active validation see "Active Validation", on page 551.

845

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

Rules of synchronization between parameters and arguments


In this section you will find information about rules for making the synchronization between parameter and argument function properly. If parameters and arguments do not match rules, they are not synchronized and no changes to arguments will be performed when parameters change. The general rules of synchronization are:
1. The number of parameters and arguments should be the same. 2. The order of parameters should be the same as order of arguments. If the order of

parameters is changed, the order of Arguments is changed too. This is valid if arguments have ordering possibility. 3. The same properties. The parameter properties should be the same as the argument properties. Such as name, type, multiplicity, direction. 4. Properties change. Change the parameter property and the argument property changes. Some of the properties are changed only the first time and after the second change the parameter property is not changed and synchronization is not performed anymore. 5. Each couple of parameters and arguments should be synchronized. If one of them is not synchronized, the other is not synchronized as well. Note that synchronization is checked in element scope.

846

Copyright 1998-2009 No Magic, Inc.

11
Term

M ODEL ELEM ENTS


Parameter

Synchronization between Operation parameters and Behavior parameters


The OMG UML specification (UML 2.2: Superstructure) states: ownedParameter: Parameter References a list of parameters to the behavior that describes the order and type of arguments that can be given when the behavior is invoked and of the values that will be returned when the behavior completes its execution.
Definitions BehavioralFeature -

operation;

Behavior - Activity,

Function Behavior, Interaction, Opaque Behavior, Protocol State Machine, State Machine.

Synchronization between operation parameters and behavior parameters works in the following way: after you have assigned a behavior to the operation with parameters, arguments to the behavior will be created automatically. How synchronization works After the operation parameters have been modified, arguments change in the following way:
Create operation parameter - argument is created and properties cloned according to

the parameter properties.


Edit operation parameter - argument properties change. Argument name changes

according to parameter properties only on the first parameter name change. For example, for operation create not named parameter. Assign behavior as method to the operation. To behavior not named parameter is created. Now name the operation parameter. Behavior parameter name automatically changes to the operation parameter name. Change the operation parameter the second time. The title of behavior parameter is not changed.
Remove operation parameter - behavior argument is removed if it does not have links

or values. For example, operation parameter is synchronized with activity parameter. Activity parameter is included to other synchronization - activity parameter is synchronized with activity parameter node (see Synchronization between Activity parameters and Activity Parameter Nodes on page 851). In this case, after the

847

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

operation parameter is removed, the activity parameter is not removed, because it has link. Validation of Synchronization Synchronization between Parameter and Argument is valid when:
The type is compatible. The type of parameter and behavior parameter should be

compatible. This means that the type of operation parameter and the type of behavior parameter should be the same or inherited.
The direction is the same. The direction of the operation parameter and the behavior

parameter should be the same.


The multiplicity is the same. The multiplicity of the operation parameter and the

behavior parameter should be the same. If one of the rules is not valid, operation parameters and behavior parameters will not be synchronized anymore. Sample
1. Create a class named Computer, with an operation called Collect, and with parame-

ters Accepted Computers, Production Materials, and Rejected Computers.


2. Create Activity diagram Collect Computer.

848

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Parameter

Figure 335 -- Project before synchronization 3. Assign activity diagram Collect Computer to the operation Collect as behavior. To do

this from the operation shortcut menu in the Browser, select the Behavior Diagram and then Assign. Activity of activity diagram is assigned as a method to the operation

849

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

automatically. The text after the name of activity will appear in the Browser: specifies Collect.

Figure 336 -- Project after synchronization between Operation Parameters and Behavior Parameters 4. The following operation parameters are created to the activity of activity diagram

automatically: Accepted Computers, Production Materials, Rejected Computers. The Collect operation parameters are synchronized with Collect Computer activity parameters.

850

Copyright 1998-2009 No Magic, Inc.

11
Terms

M ODEL ELEM ENTS


Parameter

Synchronization between Activity parameters and Activity Parameter Nodes


The OMG UML specification (UML 2.2: Superstructure) states: Activity Parameter Node Activity parameter nodes are object nodes at the beginning and end of flows that provide a means to accept inputs to an activity and provide outputs from the activity, through the activity parameters. Activity parameters inherit support for streaming and exceptions from Parameter. Constraints [1] Activity parameter nodes must have parameters from the containing activity. [2] The type of an activity parameter node is the same as the type of its parameter.
Definitions Parameter - Parameter of Activity;

Argument - Activity Parameter Node. Synchronization between activity parameters and activity parameter nodes works in the following way: after you have created a parameter to the activity, an activity parameter node of the activity will be created automatically. How synchronization works How synchronization works on parameter edit:
Create a parameter in the activity. After you have created the parameter, the

argument for parameter will be created automatically. If the parameter direction is inout - two activity parameter nodes will be created.
Remove a parameter from the activity. After you have removed the parameter from

the activity, the argument will be removed as well. If two arguments were created for one inout parameter, both arguments will be removed.

851

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

How synchronization works on argument edit:


Create an activity parameter node in the activity. The Select Activity Parameter

dialog box appears. Select the existing activity parameter or click the Create button to create a new one.

Figure 337 -- Select Activity Parameter dialog box


Remove synchronized activity parameter node. After you have removed the activity

parameter node from the activity, the assigned activity parameter will be removed as well.
NOTES

In the Select Activity Parameters dialog box, the following activity parameters are not displayed:
Inherited parameters Parameters which already have Activity Parameter Nodes.

Sample
1. In the Collect Computer activity create Accepted Computers parameter. 2. The Accepted Computers activity parameter node is created in activity automatically.

Properties of the parameter and activity parameter node are synchronized.

852

Copyright 1998-2009 No Magic, Inc.

11
.

M ODEL ELEM ENTS


Parameter

Figure 338 -- Synchronization of Activity Parameters with Activity Parameter Nodes

Synchronization between Operation parameters and pins on Call Operation Action


And

853

Copyright 1998-2009 No Magic, Inc.

11
Terms

MODEL ELEMENTS
Parameter

Synchronization between Behavior parameters and pins of Call Behavior Action


The OMG UML specification (UML 2.1.2: Superstructure, p. 244) states: Call Action Constraints [1] Only synchronous call actions can have result pins. [2] The number and order of argument pins must be the same as the number and order of parameters of the invoked behavior or behavioral feature. Pins are matched to parameters by order. [3] The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature. The OMG UML specification (UML 2.1.2: Superstructure, p. 244) states: Call Behavior Action Constraints [1] The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal. [2] The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal. [3] The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding parameter of the behavior.
Definitions Parameter - Parameter of Operation, Parameter of Behavior;

Argument - Pin of Call Operation Action; Pin of Call Behavior Action. How synchronization works How synchronization works on parameter edit:

854

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Parameter
Create parameter. After you have created a parameter, pins to the Call Operation

Action or to the Call Behavior Action will be created automatically. If parameter direction is inout, two Pins to one parameter will be created.
Remove parameter. After parameter is removed, the argument is removed

automatically if it does not have links or values. How synchronization works on argument edit:
Create pin. Create to the Call Operation Action or the Call Behavior Action input or

output pin. The Select Operation Parameter dialog box appears for the Call Operation Action element and the Select Behavior Parameter dialog box appears for the Call Behavior Action.

Figure 339 -- Select Operation Parameter dialog box


Remove pin. After you have removed the pin, the parameter will not be removed. The order change and the properties change. After you have changed the order of

arguments and after you have changed properties, no changes will be done to the parameters. Synchronization validation Synchronization between Parameters and Argument is valid if:
The direction is compatible. The parameter direction and the pin direction should be

compatible.

855

Copyright 1998-2009 No Magic, Inc.

11
Sample

MODEL ELEMENTS
Parameter

The types are compatible. The parameter type and the pin type should be the same

or inherited.

1. Create the Mailing List parameter to operation.

Figure 340 -- Project before synchronization 2. Create the call operation action named Determine users that have reserved book.

856

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Parameter

3. Assign an operation to the call operation action. Pins to the call operation action will

be created automatically.

Figure 341 -- Project after synchronization between Operation Parameter and Pin of Call Operation Action

Synchronization between Interaction parameters and Interaction Use arguments


And

Synchronization between Operation parameters and Message arguments


Definitions Parameter - Interaction Parameter, Operation Parameters;

Argument - Interaction Use Argument, Message Arguments. Synchronization between interaction parameters and interaction use arguments works in the following way: after you have reffered an interaction use to the interaction with parameter, an argument to the interaction use will be created automatically. The parameter of interaction is synchronized with interaction use argument. Synchronization between operation parameter and message arguments works in the following way: after you have created the message with an assigned operation, the arguments to the message will be created automatically.

857

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

How synchronization works How synchronization works on parameter edit:


Create. After you have created interaction use or message, arguments will be

created automatically according to parameters.


Remove parameter. After you have removed the parameter, the synchronized

argument will be removed as well.


The order change. After you have changed the parameters order, arguments order

will be changed automatically.


The property change. After you have changed parameter properties, this change will

not affect the argument.


Important

Changes in arguments are not reflected in parameters.

Sample
1. Create a class with Collect operation and with Production Material parameter. Create

the sequence diagram. Draw a lifeline with assigned type - Computer class. To the lifeline, draw a call message.

Figure 342 -- Project before synchronization

858

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Parameter

2. Assign the Collect operation to the call message. An argument will be added to the

message automatically. To see the created argument, open the Message specification dialog box and select the Arguments branch. In the sequence diagram on the message, you can see the parameter name with argument name (in this example, the argument is not named).

Figure 343 -- Project after synchronization

859

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

Figure 344 -- Sequence diagram with message with argument

Synchronization between Interaction Parameters and Lifelines


Synchronization between Interaction Parameters and Lifelines works in the following way: after you have created the sequence diagram in interaction with parameters, lifelines for the chosen parameters will be created in the sequence diagram. This is not the same synchronization as in other cases, because this gives automated lifelines creation from parameters only. How synchronization works After you have created, edited, or removed parameters, arguments will be unchanged. Conversely, after you have created, edited, or removed arguments - parameters will be unaffected.

860

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Parameter

Displaying parameters as lifelines in already existing sequence diagram You can also display parameters as lifelines in already existing sequence diagram:
1. From the sequence diagram shortcut menu, select Related Elements and thenselect

Display Parameters as Lifelines. The Display Parameters as Lifelines dialog box appears. 2. Select parameters and click OK. 3. Lifelines for the selected parameters are created. Sample
1. Create an interaction with a parameter.

Figure 345 -- Project before synchronization

861

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

2. In the Interaction, create the sequence diagram. The Display Parameters as Life-

lines dialog box appears.

Figure 346 -- The Display Parameters as Lifelines dialog box 3. Select parameters, which will be created as lifelines in the sequence diagram. Click

OK.
4. Lifelines are created in the interaction, which is drawn on the sequence diagram.

Figure 347 -- Project after synchronization

862

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Parameter

The Parameters Synchronization dialog box


The Parameters Synchronization dialog box (see Figure 348 on page 863) is shown below. It provides useful Parameters and Arguments synchronization options: not synchronized notification, automatic synchronization restoration algorithms, and manual synchronization abilities.

Figure 348 -- The Parameters Synchronization dialog box

There are two ways to open the Parameter Synchronization dialog box:
Select the not synchronized element in the Browser. From the shortcut menu, select

the Validation > validation group > Parameter Synchronization dialog opens.
Select the invalid element on the diagram. In the symbol smart manipulator, click the

invalid element indicator. From the menu that open, select the Parameter Synchronization dialog (see Figure 349 on page 864).

863

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

Figure 349 -- Smart Manipulator of the Invalid element

The parameters synchronization dialog box presents the elements those parameters and arguments are not synchronized and provides the possibility to restore the synchronization. In the Parameters Synchronization dialog box, the parameters with arguments are synchronized according to the general synchronization rules, which are described in Rules of synchronization between parameters and arguments on page 846. The Parameters group presents information about particular element parameters (see Figure 350 on page 865) and the Arguments group presents information about particular element arguments (see Figure 351 on page 866). To edit the parameter or argument, click on the icon in the Edit column (see Figure 352 on page 867). The Is In Synch? column displays if parameter and argument are synchronized (see Figure 353 on page 868). Green tick indicates that parameter and argument are synchronized. Red cross indicates that parameter and argumetn are not synchronized.

864

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Parameter

Figure 350 -- The Parameters Synchronization dialog box, Parameters group

865

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

Figure 351 -- The Parameters Synchronization dialog box, Arguments group

866

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Parameter

Figure 352 -- The Parameters Synchronization dialog box, Edit column

867

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

Figure 353 -- The Parameters Synchronization dialog box, Is In Sync? column

Automatic Synchronization To synchronize parameters with arguments automatically, in the Parameters Synchronization dialog box, click the Automatic Synchronization button (see Figure 354 on page 869). According to the available synchronization the following available commands appears:
1. Synchronize Parameters with Arguments by restoring initial order and creating miss-

ing ones.
Missing arguments will be created. Not synchronized Arguments order will be changed and not synchronized

properties will be changed according reference.


2. Synchronize Parameters with Arguments by reordering and creating missing ones. Not synchronized arguments order will be changed to fit properties.

868

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Parameter
Missing arguments will be created automatically. If reference between parameters and arguments existed, but hey are not

synchronized ol reference will be removed.


3. Synchronize Parameters with Argumetns by updating and creating missing ones. Not synchronized arguments not synchronized properties according to

parameter will be changed and missing arguments will be created.


4. Synchronize Parameters with Arguments by creating missing ones. Missing arguments will be created.

Figure 354 -- The Parameters Synchronization dialog box, Automatic Synchronization

Manual Synchronization You can manualy synchronize parameters with arguments using the Up/Down/Remove buttons or click the Manual Synchronization button (see Figure 355 on page 871). Click the Up/Down/Remove buttons to move up/down or remove parameters or arguments.

869

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Parameter

In the Parameters Synchronization dialog box table select not synchronized parameter/ argumet and click the Manual Synchronization butoon to synchronize manualy. See the description of the manual synchronization commands in the table bellow.
Command <-Clone Clone-> <-Update Description

Select the <-Clone command to create parameter with the same properties. Select the Clone-> command to create parameter with the same properties. Select the <-Update command to update parameter not synchronized properties in order to be synchronized. The Update item is available if argument exist and there are properties to update. Select the <-Update command to update argument not synchronized properties in order to be synchronized. The Update item is available if parameter exist and there are properties to update.

Update->

870

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Port

Figure 355 -- The Parameters Synchronization dialog box, Manual Synchronization

Port
A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment, or between the (behavior of the) classifier and its internal parts. Ports are connected to the properties of the classifier by connectors through which requests can be made to invoke the behavioral features of the classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) from its environment. It has the ability to specify that any requests arriving at this port are handled.

871

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Port

The Class model element and Component model elements may have any number of Ports. Define a port in the Port Specification dialog box.

Figure 356 -- Port Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Set a general information for the port. Box Owner Is Behavior Function

The name of a class or component, which contains the port. Specifies whether requests arriving at this port are sent to the classifier behavior of this classifier. Such a port are referred to as a behavior port. Any invocation of a behavioral feature targeted at a behavior port will be handled by the instance of the owning classifier itself, rather than by any instances this classifier may contain.

872

Copyright 1998-2009 No Magic, Inc.

11
Tab name

M ODEL ELEM ENTS


Port

Box Is Service

Function

If the value of the Is Service check box is true, it indicates that this port is used to provide the published functionality of a classifier. If the value of the Is Service check box is false, it indicates that this port is used to implement the classifier but is not part of the essential externally. Shows the name of the provided/required interface. Shows the type of the interface that specifies a port. Drop down menu opens. Select the Provided or Required item and select an interface in the open Select Interface dialog box. Removes an item from the Provided/Required Interfaces list.

Provided/Required Interfaces

Name Type Add

Remove

To customize ports list


The ports list can be displayed in a separate compartment on the element shape when the Suppress Ports check box is cleared from the element shortcut menu, Presentation Options submenu. 1. From the element shortcut menu, select Edit Compartment and then Ports. 2. In the open Compartment Edit dialog box, Ports tab, add the desired ports to dis-

play from All to the Selected list. To draw a Port In the Implementation diagram toolbar, select a Port element to draw on a class shape.

873

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Pseudo State

Draw a Realize path from a port to an interface to depict the Provided Interface. Draw Usage path from port to interface to depict Required Interface.

Pseudo State
The Pseudo state is typically used to connect multiple transitions into more complex state transitions paths. For example, by combining a transition entering a fork pseudo state with a set of transitions exiting the fork pseudo state, we get a compound transition that leads to a set of orthogonal target states. For more information about working with symbols, see Chapter 5, "Working With Diagrams."

874

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Pseudo State

Specify the pseudostates in the Pseudo State Specification dialog box.

Figure 357 -- Pseudo State Specification dialog box Tab name General Property Owner Kind Function

The region, containing a pseudo state. The kind, showing the purpose of the pseudo state.

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.

Initial
Every object belongs to a particular state as soon as it is created. So, it is useful to explicitly show that particular state. A solid filled circle represents the initial state of an object. There can only be one initial state for an object. The initial state denotes the starting place for a transition, the target of which is a composite state.

875

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Pseudo State

Final state
The final state symbol (a circle surrounding a smaller solid circle) is used to represent the object destruction. 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 life of the object may finish depending on several conditions.

Terminate
Entering a terminate pseudo state implies that the execution of the state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudo state.

Entry Point
An entry point connection point reference as the target of a transition implies that the target of the transition is the entry point pseudo state as defined in the submachine of the submachine state. As a result, the regions of the submachine state machine are entered at the corresponding entry point pseudo states.

Exit Point
An exit point connection point reference as the source of a transition implies that the source of the transition is the exit point pseudo state as defined in the submachine of the submachine state that has the exit point connection point defined. When a region of the submachine state machine has reached the corresponding exit points, the submachine state exits at this exit point.

Deep History
The Deep History represents the most recent active configuration of the composite state that directly contains this pseudo state; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex.

876

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Pseudo State

Shallow History
The Shallow History represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming to the shallow history vertex is equivalent to a transition coming to the most recent active substate of a state.

Junction
The junction vertices are semantic-free vertices that are used to chain multiple transitions together. They are used to construct the compound transition paths between states. For example, a junction can be used to combine multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as merge). Conversely, it can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions.

Choice
The choice vertices, when reached, result in the dynamic evaluation of the guards or the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-to-completion step.

Fork/Join
The fork vertices are used to split an incoming transition into two or more transitions terminating on the orthogonal target vertices (i.e. vertices in different regions of composite state). The segments going out of a fork vertex must not have guards or triggers. The join vertices are used to merge several transitions emanating from the source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers.

877

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Realization

Realization
The realization is a specialized abstraction relationship between two sets of model elements, one represents a specification (the supplier) and the other represents an implementation of the latter (the client). The realization can be used to model stepwise refinement, optimizations, transformations, templates, model synthesis, framework composition, etc. The realization relationship is 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 not necessarily the data structure of the supplier (attributes and associations). For more information about working with symbols, see Chapter 5, "Working With Diagrams." The realization paths can be grouped in a tree. This feature makes the appearance of the diagram more structural and understandable.
NOTE

In MagicDraw, you will find three kinds of a realization relationship:


Interface Realization. A dashed line with a solid

triangular arrowhead. An Interface Realization is a specialized Realization relationship between a Classifier and an Interface. This relationship signifies that the realizing classifier conforms to the contract specified by the Interface.
Realization. A solid line that represents a relationship

between a classifier and an interface.


Substitution. A dashed line with an arrowhead and

<<substitute>> stereotype. A substitution is a relationship between two classifiers. It signifies that the substituting classifier complies with the contract specified by the contract classifier. This implies that instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected.

878

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Realization

To create a realization tree if a class or an interface already has a number of realization paths attached to it
Select the Make Sub Tree command from the class or the interface shortcut menu.

To remove a realization from the tree or to ungroup a tree


Select the realization and select the Remove From Tree command from the path

shortcut menu.
Select a tree head and select the Ungroup Tree command from the tree shortcut

menu. To specify the selected realization path in the Specification dialog box
Double-click the path. Select Specification from the path shortcut menu. Select the path and press ENTER.

879

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Realization

Realization and its kinds Specification dialog boxes The realization, interface realization, and substitution relationships are defined in the dialog box of the same structure. They differs from one another only by the corresponding Specification name..

Figure 358 -- Realization Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box Source Target Mapping Function

The name of the child element. The name of the parent element. Type a value, or click the ... button and edit the value in the Edit Mapping dialog box. Note: Available in the Substitution Specification dialog box only.

Set general information about the realization relationship

880

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Reception

Creating the realizing classifiers The realizing classifiers are a set of Realizations owned by the Component. The Realizations reference the Classifiers of which the Component is an abstraction (i.e., that realize its behavior). To create a Realization relationship between a component and a classifier:
1. Drag the classifier shape to the component shape. 2. Select a classifier or component and select Related Elements from its shortcut

menu, then select the Display Paths command. The realization relationship will be displayed on the diagram pane.

Reception
Term

The OMG UML specification (UML 2.2: Superstructure) states: A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal. A reception designates a signal and specifies the expected behavioral response. The details of handling a signal are specified by the behavior associated with the reception or the classifier itself.

Signal receptions can be specified for classes or interfaces. Parent topic: Model Elements on page 685.

881

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Reception

Related topics: Specification dialog boxes on page 265. Formatting Symbols on page 283. Class on page 741. Interface on page 804. To create a new reception
Double-click the selected class or select Specification from the class shortcut menu.

The Class specification dialog box opens. Click the Signal Receptions tab and then click the Create button. The Select Signal dialog box opens. Select a signal or create a new one. Click OK. The Signal Reception specification dialog box opens. Specify a new reception and click OK.
Select a class in the Browser tree. From the class item shortcut menu, select New

and then select Signal Reception.


Select a class shape and click the small red Insert New Signal Reception smart

manipulation button.
NOTE The signal reception compartment is suppressed and the smart manipulator button is not visible by default.
Drag-and-drop the signal symbol on the class or interface shape in the diagram pane.

The signal reception with the assigned signal is created. You may also drag a signal from the Browser to the class or interface shape on the diagram pane. To open the Signal Reception specification dialog box
1. Open the Class specification, or the Interface specification dialog box. 2. In the Signal Receptions tab, double-click the desired signal reception in the tree, or

click the Create button.


OR
Double-click the desired signal reception directly on the diagram.

Refer to Specification dialog boxes on page 265 for information about the specification elements not covered in this section.

882

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Send Signal Action

To set the signal for a signal reception


Create a signal reception. The Select Signal dialog box opens. Select an existing or

create a new signal for the signal reception.


In the Signal Reception specification dialog box, in the Signal drop down menu,

select a signal. You may also click the ... button. In the Select Element dialog box, select a signal or click the Create button to create a new one. To display the signal reception on the diagram pane
The signal reception compartment is added to the class and interface shape. This compartment is hidden by default. To show the signal reception compartment:
From the symbol shortcut menu, select the Presentation Options command, then

select the Suppress Signal Receptions command.


From the symbol shortcut menu, select the Symbol(s) Properties command. In the

element Properties dialog box, clear the Suppress Signal Receptions command. To show/hide the signal receptions in the Signal Reception compartment
Select the Edit Compartment command from the symbol shortcut menu. Select the Signal Reception command. The Edit Compartment dialog box opens. Only those signal receptions will be displayed in the Signal Reception compartment that are displayed in the Selected list.

To change the order of the signal receptions


From the symbol shortcut menu, select the Presentation Options command, then

select the Signal Receptions Sort Order command.


From the symbol shortcut menu, select the Symbol(s) Properties command. In the

element Properties dialog box, clear the Suppress Signal Receptions check box.

Send Signal Action


The Send Signal Action is an action that creates a signal instance from its inputs and transmits it to the target object, where it may cause the start of the state machine transition or the execution of an activity. The argument values are available to the execution of associated behaviors. The requester

883

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Send Signal Action

continues the execution immediately. Any reply message is ignored and is not transmitted to the requester. For more information about working with symbols, see Chapter 5, "Working With Diagrams." Define the selected send signal action in the Send Signal Action Specification dialog box.

Figure 359 -- Send Signal Action Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box name Signal Function

Set a general information about the object node.

Click the ... button to assign an existing signal from the model in the Select Elements dialog box, or click Create to assign a new one.

884

Copyright 1998-2009 No Magic, Inc.

11
State

M ODEL ELEM ENTS


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. The state is defined by the concepts of duration and stability. An object may not be in an unknown or undefined state. A state may have two compartments to provide more information about that state:
The first compartment is the name compartment, it contains the state name, for

example: running, going up.


The second compartment is the activity compartment, it contains the events and

actions of the state. For more information about working with symbols, see Chapter 5, "Working With Diagrams."

885

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
State

MagicDraw supports four types of states: State, Composite State, Orthogonal State, and Submachine State. Define the selected state in the Composite State Specification dialog box.

Figure 360 -- State Specification dialog box

886

Copyright 1998-2009 No Magic, Inc.

11
Tab name General

M ODEL ELEM ENTS


State

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Box name State Invariant Connection Actions group box Entry Behavior Type Behavior Element Function

Contains the state actions, events and buttons for editing the list.

Type text or click ... to open the Edit State Invariant dialog box. Click + to open the Connection Point Reference dialog box. Specify the information for the connection.

Select a type from the activity, interaction, or state machine items list. Click ... and select an element from the activity, interaction, or state machine items list. The corresponding dialog box opens. Select a type from the activity, interaction, or state machine items list. Click ... and select an element from the activity, interaction, or state machine items list. The corresponding dialog box opens. Select a type from the activity, interaction, or state machine items list. Click ... and select an element from the activity, interaction, or state machine items list. The corresponding dialog box opens. The name of the inner state. The type of the inner state. The region, to which an inner state was added.

Do Activity Behavior Type Behavior Element

Exit Behavior Type Behavior Element

Inner States

Name Type Region

The list of inner states and buttons for editing them

887

Copyright 1998-2009 No Magic, Inc.

11
Tab name Internal Transitions

MODEL ELEMENTS
State

Box name Name Create Delete

Function

The name of the internal transition. The Transition Specification dialog box opens. Define the transition. Remove the selected transition from the state.

A set of transitions that, if triggered, occurs without exiting or entering the state.

To suppress/unsuppress the actions compartment


In the state shortcut menu, select/clear the Suppress Actions check box.

To insert a new region to the state


In the state shortcut menu, select Insert New Region.

To insert a new inner state to the state


In the Browser, drag and drop the selected state to a Region. On the diagram pane, select the state and drag and drop it on the state symbol.

To display region name on the state symbol Region name can be optionally displayed on the State symbol on a diagram. To display or hide region name:
On a diagram from the State symbol shortcut menu check or clear the Show Region

Name check box.


In the State Properties dialog box select or clear the Show Region Name check

box.

888

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


State

Figure 361 -- Displaying region name on the State symbol

Changing State to Composite/submachine/orthogonal State


You can change your current state to a simple state, composite state, orthogonal state, and submachine state. To change the state to the composite state
1. From the State diagram toolbar, select the State to draw on the diagram pane. 2. From the state shortcut menu, select the Add New Region command. The region is

added and the state shape enlarges. To change the state to the orthogonal state
1. From the State diagram toolbar, select the State to draw on the diagram pane. 2. From the state shortcut menu, select the Add New Region command. The region is

added and the state shape enlarges.

889

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
State

3. Open the state shortcut menu again and add the second region to the state.

To change the state to the submachine state


1. From the State diagram toolbar, select the State to draw on the diagram pane. 2. From the state shortcut menu, select the Submachine command and select an exist-

ing State Machine from the list, or click New to create a new one.
NOTE :

To change the state to the submachine state, all regions from the state should be removed. To do this, select the state on the diagram pane and from the shortcut menu, select the Remove Region command.

Composite State
A composite state either contains one region or is decomposed into two or more orthogonal regions. Each region has a set of mutually exclusive disjoint subvertices and a set of transitions. A given state may only be decomposed in one of these two ways. Any state enclosed within a region of the composite state is called a substate of that composite state. It is called a direct substate when it is not contained by any other state; otherwise it is referred to as an indirect substate. Each region of the composite state may have an initial pseudostate and a final state. A transition to the enclosing state represents a transition to the initial pseudostate in each region. For more information about working with symbols, see Chapter 5, "Working With Diagrams." Define the selected composite state in the State Specification dialog box. For a detailed description of this dialog box, see State Specification dialog box on page 886. For more information on working with states, see State on page 885. To add a new region to the composite state
Select Add New Region from the composite state shortcut menu.

890

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


State

To remove a region from the composite state (at least two regions have to be left)
Select Remove Region from the composite state shortcut menu and select a region you want to remove.

Submachine
A submachine state specifies the insertion of the specification of a submachine state machine. The state machine that contains the submachine state is called the containing state machine. The same state machine may be a submachine more than once in the context of a single containing state machine. The submachine state is semantically equivalent to a composite state. The regions of the submachine state machine are the regions of the composite state. The entry, exit, behavior actions, and internal transitions, are defined as part of the state. The submachine state is a decomposition mechanism that allows factoring of the common behaviors and their reuse. For more information about working with symbols, see Chapter 5, "Working With Diagrams." Define the selected submachine in the State Specification dialog box. For a detailed description of this dialog box, see State Specification dialog box on page 886. For more information on working with states, see State on page 885.

Adding connection point reference


The connection point reference represent an entry to or exit from the submachine state. It can be used as the source or target of a transition. To draw the connection point reference on the submachine state
1. In the state diagram toolbar, click the Connection Point Reference button. Click on

the diagram pane on the submachine state shape. The Select Entry/Exit Point dialog box opens. 2. Select entry point to define the entry into the submachine state or exit point to define the exit from the submachine state. The Connection Point Reference is drawn on the submachine state with a defined entry or exit point.

891

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
State

To see the assigned entry/exit point, open the Connection Point Reference dialog box. The Entry or Exit properties will display the defined entries. To assign the entry/exit points to the Connection Point Reference Select the Connection Point Reference on the diagram pane. Open the shortcut menu and select the Select Entry/Exit Point command.
NOTE:

In the Select Entry/Exit Point dialog box, only these entry and exit points are listed, which are created at the same State Machine as the submachine state. If there are no entry/exit points at the same state machine, the Select Entry/Exit Point dialog box is not opened when drawing the Connection Point Reference.

Defining State Invariant


To define a state condition
Double-click on the state to open the State Specification dialog box and in the State

Invariant field, type an condition and submit changes.


Near the State Invariant field, click "..." button. The Edit State Invariant dialog box

opens. Type the condition and close the dialog box by submitting changes. The State Invariant value is displayed on the diagram pane on the state shape in brackets:

Assigning behavior to state


You may define a behavior to be executed correspondingly to the listed events while being in the state whenever the state is entered and exited. To assign a behavior to a state
1. Double-click the state to open the State Specification dialog box.

892

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Subsystem

In the Do Activity, Entry or Exit group, the Behavior Type combo box, assign one of the behaviors: Activity, Interaction, or State Machine.

Subsystem
A subsystem is treated as an abstract single unit. It groups model elements by representing the behavioral unit in a physical system. To draw a subsystem
1. In the Use Case diagram toolbar, select the Subsystem element to draw.

893

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Swimlane

Swimlane
Actions and subactivities can be organized into swimlanes in the activity diagrams. The swimlanes are used to organize responsibility for actions and subactivities according to the class. They often correspond to the organizational units in a business model. The swimlanes limit and provide a view on the behaviors invoked in the activities. They consist of one or more partitions. They may be vertical and horizontal. An activity diagram can be divided visually into swimlanes, each separated from the neighboring swimlanes by vertical or horizontal solid lines on both sides. Each swimlane represents a 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 may 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.

894

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Swimlane

To open the Activity Partition Specification dialog box


Select Specification from the partition (swimlane) shortcut menu, or double-click the partition line.

Figure 362 -- Activity Partition Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.
Tab name General Box name Owner Function

Set general information about the partition


Represents

Shows the name of the activity diagram where the partition is placed.

Click the ... button to open the Select Elements dialog box. Assign a model element that represents the partition.

895

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Swimlane

To draw a swimlane on the diagram


Click the Swimlane button on the diagram toolbar and click the diagram.

To set a name for a swimlane


1. Double-click the swimlane line or select Specification from the line shortcut menu. 2. The Activity Partition Specification dialog box opens. Type a name in the Name

box.
Type the name directly on the Diagram pane.

The Horizontal and Vertical Swimlanes The following is an example of vertical swimlanes:

The following is an example of horizontal swimlanes:

To add an additional partition Select a swimlane on the diagram pane and from the shortcut menu, select Insert Vertical Swimlane or Insert Horizontal Swimlane.

896

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Swimlane

To draw multidimensional swimlanes


1. Draw a vertical swimlane. 2. From the swimlane shortcut menu, select the Insert Horizontal Swimlane com-

mand. 3. Insert as many horizontal and vertical swimlanes as you need. The following is an example of the multidimensional swimlanes:

To add model elements to a swimlane If a swimlane is already drawn in the activity diagram, drawing an action (or any other element) will highlight the swimlane in blue. This means that the action shape will depend on the swimlane symbol.
NOTE:

If the model elements depend on a swimlane symbol, they will be deleted if the swimlane symbol is deleted.

897

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Swimlane

The multidimentional swimlanes, with added elements, shown in the Figure below.

898

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Template / Parameterized class

Template / Parameterized class


Terms

The OMG UML specification (UML 2.2: Superstructure) states: A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template. The OMG UML specification (UML 2.2: Superstructure) states: A templateable element is an element that can optionally be defined as a template and bound to other templates. The OMG UML specification (UML 2.2: Superstructure) states: A classifier template parameter exposes a classifier as a formal template parameter.

To define a parameterized class


1. Double-click the class shape or select Specification from the class shape shortcut

menu. The Class Specification dialog box opens. Click the Template Parameters tab. 2. To add or edit a parameterized class, click the Create button. The Select Template Parameter Type dialog box opens. Select the type from the model tree and click OK. 3. To remove the selected parameterized class, click the Delete button.

899

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Template / Parameterized class

To open the Classifier Template Parameter Specification dialog box


In the element Specification dialog box tree, expand the Template Parameters tab and double click the selected template.

Figure 363 -- Classifier Template Parameter Specification dialog box

Select the Expert mode from the Properties field to show more properties of the template parameter. Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section
Tab name General Box name Parametered Element Owner Function

The name of the element, which was parametered by a template parameter. The name of the element, which contains the template parameter.

900

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Transition

Transition
A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type. Define the selected transition in the Transition Specification dialog box.

Figure 364 -- Transition Specification dialog box

Refer to the Specification dialog boxes on page 265 for information about the specification elements not covered in this section.

901

Copyright 1998-2009 No Magic, Inc.

11
Tab name

MODEL ELEMENTS
Transition

Box name Guard

Function

General Set a general information about the transition.

A guard is an expression that is attached to a transition as a fine-grained control over its execution. The guard is evaluated when an event instance is dispatched by the state machine. The name of the model element, which is the target of the transition. The name of the model element, which is the source of the transition. The type of the event The type of the affected action. Click ... and select an element from the activity, interaction or state machine items list. The corresponding dialog box opens.

Target Source Trigger group box Event Type Effect group box Behavior Type Behavior Element

To define an event type


In the Transition Specification dialog box, General tab, click the arrow down in

Trigger group box, Event Type field.

902

Copyright 1998-2009 No Magic, Inc.

11
Name

M ODEL ELEM ENTS


Transition

Event types
Description Any Receive Event

A transition trigger associated with AnyReceiveEvent specifies that the transition is to be triggered by the receipt of any message that is not explicitly referenced in another transition from the same vertex. A call event represents the reception of a request to cause a specific operation. It is distinct from the call action that caused it. It may cause the invocation of a behavior that is the method of the operation referenced by the call request, if that operation is owned or inherited by the classifier that specified the receiver object. 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 actions. An expression specifies the change event: a keyword when followed by an expression. A creation event models the creation of an object. A destruction event models the destruction of an object. An execution event models the beginning or the end of an execution occurrence. A send operation event specifies the sending of a request to invoke a specific operation on an object. A send signal event specifies the sending of a message to a receiver object. A signal event represents the reception of a particular (asynchronous) signal. The Signal Event is a child of the Event. 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. An expression specifies the corresponding time deadline: a keyword after, followed by an expression.

Call Event

Change Event

Creation Event Destruction Event Execution Event Send Operation Event Send Signal Event Siganl Event Time Event

903

Copyright 1998-2009 No Magic, Inc.

11

MODEL ELEMENTS
Use Case

Enhanced Event assignment to transition


To add an Event value on a transition can be simply done through the diagram pane:
Signal Event. Type any title on a transition. A signal event is added. The words

typed will be the signal name. If such typed signal already exists in the project, and this signal is included in the Signal Event, the Signal Event is assigned to the transition.
Call Event. The name of the operation is displayed on a transition. If an existing

operation name is typed on the transition (if this operation is assigned to the Call Event), the Call Event in this operation will be assigned to the transition.
Change Event. To add the Change Event to a transition, type the following: when ().

You may add change event expression in the brackets.


Time Event. To add the Time Event to a transition, type the following: at (). You can

add the value of the time event in the brackets.

Use Case
A use case represents a typical interaction between a user and a system. It captures some of the functionalities and data that the user works with. It is a type of behavioral classifier that represents a declaration of an offered behavior. Each use case specifies a type of behavior, including the variants, that the subject can perform in collaboration with one or more actors. The subject of a use case could be a physical system or any other element that may have the behavior, such as a component, a subsystem, or a class. An extension point is a reference to one location within a use case where an action sequences from other use cases can be inserted. Each extension point has a unique name within theuse case and a description of the location within the behavior of the use case. A use case is shown as an ellipse with the the name inside it. The extension points are listed in the Extension Points compartment of the use case.

904

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Use Case

Define the selected use case in the Use Case Specification dialog box.

Figure 365 -- Use Case specification dialog box

Refer to the Specification dialog boxes on page 265 for information about specification elements..
Group name General Box Load Profile Function

Loads the Use Case description profile that contains specific extensions. NOTE
This functionality is available in Standard, Professional, Architect, and Enterprise editions only.

905

Copyright 1998-2009 No Magic, Inc.

11
Group name Behaviors

MODEL ELEMENTS
Use Case

Box Type Name Create

Function

The type of the created element. The name of the created element. The list of elements to create opens. Select the element and define the properties in the open properties list. Remove the selected diagram from the use case. Define a new extension point. Remove the selected extension point from the use case. Type the name for a newly created diagram. The type of the created diagram. The list of diagrams opens. Select a diagram or constraint and define properties in the open properties list. Remove the selected inner element from the use case.

From the drop down list, select an activity, state machine, or interaction to create within a use case.

Delete Extension Points Create Delete Inner elements Name Type Create Delete

From the drop down list, choose diagrams or constraints to create as an inner element of the use case.

For more information about working with symbols, see Chapter 5, "Working With Diagrams." To add an extension point for the use case
1. Open the Use Case Specification dialog box. 2. Click the Extension Points group. 3. Click Create. The Extension Point properties window opens. Here you may specify

the extension point.


Press CTRL+ALT+E. From the use case shortcut menu, select Insert New Extension Point. From the use case shortcut menu in the Browser, select New Element, and then

Extension Point. Type the name of the extension point.


TIPS:

You may create an extension point directly on a diagram: Draw an extension path between two use cases. Then click YES in the message window. Once it is created, specify its name. You may define a use case as abstract (for the detailed description, see Generalizable elements on page 787.)

906

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Use Case Extension

Use Case Extension


MagicDraw provides the UseCase description extensions. Now you may define the pre-conditions and post-conditions for the use cases and other extensions, which are implemented as properties and tags in the Use Case Specification dialog box. MagicDraw contains the UseCase Description profile, which can be loaded from the Use Case Specification dialog box. The properties are available in the Use Case Specification window:

907

Copyright 1998-2009 No Magic, Inc.

11
IMPORTANT

MODEL ELEMENTS
Value Specification

The properties are mapped to tags, which can be listed in the Specification dialog box, Tags group. If the tags cannot be seen, apply <<requirementUseCase>> stereotype to the use case. The tag definitions from the UseCase Description profile are only visible in generated reports, not on the diagrams. For a detailed description about reports, see in Controlling Merge memory usage on page 394. For a detailed description of working with tag definitions, see in Specification dialog boxes on page 265.

To display the tag definitions from the UseCase Description profile on the diagram
1. Open the UseCase Description profile UseCase_Profile.xml as a project (this profile

is located in the <MagicDraw installation directory>/profiles folder).


2. In the Browser tree select the property, which represents the tag definition and open

its Specification dialog box. 3. In the Applied Stereotype field, remove <<InvisibleStereotype>>. 4. Save the project. 5. Reload the profile in the project you are working: from the UseCase Description Profile shortcut menu in the Browser tree, select Modules, and then Reload Module.

Value Specification
To create a Value Specification using the Browser shortcut menu Now you can create a standalone Value Specification in a model using the Browser shortcut menu. To create Value Specification from the element shortcut menu in Browser choose New Element, Value Specification (see Figure 366 on page 909). NOTE
Since MagicDraw 16.0 version Value Specifications are displayed in the Containment tree of the Browser.

908

Copyright 1998-2009 No Magic, Inc.

11

M ODEL ELEM ENTS


Value Specification

Figure 366 -- Creating Value Specification from Browser

909

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICONS


This document includes icons and buttons used in the MagicDraw GUI (main toolbars and Browser Tree) and Icons of modules and Profiling mechanism.
Icons from the MagicDraw GUI on page 910. Diagram Icons on page 923. Icons of general elements on page 925. Icons of relationships on page 939. Icons from Modules and Profile mechanism on page 945.

Icons from the MagicDraw GUI


Main Toolbar
Speed up your work using the MagicDraw main toolbar. It is located at the top of the MagicDraw window, below the main menu.

For more information about working with toolbars, see Toolbars on page 82.

910

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Toolbar button File group

Title

Description

New Project (Ctrl+N)

To create a new blank project, press the New Project button:


The New Project dialog box

opens. Select the Blank Project icon. Specify the file name in the Name text box. Click the ... button to select a location to store the newly created project in your computer. Click OK. Open Project (Ctrl+O) Save Project (Ctrl+S) Print Active Diagram To print an open diagram. (Ctrl+P) Print Preview The Print Preview dialog box opens showing how your diagram looks before printing. Search for an element, symbol or diagram in the project according to your selected criteria. To open an existing project, press the Open Project button. To save the current project.

Find (Ctrl+F) Find TODO Quick Find (Ctrl+Alt+F)

911

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Toolbar button

Title

Description

Undo action (Ctrl+Z)

Undo the last action you 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 is unavailable until you perform an action after loading an existing project or creating a new project. By default, the limit of the undo mechanism is 100 steps backwards. To change the limit, select Environment from the Options menu. The Environment Options dialog box opens. Change the Undo List Size property. Each command has an easily recognized name. You will be able to see the command history and undo or redo action history. The main window will have two lists of commands: one for the undo commands, another one for the redo commands.

Redo action (Ctrl+Y)

Restore the Undo action (moving, dragging, resizing, cutting, copying, pasting, deleting, selecting, etc.). The Redo command is unavailable until you use the Undo command. A combo box displaying a list of open projects.

Open Projects group

912

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Toolbar button

Title

Description

List of open projects

You will see the name and location of the currently open project. To see a list of all open projects, click the small arrow on the right side of the drop-down list box.

Buttons from the diagram list toolbar


To work with diagram windows and tooltips of model elements, use the buttons on the main toolbar: Previous Diagram, Next Diagram or Tooltips Style
Toolbar button Title Description

Previous Diagram (Alt+Left) Next Diagram (Alt+Right)

Opens the previously open diagram.

Opens the next diagram.

913

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Toolbar button

Title ToolTips Style button

Description Click the ToolTips Style button and select the kind of tool tips you wish to display in symbols on the diagram pane:
Do not show do not show tips

(default).
Object name show the symbol

name and location path from the Data package in the following style: <Element Name> [<path>]
Object Documentation show

the documentation associated with the desired symbol. NOTE To see the tool tips, drag the cursor over the desired symbol on the diagram.

Diagram main toolbar


The diagram toolbar contains buttons for working with symbols on the diagram pane. Select any symbol or path on the diagram pane and the required buttons from the diagram main toolbar become active.

Use the diagram main toolbar to change the symbol layout, path style, symbol properties style, diagram zoom as well as symbol copy/paste, cut, or delete actions.
Toolbar button Layout group Title Description

914

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Quick diagram layout

Apply the recommended layout tool with default options to the active diagram. Press the small arrow near the Quick Diagram Layout button to see other available layouts.

Make same width

Layout the selected shapes according to their width. After the layout, the same width will be apply to the shapes (according to the widest). Layout the selected shapes according the their height. After the layout, the same height will be applied the the shapes (according to the highest). Layout the selected shapes according to their width and height. After the layout, the same width and height will be applied to the shapes according to the widest and highest shape. Center the selected shapes on a horizontal line. Center the selected shapes on a vertical line. Space the selected shapes evenly. The space between the selected shapes is equally distributed on a horizontal line. Space the selected shapes evenly. The space between the selected shapes is equally distributed on a vertical line.

Make same height

Make same size

Center Horizontally

Center Vertically

Space Evenly Horizontally

Space Evenly Vertically

Paths Editing group

915

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Remove Break Points Rectilinear

To remove all angles of a path, press the Remove Break Points button. To change a path style to rectilinear lines, press the Rectilinear button. To reset the path labels to the default position, press the Reset Labels Position button. Press the button to apply the selected fill color or press the small arrow near the button to select another color. If a new style was set, it will be applied for all newly created elements after drawing them on the diagram pane. The selected symbol style will be changed to its default style. (The default symbol style is defined in the Project Options dialog box, Symbol property styles branch). All shapes of the same style are selected, for example, all classes will be selected. Using the view group buttons, you can change the view of the diagram by zooming it in and out. NOTE You can also change the diagram view in the Browser, Zoom panel.

Reset Labels Positions


Symbol Editing group

Fill Color

Set Selected Symbol Style as Default

Apply Default Symbol Style

Select All of the Same Type


View group

Zoom In, Zoom Out, and Percentage drop down box

Edit group

916

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Cut, Copy, Paste and Delete

Using the Edit group buttons, you can copy or delete symbols from the diagram pane. NOTE After a symbol is deleted from the diagram pane, it does not mean that the element is deleted from the project.

Buttons from the Browser window


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.

Figure 1 -- Browser window

917

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Floating, Auto-hide and Close buttons


To each Browser window there are added Toggle Floating, Toggle auto-hide, and Close buttons. You can move or hide a window using these buttons . See the circled buttons in the image below.

Icon

Title

Description

Toggle Floating

Press the Toggle Floating button, the window is split and you can move the window to any desired position. Press the Toggle auto-hide button, the current Browser window is hidden. The tab of the hidden window is displayed on the left side of MagicDraw (in vertical position). Bring the mouse over the hidden window tab and the window is displayed. Close the current window.

Toggle auto-hide

Close

Toggle Floating

The floating window is docked again.

Toggle auto-hide

The auto-hide enabled window is displayed again.

The browser consists of two parts:


1. Containment tree/Inheritance tree/Diagrams tree/Model Extensions tree/Search Results part. 2. Zoom/Documentation/Properties window.

918

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Buttons from the Containment tree


In the Browser, the Containment tree is active by default. To open the Containment tree, click the

Containment Tree tab at the top of the Browser. The Containment tree displays a model data, and groups it in logical sets.

Icon

Title

Description

Show Full Types in Browser Show Stereotypes

To show/hide full information of the operations, attributes, and relationships in the Containment Tree. To show/hide stereotypes near the element name.

Show Code Engineering Sets Show Auxiliary Resources

To show/hide Code Engineering Sets branch in the Browser. To show/hide modules and profiles in the Browser.

Open in New Tab

A new tab with a package name and tree content will be opened in the Browser.

919

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Buttons from the Inheritance tree


To open the Inheritance tree , click the Inheritance Tree tab at the top of the Browser. The Inheri-

tance tree represents the classifiers, packages, data types, stereotypes hierarchy of your project. The inheritance according to the UML Specification is shown using a generalization relationship.

Icon

Title

Description

Show only hierarchies

The generalization hierarchies are displayed in the tree. If a classifier has no generalization relationship, it will not be visible on the tree.

Invert Tree

The hierarchy of general classifiers and children is displayed in the Inheritance tree. After inverting the tree, the classifier tree view will be changed, making the child a root classifier.

920

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Buttons from the Diagrams tree


To open the Diagram tree , click the Diagram Tree tab at the top of the Browser. The Diagram tree in the Browser represents the external structure of a diagram.

Icon

Title

Description

Group by Diagram Type

If the Group by Diagram Type button is pressed, diagrams are listed in the packages by diagram type.

Buttons from the Model Extensions tree


To open the Model Extensions tree , click the Model Extensions tree tab at the top of the Browser. The Model Extensions Tree contains all Stereotypes that are predefined and created manually in the project.

Icon

Title

Description

Group by Profiles

If the Group by Profiles button is pressed, groups of profiles and the elements inside them are listed. If the group by Metaclass button is pressed, groups of Metaclasses are displayed as packages and the elements are listed inside them.

Group by Metaclass

921

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from the MagicDraw GUI

Buttons from the Search Results tree


To open the Search Results tree, click the from the Edit main menu, select the Find com-

mand.The Search Results tree shows results of the search.

Icon

Title

Description

Find

Press the Find button and the Find dialog box opens.

Clear Results

Press the Clear Results button to remove elements from the Search Results tree. Press the Show Stereotypes button to display stereotypes beside the element.

Show Stereotypes

922

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Diagram Icons

Diagram Icons
Icon Diagram Description

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. The classes represent the types of objects that are handled in a system.a A use case is a description of the functionality (a specific usage of a system) that a system provides. A collaboration diagram illustrates the various static connections between objects and it models their interactions. A sequence diagram is a time-oriented view of the interaction between objects.
A state diagram describes the lifecycle of an object and its behavior (such as a procedure or operation), or a behaviored feature (such as a use case).

Use Case diagram

Collaboration diagram

Sequence diagram

State diagram

Protocol State Machine diagram

A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifier operations.* The purpose of an activity diagram is to focus on flows driven by the internal processing (as opposed to external events). The Implementation diagrams help developers describe the logical software structure inside a computer system or across a large distributed system. A composite structure diagram allows a decomposition and modeling of the internal structure of classifiers.

Activity diagram

Implementation diagram

Composite Structure diagram

923

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Diagram Icons

Icon

Diagram

Description

Business Process diagram The Business Process Diagrams convey business processes of different participants in a modeled system. In a MagicDraw model, the Process contains a Business Process Diagram, depicting it as a graph of Flow Objects. CORBA IDL diagram CORBA IDL diagram facilitates the creation of CORBA IDL elements. Also the following patterns are available for CORBA IDL: Interface, Value Type, Type Definition, Sequence, Array, Fixed, Union, Enumeration, Struct, and Exception. In the free form diagram you may draw all types of element shapes and also describe the business workflow. A generic DDL diagram is used to draw database definition elements. The Generic DDL diagrams simplify the creation of primary key, foreign key, triggers, and so forth. A networking diagram allows a visual display of a network topology. The Networking Profile contains stereotypes for a network description. Use the Oracle DDL diagram to draw database definition elements. This diagram is based on the Generic DDL diagram. The robustness diagram represents robustness analysis. It includes elements from the class diagram and actors from the use case diagram with predefined stereotypes. A struts diagram is an extension of the UML notation. It contains the same model elements which belong to the class diagram, except they have predefined stereotypes. A time diagram is similar to a sequence diagram, except the model elements of the time diagram have predefined stereotypes.

Free Form diagram

Generic DDL diagram

Networking diagram

Oracle DDL diagram

Robustness diagram

Struts diagram

Time diagram

924

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Diagram

Description

WSDL diagram

A WSDL diagram is used to draw WSDL elements. It enables you to create all the elements used in a wsdl file. A web system consists of server applications, network, communicating protocol, and the browser. The purpose of this diagram is to create the structure of an xml schema file. The Diagram allows a quick drawing of xml schema elements. The openArchitectureWare (oAW) is a popular model driven development & architecture framework based on Eclipse. This framework consists of various components, which allow you to manipulate models in various ways. The oAW Metamodeling diagram is used together with the oAW's uml2ecore transformer to simplify the metamodel preparation.

Web diagram

XML Schema diagram

oAW Metamodeling diagram

Content Diagram

The purpose of the content diagram is to generate or represent a project structure (diagrams). The relations between diagrams are represented. The content table works as a table of contents of a project. The Dependency Matrix is a method of visualizing and representing dependency criteria. Diagrams, UML and extended UML elements serve as row and column entries. The cells in the matrix show where these elements are associated or related.

Dependency Matrix

a) Material from the OMG UML Specification has been duplicated with permission.

Icons of general elements


This section lists all element icons displayed in the MagicDraw Browser window. To make your icons search easier, the icons of relationships are listed in the next section Icons of

925

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

relationships on page 939, and the icons used in modules/profiling mechanism are listed in the section Icons from Modules and Profile mechanism on page 945.
Icon Title Description

Abstract class

An abstract class is a class, which represents the conceptual set of the classifiers. In the Class specification dialog box select the Is Abstract option and a class icon changes to the icon of the abstract class.

Accept Event Action

An accept event action is an action that waits for the occurrence of an event that meets the specified conditions.a

Action

An action is a named element that is the fundamental unit of an executable functionality. The execution of an action represents some transformation or processing in the modeled system, be it a computer system or otherwise.* An activity element is created on the activity diagram creation. An activity final node is a final node that stops all flows in an activity.* An actor represents the roles played by the human users, external hardware, and other subjects.* An artifact represents a physical piece of information that is used or produced by a software development process.* An instance of an artifact.

Activity

Activity Parameter Node

Actor

Artifact

Artifact Instance

926

Copyright 1998-2009 No Magic, Inc.

A P P E N D IX : L IS T Icons of general elements

O F

IC O N S

Icon

Title

Description

Association Class

An Association Class can be seen as an association that also has class properties, or as a class that also has association properties. Not only it connects a set of classifiers, but also defines a set of features that belong to the relationship itself, not to any of the classifiers.* An attribute is a named property of a class that describes a range of values that can be held by instances of that class. The call operation action transmits an operation call request to the target object, where it may cause the invocation of an associated behavior.* An object node is an activity node that indicates an instance of a particular classifier, possibly in a particular state, may be available at a particular point in the activity.* The choice vertices, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions.* A class is the descriptor for a set of objects with similar structure, behavior, and relationships. A collaboration is represented as a kind of classifier and it defines a set of cooperating entities to be played by instances (its roles) as well as a set of connectors that define communication paths between the participating instances.* A collaboration use represents a particular use of collaboration to explain the relationships between the properties of a classifier.* A combined fragment defines an expression of interaction fragments. It is defined by an interaction operator and the corresponding interaction operands.*

Attribute

Call Operation Action

Central Buffer Node (Object Node)

Choice

Class

Collaboration

Collaboration Use

Combined Fragment

927

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Comment

A comment gives an ability to display different remarks on diagrams.* It may be attached to multiple elements. A component represents all kinds of elements that pertain to piecing together software applications. They can be simple files, such as DLLs or executables. An instance of a component that may reside on a node instance. A composite state is a state with one region. There is a set of two or more states placed within a region. These are known as substates. The substates describe states within a state. An orthogonal state is a state with two or more regions. In each region, you may draw one life cycle with both a beginning and an end. A conditional node is a structured activity node that represents an exclusive choice among some number of alternatives.* A connection point reference represents the use of entry/exit points. A constraint is a condition or restriction expressed in a natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element.* A data store keeps all tokens that enter it, copies them when they are chosen to move downstream. Incoming tokens containing a particular object replace any tokens in the object node containing that object.*

Component

Component Instance

Composite State

Orthogonal State

Conditional Node

Connection Point Reference Constraint

Data Store

928

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Data Type

A data type is a type whose instances are identified only by their value.* A deep history represents the most recent active configuration of the composite state that directly contains this pseudostate.* Decisions are made using guard conditions. They help protect transitions that depend on a guarding condition. The pseudo states are typically used to connect multiple transitions into more complex state transitions paths.* A node deploys and provides a place to store and/or execute an artifact. An instance of a deployment specification element.

Deep History

Decision/Merge Node in activity diagram Pseudo State in a state diagram Deployment

Deployment Specification Instance Device

A device is a physical computational resource. For example; a piece of hardware such as a desktop computer, a processor, a server, or a human work unit such as a department or team. An device instance is an instance of a device.

Device Instance

Duration

A duration defines a value specification that specifies the temporal distance between two time instants.* A duration constraint defines a constraint that refers to a duration interval.* A value specification is an abstract metaclass used to identify a value or values in a model. It may make reference to an instance or it may be an expression denoting an instance or instances when evaluated.*

Duration Constraint

Element Value

929

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Entry Point

An entry point connection point reference as the target of a transition implies that the target of the transition is the entry point pseudostate as defined in the submachine of the submachine state.* An enumeration is a kind of data type, whose instances may be any of a number of user-defined enumeration literals. An enumeration literal defines an extension element of an enumeration data type. An event is the specification of some occurrences that may potentially trigger effects by an object.* An execution environment is a node that offers an execution environment for specific types of components that are deployed on it in the form of executable artifacts.* An instance of execution environment.

Enumeration

Enumeration Literal

Event (all type of events)

Execution Environment

Execution Environment Instance Exit Point

An exit point connection point reference as the source of a transition implies that the source of the transition is the exit point pseudostate as defined in the submachine of the submachine state that has the exit point connection point defined.* An expansion node is an object node used to indicate a flow across the boundary of an expansion region.* An expansion region is a structured activity region that executes multiple times corresponding to the elements of an input collection.*

Expansion Node

Expansion Region

930

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Final State

A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed.*

Activity Final Function Behavior

An activity may have more than one activity final node. The first one reached stops all flows in the activity.* A function behavior is an opaque behavior that does not access or modify any objects or other external data.* An icon with a small arrow image on the left-bottom side indicates that element has a hyperlink to another element/symbol, file, or web page. For more information about hyperlinks, see Defining Hyperlinks Between Elements on page 303.

Hyperlink

Informaction Flows

The InformationFlows package provides mechanisms for specifying the exchange of information between entities of a system at a high level of abstraction.* An information item is an abstraction of all kinds of information that can be exchanged between objects.*

Information Item

Initial Node

An initial node is a control node at which a flow starts when the activity is invoked.* An input pin is a pin that holds input values to be consumed by an action.* An output pin is a pin that holds output values produced by an action.* An instance specification is a model element that represents an instance in a modeled system.*

Input Pin Output Pin Instance

931

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Interaction

An interaction is a unit of behavior that focuses on the observable exchange of information between connectable elements.* An interaction operand is contained in a combined fragment. It represents one operand of the expression given by the enclosing combined fragment.* An interaction use refers to an Interaction. The InteractionUse is a shorthand for copying the contents of the referred Interaction where the interaction use is.* An interface is a specifier for the externally-visible operations of a class, component, or other classifier (including subsystems) without a specification of the internal structure. An interruptible region contains activity nodes. When a token leaves an interruptible region via edges designated by the region as the interrupting edges, all tokens and behaviors in the region are terminated.* The junction pseudo state corresponds to the merge and the static conditional branch. A lifeline represents an object. The lifeline runs from the beginning of the interaction, at the top of the diagram, to the end of the interaction at the bottom of the line. A literal boolean is a specification of a boolean value.*

Interaction Operand

Interaction Use

Interface

Interruptible Region

Junction

Lifeline

Literal Boolean

Literal Integer

A literal integer is a specification of an integer value.*

Literal Null

A literal null specifies the lack of value.*

932

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Literal String

A literal string is a specification of a string value.*

Literal Unlimited Natural

A literal unlimited natural is a specification of an unlimited natural number.* A loop node is a structured activity node that represents a loop with the setup, test, and body sections.* A class whose instances are classes. Metaclasses are typically used to construct metamodels. An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.* A model is an abstraction of a physical system from a particular point of view. A system boundary element consists of use cases related by the exclude or include (uses) relationships. This icon depicts Model with applied Model Library stereotype. The model library is a package that contains model elements that are intended to be reused by other packages.*

Loop Node

MetaClass

Method (Operation)

Model System Boundary Model Library

N-ary Association

An n-ary association is an association among two or more classes (a single class may appear more than once). A node is a computational resource upon which artifacts may be deployed for execution. The nodes can be interconnected through communication paths to define the network structures.*

Node

933

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Node Instance

A node instance is an instance of a node where the component instances may reside. An opaque actions is an action with implementationspecific semantics.* A behavior with implementation-specific semantics.* The Opaque Behavior is introduced for implementationspecific behavior or for use as a place-holder before one of the other behaviors is chosen.* An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context.* This icon depicts a Package with applied Model Library stereotype. The model library is a package that contains model elements that are intended to be reused by other packages.*

Opaque Action

Opaque Behavior

Opaque Expression

Package Model Library

Package

A package groups classes and other model elements together. A parameter is a specification of an argument used to pass the information on to or out of an invocation of a behavioral feature.* A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts.* A primitive type defines a predefined data type, without any relevant substructure.*

Parameter

Port

Primitive Type

934

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Protocol State Machine

A protocol state machine is always defined in the context of a classifier. It specifies which operations of the classifier can be called in which state and under which condition, thus specifying the allowed call sequences on the classifiers operations.* A reception is a declaration stating that a classifier is prepared to react to the receipt of a signal.* A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions.* A send signal action is an action that creates a signal instance from its inputs, and transmits it to the target object, where it may cause the discharge of a state machine transition or the execution of an activity.* A sequence node is a structured activity node that executes its actions in order.* A shallow history represents the most recent active substate of its containing state.* Not all module contents are visible in the using project. A module has a shared part and a private part. Only the contents of the shared part are visible in the working project. The shared packages are marked with a hand image. For more information about project partitioning, see Project Partitioning on page 172.

Signal Reception (Reception) Region

Send Signal Action

Sequence Node

Shallow History

Shared Package

Signal

A signal is a specification of send request instances communicated between objects.* A slot specifies that an entity modeled by an instance specification has a value or values for a specific structural feature.*

Slot

935

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

State Machine

A state machines can be used to express the behavior of part of a system.* A state specifies how the object reacts to events occurring around it. A stereotype is an extension mechanism that defines a new and more specialized element of the model based on an existing element. A structured activity node is an executable activity node that may have an expansion into the subordinate nodes as an activity group.* A submachine state specifies the insertion of the specification of a submachine state machine.* A subsystem is a unit of hierarchical decomposition for large systems.* An instance of the subsystem.

State

Stereotype

Structured Acitivity Node

Submachine State

Subsystem

Subsystem Instance

Swimlane

Actions and subactivities can be organized into a Swimlane in the activity diagrams. The swimlanes are used to organize responsibility for actions and subactivities according to a class. A fork node is a control node that splits a flow into multiple concurrent flows.* A joint node is a control node that synchronizes multiple flows.*

Fork/Joint Horizontal or Vertical

Template Parameter

A template parameter exposes a parameterable element as a formal template parameter of a template.*

936

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Template Parameter Substitution Template Parameter Signature Time Constraint

A template parameter substitution relates the actual parameter(s) to a formal template parameter as part of a template binding.* A template signature bundles the set of formal template parameters for a templated element.* A time constraint specifies the combination of min and max timing interval values. A time expression defines a value specification that represents a time value.* An time observation is a reference to a time instant during an execution. It points out the element in the model to observe and whether the observation is made when this model element is entered or when it is exited.* A time event specifies a point of time by an expression. The expression might be absolute or might be relative to some other point of time.* A trigger specification may be qualified by the port on which the event occurred.* A trigger relates an event to a behavior that may affect an instance of the classifier.*

Time Expression Time Observation

Time Event

Trigger

Use Case Instance

A use case instance is an instance of a use case.

Use Case

A use case is a kind of behavior-related classifier that represents a declaration of an offered behavior.* A value pin is an input pin that provides a value by evaluating a value specification.*

Value Pin

937

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of general elements

Icon

Title

Description

Variable

A variable is considered as a connectable element.*

a) Material from the OMG UML Specification has been duplicated with permission.

938

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of relationships

Icons of relationships
Icon Title Description

Relations branch

Most of the relationships are included in the Relations branch in the Browser. 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.a An aggregation describes a special type of association designed to help cope with complexity. An assembly connector is a connector between two components that defines that one component provides the services that another component requires.* An association answers to the question why two classes of objects need to know about one another.

Abstraction

Aggregation association

Assembly Connector

Association

Communication Path

The communication path is a subclass of association. It specifies the relationship between nodes by defining the number of nodes that may be connected (multiplicity), and the nature of the connection, via the name of the path or a stereotype. An association class can be seen as an association that also has class properties, or as a class that also has association properties. Not only it connects a set of classifiers, but also defines a set of features that belong to the relationship itself, not to any of the classifiers.* A call message represents the request to invoke a specific operation. A composition is used for aggregations where the life span of the member object depends on the life span of the aggregate.

Association Class

Call Message

Composition

939

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of relationships

Icon

Title

Description

Connector

A connector specifies a link that enables communication between two or more instances.* A constraint is a condition or restriction expressed in a natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element.* A control flow is an edge that starts an activity node after the previous one is finished.* A create message is message designating the creation of another lifeline object.* A delegation connector is a connector that links the external contract of a component (as specified by its ports) to the internal realization of that behavior by the component parts.* A dependency indicates a semantic relationship between two model elements (or two sets of model elements). A deployment is a relationship between the location and the artifact. A delete message is message designated to terminate another lifeline.* A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements.*

Constraint

Control Flow

Create Message

Delegation Connector

Dependency

Deployment

Delete Message

Direct Association

940

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of relationships

Icon

Title

Description

Directed Aggregation Association

An aggregation describes a special type of association designed to help cope with the complexity. A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements.*

Direct Composition Association

A composition is used for aggregations where the life span of the member object depends on the life span of the aggregate. A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements.*

Element Import

An element import is defined as a directed relationship between an importing namespace and a packageable element.* An exception handler is an element that specifies a body to execute in case the specified exception occurs during the execution of the protected node.* A relationship from an extending use case to an extended use case that specifies how and when the behavior defined in the extending use case can be inserted into the behavior defined in the extended use case.* An extension point identifies a point in the behavior of a use case where that behavior can be extended by the behavior of some other (extending) use case, as specified by an extend relationship.* A 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 super class) that is fully consistent with the first element and that provides additional information.

Exception Handler

Extend

Extension

Generalization

941

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of relationships

Icon

Title

Description

Generalization Set

A generalization set defines a particular set of generalization relationships that describe the way in which a general classifier may be divided using specific types.* An include (uses) relationship from the use case A to the 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 is defined in A. An information flow specifies that one or more information items circulates from its sources to its targets.* An interface realization is a specialized realization relationship between a behavioral classifier and an Interface.* An instance specification whose classifier is an association represents a link and is shown using the same notation as for an association, but the solid path or paths connect the instance specifications rather than the classifiers.* A manifestation is the concrete physical rendering of one or more model elements by an artifact.* A package merge is a directed relationship between two packages that indicates that the contents of the two packages are to be combined.*

Include

Information Flow

Interface Realization

Link

Manifestation

Package Merge

942

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of relationships

Icon

Title

Description

Message

A message is a named element that defines one specific kind of communication in an Interaction. A communication can be, for example, raising a signal, invoking an operation, creating or destroying an Instance. The message specifies not only the kind of communication given by the dispatching execution specification, but also the sender and the receiver.* The message was generated by an asynchronous send action.*

Send Message

Non-navigable Association An association with non-navigable association ends.

Object Flow

An object flow is a technique used to capture how objects participate in activities and how they are affected by the activities.* A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace. A profile application is used to show which profiles have been applied to a package.* A protocol transition specifies a legal transition for an operation.* A realization is a specialized abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other represents an implementation of the latter (the client).* A component realization concept is specialized in the Components package to (optionally) define the Classifiers that realize the contract offered by a component in terms of its provided and required interfaces.*

Package Import

Profile Application

Protocol Transition

Realization

Component Realization

943

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons of relationships

Icon

Title

Description

Reply Message

A reply message is a reply message to an operation call.* A role binding is a mapping between features of the collaboration type and features of the classifier or operation. This mapping indicates which connectable element of the classifier or operation plays which role(s) in the collaboration.* A substitution is a relationship between two classifiers which signifies that the substitutingClassifier complies with the contract specified by the contract classifier.* A template binding represents a relationship between a templateable element and a template.* A state transition usually has an event attached to it, but it is not necessary to attach one. If an event is attached to a state transition, the state transition will be performed when the event occurs. A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation.*

Role Binding

Substitution

Template Binding

Transition

Usage

a) Material from the OMG UML Specification has been duplicated with permission.

944

Copyright 1998-2009 No Magic, Inc.

APPENDIX: LIST OF ICO NS


Icons from Modules and Profile mechanism

Icons from Modules and Profile mechanism


Module, Profile, and Shared package model elements have their own icons, which are represented in the MagicDraw Browser. You may see the icons, their titles, and descriptions in the following table.
Icon Title Description

Module

If you have (or developing) a large model, which has several weakly dependent parts, it is advisable to split it into several module files. Partitioning has a package level granularity. A Profile is a kind of Package that extends a reference metamodel. The primary extension construct is the Stereotype, which is defined as part of Profiles.a This icon depicts a profile with applied Model Library stereotype. A package that contains model elements that are intended to be reused by other packages.*

Profile

Profile Model Library exported as module

Shared Package

Not all module contents are visible in the working project. A module has a shared part and private part. Only the contents of the shared part are visible in the working project. The shared packages are marked with a hand image.

a) Material from the OMG UML Specification has been duplicated with permission.

For more information about working with modules and profiling mechanism, see Project Partitioning on page 172.

945

Copyright 1998-2009 No Magic, Inc.

INDEX
A
About (command) 81, 83 abstract class 724, 744 operation 840 Abstract (generalizable element) 266, 787 action state 609 activation bar 588, 812 active class 744 activity diagram 607 actor 582 working with 723 aggregation 576 creating 731 Align (command) 71 assigning classifier to classifier role 811 classifier to collaboration 751 classifier to instance 800 model element to a package 311 state to object flow state 834 association 576 in class diagram 725 in use case diagram 725 n-ary 728 navigability of 731 with a role 739 association class 727 association end multiplicity of 732 qualifier of 733 visibility of 732 asynchronous message/stimulus 814 attribute 736 creating new 736 defining initial value of 800 multiplicity 741 scope of 740 show only public 748 type modifier of 740 type of 739, 883 attributes controlling the list of 744 representing as association 739 sorting of 748 suppressing compartment 748

B
binding dependency 769 browser changing position 88 changing size 88 closing or reopening 88 code engineering sets in 91 Containment tree 88 creating model elements and diagrams in 99 Diagrams tree 93 displaying full information in 89 Documentation tab 101 functions of 86 Inheritance tree 95 Model Extensions tree 96 multiple selections 100 sorting alphabetically 88 structure 86 Zoom tab 102 Browser (command) 79

C
Call (event type) 903 Center (command) 71 Change (event type) 903

946

Copyright 1998-2009 No Magic, Inc.

INDEX
changeable 741 Check Syntax (command) 74 class 741 active 744 creating setters and getters 404 defining as abstract, leaf, root and/or active 724, 744 description of 742 design patterns 746 inner elements of 743 owner of 311 show/hide package name 311 suppressing attributes 748 suppressing operations 748 class diagram 572 elements in 573 wizard 441 classifier assign to an instance 800 assigning to a collaboration 751 assigning to classifier role 811 classifier role assigning classifier to 811 in sequence diagram 588 Close All Diagrams (command) 80 Close All Projects (command) 61 closing all opened projects 140 diagram 199 code engineering checking syntax 92 creating new set 91 editing set 91 code generation 92 changing properties of 91 collaboration assigning classifier to 751 collaboration diagram changing numbering in 818 compartments of class 741 component 622, 753 diagram 620 instance 622 Component View package 139 composition 731 concurrency of operation 842 concurrent operation 842 constraints show-hide on symbol 284 showing on class 749 content diagram 641 Contents (command) 81, 82 Copy (command) 64 Copy as EMF (command) 65 Copy as JPG (command) 65 copying/cutting among different projects 99 in the Browser 99 of text 229 symbol on a diagram 228 using drag and drop 227 CORBA IDL diagram 652, 665 creating backup file 146 displaying already created relationships 478 elements and diagrams in Browser 99 new attribute 736 new code engineering set 91 new diagram 198 new operation 835 new project style 289 paths between shapes 215 creating:stereotypes 692 Cut (command) 64

D
data creating several shapes of the same 211 Data package 138 data types 761 DDL diagram 654 defining

947

Copyright 1998-2009 No Magic, Inc.

INDEX
model elements 265 Delete (command) 64 deleting all model elements 100 from the Browser 99 symbol or model element 213 dependency binding 769 permission 770 usage 770, 771 deployment diagram 621 design patterns 746 destroying sequence object 812 diagram closing 199 creating 198 defining properties of 295 information table 209 opening 198 renaming 200 saving as image 255 diagrams activity 607 class 572 collaboration 584 content 641 CORBA IDL 652, 665 DDL 654 implementation 620 robustness 646 sequence 587 state 596, 602 use case 581 web 648 WSDL 658 XML Schema 660, 664, 672 Diagrams menu 72 display related elements 477 documentation of MagicDraw 35 drag and drop copying 227 from browser to diagram 228 multiple symbols 227 source code files 228 drawing more than one shape 210 shape 209 symbol from the Browser 99

E
Edit menu 63 editing code engineering set 91 editions of MagicDraw 21 Entertainment with UML (command) 81 enumeration 763, 871 enumeration literal 765 Environment (command) 73 event 597 Exit (command) 62 extend 774 extension point 904 adding to use case 906

F
features of MagicDraw 21 File menu 60 Fit In Window (command) 67

G
generalizable elements 787 defining as 787 generalization grouping into tree 786 generate code from the selected set 92 Generate Framework (command) 74 getter 404 grid 232 size 232 snapping to 232 style 233

948

Copyright 1998-2009 No Magic, Inc.

INDEX
visibility of 232 Grid (command) 68 grouping diagrams in Browser 93 generalization paths into tree 786 of model elements 842 realizations into tree 879 Guarded 842 Interface Style (command) 73 internal transition 809

J
JVM (Java Virtual Machine) for Mac OS X 44 for Solaris 44 for Windows 44

H
Help menu 81 HTML text 307 hyperlink 307 for model element 304 hyperlink: for model element 304

L
layout 233 Layout menu 69 Leaf class 744 Leaf (generalizable element) 787 lifeline 812 link in class diagram 579 in collaboration diagram 585 in implementation diagram 629 link attribute 834 link to self 585 Look and Feel (command) 73 Look and Feel themes 136

I
image available formats 255 saving as 255 implementation diagram 620 Import Project (command) 61 include 583, 793 initial value defining for attribute 800 showing on attribute 748 inner elements of class (inserting) 743 installation other platforms 45 system requirements 42 UNIX 45 using no install 45 Windows 44 instance 626 assign classifier to 800 of component 622 of node 623 interface 625 interface style making changes to 135 multiple windows 136

M
Mac OS X installation 45 JVM 44 Magic Draw UML on the Web (command) 81 MagicDraw appearance of 135 documentation 35 editions 21 features 21 support 36 updating 48 main toolbar 85 Make Same Height (command) 71 menus 60 message changing numbering of 818

949

Copyright 1998-2009 No Magic, Inc.

INDEX
defining action for 817 diagonal 591 in collaboration diagram 586, 587 note anchor 688 numbering changing 818 numbers show/hide on collaboration diagram 817

asynchronous 814 synchronous 815 in sequence diagram 822, 825 predecessor of 821 recursive 592 to self 591 uninterpreted 590 Message Window (command) 80
model development of 20 static structural 572 model element defining 265 saving as image 255 model management 572 moving of all model elements 100 symbol 227 MS Office copying to 228 multiple windows 136 multiplicity of an attribute 741 of association end 732

O
object flow state assigning state 834 defining classifier for 834 Open Project (command) 60 opening diagram 198 diagram from Browser 94 last project on startup 147 project 147 specification dialog box 265 operation concurrency 842 creating new 835 defining 835 defining as abstract, leaf, or root 841 functions of 835 parameter of 838 return type 840 return type of 837 show only public 748 showing signature of 747 visibility 841 operations controlling the list of 744 generation of setters and getters 744 managing 407 sorting of 748 suppressing compartment 748 Options menu 73 ordering of attributes 748 of operations 748

N
name specifying for a shape 210 n-ary association 728 navigability of association 731 New Project (command) 60 Next Diagram (command) 72 node 622, 826 note 686, 688 adding hyperlink to 307 retrieving documentation 690 text as HTML in 307

P
package 574, 624, 842

950

Copyright 1998-2009 No Magic, Inc.

INDEX
adding inner elements 843 changing header position 844 Component View 139 Data 138 dependency wizard 446, 450 showing assigned model elements 844 parameter of an operation 838 parameterized class 899 defining of 899 partition 894 paste 228 with new data 228 Paste (command) 64 Paste With New Data (command) 64 path 197 changing style of 216 defining properties of 295 drawing 215 Paths (command) 65 patterns See design patterns permission 770 predecessor 821 presentation options for class 746 Previous Diagram (command) 72 primitive 766 Print Active Diagram 62 Print Options (command) 62 Print Preview (command) 62 printing 258 project dividing into modules 170 multiple projects 139 opening of 147 packages of 138 Project (command) 73 Projects (command) 62 properties changing code generation 91 pseudostate 597

Q
qualifier of association end 733 Quick Reverse (command) 74

R
realization grouping into tree 879 Redo (command) 63 Refresh (command) 67 registering MagicDraw 48 relationship displaying on diagram 478 renaming diagram in Browser 94 Retrieve DB Structure (command) 74 return type of an operation 840 reverse changed files 92 code engineering set 92 robustness diagram 646 Root class 744

S
Save (dialog box) 145 Save As Image (dialog box) 255, 256, 257 Save Project As (command) 60 saving 145 as image 255 formats 145 in .mdf format 145 project 145 project as template 148 Select All (command) 65 selection 224 all symbols of the same type 224 multiple 224 multiple (in the Browser) 100 of all model elements 100

951

Copyright 1998-2009 No Magic, Inc.

INDEX
of all symbols 224 of symbol 224 separator 689 adding hyperlink to 307 sequence diagram model elements in 588 overview 587 Sequential 842 setter 404 shape defining properties of 295 definition 197 drawing more than one shape 210 drawing of 209 shortcut keys assigning 137 Signal (event type) 903 signal receipt trigger event for 715, 719 Solaris JVM 44 sorting of attributes 748 of operations 748 Space evenly (command) 71 state 598, 603, 609, 885 state diagram model elements in 597, 603 state machine 597 statechart diagram See state diagram stereotypes defining properties of 295 show/hide on a symbol 284 showing on class 748 stereotypes:creating of 692 stimulus changing numbering 817 changing numbering of 818 defining action for 817 main information about 586, 587 Submit a Bug (command) 81, 83 support for MagicDraw 36 swimlane 894 symbols 197 defining properties 283 formatting 295 moving 227 presentation of

constraint 229 note 686 note anchor 229 separator 229 text box 229 synchronous 815 system boundary 583

T
tagged values show/hide on a symbol 284 showing on class 749 template saving as 148 text box 229 adding hyperlink 307 text as HTML in 307 text editor choosing 92 Time (event type) 903 Tip of the Day (command) 81, 82 toolbars 82, 910 Tools menu 73 transition 613 to self 602, 607 type modifier 740 type of an attribute showing full path 748

U
Undo (command) 63 Unix installation 45 Unlock Key (command) 81

952

Copyright 1998-2009 No Magic, Inc.

INDEX
updating MagicDraw 48 usage 770, 771 use case adding extension point 906 extension point 904

V
View menu 67 visibility for operation 841 of association end 732 showing on attribute 748 showing on operation 748

W
web diagram 648 Window menu 79 Windows JVM 44 wizards 316, 439 workspace 139 WSDL diagram 658

X
XMI 146 XML Schema diagram 660, 664, 672

Z
Zoom 1:1 (command) 67 Zoom In (command) 67 Zoom Out (command) 67 Zoom To Selection (command) 67 zooming 231 adjusting step size 232 fit in window 231 to maximum size 231 to original size 231 using Browser 102 zoom in 231 zoom out 231

953

Copyright 1998-2009 No Magic, Inc.

You might also like