Rational Requirements Composer および Rational モデリング製品 統合のためのマッピング・テーブル

この内容は、バージョン 7.5.1 以降に適用されます。 要素メタモデル変換の場合、RequirementComposerProfile が作成され、com.ibm.rdm.base.Elements の変換を補助します。 マッピング・テーブルは、仕様モデル要素と変換された UML 出力を一覧表示します。

シンプルおよびコラボレーション・プロセス・マッピング

RequirementComposerProfile は、リンク要素のコレクションを含むリンク属性を伴うクラス Link および RRCElement ステレオタイプを定義します。 このリンクでは、RCElement ステレオタイプを適用し、Rational® Requirements Composer 要素モデルから UML モデルにすべてのリンク・データをコピーすることによって、すべての com.ibm.rdm.base.Element 情報が保持されます。 元の Rational Requirements Composer 要素 (アクター、ユースケースなど) を参照する URL は、URL とステレオタイプ化されて UML コメントに置かれます。 すべての属性グループ・データは、RCArtifact ステレオタイプの attributeGroup プロパティーに置かれます。

注: マッピング・テーブルを読み取るには、修飾 EClass 名::機能名 (機能タイプの修飾 EClass 名):: 次の機能という表記を使用します。 ここで、以下の変数が適用されます。
  • 修飾 EClass 名は、修飾された EClass の名前です。
  • 機能名は、機能タイプの修飾 EClass 名です。
  • 次の機能は、次の機能のタイプ修飾名です。

以下のテーブルに、変換がサポートする仕様モデル要素と、変換が作成する対応する UML 出力を一覧表示します。

RRC 要素メタモデル  

com.ibm.rdm.base.Element

org.eclipse.uml2.uml.NamedElement<<RRCElement>>

com.ibm.rdm.base.Element ::
links(<EList>com.ibm.rdm.richtext.model.Link)

RRCElement::links(<EList>Link)
ownedComments(org.eclipse.uml2.uml.Comment)  

com.ibm.rdm.base.Element ::
name(java.lang.String)

org.eclipse.uml2.uml.NamedElement ::
name(java.lang.String)

com.ibm.rdm.base.Element ::
description(com.ibm.rdm.richtext.model.Body)

org.eclipse.uml2.uml.Element ::
ownedComments(EList<
org.eclipse.uml2.uml.Comment>)

com.ibm.rdm.richtext.model.Body

org.eclipse.uml2.uml.Comment<<documentation>>::
body(java.lang.String)

ユースケース・メタモデル UML 2.0

com.ibm.rdm.ba.usecase.Usecase

org.eclipse.uml2.uml.UseCase

com.ibm.rdm.ba.usecase.Usecase::
details(com.ibm.rdm.richtext.model.Body)

org.eclipse.uml2.uml.Element ::
ownedComments(org.eclipse.uml2.uml.Comment<<documentation>>
)::
body(java.lang.String)

ユースケース図 RRC から RSx に変換された要素を指すように調整されたセマンティック要素参照を持つユースケース図

com.ibm.rdm.ba.actor.Actor

org.eclipse.uml2.uml.Actor

com.ibm.rdm.ba.actor.Actor::details(com.ibm.rdm.richtext.model.Body)

org.eclipse.uml2.uml.Element ::
ownedComments(org.eclipse.uml2.uml.Comment<<documentation>>
)::
body(java.lang.String)

アクターとユースケース間の接続

関連

Rational Requirements Composer では、 シンプルとコラボレーションという 2 つのタイプのビジネス・プロセス・ダイアグラムが提供されています。 シンプル・プロセス・ダイアグラムは単一の BPMN プロセスで構成されています。 コラボレーション・ダイアグラムには、2 つ以上のビジネス・プロセスの間のコラボレーションが含まれています。 各 BPMN プロセスでは、シーケンス・フローとデータ関連によって複数のタスクが接続されており、 レーンを持つ場合と持たない場合があります。ここで、レーンはセマンティクスが関連付けられていない純粋な表記要素です。

BPMN プロセスは UML アクティビティーに変換されます。 それぞれの UML アクティビティーで、各レーンはパーティションになり、各タスクはアクション・ノードになります。

各 BPMN プロセスは UML インターフェースによっても表されます。 例えば、Process1 は IProcess1 インターフェースによって表され、Process2 のタイプは IProcess2 です。 BPMN プロセス上のすべてのタスクは、対応する UML インターフェース上で UML 操作になります。 DataObjects は DataStore アクティビティー・ノードになります。 また、この変換では、DataObjects を表すためのクラスが作成され、UML モデルのルートで共通分類子パッケージ内に配置されます。 これらのクラスは DataStore ノードのタイプのほか、DataStore ノードに接続された UML アクティビティー・ノード上の入出力ピンのタイプを表すためにも使用されます。 それぞれの入出力ピンについて、タスクを表す UML 操作上に操作パラメーターが作成されます。 このパラメーターのタイプは、対応する入出力ピンと同じタイプに設定されます。

BPMN コラボレーションは、参加プロセスごとに存在するプールと参加者のペアで構成されます。 プールはビジネス・プロセスを表し、参加者は対応するビジネス・プロセスが演じる役割を表します。 BPMN コラボレーション参加者は、UML コラボレーション・ロールに変換されます。 それぞれのロールは、対応するビジネス・プロセスを表すために作成された UML インターフェースによってタイプ化されます。 例えば、participant1 が BPMN Process1 を表す場合、UML コラボレーション・ロール 'participant1' のタイプは IProcess1 インターフェースに設定されます。

UML コラボレーション・ロールの間のコネクターは、参加プロセス間のメッセージ交換を表します。 プロセス間通信はコラボレーションの振る舞いであるため、この変換で、プロセスが互いと通信する方法も示されるということはありません。 したがって、この振る舞いは、アクティビティー・モデル、シーケンス図、 コミュニケーション図、ステートチャート図など、アプリケーション・ドメインに適したさまざまな手段で表すことができます。

下の表には、BPMN メタモデル・マッピングの詳細が示されています。

BPMN 2.0 メタモデル UML 2.0

com.ibm.bpmn20.Process

org.eclipse.uml2.uml.Activity

com.ibm.bpmn20.Process::
flowElement(EList<com.ibm.bpmn20.FlowElement>)

 

フロー要素タイプ:

 

com.ibm.bpmn20.CallActivity

com.ibm.bpmn20.CallActivity
::calledElementObject(com.ibm.bpmn20.Process)

org.eclipse.uml2.uml.Activity ::
node (org.eclipse.uml2.uml.CalBehaviorAction)

org.eclipse.uml2.uml.Activity ::
node (org.eclipse.uml2.uml.CalBehaviorAction):: behavior(org.eclipse.uml2.uml.Activity)

   

com.ibm.bpmn20.Task

com.ibm.bpmn20.Task ::
activityResult(com.ibm.bpmn20.ActivityDataResult)::
outputSet(EList<OutputSet>)::
outputs(EList< com.ibm.bpmn20.DataOutput >)

com.ibm.bpmn20.Task ::
activityRequirement (EList< com.ibm.bpmn20.ActivityDataRequirement >)::
inputSet:: (EList<InputSet>)
inputs(EList< com.ibm.bpmn20.DataInput>)

org.eclipse.uml2.uml.Activity ::
node (CallOperationAction)

CallOperationAction:outputPin

CallOperationAction:inputPin

   

com.ibm.bpmn20.DataObject

org.eclipse.uml2.uml.DataStoreNode

org.eclipse.uml2.uml.Class (共通分類子パッケージ)

   

com.ibm.bpmn20.DataAssociation

com.ibm.bpmn20.DataAssociation ::
source(com.ibm.bpmn20.DataObject)

com.ibm.bpmn20.DataAssociation ::
target(com.ibm.bpmn20.DataObject)

com.ibm.bpmn20.DataAssociation ::
source(com.ibm.bpmn20.DataOutput)

com.ibm.bpmn20.DataAssociation ::
target (com.ibm.bpmn20.DataInput)

org.eclipse.uml2.uml.ObjectFlow

org.eclipse.uml2.uml.ObjectFlow ::
source(org.eclipse.uml2.uml.DataStoreNode)

org.eclipse.uml2.uml.ObjectFlow ::
target(org.eclipse.uml2.uml.DataStoreNode)

  • org.eclipse.uml2.uml.ObjectFlow ::
    source (org.eclipse.uml2.uml.OutputPin)
    (ピン・タイプを共通分類子パッケージ内の対応する org.eclipse.uml2.uml.Class に設定する)

  • 対応するアクティビティー・インターフェース内の出力パラメーター
    org.eclipse.uml2.uml.Interface::ownedOperation(EList<org.eclipse.uml2.uml.Operation>)::ownedParameters(EList<org.eclipse.uml2.uml.Parameter>)

  • org.eclipse.uml2.uml.ObjectFlow ::
    source(org.eclipse.uml2.uml.InputPin)
    (ピン・タイプを共通分類子パッケージ内の対応する org.eclipse.uml2.uml.Class に設定する)

  • 対応するアクティビティー・インターフェース内の入力パラメーター
    org.eclipse.uml2.uml.Interface::ownedOperation(EList<org.eclipse.uml2.uml.Operation>)::ownedParameters(EList<org.eclipse.uml2.uml.Parameter>)

com.ibm.bpmn20.StartEvent

org.eclipse.uml2.uml.InitialNode

com.ibm.bpmn20.EndEvent

org.eclipse.uml2.uml.FinalNode

com.ibm.bpmn20.Event

org.eclipse.uml2.uml.Event

com.ibm.bpmn20.IntermediateReceiveEvent

com.ibm.bpmn20.IntermediateReceiveEvent::type(com.ibm.bpmn20.TimerEventDefinition)

org.eclipse.uml2.uml.AcceptEventAction

org.eclipse.uml2.uml.AcceptEventAction:: trigger(EList<org.eclipse.uml2.uml.Trigger>)

org.eclipse.uml2.uml.AcceptEventAction:: trigger(EList<org.eclipse.uml2.uml.Trigger>) ::event(org.eclipse.uml2.uml.AnyReceiveEvent)

com.ibm.bpmn20.IntermediateSendEvent

com.ibm.bpmn20.IntermediateSendEvent::type(com.ibm.bpmn20.MessageEventDefinition)

org.eclipse.uml2.uml.SendSignalAction

org.eclipse.uml2.uml.SendSignalAction:: signal(org.eclipse.uml2.uml.Signal)

org.eclipse.uml2.uml.SendSignalAction::input(EList<org.eclipse.uml2.uml.InputPin>)

   
   

com.ibm.bpmn20.LinkEventDefinition

org.eclipse.uml2.uml.ObjectFlow

   

com.ibm.bpmn20.TimerEventDefinition

org.eclipse.uml2.uml.TimeEvent

   
   

com.ibm.bpmn20.Gateway

org.eclipse.uml2.uml.DecisionNode

com.ibm.bpmn20.ExclusiveGateway

org.eclipse.uml2.uml.DecisionNode

com.ibm.bpmn20.InclusiveGateway

org.eclipse.uml2.uml.DecisionNode

com.ibm.bpmn20.ParallelGateway

org.eclipse.uml2.uml.DecisionNode

   

com.ibm.bpmn20.SequenceFlow

com.ibm.bpmn20.SequenceFlow::
source

com.ibm.bpmn20.SequenceFlow::
target

org.eclipse.uml2.uml.ControlFlow

org.eclipse.uml2.uml.ControlFlow::source

org.eclipse.uml2.uml.ControlFlow::target

   

com.ibm.bpmn20.Collaboration

org.eclipse.uml2.uml.Collaboration

com.ibm.bpmn20.Collaboration ::
pool(EList< com.ibm.bpmn20.Pool >)::
processObject(com.ibm.bpmn20.Process)

org.eclipse.uml2.uml.Activity

com.ibm.bpmn20.Collaboration ::
pool(EList< com.ibm.bpmn20.Pool >)::
processObject(com.ibm.bpmn20.Process)

com.ibm.bpmn20.Collaboration ::
pool(EList< com.ibm.bpmn20.Pool >)::
processObject(com.ibm.bpmn20.Process)::flowElement(EList<com.ibm.bpmn20.Activity>)

org.eclipse.uml2.uml.Interface

org.eclipse.uml2.uml.Interface::operation(EList<org.eclipse.uml2.uml.Operation>)

com.ibm.bpmn20.Collaboration ::
pool(EList< com.ibm.bpmn20.Pool >):: participant(com.ibm.bpmn20.Participant)

org.eclipse.uml2.uml.Collaboration::collaborationRole(EList<org.eclipse.uml2.uml.ConnectableElement>)

   
   

表記レーン

アクティビティー・パーティション


フィードバック