A RequirementComposerProfile defines the class Link and RRCElement stereotype, with a links attribute that contains a collection of link elements. In the links, all com.ibm.rdm.base.Element information is preserved by using the RCElement stereotype application and copying all the link data from the Rational® Requirements Composer Element model to the UML model. The URL that refers to the original Rational Requirements Composer Element (such as Actor or Usecase) is placed into UML comment, stereotyped as URL. All attribute groups data are placed into the attributeGroup property of the RCArtifact stereotype.
The following table lists the specification model elements that the transformation supports, and the corresponding UML output that the transformation creates.
| RRC Element metamodel | |
|---|---|
com.ibm.rdm.base.Element |
org.eclipse.uml2.uml.NamedElement<<RRCElement>> |
com.ibm.rdm.base.Element :: |
RRCElement::links(<EList>Link) |
com.ibm.rdm.base.Element :: |
org.eclipse.uml2.uml.NamedElement :: |
com.ibm.rdm.base.Element :: |
org.eclipse.uml2.uml.Element :: |
com.ibm.rdm.richtext.model.Body |
org.eclipse.uml2.uml.Comment<<documentation>>:: |
| UseCase metamodel | UML 2.0 |
|---|---|
com.ibm.rdm.ba.usecase.Usecase |
org.eclipse.uml2.uml.UseCase |
com.ibm.rdm.ba.usecase.Usecase:: |
org.eclipse.uml2.uml.Element :: |
| Use Case Diagram | Use Case Diagram (with semantic element references adjusted to point to element transformed from RRC to 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 :: |
Connections between Actors and UseCases |
Associations |
There are two types of business process diagrams provided in Rational Requirements Composer- simple and collaborative. Simple process diagrams consist of a single BPMN process. Collaborative diagrams contain collaborations between two or more business processes. Each BPMN process has a number of tasks connected by sequence flows and data associations, and may or may not have lanes, where a lane is purely a notational element not associated with any semantics.
A BPMN process is transformed into a UML activity. Each lane becomes a partition and each task becomes an action node in the respective UML Activity.
Each BPMN process is also represented with a UML Interface. For example, a Process1 is represented by a IProcess1 interface and Process2 type is IProcess2. All tasks on the BPMN process become UML operations on the respective UML Interface. DataObjects becomes DataStore activity nodes. The transformation also creates classes to represent the DataObjects and places them into a Common classifiers package at the root of the UML model. These classes are used to represent the types of DataStore nodes, as well as types of input and output pins on a UML activity node connected to the DataStore node. For each input and output pin, an operation parameter is created on the UML operation which represents the task. The type of the parameter is set to the same type as the type of the respective input and output pin.
BPMN collaborations consist of pairs of pools and participants per participating process. A pool represents a business process and a participant represents a role the respective business process plays. The BPMN Collaboration participants are transformed into UML Collaboration roles. Each role is typed with a UML Interface, created to represent respective business process. For example, if participant1 represents BPMN Process1, UML Collaboration role 'participant1' type is set to IProcess1 interface.
The connector between UML Collaboration roles represents a message exchange between the participating processes. This transformation does not go beyond this to show how processes communicate to each other because the inter-process communication is a behavior of the Collaboration. Therefore, this behavior can be depicted using various means suitable to the application domain, such as an Activity model, a sequence diagram, a communication diagram, or a state chart diagram.
More details on BPMN metamodel mapping can be found in the table below:
| BPMN 2.0 metamodel | UML 2.0 |
|---|---|
com.ibm.bpmn20.Process |
org.eclipse.uml2.uml.Activity |
com.ibm.bpmn20.Process:: |
|
Flow Element types: |
|
com.ibm.bpmn20.CallActivity com.ibm.bpmn20.CallActivity |
org.eclipse.uml2.uml.Activity :: org.eclipse.uml2.uml.Activity :: |
com.ibm.bpmn20.Task com.ibm.bpmn20.Task :: com.ibm.bpmn20.Task :: |
org.eclipse.uml2.uml.Activity :: CallOperationAction:outputPin CallOperationAction:inputPin |
com.ibm.bpmn20.DataObject |
org.eclipse.uml2.uml.DataStoreNode org.eclipse.uml2.uml.Class (Common classifiers package) |
com.ibm.bpmn20.DataAssociation com.ibm.bpmn20.DataAssociation :: com.ibm.bpmn20.DataAssociation :: com.ibm.bpmn20.DataAssociation :: com.ibm.bpmn20.DataAssociation :: |
org.eclipse.uml2.uml.ObjectFlow org.eclipse.uml2.uml.ObjectFlow :: org.eclipse.uml2.uml.ObjectFlow ::
|
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:: com.ibm.bpmn20.SequenceFlow:: |
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 :: |
org.eclipse.uml2.uml.Activity |
com.ibm.bpmn20.Collaboration :: com.ibm.bpmn20.Collaboration :: |
org.eclipse.uml2.uml.Interface org.eclipse.uml2.uml.Interface::operation(EList<org.eclipse.uml2.uml.Operation>) |
com.ibm.bpmn20.Collaboration :: |
org.eclipse.uml2.uml.Collaboration::collaborationRole(EList<org.eclipse.uml2.uml.ConnectableElement>) |
Notational Lane |
Activity Partition |