Item Flows Transformation

Flows in Rhapsody

Flows and item flows provide a mechanism for specifying exchange of information between system elements at a high level of abstraction.
This functionality enables you to describe the flow of data and commands within a system at an early stage, before committing to a specific design.
As the system specification evolves, you can refine the abstraction to relate to the concrete implementation.
Flows can convey item flows, classes, types, events, attributes and variables, parts and objects, and relations.
You can draw flows between the following elements:

Item Flow

An item flow is an abstraction of all kinds of information that can be exchanged between objects.
It does not specify the structure, type, or nature of the represented data.
You provide details about the information being passed by defining the classifiers that are represented by the item flow.

Source: IBM Knowledge Center.

Flows in MagicDraw

An Information Flow specifies that one or more information items circulate from its sources to its targets.
Information flows require an "information channel" for transmitting information items from the source to the destination.

Information Item

The Information Flows package provides mechanisms for specifying the exchange of information between entities in a system at a high level of abstraction.
Information Flows describe the circulation of information in a system in a general manner.
They do not specify the nature of the information or the mechanisms by which this information is conveyed (message passing, signal, common data store, parameter of operation, etc.).
Also, they do not specify sequences or any control conditions.
It is intended that representation and realization links will be able to specify which model element implements the specified information flow, and how the information will be conveyed. while modeling in detail.
An Information Item is an abstraction of all information that can be exchanged between objects. It is a kind of classifier intended to represent information in a very abstract way, one which cannot be instantiated.
In a classifier, the Information Item can be represented as a name inside a rectangle. The black triangle icon at the top of the rectangle indicates that it is an Information Item.
Information Items, or any conveyed classifiers, can be displayed on any relationships.

One purpose of Information Items is to enable you to define preliminary models before making detailed modelling decisions on types or structures. Another purpose of Information Items and Information Flows is to abstract complex models by using a less specific more general representation of the information exchanged between entities of a system.

Source: MagicDraw Documentation.

Case 1: Flow that conveys Item Flow(s) not represented

The following rules apply:

Case 2: Flow that conveys Item Flow(s) represented by Events

The following rules apply:

Case 3: Flow that conveys Classifier(s)

In UML, a Classifier can be an Actor, a Class, a Component, a UseCase.
The following rules apply:

Case 4: Flow that conveys an Element which is not a Classifier

In this case the Rhapsody Flow is transformed to a MagicDraw Information Flow.
In MagicDraw, the Information Flow must convey a Classifier (As a reminder, a Classifier can be a Class, an Actor, a Component, a UseCase...). While in Rhapsody it conveys an Element that is not a Classifier.
The option rhp2md.semantic.item_flows, in publisher.properties file, is used to know the type of the Classifier to create in MagicDraw.

If the option rhp2md.semantic.item_flows is set to something else than a Classifier, an InformationItem is created.
By default, the option will be set to Signal in the publisher.properties file.

Setting item flow property

To create Signals for conveyed items that are not Classifier (Attribute...), set to following option in publisher.properties file:

# Determines the way Item Flows are transformed. Available values: Signal, InformationItem, Class, ... - default Signal
rhp2md.semantic.item_flows=Signal