# MagicDraw

MagicDraw is a proprietary visual UML, SysML, BPMN, and UPDM modeling tool with team collaboration support.

## Features
### Domain specific language

The domain specific language (DSL) customization engine allows for adapting MagicDraw to a specific profile and modeling domain, thus allowing the customization of multiple GUIs, model initialization, adding semantic rules, and creating one's own specification dialogs and smart manipulators. The ability to use multiple specific customizations helps to make MagicDraw better oriented to specific platforms, technologies or domains, and can even hide UML entirely. Active validation allows the checking of domain specific models in real time and suggests help and can even fix some issues. DSL elements can be converted to any subtype or a more general type using the “Convert to” function. DSL allows custom derived properties to be created that allow extending a UML metamodel or its profile.
All DSL'ed elements can be numbered by using the generic numbering mechanism. The elements can be numbered in consecutive or multi-level style. The separator or prefix of number can be changed during the element numbering.

### Model decomposition

Model Decomposition is a function which can split projects and other work into independent parts.
* Lazy loading allows the specification of modules that should not be loaded into memory by default when a project is started. Module elements are only loaded as they are specifically requested.
* Read-Write modules allow module editing of a fragmented model. It is also used during model refactoring.
* Since MagicDraw has the ability to have flexible control over the dependencies between model parts, it is possible to continue working with the product without resolving dependencies between model parts.
* Indexing – ability to create an index of an unloaded module. It allows using part of the elements of the module without loading it.

### Template based documentation generation

Fully customizable templates can be created in the style and format preferred by the user. Reports can be exported into variety of file formats (OpenDocument (*.odt), RTF (*.rtf), Microsoft Word (*.docx), Microsoft Excel (*.xlsx), Microsoft PowerPoint (*.pptx), XML, HTML, XHTML). Reports can be personalized with characters, paragraphs, and fonts that are supported by a chosen file format. MagicDraw has the ability to import RTF documents or parts of them into reports (Import tool), to get Teamwork Project Information and upload reports to a remote location. It includes JavaScript Tool which enables report templates to evaluate or run JavaScript codes from templates and external JavaScript files. It also supports a rich set of image manipulation methods that enable image transformation during report generation.
MagicDraw supports MS Word and Open Document Format template.
Templates for SDD and UCS (Software Design Document and Use Case Specification), architectural templates: use case report, structural report, behavioral report, implementation report, environment report, Model Extension, Data Dictionary, Business Process Modeling Notation, Web publisher with collaboration ability for commenting on and editing report data through a web browser.

### Analysis facilities

The following analysis facilities are available in MagicDraw:
* The Dependency Matrix allows visualizing relationships of a large system in a compact way. Export to .csv is also available.
* Traceability between different levels of abstraction which makes it possible to find more specific and realizing elements, usually not from the same view. This allows for handy specification and realization discovery, and navigation. Predefined traceability suites are customizable to customers’ needs.
* Visual model differencing allows viewing the changes made between two different versions of a model.
* Representation of the number of class and package dependencies is automatically generated after code is reverse engineered.
* Usage in Diagrams allows viewing the diagrams on which a particular data element was represented.

### Model refactoring

Model refactoring like code refactoring is the disciplined technique used for modifying or improving an existing model. The following refactoring functions are available in MagicDraw:
* Element conversion
* Relationship direction reversion
* Diagram extraction (this function is available only for the activity and composite structure diagrams)

### Transformations

MagicDraw provides transformation of UML models to specific XML Schema and DB models (generic and Oracle DDL) and vice versa, and any to any transformation.
Also model-to-model transformations between the same or different meta-models can be defined and run directly in MagicDraw by using the QVT plugin. The QVT (Query/View/Transformation) is a standard defined by the Object Management Group.

## Related products and plugins
### Cameo Business Modeler

OMG BPMN 2.0 support with all three diagrams (Process, Collaboration and Choreography), model validation and reports are available with the Cameo Business Modeler plugin

### SysML

The SysML plugin supports the latest OMG SysML Specification 1.6 version. The SysML plugin supports all SysML diagrams including Requirements, Block Definition, Internal Blocks, Parametric and other diagrams. Validation constraints actively check and validate user-created models against a set of constraints. SysML provides support for analysis, design, and validation of a broad range of systems and system integrations.

### UPDM

The UPDM plugin supports the latest OMG UPDM Specification 2.0 version. It unifies MoDAF 1.2, DoDAF 2.0, NAF 3 and NAF 4. It has support for all DoDAF and MoDAF modeling artifacts based on the DoDAF and MoDAF Architecture Frameworks, with reports, wizards, model correctness and completeness validation constraints, as well as usability features.

### Cameo Simulation Toolkit

Cameo Simulation Toolkit provides the first in the industry extendable model execution framework based on OMG fUML and W3C SCXML standards. It extends MagicDraw to validate system behavior by executing, animating, and debugging UML 2.0 State machines and Activity models in the context of realistic mock-ups of the intended user interface.