MagicDraw UserManual PDF
MagicDraw UserManual PDF
version 17.0.1
No Magic, Inc.
2011
All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be
shared, copied, or reproduced by any means. All information copyright 1998-2011 by No Magic, Inc. All Rights
Reserved.
CONTENTS 0
1 INTRODUCING MAGICDRAW 15
About MagicDraw and UML 15
MagicDraw Editions and Features 16
MagicDraw Editions 16
Other MagicDraw Features and Add-ons 17
MagicDraw Welcome Screen 23
MagicDraw News Reader 28
MagicDraw Documentation and Support 29
New and Noteworthy 30
Manuals and User Guides 30
Help 30
Hints Associated to Users Actions 30
Productivity Tips Displayed in Progress Window 31
Tutorials 31
Other Documentation 33
Support 33
2 GETTING STARTED 38
System Requirements 38
Java Virtual Machine (JVM) 38
Installation Procedure 39
Using the installer 40
Using no-install package 40
Licensing Information 41
Removing Unused Licenses 42
MagicDraw Configuration 43
MagicDraw configuration files location 43
Importing Configuration 43
Unlocking MagicDraw 45
Activating the commercial license after the purchase (v16.9 or later) 46
Commercial license activation process 47
Commercial license types 50
Host ID 50
Identification 51
Registration 53
Deactivation 53
User Registration 55
Registration Workflow 56
Bug Report 59
Troubleshooting 60
Updating 61
Auto-Check for Updates dialog box 61
5 DIAGRAMMING 150
Working with Diagrams 150
Diagram Basics 150
Diagrams Dialog 153
Diagram Properties 154
Diagram Name and its Context Name Synchronization 156
Diagram Frame 156
Drawing Diagram Shapes 158
Overviewing Other Diagrams 161
Table with Diagram Information 176
Changing the Diagram Type 177
Working with Shapes of Model Elements 178
Working with Paths and Relationships 181
Inserting a Shape on the Path 183
Creating Relations from the Model 184
Smart Manipulation 185
Selection and Multiple Selections 187
Copying/Pasting Text or Images to Diagrams 189
Nesting Image Shapes 190
Dragging, Copying, Cutting, and Pasting 190
Dragging Objects 190
Dragging Files 191
Dragging Images 192
Dragging Elements in the Specification Window 193
Other Dragging Actions 195
Copying and Cutting Objects 196
Zooming 197
Using the Grid 198
Layout 199
Orthogonal Layout Tool 200
Hierarchic Layout Tool 200
Tree Layout Tool 201
Organic Layout Tool 203
Circular Layout Tool 204
Orthogonal Path Router 205
Organic Path Router 205
Class Diagram Layout Tool 206
Activity Diagram Layout Tool 206
7 TOOLS 303
Model Merge 304
Definitions 304
Introduction to Merging 304
Model Merge demonstration 306
Merging concepts in details 326
Analyzing Merging Results 330
Controlling Merge memory usage 352
Pattern Wizard 353
Creating Setters / Getters 359
Implementing or Overriding Operations 360
Model Transformation Wizard 362
Available Transformations 362
Working with Model Transformation Wizard 363
Transformation Type Mapping 368
Controlling Type Mapping Rule Behavior 370
Transformation Traces and Update 373
Profile Migration Transformation 374
Resource Manager 379
Spelling Checker 381
Spell checking as you type 382
Spell checking for the whole project or the selected scope 384
Setting the spell checking options 388
Defining properties of the customized element to be spell checked 390
Import Data to MagicDraw 391
Import data from Rational Software Architect/Modeler using MagicDraw RSXConverter 391
Import data from Rational Rose using MagicDraw RConverter 391
Import data from other tools 391
In the Introducing MagicDraw chapter, you will find the introductory information about MagicDraw.
About MagicDraw and UML on page 15
MagicDraw Editions and Features on page 16
MagicDraw Welcome Screen on page 23
MagicDraw News Reader on page 28
MagicDraw Documentation and Support on page 29
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.
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.
As of the version 17.0.1, MagicDraw supports UML v2.4. For the detailed information about supported changes
of UML specification from version 2.3 to 2.4, see "NEW! Appendix II: UML 2.4.1 Support" on page 924.
MagicDraw Editions
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.
NEW! Sine of the version 17.0.1 MagicDraw supports XMI 2.4 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.
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.
NEW! Sine of the version 17.0.1 MagicDraw supports XMI 2.4 format.
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.
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.
Professional Edition is ideal for anyone who wants to generate code from an existing model or create a UML
model from an existing project.
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 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 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.
Reports Generation
You will find a complete description of the MagicDraw Report Wizard, related OpenAPI, and tutorial
inMagicDraw ReportWizard UserGuide.pdf.
Floating License
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 connec-
tions and configure the server.
For more information about MagicDraw Floating License, see MagicDraw FloatingLicense UserGuide.pdf.
Teamwork Server
NOTE The Teamwork Server is available with MagicDraw application (Stan-
dard, 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 MagicDraw 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, com-
mit, 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, Architect, and Enter--
prise Editions only. MagicDraw Reader Edition is allowed to open and review teamwork projects.
As of version 17.0 you can use the secure connection (SSL) while working with Teamwork Server.
For more information about Teamwork License Server, see MagicDraw Teamwork UserGuide.pdf.
Cameo Team Server allows collaborative working on metamodels and models in Cameo Suite. Being a single
repository for all Cameo clients, it delivers identical functionality and work principles to all of the clients using it.
Cameo Team Server forms a base for integrating different models from different clients as all models reside in a
single repository.
Each Cameo Team Server client, as well as MaigcDraw, has a built-in Cameo Team Server support. To be able
to connect to the server, you need to install it from a separate installation file and configure it on a specific port.
The clients connect to Cameo Team Server to retrieve projects and update them. Cameo Team Server man-
ages the server storage and acts as a lock database, thus allowing the clients to acquire and release locks.
Locks enable the clients to edit a model and merge it into a central repository without conflicts. To edit a project,
the clients can lock the parts of the project they want to change, modify them, and commit the changes to the
server. Cameo Team Server also provides an authentication scheme for the clients using a username and a
password to validate a client.
Cameo Team Server functionality is available with MagicDraw client Standard, Professional, Architect, and
Enterprise Editions only. MagicDraw Reader Edition is allowed to open and review server projects.
You can use the secure connection (SSL) while working with Cameo Team Server.
For more information about working with Cameo Team Server, see "NEW! Working with Cameo Team Server"
on page 764.
For more information about working with server projects, see "Working with Server Projects" on page 762.
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.
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, PostgreSQL, Standard SQL, Sybase), XML Schema, WSDL, and EJB 2.0 notation.
For more information on working with code engineering and databases, see MagicDraw CodeEngineering
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
For more information about MagicDraw integrations, see MagicDraw Integrations UserGuide.pdf.
MagicDraw Customization
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.
NOTE For information about MagicDraw and Plugins compatibility see the fol-
lowing website: http://www.magicdraw.com/compatibility. The table
shows which versions of MagicDraw and MagicDraw Plugins can work
together.
UPDM
The UPDM plugin for MagicDraw UML/SysML modeling solution fully supports building integrated enterprise
architectures meeting DoDAF and MODAF requirements ensuring mission critical project success. The plugin
supports all DoDAF 1.5, DoDAF 2.0, and MODAF 1.2 viewpoints and views dependent on the selected user
environment. Each user environment provides architecture framework specific concepts, artifacts, new project
templates, samples, and architecture framework specific usability features. A user environment can be
changed any time by fully converting model to meet requirements of the selected architecture framework.
SysML
The SysML plugin includes SysML profile, template, all SysML diagrams, SysML samples project, SysML
usability features, and System Engineer perspective. The System Engineer perspective (the specific mode of
the MagicDraw user interface for SysML modeling) includes SysML specific menus, toolbars, diagrams, speci-
fication dialogs and user interface.
Cameo DataHub
Cameo DataHub is a tool that allows the user to import, export, synchronize, and make references between
Cameo Requirements+, MagicDraw, SysML Plugin, DoDAF Plugin, Telelogic DOORS, Rational Requi-
sitePro, and CSV files.
Cameo SOA+
Cameo SOA+ leverages the Unified Modeling Language (UML) along with the latest SOA modeling stan-
dard, SoaML, to provide both architects and developers an integrated solution for creating optimal SOA
architectures and implementations. Cameo SOA+ brings together SOA at both the business and technology
levels to address the full spectrum of services. From Enterprise and Business Architectures to implementing,
using and composing services on your favorite enterprise service bus (ESB) or application server, this inte-
grated plug-in is versatile enough for both personal and team-based development. SoaML helps create and
use services based on new and existing capabilities using composite services.
Cameo Data Modeler plugin for MagicDraw provides support for Entity-Relationship modeling. It expands
previous Business Entity-Relationship diagram (a limited form of ER diagram) to full featured Entity-Relation-
ship diagram - including extended entity-relationship concepts - generalization support.
Cameo Business Modeler plugin for MagicDraw provides support for BPMN 2.0 profile, diagrams, user per-
spective, usability features for BPMN modeling, manual, samples, and import from BPMN 1.1 models that were
created with MagicDraw. All four BPMN 2.0 diagrams are supported.
Merge
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.
MagicRQ
MagicRQ plugin for MagicDraw is the first true Requirements Hub that can move requirements between Telel-
ogic's DOORS or IBM Rational RequisitePro seamlessly. All of the requirements information is moved into
MagicDraw for maximum traceability and interaction.
ParaMagic
ParaMagic plugin using the quantitative information and constraint relationships displayed in SysML diagrams,
model-builders can run simulations from the earliest stages of system design. In traditional domains of system
engineering like aerospace and transportation, users can explore system performance, estimate cost and allo-
cate resources. Developers leveraging MagicDraw's DoDAF and business modeling capabilities can add para-
metric simulation using SysML submodels for defense planning, business process analysis and computational
finance.
DoDAF
The DoDAF plugin includes DoDAF profile, template, all DoDAF diagrams, DoDAF documentation generation
feature, DoDAF samples project, DoDAF usability features, and DoDAF Architect perspective. The DoDAF
Architect perspective (the specific mode of the MagicDraw user interface for DoDAF modeling) includes DoDAF
specific menus, toolbars, diagrams, specification dialogs and user interface.
Methodology Wizards
Methodology Wizards Plugin automates modeling tasks and extends methodology support in MagicDraw. This
Wizard guides you through model creation process according to a set methodology.
MARTE Profile
This specification of a UML profile adds capabilities to UML for model-driven development of Real Time and
Embedded Systems (RTES). This extension, called the UML profile for MARTE (in short MARTE), provides
support for specification, design, and verification/validation stages. This new profile is intended to replace the
existing UML Profile for Schedulability, Performance and Time.
CSV Import
The CSV Import plugin is a MagicDraw plugin that will read values in a comma separated values (CSV) file and
create model elements, diagrams and relationships from that data. MagicDraw users will have the capability to
create MagicDraw models from their data stored in spreadsheets, relational databases and other repositories.
SPEM
SPEM - Adopted standard for software engineering process description. Standard provides generic elements
those allow to describe any software development process. The purpose of SPEM is to support the definition of
software development processes specifically including those processes that involve or mandate the use of
UML. The SPEM plugin includes SPEM profile, template, all SPEM diagrams and properties customization.
SoaML Profile
Service oriented architecture Modeling Language (SoaML) profile.The goals of SoaML are to support the activ-
ities of service modeling and design and to fit into an overall model-driven development.
MagicDraw has the capability to import UML models that conform to various XMI versions (including XMI 2.4)
from other tools. Sparx Systems Enterprise Architect (EA) is one of those tools. EA provides a XMI export func-
tionality which makes it possible to export UML2.4(XMI2.4). However, the XMI exported from EA contains some
XMI conflicts and EA-specific data that do not conform to UML standards. The main purposes of Enterprise
Architect Import Plugin are thus to solve XMI conflicts between EA and MagicDraw that cause problems when
loading the XMI to MagicDraw and also to transform some EA-specific data to the form of UML elements with
stereotypes.
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.
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, Dis-
play group. Using this option you can set whether the Welcome Screen will be displayed.
Manage 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 28.
MagicDraw home page. Click this link to navigate to the www.magicdraw.com webpage.
Samples
Quick navigation to MagicDraw samples. All samples from <MagicDraw installation folder> \samples directory
are accessible in this page.
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 29).
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.
To refresh news, click the Refresh button at the left top corner of the MagicDraw News Reader window.
To mark all the selected items as read, click the Mark item as read button.
To change the checking period, change the Check for News property in the General section of the Environ-
ment Options dialog. Property provides the following options:
Once a day
Once a week
Once a month
Do not check.
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.
Hints are displayed in the lower right-hand corner of the MagicDraw application. Figure below shows an exam-
ple of a hint.
Hint is displayed for a 10 seconds or for a period while mouse is rolled on hint. Small icon will be dis-
played in a status bar after hint will hide. Clicking on this icon, you can open hint again.
Change the Hints display mode property in the Environment Options dialog box, General
branch, Display group.
The Hints display mode property specifies whether hints on MagicDraw functionality related to user actions
will be displayed. Custom hint set does not include hints, that are asked not to be shown by user. Select option
Display all hints again to reset custom hint set to show all hints. Selecting value Show all hints again will
delete the list of the hints that should not be displayed.
Select or clear the Show tips while running long tasks property in the Environment Options
dialog box, General branch, General group.
Tutorials
Quick Start tutorials for UML diagrams provide the step-by-step on-screen instructions on how to work with
UML diagrams and start modeling with MagicDraw. They also give the links to the associated information in the
other MagicDraw users documentation and to the worldwide tutorials sources as well.
Try the Quick Start tutorials for the new diagram, Class diagram, Use Case diagram, Activity diagram,
Sequence diagram, and others.
1. From the File menu, select New Project. The New Project dialog will open (Figure 9 on
page 32).
2. Select the Project from Template icon on the left-hand side of the New Project dialog.
3. Select Guide to UML Diagrams Project > Guide to UML Diagrams Project in the Select tem-
plate tree.
4. Click OK. The MagicDraw project with its tutorials will open (Figure 10 on page 33).
Other Documentation
The readme.html file is located in the main MagicDraw installation directory. Readme
documents are also available for MagicDraw integrations.
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 calling or registering an issue, please have a look in our FAQ section. It is constantly updated and may
contain an answer to your question.
Forum
Discuss and get answers about No Magic products in No Magic Community Forum. With respect to the grow-
ing interest in No Magic products, we have expanded the capabilities that had been provided by our news-
groups and have moved the content to the online Forum.
Note: If you are interested in old discussions from the newsgroups, you can find them in the Forum as well as
in the newsgroups in a read-only mode.
If you are a new user, ask questions and get started on learning about UML and MagicDraw by
the NEW USER section.
Discuss issues related to technologies and processes in the STANDARDS/METHODOLOGIES
section.
Share your professional experience in terms of using MagicDraw, including installation and
running, MagicDraw OpenAPI, scripting, integrations with other 3rd party tools, etc. in the
MAGICDRAW section.
Find new product versions, updates, and major events in the ANNOUNCEMENT section.
Post your suggestions for improvements and new features that you would like to see added to
the Forum in the OTHER section, the Suggestions subsection.
A customer support level determines customer access rights and the response time for support requests. To
find out yours customer support level, please, visit the knowledgebase - https://support.nomagic.com.
Premium support VIP customer* (marked as VIP) Response within business hours, with
24 hours response time.
End-of-life policy
Public service packs are primarily released for the newest version. As we understand that switching from one
version to another can take some time, in case of significant issues we provide service packs (or private
patches) for up to one year old versions when applicable.
We support and provide patches to older versions only when you own Software Assurance (SA) contracts
https://secure.nomagic.com/software_assurance only on your purchased products, so please be sure you are
covered.
We always strongly recommend using the newest version as it contains all newest fixes, usability features, new
capabilities, and support for standards and technologies.
We highly recommend to submit report any problem, suggest improvements, or ask about new features directly
from MagicDraw. Report will create an issue in to our Online Customer Support System https://
support.nomagic.com.
These reports help us address issues in a more timely manner, as well as speeding up maintenance releases
that are free of known defects.
5. In the Attachments tab, select files you would like to send together with your issue report:
Attach log file - the log file will be sent together with your issue report.
Attach project file - the opened and last saved project file will be sent together with
your issue report.
Attach used modules - modules that have been used in the opened project file will
be sent together with your issue report.
Attach diagrams images - choose diagrams, whose images you would like to send
together with your issue report. Also specify the images format.
6. If you are registered user, track you issue at https://support.nomagic.com.
NOTE If you are already registered personal information will be filled into the
Report an Issue dialog.
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 submitbug.exe is started, the Report
an Issue dialog box opens. For more information about the Report an Issue dialog box, see To report an
issue directly from MagicDraw on page 35.
If an error occurs, an error message will appear at the bottom of the MagicDraw window.
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
In the Getting Started chapter, you will find information about how to install, update, register, and configure
MagicDraw.
1. "System Requirements" on page 38
2. "Installation Procedure" on page 39
3. "Licensing Information" on page 41
4. "MagicDraw Configuration" on page 43
5. "Importing Configuration" on page 43
6. "Unlocking MagicDraw" on page 45
7. "Activating the commercial license after the purchase (v16.9 or later)" on page 46
8. "User Registration" on page 55
9. "Updating" on page 61
System Requirements
To run MagicDraw UML, your system must meet the following requirements:
MagicDraw is a stable environment, if it is configured properly and if a stable JVM is used. USE THE RECOM-
MENDED 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, 1.4.x, and 1.5.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
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 inte-
grated with IDE, read the appropriate readme.html for specific integra-
tion. This file can be found in <MAGICDRAW installation directory>/
integrations/<IDE directory>.
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.
Add argument into the JAVA_ARGS line in the mduml.properties file (this file is in <MagicDraw
installation directory>/bin folder):
APP_ARGS =-verbose
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) soft-
ware is required. JVM software varies depending on the operating system and MagicDraw may perform inade-
quately 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 Linux. JDK 1.6.0_24 is recommended.
Sun (JDK standard) for Windows (95/98, 2000, 2003, NT, Vista, 7). JDK 1.6.0_24 for both 32-
bit and 64-bit Windows OS is recommended.
Sun (JDK standard) for Mac OS X Leopard and Mac OS X Snow Leopard. JDK 1.6.0_24 for
both 32-bit and 64-bit Mac OS X is recommened.
Installation Procedure
First, obtain the MagicDraw installation files. You can download the latest version from the MagicDraw homep-
age (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 any-
thing else.
Windows 2000/2003/NT/XP/Vista/7
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.
Unix
2. Using the command-line prompt go to the directory wherein you have downloaded the installer.
MAC OS X
3. Drag the MagicDraw UML folder to the Applications or some other folder.
Unix
3. Using the command-line prompt go to the bin directory and type the command:
sh ./mduml
Mac OS X
3. Using the command-line prompt go to the bin directory and type the command:
./mduml
Licensing Information
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 13 on page 42).
Information Description
item
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 If license is not installed, "Not installed" text is displayed after the license name.
indication
Information Description
item
Not started If licenses is installed but not started "Not started" text is displayed after license
indication name and reason is be given. Possible reasons:
Required resource is not installed.
Plugin startup failed.
Other.
NOTE If you have any questions or issues, please report them using the
Report an Issue dialog. For more information, see "View and submit
internal errors" on page 37.
MagicDraw Configuration
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).
Add argument to JAVA_ARGS line in the file mduml.properties file (this file is in <MagicDraw
installation directory>/bin):
JAVA_ARGS=-DLOCALCONFIG=false
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>
Importing Configuration
When you launch MagicDraw for the first time, the Import Configuration dialog opens. Using this dialog, you
can choose one of the following:
Use the default MagicDraw configuration.
Import the settings and environment options from the previous MagicDraw installation.
Unlocking MagicDraw
Unlock MagicDraw with evaluation, demo, or commercial license key file.
To unlock MagicDraw:
1. After downloading MagicDraw v16.9 or later, you will get license key file to your mailbox.
2. Save this key file into the local file system before starting MagicDraw.
3. When starting MagicDraw for the first time, you will be asked to choose the license key file.
Click the Select Licenses Key Files button and select the file from the directory you have
saved the file.
4. System will automatically start MagicDraw and you will be able to use it.
After updating to v16.9, you will be requested to activate and receive the commercial licenses dedicated for the
particular machine.
Flexera Software FLEXnet licensing system, the industry leader helping to manage and secure flexible soft-
ware licensing, is used to manage No Magic products licenses.
All the updated information about the commercial license activation you may also find at http://
www.magicdraw.com/CommercialLicenseActivation.
Host ID on page 50
Identification on page 51
Registration on page 53
Deactivation on page 53
Online activation
Choose online activation and enable commercial activated (without expiration) licenses automatically.
1. Click the Activate button in the License Manager dialog of the application.
Offline activation
Alternatively, you may select offline activation, get the Host ID, enter it in the license owner account and then
download the commercial activated license.
1. Click the Activate button in the License Manager dialog of the application.
2. Click Offline Activation.
3. Host ID is shown.
Related topics
Commercial license types
Host ID
Identification
Registration
Deactivation
Example: MagicDraw_16_9_Professional_C#_Standalone_
Activated_key_for_<name>_<surname>.txt
After the purchase transaction has been completed, you will receive the commercial not activated license.
They are used ONLY to determine the account on www.magicdraw.com from which activated keys should be
requested. Any other license, evaluation, demo, or commercial can be used for identification of the license
owner account during activation.
Commercial not activated license requires activation. It allows using the application for 7 days according to
obtained licenses, before requesting the activation. After the online or offline activation you will get the com-
mercial activated license.
After the online activation, commercial activated license will be applied automatically and you will be able to use
the application on the particular machine.
During the offline activation you will be required to enter a Host ID <link to Host ID section> in the license owner
account at www.magicdraw.com/LicenseActivationManagement. You can then download the commercial acti-
vated license and select it from the application.
Related topics
Commercial license activation process
Host ID
Identification
Registration
Deactivation
Host ID
A Host ID is the value of a specific system attribute (MAC / Ethernet address) that uniquely identifies the host /
machine under which an application is running. A Host ID is used for the locked to particular machine license.
Only commercial activated licenses are locked to the particular machine.
For the Host ID determining instructions refer to Determining a Host ID (for offline activation) on page 49.
One of the ways for determining Ethernet address (Host ID) is using lmhostid utility. This way can be useful
when the list of Host IDs of multiple machines should be discovered, even before installing the applications
itself. If you are a system administrator, you can provide end users with commercial activated licenses without
requesting licenses from them.
The lmhostid is a command line utility, which prints the Host ID that is required. The Lmhostid utility is available
as an executable called lmutil. Download it for a particular OS from http://www.globes.com/support/
fnp_utilities_download.htm.
Run lmutil with lmhostid parameter from the command line. Lmhostid displays the default hostid for the current
platform.
For exact commands for specific OS refer to: License Administration Guide (Obtaining System Hostids).
Related topics
Commercial license activation process
Commercial license types
Identification
Registration
Deactivation
Identification
To determine a license owner, the user identification is requested during activation process.
Identification is requested only if you have not added any license key file, have not registered your installation,
or have not performed identification.
Login name based identification. Use the license owner login name and password to identify
on which account on www.magicdraw.com your purchases are.
Ones identification is performed, it will not be requested the next time during activation.
NOTE In case you need to change identification records, just apply the new license key file. The
last applied license key file is used for the identification.
Related topics
Commercial license activation process
Commercial license types
Host ID
Registration
Deactivation
Registration
The user registration is required during activation process in order to obtain the commercial activated license.
Related topics
User Registration
Commercial license activation process
Commercial license types
Host ID
Identification
Deactivation
Deactivation
The deactivation is the process, which allows returning commercial activated licenses. You may remove and
return all activated (locked to the particular machine), not used commercial licenses by deactivating them.
1. Click the Deactivate button in the License Manager dialog of the application or uninstall the
application.
2. Commercial licenses will be deactivated automatically and returned online.
If the online licenses return is not available, licenses will be deactivated and offline deactivation
- licenses return message with License Deactivation ID - will be shown. To update the account
information manually, return the used license by entering the License Deactivation ID to the
license owner account at www.magicdraw.com/LicenseActivationManagement.
3. The application is deactivated and licenses are returned.
You can deactivate licenses not only from application, but also from the License Activation Management screen
in the license owner account at www.magicdraw.com/LicenseActivationManagement.
NOTE The deactivation from the License Activation Management screen should be used only if
the deactivation from application side is not available: installation has been lost or cor-
rupted.
NOTE The number of available, not confirmed, deactivations from the License Activation Man-
agement screen is 1 for the each obtained license per year. The Confirmed deactivation
case from the application side will not decrease the rehost limit.
License Deactivation ID
License Deactivation ID is the value of a specific system attribute that uniquely identifies license deactivation/
return from the particular host/machine under which application was running. The License Deactivation ID is
used for the license offline deactivation.
1. Click the Deactivate button in the License Manager dialog of the application.
2. The license Deactivation ID will be shown if the online deactivation will not be available.
The license deactivation, about which confirmation is received in the license owner account at
www.magicdraw.com/LicenseActivationManagement is treated as confirmed deactivation case.
The deactivation confirmation can be received either online, during online deactivation, or offline, with the help
of the License Deactivation ID, which is shown during the offline deactivation.
The deactivation from the License Activation Management screen without the License Deactivation ID, is
treated as NOT confirmed deactivation and decreases the rehost limit. An exception is, if after such the deacti-
vation, automatic confirmation is received from the application side that the license has been also deactivated
on the application side.
Rehost limit
The rehost limit is the number of available, not confirmed, deactivations from the License Activation Manage-
ment screen. By default such number is 1 for the each obtained license per year. The confirmed deactivation
case from the application side will not decrease the rehost limit.
If the rehost limit is exceeded you can request extension from your dedicated account executive by filling the
reason of the request and clicking the Request Rehost Increase button.
You may moving of the activated (locked to the particular machine) licenses from one machine to another is
called rehosting.
To rehost a license
Related topics
Commercial license activation process
Commercial license types
Host ID
Identification
Registration
User Registration
User Registration allows you to access dedicated resources on MagicDraw Website such as dedicated online
support, answers database, new products evaluation, and beta products.
The Registration window will open the first time MagicDraw is started (Figure 18 on page 56). You can com-
plete Product Registration at any time by selecting Register on the MagicDraw Help menu.
NOTES No Magic, Inc. respects your privacy. We will only use your personal
information for communications and management of your online
account, and the products you register with your account.
Registration for the owners of commercial licenses is mandatory.
Registration Workflow
The registration process is straightforward. After a new key application, you will be requested to register your
installation. If you have successfully sent the online registration form, you will receive an e-mail with a link to
confirm your registration and the correctness of information furnished through online registration.
Adding a License
MagicDraw always checks the registration status at startup after license has been provided, an unlock key has
been added, or a Floating server has been selected.
Registering
If you are not a registered user, MagicDraw will open the Registration dialog at startup, prompting you to reg-
ister.
NOTE You do not have to complete the online User Registration to use
MagicDraw, however, it is recommended to do so to receive the bene-
fits available for a registered user. You can complete Product Registra-
tion at any time by clicking Register on the MagicDraw Help menu.
NOTES You can click the Confirm Later button to register at a later time
and close the Registration Confirmation dialog.
A message reminding about Registration Confirmation will appear at
MagicDraw startup if you do not complete the registration process.
No Magic, Inc. respects your privacy. We will only use your personal
information for communications and management of your online
account, and the products you register with your account.
An e-mail with registration data and a confirmation link will be sent to the e-mail address provided during regis-
tration. Click the confirmation link to confirm the registration process and create or navigate (if it has been cre-
ated) to your dedicated area at www.magicdraw.com.
Use your login name and password received upon confirming your registration to log in to the user dedicated
area at www.magicdraw.com.
Your registration will enable us to provide you with the following professional services:
Dedicated customer support for all problems, questions, and suggestions.
Access to early releases and evaluations.
New versions, patches, and updates.
After a period of 30 days has passed since the date of your registration or a new license from the same
licensed owner has been applied, you will be requested to confirm that you are the one using the software
installation at MagicDraw startup. A profiled Registration Confirmation dialog will open. Check the correct-
ness of data and click the Confirm button.
If you are registering as a new user, with different profile information, the Update Existing Profile question will
appear. You can either update your existing profile or identify yourself as a different user using the product
installation.
Bug Report
If you are a registered user, your personal information will be provided in the Report an Issue dialog. Submit
notifications of software errors dialog is available from Help menu > Report an Issue.
If the provided information does not correspond to the information you have provided during registration, once
you click the Send button to submit the bug, you will be asked to register or update your information. The Reg-
istration dialog will open and profiled with your personal information from previous registration with changes
from the Report an Issue dialog or details from the Report an Issue dialog if you have not yet registered.
For more information about bug reporting, see Reporting issues directly from MagicDraw on page 35.
Troubleshooting
Issue Solution
Registration is requested on each The Registration Confirmation dialog will open each
startup time MagicDraw starts until you register the product
installation.
The registration process is straightforward and requires
minimum data for you to access dedicated online support,
answers database, new products evaluation, and beta
products.
Clicking the Confirm Later button will close the Registra-
tion Confirmation dialog.
Registration confirmation is requested If you do not click the registration confirmation link, instal-
at each startup lation will not be confirmed.
You may request a new confirmation email from the regis-
tration confirmation message.
No email with a confirmation link is Your spam or virus filter may filter out the e-mail with a
received confirmation link. If that is the case, you can request a
new confirmation e-mail by clicking Help > Register on
the MagicDraw main menu.
The No connection to registration Check your internet connection and try to reconnect.
server message opens NOTE: User Registration is encouraged, but is not
required to use MagicDraw.
You are getting can not connect to Check your internet connection and try to reconnect.
server message on registration dialog NOTE: User Registration is encouraged, but is not
invocation from Help menu -> Regis- required to use MagicDraw.
tration
The Registration dialog does not You have already registered and the period of 30 days
opens at Startup since the date of your last registration has not been
used up.
There are network limitations to check your registration
status.
Note: User Registration is encouraged, but is not
required to use the MagicDraw.
Updating
An automatic updates feature is implemented in MagicDraw. Notification and update of all the patches can be
done automatically.
NOTE You may also manually check for updates: go to the Help menu and
select the Check for Updates command.
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.
"Customizing and Selecting Perspective" on page page 62.
"Understanding MagicDraw User Interface (UI)" on page page 68.
"Customizing Environment Options" on page page 89.
"Performance Improvements" on page 91.
"Look and Feel: Controlling the Interface" on page page 93.
"Assigning Shortcut Keys" on page page 95.
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.
Launch MagicDraw for the first time. The MagicDraw Startup dialog will appear with the
possibility to switch between perspectives. Select the desired perspective from the list and click
the OK button.
From the Options menu, choose Perspectives and then click Perspectives. The Select
Perspective dialog opens. Select the desired perspective and click the Apply button.
On the Perspectives toolbar, select the desired perspective from the available perspectives
list.
MagicDraw has six customizable areas in 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 toolbars;
Diagram modeling elements toolbar;
Context menu actions;
Reports.
1. In the Customize Perspectives dialog, select the perspective and click the Edit button near
the selected MagicDraw area. The appropriate Customize dialog 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, and then Apply in
the Select Perspective dialog (if needed).
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.
Rename Selected The Enter Perspective Name dialog opens. Change name of the
Perspective perspective and click OK. Renaming can also be performed using the
F2 shortcut key.
Import New The Open dialog appears. Select *.umd extension file and click Open to
Perspective import the perspective into the MagicDraw environment.
Business Analyst List of possible perspectives, which will load the predefined MagicDraw
Software Architect configuration.
System Analyst
MagicDraw Area List of customizable toolbars and command sections.
Edit Click the Edit button to open the Customize Main Menu dialog in
which a commands mode could be changed by selecting radio buttons.
Description Displays short description about each selected area.
Reset to Defaults Resets changes back to the default configuration.
Nearly all MagicDraw commands can be accessed from multiple places within MagicDraw:
Main menu
Main toolbars
Model Browser
Diagram toolbars
The table below shows the accessibility of several commands in various ways:
Function Accessibility
Main operations of Edit menu.
editing (copy, cut, Main toolbar buttons.
paste, delete)
Shortcut keys.
Shortcut menu commands from Browser.
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.
Menus
The description of all menu commands you may find in Section Menu System on page 881
You may customize menu items by selecting and/or modifying perspectives. More information about
customizing perspectives, you may find in Section Customizing and Selecting Perspective on page 62.
NOTE Various plugins might bring additional menu items.
Toolbars
Toolbars help to speed up your work with MagicDraw, when performing commonly used tasks. There are main
toolbars and diagram toolbars in the main window of MagicDraw.
Right-click the toolbars area and then select or clear the check boxes of the toolbars you want
to be displayed or hidden.
You may also save your own toolbars configuration and set it as a default one (for more information see
"Customizing toolbars", on page 71).
Main toolbars
For detailed information about the commands of the main toolbars, see "Main Toolbars", on page 897.
Diagram toolbars
For detailed information about the commands of the diagram toolbars, see Diagram Toolbars on page 904.
Customizing toolbars
1. From the toolbars configuration shortcut menu, choose Customize. The Customize Toolbars
dialog opens.
2. Click Add > New Toolbar.
3. Type the name for a new toolbar.
4. Click OK.
1. From the toolbars configuration shortcut menu, choose Customize. The Customize Toolbars
dialog opens.
2. Click Add > Button.
3. Select the desired command.
4. Click OK.
Button Function
Add Adds a new button or a toolbar.
Edit The Edit Icon dialog opens. Click the ... button to add an icon to the
selected toolbar button.
Remove Removes the selected button from the toolbar section.
Up Moves the selected button up the toolbar list.
Down Moves the selected button down the toolbar list.
Reset to Defaults Resets changes made to the toolbar back to the default settings.
The Model 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.
The Model 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 Model
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 Model Browser. The Model 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 Model 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, (for example, class, package, operation,
component, state and others - for both views and dates), when the Filter from the Model
Browser shortcut menu is selected.
Sorting of the visible items for the selected model element.
Sorting of all model elements.
Displaying search results.
When at least one Project is open, the Model Browser is placed to the left side of the main window. Beginning
with MagicDraw version 7.5, it is possible to move the Model Browser to any place on the the MagicDraw
application. Also, all tabs can be viewed separately and you may set up the Model Browser according to your
needs by hiding the desired tabs.
1. From the Options menu, select Environment. The Environment Options dialog opens.
2. Click on the Browser tab.
3. In the Browser environment options pane, change the Browser Position property to Right or
Left.
From the Window menu, choose the tab you want to close or open.
1. From the Options menu, select Environment. The Environment Options dialog opens.
2. Click on the Browser tab.
3. In the Browser environment options pane, set the Sort Always check box to true (default
true).
Containment tree
To show full information of operations, attributes, and relationships in the Containment Tree
In the Containment tab, click the Show Code Engineering Sets button .
Do the following:
1. Select Environment from the Options menu. The Environment Options dialog
opens.
2. In the Browser tab, set the Show Code Engineering Sets check box to true
(default true).
To show/hide Modules
To improve accessibility the Filter button has been added to the Containment Tree toolbar (Figure 30 on
page 77). Previously the Filter menu was accessible only from the Containment tree shortcut menu (Figure 31
on page 78).
The Items Filter dialog allows you to choose what types of elements to be displayed in the Containment tree
(Figure 32 on page 78).
In the Containment tab, click the Open in New Tab button . New tab with package name
and tree contents will be opened in the Model Browser.
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.
1. In the Containment tree, from the package shortcut menu, choose New Element and select the
desired element from the list.
2. Type the name of the element directly in the Containment tree.
For more information about managing model elements from the Browser, see "Working with Elements in the
Model Browser" on page 84.
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).
1. Right-click the Code Engineering Sets item and select New from the item shortcut menu or
open the Code Engineering Sets dialog and click the New button. The New Set dialog 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.
Select Edit from the set shortcut menu. The Round Trip Set dialog opens. Add/remove files or
classes from the Code engineering set.
Select Rename from the set shortcut menu and type the set name.
Select Properties from the set shortcut menu. The CG Properties Editor for Data dialog
opens.
From the Edit menu, select Undo or press the shortcut keys CTRL+Z.
1. Select Generate from the set shortcut menu. The Code Generation Options dialog opens.
2. Adjust the code generation options.
3. Click OK. The Messages Window dialog 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
opens stating there are no syntax errors in the model.
TIP! All functions listed above can be performed in the Code Engineering Sets
dialog.
1. In the Options menu, select Environment, then select the Launchers group in the dialog that
opens.
2. In the Default launchers field, click the ... button and select the directory where the text editor
is located.
3. Click OK.
Diagrams tree
The Diagrams tree in the Browser represents the external structure of a diagram.
In the Diagrams tree, with the selected diagrams, you can perform the operations listed below.
Select Open from the item shortcut menu or double-click the item in the diagram.
Select Specification from the diagram shortcut menu. The corresponding Diagram
Specification dialog opens. Type the diagram name and click OK.
TIP! In the Diagram Specification dialog you can add documentation to the
diagram, view the relationships in which the diagram participates, and define
hyperlinks, stereotypes, constraints, and tagged values.
Select Print from the diagram item shortcut menu. If the diagram is empty, it will not be printed.
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.
In the Inheritance Tree tab, click the Show Stereotypes in Browser button .
1. Select Environment command from the Options menu. The Environment Options dialog
opens.
2. In the Browser tab, set the Show Stereotypes in Browser check box to true (default false).
In the Inheritance Tree tab, click the Show only Hierarchies button . If the classifier has
no generalization relationship, it will not be visible on the tree.
1. Select Environment command from the Options menu. The Environment Options dialog
opens.
2. In the Browser tab, set the Show Only Hierarchies check box to true/false (default false).
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. Select Choose Environment command from the Options menu. The Environment Options
dialog opens.
2. In the Browser tab, set the Invert Tree check box to true/false (default false).
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.
It is mainly used for the work of a team using a server for locking for edit / unlocking extension mechanisms.
The Search Results tree shows results of a search, which may be performed through the Find dialog.
For information about how to perform a search, see Searching on page 108.
To open the Find dialog box from the Search Results Tree
Click the Clear Results button or select the Clear Results button from the Search
Results tab.
To copy/cut and paste the selected model element in the Model Browser
To copy/cut and paste the selected model element among different projects
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.
TIP! You may draw a symbol by dragging and dropping an item to the Diagram
pane.
For more information about how to filter items, see To filter types of elements to be displayed on page 77.
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.
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.
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 will appear.
Zoom panel
The Zoom panel enables you to preview any selected diagram. To select a diagram go to Model Browser >
Containment/Diagram tree. You can also use this panel for zooming in or out the active diagram.
NOTE By default the zoom slider is not visible. To display the zoom slider in the
Zoom panel, go to Options > Environment. In the Environment Options
window select the Browser tab. Then select the Show diagram zoom
slider check box.
In the Zoom panel, drag the blue square to the desired part of the diagram. The desired
diagram part will be displayed in the diagram window.
In the Zoom panel, on the blue square, click the Fit in Window button .
Documentation panel
The Documentation panel shows the information associated with the selected model element in the Model
Browser or on a diagram pane.
NOTE If there is no documentation for the selected element, the text area is empty.
In the Documentation panel, click on the text area and type the text.
Properties panel
The Properties panel at the bottom of the the Model Browser allows you to quickly access the basic
information about the selected element or diagram.
All Properties panel tabs, except the one for traceability properties, has two modes: Standard and Expert.
Choose the mode that best suits your needs.
Click the Customize button to open the Customize Properties dialog wherein you can set which
properties will be visible in the Standard and / or Expert modes and which ones will be hidden in any mode.
The Environment Options dialog contains various project-independent options grouped by different features
(e.g., diagrams, Model Browser, code engineering). Each option group is available in a different tab. Tabs are
displayed in the tab tree.
An option value can be simply changed by typing a new value, setting a value to true / false, or selecting a
value from the list.
Learn more about the Environment Options dialog in the following sections:
Using Environment Options dialog on page 90.
Common elements in Environment Options dialog on page 90.
NEW! For better understanding an option you can read its description that tells what is the effect of changing
the option value.
IMPORTANT! Make sure that the Show Description mode is turned on in the Environment
Options dialog. To turn the Show Description mode on or off, click the Show
Description button on the tab toolbar.
Figure 42 -- Fragment of Environment Options dialog. Quick filter and common buttons
Performance Improvements
When you work with very large models or use a lot of diagrams at a time, the performance of MagicDraw may
become slow. To increase an efficiency of modeling, we suggest the following solutions:
Increase a java heap size. See the procedure "To change the java heap size" on page 92.
Do not keep unused diagrams open. Perform the procedure "To open project without
loading diagrams" described bellow this list. Your projects will be opened over a shorter period
of time without opening a diagram as well as use less memory.
Increase an active validation period. Perform the procedure "To increase an active
validation period" described bellow this list. Reduced active validations using takes less
memory.
Split the project to read only modules. Keep read only modules not loaded. This may help
only if your project contains several parts with minimal dependencies between them. For more
information about working with partially loaded projects, see "Working with partially loaded
projects" on page 124. You can also find the Project Decomposition Description sample in
<MagicDraw installation directory>\samples\product features\ project decomposition.
Use Garbage Collector to free unused memory. See the procedure "To free unused
memory" on page 92.
1. On the Option menu, click Environment. The Environment Options dialog opens.
2. In the General option list, expand the Save / Load options group.
3. To the Diagrams Lode Mode option, assign the Do not load diagrams value.
4. Restart MagicDraw.
1. On the Option menu, click Environment. The Environment Options dialog opens.
2. In the General option list, expand the Active Validation options group.
3. Increase the Active Validation Period (seconds) value.
IMPORTANT! Be aware about limits of the Active Validation Period size, as a long
period may be an alternative of switching an active validation off.
4. Restart MagicDraw.
Memory Monitor
In order to monitor the memory used by MagicDraw while working with larger projects, you can turn the
Memory Monitor on.
Memory Monitor shows two values: currently used memory and a current java heap size. While working with
MagicDraw, the java heap size increases until it reaches a limit.
Typically, when working with a program, used memory grows up because actions are stored in the undo list,
opened diagrams are not unloaded.The Memory Monitor bar becomes red when used memory takes more than
85% of the total heap. Red bar shows that MagicDraw may run out of memory soon. Even if all heap size is
used, the Garbage Collector may recover enough memory to save a project, but this may take few minutes.
On the View menu, select Status Line > Show Memory Monitor. The Memory Monitor bar
appears in the right bottom corner of the MagicDraw window.
Click the Garbage Collector several times and wait few seconds:
1. If the Memory Monitor bar is still red, save the project and restart MagicDraw and
reload the project.
2. If the Memory Monitor bar is red after reloading the project, the maximum heap
size should be increased.
IMPORTANT! When almost all heap memory is used, the Garbage Collector starts
to free unused memory after each action automatically. It slows down
the program as the most CPU power is used for the Garbage
Collector.
2. In the JAVA_ARGS line, increase the value next to -Xmx. For example, change the -Xmx800M
value to -Xmx1066M.
From the Options menu, choose Look and Feel and then choose the style you wish to apply.
The chosen style will not look exactly like the applications in those operating systems because every style of
graphical interface is implemented within a Swing library, but it will look quite similar.
Depending on the operating system you use, some choices might be unavailable for you. For example,
Windows9x/NT users may not switch to the Mac interface style.
Note that themes listed in Look and Feel Themes are valid only for the Metal style. You can choose any of the
following themes:
After choosing the Custom theme, the Properties dialog for setting your own options will be opened.
Beginning with MagicDraw version 7.5, the modern JIDE library is implemented (called Single Window interface
style). 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. 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.
From the Options menu, select Interface Style, and then select one of the desired interface
styles: Single Window or Multiple Windows.
From the Model Browser shortcut menu, select Floating and move the window to any desired
position.
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.
Creating a Project
View Online MagicDraw Basics
Demo
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.
3. Click the ... button to select the location to store a newly created project in your computer. Click
OK.
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.
In the Projects drop-down list, click the additional project you wish to open.
Select Projects from the File menu, click the name of the project you wish to open.
Select Close All Projects from the File menu. The Question message box appears.
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.
6. The Round Trip Set dialog opens. Add the source files to enable code engineering to reverse
them into a newly created project.
C++, CIL, Java, C#, DDL, EJB, WSDL, XML Schema, Metamodeling, RUP extensions, CORBA IDL, and
UMLWebExtension templates are available in the New Project dialog.
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.
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 window.
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.
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 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),
MagicDraw File Format (*.mdxml), or XML (*.xml).
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.
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.
Opening a Project
From the File menu, select Open Project. In the Open dialog, select the project and click
Open.
On the main toolbar, click the Open Project button.
Drag the project from the open window to MagicDraw. The project starts immediately.
Double-click a project file with the *.mdxml or *.mdzip extension. A new MagicDraw application
window opens.
TIP! To start MagicDraw with the last project you worked on, select Options
> Environment and set Open Last Project on Startup to true.
XMI 2.4 / UML 2.4 is the main file format, used by MagicDraw for a model storage. This format does not specify
how to store diagrams, so MagicDraw stores or loads diagram data in XMI extension sections. If you use
MagicDraw to open an XMI file exported from another tool, only the model will be loaded, not diagrams or
views.
Correspondingly, if you open a MagicDraw produced file in another tool, diagrams or views will not be loaded in
that tool (unless the tool understands MagicDraw specific file extensions).
For the model interchange, you can use MagicDraw RConverter, MagicDraw RSXConverter, or Cameo
InterOp. For more information about the data conversion, see "Import Data to MagicDraw" on page 391.
You may load more than one project within the same MagicDraw session. A separate workspace will be created
for the each opened project.
Importing a Project
To import a previously created project to an open project
1. On the File menu, point to Import From and select file type which from you want to import.
2. The Import dialog opens. Select the project you want to import and click Open. The diagrams of
the imported project are placed in the open project.
Exporting Projects
MagicDraw allows for exporting projects to the following file formats:
UML XMI 2.4 File. You can export a project to file formats that are supported by MagicDraw.
MagicDraw Native XML File. You can export a project to an .xml file format.
EMF Ecore File. You can export either the whole project or selected packages to an .ecore file.
MOF XMI File You can export a project to the MOF (both CMOF and EMOF) XMI file.
Eclipse UML2 (v1.x, v2.x, v3.x) XMI File. You can export a project to an Eclipse based UML2
(v1.x / v2.x / v3.x) compatible XMI file.
You can export a part of a project as a module and share it with other users or projects. For the description of
the exporting procedure, see "Exporting the module of a project" on page 116.
You can also export your project as a template. For the description of the exporting procedure, see "Exporting
Projects as Templates" on page 105.
To export a project
You can save (or export) the created project as a template and use the same project for creating other new
projects.
1. Open a project you want to export as a template. From the File menu, select Export >
Template.
2. The Export Template dialog opens.
3. Type the name and the description of the template.
4. Click OK.
1. Open a project you want to export as an Eclipse UML2 (v1.x / v2.x / v3.x) XMI file.
2. On the File menu, click Export To and select one of the following command:
Eclipse UML2 (v1.x) XMI File.
Eclipse UML2 (v2.x) XMI File.
Eclipse UML2 (v3.x) XMI File.
3. Specify a location for exported project files.
4. Click Export.
NOTE A project exported as an Eclipse UML2 (v1.x) XMI file is saved with the
.uml2 file extension.
A project exported as an Eclipse UML2 (v2.x / v3.x) XMI file is saved
with the .uml file extension.
TIP! For the instructions how to create, edit, clone, import / export, or remove
symbol property styles, please refer to "Style Engine" on page 261.
TIP! For the instructions about setting the default element property values,
see "Default Property Values" on page 236.
Set general code generation or code reversing options as well as code formatting styles for
selected programming languages.
The Project Options dialog includes tabs, each designated for one of the above mentioned features and
containing lists of corresponding options. Tabs are displayed in the dialogs tab tree.
An option value can be simply changed by typing a new value, setting a value to true / false, or selecting a
value from the list.
Learn more about the Project Options dialog in the following sections:
"Using Project Options dialog" on page 107.
"Common elements in Project Options dialog" on page 108.
NEW! For better understanding an option you can read its description that tells what is the effect of changing
the option value.
IMPORTANT! Make sure that the Show Description mode is turned on in the Environment
Options dialog. To turn the Show Description mode on or off, click the Show
Description button on the tab toolbar.
2. Read the option description in the area below the tab options list. You are ready now to change
the option value.
Figure 53 -- Fragment of Project Options dialog. Quick filter box and common buttons
Searching
The MagicDraw search mechanism allows for searching within model elements, symbols, and extensions.
You can also search for usages and dependant elements of the selected elements. This functionality is
described in "Analyzing Usages and Dependencies" on page 395.
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.
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 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 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. 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.
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.
NOTE If the Clear Previous Results check box is cleared, new results are
appended to the previous search results in the tree.
TIP! Select Search Data Unused in Diagrams check box to find only
elements without shapes.
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 opens.
In the Find dialog, 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 opens.
Press the Ctrl+Shift+F key to open the Quick find dialog.
Find dialog
Search Elements
Element Function
Name 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 Select an element type from the proposed items, or leave the
default value of <any>.
Scope Specify a package where the content search will be performed.
Limit results to The search scope is limited to the symbols of active diagrams. The
active diagram 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 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 when it is opened from the model comparing
dialog.
Value Select or input a value of the Tagged Value or Constraint Value.
NOTE: Only available for Search Element by Tagged Value and
Constraint Value tab.
Load elements If the model has diagrams or modules that are not loaded, select
(not loaded) this check box to load all elements to be included in the search.
and
autoloadable NOTE: Elements will not be included in the search if the module
modules load mode is set to Manual load.
Case Sensitive 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 Search for items with names that exactly match the string entered in
Words Only 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.
Search Data Only searches elements that do not contain symbols in any
Unused in diagram.
Diagrams
Java Regular In the Java Regular Expressions on page 112, you can find
Expression several expressions that will help you to make a search in
MagicDraw.
Clear Previous Removes all previous search results from the Browser tree.
Results
Find Searches for items and displays the results in the found items list
field. If MagicDraw does not find any items, a message is
displayed.
Close Exits the dialog.
Help Displays MagicDraw Help.
Metacharacters
There are several characters supported, which are used to form search patterns ([{\^$|)?*+.
Character Sets
[abc] Any character of a, b, or c.
[^abc] Any character except a, b, or c (negation).
[a-z] All characters from a to z (range).
[a-z[A-Z]] All characters from a to z and A to Z (union).
[a-z&&[r-z]] Characters from r to z (intersection).
[a-z&&[^r-z]] Characters from a to q (subtraction).
. Any character.
\d Any digit character.
\D Any non digit character.
\s White space character (\t\n\x0B\f\r).
\S Any non white character.
\w Word character (a-z, A-Z,_,0-9).
\W 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
Example:
Regular Expression: ABC|(\dABC)
Matched text: any text containing ABC symbol set or ABC symbol set beginning with any digit
symbol.
Quantifiers
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.
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.
^ Beginning of the line.
$ The end of the line.
\b A word boundary.
\B A non word boundary.
\A Beginning of the input.
\z 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).
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.
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.
To replace a value:
1. From the Edit menu, select Find and Replace. The Find and Replace dialog opens.
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 Shared Packages
Demo
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.
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.
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.
Using the Export Module dialog, 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 read-only and the module name
is displayed in brackets next to the package name in the Browser tree.
1. From the File main menu, select Export, and then select Module. The Export Profile/Module
dialog opens.
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.
1. In the Browser tree, select the package you want to save as a separate module (you can also
select multiple packages).
2. From the package shortcut menu, select Modules, and then select Export Module. The
Export Module dialog 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.
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.
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).
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) 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.
Managing Modules
You can manage modules via the Modules dialog.
IMPORTANT! For more information about working with server projects, see "Creating
and managing server modules" on page 773 (Cameo Team Server)
and "Data Partitioning on Teamwork Server" on page 861 (MagicDraw
Teamwork Server).
All the information about analyzing and checking package dependencies you may find in the Section Analyzing
Package Dependencies (see on page -450)
For more information about the options in this step, see Managing Modules on page 118.
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):
Common and util packages are good candidates for refactoring into modules. Then in project B these modules
can be reused.
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.
1. From the Options main menu, select Module. The Module Options dialog opens.
2. Select module in the tree and change the Module Accessibility option from read-only to read-
write 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.
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 read-only. This prevents
inadvertent changes to the library.
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.
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.
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.
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.
For MagicDraw, large is tens of thousands of classes and other complex elements. If counting all small
elements, such as properties, methods, method parameters, several hundreds of thousands of elements is
considered a large project. Also diagrams are large elements. 1000 or more complex diagrams should be
considered large.
You can unload a selected module at any moment, when working with a large project partitioned into several
modules.
From the loaded module shortcut menu, select Modules > Unload Module.
From the unloaded 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 left 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.).
1. From the Options menu, select Modules. The Modules dialog opens.
2. In the modules tree, select a module.
3. In the Module Load Mode area, select the appropriate loading mode.
Occasionally used modules should be set in the Autoload mode (or Autoload with prompt if you like to have
more control on the loading behavior).
Very rarely used modules, can be set 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.
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.
2. From the Options menu, select Project. The Project Options dialog 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 check box for that module.
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.
proxy in place of the missing element - a surrogate/not real element in place where real element was once in
the past.
A special Tool Tip is displayed for every orphaned proxy. The Tool Tip describes the
reason why the orphaned proxy has been created and gives a suggestion how to
resolve it.
Active Validation founds and marks orphaned proxies as validation errors in the
projects.
Run a search (Ctrl+F) and check the Orphaned Proxies Only check box. This will give you all the orphan
proxies in your model in the search results.
Right-click the orphaned proxy in the search result or Containment Tree and select the menu
item Orphaned Proxy Resolution.
2. Replace With. This resolution replaces all references to the orphaned proxy with references to
the chosen element.
3. Create New Substitute. This resolution resurrects the element which is missing.
Note: This resolution is disabled when the orphaned proxy containing module is read-only.
4. Find Proxy Usages. This command works as a helper to the other resolutions. It lists all usages
of the orphaned proxy in the project. This also helps to identify from which module there are
usages of orphaned proxies.
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.
MagicDraw can help to identify why orphaned proxy appeared, as it remembers, if possible, the last existence
of the real element in the module. There are tree main causes of orphaned proxies:
If an element was removed from the module or moved from the shared part of the module to
the unshared part. In this case all such orphaned proxies shall be located under the module
shared package where that module is being used.
Resolving such orphaned proxies must be done in the proxy-containing module. This module is
provided in the Tool Tip of the orphaned proxy.
If elements in the module of the shared part have some references to the elements that are
located not in the shared part of the module. In this case, all such orphaned proxies shall be
located not under the proxy-containing module package (which is provided in the Tool Tip of the
orphaned proxy). To check if this is the case, open the proxy containing module as a project
and execute the module dependency checker: Tools->Dependency Checker. If the
dependency checker finds any errors, try to fix them.
If elements in the module of the shared part have some references to the elements that are
located in another project. This could happen if the module was mounted in the project in the
read-write mode and somebody added a reference to the project data. In such case, there will
be no orphaned proxies in that project, but if the module is being opened as a project, orphaned
proxies are created for such another-project elements.
To resolve the orphaned proxies into the real element, you have to find. where real 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 real 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.
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).
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.
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. MagicDraw will
list the modules that still has references to the orphaned proxy but currently
could not be removed (because module(s) are mounted as read-only).
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.
MOF Support
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 file. NEW! MOF 2.4 is now supported.
The MOF domain model is described in Meta Object Facility (MOF) Core Specification (OMG Available
Specification Version 2.0 (2006, January). Meta Object Facility (MOF) Core Specification. Retrieved February
04, 2011, from http://www.omg.org/spec/MOF/2.0/PDF/).
IMPORTANT! Diagram data and model features available only in UML (behavioral models in
particular) can not be exported.
1. From the main menu, select File > Export To > MOF XMI File > MOF Whole Model. The
Select Target File dialog opens (see the following figure).
2. Type a file name and select a location for the exported model.
3. On the right side of the dialog under NEW! MOF Kind, select a MOF kind. The file type of the
exported model changes according to your selection.
4. Click to select or to clear the Validate check box. For more information about validating refer to
"Exported elements validation" on page 132.
5. Click the Export button when you are finished.
Figure 63 -- Select Target File dialog. Exporting project to CMOF 2.4 file
1. From the main menu, select File > Export To > MOF XMI File > MOF Selection.
2. In the Select Packages to Export dialog, select packages you want to export and click Add to
move them to the Selected list. Click OK when you are done.
3. Perform the procedure "To export a project to a MOF file" starting from the step #2.
MagicDraw provides two validation suites (one for CMOF and one for EMOF) for validating a model that is
being exported to a MOF file. These suites contain batches of rules to check exported elements. Warnings
about not exported elements (for example, diagrams, behavioral elements, or other) are displayed after the
validation process is completed.
The validation process does not preclude the model from being exported. Unsuitable elements are simply
skipped.
You can choose whether to run the validation or not before exporting the model (see the procedure "To export
a project to a MOF file" on page 131).
1. From the main menu, select File > Import From > MOF XMI File.
2. In the opened dialog, select the EMOF or CMOF file you want to import and click Open. The file
is imported as a separate project.
Ecore Support
The Ecore model is a model type supported by Eclipse Modeling Framework (EMF). This model type can be
colloquially called the EMF model (even though EMF supports many types of models, e.g., the UML model).
The Ecore model can be used for various purposes. Several of them are as follows:
Metamodeling purposes, where its expressive power is roughly similar to EMOF (and even
slightly higher than EMOF).
Simple class modeling purposes, where the Ecore model is used as a subset of UML.
Ecore models, prepared with MagicDraw, can be exported as Ecore models for the further processing
(generating model repositories, code or XML parsing and storing, etc.) with other EMF tools.
1. From the main menu, select File > New Project. The New Project dialog opens.
2. In the Other domain, select Project from Template.
3. Type a project name.
4. Specify the project location.
5. Under Select Template, expand Metamodeling and then select Ecore Template.
For more information about creating a project from a template refer to the procedure "To create a new project
from a specified template" on page 100.
NOTE The Ecore profile can be applied only to existing UML or CMOF / EMOF projects.
1. From the main menu, select File > Use Module. The Use Module wizard opens.
2. Under Select module file, click From predefined location. The Project modules paths list
appears.
3. Select <install root>\profiles\. The content of the <install root>\profiles folder is listed bellow.
4. Select Ecore_Profile.xml in the list.
5. Click Next, if you want to change module usage settings.
6. Click Finish.
For more information about the Use Module wizard refer to Section "The Use Module wizard" on page 121.
If your Ecore model references some standard Ecore elements (such as standard data types (for example,
EShort) or standard metaclasses (for example, EStructuralFeature), you need to use the standard Ecore library
in your project.
1. From the main menu, select File > Use Module.The Use Module wizard opens.
2. Under Select module file, click From predefined location. The Project modules paths list
appears.
3. Select <install root>\modelLibraries. The content of the <install root>\modelLibraries folder is
listed bellow.
4. Select Ecore.mdzip in the list.
5. Click Next, if you want to change module settings.
6. Click Finish.
For more information about the Use Module wizard refer to Section "The Use Module wizard" on page 121.
Ecore modeling
Learn about Ecore modeling in the following subsections:
"Diagrams and elements in Ecore models" on page 136.
"Element properties in Ecore models" on page 138.
"Annotation modeling" on page 140.
There are no specific diagrams for editing Ecore models in MagicDraw. You can use the same Class diagrams
as you use for your UML models. Since Ecore is almost a subset of UML (with a few additions), familiar UML
elements are used for the modeling. You can also develop Ecore models without using the Ecore profile at all. If
your Ecore model uses only UML-specific information, you can develop it using plain UML and export it to
Ecore without any problem.
Ecore is even more similar to EMOF. You can export the same model to both Ecore and EMOF.
Class, DataType, Enumeration, Package, Operation, Parameter have a direct one-to-one correspondence
between UML and Ecore.
Ecore has two flavors of structural features, EAttribute and EReference, while UML has just one - Property.
Fortunately a differentiation between an attribute and a reference is unambiguous and automatically resolved:
the property, whose type is a data type is treated as EAttribute; the property, whose type is a class is treated as
EReference. Hence the user does not need to worry about this - he/she can simply use properties.
There are no standalone Association and Generalization model elements in Ecore, but there is analogous
information in Ecore: two EReferences, pointing to each other by their opposite property is equivalent to the
association; the EClass::eSuperTypes property is equivalent to a generalization. Hence it is possible and
meaningful to draw associations and generalizations in your model for exporting this information to Ecore.
Ecore generics (templates) are also supported. You can use the UML template support to model Ecore
generics. While the modeling is not trivial (and not one-to-one due to weak semantics of Ecore's
EGenericType), it is possible to model all cases of template types, even ones with complexly nested type
bounds like, for example, SortedList<T extends Comparable<? super T>>.
Your models can also contain any other UML elements, which are not present in Ecore. These elements are
simply skipped during the export to Ecore. A warning is given about these elements (see "Exported data type
mappings" on page 146).
There are few Ecore-specific properties, which are brought in when the Ecore profile is used. These properties
are used to capture Ecore specific information, not existing in UML. MOF-specific properties are also relevant
for Ecore. These special properties are as follows:
The Ecore package has the additional properties: nsPrefix (Namespace Prefix) and nsURI
(NEW! corresponds to the URI property specified in the UML v2.4).
The Ecore classifier (class, data type, enumeration) has the additional properties:
Ecore attributes and references (modeled as the UML property) have the additional properties:
volatile (Volatile), transient (Transient), unsettable (Unsettable), and resolveProxies (Resolve
Annotation modeling
Ecore annotations are modeled as UML comments. For simple annotations no additional actions are
necessary.
However Ecore annotations have more powerful semantic than UML comments - they can have an internal
substructure. In particular they can have an additional key-value map. For this additional information, there is a
special EcoreAnnotation stereotype, that can be applied on an annotating comment. After applying the
stereotype, the key-value map can be entered in a separate node of the annotating comment Specification
window. Key-value pairs are stored as internal subcomment elements of the annotation.
1. In the Ecore annotations Specification window, select the Annotation Details tab.
2. Click the Create button. The key-value pairs Specification window opens.
4. Click the Back button when you are done. You will see the key-value pair created.
1. From the main menu, select File > Export To > EMF Ecore File > Ecore Whole Model. The
Select Target File dialog opens (see the following figure).
2. Type a file name and select a location for the exported model.
3. Click to select or to clear the Validate check box. For more information about validating refer to
"Ecore elements validation" on page 147.
1. From the main menu, select File > Export To > EMF Ecore File > Ecore Selection.
2. In the Select Packages to Export dialog, select packages you want to export and click OK
when you are done.
3. Perform the procedure "To export a project to an Ecore file" starting from the step #2.
It is important to notice that any modules used by MagicDraw project are not exported together with the project
on its export to an Ecore file. Only references to modules are exported. Therefore the output of the project
export is an Ecore file (model) containing the direct content of the MagicDraw project and referencing to other
Ecore files (modules) that are used in the MagicDraw project. For referencing to modules, i.e., other Ecore files,
Ecore references are used.
Each module used by the project must be exported to an Ecore file individually. For this you have to open each
module as a project and then export it to an Ecore file (see "Exporting projects to Ecore files" on page 144).
It is strongly recommended to read the following paragraph before your very first attempt to export a
MagicDraw project that uses modules. Getting familiar with this information may help you to escape a serious
problem that arises because of the nature of Ecore references.
Ecore references, crossing a resource boundary (when the element in one file references the element in
another file), are qualified-name-based, but not id-based as in case of CMOF, EMOF, or UML. Hence when
exporting a project with references to elements in other projects (modules), the export tool must know the full
path of elements in the module's Ecore file. This information cannot be determined from UML model without
additional information. For this the following approach is adopted:
1. Save the module after the export. After a project is exported to an Ecore file, the qualified
names (paths) of the shared elements are recorded in special stereotypes
(EcoreExportServiceInformation) / tags (ecoreExportPath) of the projects shared packages.
The side effect is that the project is modified during the export. To preserve this information for
later usage, you need to save the project after the export.
2. Export modules before exporting the main project. When a project that references to
elements in one or more modules is exported to an Ecore file, the export tool needs to know
these elements paths, saved on the appropriate module export to Ecore. If this information is
missing (e.g., in case the project is being exported before modules are exported), the export
tool tries to guess the correct path of each element in the module and gives warnings about this.
That is why modules should be exported to Ecore before exporting the main project that uses
these modules.
Standard UML data types are exported as standard Ecore data types. The following table shows which Ecore
data type corresponds to which UML data type.
Standard data types from the MagicDraw profile are exported as Ecore types. The following table shows which
Ecore data type corresponds which UML data type.
References to Ecore model elements (standard datatypes like EInt, metaclasses like EStructuralFeature),
defined in the standard Ecore library are exported as standardized Ecore references to Ecore metamodel
elements (the resource identifier part of the Href is http://www.eclipse.org/emf/2002/Ecore).
MagicDraw provides a validation suite for validating a model that is being exported to an Ecore file. This suite
contain batches of rules to check exported elements. Warnings about not exported elements (for example,
diagrams, behavioral elements, or other) are displayed after the validation process is completed.
The validation process does not preclude the model from being exported. Unsuitable elements are simply
skipped.
You can run the Ecore validation on a model (project or module) export to Ecore. All UML elements that are not
suitable for the Ecore, will be highlighted.
You can also run this validation suite at any time while you are developing an Ecore model.
1. From the main menu, select Analyze > Validation > Validate. The Validation dialog opens.
1. In the Eclipse environment, open the *.ecore file and save it as *.emof.
2. Use the procedure "To import a project from a MOF file" on page 132.
IMPORTANT! This indirect way looses some Ecore-specific model details that are not
existent in EMOF.
We highly recommend not to modify our provided standard profiles and libraries as it could cause problems on
version updates, plugins, core MagicDraw tool malfunctions, and model corruptions.
Users will be warned on any intentional or unintentional attempt to modify profiles in the following ways:
Open a profile as a project.
Use a module in the read-write mode.
Import a module into a project.
Merge projects.
Any other cases.
Standard profiles are usually upgraded to support newest versions of the specification of standards they
represent (for example, SysML 1.2 or UML 2.4) in the every MagicDraw release cycle. The MagicDraw
application, the plugins code, and the behavior are modified accordingly to reflect these changes.
There is a very high probability that the new version of MagicDraw or plugins can not work with older or newer
profile versions and may cause an unpredictable behavior or even model distortions. For example, MagicDraw
SysML 16.5 requires to use SysML Profile of the version 16.5, as it could malfunction when using SysML
Profile from the version 16.0 or 16.6.
To protect the user from such cases, every MagicDraw project starting from the version 16.6 knows which
profiles or plugins versions were used to create it and are required to load data correctly.
Every standard profile has the version number. Normally it is the same as the MagicDraw (or a plugin) release
version number.
MagicDraw requires to use the corresponding version of the profile with the corresponding software version.
You will get a warning, if your used plugins or profiles are obsolete or you miss some plugins or profiles.
Resource Manager with selected missing resources will be launched automatically, so you will be able to install
missing plugins/profiles in few clicks.
If new versions of plugins are not purchased or you simply do not want to install it, but need to take a look at the
project content, warnings may be ignored and the project may be loaded. In this case, proxy elements for
missing profile elements will be created to retain missing references. Missing custom diagrams will be loaded
as regular UML diagrams or will be restricted for a review. Do not save such project! Use it for the preview only.
Old projects will be loaded/converted without any warnings, if you have newest versions of corresponding
plugins and profiles as MagicDraw is always backward compatible.
Information about an updating UML Standard Profile due to the migration to UML 2 is presented in the
Teamwork Server readme file. You can find this file in the <MagicDraw Teamwork Server installation directory>
folder.
This chapter offers an overview of working with diagrams and symbols. 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, etc.
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.
Diagram Basics
Diagrams dialog opens. Click Add. The Create Diagram dialog box opens. Type the name of
the diagram and select or create a package where you wish to create your diagram.
From the Model 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 Model Browser.
From the model elements Specification window:
Open the Inner Elements tab in the Packages, Profiles, Models, or other elements
Specification window. Click Create. On the shortcut menu point to New Diagram and then
select the diagram type. Define the diagram name, enter documentation, define stereotypes,
and add tagged values and/or constraints.
Using a diagram creation wizard:
On the main menu click Diagrams > Diagram Wizards and then select the appropriate wizard
depending on what diagram you want to create. Wizards for creating a Class, Generic Table,
Package Dependency, Package Overview, Hierarchy, Activity Decomposition Hierarchy,
Realization, Sequence Diagram from Java Source, Content diagram are available.
Using a diagram creation wizard (from the Model Visualizer dialog):
On the main menu click Analyze > Model Visualizer. The Model Visualizer dialog with the list
of available diagram creation wizards will open. Select one and click the Start button to open
the appropriate diagram creation wizard.
To open a diagram
TIP 1! To load all diagrams that have been created in the project, from the
Diagrams menu, select Load All Diagrams.
TIP 2! To open the list of diagrams that have been 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 com-
mand.
TIP 3! 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.
To close a diagram
Click the Close button on the diagram pane or select Close Diagram from the diagram
shortcut menu.
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.
To rename a diagram
Open the diagram Specification window and type a new diagram name.
Open the diagram Specification window, select the Context property value, and click the ...
button. Then, the element Selection dialog appears. Select the new diagram context. More
information about element Selection dialog, see Section Selecting an Element on page 281.
Diagrams Dialog
The Diagrams dialog 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.
From the Diagrams menu, select one of the diagrams. Depending on the type of diagram, the
dialog box that opens has a corresponding title.
Element Function
name
Name The names of all created corresponding diagrams in the open project.
Owner The name of the package that owns the diagram.
Edit The Diagram Specification dialog box opens. Type the diagram name, select a
package, and click OK.
Add Creates a new diagram. The Create Diagram dialog box opens. Type the dia-
gram name, select a package, and click OK.
Remove Deletes the selected diagram.
Open Opens the selected diagram.
Close Saves all actions performed during the session and exits the dialog box.
Help Displays the MagicDraw Help.
Diagram Properties
Customize the diagram style (color, grid) in the Diagram Properties dialog.
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:
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.
Diagram Frame
As of MagicDraw version 12.0, a UML diagram has the content area that is restricted by the diagram frame as
it is stated in UML specification. 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 on the diagram pane when a new diagram is created. The frame is a
rectangle in all diagrams, but state machine and activity. State machine and activity diagram frames have
rounded corners.
From the diagram pane shortcut menu, select/ click to clear the Show Diagram Frame check
box.
In the Diagram Properties dialog, select/ click to clear the Show Diagram Frame check box.
Do either:
1. On the Options menu, select Project. The Project Options dialog will open.
2. In the tab tree, expand Symbols properties styles and then click Diagram. The Diagram
options pane will be displayed on the right of the Project Options dialog.
3. Change the properties in the Diagram Frame property group.
Or:
1. Open the Diagram Properties dialog (the ways for opening the dialog are described in Section
"Diagram Properties" on page 154).
2. Change the properties in the Diagram Frame property group.
1. Open the Diagram Properties dialog (the ways for opening the dialog are described in Section
"Diagram Properties" on page 154).
2. Change the Show Stereotypes property value to Text.
When a new diagram is created, the diagram stereotype icon is displayed on the diagram frame header by
default, though you can change it to the context stereotype icon.
To display the context stereotype icon instead of the diagram stereotype icon on the diagram frame
1. Open the Diagram Properties dialog (the ways for opening the dialog are described in Section
"Diagram Properties" on page 154).
2. In the Diagram Frame property group, change the Use Stereotype property value to Context.
The context stereotype icon will be displayed instead of the diagram stereotype icon in the
diagram frame header.
NOTES The Use Stereotype property takes effect only in case the Show
Stereotypes property value is Text and Icon or Icon.
For more information about the context of a diagram, see the procedure
"To change the diagram context" on page 153.
There is a possibility to show the abbreviation of a diagram type instead of the full diagram type in the diagram
frame header.
1. Open the Diagram Properties dialog (the ways for opening the dialog are described in Section
"Diagram Properties" on page 154).
2. In the Diagram Frame property group, select the Show Abbreviated Type check box.
For more information about working with shapes you can find in section "Working with Shapes of Model
Elements" on page 178.
2. Drag the diagram to the diagram pane. The diagram shape will be drawn on the diagram pane
(see the example in the following picture).
You can change the representation of the diagram shape by changing the diagram stereotype display mode.
Do either:
1. Right-click the shape and from the shortcut menu select Symbol(s) Properties.
2. In the Symbol Properties dialog select a new value for the Show Stereotypes property (see
the following picture).
Or:
1. Right-click the shape and from the shortcut menu select Show Stereotypes.
2. From the opened submenu select a desired diagram stereotype display mode (see the
following picture).
For more information about the shape stereotype display modes, see Section "Changing the stereotype
display mode" on page 639.
You can also select showing or hiding diagram stereotype constraints or tagged values on the diagram shape.
To show diagram stereotype constraints and tagged values on the diagram shape
Do either:
1. Right-click the diagram shape and from the shortcut menu select Symbol(s) Properties.
2. In the Symbol Properties dialog select the Show Constraints and Show Tagged Values
check boxes.
Or:
1. Right-click the diagram shape and from the shortcut menu select Show Constraints.
2. Right-click the diagram shape and from the shortcut menu select Show Tagged Values.
To display the context stereotype icon instead of the diagram stereotype icon on the diagram shape
1. Right-click the diagram shape and from the shortcut menu select Symbol(s) Properties.
2. In the Symbol Properties dialog, change the Use Stereotype property value to Context. The
context stereotype icon will be displayed instead of the diagram stereotype icon on the diagram
shape.
NOTES The Use Stereotype property takes effect only in case the Show
Stereotypes property value is Text and Icon or Icon.
For more information about the context of a diagram, see the procedure
"To change the diagram context" on page 153.
There is a possibility to show the abbreviation of a diagram type instead of the full diagram type on the diagram
shape.
Do either:
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 abbreviated diagram types are listed at the end of Section "Diagram Frame" on page 156.
TIP! You can also learn about overviewing diagrams while analyzing the Diagram
overview sample.
To open the sample, do any of the following:
On the Welcome screen, select Samples and then in the Product
Features section click Diagram overview.
Go to the folder <MagicDraw installation directory>\samples\product
features and open the diagram overview.mdzip file.
As of version 17.0 you can overview other diagrams, including dependency matrices, tables, and relation maps,
on a diagram pane. For this the diagram overview shape can be used.
Read and learn how to use the diagram overview shape in the following sections:
"Creating a diagram overview shape" on page 161.
"Modifying the content of a diagram overview shape" on page 166.
"Diagram overview shape environment" on page 169.
"How to..." on page 175.
You can use one of the following ways to create a diagram overview shape:
Drag the diagram shape from the Model Browser and change it into the diagram
overview shape afterwards. This way created diagram overview shape shows the full content
of the corresponding diagram (see Figure 81 on page 166) and is updated automatically
according to all changes made in this diagram. For detailed description of the procedure see
section "To create a diagram overview shape by using a drag-and-drop operation" on
page 162.
Use the Diagram Overview button that is located in the diagram pallet. This way
created diagram overview shape shows the full content of the corresponding diagram (see
Figure 81 on page 166) and is updated automatically according to all changes made in this
diagram. For detailed description of the procedure see section "To create a diagram overview
shape by using the diagram pallet" on page 164.
Paste a copied part of the diagrams content using a special command from the main
menu. This way created diagram overview shape shows any copied part of the corresponding
diagrams content (see Figure 82 on page 166) and is updated automatically according only to
the changes made in this copied part. Note that this way can not be used for dependency
matrixes, tables, and relation maps, as it is not allowed to copy and paste different parts of
them. For detailed description of the procedure see section "To create a diagram overview
shape by pasting any part of diagrams content" on page 165.
1. Open a diagram wherein you want to create the diagram overview shape.
2. In the Model Browser select a diagram you want to overview.
3. Drag the diagram shape to the opened diagram pane. The diagram shape will be drawn on the
diagram pane (see the example in the picture below).
NOTE If you can not drag the diagram shape to the opened diagram
pane within a teamwork project, make sure you have the right to
edit model of this project and then try to lock for edit this diagram.
For more information about locking elements please refer to sec-
tion Locking Model Elements and Diagrams for Editing in
MagicDraw Teamwork UserGuide.pdf.
4. Make the diagram shape show the full content of the corresponding diagram using any of the
following GUI features:
Right-click the diagram shape and from the shortcut menu select Show Diagram
Overview Content.
Right-click the diagram shape and from the shortcut menu select Symbol(s)
Properties. In the opened dialog, set the Show Diagram Overview Content
property value to true.
Click the diagram shape and on the Smart Manipulator toolbar select
the button.
The diagram shape will be changed to the diagram overview shape that shows the full content of
the corresponding diagram (see Figure 81 on page 166).
NOTE The content of this way created diagram overview shape will be updated automatically
according to all changes made in the corresponding diagram.
TIP! Double-click the diagram overview shape to open the corresponding diagram.
1. Open a diagram wherein you want to create the diagram overview shape.
2. On the diagram pallet click the Diagram Overview button that is located within the
Common buttons group.
The Select Diagram dialog will open (to learn more about using the dialog please refer to
section "Selecting an Element" on page 281).
3. Select a diagram for which you want create a diagram overview shape and click OK.
The created diagram overview shape will show the full content of the corresponding diagram
(see Figure 81 on page 166).
NOTE The content of this way created diagram overview shape will be updated automatically
according to all changes made in the corresponding diagram.
TIP! Double-click the diagram overview shape to open the corresponding diagram.
NOTE This way can not be used for dependency matrixes, tables, and relation maps, as it is
not allowed to copy and paste different parts of them.
1. Open a diagram for that you want to create the diagram overview shape.
2. Select the element shapes that you want to appear in the diagram overview shape and then
copy them.
3. Open the diagram wherein you want to create the diagram overview shape.
4. On the Edit menu, click Paste as Diagram Overview.
The created diagram overview shape will show only the copied part of the corresponding
diagrams content (see Figure 82 on page 166)
NOTE The content of this way created diagram overview shape will be updated automati-
cally according only to the changes made in the copied part of the corresponding dia-
gram.
TIP! Double-click the diagram overview shape to open the corresponding diagram.
Figure 81 -- An example of diagram and its diagram overview shape showing the full content of the diagram
Figure 82 -- An example of diagram and its diagram overview shape showing only the part of the diagram content
Once the diagram overview shape is created, you can modify its content: add more element shapes or remove
no more needed ones by using the Compartment Edit dialog.
To open the Compartment Edit dialog for modifying the content of a diagram overview shape
Click the diagram overview shape and on the shape area click the ... button.
The Compartment Edit dialog will open with the Diagram Overview Content tab selected.
If the diagram overview shape is created by using instructions given either in the first or the second procedure
in section "Creating a diagram overview shape" on page 161, then you will see that all element shapes are
listed in the All list within the Compartment Edit dialog.
Figure 83 -- An example of the Compartment Edit dialog in case of showing the full content of the diagram in the
diagram overview shape
If the diagram overview shape s created by using instructions given in the third procedure in section "Creating
a diagram overview shape" on page 161, then you will see that only the element shapes which are displayed in
the diagram overview shape are listed in the Selected list (even in case of copying all shapes).
Figure 84 -- An example of the Compartment Edit dialog in case of showing only the part of the diagram content in the
diagram overview shape
1. Open the Compartment Edit dialog using one of the ways described in the procedure above.
2. Use the >, >>, <, and << buttons to manage item moving between the lists. Remember the
rules of showing and not showing shapes included in each list.
3. Click OK when you are finished.
This section describes GUI features that can be used for handling the diagram overview shape:
"Shortcut menu" on page 170.
"Symbol Properties dialog" on page 172.
"Smart Manipulator toolbar" on page 174.
"Shape area buttons" on page 175.
Shortcut menu
This section introduces diagram overview shape-specific commands, but not all commands from the diagram
overview shape shortcut menu.
Command Description
Edit Compartment > Diagram Overview Content Opens the Compartment Edit dialog with the Diagram
Overview Content tab selected.
TIP! You can also open this dialog by clicking the ...
button that is on the frame of a diagram overview
shape area (to see the button, click the diagram over-
view shape).
Refresh Updates the content of the diagram overview shape
according to changes in the model.
NOTE: This button is available in the shortcut menu
only if a dependency matrix, table, or relation map is
displayed in the diagram overview shape.
TIP! You can also update the content of the diagram
Command Description
Show Diagram Overview Content Select to change the diagram shape into the diagram
overview shape that shows the content or a part of the
content of a corresponding diagram.
Unselect to change the diagram overview shape into
the diagram shape.
For more information about using this command refer
to step #4 of the procedure "To create a diagram over-
view shape by using a drag-and-drop operation" on
page 162.
This section introduces diagram overview shape-specific properties, but not all properties in the Symbol
Properties dialog of a diagram overview shape.
Property Description
Fit Content to Shape Area Select to adjust the zoom ratio of the diagram content so that it fits the
size of the diagram overview shape area.
Unselect to fix the current zoom ratio of the diagram content. It will per-
sist in any size change.
NOTE: Any value setting for this property can take effect on the dia-
gram overview shape in case the Autosize property value is false. If
you need to reset the diagram content ratio to 1:1, set the Autosize
property value to true.
Show Diagram Header Select to show the diagram header in the diagram overview shape.
Show Diagram Name Select to show the diagram icon and name in the diagram header of
the diagram overview shape, in case the diagram header is displayed,
i.e., the Show Diagram Header property value is true.
Property Description
Show Diagram Overview Content Select to change the diagram shape into the diagram overview shape
that shows the content or a part of the content of a corresponding dia-
gram.
Unselect to change the diagram overview shape into the diagram
shape.
For more information about using this command refer to step #4 of the
procedure "To create a diagram overview shape by using a drag-and-
drop operation" on page 162.
Show More Sign in Diagram Select to display the more sign at the bottom of the diagram overview
Overview Content shape area, when only a part of the diagram content is displayed the
diagram overview shape (see Figure 87 on page 173).
In the Smart Manipulator of the diagram (overview) shape there are two buttons that need to be described.
Figure 88 -- Buttons for showing (on the left) and hiding (on the right) the diagram overview content in the Smart
Manipulator toolbar
Button Description
Changes the diagram shape to the diagram overview shape that shows in its
content the selected-to-overview shapes of the corresponding diagram.
For more information about using this command refer to step #4 of the procedure
"To create a diagram overview shape by using a drag-and-drop operation" on
page 162.
Changes the diagram overview shape to the diagram shape.
There are different sets of buttons on the diagram overview shape area showing a diagram and the one
showing a dependency matrix, table, or relation map.
Figure 89 -- Diagram overview shape area buttons in case of overviewing diagram (on the left) and dependency matrix
(on the right)
Button Description
Opens the Compartment Edit dialog with the Diagram Overview Content tab
selected.
Updates the content of the diagram overview shape according to changes in the
model.
NOTE: This button is available on the diagram overview shape area only if a
dependency matrix, table, or relation map is displayed in the diagram overview
shape.
Resets the diagram overview shapes content ratio to 1:1.
How to...
This section gives some remarks that can be useful when struggling to arrange sizes of your diagram overview
shapes. The solutions we offer are as follows:
"How to make a couple of diagram overview shapes to be of the same size?" on page 176.
"How to set desired shape sizes in the a diagram overview shape?" on page 176.
Lets say you have two diagram overview shapes. You want their zoom ratio to be 1:1 and shape areas to be of
the same height (or width) at the same time.
Solution
1. For both diagram overview shapes set the Fit Content to the Shape Area property value to
false.
2. For both diagram overview shapes set the Autosize property value to false.
3. Make both diagram overview shapes of preferred size.
4. Make both diagram overview shapes of the same height (or width) by dragging corners of the
shape areas.
Solution
1. Set the Fit Content to the Shape Area property value to true for this diagram overview shape.
2. Set the desired shape content size by dragging corners of the shape area.
3. Set the Fit Content to the Shape Area property value to false for this diagram overview shape.
In case the diagram overview shape shows the full content of the corresponding diagram, all new shapes
added to the diagram pane in the diagram overview shape will be of the previously set size.
If you want to reset the shape sizes to ratio zoom 1:1, do any of the following:
Set for the diagram overview shape the Autosize property value to true.
Make the diagram overview shape of the preferred size.
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.
You can also convert multiple the same type diagrams select them in the Browser and choose command
Change Type To.
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 You may customize menu items by selecting and/or modifying perspectives.
More information about customizing perspectives, you may find in Section Customizing and
Selecting Perspective on page 62. on page 69.
2. Click the desired location on the diagram pane. The new shape is placed on the diagram pane
at the point you click.
OR
Click the shape button on the diagram toolbar, hold down the left mouse button, and drag
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.
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 diagram at the
point you click (the button remains pressed.)
4. Click the next location on the diagram pane. The next shape is placed on the diagram pane.
Repeat this until you draw the desired number of shapes.
5. To undo the shapes, click the Sticky button on the diagram toolbar (shortcut key is Z).
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.
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.
On the diagram pane, click on the element and then click on the element name area. The
autocompletion list with already created elements appears.
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 begins 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.
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-existent 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.
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.)
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.
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 You may customize menu items by
selecting and/or modifying perspectives. More information about customizing perspectives, you
may find in Section Customizing and Selecting Perspective on page 62. on page 69.
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 remove the selected path from the diagram, press Delete. After the deletion, the relationship
will no longer be referenced by the deleted path (symbol), but still can be referenced by other
appropriated symbols.
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 dialog box
appears.
2. Change the Add Line Jumps To property.
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 261.
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.
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 symbol 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
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.
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.
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.
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-
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.
-or-
1. 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 command. 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 Smart Manipulators
Demo
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.
1. Small buttons are displayed within the symbol on the diagram pane.
2. Smart Manipulator toolbar, which appears when elements are selected on the diagram 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.
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.
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.
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 Manipulation check
box and click OK.
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.
Press ALT and click the shape. All shapes of the same type are selected.
From the Edit menu, select Select All (shortcut keys CTRL+A.)To make multiple selections
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.
After the selection process represented in the Figure 1, the following shapes are selected, as shown in Figure
2.
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.
OR
1. From the Options main menu, select Environment. The Environment Options dialog box
appears.
2. In the Diagram branch, Symbols Manipulation group, change the property of the Group
selection mode option.
1. Copy the text or image (you may use the shortcut key CTRL+C).
2. Open a MagicDraw diagram.
3. Paste the copied text or image (you may use the shortcut key CTRL+V). The Paste Special
dialog may open.
NOTES The Paste Special dialog opens only if the clipboard contains any text
or HTML text formats.
Dragged images will be nested by the following elements: Package, Model, Subsystem, Instance, Node, Part,
Combined Fragment, Composite State (State diagram), Interruptible Activity Region, Structured Activity Node,
Expansion Region, and Conditional Node (Activity diagram).
Figure 99 -- Samples of Images Nested to the Products Package and Server Component
Dragging Objects
You can move a shape to another location on the diagram pane by dragging and dropping.
Select the symbols and drag them to the desired area on the diagram pane.
Hold down the CTRL key while dragging the selected shape to the area where you wish to
make a copy.
To drag and drop items from the Model Browser to the diagram pane
1. In the Model Browser, select the created model element you wish to draw.
2. Drag the selected model element to the desired location on the diagram pane and drop it there.
NOTES 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.
Dragging Files
The drag-and-drop capability allows you to drag any files from your file system to any element in the Model
Browser or to a symbol on a diagram. A hyperlink is automatically created for the element or symbol to which
the file is dragged. Double-click the element or symbol to open the dropped file.
1. Select a file.
2. Drag the selected file to the element in the browser or to a symbol on a diagram in MagicDraw.
A hyperlink to the file is created.
To drag and drop the MagicDraw project file on a diagram to an open project
TIP! You can drag and drop source code files from the native file manager
to a MagicDraw Code Engineering Set.
Dragging Images
You can drag an image file from your file system to an element in the Model Browser or a symbol on a diagram
pane. The dragged images are set as the Image property value of the element.
2. Drag this file to the element in the Model Browser or the symbol on the diagram.
Figure 102 -- Representation of image dragged to class shape and as Image value in Specification window
Lets describe the element dragging to the Specification window in the following example:
1. Open the sample project class.diagram.mdzip. This sample can be found in <MagicDraw
installation directory>\sample\diagrams.
2. Open a diagram domain.User.
3. Open the Specification window of the class Customer. In the Operations group, select the
getProfile operation.
4. In the Model Browser, select the CustomerProfile class and drag it to the Type property value
cell in the opened Class - Customer Specification window. The CustomerProfile class is
assigned as the value of the getProfile operation type.
You can drag any elements from the Specification window to a diagram or to the browser. Lets describe this
case in the following example:
1. Open the sample project class.diagram.mdzip. This sample can be found in <MagicDraw
installation directory>\sample\diagrams.
2. Select the class Customer and open its Specification window.
3. In the Operations group, select the getProfile operation. The operation properties opens.
4. In the Type property value cell, select the CustomProfile and drag it to the one of the following:
An empty place on a diagram. In this case, the class symbol is created on the
diagram (depicted in the Figure 104 on page 195).
A particular shape on a diagram. In this case, a new attribute is created.
A particular element in the Model Browser. In this case, a new model element is
created.
1. Select a stereotype.
2. Drag it to a model element or symbol on a diagram pane to apply the stereotype.
Dragging in diagrams
Sequence diagram
In a Sequence diagram you can drag an Operation from Model Browser to a Message. The Message becomes
a Call Message once the operation is assigned.
Dragging a Signal to a Message converts the Message into a Send Signal Message and assigns the Signal to
the Message.
You can drag an Event element to a Transition element in a State Machine diagram. A Trigger with this Event is
created for the Transition element.
Activity diagrams
NOTE Once the Signal is assigned to the Accept Event Action, a Signal
Event for the diagram and a Trigger for the action will be created
automatically.
To paste one or more copied model elements by creating new model elements
TIP! Use the Paste with New Data command when copying or cutting
owned symbols from one shape to other in a diagram.
To copy the whole diagram and paste it to Microsoft Office or other application
To copy the selected model elements and paste them to Microsoft Office or other application
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.
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.
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 .
From the View menu or from the diagram shortcut menu, select Zoom In (shortcut keys
CTRL+NumPad PLUS SIGN (+) or scroll.)
From the View menu or from the diagram shortcut menu, select Zoom Out (shortcut keys
CTRL+NumPad MINUS SIGN (-) or scroll.)
TIP! You can zoom in or zoom out using the CTRL+wheel keys.
From the View menu or from the diagram shortcut menu, select Zoom 1:1 (shortcut keys
CTRL+NumPad SLASH MARK (/).)
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 (*).)
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 Zoom panel on
page 86.
From either the View menu or from the diagram shortcut menu, select Grid and then select/clear
the Show Grid check box.
From either the View menu or from the diagram shortcut menu, select Grid and then select/clear
the Snap Paths to Grid check box.
From either the View menu or from the diagram shortcut menu, select Grid and then select/clear
the Snap Shapes to Grid check box.
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).
4. Click OK.
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 is available in Standard, Professional, Architect,
and Enterprise editions.
In 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.
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. These are the general layout tools:
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.
For more information about the smart layout feature drawing diagram, see Smart Activity Diagram layout on
page 553.
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.
NOTE: If labels are at their default position, reset labels position functionality is disabled.
After moving a path, shape or related element default label positions leaves if it is semantically logical decision.
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 107 on page 210.
3. Path, shape or related element movement. See an example, when related element is moved
Figure 108 on page 210.
Figure 107 -- Label position is reseted to its default position after qualifier is added
Figure 108 -- Label position is reseted to its default position after Order class movement
While moving text box from default position, dotted line shows deviation from default position. This helps to see
the current labels owner (See Figure 109 on page 210).
Figure 109 -- Dotted line, which shows deviation from the 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 110 on page 211).
Figure 110 -- Marking the label when it is not at its default position
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 95.
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 Model Browser on page 72.
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 Single Window
(JIDE) interface style.
Figure 112 -- The Floating Command on the Diagram tab shortcut menu
Saving as an Image
Diagrams and symbols 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.
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.
4. Select the graphical file format in the Image Format drop down list (EMF, EPS, JPG, PNG,
SVG, TIF, or WMF) and click Save.
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.
Press the CTRL key and click the diagrams you wish to export.
Click the Select All button (press CTRL+A keys) or Unselect All button.
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.
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:
You may also define image saving options in the Environment Options dialog box. For more information see
Customizing Environment Options on page 89.
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.
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.
In the Print Range tab, select the item you want to print.
Click the Print Header/Footer tab to customize the header and footer of the printed pages.
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.
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.
Specification Window
View Online Specification Windows
Demo
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 Properties panel. For more information, see Properties
panel on page 87.
The Specification window is used to define UML model elements such as class, package, activity, and others.
Specification window is a non-modal window in which you may edit model element properties and work with a
model simultaneously. For more information on how to edit property values, see "Editing Property Values" on
page 238.
Function How to
Add/modify model From the Specification window tab tree, choose the desired tab and fill
element properties its properties in the properties list.
and inner elements.
Open referenced
elements Click or
specifications and
work with them in the
same window. )
Navigate between
specifications that
were opened Click or .
Click or
incoming relationships.
Function How to
Add/edit the element Add or edit a documentation of the element. Documentation also can be
documentation written in HTML.
More information about working with HTML text, see in HTML Editor
on page 294.
Manage element Open, edit, add, or remove hyperlinks from the selected model element
hyperlinks to a file, web page, other element/symbol, or requirements.
More information about working with hyperlinks, see Defining
Hyperlinks Between Elements on page 273.
Manage element tags More information about working with tags you may find in "Editing
and their values tagged value" on page 641.
Manage element More information about working with constraints you may find in
constraints "Working with Constraints" on page 644.
Track the elements Find out in which diagrams the symbol is used.
symbol usage in
diagrams and open
these diagrams.
Select the model
element in the
Containment tree Click or
Track elements More information about the traceability you may find in Section
traceability Traceability on page 399.
TIP! Right-click the specification property and select the action you want to
perform.
Strip multiline If selected, the propertys text (e.g., ToDo), which covers more than five
text rows, is striped, not showing all of it, by adding three dots at the end of
the text.
Quick filter
If the general Specification window pane contains 10 or more properties, the Quick filter box appears. Using the
Quick filter box you may quickly find the required property in the property list. This is especially handy when the
properties list is rather long. Properties can be filtered by the text entered in this box.
Match anywhere The search will be performed according to any of the letter of the
property.
Keep parent row if any of the Show the category name of the found property.
children match
Keep the children if any of their Show all other properties that are in the same category as the found
ancestors match property.
General tab
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.
When one of these check boxes is selected, the model element is correspondingly set as an active or abstract
generalizable model element.
Name Function
Is Abstract Specifies whether the generalizable element may or may not have a
direct instance. True indicates that an instance of the generalizable
element must be an instance of a child of the generalizable element.
False indicates that there may 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.
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 page 260.
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.
To write documentation in HTML format, simply select the HTML check box to display a menu with the available
text formatting options.
For more information about the HTML editor toolbar, see Section "HTML editor toolbar" on page 300.
Adding Hyperlinks
In the Hyperlinks group, manage the hyperlinks you want to add to the model element
Active If selected, the hyperlink is activated and will work when double-
clicking the model element.
Hyperlink Display information about the hyperlink: a diagram or element name,
file path, or URL name.
Open Opens the previously assigned hyperlink.
Edit The Insert Hyperlink dialog opens. Edit the selected hyperlink.
Add The Insert Hyperlink dialog opens. Select the hyperlink you want to
add to the model element.
Remove Remove the selected hyperlink from the model element.
Attributes tab
The Attributes tab contains the model element attributes list and buttons for editing the attributes list.
For more information about searching for symbol usage in diagrams from the Usage In Diagrams branch, see
To search for diagrams in which symbol is used from the element Specification window on page 421.
Operations tab
The Operation tab contains the model element operations list and buttons for managing this list.
The Template Parameter tab contains the model element template parameters list and buttons for managing
this list.
Relations tab
The Relations tab contains the list of relationships in which the appropriate model element participates.
Create Outgoing Create a new outgoing relationship by choosing the relationship type
from the appeared list.
Tags tab
Group by Stereotype
Displays types of tag definitions in the list.
For more information about how to create a new tagged value, see To create a new tag definition on
page 641.
Constraints tab
Traceability tab
The Traceability tab in elements Specification window is one of the places, wherein the elements traceability
properties, showing its realizing and/ or more specific elements, are represented.
For more information about traceability feature, see "Traceability" on page 399.
Button Function
Close Save changes and exit the dialog.
Back Return to the previous dialog.
Forward Proceed to the next dialog.
Help Display MagicDraw Help.
1. From the Options main menu, select Project. The Project Options dialog opens.
2. Expand Default model properties. Select the exact element and in the right pane side,
change the property value.
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.)
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 opens.
3. Open the Element Properties tab. Select the Specify own values radio button and change
the default element property values.
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.
If you want to share the default properties with other users for their new project, change the property values in
the Project Options dialog 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 opens. Select the Project from Template icon
from the Other domain and in the Select template tree, select your template. The project
options are imported to the project together with the template.
Figure 128 -- Selecting Edit Owner command on propertys shortcut menu in Specification window
The way of entering a property value depends on the selected property type.
NOTE Property values in gray are not editable. They are derived from other elements
used in your model.
In case of editing a value that consists of several words, the value cell may seem too short. In order to avoid
this inconvenience you can edit the property value in a dialog specially designated for typing long values.
Figure 129 -- Editing value that consists of several words in Specification window
There are some textual properties, whose values can keep text formatting settings. You can use the HTML
editor in such cases. To use the HTML editor, select the HTML check box in the dialog opened for editing this
special kind of textual property value.
For more information about using the HTML editor please refer to "HTML Editor" on page 294.
Some properties can have more than one textual value, for example, the Body property of an opaque
expression, the Pre Condition and Post Condition properties of a use case, and other. You can use a special
editor to edit multiline textual values.
Using the editor for multiline textual values, you can perform the following actions:
Create a new value.
Remove a selected value.
Edit each value in the HTML editor separately.
Reorder values.
Strip long values (available only in the Specification window).
IMPORTANT! To strip long values, make sure that the Strip Multiline Text mode is
turned on in the Specification window. For more information about
buttons on the Specification window toolbar, see "Specification
Window Toolbar" on page 223.
Click the Add new value button (see the + button in the following figure). The editor
will be opened with an empty line to type a new value.
Selecting values
Selectable value type property values are selected from lists. There can be two types of lists:
Non-editable - for properties whose value ranges are restricted by UML (for example, Visibility,
Message Sort, Event Type, and other).
Editable - for properties whose value ranges are not restricted by UML and can be defined by
the user (for example, Type Modifier, Multiplicity, and other).
NOTE You can remove the property value only if the property can have an
empty value.
This is the case of assigning a value to a property in one of the following ways:
Selecting a value either from a predefined value list or from the whole model via the element
Selection dialog.
Creating a new element and selecting it as property value.
Figure 135 -- Selecting single property value from predefined list in Specification window
For information about the type and mode of searching for an element, refer to "Element search criteria and
modes" on page 282.
Figure 136 -- Selecting single property value via element Selection dialog
In this case you can assign more than one value to a property via the element Selection dialog.
Examples of properties that may have multiple values: Classifier, Method, and other.
Figure 137 -- Selecting multiple property values via the element Selection dialog
There are some properties whose values can be their inner elements. Specifying such property value requires
to create a new element. The element, which has the property with the inner element assigned as its value,
becomes the owner of this inner element.
Examples of properties whose values are their inner elements: Owned Comment, Owned Attribute, and
other.
IMPORTANT! The element is removed from both the property value list and the
model.
There are some properties whose values can be value specifications. For more information about value
specifications, refer to "Value Specification" on page 759.
Examples of properties whose values are value specifications: Default Value, Value, and other.
3. On the shortcut menu, click Value Specification and then select a value specification.
4. Assign a new value specification. See the procedure "To assign a value specification" on
page 254.
Some elements can be related to each other as the owner and the owned one, for example, a transition can be
an owner of a trigger, and the trigger can be owned by the transition.
MagicDraw allows the handy editing of owned element property values via owners properties. Owned element
properties are available as appropriately named property groups, for example, the Entry, Do Activity, and Exit
property groups in the states Specification window (see the following figure).
IMPORTANT! When editing owned element properties, keep in mind that you create a
new element in your model.
Property set in a property group may vary before and after owned element specification. For example, lets say,
we have an activity assigned as behavior type in the Entry property group. As a result to this certain additional
properties for creating a new activity in your model appear in the Entry property group: Name and Owned
Diagram (see the following figure).
NOTE Keep in mind that the owners specification contains only ownership-relevant
properties of an owned element.
To view and edit all other properties of the owned element, open its Specification
window.
1. In the property group, wherein you want to create the owned element, click any editable
property value cell.
2. Specify additional properties corresponding to the created element.
1. Click the <owned element type> property value cell in the desired to remove owned element
property group.
2. In the opened drop-down list, select <UNSPECIFIED>.
Formatting Symbols
Every symbol in MagicDraw can have its own style: color, font, size, and so forth. Define these symbol
properties:
In the Symbol Properties dialog. See the procedure "To open the Symbol Properties dialog"
on page 259.
In the Symbol tab on the Properties panel at the bottom of the Model Browser.
In the Project Options dialog. Using this dialog you can 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. For more
information about creating, editing, cloning, importing / exporting, or removing symbol property
styles, see "Style Engine" on page 261.
On the diagram toolbar. Using this toolbar you can change the color, font, and path style of a
symbol. For more information about diagram toolbar, see "Diagram toolbars" on page 70.
If a group of symbols was selected, only common symbol properties are displayed in the opened dialog.
TIP! If you wish to see all symbols properties, click the Show All Properties button
that is located on the toolbar in the Symbol Properties dialog.
To show / hide model element constraints, stereotypes, and / or tagged values on the diagram pane
Do either:
Select / clear the Show Constraints, Show Stereotypes, and/or Show Tagged Values check
boxes on the symbols shortcut menu.
Or:
1. From the Options menu, select Project.
2. The Project Options dialog opens. Select / clear the Show Constraints, Show Stereotypes,
and / or Show Tagged Values check boxes for the selected model elements.
Get acquainted with the following definitions in order to understand this functionality better.
Definition Description
Symbol 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).
Symbol Every symbol may have its own style: color, font, size, and so forth.
properties 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 259, about style engine, see "Style Engine" on
page 261.
Stereotype A stereotype defines how an existing metaclass may be extended, and
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.4: Superstructure)]. For more
information about stereotype, see "Stereotype" on page 636. For more
information about applying stereotype properties, see "Stereotype
properties" on page 271.
Icon 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 window,
define the Icon property. For more information on how to assign Icon for
stereotype, see "To create a stereotype with an image" on page 636.
Text Stereotype name, displayed on the symbol.
Image 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 window, assign the Image property. For more information
on how to assign icon for element, see "Image" on page 227.
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 > Show
Stereotypes combo box.
Select one of the six property modes for Show Stereotypes. The property modes are described in the table
below:
* - 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.
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 contains possible choices and instruments to manage them.
1. On the main menu, click Options > Project. The Project Options dialog opens.
2. In the tree on the dialogs left side, select Symbols properties styles.
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.
3. Change options of the new style.
1. Select a style you want to rename and click the Rename button.
2. Type a new name for the style in the Enter Style Name dialog.
To make a selected style your default style for newly created projects
Click the Apply button in the Project Options dialog, 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.
Click the Import button. The Open dialog opens. Select the style you wish to import (*.stl).
To save the created style (export) for a later usage or for other users
Click the Export button. The Save dialog 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:
Every style has its own presentation of Diagram, Shape, Path, and Stereotype that you can modify using the
Project Options dialog 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 contains possible choices
and instruments to manage them.
To change properties for multiple symbols, using Ctrl or Shift key select few elements in the Project Options
dialog, Symbol properties styles branch.
Figure 145 -- The Project Options dialog, multiple element symbols style is selected
1. In the Project Options dialog, 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.
2. Select the diagram type. The Diagram is added as an additional branch to the section.
3. Set the style properties for the element in the right pane of the Project Options dialog. The
properties will be applied only in the specified type of diagram.
The element can be extended by diagram in the Project Options dialog, specific elements
pane, by clicking the Extend by Diagram button. The Extend by Diagram dialog opens. Click
the Add Diagram button and select a diagram from the list.
Select the extended diagram and right click on the mouse, then select Remove.
In the Project Options dialog, the extended diagram style properties pane, click the Remove
button.
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.
When expanding any of these branches, the style for a concrete element (diagram) can be created.
1. In the Project Options dialog, change the element style properties and click the Apply button.
The Select Diagrams dialog opens. The list of diagrams created in the project is displayed.
2. Select the diagrams to which the element properties will be applied and click OK. The Select
Properties to Apply dialog opens.
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.
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.
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.
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.
1. In the Project Options dialog, the Symbols Properties Styles tree, right-click the
Stereotypes branch. The list of stereotypes opens.
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.
1. In the Project Options dialog, 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.
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 are
changed, click the Apply button. The Select Diagrams dialog opens.
2. Select the diagrams to which the stereotype properties will be applied and click OK.
3. In the Select Properties to Apply dialog, 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, 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.
1. Select the element and click on the Smart Manipulator for Hyperlink.
3. Click Add/Edit Hyperlink(s) item. The hyperlinks creation editing dialog opens.
4. Click Add and define the hyperlink to any model element, file, or Web page in the Edit
Hyperlink dialog. If you want this hyperlink to be active, select the Active check box.
5. Click OK.
1. Open the model element Specification window and select the Documentation/Hyperlinks
tab.
2. Define the hyperlink to any model element, file, or Web page in the Edit Hyperlink dialog. If
you want this hyperlink to be active, select the Active check box.
3. Click OK.
Now hyperlinks can be created and edited straight from the element shortcut menu:
Invoke element shortcut menu from the Browser.
Choose Go To and Hyperlinks (see Figure 156 on page 275).
For more detailed description on managing hyperlinks, see To add a hyperlink from the diagram on page 273.
1. Select the text where you want to add a hyperlink and click Insert Hyperlink .
2. The Edit Hyperlink dialog 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 element Selection dialog. More information about this dialog
find in the Section Selecting an Element on page 281.
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
(for a description, see Customizing Environment Options on page 89.)
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, 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.
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.
The name of the owner is displayed in the model element name compartment in parentheses.
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
window. 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 window 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 opens.
Select/clear the Show Owner check box.
From the Options menu, select Project. The Project Options dialog 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.
Select one of the four property modes for Show Owner. The property modes are described in the table below.
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 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, 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.
Now relationships will not get lost in Containment tree while changing the element ownership. Relationships will
also be moved together with the client or supplier (or both) so that all the related elements can be grouped
together in one place. This will also prevent unexpected dependencies on model partitioning.
For example, if you move two Classes which are connected to the Association relationship to another Package
in the Containment tree, a question dialog will open, asking if you want to move the relationship as well
(Figure 158 on page 280).
Selecting an Element
The element Selection dialog is used for selecting elements from the available contents and adding them to a
certain destination scope. The title of the dialog varies depending on the way it is invoked. Depending on the
content, the element Selection dialog is used for selecting an element, diagram, or owner.
You can perform the following actions in the element Selection dialog:
Search for an element in List or Tree views.
Search for an element using various search modes.
Select single or multiple elements.
Create an element.
Tree view The following commands helps to manipulate in the Tree view:
There are four search modes available to help to find the required element in the Tree or List views.
Click the Element creation mode button . The Create and Clone buttons will appear.
NOTE The undo of the action done in the Select Element dialog will be active
only after closing the dialog.
TIP! You may customize the list of appearing element types using DSL
categorization. Further information about DSL customization can be
found in the UML Profiling and DSL UserGuide.pdf
1. Click the Multiple Selection button. The block for the multiple selection in the element
Selection dialog will open.
2. Select one or more elements at a time by holding the Control or Shift keys.
Click the Single Selection button. The first element that is in the multiple
selection list will be selected in the Tree view.
NOTE In the event more than one element is selected in the tree or in the list
in the multi selection mode, the selection will be reduced to one
element (the first one based on alphabetical order), when switching to
the single selection mode.
Add Adds the selected element(s) to the elements multiple selection list.
TIP! You can also perform this action by double-clicking an element.
Add Recursively Adds all the elements owned by selected element and by the elements
owned by the selected element and so forth, to the elements multiple
selection list.
Remove Removes selected elements from the elements multiple selection list.
TIP! You can also perform this action by double-clicking an element.
Remove All Removes all the elements form the elements multiple selection list.
Up Moves up per one item the selected element in the elements multiple
selection list.
Down Moves down per one item the selected element in the elements
multiple selection list.
Refactoring
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.
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, the source will be replaced with a 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.
1. In the element shortcut menu, select Refactor and then Replace With.
2. In the element Selection dialog, select the element with which you want to replace. More
information about element Selection dialog, see section Selecting an Element on page 281.
See an example in the Figure 160 on page 285 and Figure 161 on page 286. In the Figure 160 on page 285
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 161 on
page 286).
Figure 161 -- Model after the User class has been replaced with the Customer class
The Generic Numbering Mechanism feature description is organized in two sections. Section "Working with
Generic Numbering Mechanism" on page 287 describes how to number elements, apply numbering formats,
and modify numbers. Section "Element Numbering dialog" on page 291 explains GUI elements, used while
numbering elements.
Before stating to describe the generic numbering mechanism, get acquainted with used concepts that are
presented in the following section.
Concepts
Numbering customization
A customization class which specifies element types that will be numbered, numbering format
that will be used to number elements, and the property to which the created number will be
assigned. The numbering format should be defined prior to numbering elements. Usually the
system administrator creates the numbering customization.
Numbering property
Indicates an element property wherein the element number will be stored and defines a
numbering scheme that will be used for the element numbering.
Numbering scheme
A set of rules describing what numbering formats will be applied on the concrete elements.
Numbering scheme is defined while creating the numbering customization.
Prefix
An affix which is placed before the element number.
Separator
A symbol which is used to separate of the different level numbers. Separator is defined in the
numbering scheme.
For information on how to create the numbering formats (schemes), see Creating numbering customizations
in MagicDraw UMLProfiling&DSL UserGuide.pdf.
Automatic numbering
With an automatic numbering feature, you can number the elements of the selected type upon the element
creation or modification. You can specify the number display location after the elements are numbered.
1. From the MagicDraw main menu, select Options > Project. The Project Options dialog
opens.
2. Select the General project options tab.
3. In the Numbering properties group, set the Use Element Auto-numbering property value to
true.
4. Click OK.
NOTE You can edit automatically applied element numbers. For information
about editing element numbers, see "Manual numbering" on
page 288.
Related references
Element Numbering dialog
Related procedures
Manual numbering
Manual numbering
1. On the selected elements shortcut menu, click Element Numbering. The Element
Numbering dialog opens.
2. In the element list on the right side of the dialog, select an element you want to number.
3. Click Create.
1. Open the selected elements shortcut menu and click Element Numbering. The Element
Numbering dialog opens.
NOTE You can enter only the number, if the selected elements numbering
value is numerical.
You can enter only a new literal symbol, if the selected elements
numbering value is a literal symbol.
4. Click OK.
1. Open the selected elements shortcut menu and click Element Numbering. The Element
Numbering dialog opens.
2. Select the element from which you want to remove the number and click the Remove button.
3. You can select either to remove the number only from the selected element or to remove
numbers from all elements owned by the selected elements. Do one of the following:
Click the Remove button. Only the selected elements number is removed.
Click the Remove All button. Numbers are removed from the selected element and
all elements owned by the selected element.
4. Click OK when you are done.
1. Open the selected elements shortcut menu and click Element Numbering. The Element
Numbering dialog opens.
2. Select the element which number you want to increase.
3. Click the Increase button. The element number is increased by one.
4. Click OK when you are done.
1. Open the selected elements shortcut menu and select Element Numbering. The Element
Numbering dialog opens.
2. Select the element which number you want to decrease.
3. Click the Decrease button. The element number is decreased by one.
1. On the selected elements shortcut menu, click Element Numbering. The Element
Numbering dialog opens.
2. You can select either to renumber only elements listed in the element list or to renumber
elements listed in the element list including their owning elements. Do one of the following:
Click the Renumber button. All the elements in the elements list are renumbered
successively.
Click the Renumber All button. All the elements and elements owned by the
selected element are renumbered successively.
3. Click OK when you are done.
1. On the element owners shortcut menu, select Element Numbering. The Element Numbering
dialog opens.
2. In the Prefix column, click the appropriate cell (according to the used numbering property and
numbering scheme).
3. Type the prefix. It can be any symbol.
4. Click OK.
The following example illustrates how numbers with prefixes and without prefixes are depicted on the element
shape.
1. Open the element owners shortcut menu and click Element Numbering. The Element
Numbering dialog opens.
2. In the Separator column, click the appropriate cell (according to the used numbering property
and numbering scheme).
3. Type the separator symbol.
4. Click OK.
1. On the selected elements shortcut menu, click Element Numbering. The Element
Numbering dialog opens.
2. In the appropriate Numbered property row, click the Numbering Scheme cell to open the list
of the defined numbering schemes.
3. Select the desired numbering scheme in that list.
4. Click OK.
NOTE When you change the numbering scheme for the selected element,
the new numbering scheme is applied to all elements owned by the
selected element.
The following example illustrates how numbers are depicted on the element shape after changing the
numbering scheme from numerical to literal.
Related references
Element Numbering dialog
Related concepts
Numbering customization
Numbering property
Numbering scheme
Prefix
Separator
NOTE Numbering changes you make for the selected element will by applied
to all elements owned by the selected element.
Your model is represented in the Model browser on the left side of the dialog. If the element of the type that is
selected in the Element Type list is selected in the Model browser, owned elements are listed on the right side
of the dialog.
In the Element Type list you can select which type of elements you want to number. The selected element type
numbered property, separator, prefix, and numbering scheme are displayed in the numbering properties list.
For more information on numbering properties, see Creating your first numbering customization in
MagicDraw UMLProfiling&DSL UserGuide.pdf.
NOTE You can have several numbering schemes defined for one type of
elements. All defined numbering schemes for the selected element
type are displayed in the numbered properties list.
The Element Numbering dialog buttons are described in the following table:
Button Description
Edit Click to change the numbering symbol for the selected element. The button is
available, when the selected element has a number and the element is editable.
Create / Remove The Create button is available, if a selected element in the element list is not
numbered. Click the Create button to number the selected element. A unique
successive number will be created for the selected element.
The Remove button is available, if a selected element in the element list is
numbered and editable. This button has two options:
Click Remove to delete the selected elements number.
Click Remove All. Numbers are removed from the selected element and all
elements owned by the selected element
Increase Click to increase an element number.
The button is available, if the selected element is numbered and editable.
The elements place in the list changes after increasing the number.
Decrease Click to decrease an element number.
The button is available, if the element is editable, is numbered, and that number
is not the first one.
The elements place in the list changes after decreasing the number.
Renumber This button has two options:
Click Renumber to update the element numbers. The numbering is updated for
all elements in the list.
Click Renumber All to update all element numbers recursively. The numbering
is updated for all elements in the element list, including their owning elements.
Related procedures
Automatic numbering
Manual numbering
Related concepts
Numbering customization
Numbering property
Numbering scheme
Prefix
Separator
HTML Editor
MagicDraw has been enhanced with a new HTML editor to edit HTML text. The new editor improves text
editing capability and usability and allows you to preserve the text format when copying formatted text.
Select a shape and click Switch To HTML Text that appears on the lower-left corner of the
shape.
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) buttons on the
diagram pallet.
Click the text area on the selected shape or start typing letters to open the HTML editor toolbar. For more
information about the toolbar buttons, see "HTML editor toolbar" on page 300.
You can write HTML text in various dialogs. To start doing this, you have to turn on the HTML mode first.
Figure 164 -- HTML editor toolbar in Documentation/Hyperlinks tab of element Specification window
Figure 166 -- HTML editor toolbar in Tags tab of element Specification window when editing tag value
You can also use the HTML editor toolbar, when editing a tagged value directly on the elements shape.
1. Click the tagged value on the elements shape as it is shown in the following picture.
2. Click the tagged value once again. The HTML mode will be turned on and the HTML editor
toolbar will open for editing this tagged value.
Button Description
Advanced Edit text with advanced HTML editor. The Advanced
HTML Editor HTML Editor dialog opens.
Click the Advanced HTML Editor button on the HTML editor toolbar.
NOTE For the information how to turn on the HTML editor, see the procedure
"To turn on the HTML mode in a dialog" on page 294.
In the Advanced HTML Editor dialog you can change the text style, insert symbols, images, and tables, as
well as perform other actions using buttons.
2. In the Insert Image Location dialog, specify the image URL. Do one of the following:
Type the path to the image location.
IMPORTANT! If you are working on a Teamwork project, make sure that the path to
the image location is accessible from any computer with the Internet.
Otherwise the image will not be displayed, when the project is
opened on another computer.
3. Click OK when you are done. The image will be inserted into HTML text.
Select Copy Element URL from the element shortcut menu in the Containment tree to copy
the URL to a model element.
or
Select the element symbol in a diagram and click Edit > Copy Element URL on the main
menu to copy the URL to element symbol.
You can open any elements through their URLs by clicking the Open Element from URL command and the
element will be highlighted in the Containment tree or in the diagram. Custom URL "mdel://" is registered into
windows registry. Activating the URL in other applications will allow you to start MagicDraw, open the project (if
possible), and select any elements. You can paste URLs from the clipboard to any MagicDraw diagrams.
Hyperlinks also can hold URLs of any model elements.
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.
"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" - enables running one of the predefined transformations to
convert the given model part into another model according to the rules of that transformation.
Transformations are usually used for converting models between different modeling domains,
for example, UML and SQL.
"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.
Model Merge
View Online Model Merge
Demo
Definitions
Name Definition
Model Merge 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 2-way merge is a simple merge, which compares two projects and joins them into
one.
3-way merge 3-way merge does not only compare and merge two projects into one project, but it
also considers the common ancestor of both projects.
Contributor Participants of 2-way and 3-way merges are called contributors.
Ancestor Ancestor is the common parent project for two projects.
Target, Source 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.
Conflict 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 328.
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.
Merge functionality in MagicDraw works both on projects stored in MagicDraw Teamwork Server or files.
1. Select Project Merge from the Tools main menu. The Merge Projects dialog box opens.
2. 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 deter-
mined automatically. For more information about the Optimize for option, see Controlling
Merge memory usage on page 352.
3. The Merge window appears, to let the user accept or reject the changes and resolve the con-
flicts that occurred in both contributors (e.g. when the same class is edited in both contributors).
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.
See Figure 170 on page 305, 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.
2-way merge
2-way merging is a specific case of 3-way merging. This type of merging is usually used in a non-teamwork
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 171 on page 306, 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.
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 326.
These case studies show how merging is performed by accepting or rejecting changes and resolving con-
flicts.Inventory Control System.mdzip project will be used to show basic merge functionality. You can find this
project file in the <MagicDraw installation folder>/samples/case studies.
The usage scenario 1 presents step-by-step instructions for merging projects and analyzing results.
The model merge functionality in MagicDraw works for both - local projects and projects stored in MagicDraw
Teamwork Server. This usage scenario presents model merge of the locally stored projects. For information
about how merging is performed in Teamwork, see Usage scenario 2 - Merging in Collaboration System on
page 310.
In this usage scenario 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.
Figure 172 -- Changes made by User1 in the Inventory Control System.mdzip project
Figure 173 -- Changes made by User2 in the Inventory Control System.mdzip project
3. In the Source group, click the ... button and select the Inventory Control System.mdzip project,
which includes the changes made by User2.
4. In the Ancestor group, click the ... button and select the original Inventory Control System.mdzip
project that contains no changes.
5. Click Merge.
NOTE 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 3-way merge, see the Intro-
duction to Merging on page 304.
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.
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.
Figure 175 -- The Merged Result tree - the Customer Group class is added in the Static View package
Confirm the changes made to the target by clicking the Finish Merging button. The changes in the source proj-
ect will be copied to the target project. In this example, the Customer Group class is added and the Shipment
class is renamed as Delivery (see Figure 176 on page 310).
This usage scenario shows how simple changes can be copied from the release branch to the main develop-
ment branch when User1 and User2 are working on the same project in Collaboration Environment.
1. In the Collaborate menu, click Projects. The Edit Projects dialog opens.
2. Select the Inventory Control System project and click the Versions button. The Project Ver-
sions dialog opens.
3. 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.
Figure 179 -- The Inventory Control System project versions with created Release 1.0 branch
For more information about branching in Teamwork, see Project branching in Teamwork in MagicDraw
Teamwork UserGuide.pdf.
3. Expand the 1st node and select the Release 1.0 branch
Figure 183 -- The Select Teamwork Project dialog with selected branch from which we are going to copy changes
4. Click Merge. The Merge window opens in which you may review differences and complete the
merge procedure.
In the Merge Result tree, expand the Static View node and you can see that Customer Group class has been
added to the package and the Top Level class diagram has modification changes (see Figure 184 on
page 315).
Figure 184 -- Usage scenario 2 - the Merge window, Merge Result tree
Figure 185 -- 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 330.
Usage scenario 3 - Copying changes from the branch to Trunk (in Teamwork) with
conflict resolution
This usage scenario 3 analyzes how conflicts are resolved during the merging process.
User 1 actions before merging: add the Inventory Control System.mdzip project to the Teamwork Server and
modify it
1. Rename the Customer class as Client class (see Figure 186 on page 317). The Customer class
is located on Top Level class diagram, in the Static View package.
User 2 actions before merging: create a branch of the Inventory Control System project
3. From the Teamwork menu, select Projects. The Edit Projects dialog box opens.
4. Select the Inventory Control System project and click the Versions button. The Project Ver-
sions dialog box opens.
5. 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.
3. Commit changes.
User1 actions: merge changes from the latest version of the project branch to the current active project
1. From the Collaborate menu, choose Merge From. The Select Teamwork Project dialog
opens.
Figure 191 -- Usage scenario 3 - the Select Teamwork Project dialog box
2. The merge engine automatically accepts all non-conflicting changes from the source and tar-
get 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. Navigate to the automatically accepted conflicting changes from the target project:
3.1In the quick navigation toolbar, click the Go To Next Conflict button.
Figure 193 -- Usage scenario 3 - the Merge window, the Go To Next Conflict button
3.2The element that has conflicts (the Customer class) is selected (see Figure 194 on
page 323). 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.
Figure 194 -- Usage scenario 3 - the Merge window, Customer class is selected in the Merged Results tree
Figure 195 -- The Merge window, Specification panel with invoked shortcut menuAccept the class name modification
from the source project by selecting the Accept shortcut menu item. The name modification from the source project is
accepted.
User1 has successfully resolved conflicting changes and merged them into the target project. The Customer
class is renamed to Customer Group (see Figure 196 on page 324)
Model elements and their properties are displayed and merged using DSL rules, specified as MagicDraw DSL
customization artifacts.
This usage scenario represents how User Interface Modeling diagram (a good DSL example) elements are rep-
resented in the Merge window.
The user changes the source project, located in the <MagicDraw installation directory>\samples\diagrams\User
Interface Modeling\UI Modeling in System Development.mdzip in the following way:
1. In the model Browser, select the folowing element: Data::Implementation::GUI Prototypes::Stu-
dentProfile::Profile::Group Box::Available Tests::<>List (see Figure 197 on page 325). Open
the <>List Specification window and change the value for Horizontal Scroll Bar property to
Always (see Figure 198 on page 325).
Figure 198 -- Changing the value for the element with the List stereotype
The merge results are displayed in the Merge window (see DSL elements representation in the Merge window).
You can see that DSL elements in the Merge window are represented in the same way as ordinary UML ele-
ments (and they are treated as first-class UML elements):
In the Merged Results tree, elements are displayed with icons assigned to the corresponding
stereotype. In this example, the icon of the List stereotype is displayed in the Containment
tree for the elements stereotyped by it.
In the Specification pane, title of the element matches title of the DSL element
In the Change details pane, element changes together with dependencies and conflicts with other changes
are represented as a change tree.
A change is a difference, found between the ancestor and participant of the 2-way or 3-way merge. For exam-
ple, 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 326.
Each change can be accepted or rejected and have dependent changes. See Accepting or Rejecting changes
on page 327 for the details. Dependent changes are described in Dependent changes on page 327.
Changes can conflict with each other. See Conflicting changes on page 328.
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 335.
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.
For more information about modification change, see Elements with modified properties on page 337.
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 335.
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 336.
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 330.
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 depen-
dent 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 cre-
ated 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.
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),
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 200 on page 328.
Figure 200 -- 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.
For more information about the representation of the conflicting changes, see Analyzing Merging Results on
page 330.
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.
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 201 on page 329).
Change c1 and c2 are dependent on each other and change c2 depends on change c3. This situation is
depicted in Figure 202 on page 329.
Figure 202 -- Sample of the changes in the module mount table - dependencies
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"
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.
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.
Figure 205 -- Buttons to manage the Change details and the Specification panels in the Merge window
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 the
following screenshots.
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.
For information about managing diagram tabs, see Viewing changes in diagrams on page 344.
The merged result tree combines both containment and change trees. The following types of changes are dis-
played in the merged result tree:
1. Addition changes on page 335
2. Deletion changes on page 335
3. Move changes on page 335
4. Order changes on page 336
5. Elements with modified properties on page 337
6. Elements with changed inner elements on page 337.
Modification changes are displayed in the element properties panel other changes are displayed 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).
For more information about accepted/rejected changes, see Accepting or Rejecting changes on page 327.
Changes that have conflicts are additionally decorated with icons showed in the table bellow. Parents of con-
flicting elements have conflict decorations too.
(yellow diamond on
the left-bottom cor-
ner 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 ele-
ments are highlighted with green color (see Figure 210 on page 335).
Deletion changes
Deletion changes occur when elements are deleted in the contributors. Deletion changes are highlighted with
grey color (see Figure 211 on page 335).
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 pack-
age B. The illustration shows the initial situation when where the move change is accepted and element X is
owned by package B.
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 213 on page 336 and Figure 214 on page 336).
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 accept-
ing the change, all elements in the collection is reordered so that it would be the same as in one of the contrib-
utors the change occurred.
An element can have several ordered collections. This means several order changes can occur for a single ele-
ment. Changes in the element will be highlighted using the same blue color that is used to highlight modification
changes.
Modification changes occur when element properties changed in the contributors. Elements whose properties
changed are highlighted in blue.
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.
Figure 218 -- Element X with changed inner elements Y and attribute and modification change
The toolbar for displaying and navigating through changes is located at the top of the Merge window. See the
highlighted area in Figure 219 on page 337.
The toolbar buttons are used to navigate through the Merged Result tree and the Specification panel:
The toolbar located above the merged result tree is used for accepting and rejecting changes.
Accepting/Rejecting Scope drop-down box is devoted for choosing the contributors from which changes shall
be accepted/rejected when using accepting/rejecting buttons and menu items.
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 327.
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.
Press the Summary/Legend button at the top of the change legend to hide or show the summary panel.
Lets analyze the quick navigation through the automatically accepted conflicting changes in the Merge window
(see Figure 222 on page 341).
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 222 on
page 341).
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 223 on
page 342).
In the first column of the Specification panel, property titles are listed. The Source, Ancestor and Target col-
umns display corresponding change properties from both contributors and the ancestor.
Changed properties have blue background. For example, Figure 223 on page 342 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 224 on page 342).
Figure 224 -- Displaying changes in the specification panel - value addition and deletion from a property
Figure 225 -- Navigating from the Specification panel to the Merged Result tree
You can also navigate to the Merged Result tree by invoking shortcut menu from the column cell, which refer-
ences other elements. The Select in Merged Result Tree command has submenu items corresponding to the
referenced elements for the selected cell.
Figure 226 -- Navigating from the Specification panel to the Merged Result tree
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
The Source changes and Target changes nodes display changes occurred in the source or target respec-
tively. If several nodes in the merged result tree are selected, then all changes occurred in the nodes are dis-
played in the 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 228 on page 344). To unfreeze
the Change details panel, press the Lock contents of this panel button again.
Figure 228 -- The Lock contents of this panel button in the Change details panel
The table bellow lists the commands of the shortcut menu, which is available in the Merged Result tree and
Change details panel.
The merge window has functionality to open merged diagrams from the source, ancestor, and target projects in
separate tabs.
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 229 on
page 345).
You can switch between Merged Result window and diagram windows, by pressing tabs at the top of the
Merge window.
In opened diagrams changed diagram areas are highlighted with dashed blue background (see Figure 230 on
page 346).
Using the buttons located at the bottom of the diagram viewer tab (see Figure 231 on page 347) 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.
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 232 on page 348 and in Figure 233 on page 349. 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 changes were made for the class and
they are detected in the diagram difference viewer in order to merge them correctly.
Figure 232 -- The diagram difference viewer window, displaying symbol properties changes in the Target diagram
Figure 233 -- The diagram difference viewer window, displaying symbol properties changes in the Source diagram
To finish the merge, in the Merge window, click the Finish Merging button. The question dialog box appears
(see Figure 234 on page 349).
After pressing Yes in the Confirm Changes dialog box, project changes to the target project is confirmed.
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.
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 235
on page 350.
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 237 on page 352). For
more information, see Validation on page 459.
Figure 235 -- The Merge window, the Annotate Merged Diagram button
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.
Pattern Wizard
In MagicDraw, you can find various GOF, Java, Junit, CORBA IDL, and XML Schema design patterns.
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.
Select Tools from the class shortcut menu and then select the Apply Pattern subcommand.
The Pattern Wizard has three main collections of customizable options, which are represented by the hierar-
chy tree on the left side of the dialog box:
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.
From the shortcut menu of the selected class, select Tools, and then select Create Setters/
Getters. The Select Attributes/Association Ends dialog box opens.
Add a tagged value "getter/setter for attribute=attribute_name" to the selected class.
Box Function
All Contains names of all attributes defined within the selected class.
Selected Contains the selected attributes.
Box Function
> Moves the selected attribute from the All list to the Selected list. Setter for that attri-
bute 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.
Prefix to Type a prefix of an attribute (-, .) you want to remove while generating setters or get-
Remove ters.
Create Setters Generates setters for the selected attributes.
Create Getters Generates getters for the selected attributes.
Prefix for Select a prefix for the generated setter (operation). Possible choices: set or Set.
Setter
Prefix for Select a prefix for the generated getter (operation). Possible choices: get;is, Get;Is;
Getter get, or Get.
NOTE Get is used for every getter, is is used if the type of an attribute is set
as Boolean.
OK Generates setters and/or getters for attributes that are in the Selected Items list.
Cancel Exits the dialog box without any changes.
Help 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 ();
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.
From the shortcut menu of the selected class, select Tools. Then, select Implement/Override Operations.
The Select Operations to Implement/Override dialog box opens.
Box Function
All Contains names of all operations defined within the selected class.
Selected 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.
OK Generates operations that are in the Selected list.
Cancel Exits the dialog box without any changes.
Help Displays the MagicDraw Help.
TIP! Double-click the item name and it will be moved to the opposite list.
The Model Transformation Wizard enables running one of the predefined transformations. When using this wiz-
ard to run a chosen transformation, you have to perform the following steps:
1. Choose a transformation type.
2. Specify both the transformation source model (or a part of it) and destination package.
3. Select a type map.
4. Set custom transformation properties.
Each transformation converts the chosen model part into another model according to the rules of this transfor-
mation. Transformations are usually used for converting models between different modeling domains, e.g.,
UML and SQL.
All transformations follow a similar approach. They take a part of a model as the transformation source and
copy it to the destination model, establishing traces between the transformation source and target elements.
Then each transformation performs the specific model reorganizations, which are necessary for each transfor-
mation type according to the transformation options specified by the user in the transformation wizard. Trans-
formation can also be performed in-place, i.e., the source model is not copied to the destination model, but
transformation works directly on it instead.
Transformations also perform the so-called type remapping. During the transformation between the different
modeling domains, such as UML and SQL, it is necessary to go through the data types used in the source
model and change the types from the source domain into the equivalent types in the target domain, for exam-
ple, changing String type usages in the UML model into the varchar type usages in the SQL model.
Available Transformations
Transformations are usually used for converting models between different modeling domains. Transformations
are named by the types of their source models and their destination models. These are the available transfor-
mations:
Any to Any. This transformation copies all your model or part of it to another package without
making any changes. You can also remap types in the destination model by applying some
type mapping rules.
Profile Migration. Helper transformation for migrating models using one profile to models
using another profile (usually - between different versions of the same profile - old and new)..
NOTE UML to SQL(Generic/Oracle), SQL to UML, UML to XML Schema, XML
Schema to UML transformations are available with the separately-installed
Cameo Data Modeler plugin (which comes free of charge with MagicDraw
Architect and Enterprise Editions and is separately purchseable for
MagicDraw Standard and Professional editions).
Do either:
From the Tools menu, choose Model Transformations.
Right-click one or more packages and select Tools > Transform.
In the first step of the Model Transformation Wizard, a list of the available transformation types is displayed.
The following operations are available in the Select transformation type window:
Button Function
Next > Proceed to the next step (in this case, Select source/destination).
Cancel Cancel the wizard.
Help Display the MagicDraw Help.
In the second step of the wizard, the Transformation Source tree displays all project data, i.e. the packages
and their inner elements, that can be selected as a transformation source. Transformation will take the selected
elements as input data.
Select the Place transformation model in package option button to specify the package into which the
source will be transformed. Click the ... button to display the Destination Package dialog. 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 model to be edited.
IMPORTANT! If you choose the in-place transformation, the model part selected as the
transformation source, will be edited directly, and you will not retain your
original model. So, please, be careful with this option.
If you choose the destination package, the source model will be copied to it
and the transformation will be performed on this copy. Hence you will retain
your source model and get a resulting model and traces will be established
between elements in these model parts.
Button Function
< Back Return to the previous dialog box.
Next > Proceed to the next step (in this case, Select type mappings).
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.
The third step in the wizard allows for selecting a type map that will be applied during the transformation. Usu-
ally transformation has and brings in some predefined type map, but if you want, you can specify another type
map.
A type map can be regarded as a collection of rules of the form Replace the usage of type X in the module with
the usage of type Y.
A type map is a model object, i.e. a package with a collection of dependencies (for the details about modeling
type maps, see section Transformation Type Mapping on page 368), hence all model manipulation operations
can be performed on it. In particular, it can be refactored into a module and mounted into any project, which
needs it. It can be a simple package in your project as well, if you need a custom, one-off type map. A pre-
defined type map can be taken from the MagicDraw module and edited.
To see a list of the type maps available in your model, click the down arrow in the Transformation type map
combo box. These type maps specify the mapping rules that will be applied to the model during the transforma-
tion.
When you select a particular map, its contents are displayed in a table below. Each row in the table is a rule to
remap one particular type to another. The From type and To type columns in the table show the source and
target types.
The Run type mapping in reverse order check box creates the opposite type mapping. Type maps can be
bidirectional, e.g., the same type map is reused both in the UML to XML schema and XML schema to UML
transformations. This checkbox governs the direction in which the type map should be used.
The following operations are available in the Select type mapping window:
Button Function
< Back Return to the previous dialog box.
Next > Proceed to the next step (in this case, Specify transformation details).
NOTE: This button is disabled during the Any to Any transformations.
Finish Finish the configuration of the transformation. The Model Transformations Wiz-
ard exits and the transformation results appear in the project.
The Transformation Details table displays the various properties of a specific transformation, selected in the
first step of the Model Transformation Wizard. Each transformation type has its own set of options, which
govern functionality of that transformation.
To change the transformation properties to the default values, click Reset to Defaults.
The following operations are available in the Specify transformation details window:
Button Function
< Back Return to the previous dialog box.
Finish Finish the transformation configuration. The Model Transformations Wizard
exits and the transformation results appear in the project.
A type map can be regarded as a collection of rules of the form Replace the usage of type X with the usage of
type Y. A type map is created by modeling means and is a model object, hence all model manipulation opera-
tions can be performed on it. In particular - it can be refactored into a module and mounted into any project, that
needs it. It can be a simple package in your project as well, if you need a custom, one-off type map. Predefined
type map can be taken from the MagicDraw module and edited.
A type map is a stereotyped package, holding a collection of stereotyped dependencies. Stereotypes for build-
ing type maps are stored in the Model Transformation Profile.
In the example above, after the transformation, all int types will be transformed to char.
Each of the thus created dependencies represents one type remapping rule. The package represents the com-
plete type map.
Type mapping rule behavior can be further customized by setting various tags on the rules (see Controlling
Type Mapping Rule Behavior on page 370).
NOTE Transitive type mapping (of the form type1->type2->type3) is not supported.
Controlling direction
By default, the same type map can be applied in two directions: forward and backward. The backward direction
can be set by selecting the Run type mapping in reverse order check box in the third step of the Model
Transformation Wizard. This is useful, when there are two related opposite transformations for some domain;
for example, the same type map is used for both UML to XML schema and XML schema to UML transforma-
tions.
If you want to limit the directions, in which type map can be used, you can set the defaultDirection tag for your
type map package. Possible values are forward, reverse, and both (default).
The direction can also be limited on a per-rule basis. This is controlled by setting the direction tag on the type
map dependency. Then the mapping rule is excluded from the rule set when the type map is run in a different
direction than specified for this rule.
There can be multiple mapping rules for the same source type. For example, String -> varchar and String ->
nvarchar. In this case, one of the rules must be marked as default by setting the default tag value on it to true.
IMPORTANT! The type map having several rules for the same type and without any
one set as default cannot be used.
During the initial transformation, only the default rules for each source type come into play. E.g., if the user has
a property with the String type, this will be transformed to property having the varchar type set.
However, during the transformation update, all rules come into play. If the destination type is one of the accept-
able types according to the map, it is not changed. Otherwise it is replaced with the default mapping.
Regarding the example above, lets say that after the initial transformation, the user changes the type of the
property in the destination model from varchar to nvarchar (as a post-transformation refinement process). If the
user now runs a transformation update, this change will not be overwritten, since nvarchar is an acceptable
type as there is a String -> nvarchar mapping in the type map as well. If on the other hand the user sets the type
of this property to number, this would be reset the during transformation update, and the type will be forced
back to varchar, as there is no String -> number mapping.
You can also control mapping behavior for the type inheritance. 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 blockIn-
heritedSourceTypes tagged value is set, derived types are not affected by this rule. Lets review the following
example:
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.
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 effec-
tive on the transformation updates, the second (and successive) reapplications of the transformation. By
default, derived subtypes in the destination model are not overwritten, since they are considered suitable sub-
stitutes of their parent. Lets review the following example:
Here T1 is a type in the source domain, while T2 and T4 are types in the destination domain. Given this map-
ping (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 by 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. The essence
is that 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>.
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. After-
wards the user refines the destination model, changing the attribute type from T2 to T4. If the user now updates
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 tag mandates that this map-
ping is not used in the reverse direction).
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.
The special type AnyDestinationType is a template that matches any type in the destination model (see map-
ping rules for type inheritance).
According to this rule, any types in the source model for which there are no other mapping rules should be
stripped in the destination model.
Type modifiers
Type mapping rules can also affect type modifiers during the type replacement. Type modifier is a small string,
which modifies type usage in the typed element. They are used, for example, for specifying arrays during the
modeling (e.g., property type = char and type modifier = [30] gives property:char[30]). Type modifiers are exten-
sively used in SQL models for specifying number field widths and varchar field lengths. For example,
phone:varchar(100), where varchar is a type of phone property and (100) is a type modifier.
Each type mapping rule can carry a triple <modifier, regexp, replacementregexp> for setting type modifiers dur-
ing the type replacement. These are specified in the tags on the mapping rule <forwardTypeModifier, for-
wardTypeModifierRegexp, forwardTypeModifierRegexpReplace> triple for controlling modifiers during the
forward application of type map and correspondingly the <reverseTypeModifier, reverseTypeModifier-
Regexp, reverseTypeModifierRegexpReplace> triple for controlling modifiers during reverse application of
type map.
Any of the components of the triple can be missing, i.e., not specified.
If no tags are specified, then type modifiers are not changed during the type remapping operation (whatever
modifier was in the source model, it will be copied into the target model)
If just the modifier is specified for the mapping rule, then modifiers are set during the application of this type
rule. This can be used for setting the fixed type modifiers. For example, mapping boolean in the UML model to
number(1) in the SQL models (in this case the modifier=(1) is used in the type map).
If all three are specified, a modifier, regexp, and regexp replacement, modifier remapping is performed as fol-
lows: during the transformation, the existing type modifier is matched against the given regexp. If it does not
match, the type modifier is overwritten with the value, specified in the modifier field of the rule. If it does match
regexp, the replacement is run on the match result and produces a type modifier to be set as a result. This
allows quite complex rules to be written and executed, however this mandates good knowledge of regexp.
Lets review the following live example: in the char -> varchar type mapping rule for the UML to SQL transfor-
mation, the following triple can be used: modifier="(255)", modifierRegexp="^[\(\[]([0-9]*)[\)\]]$", and modifier-
RegexpReplace="($1)". This causes the char[20] type usages (type=char, modifier=[20]) in the source be
changed to varchar(20); char (without modifier) would be remapped to varchar(255).
If regexp replacement is not specified, it is treated as if $0 was specified: the type modifier is copied from the
source, if it does match the regexp.
Trace information can be used for navigating between the model layers. This is done with the traceability fea-
tures of MagicDraw. To navigate in the forward direction, i.e., from the transformation source model element to
the destination model element, right-click that element and choose Go To > Traceability > Model Transfor-
mations > Transformed To > <element>. To navigate in the backward direction, i.e., from the transformation
destination model element to the source model element, right-click that element and choose Go To > Trace-
ability > Model Transformations > Transformed From > <element>.
Traceability information is also visible in the elements Specification window, the Traceability tab; in the Prop-
erties panel, Traceability tab; it can also be depicted in the Relation Map diagram or in the custom depen-
dency matrix.
Traces can be used for running the transformation update. The transformation update reapplies the transforma-
tion with the same source and target for the purpose of carrying additional changes from the source (which
occurred after transformation was made) into the destination.
During the transformation update, presence of unmapped model elements in the source model indicates that
these are newly added elements. Usual rules and the same behavior for the transformation are used for these
elements as if this were the first application of the transformation.
During the transformation update, if model elements already contain mapping, and the source and destination
does not match, the question arises - which properties to use. This is fundamental problem for all updating
operations. The general solution is to have some kind of merge between the source and target. But merge is
clumsy and expensive. MagicDraw implements a simplistic approach meaning that during the transformation
update a user can choose, wherever he/she wants thesource model element properties to win (destination
model element properties are overwritten) or wherever he/she wants the destination model properties to win
(destination model properties are not changed).
Right-click the destination package and select Tools > Update Transformed Model.
The Change destination properties according to source option causes overwriting of element properties in
the destination model with properties from the source model (only for the elements connected with mapping
dependencies).
The Leave destination properties intact option leaves the destination model properties unchanged but differ-
ent from the source model, in other words retains changes made to the destination model while it ignores
changes made to the source model.
NOTE If new elements are added to the source, once the update occurs, cop-
ies 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 des-
tination after the update.
To create mapping rules you need to create Dependency relationship between elements you want to transform.
Mapping rules can be created (dependency relationship can be created) between the following elements:
1. Stereotypes
2. Tags
3. Types
This type of transformation is used to replace Stereotype. To create Stereotype transformation mapping rule:
1. Create Dependency relationship between Stereotypes which you want to transform.
2. Apply ReplaceStereotype stereotype to Dependency.
3. Perform transformation.
Tag values of old stereotype are preserved when tag name and type of tag value is the same. For tag values
with different names create mapping rule for tag transformation.
This type of transformation is used to replace Tag (when tag names differs). For example, source stereotype
has author Tag and target stereotype has name Tag.
NOTE To create mapping rule correctly, you have to create Dependency rela-
tionship not only between Tags, but also between Stereotypes of these
tags (see mapping between stereotypes, which is described above).
This type of transformation is used to replace type. For example, to replace type of Attribute.
Do either:
From the Tools menu, choose Model Transformations.
NOTE The Next step is disabled in the wizard, if there are no mapping defined.
This sample describes step-by-step instructions how to create profile migration mapping rules and perform
transformation. In this sample we will change one stereotype to other.
1. Create Book stereotype with Class metaclass.
2. Create your model, for example, create Source package with Source Class diagram. Draw
Sample Class and apply Book stereotype.
To change Book stereotype to other, for example to Magazine stereotype, you have to create
profile migration transformation mapping rules. Follow next steps for creating mapping.
3. Create stereotype Magazine with Class metaclass.
4. From the Magazine stereotype to Book stereotype draw Dependency relationship.
5. To the Dependency relationship apply ReplaceStereotype stereotype (see Figure 1).
Profile Migration transformation mapping rule is created. Now you can start transformation.
6. To start transformation select Model Transformations from the Tools menu. The Model
Transformation Wizard will open.
7. Select the Profile Migration transformation and click Next.
8. Select the Source package in the Select source/destination step (Figure 3). Click Next.
9. The From and To fields display the mappings of the selected transformation profile in the
Check mappings step (Figure 4). Click Finish.
After this transformation stereotype of Sample Class will be changed to Magazine stereotype.
For more information about Model Transformation Wizard, see Working with Model Transformation Wizard on
page 363.
Figure 249 -- The Model Transformation Wizard, the Select transformation type step
Figure 250 -- The Model Transformation Wizard, the Select source/destination step
Figure 251 -- The Model Transformation Wizard, the Check mappings step
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, Lan-
guage resources, Case studies/examples, Custom diagrams, and others).
RM allows:
Review
Remove (delete)
Import, download
Update resources.
Benefits:
Easier to find needed resources and download them.
The Resource Manager functionality is included in all MagicDraw editions, except, Reader.
From the Help main menu, select the Resource/Plugin Manager command. The Resource /
Plugin Manager window opens.
Ver Obtained The Version Obtained column indicates the version for a resources
and the state: installed, not installed, and removed.
Ver Available 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 Resource creation date.
Size Size of the particular resource.
Meaning of text One row lists the meanings of the text colors:
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 addi-
tional 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 The Check for Updates button is inactive if the resource list has
already been successfully downloaded.
Download/Install Downloads the selected resources and installs. The Download/Install
button is inactive if no resources have been selected.
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.
Import The Open dialog is opened. Import the resource you need.
NOTE If the resource requires payment, the Price of the particular resource is
displayed in the Resource Manager window under the Price column.
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 382).
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 384).
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 388).
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 390).
Right-click on underlined word to invoke the shortcut menu in the following MagicDraw window locations:
1. Diagram pane (see Figure 252 on page 382).
2. Containment tree (see Figure 253 on page 383).
3. Dialog boxes (see Figure 254 on page 384).
Figure 252 -- Shortcut menu of the spelling error on the diagram pane
Figure 253 -- Shortcut menu of the spelling error in the Containment tree
Figure 254 -- Shortcut menu of the spelling error in the dialog box
button in the main toolbar. The Check Spelling dialog box opens.
2. Click the Check button. The Validation Results dialog box opens.
Figure 257 -- The Check Spelling dialog box, the Check Spelling For option
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 386.
Spelling error in the Validation Results window has description of construct as follows:
For more information about validation functionality, see Validation on page 459. Here the Validation Results
window is described in more details.
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.
Figure 259 -- Solving the spell checking errors in the Validation Results window
Figure 263 -- The Environment Options dialog box, the Spelling branch
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.
MagicDraw RSXConverter
MagicDraw provides the following capabilities to help you analyze your model:
"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.
"Analyzing Usages and Dependencies" - 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.
"Traceability" - allows you to track, visualize, navigate, and analyze the elements involved in
traceability relations.
"Relation Map" - the Relation Map diagram enables you to rapidly review and analyze relations
between the elements of the whole model.
"Symbol Usage in Diagrams" - displaying the list of diagrams in which symbol of current
element is represented.
"Projects Comparison" - 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.
"Analyzing Package Dependencies" - checks and analyzes package dependencies of the
whole project or when exporting and sharing packages.
"Validation" - a facility for evaluating completeness and correctness of the models created by
the user.
"Active Validation" - instantly checks model for correctness and completeness, displays errors
in the model and suggests solutions.
"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 Diagram 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.
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 opens.
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.
The MagicDraw Used By and Depends On features 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.
Understanding Used By
If you want to find all the elements that reference the current element, use the Used By functionality.
For example: If element1 references element2, this means that element1 uses element2. Conversely, element2
is also used by element1. In the Attribute Specification dialog, 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.
Understanding Depends On
If you want to find all elements that current element depends on, use the Depends On functionality.
For example: If element1 contains a reference to element2, this means that element1 depends on element2.
The Usages/Dependencies Search Options dialog 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, the next time you search for dependencies,
the values for these check boxes remain the same.
Element Description
Load autoloadable modules If the model has unloaded modules, select this check box to load all
elements to be included in performing the usages / dependencies
search.
NOTE: This element is available if the Used By command was
selected.
Element Description
Search recursively If selected, usages / dependencies of inner elements (beneath the
level of the current element) are listed in the search result list.
If unselected (default value), the usages / dependencies table lists
these elements that are using the current element.
For example: lets say, element1 contains element2. When you
search non-recursively, only elements that use element1 are listed.
When you search recursively, elements using element1 are listed,
while the other branch lists these elements that use element2.
Ignore derived properties If selected, derived properties of the element are not included when
searching for elements usages / dependencies.
A derived property is the one that is automatically calculated from the
other properties.
NEW! NOTE: It is strongly recommended to keep this option selected.
Otherwise all derived properties will be included into the usages /
dependencies searching scope, and this may cause a severe
performance downgrade when searching for usages / dependencies.
Ignore inter-relations If unselected, 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: lets create package p1 and package p2. Connect
these packages using the dependency relationship. In the Model
Browser, drag this dependency to p1. In the Usages/Dependencies
Search Options dialog, 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 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 If selected, search results provide a complete list of used or
result dependent relationships together with other results.
Treat model elements at the end If selected, relationships are skipped and only usages / dependent
of relationships as search elements between the model elements connected with these
results relationships are displayed.
Show results in the new tab If selected, a new Element Usages / Dependencies window is
displayed for every new search.
Element Description
Show this dialog before If selected, the Usages/Dependencies Search Options dialog will
searching open before searching for element usages or dependencies next
time.
If unselected, the dialog will not open before searching for element
usages or dependencies next time.
TIP! You can open the Usages/Dependencies Search Options
dialog by clicking the Usages / Dependencies Search Options button
on the toolbar in the Element Usages / Dependencies window.
4. Depending on which command you selected on the shortcut menu, either the Element Usages
or Dependencies window opens.
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.
Element Description
Expand Expands records listed in groups. Click the plus sign next to the group
name to display the contents.
Collapse Collapses records listed in groups.
Select in Containment Tree 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.
Element Description
Open all diagrams that contain Diagrams, which are referenced in the usages/dependencies table,
current Usages/Dependencies 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.
Show/hide the Full Path Names The full path is displayed next to the element name.
NOTE: For a symbol this button is not valid.
Refresh The usages/dependencies table should be refreshed after:
Elements or symbols are deleted.
New dependencies/usages are created for the particular model
element.
Show Usages/Dependencies The Find Usages/Dependent Elements Options dialog opens.
Search Options
Filter 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.
Traceability
View Online Traceability
Demo
TIP! You can also read about the traceability feature and analyze the examples in
the Traceability sample.
To open the sample, do any of the following:
On the Welcome screen, select Samples > Product Features >
Traceability.
Go to the folder <MagicDraw installation directory>\samples\product
features and open the Traceability.mdzip file.
All the examples, given in this section, are based on the data from this
sample.
As of version 16.8, MagicDraw supports the traceability feature that allows you to track, visualize, navigate, and
analyze the elements involved in the traceability relations.
The traceability relations are used to relate the elements representing the same concept in different UML
models at different levels of abstraction or from different viewpoints. Different levels of abstraction may contain,
include, or even correspond to different stages of system development process (starting from requirements
analysis and finishing with implementation). The higher level of abstraction (e.g., requirements analysis),
contains models with specifying elements, and the lower level of abstraction (e.g., implementation) includes
models with realizing ones.
The traceability relations help to determine how your requirements or the other model artifacts are satisfied. As
they may change, you can use traceability relations to monitor the impact of these changes.
Multiple types of custom and extended UML relationships (e.g., realization, abstraction), tags (e.g., Alternative
Flow of Events Diagrams), and properties (e.g., Owned Behavior) are used to represent traceability relations
between the specifying and realizing elements for showing traceability from requirements analysis to
implementation and deployment models.
You can visualize the traceability relations of your project in order to analyze them using the MagicDraw
features such as Relation Map (for the analysis of traces among multiple levels of abstraction) and
Dependency Matrix (for the analysis of traces between any two levels of abstraction).
You may track and navigate the elements, that are directly or indirectly related to a specific element through the
traceability properties that will be represented in a special tab of the elements Specification window and
Properties panel, or on the elements shortcut menu under the Go To menu. The traceability properties can
also be visualized on a diagram using the standard MagicDraw mechanism for displaying property values in
notes.
Traceability Report
A Traceability Report is particularly useful when there is a need to visualize and verify that requirement
analysis, design, and implementation model elements are all covered in higher or lower levels of abstraction,
for example, all use cases should be covered with design classes realizing them.
For more detailed information about the MagicDraw traceability solution, read the following subsections:
1. "Creating Traceability Relations" on page 400.
2. "Traceability Relations Representation" on page 401.
3. "Navigating between Different Levels of Abstraction" on page 407.
4. "Analyzing Traceability Relations" on page 408.
5. "Predefined Traceability Rules" on page 410.
The traceability relations can be represented by the following types of element dependencies:
UML relationships (such as abstraction, realization, derivation)
UML properties (such as Owned Behavior)
UML tags (such as Alternative Flow of Events Diagrams)
The traceability relations can be specifying, realizing, or other. This depends on which direction a relation is
analyzed and which element is considered as a basis.
A relation between a specific element and an element that is the realization of this specific
element, from the point of view of the specific element, is considered to be realizing
traceability (for forward traceability).
A relation between a specific element and an element that is the specification of this specific
element, from the point of view of the specific element, is considered to be specifying
traceability (for backward traceability).
All other traceability relations.
Figure 267 -- Horizontal and vertical traceability representation through the realizing, specifying, and other traceability
relations
For more information about the traceability feature, see "Traceability" on page 399.
A single traceability property shows an element or a set of elements that are related to a particular element
through the relations which are specified by some traceability rule. The predefined traceability rules are stored
in the Traceability customization profile used by the MagicDraw Profile.
The properties for the traceability relations are grouped into the realization, specification, and other groups,
owning both direct (single level) and indirect (multilevel) traceability relations. The indirect traceability relations
are represented by the so-called All properties, for example, All Specifying Elements, All Realizing
Elements, and All Specific Classifiers.
The relations for traceability creation, visualization and navigation is also possible without using traceability
properties. However, the customizable model driven traceability properties, which represent the traceability
relations in a single place, can greatly help in traceability information visualization and access.
TIP! You can customize the predefined traceability properties according to your
needs or create your own traceability properties and specify your own rules.
You can also customize the grouping of the traceability properties according
to your needs.
For more information, please, refer to the sections Extending metamodel
with derived properties and Creating your own property groups and
subgroups from the chapter DSL Customization engine in UML Profiling
and DSL UserGuide.pdf.
For a list of the predefined traceability rules, see "Predefined Traceability Rules" on page 410.
For more information about traceability feature, see "Traceability" on page 399.
The Traceability tab in elements Specification window is one of the places, wherein the elements traceability
properties, showing its realizing and/ or more specific elements, are represented.
1. Select an element and open the elements Specification window by using one of the ways given
in section "Specification Window" on page 220.
2. Click the Traceability tab. Now you can view elements traceability properties.
The following picture gives an example of the traceability relations between the elements from different
abstraction levels of the same project.
As you see, the Create User use case from the Requirements package is covered by two design classes,
and these classes are accordingly specified by this particular use case.
Therefore, the traceability properties such as Realizing Class and Realizing Element represent both design
classes as realizing elements of this use case (see Figure 270 on page 404). Accordingly the traceability
properties such as Specifying Use Case of each design class represent the Create User use case as a more
specific element (see Figure 271 on page 404).
Note that the same related element can be represented through different traceability properties.
For more information about elements Specification window, see "Specification Window" on page 220.
For more information about traceability properties representation, see "Traceability Relations Representation"
on page 401.
The Traceability tab in the elements Properties panel (at the bottom of the Browser window) is one of the
places, wherein the elements traceability properties, showing its realizing and/ or more specific elements, are
represented.
1. Select the element in the Containment tree or its shape on the diagram.
2. In the Model Browser, click on the Properties panel > Traceability tab. Now you can view
elements traceability properties.
For more information about elements Properties panel, see "Properties panel" on page 87.
For more information about traceability properties representation, see "Traceability Relations Representation"
on page 401.
The traceability properties can be visualized on a diagram using the standard MagicDraw mechanism
displaying the property values in notes.
1. Create a note for the element, whose traceability properties you want to visualize.
2. From the notes shortcut menu, select Edit Compartment > Element Properties.
3. In the list on the left-hand side, click the traceability property of you choice (e.g., Realizing
Class or Specifying Use Case) and then click the > button.
4. Click OK. Now you can view the elements traceability with other elements.
For more information about notes and comments on a diagrams, see "Note, Comment" on page 633.
For more information about traceability properties representation, see "Traceability Relations Representation"
on page 401.
The submenu of the Go To menu on the elements shortcut menu enables you to easily find and navigate to the
related elements through the traceability relations.
To select an element from the higher/ lower level of abstraction in the Containment tree
1. Select the element in the Containment tree or its shape on the diagram.
2. From the elements shortcut menu, select Go To > Traceability > Specification/ Realization/
Other, choose a property, and then select an element. The element will be selected in the
Containment tree.
TIP! If there are more than 10 values, the scroll bar is shown and the text box for
typing the keyword is available.
For more information about traceability properties representation, see "Traceability Relations Representation"
on page 401.
The Traceability Report feature supports the coverage analysis and publishes elements that are related to the
selected elements through the traceability relations. You can generate a report either for the whole project or for
a selected part of the project. This feature is the output of the coverage analysis.
Coverage analysis provides the visibility of each elements related artifacts, indicated as realizing (lower level of
abstraction) and/ or specifying (higher level of abstraction) ones.
The main objective of the Traceability Report is to visualize and verify that Analysis, Design, and
Implementation model elements are all covered.
For more information about traceability properties representation, see "Traceability Relations Representation"
on page 401.
Elements Specification window Open the elements Specification window and select the
Traceability tab, and then right-click on the property. Choose
Open Specification and select an element (if there is more
than one related element) as it is depicted in Figure 275 on
page 408. The Specification window of this element will be
opened.
Elements Properties panel Open the elements Properties panel and select the
Traceability tab, and then right-click on the property. Choose
Open Specification and select an element (if there is more
than one related element) as it is depicted in Figure 275 on
page 408. The Specification window of this element will be
opened.
Go To submenu on elements From the elements shortcut menu, select Go To >
shortcut menu Traceability > Specification/ Realization/Other. Choose a
property and then select an element. The element will be
selected in the Containment tree.
The Relation Map feature enables you to rapidly review and analyze multilevel relations among elements
starting from the requirements to implementation all the way through different levels of abstraction (analysis,
design, and so on).
For more information about the Relation Map feature, see "Relation Map" page 411.
You can perform the impact and/ or gap analysis in your project using the Dependency Matrix feature, which is
a powerful way for representing traceability relations between multiple elements from different packages, levels
of abstraction, views, or other relations that cannot be represented on diagrams, for example, relations through
UML tags.
You can create your own dependency matrices or use the special matrix templates, each customized for one
predefined traceability property. These templates allow the appropriate realizing/ specifying traceability
relations be represented in the Dependency Matrix diagram.
For a list of the predefined traceability rules, see "Predefined Traceability Rules" on page 410.
For the detailed information about loading and using matrix templates, see "Working with a Dependency Matrix
Template" on page 446.
When creating your own dependency matrices to represent traceability relations, you can define the traceability
properties as dependency criteria.
The figure above depicts an example of traceability relations between the elements. These relations can be
represented by the following traceability properties:
1. Realizing relations (use cases -> classes):
Realizing Class
Realizing Element
All Realizing Elements
2. Specifying relations (classes <- use cases):
Specifying Use Case
Specifying Element
All Specifying Elements
You can create a dependency matrix using a template suitable for each of these traceability properties.
The following steps will show you how to create a dependency matrix for the Realizing Class property using a
predefined matrix template.
To create a dependency matrix on the template, predefined for the Realizing Class property
3.1 For the row scope, expand Data > Requirements > MagicTest and select
Administration.
3.1 For the column scope, expand Data > Design > MagicTest and select UI.
4. Rebuild the matrix.
The picture below depicts the created dependency matrix showing the traceability relations between use cases
and the realizing design classes (the highlighted intersections mark the traceability relations depicted in
Figure 276 on page 409).
For more information about the Dependency Matrix feature, see "Dependency Matrix" on page 438.
For detailed information about the up-to-date traceability rules, visit the following link:
http://www.magicdraw.com/show_content/new_and_noteworthy/?content=traceability_rules_16.9
Relation Map
NOTE The Relation Map feature is available in the Standard, Professional, Architect,
and Enterprise editions.
A Relation Map diagram enables you to rapidly review and analyze relations between the elements of the
whole model.
The model structure in the diagram can be overviewed in two different layouts: tree (see Figure 279 on
page 411) or radial (see Figure 280 on page 411).
Drag and drop an element from the Containment Tree on the created Relation Map (the
structure will be created according to filters configuration).
On the element shortcut menu in the Browser, click Related Elements> Create Relation Map
On the Analyze menu, click Create Relation Map. Search for a context element for which you
want to create a relation map and click OK.
NOTE The same element will be the owner of the created relation map
diagram.
From the package shortcut menu in the Browser, select New Diagram > Analysis Diagrams >
Relation Map Diagram. Type a name and select a package where you want to save the project
and then click OK.
On the Analysis diagrams toolbar, click the Relation Map Diagram button. Type a name and
select the package where you want to save the project and then click OK.
In the Diagrams menu, click Analysis Diagrams > Relation Map Diagram. The Relation
Map Diagrams dialog opens. Click Add to create a new relation map and then click Open.
On the diagram shortcut menu, choose Specification or click the Relation map
specification icon on the diagram toolbar. Modify the properties in the Relation Map
Diagram Specification window.
Define the properties on the Relation Map toolbar.
Depth To select the level of the relation map branches that will be
automatically expanded.
A context is an element from which a relation map is drawn and analysis is started. You can set any element as
a context.
Drag and drop the selected element from the Browser to the relation map diagram.
Use the following diagram Toolbar commands:
From the Node shortcut menu on the diagram pane, choose Set Element as Context.
The Criterion Editor dialog contains four tabs, each dedicated for one expression type:
Simple (for the detailed information, see "Simple expressions" on page 414)
OCL (for the detailed information, see "OCL expressions" on page 416)
Reference to code class (for the detailed information, see "Binary expressions" on page 417)
Meta Chain (for the detailed information, see "Meta Chain expressions" on page 418)
Simple expressions
Simple expressions editor, depicted in the figure below, allows expressing direct dependencies between the
elements through the custom UML relations, properties, and tags, with some extra options to select the result
element type, link direction, and additional filters (for relations only).
Column Description
Relation Criterion A list of UML relations, properties and tags. To manipulate the values display mode in
the list, you can use the Show Relations Criteria Available Only for Context check
box.
Column Description
Is Applied If selected, an appropriate relation criterion will be applied. The multiple selection is
allowed.
To clear the selections in this column, click the Clear All button.
NOTE: Clicking this button will not clear the other settings (direction, result type, and
filter by property) for an appropriate relation criterion.
Direction A direction for the expression analysis applied for relations, properties, and tags.
Select one of the following values:
Source To Target (default)
Target To Source
Any
A source is an element, from which the expression calculations are started (a context
element).
A target is an element, which is a result of the defined expression.
The description of the check box in the Criterion Editor dialog for the simple expressions is as follows:
Show Relations Criteria Available If selected, there will be shown only these relation criteria that are
Only for Context available for the UML element, which is set as a customization
target.
If cleared, all the properties tags and relationships will be shown
as possible criteria.
OCL expressions
OCL expressions editor, depicted in the figure below, allows defining an OCL expression for gathering the
collections of the result elements.
Column Description
Name A name of an OCL expression. It is mandatory and has a default value Untitledn,
where n stands for the expression sequence number.
You can edit the name either directly in a cell, or in the Name dialog, opened by
clicking the ... button in this cell.
To create an expression, click Add.
To remove an expression, click Remove.
Expression An OCL expression.
You can edit the expression either directly in a cell, or in the OCL Expression dialog,
opened by clicking the ... button in this cell.
NOTE: You can check the OCL syntax of your expression, when writing the expression
in the OCL Expression dialog. To enable the OCL syntax checking mode in the dialog,
select the Check OCL syntax box.
Column Description
Listeners A reference to a java class, the so-called diagram event listener, which specifies when
Configuration the OCL expression results must be recalculated.
NOTE: For the instructions how to create your own listener using MagicDraw API,
please, refer to the chapter Diagram Events in MagicDraw OpenAPI UserGuide.pdf.
Binary expressions
Binary expressions editor, depicted in the figure below, allows defining a string reference to a java class, which
searches for the result elements according to the given parameters.
Column Description
Name A name of a binary expression. It is mandatory and has a default value Untitledn,
where n stands for the expression sequence number.
You can edit the name either directly in a cell, or in the Name dialog, opened by
clicking the ... button in this cell.
To create an expression, click Add.
To remove an expression, click Remove.
Expression A reference to a java class, which specifies the element search results.
Meta Chain expressions editor, depicted in the figure below, allows defining a multi properties chain navigating
from a context element to a final link property for gathering the result elements.
IMPORTANT! Though the meta chain expressions allow searching for the indirectly
related elements, they do not support loops and recursions.
Figure 285 -- Criterion Editor dialog for defining multi properties chain expressions
Column Description
Name A name of a meta chain expression. It is mandatory and has a default value
Untitledn, where n stands for the expression sequence number.
You can edit the name either directly in a cell, or in the Name dialog, opened by
clicking the ... button in this cell.
To create an expression, click Add.
To remove an expression, click Remove.
Meta Chain A meta chain expression, containing the so-called links, i.e., pairs of a metaclass/
stereotype and a property/ tag.
You can edit the expression either directly in a cell, or in the Meta Chain Expression
dialog (see Figure 286 on page 419), opened by clicking the ... button in this cell.
Figure 286 -- Meta Chain Expression dialog for defining links of a meta chain expression
Column Description
Metaclass or A metaclass or a stereotype of a link, contained in a meta chain expression.
Stereotype To create a link in a meta chain expression, click Add.
To remove a link from a meta chain expression, click Remove.
The first link, when created, already has a metaclass or a stereotype selected by
default as it is shown in Figure 286 on page 419. This value is the context elements
type.
The default metaclass or stereotype of the first link can be changed.
The second link is more specific: the values suggested for selection are limited
according to the values selected in the first link, since you will not be able to add a new
link until the current link is not specified. The same rule is valid for the subsequent
links.
Property or Tag A property or a tag of a link, contained in a meta chain expression.
You can choose a value from the list, which contains properties (including the derived
ones) and tags specified for the links metaclass or stereotype.
To expand/suppress branches
Click on an empty place in the Relation Map and drag it. The whole structure will be moved.
Click a Node and drag it. The selected Node will be moved.
NOTE The traditional Zoom In, Zoom Out, Fit in Window, Zoom 1:1 actions
are available. For more information on zooming, see Section
Zooming on page 197.
Element removing and hiding will be initiated and work in same way as for other diagrams.
Press Delete, to hide an element. Press Ctrl+D, to delete and element from the model.
To restore the layout of the manual suppressed/expanded branches, moved, removed and hidden symbols
1. Run validation against model. On the Analyze menu, click Validation > Validation.
2. In the Validation dialog, select Validation Suite and click Validate.
3. Invalid elements will be marked on the Relation Map.
Select an element and click the Select in containment tree icon on the relation map
toolbar.
On the selected element shortcut menu, click Select in Containment Tree.
Select an element and click the Open all diagrams containing the selected element
icon on the relation map toolbar
The symbol usage in diagrams functionality allows the user to see the usage of a symbol throughout the
diagrams of a project. You may search for symbol usage in diagrams from the element Specification window
and from element shortcut menu.
To search for diagrams in which symbol is used from the element Specification window
1. Open the element specification dialog 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 287 -- The element specification dialog box, the Usage in Diagrams branch
To open the diagram specification dialog, press the button near the diagram in the list.
For more information about working with the elements Specification window, see "Specification Window" on
page 220.
To search for diagrams in which symbol is used 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 288 -- Searching for symbol usage in diagrams from the element shortcut menu
TIP! You can also search for symbols usages in diagrams in the following
way:
1. Select the symbol on the diagram.
2. From the Analyze main menu, select the Go To
command and then 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 "Analyzing Usages and Dependencies" on page 395.
Projects Comparison
View Online Visual Model Differencing
Demo
The use of projects comparison 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.
Comparing Projects
First of all you have to select the projects you want to compare. Differences of the compared projects will be
displayed as two model trees. Differences are marked using colors and highlighting.
When comparing two projects 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.
1. Open a project you want to compare and from the Analyze menu, select Compare Projects.
2. The Compare Projects dialog appears.
3. From the Active Project 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 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 box.
Local Project. Click the ... button and select a project version you want to
compare the current project with.
Server Project. Click the ... button and from the Open Server Project dialog,
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.
All differences of the compared projects are displayed in the Difference Viewer dialog.
In the Difference Viewer dialog, two compared projects are displayed. The number of differences is displayed
at the bottom of the dialog. 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:
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.
Button 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 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
Button Function
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 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.
Export Differences Creates .html or .txt differences report. In the Save Difference Report
As dialog, 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 right-hand 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, select the diagram you want to compare and click the
Compare Diagrams button.
2. The Diagrams Difference Viewer dialog opens, which displays both diagrams with changes
made in them.
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
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).
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.
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.
If a value is not counted for a class, interface, package, or diagram, the cell is left empty.
When the Classes, Diagrams, or Class Violations filters are selected, the owner is displayed next to the
following element: c1 (Classes::Package1)
Starting Metrics
Element Description
Metrics Suite Lists all the available metrics suites.
Calculate For 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.
Metrics Options Opens the Metrics Options dialog.
Calculate Opens the Metrics window.
To set element options for Metrics, click the "" button to open the Select Elements dialog:
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.
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.
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:
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.
Metrics Report
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 opens:
Element Description
Metrics Output Displays the path and file names of the metrics results output file.
File: Click the "" button to select the location and file.
Output Type: Contains these values:
Text (*.txt)
HTML (*.html)
Element Description
Export Selected When selected, only the selected table rows and the header row are
Rows Only 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.
Metrics Options
Metrics suites are managed in the Metrics Options dialog.
From the Analyze menu, select Metrics and then Metrics Options
In the Metrics dialog, click Metrics Options.
The left pane of the Metrics Options dialog 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.
Element Description
Metrics suites list Displays all created metrics suites in a list.
Metrics suites list Clone clone the selected suite.
buttons: Rename rename the selected suite.
Clone Remove remove the selected suite.
Rename
Remove Import import a new suite. The Open dialog opens.
Import Export export the selected suite. The Save dialog opens.
Export All these commands are available from each metric suite shortcut
menu.
Metrics tree Use this tree to select the metrics you want to include in your metrics
suite. All metrics are displayed in the metrics tree.
Properties list Metrics properties are displayed individually for each property.
Select All Selects all metrics.
Clear All Clears all metrics.
Element Description
Reset to Default 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 opens:
Metrics Properties
Properties Property Description
Group
General 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 Recommended lowest metric value for the package. Editable.
Class Recommended lowest metric value for class and interface.
Editable.
Diagram Recommended lowest metric value for the diagram. Editable.
Highest Package Recommended highest metric value for package. Editable.
limit 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 This properties group specifies whether the information is
included when counting metrics.
Weight 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:
Top 1 8 1 1 2
Inner1 2 4 1 2 2
C1 0 0 0 0 0
C2 2 2 1 2 2
c_in1 0 0 0 0 0
c_in2 0 0 0 0 0
Inner2 1 3 1 1 2
C3 2 2 1 2 2
c_in3 0 0 0 0 0
c_in4 0 0 0 0 0
C4 0 0 0 0 0
Dependency Matrix
View Online Dependency Matrix
Demo
NOTE 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 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.
From the Diagrams menu, select Analysis Diagrams > Dependency Matrixes. Click Add to
create a new dependency matrix and then click Open.
From the Analyze 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 Analysis 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.
Row Property The ... button is enabled only when some Property is selected. The
Value corresponding dialog with available property values opens. Multiple
Column Property property value selections are available.
Value
Rebuild Columns and rows rebuild action, which rebuilds element lists according
to the filters configuration.
Add / Remove Add / remove elements and diagrams from/to Matrix rows or columns
Elements independently from the filter settings.
Click the button to open the Add Remove Elements dialog. For
more information about this dialog, see "The Add / Remove Elements
dialog" on page 449.
Matrix Properties
Click the button to open the Dependency Matrix Specification
window.
Quick Diagram
Layout Click the button to automatically layout the matrix cells to default
width and height.
Change Axes
Click the button. Columns and rows will be exchanged with each
other.
Save as *.csv
Click the button. The Save dialog 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 and used in other projects.
Load Matrix
Template Click the button to open the Load Matrix Template dialog. Select a
template from the list and click OK.
Dependencies between elements are displayed in cells. Rows and columns display elements, which were
specified in the Matrix View fields.
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. The direction shows that element is dependent on the element, to which
direction it points;
Line. It shows that elements depend on each other;
X icon. It 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:
1. Double click a cell that is not empty or select it and from the shortcut menu, select
Dependency List. The Dependency List dialog opens.
2. Click the button near the selected dependency to open the corresponding dependency
Specification dialog.
Now you can edit relations and element properties directly in matrixes. Clicking on the selected cell allows for:
Creating or deleting relationships between elements.
This feature not only facilitates management of ordinary relationships between elements, but also allows for a
faster creation of traceability links between elements, for example, between requirements and the architecture
or requirements and test cases. Such an improvement saves huge amounts of time in comparison to linking
elements in diagrams. It significantly increases applicability and usability of matrixes.
The validation results for relationships are visualized in matrixes. Matrix cells are highlighted whenever
relations violate validation rules. This feature is useful, for example, to check which test cases for requirements
verification fail, to check if dependencies are valid or up-to-date when doing gap analysis.
For more information on validation, see "Validation" on page 459 and "Active Validation" on page 477.
The matrix template can be imported and exported as a file. Filters and Matrix properties will be saved as a
matrix template.
1. From the Analyze menu, select Dependency Matrix and then Matrix Templates. The
Dependency Matrix Templates dialog opens.
2. Select the template from the list and click Create Matrix, or click OK. After closing the dialog,
click Rebuild in the Matrix View.
1. In the Matrix View, click the Load Matrix Template button . The Load Matrix Template
dialog opens.
2. Select a template from the list and click OK. The dialog 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.
2. In the Matrix View, click the Save Configuration As Template button . The Save dialog
opens.
3. Type a name for the template, select a location and click Save.
1. In the Dependency Matrix Templates dialog, click the Export Selected Matrix template
1. In the Dependency Matrix Templates dialog, click the Import New Matrix template button
From the Analyze menu, select Dependency Matrix and then Matrix Templates. The Dependency Matrix
Templates dialog opens.
In the Dependency Matrix View, click the button to open the Add Remove Elements dialog.
NOTE You may define options for the dependency checking in the in Project Options dialog >
General Project Options > Dependency Checker options group.
To analyze package dependencies of the whole project or between the selected package/model and shared
packages
3. Dependencies between the selected package/model and shared packages will be analyzed
and shown in the opened Package Dependency panel. For more information about the
Package Dependency panel, see "Package Dependencies panel" on page 453.
2. The question dialog appears asking for your confirmation to start dependency checking
between the exported package/model and the rest of the project (including shared packages
that belong to the project and used modules).
3. If you want to discover cyclic dependencies*, select the Check for cyclic dependencies on
modules check box. Press Yes to start dependency analysis. If the Check for cyclic
dependencies on modules check box is selected, only dependencies which have Error and
Warning severity levels are displayed.
4. Dependencies between the selected package/model and shared packages will be analyzed
and shown in the opened Package Dependency panel. For more information about the
Package Dependency panel, see "Package Dependencies panel" on page 453.
Figure 303 -- The Package Dependencies panel, opened when exporting (GUI elements, highlighted in green) or
sharing a package (GUI elements, highlighted in pink)
The Package Dependencies panel has a table which shows the list of dependencies and buttons for
managing data displayed in this table.
Button Description
Expand All Tree Branches Expands all nodes in the package dependencies tree.
Collapse All Tree Branches Collapses all nodes in the package dependencies tree.
Show/hide the Full Path Displays the element full path next to the element name.
Names
Button Description
Solve The button is enabled, when a dependency whose status is Error is
selected in the table and a solution for the problem can be found. Clicking
the button opens the dialog for choosing the solution for a specific
dependency problem.
This button is only visible when exporting or sharing a package.
Select in Containment Tree Shows the selected element in the Browser. The button is enabled, when
a dependency is selected in the table.
Refresh Performs dependency analysis and refreshes the dependency table with
the new analysis results.
Change Shares Opens the Shared Packages dialog window for reselecting the packages
to be shared.
This button is visible only when sharing a module.
Change Exports Opens the Export Module dialog window for reselecting the packages to
be exported.
This button is visible only when exporting a module.
OK Closes the Package Dependencies panel.
This button is available when the dependency checker is opened
independently by selecting Analyze > Dependency Checker from the
main menu or Tools > Dependency Checker from the package or model
shortcut menu.
Share Closes the Package Dependencies panel and makes the package
shared.
The button is enabled, when the environment option Check dependency
on module export/share is set to Allow dependencies (Options >
Environment from the main menu, General section). Environment
options are detailed in section "Customizing Environment Options" on
page 89.
This button is visible only when sharing a module.
Export Closes the Package Dependencies panel and opens the Save as/
Commit Settings dialog window for saving/committing the package as
separate module. The button is enabled, when the environment option
Check dependency on module export/share is set to Allow
dependencies (Options > Environment from the main menu, General
section). Environment options are detailed in section "Customizing
Environment Options" on page 89.
This button is visible only when exporting a module.
Cancel Cancels package sharing or exporting.
This button is visible only when exporting or sharing a module.
Help Displays MagicDraw Help.
Column Description
Status Shows severity of the element dependency problem. The status can be
Error, Warning, or Info.
Dependencies that have Error status:
module dependencies on the project
Dependencies that have Warning status:
cyclic module dependencies on other modules
Dependencies that have Info status:
project element dependencies on elements from shared packages
(shared packages can belong both to the project and come from an
external project)
Element Type Displays element type.
Dependency Type Displays dependency type.
Depends On Displays the model element, on which the package/model element is
dependent.
Module Displays the name of the module file that owns the model element, on
which the package/model element depends.
Part of Cycling Dependency indicates that the element is a part of the cycling dependency.
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.
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:
Some movements can be achieved by clicking Solve in the Package Dependencies dialog. For a detailed
description of this dialog, see "The module package can now be exported into an independent module." on
page 458.
You can also drag-and-drop the relationship from one package to another in the Browser tree.
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:
In this case, the dependency on an external element is displayed in the Browser tree:
Figure 309 -- 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.
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 310 -- 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.
Diagram dependencies
If the diagram is contained in a module package and depends on external elements, this package cannot be
exported to a module.
Figure 312 -- 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 455.
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 313 -- Diagram is moved from the module package to the package1 package.
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.
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).
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 (orphaned proxies)" on page 127).
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).
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.
Validation
View Online Validation
Demo
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.
It is advisable not to mix the constraints from different metalevels into one suite (constraints on classifiers
versus constraints on stereotypes and metaclasses).
UML Standard Profile brings two predefined suites with it. These two suites are present in all models:
UML completeness constraints;
UML correctness constraints.
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).
2. In the Validation Suite box, select the UML correctness constraints. All available validation
suites are listed here.
The list of available validation suites depends on the opened 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. You can also create your own validation rules and group
them into a suite and this suite will be available in this box.
3. In the Validate For box, choose the validation target:
To run validation on the entire model, choose the Whole Project.
To run validation on the special packages and/or elements, choose the Validation
Selection, then click the ... button and select the scope for validation. The Select
Elements dialog appears.
4. Select Elements dialog In the Select Elements dialog, select packages and/or elements for
validation. Select the Minimal Severity level. Debug is the lowest possible severity level, all
validation rules will be run.
5. If you want to run validation on the read-only modules and the elements that exist in those
modules, clear the Exclude elements from read-only modules check box (by default it is
selected).
6. Click Validate. Validation results are displayed in the Validation Results window.
Window opens automatically after the validation has ended. The Validation Results window has the following
columns:
Element Elements, which violate the constraint rule are shown here.
Severity Rule severity violations.
Abbreviation Simple short strings showing the abbreviation of the violated constraint.
Mostly used for sorting/grouping.
Error Message Error texts of the violated constraints.
If the validation rule is incorrect, Validations Results view will show the reason. This rule is then excluded from
checking models.
1. Open model. From the Analyze menu, select Validation command, and then Validation. The
Validation dialog 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 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
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 button to open all the diagrams,
containing the selected model elements.
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:
Info - black
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.
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.
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).
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.
1. Open the product stereotype specification, select Constraints section, and click Create.
2. The name of the constraint and the expression can be specified right away, but since we want
to specify more information, we need to open the specification of a newly created constraint
(press the button on the right 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.
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 (you can also access
these fields in the Tags section of the specification).
5. Fill in the values for those fields.
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).
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.
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
Continuing our example, in the constraint Specification dialog, click the button near the Specification field and
open the Edit Specification dialog. Select OCL2.0 language. Observe that MagicDraw has automatically
generated the header of the expression from the constraint information, and we only need to specify the body
of expression. The expression header is generated according to the following rules:
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 473), 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.
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 opens.
2. Click the Create New Validation Suite button and name it Oracle specific constraints.
Figure 322 -- 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.
When the user includes / excludes the constraint, the appropriate element import link is created/deleted in the
model.
Figure 323 -- 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. 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 check box, 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
check boxes in the tree.
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 appears.
2. Create a new suite, name it General, and select it.
3. Include the existing validation suites: Java constraints, UML completeness constraints and
UML correctness constraints in the suite by selecting the check box in front of the packages in
the Validation Rules panel.
Figure 324 -- UML correctness, UML completeness, and Java validation suites included in the General validation suite
Figure 325 -- 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 stereotype 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.
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 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. 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.
Figure 326 -- Unloaded module with Java constrains validation suite is avaialable through Validation dialog.
Advanced Topics
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.
Such a rule is not very useful indeed. The following is another example:
This rule checks that there is at most one instance of the SomeSingletonClass in the model. The following is a
more complex example:
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):
Sponsor class has a following rule (anticorruption rule - each sponsor can not contribute more than 40% of the
funds):
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.
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:
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:
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.
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.
To place an opaque expression in the default value of the property, click the button with a small black arrow
pointed to the right or right click on the default value field in the specification of the property and from the
shortcut menu 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.
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.
Not all OCL2.0 features are supported in the current release of MagicDraw.
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 issues can be reported to https://
support.nomagic.com. MagicDraw uses external library Dresden OCL Toolkit for constraint evaluation.
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 constraints (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 Active Validation
Demo
Active Validation instantly checks the accuracy, completeness, and correctness 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
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.
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.
Failure indicator
If an error occurs, the failure indicator will appear in the bottom right corner of MagicDraw (see
Figure 330 on page 479). Click this indicator and the Active Validation Results window will open.
An invalid model element is marked in the Browser with a small x symbol (see Figure 332 on page 480). The
owner of this element is marked with a small grey symbol.
The element symbol is colored according to the severity of the error on the diagram.
More information about Parameter Synchronization can be found here "Parameters synchronization with
Arguments" on page 728.
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.
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).
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).
Examples For example, on the diagram pane, an For example, a diagram belongs to
element shape is nested in package A, activity A, but elements of this diagram
but actually the element is in package belong to activity B.
B.
In this section you will find out the reasons why an element is highlighted in red and how to solve symbol
ownership problems quickly.
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.
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.
NOTE When a symbol is deleted, the element is not deleted from the
project.
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 (e.g. De-nest, this
Shape command is not available for shape, placed in the incorrect state machine, activity,
interaction diagrams).
Select/clear the Validate Shape Ownership check box in the Analyze menu.
Select/clear the Validate Shape Ownership check box in the Environment Options dialog,
Diagram branch, Display options group.
Related Topics
"Customizing Environment Options" on page 89.
"Smart Manipulation" on page 185.
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.
Checking for OP moved from a separate feature into one unified validation mechanism that identifies problems
and solutions.
During model editing there 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 detected,
they are called Orphaned Proxies. These proxies are marked by a validation sign in the browser. Actions to
clean such proxies are added.
A model is validated automatically without any additional input. Additional constraints can be added or
properties can be customized from Analyze (main menu) > Validation.
Figure 337 -- 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
Figure 338 -- The "Register return" Use Case is highlighted with red dashed border, because the "Return violationn"
Extension Point has a spelling error
Figure 339 -- 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
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.
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.
1. From the Analyze menu, select Model Visualizer. The Model Visualizer dialog opens.
2. From the wizards list, select the Class Diagram Wizard.
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.
Realization relationship between model elements where one of the elements implements the
interface defined by the other model element.
Association semantic relationship between classes.
Dependency usage relationship between UML model elements.
The Package Dependency Diagram Wizard creates the Package diagram containing packages (created
within a project) and shows the relationships between them. The diagram may reflect all packages in the
project, or just selected ones. The Package Dependency Diagram Wizard collects all information needed for
both analyzing dependencies and generating a new diagram.
For information about the Package diagram, see "NEW! Package Diagram" on page 562.
If a package owns one or more elements used by or dependent on other package elements, the Package
Dependency Diagram Wizard analyzes dependencies and creates virtual relations between the dependent
packages (see the following example).
The Virtual dependencies package containing dependency links is created after finishing the wizard. If there
are more than one dependency between elements in the packages selected to analyze, then the number of
dependencies are assigned to the tagged value number {n=...} on the virtual dependency.
In this step, you can specify the diagram name and select or create the diagram owner.
In the Type Package Diagram name text box, type the name for the diagram.
In the Select owner for diagram box, select the package wherein the created diagram will be stored. You can
also create a new owner by clicking the Create Owner button. If you want to clone the package, select that
package and click the Clone button.
Figure 345 -- Package Dependency Diagram Wizard. Specifying diagram name and owning package
In this step, select the packages that dependencies will be analyzed in the Package diagram.
In this step, you can specify the diagram symbol properties. All available diagram elements are displayed in the
Specify symbol properties for diagram elements list. Select each element and specify its symbol properties.
For more information about specifying symbol properties, see "Formatting Symbols" on page 259.
Click Finish, when you are done. The Package diagram and the Virtual dependencies package are created. In
the Step #2 selected packages and their dependencies are displayed on the created Package diagram.
In the Package diagram, the virtual dependencies (that is, dependency links) are created. All the virtual
dependencies are stored in the Virtual dependencies package which you can find in the model browser.
You can use the Show Dependency Details command to see what are dependencies of a particular package
(that is, on what packages depends the particular package). Dependency results are displayed in the
dependency details panel (see the following example).
1. Either in the Model Browser or on the diagram, select the dependency which details you want
to display.
2. On the selected dependency shortcut menu, click Show Dependency Details. The
dependency details panel opens where in the dependency details are displayed.
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.
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
opens. In the wizards list, select the Package Overview Diagram Wizard. Click the Start
button.
Type a name for the newly created diagram in the Type Class Diagram name text box.
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.
Select the packages, which will be represented in the new diagram. For every selection, a package diagram will
be created.
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.
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.
The Assign hyperlinks to created diagrams check box - adds an active hyperlink to every package,
referenced to the inner diagram of this package.
The Hierarchy Diagram Wizard collects the largest hierarchies and allows every of them to be displayed as
separate diagrams or all in one diagram.
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
opens. From the wizards list, select the Hierarchy Diagram Wizard.
From the model element shortcut menu, select Tools and then Hierarchy Diagram Wizard.
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 for the newly created
diagram from the Data tree or create a new package by clicking the Create button.
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.
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.
The Realization Diagram Wizard shows a table of the largest element groups that realize some interface.
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
opens. From the wizards list, select the Realization Diagram Wizard.
From the model element shortcut menu, select Tools and then Realization Diagram Wizard.
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 for the newly created
diagram from the Data tree or create a new package by clicking the Create button.
Select packages from the All list and add them to the Selected list to search for hierarchy elements.
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.
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.
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.
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.
From the Diagrams main menu, select the Diagram Wizards command and then Activity
Decomposition Hierarchy Wizard.
From the Analyze menu, select the Model Visualizer command. The Model Visualizer dialog
opens. From the wizards list, select the Activity Decomposition Hierarchy Wizard.
Figure 361 -- 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.
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.
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 363 -- Activity Decomposition Hierarchy Wizard. Specify symbols properties tab
The Content Diagram Wizard generates content of diagrams that are used in the project.
On the main menu select Analyze > Model Visualizer. The Model Visualizer dialog opens.
Click Content Diagram Wizard in the wizards list and then click the Start button.
Type a name for the new diagram in the Type Content Diagram name box.
Select the package that will contain the created diagram. The hierarchy of UML model packages is displayed in
the Select owner for diagram tree. You can select the existing package or create a new one by clicking the
Create Owner button, or copy the selected package with all its content by clicking the Clone button.
Click Next or choose the Select diagram types option for further steps.
Select the types of diagrams to be included in the content diagram. Then click Next or choose the Select
Diagrams option.
Select diagrams to be included in the content diagram and click Finish. The content diagram is now created.
The Sequence Diagram from Java Source Wizard allows for visualizing Java method implementation within
UML Sequence diagrams. Though UML Sequence diagrams cannot show Java code with 100% accuracy yet,
MagicDraw provides a mechanism for generating a diagram that reflects the essence of Java method content.
If you want to create a sequence diagram from the Java source, first of all you need to reverse the Java source
code to a model. For the reverse procedure please refer to Section Reverse in MagicDraw Code
Engineering UserGuide.pdf.
You can also to create a model corresponding to your Java code structure manually.
IMPORTANT! Be sure, the model you use to create a sequence diagram fully
corresponds the Java source code you want to represent in the diagram.
One sequence diagram can represent one method in a Java code. Classes are represented as lifelines, and
method calls are represented as messages in the diagram. The sequence diagram can also be used to
visualize dependencies for all classes used in this method.
The Sequence Diagram from Java Source Wizard consists of these four steps:
The diagram name and package specification
The selection of an operation
The selection of classes for the diagram
The symbol properties specification
This step allows for specifying diagram name and selecting or creating a new owning package for the diagram.
Figure 367 -- Sequence Diagram from Java Source Wizard. Specifying name and package
In the Type Sequence Diagram name box, type a name for the new sequence diagram.
Select the package that will contain the created diagram. The hierarchy of UML model packages is displayed in
the Select owner for diagram dialog. Select the package that will be the owner for the newly created diagram,
or create a new package by clicking Create Owner or Clone. For more information about an element creation
refer to Section "Element creation mode" on page 283.
This step is designed to select the operation that will be displayed in the sequence diagram and the Java
source file for constructing the diagram.
Figure 368 -- Sequence Diagram from Java Source Wizard. Selecting operation
When you start the wizard from either the operation shortcut menu or the Sequence diagram, both the
operation and the Java source file are selected by default. If the Java source file cannot be found automatically,
specify it in the Select Java source file box.
Figure 369 -- Sequence Diagram from Java Source Wizard. Selecting classes for diagram
Check boxes used in this step are described in the following table.
You can select properties for the elements that will be represented in your sequence diagram.
Figure 370 -- Sequence Diagram from Java Source Wizard. Specifying symbol properties
Creating a sequence diagram from a Java code allows for analyzing dependencies between the methods
represented on the diagram and the classes they are referencing to and / or the other methods they call for.
This means that you can create a sequence diagram for any method selected in the already created sequence
diagram.
1. Select the method (call message with an operation assigned), whose details you want to see.
2. Right-click the message and, from the shortcut menu, select Reverse Implementation. The
Sequence Diagram from Java Source Wizard opens to create a sequence diagram for the
selected method.
NOTE If you have started the wizard via the operation assigned to the
message, be aware that in this case the first step of the wizard will
be skipped, and the wizard will start from the step #2.
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)
Architectural Views
UML defines 13 diagrams that describe 4+1 architectural views:
Several kinds of diagrams provide a visual notation for the concepts in each view.
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.
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.
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.
Structured Class
Class by Pattern
(SHIFT+P)
Signal
Data Type
Primitive Type
Enumeration
A user-defined data type
whose instances are a
set of user-specified (K)
named enumeration
literals. The literals have
a relative order but no
algebra is defined on
them.
Port
A port is a property of a
classifier that specifies a
distinct interaction point
(SHIFT+R)
between that classifier
and its environment or
between the (behavior of
the) classifier and its
internal parts.
Collaboration
A collaboration is
represented as a kind of
classifier and it defines a
(Q)
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.
Generalization
A relationship between a
more general and a more
specific element. (G)
Association
A connection among
classes, which also
(S)
means a connection
among objects of those
classes.
Directed Association
Non-navigable
Association
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 (A)
relationship.
Directed Aggregation
Composition
A composition is a form
of aggregation with a
stronger ownership and
coincident lifetime of part (F)
with the whole.
Directed Composition
Substitution
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.
Template Binding
A binding is a relationship
between a template and
a model element
generated from the (B)
template.
(SHIFT+L)
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 372 -- The schematic view of the use cases in the system.
Package
A group of classes and other model
elements. A package may contain
other packages. (P)
Subsystem
A subsystem is treated as an
abstract single unit. It groups model
elements by representing the (Y)
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 (B)
Include (uses) relationships, which
are visually located inside the system
boundary rectangle.
Extend
A relationship from an extending use
case to an extended use case that
specifies how and when the
behavior defined in the extending (E)
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.
Association
The participation of an actor in a use
case, i.e. instances of the actor and
instances of the use case (S)
communicate with each other. This
is the only relationship between
actors and use cases.
Generalization
A relationship between a more
general and a more specific
element.
(G)
Note: Choose a different
Generalization direction from the
toolbar to draw a line with an
opposite arrow end.
Interface Realization
The classifier at the tail of the arrow
implements the interface that is
located at the arrow head or uses
(R)
that interface.
Note: Choose a different Interface
Realization direction from the toolbar
to draw a line with an opposite arrow
end.
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.
Connector
Specifies a link that enables communication
between two or more lifelines. Each connector
may be attached to two or more connectable
elements, each representing a set of lifelines. (C)
Connector to Self
Self connector for self-calls. It begins and ends
on the same lifeline.
(S)
Sequence Diagram
The Sequence diagram focuses on the Message interchange between a number of Lifelines.
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.
In the tables below you will find the description and notation of all the elements available in the Sequence
diagram.
Related sections
"Message"
Lifeline
Represents the existence
of an object at a particular
time. (O)
Activation Bar
Focus of control. Shows
the period during which
an object is performing an
action either directly or
through a subordinated
procedure.
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.
Combined fragments
Interaction operands can be of the following types and are described in the table below.
Alternatives
The alternative combined fragment alt represents a choice of behavior. Alternative
combined fragment has several operands. At most one of the operands has to be chosen.
Using alternative combined fragment you can model if-then-else statement. (SHIFT+A)
Loop
The loop combined fragment represents that the loop operand will be repeated a number
of times. If the loop contains a separate interaction constraint with a specification, the loop
will only continue if that specification evaluates to true during execution regardless of the (SHIFT+L)
minimum number of iterations specified in the loop.
Option
The option combined fragment opt represents a choice of behavior where either the (sole)
operand happens or nothing happens. An option combined fragment is used to model "if-
then" construct. (SHIFT+O)
Parallel
The interaction operator par designates that the combined fragment represents a parallel
merge between the behaviors of the operands. A parallel merge defines a set of traces
that describes all the ways that occurrence specifications of the operands may be (SHIFT+P)
interleaved without obstructing the order of the occurrence specifications within the
operand.
Break
The interaction operator brk designates that the combined fragment represents a
breaking scenario in the sense that the operand is a scenario that is performed instead of
the remainder of the enclosing interaction fragment. A break operator with a guard is (SHIFT+B)
chosen when the guard is true and the rest of the enclosing interaction fragment is
ignored. When the guard of the break operand is false, the break operand is ignored and
the rest of the enclosing interaction fragment is chosen. A combined fragment with
interaction operator break should cover all Lifelines of the enclosing interaction fragment.
Negative
The interaction operator neg designates that the combined fragment represents traces
that are defined to be invalid. The set of traces that defined a combined fragment with
interaction operator negative is equal to the set of traces given by its (sole) operand, only (SHIFT+G)
that this set is a set of invalid rather than valid traces. All interaction fragments that are
different from Negative are considered positive meaning that they describe traces that are
valid and should be possible.
Critical Region
The interaction operator crt designates that the combined fragment represents a critical
region. A critical region means that the traces of the region cannot be interleaved by other
occurrence specifications (on those Lifelines covered by the region). This means that the (SHIFT+R)
region is treated atomically by the enclosing fragment when determining the set of valid
traces.
Consider
The interaction operator con designates which messages should be considered within
this combined fragment. This is equivalent to defining every other message to be ignored.
(SHIFT+C)
Ignore
The interaction operator ign designates that there are some message types that are not
shown within this combined fragment. These message types can be considered
insignificant and are implicitly ignored if they appear in a corresponding execution. (SHIFT+I)
Alternatively, one can understand ignore to mean that the message types that are ignored
can appear anywhere in the traces.
Weak Sequencing
The interaction operator seq designates that the combined fragment represents a weak
sequencing between the behaviors of the operands. It is the same as parallel execution,
except that event on the same lifeline from different subfragments are ordered in the same (SHIFT+W)
order as the subfragments within the enclosing weak sequencing fragment.
Strict Sequencing
The interaction operator str designates that the combined fragment represents a strict
sequencing between the behaviors of the operands. The semantics of strict sequencing
defines a strict ordering of the operands on the first level within the combined fragment (SHIFT+S)
with interaction operator strict.
Assertion
The interaction operator asr designates that the combined fragment represents an
assertion. The sequences of the operand of the assertion are the only valid continuations.
All other continuations result in an invalid trace. (SHIFT+R)
Messages
Diagonal Message
Requires some time to arrive, during
which another action occurs.
(D)
Message to Self
(S)
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 (e.g., collection of objects) or even the whole system (which is
also considered as a collaboration). The abstraction of all possible states defined in a state machine is similar
to the way class diagrams are abstracted: all possible object types (classes) of a particular system are
described.
Objects that do not present a very pronounced reactive behavior may always be considered to stay in the same
state. In such a case, their classes do not possess a state machine.
State 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 a 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 an internal object changes (as opposed to the external object interaction in a
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 announcing 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 a connected to it action that
specifies what should be done in connection with the state transition.
NOTE If the black arrow button is placed near a button, either right-click the
button or click the black arrow button to open other available buttons.
Orthogonal State
An orthogonal state is a composite state
with at least 2 regions.
(C)
Initial
Pepresents a default vertex that is the
source for a single transition to the default
state of a composite state. There can be at
(I)
most one initial vertex in a region.
Final State
A special kind of state signifying that the
enclosing region is completed. If the
enclosing region is directly contained in a (F)
state machine and all other regions in the
state machine also are completed, then it
means that the entire state machine is
completed.
Terminate
Implies that the execution of this state
machine by means of its context object is
terminated. (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 (Y)
the entry point pseudostate as defined in
the submachine of the submachine state.
Exit Point
The exit point connection points a
reference as the source of a transition.
This implies that the source of the (U)
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
The Connection point references of a
submachine state can be used as the
sources/targets of the transitions. They
(Z)
represent entries into or exits out of the
submachine state machine referred by the
submachine state.
Choice
The choice points are used to split
transition paths. In the dynamic choice
point, a decision corncerning which branch (O)
to take is only made after the transition
from State1 is taken and the choice point
is reached.
Fork Vertical/Horizontal
Serves to split an incoming transition into
two or more transitions terminating on
orthogonal target vertices (i.e., vertices in
different regions of a composite state). (G)
(D)
Join Vertical/Horizontal
Serves to merge several transitions
emanating from source vertices in different
orthogonal regions. (G)
(D)
Transition to Self
When an object returns to the same state
after the specified event occurs.
(E)
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.
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.
NOTE If the black arrow button is placed near a button, either right-click the
button or click the black arrow button to open other available buttons.
Orthogonal State
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 (A)
factoring of common behaviors and their
reuse.
Initial
Pepresents a default vertex that is the
source for a single transition to the default
state of a composite state. There can be at
(I)
most one initial vertex in a region.
Fork Vertical/Horizontal
Serves to split an incoming transition into
two or more transitions terminating on
orthogonal target vertices (i.e., vertices in
different regions of a composite state). (G)
(D)
Join Vertical/Horizontal
Serves to merge several transitions
emanating from source vertices in different
orthogonal regions. (G)
(D)
Protocol Transition
A protocol transition (transition as
specialized in the ProtocolStateMachines
package) specifies a legal transition for an
operation. Transitions of the protocol state (T)
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.
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.
Action
An action is a named
element that is the
fundamental unit of an (B)
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.
Opaque Action
An opaque action is
introduced for
implementing specific
actions or for use as a
temporary placeholder
before some other actions
are chosen.
Any Action
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 (SHIFT+B)
connected by activity
edges. The ActivityNode
replaces the use of the
StateVertex and its
children for activity
modeling in UML.
Data Store
A data store node is a
central buffer node for a
non-transient information. (SHIFT+D)
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.
Activity Parameter Node
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.
Control Flow
Is an edge that starts an
activity node after the
previous one is finished. (F)
Objects and data cannot
pass along the control flow
edge.
Activity Final
An activity final node is a
final node that stops all
flows in an activity. (D)
Decision
Decision is a control node
that chooses between
outgoing flows. A decision
node has one incoming (G)
edge and multiple
outgoing activity edges.
Merge
A merge node is a control
node that brings together
multiple alternate flows. It
(G)
is not used to synchronize
concurrent flows but it is
used to accept one among
several alternate flows.
Fork/Join Horizontal
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
the specified exception (P)
occurs during the
execution of the protected
node.
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.
Loop Node
A loop node is a structured
activity node that
represents a loop with the
setup, test, and body
sections.
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.
Input Pin
An input pin is a pin that
holds input values to be
consumed by an action. (SHIFT+I)
They are object nodes that
receive values from other
actions through object
flows.
Output Pin
A pin that holds output
values produced by an
action. Output pins are (SHIFT+O)
object 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 (SHIFT+V)
according to the class,
dividing an activity
diagram.
(SHIFT+W)
TIP! You can create a new Activity diagram under the following elements:
Action
NEW! Structured Activity Node
Expansion Region
Conditional Node
Loop Node
Sequence Node
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.
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:
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.
For applying the Activity diagram layout tool, see Activity Diagram Layout Tool on page 206.
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 makes 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 round-trip engineering
operations.
Component
The Component may be
used to define the
requirements for each (K)
physical software
element.
Component Instance
An instance of a
component.
(A)
Port
Ports represent
interaction points
between a classifier and
(SHIFT+R)
its environment. A port
has the ability to specify
that any requests
arriving at this port are
handled.
Artifact
An artifact represents a
physical piece of
information that is used (B)
or produced by a
software development
process. Examples of
Artifacts include models,
source files, scripts, and
binary executable files.
An Artifact may
constitute the
implementation of a
deployable component.
Deployment
Specification
It indicates a set of
properties that defines
how a component
should be deployed.
Deployment
Specification Instance
An instance of a
deployment
specification element.
Package
A group of classes and
other model elements.
(P)
Interface
All functionalities
implemented by a
particular component.
(F)
Interface Realization
The classifier at the tail
of the arrow implements
the interface that is
(R)
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.
Component
Realization
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.
Realization
A realization signifies
that the client set of
elements are an
(E)
implementation of the
supplier set, which
serves as the
specification.
Usage
A usage is a relationship
in which one element
requires another (U)
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.
Manifestation
A manifestation is the
concrete physical
rendering of one or more
model elements by an
artifact.
Generalization
(G)
Link
A relationship between a
specification element
and an implementation (L)
element.
Communication Path
A communication path is
an association between
two DeploymentTargets,
through which they are
able to exchange signals
and messages.
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, 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
components.
Execution
Environment
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.
Device Instance
Deployment
Specification Instance
An instance of a
deployment
specification element.
Package
A group of classes and
other model elements.
(P)
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.
Generalization
(G)
Link
A relationship between a
specification element
and an implementation (L)
element.
Communication Path
A communication path is
an association between
two DeploymentTargets,
through which they are
able to exchange signals
and messages.
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).
Model
A model is an
abstraction of a physical
system from a particular (M)
point of view. A model
contains a hierarchy of
packages/subsystems
and other model
elements that describe
the system.
Profile
A Profile is a kind of
Package that extends a
reference metamodel.
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.
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.
Package
A group of classes and
other model elements.
(P)
Model
A model is an
abstraction of a physical
system from a particular (M)
point of view. A model
contains a hierarchy of
packages/subsystems
and other model
elements that describe
the system.
Class
(C)
Data Type
Primitive Type
Enumeration
A user-defined data type
whose instances are a
set of user-specified (K)
named enumeration
literals. The literals have
a relative order but no
algebra is defined on
them.
Profile Application
A profile application is
used to show which
profiles have been
applied to a package.
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.
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.
Generalization
(G)
Association
A connection among
classes, which also
(S)
means a connection
among objects of those
classes.
Direct Association
A directed relationship
represents a
relationship between a
collection of source
model elements and a
collection of target
model elements.
(P)
Port
A port may appear either on a
contained part representing a port on
that part, or on the boundary of the (SHIFT+R)
class diagram, representing a port on
the represented classifier itself.
Collaboration
A collaboration describes a structure
of collaborating elements (roles),
each performing a specialized (Q)
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.
Collaboration Use
A collaboration use represents one
particular use of a collaboration to
explain the relationships between the (U)
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
Each connector may be attached to
two or more connectable elements, (C)
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.
(B)
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 col-
laboration.
2. To the Observer collaboration add Subject property (CallQueue type) and Observer property
(SlidingBarIcon type)..
Create a composite structure diagram inside the collaboration. The Select Parts dialog will
open.
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 547.
For the general information about working with diagrams see chapter Diagramming on page 150.
If there is a need, you can enable or disable a plugin that allows to create the appropriate extension diagram in
the Plugins tab of the Environment Options dialog. For more information see "Customizing Environment
Options" on page 89.
Patterns
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 the detailed description see MagicDraw OpenAPI UserGuide.pdf.
For a detailed description of the Pattern Wizard, see section Controlling Merge memory usage on page 352.
Common Elements
Toolbar Button Button (Hot
key)
Selection
(Escape)
Sticky Button
(Z)
Text Box
(X)
Text Box
(HTML Text)
(SHIFT+X)
Note
(N)
Note
(HTML Text)
(SHIFT+N)
Comment
Comment
(HTML Text)
Anchor
(H)
Constraint
(SHIFT+H)
Containment
(SHIFT+C)
(SHIFT+D)
Separator
(W)
Rectangular
Shape
(SHIFT+Q)
User Interface (UI) Modeling diagram makes it possible to build prototypes of user interfaces, connect UI mock-
ups with whole Architectural model, export them as images, and create browsable reports for presentations. In
short, they help gather information faster and thus save time and money.
Various versions of user interfaces need to be tested in order to see how clients respond. This is especially true
if you work on key dialogs like for example a sign up screen for a website or an e-commerce application.
Working with User Interface prototypes instead of "real" user interfaces will thus enable you to work with small
details such as color and the position of a button and substantially reduce designer and programmer overhead
in the design phase.
You can build up mock-ups or prototypes, get quick feedback from prospective users, and take and reuse the
feedback for future designs. All this is possible with User Interface prototyping. The feedback loop makes for
quicker mature designs that work for everybody, which is what really matters.
Integrate GUI development with UML specifications since this is a new field with increased
design capability and since it is easier to see missing parts in UML or User Interface modeling.
Help business analysts gather requirements because of the permanent feedback from
prospective users, which makes it easier for them to get all the information needed.
Create browsable User Interface prototypes / GUI simulation / Story boarding since
several prototypes can be connected via hyperlinks with one another and then be presented
together in a report and simulate the workflow of an application.
Resolve flow issues as it is easier to think through a problem when a user-related interface
can be changed quickly.
Get "buy-in" from stakeholders as it can be shown more rapidly how a particular user
interface will look like.
Run a usability test before full production so that potential errors in usability like overfilled
screens or a usage too complicated can be avoided.
Test a series of interaction widgets. You may think, for example, that another text field or
button would be good on a screen. Since modifying a prototype is so easy, it is not a problem to
present these suggestions to others.
http://today.java.net/pub/a/today/2005/08/23/prototyping.html
http://www.scottberkun.com/essays/12-the-art-of-ui-prototyping/
After a project is loaded and a diagram is created, UI modeling elements can be added to the diagram pane.
Simply drag and drop them out of the Diagrams modeling elements toolbar.
For further information, see User Interface Modeling on page 576 and Case Studies for User Interface
Modeling on page 588.
For User Interface Modeling, see Case Studies for User Interface Modeling on page 588. Three case studies
will provide step-by-step instructions how to build user interfaces and create browsable reports.
The following table lists all available User Interface modeling elements and their properties.
A bordered panel.
Panel*
* NOTE The elements marked with an asterisk (*) are the Container elements and
can nest other components.
Modifying a table
You can add columns and rows to a table, order and name them. When expanding a table in the Browser tree,
the structure of the table will be displayed. Rows are added directly to the model element of the table. Columns
are stored in the Columns Enumeration. For every new column a new Cell will automatically be added to every
row. To add a value to the table, you need to edit the name of the Cell.
1. Right-click on the table element in the Browser tree to open the shortcut menu.
2. Select New Element and then Row. New row will be added to the table.
3. Type in a title for the new row.
1. Expand the Table element in Browser. You will see the Cell elements listed under the Table
elements.
2. Change the name of the Cell:
3. Select a Cell element in Browser and press F2. The Cell text area will turn to editable.
4. Slowly double-click on the Cell in Browser. The Cell text area will turn to editable.
5. Right-click on the Cell element and select Specification. The Cell specification dialog box will
open. Specify the Text property and click Close.
To add a value to the table, you need to edit the text property of the cell.
Modifying a tree
You can add as many nodes and leaves as you need to a tree and to any node in that tree and also change the
order of the elements of a tree.
Nesting
You can move and arrange user interface modeling elements, since they nest each other, and thus create deep
structured User Interface models. However, not all elements have the nesting ability: only Container elements
can nest other elements (these elements are marked with an asterisk (*) in the section User Interface Modeling
diagram elements on page 576).
As Figure 377 on page 584 shows, all frames nest in each others and, as a result, if you were to move the
element with title Frame 1, all other elements would stay in position within this element.
Figure 377 -- Example of a deep structure that was created using containers
Reusability
If you have created a complex model and need to use it again, you do not have to create a new one. All you
need to do is select the elements, copy them and then paste them into the same diagram or in any other
diagram. You can also reuse just a single element by copying and pasting it or by dragging it from the Browser
onto the diagram pane.
Specifying elements
You can modify UI modeling elements by editing their properties in the following three ways:
Via the Specification dialog box.
Via the shortcut menu.
On a diagram pane.
The so called boolean properties that have only two values can also be edited via the shortcut menu.
Figure 379 -- Shortcut menu of the Slider element with boolean properties
For the elements that own a text or a title, for example a button or a frame, it is also possible to edit the
appropriate properties straight on a diagram.
Icon usage
Some elements are capable of owning an icon. User Interface Modeling provides a number of frequently-used
icons such as cut, delete, undo/redo, etc. Of course, it is also possible to use any images from your computer
as icons.
To add an icon
NOTE To find out which elements can have an icon, see User Interface
Modeling diagram elements on page 576.
2. Right click on the element and select Specification in the shortcut menu.
3. In the Icon list, select an icon you want to appear on the element (Figure 381 on page 587).
NOTE If you want to use any image from your computer as an icon,
click custom.
User Interface Modeling also enables you to modify user interface elements via symbol properties.
TIP! If you want to set, for example, the same background color to more
than one UI modeling element, you can select all these elements in the
diagram and then change the required property for all of them in the
same way.
User Interface Modeling enables you to create browsable reports. All you need to do, when creating a
breathable report, is add a hyperlink to the UI model element, is to and link it to the other one. Once a report of
these models has been created, click on any element in the report. You will then be directed to the other
diagram.
As Figure 383 on page 590 shows, when you click OK in the upper left-hand frame you will be directed to the
next frame. And using the OK of this frame you can get to a couple of frames in which you can step forward and
backward as you want since they are all linked to one another.
Case Study 3 - User Interface Prototyping Example on page 594 provides an example of how this feature
works and explains how to add hyperlinks and create browsable reports.
Case Study 1 - Modelling User Interface for the Report Wizard Window
This case study provides step-by-step instructions for modeling the MagicDraw Report Wizard window.
1. Click the User Interface Diagram button in the main diagram toolbar.
2. Name the new diagram Report Wizard.
Figure 383 -- Report Wizard Frame with Group Boxes and Separator
For example this user interface model could now be exported as an image. The steps to do this are as follows:
1. Select Save As Image from the File menu.
2. In a new dialog mark Active Diagram.
3. In Image File define the location where the image should be placed.
4. Select Joint Photographic Experts Group (*.jpg) in Image Format and then press the Save-
Button. Of course you can also take another format if you want to.
This case study contains step-by-step instructions showing how to create a User Interface model with Sliders. It
also shows how to customize the symbol properties of User Interface components. It does not explain,
however, how to create a new project and a new diagram since those are explained in Case Study 1 -
Modelling User Interface for the Report Wizard Window on page 589.
3.4 Select given value 0 0 out of property Values and rename it to 0 Red. Rename the
other two given values to 50 Blue and 100 White.*
3.5 Draw two more sliders and repeat last steps setting values as shown in Figure 386
on page 593.
* NOTE With regard to setting the values of a slider it is important to know that
there is no empty space between 0. 0, for example, represents a new
line. So, in this case, when entering a value, it should look like this:
0
0
Figure 386 -- Symbol Properties Customization Frame with Added Labels and Sliders
This case study shows how to connect several user interface models with one another and create a browsable
report out of them to display the wildfowl of an application. The models should represent a test application with
a Login Dialog, a Test Browser and a test with several questions. Here are step-by-step instructions for adding
hyperlinks and creating browsable reports.
Content Diagram
NOTE This feature is available in Standard, Professional, Architect, and Enterprise edi-
tions.
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 content diagrams have their own specifications, wherein you can specify their name, documentation, and
view the relationships in which they participate. You can also add stereotypes, tagged values, and constraints.
Buttons for creating diagram shapes are grouped into categories in the content diagram pallet.
Package
(P)
UML Diagrams
Class Diagram
Creates a class diagram.
Communication Diagram
Creates a communication dia-
gram.
Sequence Diagram
Creates a sequence diagram.
Activity Diagram
Creates an activity diagram.
Component Diagram
Creates a component diagram
Object Diagram
Creates an object diagram
Package Diagram
Creates a package diagram
Deployment Diagram
Creates a deployment diagram
Profile Diagram
Creates a profile diagram
Interaction Overview
Diagram
Creates an interaction
overview diagram.
Other Diagrams
CORBA IDL Diagram
Creates a CORBA IDL dia-
gram.
Networking Diagram
Creates a networking diagram
Struts Diagram
Creates a struts diagram.
Time Diagram
Creates a time diagram.
Web Diagram
Creates a web diagram.
Content Diagram
Creates a content diagram.
Analysis Diagrams
Relation Map Diagram
Creates a relation map
diagram.
Dependency Matrix
Creates a dependency matrix.
Robustness Diagram
Creates a robustness diagram.
Generic Table
Creates a generic table.
Robustness Diagram
NOTE This feature is available in Standard, Professional, Architect, and Enterprise edi-
tions.
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.
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.
Boundary
Actors use the boundary objects
to communicate with the system
(sometimes called the interface
(B)
objects).
A class with a stereotype
boundary
Control
Serves as the glue between
the boundary objects and the
entity objects.
(C)
A class with a stereotype con-
trol
Entity
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
(S)
navigability = true values.
Web Diagram
NOTE This feature is available in Standard, Professional, Architect, and Enterprise edi-
tions.
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.
(SHIFT+G)
Server Page
(SHIFT+S)
Form
(SHIFT+F)
Frame
(SHIFT+E)
Target
(SHIFT+T)
Java Script
(SHIFT+J)
(SHIFT+P)
Builds
(B)
Link
(L)
Redirect
(T)
Targeted Link
(SHIFT+L)
Frame Content
(SHIFT+O)
Submit
(U)
Object
(O)
(SHIFT+R)
IIOP
(SHIFT+I)
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 MagicDraw Code Engineering
UserGuide.pdf, 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.
(M)
CORBA IDL Interface
(U)
CORBA IDL Value
(V)
Class by Pattern
SHIFT+P
Generalization
(G)
Truncatable Generalization
Interface
(I)
You can select either the UML Interface or the UML Class as a base element for the CORBA Interface. For
more information about the CORBA IDL Interface implementation, see CORBA Interface Implementation in
agicDraw Code Engineering UserGuide.pdf.
WSDL Diagram
NOTE This feature is available in Architect and Enterprise editions.
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.
(M)
WSDLporttype
(T)
WSDLbinding
(B)
WSDLport
(SHIFT+P)
WSDLservice
(S)
WSDLdefinitio
ns
(D)
WSDLtypes
(Y)
WSDLimport
(I)
Xmlns
(SHIFT+L)
XSDnamespac
e
(P)
Time Diagram
NOTE This feature is available in Standard, Professional, Architect, and
Enterprise editions.
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.
Lifeline SAshedRes
Message RTevent,
CRimmediate
Message CRimmediate
Message SAtrigger
Struts Diagram
NOTE This feature is available in Professional, Architect, and
Enterprise editions.
(C)
Class by Pattern
(SHIFT+P)
Interface
(I)
ActionForm class for
struts
(G)
Action class for
struts
Package
(P)
Model
(M)
Interface Realization
(R)
Realization
(E)
Abstraction
(T)
(U)
Generalization
(G)
Association
(S)
Aggregation
(A)
Composition
(F)
Networking Diagram
NOTE This feature is available in Standard, Professional, Architect, and
Enterprise editions.
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.
Application Server
DB Server
File Server
Proxy Server
Web Server
PC
Laptop
Monitor
Fax
Plotter
Printer
Scanner
Modem
Router
Firewall
Database
Program
Internet Browser
Document
File
Wireless Network
Internet
Building
City
Actor
User
HTTP
Ethernet
RMI
Dependency Matrix
For more information about the dependency matrix, see section Dependency Matrix on page 438.
Generic Table
NOTE This feature is available in Standard, Professional, Architect, and
Enterprise editions.
As of version 17.0 a generic table feature is introduced. The purpose of generic table is enabling the user to
review the group of elements as one set in the same place. With the help of generic table you can do the
following:
Review and edit specifications of model elements in a tabular form.
Modify selected group of element properties at once.
Create elements of the selected types in the one table.
TIP! You can also read about the generic table feature and analyze given exam-
ples within the Generic table project sample.
To open the sample, do either:
On the Welcome screen, select Samples > Diagrams > Generic table.
Go to <MagicDraw installation directory>\samples\diagrams and open the
generic table.mdzip file.
All the examples given in this section are based on the data from this sample.
Moreover, this section describes several ways for creating a generic table in more detail. They are as follows:
Creating an empty generic table without using any wizard. Once created the table can be
filled with data using the generic table environment capabilities. For more information see
procedure To create an empty generic table on page 618.
Creating a generic table using the diagram creation wizard. Once created the table is
already filled with data. For more information see To create a generic table using the diagram
creation wizard on page 620.
Creating a generic table for a set of selected elements using the diagram creation
wizard. Note that element types, elements, and columns for the generic table will be selected
automatically according to the set of selected elements. For more information see To create a
new generic table for a set of selected elements on page 622.
4. Table columns should be specified. Columns represent element properties. This action is also
optional. The creation of the table could be finished without specifying columns.
You can modify the table after it is created. For more information see Modifying generic table on page 623.
1. Open the Create Diagram dialog. It could be done in one of the following ways:
On the Analysis diagrams toolbar, click the ! button.
From the main menu, select Diagrams > Analysis Diagram > Generic Table and
click Add.
On the content diagram pallet, click the Generic Table button.
Right-click the element or its symbol, that is a possible diagram owner, and from the
shortcut menu select New Diagram > Analysis Diagram > Generic Table.
2. Type the name of the table and select the owner for it.
Figure 393 -- Specifying name for a new generic table and selecting the owner
The owner for the generic table could be one of the following:
Selected in the presented model tree.
Created as a new owner by clicking the Create Owner button on the Create
Diagram dialog (the list of available elements will be provided).
Cloned as a copy of the possible diagram owner with all its content by clicking the
Clone button on the Create Diagram dialog.
NOTE If a generic table is created using the elements shortcut menu in the
Model Browser, the element in which it has been created is automati-
cally assigned as the owner of this table.
The list of elements and stereotypes is presented in the Select Element Types dialog. Select
desired element types and/or stereotypes. This action is optional, thus you can continue the
creation without selecting any type or stereotype. You will be able to modify selected element
types when the generic table is created.
Selected element types will be display in the Element Type box in the diagram pane.
4. Add elements to the table using the Add New or Add Existing buttons. For more information
about adding elements to a generic table, refer to the procedure To add a new element on
page 624.
5. Specify columns for the table using the Show Columns button. For more information about
specifying columns, refer to the procedure To add or remove columns on page 625.
1. Open the Generic Table Wizard dialog. It could be done in one of the following ways:
On the Diagrams menu, click Diagram Wizards > Generic Table Wizard.
On the Analyze menu, click Model Visualizer.
2. Type the name of the table and select the owner for it.
Figure 395 -- Generic table creation wizard. Specifying name for a new generic table and selecting its owner
For the instructions on how to select the generic table owner see step #2 of the procedure To
create an empty generic table on page 618.
For the instruction on how to select element types see step #3 of the procedure To create an
empty generic table on page 618.
4. Select elements.
Select elements from the model tree and add them into the Selected list. For more information
about the element selection and dialog buttons see the section Elements multiple selection on
page 284.
NOTES You may select any element from the model tree, though only elements of
selected types will be added into the generic table.
If the generic table creating wizard is opened from one or more elements
shortcut menu, the element or the set of elements will be added to the
Selected list automatically.
The list of all available properties corresponding to selected element types is presented in the
dialog. If selected element types have tags, they are also displayed in the list. All selected
properties will be displayed as columns in the generic table. The Name property is selected
automatically, all other properties should be selected by the user.
Select properties you need to see as columns to finish the table.
Column names in the generic table heading are set automatically, and they are element property names. You
can not change column names.
If an element has some properties with the same names in a heading (for example, in associations or if a tag of
stereotypes is selected as a column), the detailed column names could provide more precise information.
In the generic table from the table shortcut menu, select Table Options > Show Detailed
Column Name. The group name (between brackets), to which the selected property belongs,
and/or the stereotype name (just before the property name) will be displayed in the column
heading.
The following picture gives the example of three different columns with the same name for the association
element: Name, Name (Role of A), and Name (Role of B) and a column for the class element with the
stereotype Teacher.Name (Tags). If the command Show Detailed Column Name were not selected, there
would be four columns with same headings, i.e., Name.
To sort data
Click the header of the column by which you want to sort table data. A small arrow appears on
that column header. This arrow shows, how records are sorted: ascending or descending.
1. Click the ... button in the Criteria area (see the picture below). The dialog with the element and
stereotype list will open.
To remove element types click to clear appropriate check boxes in the list.
IMPORTANT There should be at least the one element type selected in the Element
Type box to add a new element.
1. In the generic table toolbars, click the Add New button. If there is more than the one element
type selected, a submenu with the list of available element types will open.
NOTE Only element types available to create in a possible diagram owner
which contains the generic table will be displayed in the submenu.
2. Select an element type. The element of the selected type will be added to the last row of the
table and to the model.
3. Name the new element in the table.
1. In the generic table toolbars, click the Add Existing button. The Select Element dialog will
open.
2. Select the element you want to add to the generic table. This element and its name will be
added to the table as the last row.
TIP! Use the Multiple Selection mode to add more than one element at a
time.
On the generic table toolbars, click Show Columns > Select Columns to open the
dialog with all properties, including tags of stereotypes corresponding to selected
element types.
2. Do either:
Select the properties you want to see as columns in the table.
Unselect the properties you do not want to see as columns is the table.
1. Click a cell you want to edit. The edit mode is turns in the cell.
IMPORTANT! All changes made in the generic table are saved in the model.
You can export the selected generic table to the *.html or *.csv format and NEW! to customize the exported to
the *.html format table style.
The table of *.html format style is specified in the template.html file which is in the <MagicDraw installation
directory>\data\table folder. The template.html file stores cascading style sheets (CSS) that controls the
formatting of the exported generic table in the *.html format.
NOTE The table of *.html format style must be customized before exporting a
generic table.
IMPORTANT! Elements you want to add should correspond to selected element types.
Select an element in the Model Browser and drag it to the generic table. The element will be
added to the generic table recursively.
NOTE If you drag a package, all its content will be added to the generic
table.
Click the column header and drag it to a desired place. Only the first column can not be moved.
Buttons displayed in Figure 405 on page 628 are intended to be used for editing the generic table.
NOTE If generic table toolbars are inactive within a teamwork project, try to lock
the table for edit (make sure you have the right to edit model of this proj-
ect).
(CTRL+D)
Up Moves the selected element up one row. All elements are renumbered
automatically after the moving is done.
(CTRL+UP)
Down Moves the selected element one row. All elements are renumbered
automatically after the moving is done.
(CTRL+DOWN)
Show Col- Opens the list of available columns. You can select columns either to
umns show or to hide in the table.
Export Exports the content of the table in the *.html or *.csv formats.
Table Toolbars
Select to display or clear to hide these generic table toolbar buttons:
Table Edit
Add New
Add Existing
Delete From Table
Delete
Select to display or clear to hide these generic table toolbar buttons:
Table Layout
Up
Down
Show Columns
Select to display or clear to hide the Export button in the generic table
Table Publish
toolbar.
Table Misc. Select to display or clear to hide the Suppress/ Expand filters
area button in the generic table toolbar.
Select to make generic table toolbars rearrangeable or clear the selec-
Rerrangeable
tion to lock toolbars in their current position.
Select to make available or clear the selection to make unavailable the
Hidable
following commands in the generic table shortcut menu:
Table Edit
Table Layout
Table Publish
Table Misc.
Table Options
Select to show the detailed information such as stereotype or group
Show Detailed Column Name
name in a column heading.
Clear the selection to hide the detailed information.
(SHIFT+X)
Note A graphical symbol
containing a textual
information. Use a note
(N) to add any information
Note (HTML needed for your
text)
diagram. Usually the
(SHIFT+N) note is connected to
another symbol using an
anchor line.
(SHIFT+D)
Image Shape (I) Provides a simple and
quick way to insert
pictures into a diagram.
They can be logo, graph,
table, etc.
Separator Separates different parts
of a diagram with a
horizontal line.
(W)
Rectangular Separates different parts
Shape of a diagram with a
rectangular shape.
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.
1. Connect a note to an element, the constraint and/or tagged value of which is specified, 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.
Anchor
Use anchors to relate symbol to a note or comment. You can change the anchor style to rectilinear, oblique, or
bezier.
Select the anchor and press CTRL+D. The attached model element will be removed from
Annotated Element property.
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.
From the constraint path shortcut menu, choose Select Constraint and select one of the
following:
Select <new>. The Select Extension Element Storage dialog opens. Select the folder where
the constraint will be stored and click OK. The constraint Specification window opens. In this
window, specify desired property values.
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.
1. Click the Image Shape button on the Common toolbar. The Open dialog 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.
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.
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 window. You can also define a
comment stereotypes, tagged values, and constraints.
TIP! If a comment contains stereotypes, tagged values, and/or constraints, you can
choose to display them in the content of the note.
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 state machine).
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.
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 "Diagramming" on page 150.
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 opens. Specify the metaclass that you want to extend and click OK.
Double-click to open the stereotype Specification window. For a detailed description of this
dialog, see Section "Stereotype properties" on page 639.
From the Profile or Package shortcut menu in the Browser, select New, and then select
Stereotype.
NOTE For more information about displaying stereotype icon on shape, see
"Displaying icon or image" on page 260.
1. In the stereotype Specification window, right-click the Icon property or the image assigned to
the property to open the shortcut menu.
2. On the shortcut menu, click Open Specification. The Image specification window opens
wherein you can see and specify image properties.
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 be applied to the symbol on
diagram and in Browser.
To order stereotypes:
1. Invoke symbol shortcut menu, select the Stereotype command. The list of stereotypes opens
(see Figure 407 on page 638).
2. Click the Order button. The Order Stereotypes dialog opens (see Figure 408 on page 638).
3. Click Up or Down buttons to order stereotypes.
Figure 407 -- The Order button in the Stereotypes list, in the Class symbol shortcut menu
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 properties
You can specify stereotype properties in the stereotype Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
Applying a stereotype
As of MagicDraw version 15.0 you can change the stereotype name and its icon visibility on an element shape.
On the element shape shortcut menu, point to Presentation Options > Show Stereotypes,
and then select a desired stereotype display mode.
In the Symbol Properties dialog select a new value for the Show Stereotypes property.
Text
Icon
- displayed displayed*
Shape Image
and Text
Do Not Display
* - 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 included in the
Relationships, Roles and Diagram Frame element property list.
Parent topic:
Related topics:
Stereotype notation
Since v 16.6 MagicDraw supports standard stereotype notations. Stereotype notations in diagrams use the
guillemets instead of symbols (see the following figure).
However, when editing elements in a diagram, you can still enter the stereotype names between the
symbols.
Tag
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 information 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 722.
A tagged value consists of two parts: name and value (example: Author = Joe).
For more information about stereotype properties, refer to Stereotype properties on page 639 f.
In the element Specification window, Tags group, select an available tag definition and click the
Create Value button.
Set the tag value using drag and drop. Now you can drag an element from the Containment
tree and drop in the Specification window tag value area.
Button Description
Up Moves the created value to an upper position in the list.
1. In the stereotype Specification window, expand the Tag Definitions branch and select the tag
definition.
2. Assign a value for the Default Value property.
3. Create an element and assign a stereotype for this element. The element will have tags with
assigned default values.
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.
The following conditions are required to set the default tag values:
1. The element should have an assigned stereotype with a specified default value property.
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.
Related topics
Stereotype
Attribute
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.
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. 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.
Edit constraints in the Constraints tab of the Model Element Specification window.
From the element shortcut menu in the Browser, select New Element > Constraint.
Click the Inner Elements tab in the Specification window for each model element and click the
Create button (select Constraint from the open list, if needed). Specify the information about
the constraint in the constraint Specification window.
Click the Constraints tab in the Specification window for each model element and click the
Create button. Type the name and specification of the constraint.
1. Click the Constraints tab in the Specification window for each model element and click the
Apply button.
2. The Select Elements dialog 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 when you are done.
You can specify constraint properties in the constraint Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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.
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 knowledge level 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:
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{}
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:
context LoyaltyAccount::getCustomerName() : String
body: Membership.card.owner.name
4. In the Language list, click OCL and select the Check OCL syntax check box. In the Body box,
incorrect expression will be underlined in red.
Profile
A profile is a kind of a package that extends a reference metamodel. The primary extension construct is a
stereotype. Stereotypes are defined as a part of profiles.
A profile introduces several constraints or restrictions to ordinary metamodeling. Constraints and restrictions
are realized using metaclasses defined in the package. It is a restricted form of a metamodel that always must
be related to a reference metamodel, such as UML, as it is described below. It cannot be used without its
reference 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.
Each profile contains a set of stereotypes. Profiles are defined as separate modules. Profiles are loaded on
demand, that is, when you start or open your project only profiles used in that project are loaded.
Profiles are defined using the UML extensibility mechanisms that allow modelers to customize UML for specific
domains, for example, for software development processes. In MagicDraw, the mechanism of the profile is
similar to the functionality of modules.
MagicDraw comes with a number of predefined profiles: UML Standard Profile, DDL, EDOC, and other. All
MagicDraw profiles are stored in <MagicDraw installation directory>\profiles.
Profile properties
The profile is defined as a package, that is, it has package properties. For the detailed description of packages,
see "Package" on page 725.
You can specify profile properties in the profile Specification window. You can also find descriptions of each
property in this window. Descriptions are provided in the description area below the property list. For more
information about using the Specification window, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
Creating profiles
1. In the Containment tree, select a package, a model, or another profile, wherein you want to
create the new profile.
2. From the shortcut menu of the selected package, model, or profile, select New Element >
Profile.
Expand the Profile Diagram button group and click the Profile button.
Expand the Package Diagram button group, click the Package arrow to see more
buttons, and then click the Profile button.
3. Click a free space of the diagram pane.
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.
Action Properties
You can specify action properties in the action Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
Related topics
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 Description
Accept event action
Assigning signals
To assign a signal to an accept event action you can use any of the following features:
Drag-and-drop operation
Accept event actions shortcut menu
IMPORTANT! To assign a signal to an accept event action, at least the one signal
element should exist in the project.
3. Select the signal from the list or click New Signal and create a new one. For more information
about creating a new element see Section "Element creation mode" on page 283.
Once the signal is assigned to the accept event action, a signal event and a trigger for this action are created
automatically. If you change the signal, the signal event and the trigger will change accordingly to a new signal.
The following figure shows the signal event and the trigger positions in the Containment tree.
To draw the accept event action with the time event shape
In the activity diagram panel select the Time Event button and then click the diagram pane.
2. Click the Rotate State button on the upper-right side of the shape. The name of the accept
event action will appear on the opposite side of the shape.
You can specify for an accept event action, whether there is a single output pin for the event, or multiple output
pins for the attributes of the event.
1. Select the accept event action and open its Specification window.
2. Select or clear the Is Unmarshall check box. If the value is set to:
false, then there is a single output pin for the event, and a real-world instance of the
signal is placed on this output pin.
true, then there are multiple output pins for the attributes of the event, and feature
values of the signal instance are placed on the corresponding output pins.
Figure 415 -- The Receive Order and Fill Order call behavior actions
From the call behavior action shortcut menu select the Behavior command.
In the Call Behavior Action Specification window, modify the Behavior field.
NOTES Double click the call behavior action with the assigned behavior - the
behavior Specification window 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.
From the call behavior action symbols shortcut menu, select New Diagram and then diagram
from the list. This accelerates the creation of behavior diagrams.
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.
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 Description
The call operation action with getOrder operation
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 In this example the call operation
action is named Get supplementary
order. It has been assigned
getOrder operation whose type is
OrdersDB class.
Call operation action with hidden classified name
From the action shortcut menu, select the Operation command or set an operation in the Call
Operation Action Specification window, Operation property specification cell.
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.
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.
Opaque Action
The opaque action is introduced for implementation-specific actions or for use as a temporary placeholder
before some other actions are chosen.
There are additional Body and Language text fields in the Opaque Action Specification window.
Notation Description
Send signal action 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.
Assigning signals
To assign a signal to a send signal action you can use any of the following features:
Send signal actions Specification window
Drag-and-drop operation
Send signal actions shortcut menu
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 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.
4. Select the pin from the list. The argument value is created and the pin Specification window
opens.
NOTE You can specify pin properties in the pin Specification window. In the
same window, you can find the description of each property.
Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage,
see "Specification Window" on page 220.
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.
You can create and apply a time duration constraint on an action that states that the output must occur after
delay from the input.
1. Select an action and create the input and output pins to specify the events.
2. Create a duration constraint for the action:
2.1. In the Call Behavior Action Specification window, click the Constraints tab.
2.2. Click the Apply button. The Select Constraint dialog opens.
2.3. Select the constraint storage place and click the Create button. In the menu that
opens, select the Duration Constraint command. The Duration Constraint
Specification window opens.
3. Specify a duration interval. In the Duration Constraint dialog, 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:
4.1. In the open Duration Constraint Specification window, right-click the
Specification property specification cell. The following menu opens:
4.2. Select the Open Specification command. The Duration Interval Specification
window opens.
4.3. Right-click the Min property and select the Open Specification command. The
Duration Specification window opens.
4.4. In the Event field, click the ... button. The Select Element dialog opens. Select
the activity input pin.
4.5. 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 in the Specification window, click the Back
button.
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.
For general information about working with shapes, see "Diagramming" on page 150.
Actor Properties
You can specify actor properties in the actor Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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.
For a general information about working with symbols, see "Diagramming" on page 150.
Association Properties
You can specify association properties in the association Specification window. In the same window, you can
find the description of each property. Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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.
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
more detail diagrams with specified navigability, direction arrows and associations names
usually are not displayed in this type of diagrams.
See an example in Figure 420 on page 662 and Figure 421 on page 662. 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 420 -- The Direction Arrow points from Account class to User class
Figure 421 -- The Direction Arrow points from User class to Account 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).
4. Drag the path to the second class (path destination) and drop it there.
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.
Adding new Association always creates two roles or properties at both ends that are owned by the attached
Classifier by default. However, when one or both ends of the Association is or are not editable for some
reasons, for example, locked in Teamwork Server or located in a read-only profile/module), the properties will
be owned by the Association itself. In this case, MagicDraw will display a warning informing you about the
sometimes-unexpected issue of model creation (Figure 423 on page 663, Figure 424 on page 663).
Figure 424 -- The Add Association Dialog for Both Read-Only Classifiers
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.
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). See the procedure "To
define the association end visibility" on page 664.
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.
See the procedure "To place multiplicity values in the association path ends" on page 664.
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.
See the procedure "To add, edit, or remove a qualifier to/from an association end" on page 665.
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. See the procedure "To show the association ends as attributes on linked class shapes" on
page 665.
An association end is defined as a property. It has attribute properties defined in the Specification window.
You can specify association end properties in the association end Specification window. In the same window,
you can find the description of each property. Descriptions are presented in the description area of the
Specification window. For more information about the Specification window usage, see "Specification Window"
on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
Select Role A (<class name>) or Role B (<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.
Perform the following steps:
1 Open the selected association end Specification window.
2 Type an association end name in the Name property value cell.
From the association shortcut menu, select Role A (<class name>) or Role B (<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.
Perform the following steps:
1 Open the selected association Specification window.
2 Click the desired option button for an aggregation kind (None, Shared or
Composite).
Open the Association Specification dialog and from the Multiplicity drop-down list, select or
type the multiplicity value for the desired association end.
From the association shortcut menu, select Role A (<class name>) or Role B (<class
name>), then select the multiplicity value (1, *, 0..*, etc.).
1. From the class shortcut menu, select Symbol(s) Properties. The Symbol Properties dialog
opens.
2. In the Attribute group, click the Show Association End property value cell.
3. In the Show Association End list, click one of the following options:
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.
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.
A role indicates the 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).
Open the association end Specification window and select or clear the Navigable check box.
From the association shortcut menu, select Role A (<class name>) or Role B (<class
name>), and then select or clear the Navigable check box.
From both association ends shortcut menu, select the Show Navigability check boxes.
In the following figure, the association is navigable on both sides and its navigability is visible.
NOTEs To open the association 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 (<class
name>) or Role B (<class name>).
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 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.
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.
The following example shows that endA is owned by the Customer class and endB is owned by the
association.
Figure 429 -- 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.
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.
Double-click the selected class or select Specification from the class shortcut menu. The
Class Specification window opens. Click the Attributes tab and then click the Create button.
The Property Specification window 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.
You can specify attribute properties in the attribute Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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.
1. Select Create Roles from the class shortcut menu. A list of available attributes opens.
NOTE This command is visible only if one or more attribute types are other
classes of the model.
2. Select the attribute(s) you want to represent. An association relationship with a role is created.
TIP You can move attributes back to the class by dragging and dropping
them on the class shape.
The attribute type can be the other class, interface, or a primitive class, such as int or double.
In the Attribute Specification window, do one of the following:
In the Type list, select the type of an attribute .
In the Type list, click the ... button and select the type in the opened Select
Elements dialog.
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.
The attribute changeability controls the access by operations on the class on the opposite end.
Name Function
Is Read Only 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.
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.
A class is the descriptor for a set of objects with similar structure, behavior, and relationships. The model is
concerned with describing the intention of the class, that is, the rules that define it. The run-time execution
provides its extension, that is, its instances.
Classes are declared in 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.
You can specify class properties in the class Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
1. Double-click the selected class or select Specification from the class shortcut menu. The
Class Specification window opens.
2. Click the Inner Elements tab and then click the Create button or press Insert. Select the
element you wish to add from the list.
3. Click the selected element.
4. The corresponding Specification window opens. Define the class, use case or interface, and
click OK.
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 359.
Select Edit Compartment from the class shortcut menu. The Compartment Edit dialog 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.
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.
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, see "Defining Hyperlinks Between Elements" on page 273.
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 156.
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.
1. From the class shortcut menu, select Tools, and then Apply Pattern. The Pattern Wizard
dialog 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, see "Controlling Merge memory usage" on page 352.
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. For a
detailed description of this dialog, see "Setting Project Options" on page 106.
Show More Sign For Additional information sign '' in the class attributes list,
Attributes when a portion of attributes are omitted by editing a class
compartment.
Show More Sign For Additional information sign '' in the class operations list,
Operations when a portion of operations are omitted by editing a class
compartment.
Show Stereotypes Shows the stereotypes on a class.
Show Constraints Shows the constraints on a class.
Show Tagged Values Shows the tagged values on a class.
Show Owner 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.
You can specify collaboration properties in the collaboration Specification window. In the same window, you can
find the description of each property. Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
In the Collaboration Specification window, Behaviors tab, click the Create button. Define a
behavior in the open Specification window.
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 window.
NOTE You can edit the assigned classifier role in the Collaboration
Specification window, Behaviors tab.
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.
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.
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.
You can specify association end properties in the association end Specification window. In the same window,
you can find the description of each property. Descriptions are presented in the description area of the
Specification window. For more information about the Specification window usage, see "Specification Window"
on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
Component
A component represents all kinds of elements that make up the system. A component can always be
considered as an autonomous unit within a system or subsystem. It is a module having the following features:
A component is a replaceable and independent part of the system performing a specific action.
A component acts in a context of a well-defined architecture.
Components interact among each other using interfaces.
Components provides compartments for listing its provided and required interfaces, realizations, and artifacts.
For more information about working with symbols, see Diagramming on page 150.
You can specify component properties in the component Specification window. In the same window, you can
find the description of each property. Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
From the components shape shortcut menu, select Presentation Options and then clear/
select Suppress Interfaces, Suppress Realizations, or Suppress Artifacts check box.
From the components shape shortcut menu, select Symbol(s) Properties. In the opened
components Symbol Properties dialog, change the same check box values.
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.
Each connector may be attached to two or more connectable elements, each representing a set of instances.
You can specify connector and connector end properties in the connector and connector end Specification
window. In the same window, you can find the description of each property. Descriptions are presented in the
description area of the Specification window. For more information about the Specification window usage, see
"Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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,
NEW! Real, long, short, void, and String.
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.
In the Class, Package, Subsystem, and Model Specification widows, Inner Elements tab,
click Create and select a data type.
NOTE: You may create an enumeration by clicking the Enumeration button
from the class diagram toolbar:
From the created data type shortcut menu in the Model Browser, select the Create Symbol
command.
You can specify data type properties in the data type Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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).
You can specify enumeration properties in the enumeration Specification window. In the same window, you can
find the description of each property. Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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, NEW! Real,
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 the transition paths. Merges allow to merge the transition paths back together. The
symbol used for the merge is the same as for the decision.
Dependency
A dependency is a relationship signifying that a single or a set of model elements requires 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).
A dependency is shown as a dashed arrow between classes or packages. The model element at the tail of the
arrow (the client element) depends on the model element at the arrowhead (the supplier element). The arrow
can be labeled with an optional stereotype and an optional individual name.
NOTE You may also draw a dependency between a class and other class
elements, such as attributes and operations.
For more information about working with the symbols, see "Diagramming" on page 150.
Dependency, abstraction, and usage relationships defined in the dialog of the same structure. They differ from
one another only by the corresponding Specification name.
You can specify dependency properties in the dependency Specification window. In the same window, you can
find the description of each property. Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
You can specify template binding dependency properties in the template binding dependency Specification
window. In the same window, you can find the description of each property. Descriptions are presented in the
description area of the Specification window. For more information about the Specification window usage, see
"Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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 window. For a detailed description of this
dialog, see "The Dependency and Its Kinds Specification windows" on page 680.
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 window. For a detailed description of this dialog, see
"The Dependency and Its Kinds Specification windows" on page 680.
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.
Define a merge relationship in the Dependency Specification window. For a detailed description of this dialog,
see "The Dependency and Its Kinds Specification windows" on page 680.
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 window. For a detailed description of this
dialog, see "The Dependency and Its Kinds Specification windows" on page 680.
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 window. For a detailed description of this
dialog, see "The Dependency and Its Kinds Specification windows" on page 680.
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.
1. In the Class diagram toolbar, from the Abstraction group, select the Package Import path to
draw.
2. Open the Package Import Specification window and set the Visibility property to private.
Deployment
1. In the Deployment 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.
In the Component (or Deployment) diagram toolbar, right-click the Artifact button group. In the open list, select
the Deployment Specification to draw.
2. Between the Deployment relationship and Deployment Specification draw the Dependency
relationship. The Dependency is drawn without an arrow.
Events
An event is the specification of some occurrence that may potentially trigger effects by an object, i.e., an event
shows what should happen to change a particular state in a system.
Event types
Name Description
Any Receive Event A trigger for an AnyReceiveEvent is triggered by the receipt of any
message that is not explicitly handled by any related trigger.
Call Event A call event represents the reception of a request to invoke a specific
operation. A call event is distinct from the call action that caused it. A
call event 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.
Change Event A change event occurs when a Boolean-valued expression becomes
true. For example, as a result of a change in the value held in a slot
corresponding to an attribute, or a change in the value referenced by
a link corresponding to an association. A change event is raised
implicitly and is not the result of an explicit action.
Signal Event A signal event represents the receipt of an asynchronous signal. A
signal event may cause a response, such as a state machine
transition as specified in the classifier behavior of the classifier that
specified the receiver object, if the signal referenced by the send
request is mentioned in a reception owned or inherited by the
classifier that specified the receiver object.
Time Event A time event specifies a point in time by an expression. The
expression might be absolute or might be relative to some other point
in time.
Usability
Events may trigger the change of a particular state. Events are important in diagrams which represent a
behavior of a system. These diagrams are listed in the following table.
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:
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.
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.
You can specify extend and extension point properties in the extend and extension point Specification window.
In the same window, you can find the description of each property. Descriptions are presented in the description
area of the Specification window. For more information about the Specification window usage, see
"Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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 678.
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.
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 conditions or
subprocesses apply. Using the Combined Fragment, a fragment of the sequence diagram can be separated.
Draw the Critical Region combined fragment from the Sequence diagram toolbar, Option
button group.
Function Behavior
The function behavior allows modeling external functions that take only inputs and produce outputs. It has no
effect on the specified system.
In the Browser tree, right-click the Data package. In the shortcut menu, select the New Element command and
then select Function Behavior .
Gate
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.
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.
Related topics:
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
window. 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.
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 opens.
Draw a reply message from the interaction use, which refers to the diagram with the formal
gates. The Select Formal Gate dialog opens.
Draw a call, send, create, or delete a message to the combined fragment (outside combined
fragment). The Select Formal Gate dialog appears.
NOTE You can also view the formal and actual gates in the gates Interaction
Specification window, Interaction Use dialog, Combined Fragment dialog,
and the Actual Gates and Formal Gates panes.
1. Draw a message to invoke the Select Formal Gate dialog (see "To draw create an actual gate
of the formal gate" on page 688).
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 dialogopens.
NOTE The Select Formal Gates command exists only if there are formal gates.
The formal gate and actual gate usage in the sequence diagram
See the following figure where the getBalance message is drawn from the diagram frame to the theirBank
lifeline. The getBalance message has a gate.
See the following figure 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.
Generalization
For more information about working with symbols, see "Diagramming" on page 150.
You can specify generalization properties in the generalization Specification window. In the same window, you
can find the description of each property. Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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.
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 Function
Is Abstract Specifies whether the generalizable element may or may not have a
direct instance. True indicates that an instance of the generalizable
element must be an instance of a child of the generalizable element.
False indicates that there may 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.
Is Leaf 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.)
To define a generalizable model element (class, package, use case, etc.) as abstract or leaf
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.
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.
In the Generalization Specification window, near the Generalization Set box click "..." button.
In the open Select Elements dialog 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.
You can specify generalization set properties in the generalization set Specification window. In the same
window, you can find the description of each property. Descriptions are presented in the description area of the
Specification window. For more information about the Specification window usage, see "Specification Window"
on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
In the Generalization Set Specification window, the Generalization list 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.
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.
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.
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 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.
You can specify include properties in the include Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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 the class 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 check boxes.
5. Drag the class or information item on an association. An information flow is created.
Information Item
The Information Flows 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 detailed modeling
decisions on types or structures. Another purpose of information items and information 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.
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 opens.
Instance
An instance specification specifies the existence of an entity in a modeled system and completely or partially
describes the entity.
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 "Diagramming" on page 150.
You can specify instance properties in the instance Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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 window and in the Classifiers field, click the ... button. The
Select Elements dialog 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 window
1. Double-click an instance shape or select Specification from the shape shortcut menu.
2. The Instance Specification window appears. Click the ... button in the Classifiers 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.
From the instance shortcut menu, select/clear the Show Classifier check box.
1. Double-click an instance shape or select Specification from the shape shortcut menu.
2. The Instance Specification window opens. Click the Slots tab.
3. Click the Edit Value button and type the name of the value.
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 436 on page 698), slot type
qualified name (see Figure 437 on page 698) or no slot type (see Figure 438 on page 698) may be displayed
next to slot.
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.
Instance Specification
An instance specification represents an instance in a modeled system.
In the Component (or Deployment) diagram Node Instance, Component Instance, Artifact Instance elements
are the same Instance Specification elements with an assigned component, node or artifact.
1. In the Component (or Deployment) diagram toolbar, click the Component Instance button. The
Select Components dialog opens.
2. Select a component from the list or click the Create button to create a new one. Click OK.
The same is valid for the Node Instance and Artifact Instance creation.
TIP! Use the Node Instance button to create the Instance Specification with
assigned Node and the Node Instance will have a Node shape.
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).
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.
You can specify interaction use properties in the interaction use Specification window. In the same window, you
can find the description of each property. Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
In the Interaction Use Specification window, click the Refers To drop down list. A list of
interactions, created in the project, opens. Click the ... 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.
1. Add a reference to the diagram, from which the diagram frame formal message is created.
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 687.
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.
You can specify interface properties in the interface Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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.
1. In the Class diagram toolbar, select the Interface Realization path to draw from a class to an
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).
1. In the Class diagram toolbar, select the Usage path to draw from a class to an 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).
Working with s is similar to working with classes. For more information, see "Working with classes" on
page 670.
A general information about working with shapes is offered in "Diagramming" on page 150.
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 the following figure).
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 442 -- 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)
cannot be used.
It is an optional notation, a port does not display provided or required interfaces by default.
1. Create provided and required interfaces in the Class diagram. See procedures "To draw a
Provided Interface" on page 700 and "To draw a Required Interface" on page 700.
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, select the Show Provided Interfaces and Show Required Interfaces check boxes.
As Port can provide or require many interfaces, displayed or hidden interfaces can be managed in the Edit
Compartment dialog.
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
window, select the Provided/Required Interfaces pane.
For more information about provided and required interfaces, see the procedure "Provided and Required
Interfaces" on page 700.
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 "Fork and Join" on page 745.
Specify the internal transition in the Transition Specification window. For a detailed description of this dialog,
see "Transition" on page 756.
1. Double-click the state or select Specification from the state shortcut menu. The State
Specification window opens.
2. Click the Internal Transitions group.
3. Click the Create button. The Transition Specification window opens. Specify an internal
transition.
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 "Diagramming" on page 150.
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.
Select the Show Classifier check box from the lifeline shortcut menu.
To create lifelines for existing data (the interaction properties and parameters) or display all lifelines of the
interaction which are not displayed in the diagram
Drag and drop the selected element from the Browser to the diagram pane.
On the diagram shortcut menu, click Related Elements > Display Lifelines and, in the
Display Lifelines dialog, choose the required elements you want to display or create.
Related sections
Communication Diagram
Sequence Diagram
Lifeline in the Sequence Diagram
Message
To destroy a sequence object - a large X at the end of its lifeline marks its destruction
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.
NOTE After resizing, the lines on the activation bar are thickened, but the size
may not change automatically.
Click the Recursive Message button on the diagram toolbar and click the lifeline on the desired
place where you wish to draw this message.
Related sections
Lifeline
Sequence Diagram
Message
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 (see the following figure). 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.
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.
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.
You can see the description of a selected property in the description area of the Specification window. To see
descriptions, be sure the Show Description option is turned on. For detailed information about using the
Specification window, refer to "Specification Window" on page 220.
For information about the properties editing, refer to "Editing Property Values" on page 238.
Related sections
Communication Diagram
Sequence Diagram
Time Diagram
For more information about message action types in Sequence and Time diagrams see "Sequence diagram
elements" on page 532.
For more information about message action types in a Communication diagram see "Communication Diagram
elements" on page 529.
MagicDraw provides a faster way of assigning and creating operations than it is allowed in the traditional model
creation process:
1. A sequence diagram is created to represent both classes and messages.
2. You can convert a message into a call message as well as create operations for classes in a
single click.
You can assign operations only to call (synchronous and asynchronous) messages. Furthermore, only one
operation can be assigned to a message.
1. Draw a call message between two lifelines or select an existing message on a diagram pane.
2. Open the message Specification window (see the procedure "To open the corresponding
Specification window" on page 222).
3. Click the Signature (operation) property value cell and then select an operation in the drop-
down list.
NOTE In the Signature (operation) drop-down list, both operations and signals of
your project are listed. Make sure you have selected an operation.
If you assign a signal to a call message, the message will automatically be
converted to a send message.
IMPORTANT! You can create a new operation only if the lifeline to which the
message is drawn has a type assigned.
1. Draw a call message between two lifelines or select an existing message on a diagram pane.
2. Do one of the following:
Click the button in the shape of a small green circle at the end of the message name
(see the following figure). Define operation property values in the operation
Specification window. The default name of the operation is the name of the
message for which the operation is being created. For more information about
operations see "Operation" on page 722.
From the message shortcut menu, select Create New Operation (the command
with the icon representing a small green circle). Define operation property values in
the operation Specification window. The default name of the operation is the name
of the message for which the operation is being created. For more information about
operations see "Operation" on page 722.
You can assign signal only to send or call (synchronous or asynchronous) messages. Furthermore, only one
signal can be assigned to a message.
NOTE If a signal is assigned to a call message, the message is automatically
converted to a send message.
1. Draw a send message between two lifelines or select an existing one on a diagram pane.
2. Open the message Specification window (see the procedure "To open the corresponding
Specification window" on page 222).
3. Click the Signature (signal) property value cell and then select a signal in the drop-down list.
Assigning a signal reception to a message is very similar to the procedure of assigning an operation to a
message.
IMPORTANT! There are two conditions that must be satisfied when creating a new
signal reception. They are as follows:
At least one signal must exist in your project.
A possible signal reception receiver (an activation to which the
message points) must have a type assigned.
1. Draw a send message between the lifelines or select an existing one on a diagram pane.
2. Assign a signal to the message (see the procedure "To assign a signal to a message using a
drag-and-drop operation" on page 709).
3. Do one of the following:
Click the button in the shape of a small red circle at the end of the message name
(see the following figure). Define signal reception property values in the signal
reception Specification window. The default name of the signal reception is the
name of the message for which the signal reception is being created.
From the message shortcut menu, select the Create New Signal Reception (the
command with the icon representing a small red circle). Define signal reception
property values in the signal reception Specification window. The default name of
the signal reception is the name of the message for which the signal reception is
being created.
Related sections
Message
Sequence Diagram
The nested activation can be created between at least two messages that point to the same activation.
NOTE Be sure, you have at least two messages pointing to the same
activation in your model.
NOTE A non-active lifeline is the one that has a non-active class as a type
assigned. The non-active class is the one whose Is Active property is set to
false. This property is available in the Expert mode.
This is the case of creating a simple nested activation, described in the procedure "To create a
nested activation" on page 712.
NOTE An active lifeline is the one that has an active class as a type assigned. The
active class is the one whose Is Active property is set to true. This property is
available in the Expert mode.
1. Select a lifeline and from its shortcut menu, select Show Entire Activation. All activations of
the selected lifeline becomes all-in-one.
2. Create an outgoing message or select an existing message pointed to active object. Be sure
this is not the first one for the outgoing activation.
3. From the message shortcut menu, select Create Nested Activation.
1. On the diagram pallet, click the button corresponding a desired message type.
2. Click a desired connector on the diagram pane. A message arrow will be placed on the
selected connector.
NOTE A message flow has two directions: right and left. Choose one of them by
clicking the associated button on the diagram pallet.
1. From the diagram shortcut menu, select Numbering > Change Numbering.
2. Increase, decrease, and / or change the level of numbering in the Change Communication
Numbering dialog.
Column Description
Number Message number.
Name Message name.
Button Description
Edit Opens the Type Number dialog. Type the number of the
message.
NOTE: If the Edit button is inactive, remove the automatic
advanced numbering of messages (see the procedure "To
remove the advanced numbering of messages" on page 714).
Increase Increases the selected number by one.
Decrease Decreases the selected number by one.
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 6.4 is the predecessor of 6.5, where the number 6 is an
activator (see example in the following figure).
NOTE Make sure the Use Advanced Numbering is selected (see the procedure "To
set the advanced numbering of messages" on page 714).
NOTE Make sure the Use Advanced Numbering is selected (see the procedure
"To set the advanced numbering of messages" on page 714).
2. Select the activator that you want to assign to the selected message. Numbering of the
selected message and subsequent messages decreases by one level. The first level number is
the number of an activator message (see the following figure).
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.
The model is defined as a package, that is, it has package properties in the Model Specification window. For a
detailed description of packages, see Section "Package" on page 725..
For information about the specification properties not covered in this section, refer to "Specification Window"
on page 220.
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.
For more information about working with symbols, see "Diagramming" page 150.
You can specify node properties in the node Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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
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:
Object Flow
To split an Object Flow
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 "Diagramming" page 150.
You can specify object node properties in the central buffer node Specification window. In the same window,
you can find the description of each property. Descriptions are presented in the description area of the
Specification window. For more information about the Specification window usage, see "Specification Window"
on page 220.
NOTE As UML2 does not support generic Object Node, MagicDraw creates
the particular Central Buffer Node element
For more information about specifying property values, see "Editing Property Values" on page 238.
1. Double-click the object node or select Specification from the shape shortcut menu. The
Central Buffer Node Specification window opens.
2. Select a classifier you wish to assign to an object node from the Type drop-down list.
1. Click the ... button in the Central Buffer Node Specification window, In State field. The
Select Elements dialog opens.
2. Select a state from the existing model elements, or click Create. The State Specification
window 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.
Drag and drop the selected Opaque Behavior element from the Browser tree on the Diagram pane.
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.
Double-click the selected class or select Specification from the class shortcut menu. The
Class Specification window opens.
Click the Operations tab and then click the Create button. The Operation Specification
window 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.
You can specify operation properties in the operation Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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 window.
In the Operation Specification window, the Type drop-down list, 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.
You can specify parameter properties in the parameter Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
Name Description
Is Abstract The operation does not have an implementation,
and one must be supplied by a descendant.
Is Static This operation scope means that the values
returned by the parameter have no duplicates.
Is Query The operation does not change the state of the
system.
Name Function
Sequential 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
cannot be guaranteed.
Guarded 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.
Concurrent 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.
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.
You can specify package properties in the package Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
4. The selected element Specification window will open. If you selected a diagram, the Diagram
Specification window will open.
5. Define properties you need and click Back to return to Package Specification window.
To change the package header (name, stereotypes, tagged values, and constraints) position
3. Select the elements to be displayed and click OK. The selected elements will be displayed in
the diagram's package.
Parameter
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 or clear the Auto
synchronize Parameters and Arguments check box in the Project Options dialog. 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.
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.
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.
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 731). In this case, after the operation parameter is removed, the activity
parameter is not removed, because it has link.
Validation of Synchronization
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 parameters
Accepted Computers, Production Materials, and Rejected Computers.
2. Create Activity diagram Collect Computer.
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 automatically. The text after
the name of activity will appear in the Browser: specifies Collect.
Figure 459 -- 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.
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.
Create an activity parameter node in the activity. The Select Activity Parameter dialog
appears. Select the existing activity parameter or click the Create button to create a new one.
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, the following activity parameters are
not displayed:
Inherited parameters
Parameters which already have Activity Parameter Nodes.
Sample
And
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
Sample
2. Create the call operation action named Determine users that have reserved book.
3. Assign an operation to the call operation action. Pins to the call operation action will be created
automatically.
Figure 464 -- Project after synchronization between Operation Parameter and Pin of Call Operation Action
Synchronization between interaction parameters and interaction use arguments works in the following way:
after you have referred 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.
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.
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.
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 window 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).
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.
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.
You can also display parameters as lifelines in already existing sequence diagram:
1. From the sequence diagram shortcut menu, select Related Elements and then select Display
Parameters as Lifelines. The Display Parameters as Lifelines dialog appears.
2. Select parameters and click OK.
3. Lifelines for the selected parameters are created.
Sample
2. In the Interaction, create the sequence diagram. The Display Parameters as Lifelines dialog
appears.
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.
The Parameters Synchronization dialog is shown in the following figure. It provides useful Parameters and
Arguments synchronization options: not synchronized notification, automatic synchronization restoration
algorithms, and manual synchronization abilities.
The parameters synchronization dialogpresents the elements those parameters and arguments are not
synchronized and provides the possibility to restore the synchronization.
In the Parameters Synchronization dialog, 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 729.
The Parameters group presents information about particular element parameters and the Arguments group
presents information about particular element arguments (see the following figures). To edit the parameter or
argument, click on the icon in the Edit column (see Figure 475 on page 740). The Is In Synch? column
displays if parameter and argument are synchronized (see Figure 476 on page 740). Green tick indicates that
parameter and argument are synchronized. Red cross indicates that parameter and argument are not
synchronized.
Automatic Synchronization
To synchronize parameters with arguments automatically, in the Parameters Synchronization dialog, click the
Automatic Synchronization button (see the following figure). According to the available synchronization the
following available commands appears:
1. Synchronize Parameters with Arguments by restoring initial order and creating missing ones.
Manual Synchronization
You can manually synchronize parameters with arguments using the Up/Down/Remove buttons or click the
Manual Synchronization button (see the following figure).
In the Parameters Synchronization dialog table select not synchronized parameter/ argument and click the
Manual Synchronization button to synchronize manually. See the description of the manual synchronization
commands in the following table:
Command Description
<-Clone Select the <-Clone command to create parameter with the same
properties.
Clone-> Select the Clone-> command to create parameter with the same
properties.
Command Description
<-Update 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.
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.
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.
The Class model element and Component model elements may have any number of Ports.
You can specify port properties in the port Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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, Ports tab, add the desired ports to display from All to
the Selected list.
To draw a Port
In the Component diagram toolbar, select a Port element to draw on a class shape.
Draw a Realize path from a port to an interface to depict the Provided Interface.
To specify the Provided/Required Interfaces for a Port even if the Port type is not specified
When you add a Provided or Required Interface to a Port, the Select Port Type dialog will open (Figure 479 on
page 743) with the following options:
Set Provided Interface as Port Type (available on Provided Interface creation only). The
Provided Interface will be suggested as the Port Type.
Create "dummy" port type automatically. Create a dummy port type and relations between
the type and interface.
Select or create a port type manually. The Select Port Type dialog will open to allow you to
select or create a Port.
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 "Diagramming" on page 150.
You can specify pseudo state properties in the pseudo state Specification window. In the same window, you can
find the description of each property. Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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.
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.
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.
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.
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 "Diagramming" on page 150.
The realization paths can be grouped in a tree. This feature makes the appearance of the diagram more
structural and understandable.
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.
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.
You can specify realization properties in the realization Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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).
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
Signal receptions can be specified for classes or interfaces.
Related topics:
Double-click the selected class or select Specification from the class shortcut menu. The
Class Specification windowopens.
Click the Signal Receptions tab and then click the Create button. The Select Signal dialog
opens. Select a signal or create a new one.
Click OK. The Signal Reception Specification window opens.
Specify a new reception and click OK.
Select a class in the Model Browser. 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.
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 Model
Browser to the class or interface shape on the diagram pane.
You can specify reception properties in the reception Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
Create a signal reception. The Select Signal dialog opens. Select an existing or create a new
signal for the signal reception.
In the Signal Reception Specification window, in the Signal drop down menu, select a signal.
You may also click the ... button. In the Select Element dialog, select a signal or click the
Create button to create a new one.
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, clear the Suppress Signal Receptions command.
Select the Edit Compartment command from the symbol shortcut menu. Select the Signal
Reception command. The Edit Compartment dialog opens. Only those signal receptions will
be displayed in the Signal Reception compartment that are displayed in the Selected list.
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, clear the Suppress Signal Receptions check box.
For more information about working with symbols, see "Diagramming" on page 150.
You can specify send signal action properties in the send signal action Specification window. In the same
window, you can find the description of each property. Descriptions are presented in the description area of the
Specification window. For more information about the Specification window usage, see "Specification Window"
on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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 "Diagramming" on page 150.
You can specify state properties in the state Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
In the state shortcut menu, select/clear the Suppress Actions check box.
On a diagram from the State symbol shortcut menu check or clear the Show Region Name
check box.
In the State Properties dialog select or clear the Show Region Name check box.
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.
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.
3. Open the state shortcut menu again and add the second region to the 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 existing 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 "Diagramming" on page 150.
You can specify composite state properties in the state Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
For more information on working with states, see "State" on page 749.
Select Add New Region from the composite state shortcut menu.
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 "Diagramming" page 150.
You can specify submachine properties in the state Specification window. In the same window, you can find the
description of each property. Descriptions are presented in the description area of the Specification window. For
more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
For more information on working with states, see "State" on page 749.
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 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.
To see the assigned entry/exit point, open the Connection Point Reference dialog. The Entry or Exit
properties will display the defined entries.
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, 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 is not opened when
drawing the Connection Point Reference.
Double-click on the state to open the State Specification window and in the State Invariant
field, type a condition and submit changes.
Near the State Invariant field, click "..." button. The Edit State Invariant dialog opens. Type
the condition and close the dialog by submitting changes.
The State Invariant value is displayed on the diagram pane on the state shape in brackets:
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.
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.
You can specify swimlane properties in the swimlane Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
Click the Swimlane button on the diagram toolbar and click the diagram.
1. Double-click the swimlane line or select Specification from the line shortcut menu.
2. The Activity Partition Specification window opens. Type a name in the Name property
specification cell.
Type the name directly on the Diagram pane.
Select a swimlane on the diagram pane and from the shortcut menu, select Insert Vertical Swimlane or Insert
Horizontal 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.
The multidimentional swimlanes with elements added are shown in the following figure:
1. Double-click the class shape or select Specification from the class shape shortcut menu. The
Class Specification window opens.
2. Click the Template Parameters tab.
3. To add or edit a parameterized class, click the Create button. The Select Template Parameter
Type dialog opens.
4. Select the type from the model tree and click OK.
5. To remove the selected parameterized class, click the Delete button.
You can specify classifier template parameter properties in the classifier template parameter Specification
window. In the same window, you can find the description of each property. Descriptions are presented in the
description area of the Specification window. For more information about the Specification window usage, see
"Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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.
You can specify transition properties in the transition Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
NOTE The Event Type property belongs to the Trigger group. If you do not
see this property, click the + button near the Trigger property group to
expand its content.
Figure 481 -- Trigger group before assigning event type (on the left) and after assigning event type (on the right)
NOTE The Behavior Type property belongs to the Effect property group. If
you do not see this property, click the + button near the Effect property
group to expand its content.
Figure 482 -- Effect group before assigning behavior type (on the left) and after assigning behavior type (on the right)
You can assign an event type to a transition by typing an appropriate command on a selected transition path.
The event type can be one of the following:
AnyReceiveEvent
CallEvent
ChangeEvent
TimeEvent
1. Select a transition.
2. Type a command. The commands that can be used are listed in the following table.
The typed command with the argument will be displayed on the transition path.
Transition properties, such as Event Type, Trigger, and Event Element, will be specified automatically after
the event is assigned to the transition. To see these properties, open the transitions Specification window.
There is an exception for the event type named Call Event. If an event of this type has an operation defined, the
name of the operation will be displayed on the transition path. Use the procedure "To assign an event type" on
page 756to assign this type of event.
IMPORTANT! The event type assignment by typing commands is also available for
transitions to self in State Diagrams as well as for protocol transitions
and protocol transition to self in Protocol State Diagrams.
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 the use case and a description of the
location within the behavior of the use case.
A use case is shown as an ellipse with the name inside it. The extension points are listed in the Extension
Points compartment of the use case.
You can specify use case properties in the use case Specification window. In the same window, you can find
the description of each property. Descriptions are presented in the description area of the Specification window.
For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
For more information about working with symbols, see "Diagramming" on page 150.
You can specify use case extension properties in the use case Specification window. In the same window, you
can find the description of each property. Descriptions are presented in the description area of the Specification
window. For more information about the Specification window usage, see "Specification Window" on page 220.
For more information about specifying property values, see "Editing Property Values" on page 238.
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 window.
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
You can create a standalone value specification in a model using the appropriate element shortcut menu.
NEW! As of version 17.0.1, MagicDraw supports a new primitive type - Real. The Literal Real specification has
been added to the Value Specification list.
You can use any of the following ways to create a value specification:
Via the elements shortcut menu.
You can also change an assigned value specification after it has been created.
NOTE Since version 16.0, Value Specifications are displayed in the Containment
tree.
1. Assign a default value to a property for which you want to create a value specification.
2. The value specification of the corresponding type will be assigned automatically according to
the assigned default value in your model.
You can easily create such permissions where stakeholders can access server projects for reviewing or other
purpose, but they can not modify any project. Engineers, like developers, quality assurance engineers,
analysts, and other, can access, modify, create a new or remove any existing project, manage project changes
and historical versions. Users with administrator rights have full access to manage projects and project user
permissions, as well as perform all actions as engineers.
Having a server you can assign as many team members as needed to work simultaneously on the same
project using multiple workstations. The server project is stored on the server and can be accessed by team
members through the network.
As long as you set up the permission for the users and project, we suggest working with it in the following
order:
1. Log on to the server.
2. Open a server project
3. Lock elements you want to edit to prevent other users could not change project elements you
are working with.
4. Edit these elements or create new ones.
5. Unlock locked elements after editing.
6. Commit the project to the server that other users could see changes.
No Magic offers two servers for a collaborative work: Cameo Team Server (technology preview*) and
MagicDraw Teamwork Server.
Project data is stored in Relational Database Management System (RDBMS), thus the server
is highly scalable, allowing for rapid data storage and retrieval.
Only modified data is transferred between the server and the client. This means that time
needed for updating and committing does not increase when the project size grows.
Apache Derby comes as part of the installation package by default and does not require any
additional administration.
With Cameo Team Server client API, you can build your own application for collaboration with
the server.
Still and all, as Cameo Team Server is a technology preview at this stage, it does not cover all Teamwork Server
features that users are accustomed to use. The main differences between Cameo Team Server and Teamwork
Server are the following features:
Branching is supported currently by Teamwork Server only.
Permissions are supported currently by Teamwork Server only.
Project categories are currently supported only by Teamwork Server only.
Offline project modification mode is currently supported only by Teamwork Server only.
Module loading options are currently supported by Teamwork Server only.
Cameo Team Server supports only 2-way project merging.
Module usage and importing have some limitations for projects in Cameo Team Server.
Cameo Team Server procedures and GUI elements are in details described in "NEW! Working with Cameo
Team Server" on page 764. For information about Cameo Team Server administrating, see
CameoTeamServer UserGuide.pdf.
For information on Cameo Team Server new features, see New and Noteworthy at http://www.magicdraw.com/
newandnoteworthy/cameo_team_server.
MagicDraw Teamwork Server procedures and GUI elements are in details described in "Working with
MagicDraw Teamwork Server" on page 815. For information about MagicDraw Teamwork Server
administrating, see MagicDraw Teamwork UserGuide.pdf.
Logging on to Server
To log in to a server
1. From the Collaborate menu, select Login or press CTRL+SHIFT+L. The Login dialog opens.
2. Type a user login name, password, and enter a server name.
3. In the Server type list, select the server you are working on.
4. If you want the client application to remember your credentials in order to login next time to the
server automatically upon starting the client program, click Auto Login to Server.
5. If you need to connect to the server using the SSL connection, click Use Secured Connection
(SSL).
For more information about the SSL connection configuration in Cameo Team Server, see
Section 2.3, "Configuring SSL" in CameoTeamServer UserGuide.pdf.
For more information about the SSL connection configuration in MagicDraw Teamwork Server,
see "Managing Teamwork Server" in MagicDraw Teamwork UserGuide.pdf.
6. Click OK.
members can access and modify the same model or even the same diagram at the same time. It supports
importing, exporting, updating, committing, and comparing stored models.
Cameo Team Server is a central repository for all Cameo clients. It forms a base for integrating different models
from different clients as all models reside in a single repository. Make it easy to exchange data directly in the
context of your work. Cameo Team Server provides a central repository for storing:
MagicDraw Projects
Cameo Requirements+ Requirements
Cameo Requirements+ Schemas
Cameo Requirements+ StoryBoards
Configurations can be managed through a web browser, which allows administer server and stored data with
minimal technical knowledge and effort. For more information about Cameo Team Server administrating, see
CameoTeamServer UserGuide.pdf that can be found in <Cameo Team Server installationdirectory>\manual.
The "NEW! Working with Cameo Team Server" chapter contains the following sections:
"Cameo Team Server Concepts" on page 765. This section provides the dictionary of main
terms that are used working with server projects.
"Customizing Server Properties" on page 767. This section describes how to configure Cameo
Team Server properties in MagicDraw.
"Working with Cameo Team Server Projects" on page 767. This section describes main
procedures how to work with server projects.
"Cameo Team Server User Interface" on page 792. This section describes GUI elements,
such as dialogs and wizards.
Update project
Get the latest server project you are working on changes from the server. For more information,
see "Updating project" on page 787.
Unlock elements
Unlock model elements and/or diagrams, so that other users could have an ability to modify
them. For more information, see "Unlocking model elements and diagrams after editing" on
page 782.
Commit project
Commit the project to the server to save your changes. After committing, a new project version
will be created in the server. Additionally, it is also possible to unlock all elements locked by you
or add a version comment while committing the project. For more information, see "Committing
projects to server" on page 786.
Author
A user who has committed a particular project version.
Version
A unique number assigned to the version of the project. Project version numbers begin at zero
(for the initial version) and increase with every new project version.
Comment
An optional description about changes in the committed project version.
Administrator Login
The default Administrator's account in Cameo Team Server and Cameo Team Server Web Client
is:
Login name: Administrator
Password: Administrator
To prevent illegal access, it is advisable to change the Administrator's password.
For more information, see CameoTeamServer UserGuide.pdf. You can find this user guide in
<Cameo Team Server installation directory>\manual.
Repository
A storage place for projects and their versions that is managed by the Cameo Team Server.
Native user
A user whose account data is stored locally in the native Cameo Team Server repository.
External user
A user whose account data (all except the login name) is stored in an external LDAP database.
Server Module
A server project containing one or more shared packages. Modules are created with a purpose
to reuse them or to decompose projects into parts.
Related procedures
Editing Property Values
Related reference
Customizing Environment Options
1. From the Collaborate menu, select Login. The Login dialog opens (see the following figure).
2. Enter your login name, password, Cameo Team Server name, and the port number.
3. In the Server type list, click Cameo Team Server.
4. If you want the client application to remember your credentials in order to login next time to the
server automatically upon starting the client application, select the Auto login to server check
box.
5. If you need to connect to the server using the SSL connection select the Use Secured
Connection (SSL) check box. For more information about the SSL connection configuration in
Cameo Team Server, see Section 2.3, "Configuring SSL" in CameoTeamServer
UserGuide.pdf.
IMPORTANT! If the SSL connection is established in the server side, you should
also use the SSL connection in the client side when connecting to the
server.
6. Click OK.
1. From the Collaborate menu, select Open Server Projects or press CTRL+SHIFT+O. The
Open Server Project dialog opens.
2. In the dialog, select a project you want to open.
3. Click Open or double-click the selected project name.
1. From the Collaborate menu, select Open Server Projects or press CTRL+SHIFT+O. The
Open Server Project dialog opens.
2. In the dialog, select a project you want to open.
3. Click the History button. The History dialog opens.
4. In the dialog, select the project version you want to open.
5. Click Open.
Related procedures
Managing server projects
Related references
Open Server Project dialog
History dialog
Adding projects
1. From the Collaborate menu, select Add Project to Server. The Add Project to Server dialog
opens.
2. In the Name box, type a new project name or leave the current one. The project name should
be without an extension.
3. In the Comment box, type a project comment. This step is optional.
4. If your project does not have any modules, or you do not need to specify any settings for
modules, click Add. Your project is added to the server. If your project has one or more
modules, and you want to specify some settings for them, proceed to the following steps.
5. Click the button to open the local modules area. All modules used in the project are listed
in the table of this area.
Figure 489 -- Local Modules area (fragment of the Add Projects to Server dialog)
6. In the Action column, select an action to perform with the module when project is added to the
server. Do it for each module that settings you need to change. According to the selected
action, you can change a module name or a module that is used on the server. Available
actions and its correlation with module names on the server are described the table at the end
of this procedure.
7. In the Name on Server column, select a module name or module that is used on the server
(see the table at the end of this procedure). Do it for each module which settings you need to
change.
8. Click Add after you have finished to specify settings for local modules. Your project is added to
the server.
Related procedures
Removing server projects
Related references
Add Project to Server dialog
If the latest project version is locked by one or more other users, you will not be able to set an earlier project
version as the latest. The following message opens when you try to set the latest project version:
The dialog is provided to prevent a data loss for those users who are working with this project while another
user is reverting the project.
To set the project as the latest, you need to have all elements unlocked in the project. Please do one of the
following:
Log on to the Cameo Team Server Web Client with server administrator permissions and
unlock the project that you are reverting. All changes made to the latest project version will be
lost. Then get back to MagicDraw ant set the earlier project version as the latest.
Ask the users current working with the project to unlock locked elements. When elements are
unlocked, set the earlier project version as the latest.
Latest version must commit project changes. These commits will be saved in the project history
as particular versions.
For more information how to use Cameo team Server Web Client, see CameoTeamServer UserGuide.pdf.
1.1. Click Collaborate > Open Server Project, or Collaborate > Project
Management, or press CTRL+SHIFT+O.
1.2. In the opened dialog, select a project.
1.3. Click the History button.
2. In the opened dialog, select the project version that comment you want to change.
3. Click the Properties button. The Version Properties dialog opens.
4. In the Comment text box, type a new comment or edit to the existing one.
5. Click OK when you are done.
To rename projects
1. From the Collaborate menu, select Project Management. The Manage Projects dialog
opens.
2. In the dialog, select a project you want to rename. The Rename dialog opens.
3. In the opened dialog, type a new project name and a comment.
Related procedures
Comparing project versions
Updating project
Removing server projects
Project versioning
Opening server projects
Related references
History dialog
Manage Projects dialog
Open Server Project dialog
Rename dialog
Version Properties dialog
For more information about analyzing project version comparison results, see "Understanding model
differences" on page 424.
Related concepts
Projects Comparison
Related procedures
Comparing Projects
Related references
History dialog
Manage Projects dialog
Open Server Project dialog
Understanding model differences
1. From the Collaborate menu, select Project Management. The Manage Projects dialog
opens.
2. In the dialog, select a project you want to remove.
3. Click the Remove button. The following notification appears.
4. Click Yes to remove a selected project or click No to cancel the removing action.
Related procedures
Adding projects
As Cameo Team Server is a technology preview at current stage, it has some limitations while working with
project modules:
Projects in Cameo Team Server do not support module load options. All modules are loaded
with a project by default.
Only projects and modules from Cameo Team Server can be imported. To import a local
module or project, we suggest, first, to save a project locally, then import local projects or
modules into the project and add this project to the server again.
If you have removed a module from a server project and want to use this module again, you
need to reopen the server project before using the same server module.
Modules having dependencies to private data can not be exported. Resolve improper
dependencies in shared data before exporting a module.
A module can not be imported into the server project, if a module has cycle dependencies or it
is used both by a project and by the other module that is used in the project.
NOTE Make sure the package owner is not locked by the other user. You
will not be allowed to create a server module in such case.
3. In the All data list of the opened dialog, select one or more packages from which you want to
create a server module and click the Add button. Selected packages are added to the
Selected packages list.
NOTE If you opened the Export Server Module dialog from the selected
packages shortcut menu, selected packages are added to the
Selected packages list automatically. You may add more packages
from the All data list if you need.
6. The Add Exported Module dialog opens. In the dialog, type a name of the module you are
exporting and write a comment. The name of the first package is specified as module name by
default.
7. Click Add. The module is created as a separate file in a server.
Once the server module is created, all its packages and the containing elements becomes read-only. Module
name and version number are displayed in the brackets next to the each exported package name in the
Containment Tree (see the following figure).
1. From the Collaborate menu, select Server Modules and then Use Server Module. The Use
Server Module wizard opens.
2. Select the module you want to use in your project.
3. Do one of the following:
Click Next, if you need to change default module settings. The next wizard step
opens. Proceed to the step #4.
Click Finish. The selected server module is added to you project.
4. Specify Module Settings in the next step and click Finish.
According to module settings, the module appears as read-only or read-write in your project. You can open the
module as a separate project to edit it. For more information about project editing, see "Editing Server Project"
on page 875.
For more information about the Modules dialog, see "Managing Modules" on page 118.
This procedure allows you to use a new version of a module that has been uploaded to the Cameo Team
Server. You can use reloaded module in your own server project.
Related concepts
Project Partitioning
Data Partitioning on Server
Editing Server Project
Related procedures
Locking model elements and diagrams for editing
Related references
Export Module dialog
Use Server Module wizard
Managing Modules
2. Click the Lock element for Edit button (see the highlighted button in the following figure). This
allows for editing locked element specification properties in the Specification window.
Figure 492 -- Lock element for Edit button (fragment of Specification window)
For more information about locking commands, see "Locking commands" on page 877.
In the Filter by user box, select a user whose locks you want to see.
NOTE If you do not see the Locked Elements tab, on the main menu, click
Collaborate > View Locked Elements.
Related concepts
Editing Server Project
Related procedures
Locking for reverse engineering
Unlocking model elements and diagrams after editing
Deleting elements from shared projects
To reverse a code to the model that was already reversed, you need to lock elements that store code
engineering information.
1. In the Code engineering sets branch, select a code engineering set or code engineering
element you want to reverse.
2. On the selected items shortcut menu, click Reverse. The Reverse Options dialog opens.
3. In the Reverse Options dialog, set required options and click OK. For more information about
Reverse Options dialog, see Reverse in MagicDraw CodeEngineering UserGuide.pdf.
4. The Lock Elements dialog opens. Select elements you want to lock and click OK.
IMPORTANT! Make sure you have selected all files you are reversing.
5. Depending on options you have selected in the Reverse Options dialog, you may need to
perform some more steps. Please follow instructions provided on your screen.
Related concepts
Locking Model Elements and Diagrams
Unlocking Model Elements and Diagrams
Related procedures
Locking model elements and diagrams for editing
Unlocking model elements and diagrams after editing
Starting from version 17.0.1, MagicDraw introduces an additional model integrity protection for a collaborative
environment. All project structure modifications can only be done by a single person at the same time. To
prevent simultaneous structure modification, project structure locking is realized in MagicDraw.
If you are in a collaborative environment and working simultaneously on the same project, the following
operations cannot be performed in parallel:
Exporting new modules. Only one user at a time can export a module from the project.
Modifying shared packages. Adding and removing shared packages are now controlled by the
project structure lock.
Upgrading a project. Some plugins may install additional features, such as specific options or
code engineering abilities. An opened project structure is locked automatically, and this project
cannot be opened by other users until the first user commits this project.
The project structure is automatically locked to ensure the correct model integrity when you perform one of
these operations. While the project structure is locked other users may continue getting error messages which
may prevent to work with the model. The project structure is unlocked automatically when the project is
committed. Alternatively, you can unlock the structure manually. Use the following procedure.
1. From the File menu, select Project Properties. The Project Properties dialog opens.
2. In the General tab, click the Unlock button and select one of the following command:
Unlock - to unlock the project structure.
Discard Changes - to unlock the project structure discarding changes made after
the last commitment.
IMPORTANT! If the project structure is not locked, but you still get errors concerning
project locks, it may be that a structure of used modules in a project is
being locked because of modules are also being upgraded. Please
check if structures of all modules are unlocked.
Related procedures
Locking model elements and diagrams for editing
Unlocking model elements and diagrams after editing
Related references
Managing Modules
NOTE The list of commands may vary depending on the item you have
selected.
1. From the Collaborate menu, select Unlock All. The Commit Settings dialog opens.
2. In the Locked Elements tab, you may select elements to unlock. By default, all locked
elements in the project are selected.
3. Click Commit when you are done.
1. Open the Specification window of the selected locked element or locked symbol.
2. Click the Unlock element button (see the highlighted button in the following figure). This forbids
editing element specification properties in the Specification window.
NOTE If the element was modified, you will be requested to commit changes
to the server.
For more information about unlocking commands, see "Unlocking commands" on page 878.
1. From the Collaborate menu, select Commit Project or press CTRL+K. The Commit Settings
dialog opens.
2. Click the Locked Elements tab.
3. In the elements list, select elements you want to unlock. Click Select All, if you need to unlock
all locked elements in your project.
NOTE: Model elements that are not modified are unlocked without committing
them to the server.
Related concepts
Editing Server Project
Locking Model Elements and Diagrams
Unlocking Model Elements and Diagrams
Related procedures
Locking model elements and diagrams for editing
Deleting elements from shared projects
1. Lock the element or elements you want to delete (see "Locking model elements and diagrams
for editing" on page 776).
2. Delete the element.
IMPORTANT! If the element contains inner elements which can be locked separately,
these inner elements should not be locked by the other users to
complete element removal.
For this reason, we suggest to use command Lock Element for Edit
Recursively to lock all inner elements so nobody could prevent you
from removing selected elements.
Related concepts
Editing Server Project
Related procedures
Locking model elements and diagrams for editing
When committing a project, new data (data from the MagicDraw application) is merged with the existing one
(the current project data on the server). If the current merged element does not reside on the server yet, they
are added to the project without merging.
As Cameo Team Server is a technology preview at current stage, it has some limitations while committing
projects and modules. Modules having dependencies to private data as well as projects using modules in a
read-write accessibility mode can not be committed to the server. Resolve improper dependencies in shared
data before committing a project or module.
Any new elements added to the parent scope are given a unique name when placed among elements of the
same type.
1. From the Collaborate menu, select Commit Project or press CTRL+K. The Commit Changes
dialog opens.
2. In the Comment box, type the comment (optional).
3. Select the Unlock all elements when committing check box to unlock model elements
(optional).
4. Click Commit.
Related procedures
Saving projects
Related references
Commit Changes dialog
Commit / Discard Changes dialog
Saving projects
You can choose one of two project saving options when saving a server project:
Save the local copy of the project and remove locking and version information. The
project is saved on a disk and does not include any locking or version information. A local copy
of the project cannot be committed to the Cameo Team Server.
Commit the project changes to the Cameo Team Server. The project is committed to
Cameo Team Server.
Related references
Save Options dialog
Related procedures
Saving projects
Related references
Save Options dialog
Updating project
When updating a project, the latest project version from the server is loaded. A new version of a project is
created every time a user commits new data to the server.
You should update a project when you know that a new project version is available on the server.
Related concepts
Editing Server Project
Related procedures
Locking Model Elements and Diagrams
Unlocking Model Elements and Diagrams
Project versioning
Every time a project is committed, a new project version is created. You can undo committed changes by
setting a previous project version as latest.
1. From the Collaborate menu, select Projects or Open Server Project commands.
2. Click the History button. The History dialog opens.
The History dialog lists all versions of the selected project. You can set the selected project version as latest,
edit comments, and review other project versions.
Related procedures
Managing server projects
Related references
History dialog
Manage Projects dialog
Open Server Project dialog
Standard / system profiles should be added into Cameo Team Server before loading a project. Cameo Team
Server stores MagicDraw standard / system profiles in the folder named Profiles_<version number> (the
version number represents MagicDraw version number).
In server projects, all standard profiles used by a project should be added into the server, as projects should
use server modules only.
1. On the Collaborate menu, click Import Standard / System Profiles. The Standard / System
Profiles Importer dialog opens.
2. In the dialog, select one or more profiles you need to import to the server.
3. Click Add when you are done.
Related references
Standard / System Profiles Importer dialog
You can migrate your Teamwork Server projects to Cameo Team Server. To make migration easier and user-
friendly, the Teamwork Server Repository Import Wizard is designed. Using this wizard, you can migrate users
and projects, including project data, branches, modules, and module settings.
IMPORTANT! To migrate projects from Teamwork Server to Cameo Team Server, you
should connect to Cameo Team Server as an administrator.
When migrating users, all user details, including login name, full name, and password, are copied from
Teamwork Server to Cameo Team Server.
When migrating projects, all project branches are treated as separate projects. The name structure of projects
from branches is as follows: <project name>_<project version>_<branch name>.
Projects from inner branches of branches are named <project name>(<version number>_<branch name>),
where the version number is a version of a branch from which the inner branch has been created.
All module settings, including Accessibility Option, Module Load Type, Use Index, version, used branch, are
migrated also.
All elements of imported projects are unlocked, as project locks are not imported. Project categories cannot be
migrated, as Cameo Team Server does not support categories.
IMPORTANT! To perform projects migration, MagicDraw and Teamwork Server
versions should be the same.
Using migration from Teamwork Server to Cameo Team Server, you can import all projects and users you have
had on Teamwork Server.
IMPORTANT! You should have administrator rights in both Teamwork Server and
Cameo Team Server to perform a repository migration.
MagicDraw and Teamwork Server versions should be the same.
If your selected teamwork project cannot be migrated to Cameo Team Server, it might be that the project
contains an invalid model which prevents the Teamwork Server Repository Import Wizard to migrate the
project to Cameo Team Server.
With the Teamwork Server Repository Import Wizard, only projects with a valid model can be migrated from
Teamwork Server to Cameo Team Server. In this case, a valid model means that there are no dangling model
references, model references from shared data to private data, references from module to the main project, or
any other incorrect references in the importing project. Use the Dependency Checker to check if your project
contains a valid model. If the Dependency Checker does not find any error level errors in your project, we can
assume the project is valid and can be migrated to Cameo Team Server. An example of the error message
informing about an invalid model depicted in the following figure.
If some of your project failed to be migrated, it is highly recommended to check if these projects contains valid
model. To check the model validation, follow these steps:
1. Log on to the Teamwork Server and open the project you want to migrate.
2. Run the Dependency Checker. On the Analyze menu, click Dependency Checker. The
Dependency Checker dialog opens.
3. In the opened dialog, set the Minimal Severity value to =Error and select the Ignore
Standard/System Profiles check box. This configuration will report only those problems which
are currently important to us. Click OK to start checking dependencies. After the checking is
completed, invalid dependencies among modules and project are listed in the Package
Dependency panel.
4. Solve all the error level problems the Dependency Checker has found and migrate the project
using the Teamwork Server Repository Import Wizard again.
Related references
Teamwork Server Repository Import Wizard
Analyzing Dependencies Among Elements
To merge server projects, use the Tools > Project Merge command. For more information about project
merging, see "Model Merge" on page 304.
As Cameo Team Server is a technology preview at current stage, it has some limitations while merging server
projects. Only a 2-way merge is supported in Cameo Team Server projects.
If you have lost a connection with Cameo Team Server unexpectedly, MagicDraw tries to restore a connection
to the server automatically. By default, 60 attempts every 5 seconds are made. You may cancel a reconnection
process.
If a reconnection is successful, the session is resumed and you are able to continue working with your project.
If a connection cannot be established or you canceled the reconnection, unsaved project data will be lost.
1. Open the mduml.properties file which is in the <MagicDraw installation directory>\bin folder.
2. In the JAVA-ARGS line, change or add the following parameters:
JAVA_ARGS=-Dcts.session.reconnect.enable=true
-Dcdo.client.commit.timeout.seconds=120 -
Dcts.session.reconnectInterval.seconds=<reconnection interval in seconds>
-Dcts.session.maxReconnectAttempts=<number of reconnection attempts>
For example:
JAVA_ARGS=-Dcts.session.reconnect.enable=true
-Dcdo.client.commit.timeout.seconds=120 -Dcts.session.reconnectInterval.seconds=2
-Dcts.session.maxReconnectAttempts=10
The Add Exported Module dialog is provided for adding exported module to a server repository.
Related procedures
Creating and managing server modules
Related procedures
Export Module dialog
The Add Project to Server dialog is provided for adding a local project to a server repository.
Button Description
Local modules options Opens or closes the local modules options area.
Add Adds a local project to the server.
The Add Project to Server dialog is extended with the Local modules options area. In this area, the table for
managing project module usages after the project is added to the server is presented. Available functions for
modules are described in the following table:
Related procedures
Adding projects
The Commit Changes dialog is provided for committing project changes to the server.
Button Description
Commit Saves project changes to the server.
Related procedures
Committing projects to server
Related references
Save Options dialog
The Commit / Discard Changes dialog is provided to commit or discard changes while unlocking one or more
project elements.
1. Select one or more locked elements and open its shortcut menu. Then do one of the following:
If one locked element is selected, point to Lock and select one of unlocking
commands.
If several locked elements are selected, click Unlock.
Button Description
Commit Saves project changes to the server.
Discard Changes Saves project to the server without changes.
Related procedures
Committing projects to server
The Export Module dialog is provided for saving one or more selected packages as a separate module. It is
useful when you need to partite your project to independent parts that could be reused in other projects.
Button Description
Add Adds selected packages to the exporting packages list.
NOTE: You need to lock a package recursively to export it to the module.
Remove Removes the selected package from the exporting packages list.
Remove All Removes all packages from the exporting packages list.
Button Description
OK Exports selected packages to the module. The export performs in the following
way:
1. You are suggested to check dependencies. If exporting packages and the
rest of the model have dependencies, you may change exports.
2. After checking dependencies, the Add Project to Server dialog opens to
save the module to the server.
Related concepts
Data Partitioning on Server
Related procedures
Creating and managing server modules
Related references
Add Exported Module dialog
Add Project to Server dialog
History dialog
In the History dialog, the list of the selected project versions is displayed. This dialog is related to dialogs that
are designed to manage server projects, such as the Open Server Project dialog or the Manage Projects
dialog.
Button Description
Set as Latest Sets the selected project version as the latest version.
IMPORTANT! Pay a special attention to projects selected to reverse, if they
have locked elements. You need to unlock all locked elements of the latest
project version. For more information about setting an earlier project version as
the latest, see the procedure "To set a project version as the latest" on
page 771.
Compare Compares two selected projects. Use CTRL or SHIFT keys to select projects.
Properties Opens the Version Properties dialog. Detailed information about the selected
project version is presented in this dialog.
Open Opens a selected project version.
Related procedures
Managing server projects
Comparing project versions
Related references
Version Properties dialog
Open Server Project dialog
Manage Projects dialog
Using this dialog you are allowed for the following actions with projects:
To open the selected server project.
To rename the selected project.
To add local projects to the server.
To remove selected projects from the server.
To view versions history of the selected project.
Button Description
Rename Opens the Rename dialog wherein you can change the project name.
Add Opens the Add Project to Server dialog for adding a local project to the
server.
Remove Removes selected projects from the server.
IMPORTANT! You are not allowed to restore removed projects.
History Opens the History dialog wherein you can manage all versions of the
selected project.
Open Opens the latest version of a selected project.
Related procedures
Managing server projects
Updating project
Removing server projects
Project versioning
Related references
Add Project to Server dialog
History dialog
Rename dialog
The Open Server Project dialog is provided for opening server projects available to user.
From the Collaborate menu, select Open Server Project or press CTRL+SHIFT+O.
Button Description
History Opens the History dialog wherein you can manage all versions of the selected
project.
Open Opens the latest version of the selected project.
Related procedures
Opening server projects
Related references
History dialog
Rename dialog
1. From the Collaborate menu, select Project Management. The Manage Projects dialog
opens.
2. In the dialog, select a project you want to rename.
3. Click the Rename button.
Related procedures
Managing server projects
Related references
Manage Projects dialog
You can choose one of two project saving options when saving a server project:
Save the local copy of the project and remove locking and version information. The
project is saved on a disk and does not include any locking or version information. A local copy
of the project cannot be committed to the Cameo Team Server.
Commit the project changes to the Cameo Team Server. The project is committed to
Cameo Team Server. Select this option and click OK. The Commit Changes dialog opens to
commit a project to the server.
Related procedures
Saving projects
Converting server projects to local
Related references
Commit Changes dialog
The Standard / System Profiles Importer dialog is provided for importing local standard and system profiles
to Cameo Team Server. In the dialog, all local profiles that are missing in the server or later versions of profiles
are listed.
Button Description
Add Imports selected profiles to the server.
Related procedures
Importing standard / system profiles
Using the Teamwork Server Repository Import Wizard, you can import projects and users from MagicDraw
Teamwork Server to Cameo Team Server. The migration process is advanced and dedicated for system
administrators mostly.
IMPORTANT! You should have administrator rights in both Teamwork Server and
Cameo team Server to perform repository migration.
MagicDraw and Teamwork Server versions should be the same.
To start a project migration, the connection to Teamwork Server is established. After projects has been
migrated, the connection to Teamwork Server is closed automatically.
This step is designed to connect to Teamwork Server. After successful connection, click Next to proceed the
next step.
Figure 511 -- Teamwork Server Repository Import Wizard. Connecting to Teamwork Server
In this step, all projects from Teamwork Server you are logged on are listed. Click a check box in the Import
column next to the project name to select a project to import. All projects are selected to import by default.
After you have selected projects to import, click Next to proceed the next step.
Figure 512 -- Teamwork Server Repository Import Wizard. Selecting projects to import to Cameo Team Server
Button Description
Categorized View Displays the categorized structure of the project list.
Alphabetical View Displays the plain project list without any category.
NOTE If projects you are importing have no naming conflicts with projects
already existing in Cameo Team Server, this step is skipped.
In this step, selected Teamwork Server projects which names already exist in Cameo Team Server are listed.
You can select whether you replace the importing project with existing one in the Cameo Team Server or not.
Do one of the following:
To replace a project, select a check box in the Replace column next to the project name you
want to replace.
To keep an original project, click to clear the check box in the Replace column next to the
project name you do not want to replace.
NOTE You should rename a project in Teamwork Server, if the project you are
importing has the same name as the project existing in Cameo Team
Server, and you want to keep them both.
After you have resolved naming conflicts, click Next to proceed the next step.
Figure 513 -- Teamwork Server Repository Import Wizard. Confirming project replaces
Button Description
Categorized View Displays the categorized structure of the project list.
Alphabetical View Displays the plain project list without any category.
In this step, all users from Teamwork Server you are logged on are listed. Click a check box in the Import
column next to the user name to select the user to import. All users are selected to import by default.
After you have selected users to import, click Next to proceed the next step
Figure 514 -- Teamwork Server Repository Import Wizard. Selecting users to import to Cameo Team Server
NOTE If users you are importing have no naming conflicts with users already
existing in Cameo Team Server, this step is skipped.
In this step, selected Teamwork Server users which names already exist in Cameo Team Server are listed. You
can select whether you replace the user you are importing with existing one in the Cameo Team Server or not.
Do one of the following:
To replace a user, select a check box in the Replace column next to the user name you want to
replace.
To keep an original user, click to clear the check box in the Replace column next to user name
you do not want to replace.
NOTE You should rename the user in Teamwork Server, if the user you are
importing has the same name as the user existing in Cameo Team
Server, and you want to keep them both.
After you have resolved naming conflicts, click Next to proceed the next step.
Figure 515 -- Teamwork Server Repository Import Wizard. Confirming project replaces
The amount of imported projects and users is displayed as migration overview in this step.
NOTE Project branches are treated as separate projects, so project branches
are also added to the project amount.
This is the last step where you can change your selections or stop repository importing.
If you do not want to make any changes, click Next to start importing.
Figure 516 -- Teamwork Server Repository Import Wizard. Reviewing importing projects and users
Projects and users importing results are displayed in this step. Click Finish to close the wizard.
Related procedures
Migrating repositories from Teamwork Server to Cameo Team Server
With a help of the Use Server Module wizard you can add a selected server module, such as a library, profile,
or other user defined module part.
On the Collaborate menu, click Server Modules > Use Server Module.
On the Options menu, click Modules. In the opened Modules dialog, click the Use Module
button.
In the Containment Tree, open the selected module shortcut menu and click Modules >
Module Options. In the opened Modules dialog, click the Use Module button.
After the wizard is opened, you see the list of available server modules. Select the particular server module and
do one of the following:
Click Next, if you need to change default module settings. The next wizard step opens.
Click Finish. The selected server module is added to you project.
In this step, you can specify shared module accessibility and packages on which the corresponding module
share is placed.
Click Finish after you have specified module settings. The selected server module is added to you project
Related concepts
Data Partitioning on Server
Related procedures
Creating and managing server modules
Related references
Add Project to Server dialog
In the Version properties dialog, the following detailed information about a particular project version is
presented:
The project version number.
Related procedures
Managing server projects
Related references
History dialog
Manage Projects dialog
with other MagicDraw applications. Users with administrator rights can create new users by creating a name
and assigning various permissions to work on projects. The permissions assigned will determine whether the
new user 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.
At www.magicdraw.com/viewlets in the Project management an collaboration section, you will find the
Teamwork viewlets to help you understand how to work with the Teamwork Server.
NOTE The Teamwork Server functionality is available with MagicDraw client
Standard, Professional, Architect, and Enterprise editions only.
Teamwork Concepts
Get acquainted with basic Teamwork concepts before getting started with Teamwork projects in MagicDraw.
Update project
Get the latest server project you are working on changes from the server. For more information,
see "Updating teamwork projects" on page 836.
Unlock elements
Unlock model elements and/or diagrams, so that other users could have an ability to modify
them. For more information, see "Unlocking model elements and diagrams after editing" on
page 830.
Commit project
Commit the project to the server to save your changes. After committing, a new project version
will be created in the server. Additionally, it is also possible to unlock all elements locked by you
or add a version comment while committing the project. For more information, see "Committing
to Teamwork Server" on page 834.
Author
A user who has committed a particular project version.
Version
A unique number assigned to the version of the project. Project version numbers begin at zero
(for the initial version) and increase with every new project version.
Comment
An optional description about changes in the committed project version.
Tag
Information about the status of a project (approved, initially tested, etc.), or other important
information.
Administrator Login
The default Administrator's account in Teamwork System is:
Login name: Administrator
Password: Administrator
To prevent illegal access, it is advisable to change the Administrator's password.
For more information, see "Managing Teamwork Server" on page 839.
Repository
A storage place for projects and their versions that is managed by the MagicDraw Teamwork
Server.
Project category
A concept which enables visual grouping of projects in the Teamwork Server repository.
Native user
A user whose account data is stored locally in the native Teamwork Server repository.
External user
A user whose account data (all except the login name) is stored in an external database, such as
Subversion, ClearCase, or LDAP.
Server Module
A server project containing one or more shared packages. Modules are created with a purpose
to reuse them or to decompose projects into parts.
You must have certain permissions to work with Teamwork projects. The following are the most important steps
when working with Teamwork projects:
1. Create a Teamwork project or add a non-Teamwork project to the Teamwork Server.Open the
Teamwork project.
2. Lock the elements you want to edit and edit them in the open project.
3. Select the model elements to unlock and commit the project.
4. Create categories for visual grouping of Teamwork projects.
If you want to lock an element for editing, the application will check for the permissions you have and the
availability of the element.
Before committing elements, you can unlock the elements you have previously locked. Committing to
Teamwork Server will create a new project version.
This chapter introduces the main procedures that can be useful while working with Teamwork Server:
Logging to the Teamwork Server
Creating and managing categories
Creating teamwork projects
Adding a non-teamwork project to Teamwork Server
Creating teamwork projects in IDE integration
Locking model elements and diagrams for editing
NEW! Locking project structure
Unlocking model elements and diagrams after editing
Committing to Teamwork Server
Saving teamwork projects
Saving teamwork projects to locally
Updating teamwork projects
Versioning
Visibility of version tags
Sending messages
1. From the Collaborate menu, select Login. The Login dialog opens (see the following figure).
2. Enter your login name, password, Teamwork Server name, and the port number.
3. NEW! In the Server type list, click MagicDraw Teamwork Server.
4. If you want the client application to remember your credentials in order to login next time to the
server automatically upon starting the client application, select the Auto login to server check
box.
5. If you need to connect to the server using the SSL connection select the Use Secured
Connection (SSL) check box. For more information about the configuration of SSL connection,
see "Secured Connection tab" in MagicDraw Teamwork UserGuide.pdf.
IMPORTANT! If the SSL connection is established in the server side, you should
also use the SSL connection in the client side when connecting to the
server.
6. Click OK.
Teamwork Server supports visual grouping of projects. You can build a structure of the whole project repository
by creating categories and grouping Teamwork projects into these categories.
You can create an unlimited number of your own categories, rename or remove them, or move projects to
them.
Teamwork projects that do not belong to any created category will be automatically moved to the system
category named Uncategorized.
1. From the Collaborate menu, choose either Open Server Project or Projects.
2. On the opened dialogs toolbar, click the Create Category button. The Create Category
dialog opens.
To rename a category
1. From the Collaborate menu, choose either Open Server Project or Projects.
2. On the opened dialog, select a category or a project that belongs to the category you want to
rename and then click the Rename Category button. The Rename Category dialog
opens.
TIP You can also open this dialog by selecting the Rename
Category command from the shortcut menu.
NOTE A project can belong to only one category at the same time.
1. From the Collaborate menu, choose either Open Server Project or Projects.
2. On the opened dialog, select the project you want to move, and then click the Move to
1. From the Collaborate menu, choose either Open Server Project or Projects.
2. On the opened dialog, select the category or the project that belongs to the category you want
to remove, then click the Remove Category button and confirm your decision.
Related references
Edit Projects dialog
Open Server Project dialog
This section provides the step-by-step instructions on how to create a new Teamwork project.
1. From the Collaborate menu, choose either Open Server Project or Projects.
2. Click the Add button. The Add Server Project dialog opens.
3. Type a new project name.
4. Either select an existing category or type a new category name.
5. Specify a path in the repository, if Teamwork Server is configured with either the SVN or
ClearCase repository.
6. Click OK.
Related references
Edit Projects dialog
You can add any project to Teamwork Server with MagicDraw version 7.0 and greater.
This section provides step-by-step instructions on how to add a non-Teamwork project to Teamwork Server.
NOTE Project will be added to Teamwork Server together with the selected
modules.
Figure 523 -- An example of the Add Project to Teamwork Settings dialog, the Save As tab
7. The Local Modules tab lists all local modules used in the project. From the Action drop-down
list, select what do you want to do with local modules when adding a project to Teamwork
Server:
Add to Server adds the whole selected module to Teamwork Server. Select a
module name on the server from the Name on Server drop-down list or type a new
one.
Leave Local Module leaves the selected module on a local workstation.
Use Server Module uses a module or its branch from Teamwork Server. You can
select the whole module (trunk) or a branch. For example, which is given in
Figure 524 on page 823, the Production branch of the TypeLibrary module is
selected.
Import Local Module imports the content of the selected module into a project that
you are saving.
Figure 524 -- An example of the Add Project to Teamwork Settings dialog, the Local Modules tab
2. Select Teamwork model and click the ... button to login to Teamwork Server.
3. After log in, select an existing project or add a new one. The model from IDE source will be
updated in the selected project. Click Next.
4. Specify integration properties and click Finish. The Teamwork Project opens in MagicDraw.
NOTE The list of commands may vary depending on the item you have
selected.
Figure 526 -- Lock element for Edit button (fragment of Specification window)
For more information about locking commands, see "Locking commands" on page 877.
To reverse a code to the model that was already reversed, you need to lock elements that store code
engineering information.
1. In the Code engineering sets branch, select a code engineering set or code engineering
element you want to reverse.
2. On the selected items shortcut menu, click Reverse. The Reverse Options dialog opens.
3. In the Reverse Options dialog, set required options and click OK. For more information about
Reverse Options dialog, see Reverse in MagicDraw CodeEngineering UserGuide.pdf.
4. The Lock Elements dialog opens. Select elements you want to lock and click OK.
IMPORTANT! Make sure you have selected all files you are reversing.
5. Depending on options you have selected in the Reverse Options dialog, you may need to
perform some more steps. Please follow instructions provided on your screen.
Starting from version 17.0.1, MagicDraw introduces an additional model integrity protection for a collaborative
environment. All project structure modifications can only be done by a single person at the same time. To
prevent simultaneous structure modification, project structure locking is realized in MagicDraw.
If you are in a collaborative environment and working simultaneously on the same project, the following
operations cannot be performed in parallel:
Modifying shared packages. Adding and removing shared packages are now controlled by the
project structure lock.
Importing new project features. Some plugins may install additional features, such as specific
options or code engineering abilities. An opened project structure is locked automatically, and
this project cannot be opened by other users.
Upgrading project versions. The project structure is locked when the project is migrated from
an earlier version to the later version (for example, from version 17.0 to 17.0.1). While one user
is upgrading project version, the project is in read-only mode for other users until the first user
commits this project.
The project structure is automatically locked to ensure the correct model integrity when you perform one of
these operations. While the project structure is locked other users may continue getting error messages which
may prevent to work with the model. The project structure is unlocked automatically when the project is
committed. Alternatively, you can unlock the structure manually. Use the following procedure.
1. From the File menu, select Project Properties. The Project Properties dialog opens.
2. In the General tab, click the Unlock button and select one of the following command:
Unlock - to unlock the project structure.
Discard Changes - to unlock the project structure discarding changes made after
the last commitment.
IMPORTANT! If the project structure is not locked, but you still get errors concerning
project locks, it may be that structure of used modules in a project are
being locked because of modules are also being upgraded. Please
check if structures of all modules are unlocked and modules are not of
earlier formats.
1. From the Options menu, select Modules. The Modules dialog opens.
2. Select a module. If the module is not upgraded to the latest format, you get a warning at the
bottom of the dialog.
3. Open each module that requires upgrading and resave (commit) it to the server. The module is
upgraded to the latest version in this way. You can continue working with upgraded modules as
usually.
4. Reopen the main project to finish the upgrading process
Related procedures
Locking model elements and diagrams for editing
Unlocking model elements and diagrams after editing
Related references
Managing Modules
NOTE The list of commands may vary depending on the item you have
selected.
1. From the Collaborate menu, select Unlock All. The Commit Settings dialog opens.
2. In the Locked Elements tab, you may select elements to unlock. By default, all locked
elements in the project are selected.
3. Click Commit when you are done.
1. Open the Specification window of the selected locked element or locked symbol.
2. Click the Unlock element button (see the highlighted button in the following figure). This forbids
editing element specification properties in the Specification window.
NOTE If the element was modified, you will be requested to commit changes
to the server.
For more information about unlocking commands, see "Unlocking commands" on page 878.
1. From the Collaborate menu, select Commit Project or press CTRL+K. The Commit Settings
dialog opens.
2. Click the Locked Elements tab.
3. In the elements list, select elements you want to unlock. Click Select All, if you need to unlock
all locked elements in your project.
NOTE: Model elements that are not modified are unlocked without committing
them to the server.
The administrator (that is a user named Administrator) can forcibly unlock elements locked by other users.
The unlocking procedures for administrator are the same as described in section "Unlocking model elements
and diagrams after editing" on page 782.
Forced unlocking is helpful when elements are left locked by the user who is currently unavailable.
The user has a possibility to commit changes made to elements that were forcibly unlocked by an administrator.
To commit changes, the following conditions should be satisfied:
The user should have the latest version before locked elements have been lost.
A new revision of the project has not been committed to the server.
The preceding scenario is very rare, and users should not rely on it. After all, if administrator forcibly unlocked
elements, it means there was a need to edit these elements for some purpose.
Changes to elements that were locked and not forcibly unlocked by an administrator, can be committed to
teamwork normally.
1. Lock the element or elements you want to delete (see "Locking model elements and diagrams
for editing" on page 776).
2. Delete the element.
3. Commit the project to the Teamwork Server.
IMPORTANT! If the element contains inner elements which can be locked separately,
these inner elements should not be locked by the other users to
complete element removal.
For this reason, we suggest to use command Lock Element for Edit
Recursively to lock all inner elements so nobody could prevent you
from removing selected elements.
When committing a project, new data (data from the MagicDraw application) is merged with the existing one
(the current project data on the server). If the current merged element does not yet reside on the server, it
should be added to the project without merging.
IMPORTANT! Only modifier model elements are committed to the server before the
new project version is created.
Any new elements added to the parent scope are given a unique name when placed among elements of the
same type.
NOTE After committing a project, a new project version that contains changes
will be saved in the Teamwork Server.
If you want to save the project locally to your computer, on the File
menu, click Save Project and choose one of the two first options in the
Save Options dialog:
Save the project locally. This option allows you to commit changes
made to a locally-saved project to Teamwork Server later.
Save the local copy of the project and remove locking and
version information. The project will be saved on a disk and will not
include any locking or version information. A local copy of the project
cannot be committed to the Teamwork Server.
Related procedures
Saving teamwork projects
Related references
Commit Settings dialog
You can select any of the following options save when saving a Teamwork project for the first time:
Save the project locally. The project is saved on a disk. You will be able to commit project
changes to the same Teamwork Server.
Save a local copy of the project and remove locking and version information. The project
will be saved on a disk and will not include any locking or version information. A local copy of
the project cannot be committed to the Teamwork Server.
Commit the project changes to the MagicDraw Teamwork Server. Once selected, this
option will automatically be chosen whenever MagicDraw saves the Teamwork project.
1. From the File menu, choose Save Project As. The Save Options dialog will open.
2. Select one of the three save options.
3. Click OK.
If the first or third save option is selected in the Save Options dialog, it will be used every time Teamwork
Server saves the project (the second option wont be saved for the next time). You may notice that the name of
the appropriate command on the File menu is dynamic. Depending on the project's last save option, the
command name can either be Save Locally with Server Information or Commit to Server. The ToolTip of the
appropriate button on the File toolbar will change as well.
NOTE The command name depends on the save option selected in the
Save Options dialog. It can be one of the following:
Save Locally With Server Information.
Commit to Server.
Press CTRL+S.
Related procedures
Saving teamwork projects to locally
Committing to Teamwork Server
While saving your teamwork project to a local file system, you may select either to keep or to discard the ability
to commit your local project to the server later.
NOTE For saving your project to a local one keeping the ability to commit
project changes to the server later, you may select the Save Locally
with Server Information command, if it is available on the File
menu. Cases when this command is available are described in the
procedure "To choose the save option" on page 835.
If a teamwork project uses one or more module versions created with an earlier version than MagicDraw
17.0.1, you need to save these modules with MagicDraw 17.0.1 manually. If you cannot change modules
because your project uses fixed modules, you should perform the following steps:
1. Log on to Teamwork Server which stores the module.
2. Branch each module of the earlier version from the fixed version to a separate branch.
3. Open the branched version of each module and commit it to the server in order to migrate the
module to the latest version.
4. In the project, change versions of each branched module to the branched version instead of
original one.
5. Save the project locally again.
Related procedures
Saving teamwork projects
Managing branches
Committing to Teamwork Server
When updating a project, the latest project version from the server is loaded. A new version of a project is
created every time a user commits new data to the server.
NOTE Model elements that are locked for will not be updated.
When updating lock information, the list of elements that are locked by other users is refreshed.
You should update a project when you know that a new project version is available on the server.
From the Collaborate menu, select Update Lock Information, or press CTRL+SHIFT+U.
Versioning
Every time a project is committed, a new project version is created. You can undo committed changes by
setting a previous project version as latest.
1. From the Collaborate menu, select Projects or Open Server Project commands.
2. Click the Versions button. The Project Versions dialog opens.
The Versions dialog lists all versions of the selected project. You can set the selected project version as latest,
edit comments, and review other project versions.
Related references
Edit Projects dialog
Open Server Project dialog
Sending messages
While working with a Teamwork project, you can send a message to any users who are currently logging on to
the server.
NOTES You can send a message only to users who are on the same
Teamwork Server.
To refresh the list of available users, reopen the Send Message dialog.
1. From the Collaborate menu, select Send a Message or press CTRL+SHIFT+M. The Send
Message dialog opens.
2. From the Active Users drop-down list, select a user to whom you want to send a message. To
send a message to all active users, select <all users> command.
3. Type the message in the Message Text box.
4. Click Send.
Section "Customizing Teamwork Server properties" on page 840 describes how to set general Teamwork
Server properties.
Section "Users management" on page 841 describes how to manage users and assign projects to them.
Section "User permissions" on page 843 describes how to administrate users permissions.
In the Collaboration pane of the Environment Options dialog, set the general Teamwork Server properties.
NEW! For better understanding an option you can read its description that tells what is the effect of changing
the option value.
IMPORTANT! Make sure that the Show Description mode is turned on in the Environment
Options dialog. To turn the Show Description mode on or off, click the Show
Description button on the tab toolbar.
For more information about the Environment Options dialog, see Customizing Environment Options in the
MagicDraw UserManual.pdf.
Users management
You can create two types of users in Teamwork Server: normal users that may have different permissions and
users with administrator rights. Users with administrator rights can do the following actions in Teamwork Server:
Manage users.
Create projects and assign users to them.
Manage project versions and branches.
Set user permissions for the system and projects (the read and edit modes are set by default).
Remove users and projects from Teamwork.
The Teamwork Server users have their own user accounts (including login names and passwords given by the
administrator) and various types of permissions. According to the storage place of the user accounts, users can
be either:
Native - the users account data is stored locally.
External - the users account data is stored in the external database (Subversion/ClearCase
and/or LDAP). Only the login name of an external user is stored locally.
You can create, edit, or remove both types of Teamwork users regardless of whether the integration with any
external database (Subversion, ClearCase, LDAP) is enabled or disabled. The names of native and external
users are unique per single server.
You can convert an external user to a native one and vice versa. Users with administrator rights can change a
specific user's type by editing the user's account information, or convert a whole list of active Teamwork users
by using the Teamwork Administrator's console. For more information about Teamwork Administrator's
Console, see MagicDraw Teamwork UserGuide.pdf.
You will be connected to Teamwork Server once the authorization process, which will prompt for your user ID
(login name and password), has been completed. Upon verification, you can work with the system.
NOTE If there are two MagicDraw clients with the same login name, only one client is
allowed to log into Teamwork Server at a time.
1. From the Collaborate menu, select Users. The Edit Users dialog opens (see "Edit Users
dialog" on page 848).
2. Click the Add button. The Add User dialog opens (see "Add/Edit User dialog" on page 850).
3. Enter the users login name, full name for better identification, and password.
4. Click OK.
5. Select the types of system permissions for the user in the Permissions list (see "User
permissions" on page 843).
1. From the Collaborate menu, select Users. The Edit Users dialog opens (see "Edit Users
dialog" on page 848).
2. Click the Add button. The Add User dialog opens (see "Add/Edit User dialog" on page 850).
3. Enter the users login name and full name for better identification.
4. Select the External User check box.
5. Click OK.
6. Select the types of system permissions for the user in the Permissions list (see "User
permissions" on page 843).
NOTE As you cannot set a password for an external user in MagicDraw's Teamwork
Server, use an appropriate tool for managing the external database (Subversion,
ClearCase, or LDAP) wherein the user's account is stored.
To convert a native user to an external one by editing the user's account information
1. From the Collaborate menu, select Users. The Edit Users dialog opens (see "Edit Users
dialog" on page 848).
2. Click the Edit button. The Edit User dialog opens (see "Add/Edit User dialog" on page 850).
3. Enter the users full name.
4. Select the External User check box.
5. Click OK.
NOTE The password of a native user, who has been converted to an external user, will
be retained. However, it will not be used in the user authentication.
The user's native password will be enabled again only if the user is converted
back to a native user.
1. From the Collaborate menu, select Users. The Edit Users dialog opens (see "Edit Users
dialog" on page 848).
2. Click the Edit button. The Edit User dialog opens (see "Add/Edit User dialog" on page 850).
3. Enter the users full name.
4. Clear the External User check box.
5. Type and retype the password.
NOTE If the converted user used to be a native user, the password will be the
same one used when he or she was a native.
6. Click OK.
1. From the Collaborate menu, select Users. The Edit Users dialog opens (see "Edit Users
dialog" on page 848).
2. In the Users area, select the user and click Remove.
1. From the Collaborate menu, select Users. The Edit Users dialog opens (see "Edit Users
dialog" on page 848).
2. Click More, if you do not see the Teamwork projects list. The list of available Teamwork projects
is displayed in the Available Projects area.
3. Select a project you want to assign to the selected user.
4. Click the << button to move the selected project to the Assigned Projects list.
5. Click OK when you are done.
NOTES Once a user has been added to a project, the default user rights will be created
allowing the user to access the project only according to the rights given.
The system permissions have a higher priority over the project permissions. For
example, a user whose system permissions allow model editing can edit all
projects, even if the user does not have rights to edit the projects.
Related procedures
User permissions
Related references
Edit Users dialog
Add/Edit User dialog
User permissions
You can give several types of permissions to the Teamwork users to coordinate the work of the whole team.
You can specify the types of user permissions in the Edit Users dialog (see "Edit Users dialog" on page 848).
1. From the Collaborate menu, select Users. The Edit Users dialog opens (see "Edit Users
dialog" on page 848).
2. A list of users and their permissions is presented in the Permissions area.
1. From the Collaborate menu, select Users. The Edit Users dialog opens (see "Edit Users
dialog" on page 848).
2. In the Users area, select a user that permissions you want to edit.
3. Select the check box to give or clear it to remove the selected permission in the Permissions
area.
1. From the Collaborate menu, select Projects. The Edit Projects dialog opens (see "Edit
Projects dialog" on page 845).
2. Click More, if you do not see the unassigned users list. The list of available users is displayed
in the Available Users area.
3. Select the user you want to assign to the selected project.
4. Click the << button to move the selected user to the Assigned Users list.
5. Click OK when you are done.
NOTE When a user is added to a project, default user rights are created, allowing
the user to access the project according to the rights given.
Related procedures
Users management
Related references
Edit Users dialog
Edit Projects dialog
1. From the Code engineering sets shortcut menu in the Browser, select New and then select a
code engineering language. Type a name for new set.
2. Add elements from the Data branch to the newly created set. All elements (locked and
unlocked) can be added to set for code generation. Drag & drop them from the Browser tree.
3. Select the code engineering set, containing elements in the Browser and from the shortcut
menu, select Generate. The code is generated for all elements.
1. From the created code engineering set shortcut menu, select Edit.
2. Specify the Working Directory and Working Package, to where reversed elements will be
placed in the model.
NOTE Reversing the whole set to a defined package is allowed only if the
package is locked.
3. In the Add File tab from the Round Trip Set dialog, add code files from the All Files list to the
Set list. Click OK.
4. From the modified code engineering set shortcut menu, select Reverse. Define options in the
Reverse Options dialog. Click OK.
When performing a round-trip code engineering, code cannot be reversed for unlocked elements - the Reverse
command will be disabled in shortcut menu.
Teamwork Dialogs
To activate the Teamwork interface, connect to Teamwork Server.
You can use the Edit Projects dialog to manage projects, assign them to other Teamwork users, and set user
permissions for the system and specific projects.
Alphabetical view Displays the plain project list without any category.
Expand Expands all categories. The button is available only in the categorized view.
Collapse Collapses all categories. The button is available only in the categorized view.
Create Category Opens the Create Category dialog for creating a new category. The button is
available only in the categorized view.
For more information about creating categories, see the procedure "To create a
new category" on page 820.
Remove Category Opens the dialog asking to confirm or cancel the removal of the selected
category. The button is available only in the categorized view, when the
category or the project is selected.
For more information about removing categories, see the procedure "To remove
the category" on page 821.
Rename Category Opens the Rename Category dialog for renaming the selected category. The
button is available only in the categorized view, when the category or the project
is selected.
For more information about renaming categories, see the procedure "To
rename a category" on page 820.
Move to Category Opens the Move to Category dialog for choosing the category to move the
selected project into. The button is available only in the categorized view, when
the project is selected.
For more information about project moving to category, see the procedure "To
move a project to a category" on page 820.
Columns of the Project list
Name The name of the project.
The name of the category.
Related procedures
Creating teamwork projects
Project Branching in Teamwork
Creating and managing categories
Versioning
User permissions
Related references
Project Versions dialog
Related procedures
Users management
User permissions
Related references
Add/Edit User dialog
The Add User dialog is used for creating a new Teamwork user, and the Edit User dialog is used for editing the
Teamwork user appropriately. Both dialogs have the same structure, only the Login field in the Edit User
dialog is not editable.
2. In the Users list, select the user and click the Edit button.
Related procedures
Users management
Related references
Edit Users dialog
The Open Server Project dialog is used for opening projects and managing them as well.
Alphabetical view Displays the plain project list without any category.
Expand Expands all categories. The button is available only in the categorized view.
Create Category Opens the Create Category dialog for creating a new category. The button is
available only in the categorized view.
For more information about creating categories, see the procedure "To create a
new category" on page 820.
Remove Category Opens the dialog asking to confirm or cancel the removal of the selected
category. The button is available only in the categorized view, when the
category or the project is selected.
For more information about removing categories, see the procedure "To remove
the category" on page 821.
Rename Category Opens the Rename Category dialog for renaming the selected category. The
button is available only in the categorized view, when the category or the project
is selected.
For more information about renaming categories, see the procedure "To
rename a category" on page 820.
Move to Category Opens the Move to Category dialog for choosing the category to move the
selected project into. The button is available only in the categorized view, when
the project is selected.
For more information about project moving to category, see the procedure "To
move a project to a category" on page 820.
Columns of the Project list
Name The name of the project.
The name of the category.
Branch The name of the project branch, last selected using the ... button, or the value
Trunk, if the project isnt branched or if the project itself was last selected.
Buttons of the Project list
Show modules Shows those projects that contain one or more shared packages.
Show only assigned Shows only those projects to which the user is assigned.
Rename Opens the Rename dialog for renaming the project. The button is available only
when the project is selected.
Add Opens the Add Server Project dialog for creating a new Teamwork project.
For more information about creating new Teamwork projects, see section To
create a new Teamwork project on page 821.
Remove Opens the dialog asking to confirm or cancel the removal of the project from the
Teamwork Server. The button is available only when the project is selected.
Create Branch Opens the Create Branch dialog for creating a new branch for the selected
project or its branch. The button is available only when the project is selected.
For more information about creating project branches, see the procedure "To
create a project branch" on page 868.
Versions Opens the Project Versions dialog. The button is available only when the
project is selected.
For more information about project versions, see:
"Versioning" on page 837.
"To open the Project Versions dialog" on page 855.
Common buttons
Related procedures
Creating teamwork projects
Managing branches
Creating and managing categories
Versioning
Related references
Project Versions dialog
Rename dialog
The Rename dialog is used for changing the name of a project or module that is used in the project. In server
projects, it is absolutely safe to change module names as modules are identified by a module ID in the
Teamwork server, not bya module name.
Related references
Open Server Project dialog
Press CTRL+K.
Related procedures
Committing to Teamwork Server
In this dialog, project versions are listed from the latest one (which is on the top) to the oldest one.
2. In the Open Server Project dialog, select a project and click the Versions button.
Related procedures
Managing branches
Versioning
Understanding model differences
Related references
Edit Projects dialog
Open Server Project dialog
Version Information dialog
1. Open the Versions dialog (see the procedure "Project Versions dialog" on page 855).
2. Select a project and click Properties.
Related references
Project Versions dialog
With a help of the Use Server Module wizard you can add a selected server module, such as a library, profile,
or other user defined module part.
On the Collaborate menu, click Server Modules > Use Server Module.
On the Options menu, click Modules. In the opened Modules dialog, click the Use Module
button.
In the Containment Tree, open the selected module shortcut menu and click Modules >
Module Options. In the opened Modules dialog, click the Use Module button.
After the wizard is opened, you see the list of available server modules. Select the particular server module and
do one of the following:
Click Next, if you need to change default module settings. The next wizard step opens.
In this step, you can specify shared module accessibility and packages on which the corresponding module
share is placed.
Click Finish after you have specified module settings. The selected server module is added to you project
Related concepts
Data Partitioning on Teamwork Server
Related procedures
Working with teamwork modules
Adding a non-teamwork project to Teamwork Server
For more information about data partition, see Project Partitioning in MagicDraw UserManual.pdf.
3. In the All data list, select one or more packages from which you want to create a Teamwork
module and click the Add button. The packages will be added to the Selected packages list.
4. Click OK.
5. Enter the name of the module for Teamwork Server, if there is such need.
6. Either select an existing category or type a new category name.
7. Click OK. The module will be created in Teamwork Server as a separate file.
3. From the package shortcut menu, select Modules and then click Export Server Module. The
Export Module dialog opens. The packages you have selected in the Containment Tree are
added to the Selected Packages list.
4. You may decide to add more packages. In this case perform step 3, described in the Section
To create a Teamwork module using the Collaborate menu on page 861.
5. Perform step #4 and step #5, described in the section To create a Teamwork module using the
Collaborate menu on page 861.
Once the Teamwork module is created, all its packages and the elements they contain are read-only. Module
name and version number are displayed in the brackets next to each exported package name in the
Containment Tree (see the picture below).
In Teamwork Server, a project can be divided in several parts. You may perform several actions with the part of
the model:
Reuse in other Teamwork projects
Edit it separately.
Export it as a Teamwork module.
IMPORTANT! You are not allowed to import a module into the server project, if a
module has cycle dependencies or it is used both by a project and by
the other module that is used in the project.
1. From the Collaborate menu, select Server Modules and then Use Server Module. The Use
Server Module dialog opens.
2. Select the module you want to use in your project. Click Next.
3. Specify Module Settings in the next step and click OK.
The module will appear as read-only or read-write. It is now available for use in your project. Open the module
as a separate project to edit it. For a detailed description about editing a Teamwork module, see To edit a
Teamwork module on page 863.
1. From the Collaborate menu, select Commit Project. The Commit Settings dialog opens (see
"Commit Settings dialog" on page 854).
2. If you want to save this local module as a separate teamwork module, perform the following
steps:
2.1. Click the Local Modules tab.
2.2. In the Action list, select Add to Server. Perform this step for all modules you want to
add to teamwork server.
3. Click Commit.
Now the project is committed to the Teamwork Server, and the modules are created.
From the module shortcut menu, select Modules > Reload Module. The version number of
the latest version is shown beside the module name (see the following figure).
This procedure allows you to use a new version of a module that has been uploaded to the
Teamwork Server. You can use reloaded module in your own Teamwork project.
Introduction
Project Branching allows the user to derive one project version from another. It duplicates versions of a project
and enables users to work simultaneously on them. Branching increases productivity for those who:
use MDA tools (for example AndroMDA, openArchitectureWare and other).
produce different products that are still very interrelated. This is common when a product has
several versions and each of them is designed for different types of customers.
have several development teams working on a single product and have to merge several
development branches before releasing the product.
The Teamwork Server project repository structures in MagicDraw are shown in Figure 548 on page 864.
As shown above, a branch can be created from any project or branch version. Every project and branch has at
least one version (version 0). In MagicDraw every project version also carries information of the version it was
derived from. Project and branch versions are assigned by adding 1 (one) to the previous project or branch
version number. A new version of a project can be derived from a previous project version or from any branch
version of the project. A new branch version can also be derived from any project version it belongs to or from
any branch version of that project. Every version can be tagged.
Modules are also projects. Therefore, they can also be branched. All features and rules that apply to projects
and project branches apply to modules as well.
A version of a project or a branch stores information of the modules it uses: the module path or module branch
and the version of that module or branch. A version may store the latest value. This means that it always uses
the latest version of the module or module branch.
Figure 549 -- Project repository structure (active versions are in bold) in MagicDraw. Arrows show data flow direction
The list of modules, which are used by a particular project version, is presented in the table below.
2. Branching a project does not cause branching of the modules it uses. The branch of a project
uses the same versions of the modules are used by the project it is derived from (it can be the
module latest version or some explicit version specified by the user). This scenario is depicted
in Figure 551 on page 868.
Figure 551 -- Branched project uses the same versions of modules that are used by the project
The list of modules, which are used by a project in a particular project version, is presented in the table below.
Managing branches
1. From the Collaborate menu, select Projects. The Edit Projects dialog opens.
2. Select the project from which a branch will be created.
7. In the Create Branch dialog, click OK. A new project branch is created.
Tips! You can branch multiple projects together with their modules. To
branch multiple projects, in the Versions dialog select a few projects
(use SHIFT or CTRL keys).
It is possible that several branches are derived from a single project
version. In this case a comma-separated list of branches is
displayed next to the project version (see the following figure).
Figure 552 -- The Project Versions dialog. Several branches are derived from a single project version
To open a branch
1. Open Project Versions dialog. See the procedure "To create a project branch" on page 868.
Figure 553 -- The project title of the main window: project name, branch name, and project version notation
To quickly open the latest version of a branch using the Open Server Project dialog
1. From the Collaborate menu, select Open Server Project. The Open Server Project dialog
opens.
2. Select a project.
The branch opened at the latest is recorded in the Open Server Project dialog. You can see the branch name
in the Branch column. The default branch value is Trunk.
1. Open Project Versions dialog. See the procedure "To create a project branch" on page 868.
2. In the Project Versions dialog, select the project version and click the Create Branch button.
The Create Branch dialog opens.
3. Select the Branch Used Modules check box. The Select modules to branch area appears in
the dialog.
4. In the Select modules to branch list, select the module to be branched together with the
project.
5. Click OK when you are done.
The workflow of project branching when modules are branched together with the project is depicted in
Figure 550 on page 867.
Related references
Edit Projects dialog
Open Server Project dialog
After you have finished editing, you should unlock model elements and diagram.
Project element locking and unlocking concepts are described is the following sections:
Locking Model Elements and Diagrams
Unlocking Model Elements and Diagrams
Diagram with elements Diagram specification properties (in the Specification window).
Element specification properties (in the Specification window and on the
diagram pane).
Diagram properties (in the Symbol Properties dialog).
Symbol properties (in the Symbol Properties dialog).
Symbol layout on the diagram pane.
Related concepts
Representation of locked elements
Locking commands
Unlocking Model Elements and Diagrams
Related procedures
Locking proceduresModel Elements and Diagrams for Editing
Unlocking Model Elements and Diagrams
Related references
Specification Window
Diagram Properties
Formatting Symbols
In the Containment tree, names of elements are presented in two colors. They are as follows:
Locked elements are presented in black, meaning they are editable.
Unlocked elements are presented in grey, meaning they are not editable.
The following figure illustrates the Containment tree with locked and unlocked elements.
Locking commands
Availability of locking commands depends on the item selected for locking. Commands are described in the
following table:
Unlocking commands
Availability of unlocking commands depends on the locked item selected for unlocking. Commands are
described in the following table:
In a server, a project can be divided in several parts. You may perform several actions with the part of the
model:
Reuse in other server projects
Edit it separately.
Export it as a server module.
For more information about data partitioning, see "Project Partitioning" on page 115.
Related concepts
Project Partitioning
Related procedures
Creating and managing server modules
Related references
Export Module dialog
Use Server Module wizard
Menu System
File menu
Button /
Command Hot keys Function
New Project 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.
A project is nameless until you close or save it by
CTRL+N 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
CTRL+O name in the Projects list on the main window toolbar.
Button /
Command Hot keys Function
Import From Imports data from:
Another project - The Import dialog 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.
CSV file
UML XMI 1.0, 1.1, 1.2, 2.1, NEW! 2.4 file
MagicDraw Native XML file
MOF XMI File
CA ERwin Data Modeler 7.x file
Eclipse UML 2 (v1.x, v2.x, v3.x) XMI file
Enterprise Architect 2.1 XMI 2.1, NEW! 2.4 file
Rational Software Architect/Modeler project
Rational Rose *.mdl project file
Print Preview Preview the diagram before printing. The Print Preview
screen opens.
Button /
Command Hot keys Function
Project Properties 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 A list of open projects.
Exit Exits the application.
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.
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
Command keys Function
Undo 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.).
CTRL+Z 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.
Button/
Shortcut
Command keys Function
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
Cut 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
CTRL+X 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.
Copy Copies the selected items or group of items on the Diagram
pane.
The copied items are placed in the clipboard. The cut items
CTRL+C 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.
Copy URL Copy a project element URL to a clipboard and share it with
other as a quick reference to model elements. For more
information about copying element URL, see Copying/
Opening Element URLs on page 302.
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
CTRL+V pasted items and diagrams in the Browser window.
Paste with CTRL+E Creates new and pastes the cut or copied items or groups of
New Data items from the Clipboard to the Diagram pane of the current
project. MagicDraw creates new data and data shapes in
the current project.
Delete Deletes data together with symbol. It is unavailable until you
select any item or group of items in the current project.
CTRL+D
Delete DELETE Deletes a symbol of model element from the diagrams, by
Symbol(s) leaving it in the model.
Select All CTRL+A Selects all items on the Diagram pane of a particular project.
Select All of CTRL+ALT+A Selects all shapes of the selected types in active diagram.
the Same Enabled, when one or more shapes are selected in active
Type diagram.
Button/
Shortcut
Command keys Function
Copy as CTRL+SHIFT Copies the selected model elements to the system
BPM +B clipboard. If no model elements are selected, the active
diagram is copied.
Copy as CTRL+SHIFT Copies the selected model elements to the system
EMF +E clipboard. If no model elements are selected, the active
diagram is copied.
NOTE Copying as EMF is available only under
Windows system.
Copy as CTRL+SHIFT Copies the selected model elements to the system
JPG +J 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 CTRL+SHIFT Copies the selected model elements to the system
PNG +P 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 CTRL+ALT+F Performs a quick search of class/interface, classifier, or
diagram.
Find TODO Performs a search for the TODO tagged value. Results are
displayed in the Browser, Search Results tab.
Paths Path Style - choose the line style for drawing a path.
Rectilinear drawing rectilinear lines.
Oblique - drawing free form lines.
Bezier - in computer graphics, a curve that is calculated
mathematically to connect separate points in smooth,
free-form curves.
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.
View menu
Command Button / Hot keys Function
Fit In Window Reduces the size of the whole
CTRL+W diagram to fit in the Diagram pane.
CTRL+NUMPAD
SLASH MARK (/)
Zoom To Selection CTRL+NUMPAD Increases the size of the selected
ASTERICS MARK model element on the Diagram pane
(*) to the maximum visible size.
Refresh CTRL+R Repaints all diagram shapes.
Grid 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 F12 Opens a list of diagrams that were last
closed.
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 Function
Layout Options Opens the Diagram Layout Options dialog box. Layout
options for the diagram can be set.
Quick Diagram Layout Applies recommended layout with default options on the
(CTRL+Q) active diagram.
Command Function
Layout Class Diagram Applies layout, which uses specific layout algorithms to
Style improve class diagram readability.
Layout Activity Diagram Applies layout, which uses specific layout algorithms to
Style improve activity diagram readability.
Layout Business Process Applies layout, which uses specific layout algorithms to
Diagram Style improve business process diagram readability.
Layout Hierarchic Style 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.
Layout Tree Style Applies layout, which specializes in the layout of tree-
structured graphs. The need to visualize directed or
undirected trees arises in many application areas, e.g.
Dataflow analysis, Software Engineering, Network
management, Bio informatics.
Layout Orthogonal Style 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.
Layout Organic Style Applies layout of the organic style graph.
Layout Circular Style 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.
Route Paths Orthogonal Applies layout, which routes the links of a diagram using
Style 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.
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.
Make Same Width 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 Height Applies layout to the selected shapes according the their
height. After the layout, height of the shapes is equal
(according to the tallest).
Command Function
Align Aligns the selected shapes:
Right
Aligns the selected shape(s) vertically, starting with the
rightmost shape(s).
Left Aligns the selected shape(s) vertically, starting with the
leftmost shape(s).
Top Aligns the selected shape(s) across from the uppermost
shape(s).
Aligns the selected shape(s) across from the lowermost
Bottom
shape(s).
Center Centers the selected shapes:
Horizontally
Centers the selected shape(s) on a horizontal line.
Vertically
Centers the selected shape(s) on a vertical line.
Diagrams menu
Command Hot keys Function
Diagrams Select the required diagram in the list to
edit, create, remove, or open it.
Customize The Customize Diagrams dialog opens.
Diagram Wizards 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
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.
Options menu
Command Function
Project The Project Options dialog box opens.
Modules The Modules dialog box opens.
Environment The Environment Options dialog box opens.
Perspectives Choose a command from the submenu - to switch to
different Perspective or to Customize.
Command Function
Look and Feel Choose a style for the MagicDraw (GUI) from the following
list:
Metal.
CDE/Motif.
Vsnet (Windows).
Office 2003 (Windows).
Office 2007 (Windows)
Eclipse (Windows).
Xerto.
The Look and Feel Themes command allows you to
personalize the GUI: set your favorite colors and fonts.
Interface Style Single Window, or Multiple Windows interface style.
Tools menu
Command Hot key Function
Apply Pattern The Pattern Wizard dialog box appears. Create
the design pattern for the selected class,
interface.
Model Transformations Opens the Model Transformations Wizard
dialog box with a list of all available
transformations.
Hyperlinks Opens the Hyperlink dialog where you can add
hyperlinks to any model elements.
Report Wizard 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. For
more details, see the MagicDraw ReportWizard
UserGuide.pdf, which is located in the
MagicDraw installation directory, Manual folder.
Quick Reverse 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).
Generate Code Framework CTRL+G 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).
Check Syntax CTRL+T Checks syntax in the model according to the
default code engineering language. Opens the
Message Window with the information.
Set empty tags to defaults 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 cre-
ated for the stereotype. After creating such a tag
definition, the model elements that have the mod-
ified stereotype applied will have newly created
tags unset.
For more information see To create default tag
values on page 643.
Integrations Opens the Integrations dialog box with a list of
tools for possible integration with MagicDraw.
Analyze menu
Command Shortcut keys Function
Model Visualizer Opens the Model Visualizer dialog box with a
list of all available wizards.
Metrics Metrics feature allows the measurement of a
project by different viewpoints. Specify the
metrics scope in the Metrics Options dialog
box.
Compare Projects Opens the Compare Projects dialog box, where
you can choose projects to perform model
differencing.
Dependency Dependency Matrix is a method of visualizing
Matrix 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.
Collaborate 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.
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 Customizing
Environment Options on page 89.
Help menu
Command Function
Help Contents Displays a table of contents for the MagicDraw Help.
User Manual Opens the MagicDraw User Manual.
Plugins User Manuals Dislpays the list of all available users guides and users
manuals.
Tip of the Day Displays the Tip of the Day screen.
Report an Issue The MagicDraw team always welcomes your initiative.
Submit bugs, suggestions, and new feature requests
through the Report an Issue dialog directly to Online
Support System.
View and Submit Internal View errors received during work with MagicDraw. Send a
Errors bug report to the MagicDraw support team.
For more information about submitting a bug see
Reporting issues directly from MagicDraw on page 35.
Check for Updates Opens The HTTP Proxy Server Connection dialog box.
Set the data for connection to start the MagicDraw UML
update.
<Procuct Name> License Select evaluation key, activate commercial license, or use
Manager the floating license.
Finish Offline Floating If you are using offline Floating License, finish the offline
Session session.
Show Welcome Screen If no project is open, you may choose this command to
open the Welcome screen.
Whats New Opens the New and Noteworthy section: http://
www.magicdraw.com/newandnoteworthy
News Reader Read the latest news about new updates, products,
resources, and No Magic Inc. events.
Resource/Plugin Manager Check for available updates and new resources in the
Resource/Plugin Manager window.
MagicDraw on the Web The WWW pages where you can find additional
Online Support information about MagicDraw and UML.
Online Demo Get online support.
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.
Main Toolbars
The main toolbars are located at the top of the MagicDraw window, below the main menu. They contain the
commands for commonly used tasks, so helping to speed up your work with MagicDraw.
For more information about customizing toolbars, see Customizing toolbars on page 71.
File Toolbar
IMPORTANT! If you cannot see some of the buttons, please, check the
perspective and the mode you are working on.
Print Preview The Print Preview dialog box opens showing how your
diagram looks before printing.
Diagrams Toolbar
IMPORTANT! If you cannot see some of the buttons, please, check the
perspective and the mode you are working on.
State Diagram A state diagram describes the lifecycle of an object and its
(Ctrl+Shift+5) behavior (such as a procedure or operation), or a
behaviored feature (such as a use case).
Protocol State A protocol state machine is always defined in the context
Machine Diagram of a classifier. It specifies which operations of the classifier
(Ctrl+Shift+6) can be called in which state and under which condition,
thus specifying the allowed call sequences on the
classifier operations.*
Activity Diagram The purpose of an activity diagram is to focus on flows
(Ctrl+Shift+7) driven by the internal processing (as opposed to external
events).
Component Diagram A component diagram represents a physical structure of a
code (as opposed to the class diagram, which portrays the
logical structure) in terms of code components and their
relationships within the implementation environment.
Deployment Diagram 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.
Object Diagram Object diagram display instances of classifiers and links
(instances of associations) between them.
a. Material from the OMG UML Specification has been duplicated with permission.
IMPORTANT! If you dont see some buttons, please, check the perspective and
the mode you are working on.
ToolTips Style button Click the ToolTips Style button and select the style 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.
IMPORTANT! If you cannot see some of the buttons, please, check the
perspective and the mode you are working on.
Perspectives Toolbar
To change the MagicDraw user perspective, use the Perspectives toolbar.
IMPORTANT! If you cannot see some of the buttons, please, check the
perspective and the mode you are working on.
Validation Toolbar
To validate the created models, use the buttons on the Validation toolbar.
IMPORTANT! If you cannot see some of the buttons, please, check the
perspective and the mode you are working on.
Run Last Validation Click to run the model validation on options saved
in the Validation dialog box.
Diagram Toolbars
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.
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.
In the Browser, the Containment tree is active by default. To open the Containment tree, click the Contain-
ment Tree tab at the top of the Browser. The Containment tree displays a model data, and groups it in logical
sets.
Open in New Tab A new tab with a package name and tree content will
be opened in the Browser.
To open the Inheritance tree , click the Inheritance Tree tab at the top of the Browser. The Inheritance tree
represents the classifiers, packages, data types, stereotypes hierarchy of your project. The inheritance accord-
ing to the UML Specification is shown using a generalization relationship.
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.
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.
To open the Search Results tree, click the from the Edit main menu, select the Find command. The
Search Results tree shows results of the search.
All descriptins are duplicated from the OMG UML Specification with permission.
Activity Parameter Node An activity final node is a final node that stops all flows
in an activity.
Event (all type of events) An event is the specification of some occurrences that
may potentially trigger effects by an object.
Model Library 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.
N-ary Association An n-ary association is an association among two or
more classes (a single class may appear more than
once).
Node 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 Instance A node instance is an instance of a node where the
component instances may reside.
Shared Package 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 115.
Signal A signal is a specification of send request instances
communicated between objects.
Join Horizontal or Vertical A join node is a control node that synchronizes multiple
flows.
Icons of relationships
Icon Title Description
Relations branch Most of the relationships are included in the Relations
branch in the Browser.
For more information about working with modules and profiling mechanism, see Project Partitioning on
page 115.
MagicDraw version 17.0.1 supports the changes in the UML specification from version 2.3 to 2.4.1. These
changes, including metamodel changes and notation changes, are introduced in this appendix.
For the summary of the UML metamodel changes, see "Metamodel Changes" on page 924. This section also
gives a brief description of each change and also provides the list of event types that are not supported in UML
2.4.1.
For the UML notation changes, see "Notation Changes" on page 927.
For information about opening models created in any version older than MagicDraw 17.0.1, see "Opening
Older Models" on page 928.
Metamodel Changes
The following table summarizes the UML metamodel changes from version 2.3 to 2.4.1 supported in
MagicDraw, starting with version 17.0.1, and gives some brief information about the impact of each change.
METACLASSES ADDED
LiteralReal Specifies the real value.
METACLASSES CHANGED
DestructionEvent --> The DestructionEvent class has been renamed to
DestructionOccurrenceSpecification DestructionOccurrenceSpecification. It represents the
destruction of an instance described by the lifeline that
contains this instance.
DestructionOccurrenceSpecification is a specialization of
MessageOccurrenceSpecification.
METACLASSES REMOVED
ExecutionEvent These metaclasses have been removed from the
Interactions package due to unsupported event types.
CreationEvent
ReceiveOperationEvent
ReceiveSignalEvent
SendOperationEvent
SendSignalEvent
PROPERTIES ADDED
Package::URI:String[0..1] {id} Provides the package with an identifier that can be used
for many purposes. URI is the universally unique
identification of the package following the IETF URI
specification, RFC 2396 http://www.ietf.org/rfc/
rfc2396.txt and it must comply with those syntax rules.
You can now specify this property for packages, profiles,
and models.
For the notation of the URI property, see "Notation
Changes" on page 927.
Property::isID:Boolean=False Indicates that the property can be used to uniquely
identify an instance of the containing class, when the
value is set to true. The default value is false.
For the notation of the isID property modifier, see
"Notation Changes" on page 927.
InteractionUse::returnValue:ValueSpecification Specifies the value returned by the executed interaction.
[0..1]
InteractionUse::returnValueRecipient:Property Specifies the recipient of the value which is returned by
[0..1] the executed interaction.
EnumerationLiteral::/classifier:Enumaration[1] The classifier of this EnumerationLiteral should now be
equal to the enumeration that contains this enumeration
literal. Redefines InstanceSpecification::classifier.
ASSOCIATIONS REMOVED
ExecutionOccurrenceSpecification::event: The association from ExecutionOccurrenceSpecification
ExecutionEvent[1] to ExecutionEvent has been removed, as the
ExecutionEvent metaclass does not exist in the UML
2.4.1.
OccurenceSpecification::event:Event[1] The specification of the occurring event is not referenced
any more.
BehavioredClassifier::ownedTrigger:Trigger[0..*] Trigger descriptions owned by a classifier are not
referenced any more.
SUBSETTING CHANGES
Interface::redefinedInterface {subsets An interface now references all the interfaces that are
redefinedElement --> redefinedClassifier} redefined by this interface.
SUBSETTING ADDED
MULTIPLICITY CHANGES
EnumerationLiteral::enumeration:Enumeration The Enumeration must now be specified. It has become
[0..1] --> [1] mandatory.
Multiplicity of ExecutionSpecification association ExecutionSpecification is now associated with two
with ExecutionOccurrenceSpecification: ExecutionOccurrenceSpecifications:
[1] --> [0..2] The start ExecutionOccurrenceSpecification that
designates the start of an action or behavior.
The finish ExecutionOccurrenceSpecification that
designates the finish of an action or behavior.
DERIVATION CHANGES
Constraint::/context --> context The context property of the constraint is no longer
derived. It is now a settable property.
Message::/signature --> signature The signature of the message is no longer derived.
However, it remains read-only.
Notation Changes
The changes in the UML notation from version 2.3 to 2.4.1 supported in MagicDraw are as follows:
1. If there is a value defined for the URI property of a package, model, or profile, it is automatically
displayed on the corresponding shape. The following figure depicts an example of the package
notation with the URI property value defined:
2. If the isID property is set to true for the selected attribute, the {id} modifier is displayed in the
property modifiers group on the class shape. The following figure depicts an example of the
attribute notation, when the isID property is set to true:
3. The name of a synchronous message is now displayed on a diagram pane, even if the mes-
sage does not have a signal or an operation assigned. The following figure depicts an example
of the synchronous message name notation:
4. Brackets () are no more added to a call message name, if the message does not have a sig-
nal or an operation assigned. The following figure depicts an example of the call message name
notation:
To update older models, simply open them with the MagicDraw version 17.0.1 and then save them. Models will
be automatically converted and next time will be opened as UML 2.4.1 models. After the conversion to UML
2.4.1, all property values of these models will be persisted.
V
View menu 94, 1075
visibility
for operation 995
of association end 886
showing on attribute 902
showing on operation 902
W
web diagram 802
Window menu 106, 1087
Windows
JVM 53
wizards 404, 537
workspace 178
WSDL diagram 812
X
XMI 186
XML Schema diagram 814, 817, 825
Z
Zoom 1:1 (command) 94, 1075
Zoom In (command) 94, 1075
Zoom Out (command) 94, 1075
Zoom To Selection (command) 94, 1075
zooming 306
adjusting step size 307
fit in window 306
to maximum size 307
to original size 306
using Browser 135
zoom in 306
zoom out 306