UML/SysML#

Lattix can read in UML and SysML from the following:

  1. IBM Rhapsody

  2. Magic Draw

  3. Sparx Enterprise Architect

  4. XMI

UML/SysML (MagicDraw)#

With the MagicDraw module for Lattix it is now possible to apply the Lattix approach to review, refactor, and maintain large scale Magic Draw Models.

The MagicDraw module for Lattix is available in Lattix 9.8.5+..

Here are just a few benefits of this integration:

  • You can improve the quality of the models by identifying and removing unwanted couplings and dependencies.

  • Measure and trend the complexity using various architectural metrics.

  • Establish rules to ensure conformance to desired architecture.

Installation#

No additional installation required. Simply export an XMI 2.5 file from Magic Draw and load it into Lattix.

Creating a Project#

Once you have exported your data from MagicDraw into XMI, you can load the data into Lattix

  • Select the File->New Project… menu image0

  • You can select the “All” Profile and click “Next>” image1

  • On the next page you can select the “UML/SysML (MagicDraw)” Module type. Navigate to the XMI files you wish to load and add the files to the project by selecting them and clicking the “Add Files” button. image2

  • Click “Create Project”

  • Once the project is created, you will see the project home page. Click “New Dependency Structure Matrix” to create and view the DSM image3

Atom Types and Dependency Kinds#

The following types of atoms are created:

  • Activity

  • Action

  • Actor

  • Artifact

  • Attribute

  • Block

  • Class

  • Component

  • Datatype

  • Interface

  • Interaction

  • Message

  • Node

  • Operation

  • Package

  • Pin

  • Profile

  • Property

  • Requirement

  • Signal

  • State

  • StateMachine

  • Stereotype

  • UseCase

The following kinds of dependency relationships are generated:

  • Allocate

  • Association

  • ControlFlow

  • Depend

  • Extend

  • Include

  • Generalize

  • ObjectFlow

  • Realize

  • Reference

  • Satisfy

  • Transition

  • Type

  • Use

  • Verify

Limitations#

  • Non standard information such as fonts, locations of figures is ignored.

  • This module was tested with Magic Draw Version 18.1.

  • Parametric Diagram is currently not supported and will be skipped.

UML/SysML (IBM Rhapsody)#

With Lattix for Rhapsody it is now possible to apply the Lattix approach to review, refactor, and maintain large scale IBM Rational® Rhapsody models. During the earliest stages of design, it is possible to identify undesirable interdependencies and expose key design decisions for the entire team. Rules can be established in the model for compliance with the architecture to guide the system developers during development and testing for validation.

Lattix for Rhapsody has these unique capabilities:

  • Create and explore the big picture view of the Rhapsody model that incorporates all the model elements including packages, use cases, sequence diagrams, object diagrams, class diagrams, types, state charts and other elements.

  • Identify problematic dependencies such as couplings and architectural violations within Rhapsody directly. Examples of such couplings include: unintended package coupling which breaks the desired layering or independence of components, and unintended coupling from sequence or other logical diagrams which, if implemented, could create undesired coupling.

  • Establish rules so that model developers can maintain compliance to the desired architecture during development.

  • Extract interfaces and re-factor the model to preserve architecture.

The implemented system can also be validated using Lattix to ensure that it remains in compliance with model intent.

Install#

Please make sure that you have Lattix and Rhapsody installed on your system. The Lattix for Rhapsody module will not work if you don’t have a valid license for either Rhapsody or Lattix.

STEP 1. Copy the Rhapsody Java API jar file:

[Rhapsody install data directory]\Share\JavaApi\rhapsody.jar => C:\Program Files\Lattix10.\ x\lib\plugins\

STEP 2. Copy the Rhapsody API dll:

[Rhapsody install data directory]\Share\JavaApi\rhapsody.dll => C:\Program Files\Lattix10.\ x\bin\win64\

Please adjust path if your Rhapsody or Lattix is a different version or if you didn’t install in the default directory.

Notes#

The location of the data directory has changed in different releases of Rhapsody:

Please consult documentation for your version of Rhapsody to locate rhapsody.jar and rhapsody.dll files in your distribution.

Here are some useful links:

https://www.ibm.com/docs/en/engineering-lifecycle-management-suite/design-rhapsody https://www.ibm.com/docs/en/engineering-lifecycle-management-suite/design-rhapsody/8.3?topic=function-rational-rhapsody-api

Create a Project#

There are two ways to create a new project:

  1. You can load in any Rhapsody Project File. In the New Project dialog, select the Rhapsody Project file to be loaded in, click on Add Files, and then click on Create Project.

  2. You can load in the currently active Rhapsody Project. This is useful when you are actually working on a Rhapsody Project and want to see it represented within Lattix so that you can make changes for the problems that you identify. Select Auto Connect and click on New Project. For this to work, you must have Rhapsody running and loaded with the project of interest.

If your Rhapsody Model has changed, and you have a Lattix Project created from an older model, you can simply update the project. Along with a new updated project, you will also see a report on what elements are new or changed, what rule violations have been fixed, and what new violations have been introduced.

Options#

Options to Control the Generated Hierarchy#

Create “Components” Partition

All components at the same level are grouped into the “Components” partition. This is enabled by default.

Create “Objects” Partition

All Objects at the same level are grouped into the “Objects” partition. This is enabled by default.

Create “Packages” Partition

All packages at the same level are grouped into the “Packages” partition. This is enabled by default.

Create “Classes&Interfaces” Partition

All classes and interfaces at the same level are grouped into the “Classes&Interfaces” partition. This is enabled by default.

Options to Control the Elements that are Processed#

Skip Component

Components are skipped.

Skip Object Diagram

Object Model diagrams are skipped.

Skip Event

Events are skipped.

Skip Sequence & Collaboration Diagram

Both sequence and collaboration diagrams are skipped.

Skip State

The state diagram and the states are skipped.

Skip Stereotype

Stereotypes are skipped.

Skip Use Case

Use Cases, Use Case Diagrams and Actors are skipped.

Skip Type

Types are skipped.

Atom Types and Dependency Kinds#

The following types of atoms are created:

  • Actor

  • Attribute

  • Class

  • Collaboration Diagram

  • Configuration

  • Comment

  • Component

  • Deployment Diagram

  • Event

  • EventReception

  • FlowChart (or Activity Diagram)

  • Object

  • Object Diagram

  • Operation

  • Package

  • Port

  • Requirement

  • Sequence Diagram

  • State

  • StateChart

  • Stereotype

  • Structure Diagram

  • Type

  • UseCase

  • UseCase Diagram

The following kinds of dependency relationships are generated:

  • Depend

  • Inherit

  • Provided Interface

  • Reference

  • Required Interface

  • Transition

  • Trigger

  • Type

  • Use

  • Within Scope

  • Within Diagram

Limitations#

  • You need a Rhapsody installation with a valid license in order to use the Lattix for Rhapsody Module.

  • The Lattix for Rhapsody Module has been tested with Rhapsody 7.2, Rhapsody 7.6, Rhapsody 8.14 and Rhapsody 8.3.

UML/SysML (Sparx Enterprise Architect)#

With the Enterprise Architect module for Lattix it is now possible to apply the Lattix approach to review, refactor, and maintain large scale Enterprise Architect Models. Here are just a few benefits of this integration:

  • You can improve the quality of the models by identifying and removing unwanted couplings and dependencies.

  • Measure and trend the complexity using various architectural metrics.

  • Establish rules to ensure conformance to desired architecture.

Installation#

Please make sure that both Lattix and Enterprise Architect are installed on your system. The Lattix module for Enterprise Architect module will not work without a valid license for Enterprise Architect. Lattix is designed to work with both 32bit and 64bit versions of Enterprise Architect.

64bit Enterprise Architect#

To configure Lattix to work with 64bit Enterprise Architect, you will need to select the menu View->Preferences in Lattix.
This will open the Preferences Dialog. Select the node on the left: Preferences/Modules/UML SysML (SparxEA) Defaults/Configuration Options
  • In the field SparxEA HOME enter the path to Enterprise Architect

image4

32bit Enterprise Architect#

To configure Lattix to work with 32bit Enterprise Architect you will need to select the menu View->Preferences in Lattix.
This will open the Preferences Dialog. Select the node on the left: Preferences/Modules/UML SysML (SparxEA) Defaults/Configuration Options
  • Install a 32bit version of Java and point Lattix to it, using the field JAVA_HOME. You must also select the checkbox “Use Java Home” (If needed you can download 32bit Java here

  • In the field SparxEA HOME enter the path to Enterprise Architect

image5

You may have to adjust the path for Enterprise Architect.

You are now ready to use the Lattix Enterprise Architect Module.

Options#

Options to Control the Elements that are Processed#

Skip Diagrams

All diagrams are skipped.

Code Elements Only

The Model is created using only Class, Interface, Method and Attributes in the EA model. The package structure is still be reflected in the DSM because of naming. though there are no Package atoms.

UML Elements Only

The model is created using only diagrams and elements typically used in UML models. This option has not yet been implemented.

Limitations#

  • You need an Enterprise Architect installation with a valid license in order to use this module.

  • This module has not been been tested with versions older than Enterprise Architect Version 9.2.

UML/SysML (XMI)#

You can load UML and SysML models that have been exported to XMI. This module helps the designers visualize and maintain the big picture view of design at an early stage. It helps identify problematic dependencies (such as cycles) during the modeling stage itself. This module supports XMI Version 2.1.

Each UML tools provides a different way to export to XMI. Please see the documentation associated with your UML tool on how to export the model to XMI. Here is how things work currently with some of the popular tools:

Enterprise Architect: Load a project. In the Project Browser Window select a package and right click and select Import/Export->Export Package to XMI.

Magic Draw: Load a project. Select File->Export to->UML 2.5.

Rational Software Architect:Load a project. Select File->Export->Other->UML XMI Interchange Model.

Rhapsody: Load a project. Select Tools->Export to XMI.

Options#

Skip Interactions#

Interaction diagrams (both sequence and collaboration) are skipped.

Skip Use Cases#

Use Cases are skipped.

Skip Types#

Types are skipped.

Skip States#

The state diagram and the states are skipped.

Skip Signal#

Signals are skipped.

Skip Profiles#

Profiles are skipped.

Atom Types and Dependency Kinds#

The following types of atoms are created:

  • Actor

  • Attribute

  • Class

  • Constraint

  • Datatype

  • Interface

  • Interaction

  • Operation

  • Package

  • PrimitiveType

  • Profile

  • Signal

  • State

  • StateMachine

  • Stereotype

  • UseCase

The following kinds of dependency relationships are generated:

  • Depend

  • Inherit

  • Reference

  • Transition

  • Type

  • Use

Limitations#

  • UML tools generate display information such as fonts, locations of figures on the screen in a non-standard fashion. This information is ignored by this module.

  • Different UML tools generate model information differently into XMI. As a result, the Lattix project could look different based on the tool that generated the XMI.

  • Only XMI Version 2.1 is supported.