A Rhapsody model project consists of several data files named
resource
for which the .RPY
file is the main entry point.
The resource
files use Rhapsody format I-Logix-RPY-Archive
, and RPY parser
supports format provided by applications Rhapsody 7.6.1 to 8.2.1.
The new XML format is not supported.
Each resource
file consists of a hierarchy of data we call elements
.
Each element
contains a bunch of information we call features
.
Each feature
contains either a value
or a reference
.
We distinguish two types of feature values
:
native
: is a feature which value
cannot be recomputed by the usage of other features. It basically contains the minimum data required.derived
: is a feature which value
must be recomputed by the usage of other features or its own native value.reference
is a link to a single element
or a set of elements
located in the same resource
,
or in another resource
in the same project, or resources
in another projects or in the Profiles
path.
The connector is able to load this tree of resource
files in their reading order.
I.e: Each time a reference
is detected, the mentioned resource
is automatically loaded before
completing the loading of the current resource
.
You can see the list of those files in the Model View using tab
Containment.
Please note that in this view, file icons
are provided by the Operating System.
All elements
and features
of the whole list of resources
are loaded even if they are not used by the current project.
As the parser loads all the resources
, the memory size of the JVM in which the process is running must be set correctly.
Larger models may need to increase heap space if the current setup is not enough.
The recommended stack size is 1024 kB by adding JVM option -Xss1024k
-Xmx1024m
Mainly the graphical elements
are not yet supported:
GrapElement
and its derived classes,Diagram
and its derived classes,GraphicalProperty
.If some ModelElement
s appear in Rhapsody model browser with flag (U), this indicates that they are unresolved.
When you read this model with the connector Application, these missing elements are partially recreated from the minimal data available.
With the RPY connector, when you select a reference
feature in the Model view,, these elements are displayed in with their name in italic with the message <unresolved resource...
But they are missing in the Display Types set.
Rhapsody Properties are stored in a specific element
which class name is Property
.
Only properties that have been overridden in some resources
of the current project or in other referenced resources
, will be loaded by this parser.
Properties that are generated by the Rhapsody Application connector are not included in the RPY connector, especially:
RHP.SpecificationFilename
, RHP.ImplementationFilename
, RHP.IsBeingGenerated
.
The process to read predefined properties in a specific Rhapsody Properties file is not yet implemented.
Any features that reference a graphical element
are not supported.
Any features that contains String
data may contain special characters escaped with prefix '\'. Those that are multi-lines could differ by line-ends
A) The following features are not supported because:
native
but Rhapsody seems to apply a transformation that is not perfectly known.derived
from other features but the process to compute their value is
internal in Rhapsody and is not perfectly known.Note: for each feature is mentioned the element that is concerned, but also all inheriting elements which are implicitly concerned.
buildSet
Configuration
descriptionHTML
ModelElement
isReactive
Class
, based on features isComposite
and behavioralDiagrams
not yet supported.isShowDisplayName
ModelElement
.lastModifiedTime
Unit
.linkSwitches
Configuration
, not yet read in a Rhapsody Properties file.ownedDependencies
ModelElement
.references
ModelElement
.scopeElements
Component
.B) The following features are filled, but their value is different than connector Application:
additionalSources
Configuration
, path separators are duplicated.allStereotypes
Project
, contains only the list of user defined stereotypes.allTags
Flow
, depends on feature localTags
which have some limitations.body
Trigger
, the body could be the event and not the operation.CMHeader
Unit
, but the special characters are escaped with prefix '\'.compilerSwitches
Configuration
, often filled but differ only for path separators.
But sometimes empty or not overridden because data is not yet read in a Rhapsody Properties file.compoundSource
Transition
, some exceptions.currentDirectory
Unit
, contains absolute full path without '..' (canonical).defaultValue
Variable
, the native
value is filled but overriding through Rhapsody Properties not yet implemented.dependsOn
Dependency
, always filled except if this a dependency relative to another one.derivedInEdges
, derivedOutEdge
Connector
when feature connectorType
value is stub, diagram, condition, history.description
ModelElement
, well filled except line-ends.descriptionHTML
, descriptionRTF
ModelElement
, well filled except line-ends, some exceptions where feature is empty.displayName
ModelElement
. If not overridden, displayName for relationship elements and chart elements are internally computed by Rhapsody.end1, end2
Flow
. Two exceptions: one when feature overrides features end1Port
and end1SysMLPort
.
The second exception concerns the Instance
reference which is derived from the relationships of the SysMLPort
element.executableName
Configuration
, filled always with file extension.eventsBaseId
ModelElement
, differs than connector Application.fromProfile
fullPathName
name
feature.implementationSignature
Operation
is based on derived feature signature
, in C language, owner prefix is always added.isBehaviorOverriden
Actor
, Class
and UseCase
have not generalizations, but their associated StateChart
has feature isOverridden
set to true
.isEnum
Type
. Only two exceptions: one concerns a nested element of an Attribute
which is derived from a specific Tag
ownKind, in profile SPARK. The second exception concerns the Ada package udt where some Type
s owns this feature.isExternal
File
and sometimes in Class
in C language where a stereotype overrides property CG.Class.UseAsExternal
.ignoreUseExternal
, please read details in this pageisNewTerm
Stereotype
, some exceptions.isOverridden
StateChart
, some exceptions.isReadOnly
ignoreReadOnly
, please read details in this page.isReferenceUnit
Package
, this is a native
feature sometimes derived
with connector ApplicationlocalTags
Flow
: derived tags like realization are missing.name
ModelElement
. If not overridden, name for relationship elements are internally computed by Rhapsody.ofMetaClass
Stereotype
, some exceptions for stereotype "separate" in Ada language.otherClass
SysMLPort
, is always filled although connector Application leaves null.owner
ModelElement
and their derived classes.packages
Package
. Some PredefinedTypes packages are added to the list.portDirection
SysMLPort
, is always filled although connector Application leaves Unspecified.profiles
Project
. Some profiles with name beginning with CGCompatibility, Pre76 or ending with _Pre80 are missing in the list.properties
ModelElement
. Only overridden properties are available, because default ones are not yet read in a Rhapsody Properties file.savedInSeperateDirectory
Package
is true when its owner is declared in another resource
.signature
Operation
, sometimes missing return type, missing full path type in C++ and Ada languages for return and arguments.specification
Comment
, this is a native
feature sometimes empty with connector Application in Ada language.scopeBySelectedElements
Component
, never nested elements and some exception where feature is not filled.standardHeaders
Configuration
, path separators are duplicated.stereotype
ModelElement
, well filled except for two derived stereotypes like DecisionNode, ActivityFinal are missing.stereotypes
ModelElement
, well filled except for two derived stereotypes like DecisionNode, ActivityFinal are missing.userDefinedMetaClass
ModelElement
some exceptions where this is filled with the native
data or is based on a stereotype where feature isNewTerm
is not set.value
Variable
, the special characters are escaped with prefixed '\', but overriding through Rhapsody Properties not yet implemented.visibility
Relation
is always public.