Tool Mentor: Identify Candidate Services
Use IBM® Rational® Software Architect for WebSphere® Software to identify candidate services, and to associate them to the source elements from which they are derived.
Tool: Rational Software Architect
Relationships
Main Description

This tool mentor describes how to create candidate services, modeled using SoaML Capabilities, from their source elements, such as business process elements, business rules, business goals, and so on.  How to create source elements is described in Tool Mentor: Create Candidate Services Source Elements.  These instructions are for Rational Software Architect for WebSphere Software, Version 7.5.4 or later. 

The following steps are performed here:

Review model structure for candidate services

Candidate services are modeled in Rational Software Architect using SoaML Capabilities.  They are created and maintained under the 0 - Capabilities (Candidate Services) package of the Rational Software Architect Service Solution Design Model template, as is shown in Figure 1.

Figure 1. Candidate services

  

Create candidate service from BPMN model element

Create a candidate service from a BPMN2 business process model element using one of the following approaches.

Create using a UML free form diagram

  • Open a Free Form diagram under the Capabilities package hierarchy in the service model. 
  • From the Service drawer of the drawing tools palette, select the Capability from BPMN Element entry and drag it onto the diagram.
  • Select the BPMN element from which the capability is to be derived.  By default, URL links are created from the Capability and from each of its operations, back to the source BPMN elements.

Perform this creation using a Free Form diagram that is owned by the Capabilities package hierarchy, so that the Capability likewise will be owned there.

Capabilities can be created from BPMN Tasks, Lanes, and Processes.  In each case, the Capability is given the name of the BPMN source element.  Further:

  • A Capability that is created from a Task has an operation that is the name of the Task
  • A Capability that is created from a Lane has an operation for each Task that is owned by the Lane
  • A Capability that is created from a Process has an operation for each Task that is owned by the Process

Create from a BPMN model

  • Right-click a Process, Lane, or Task element in a BPMN model.  Select Service Modeling > Create Service Capability.
  • In response to the dialog, select the UML model and location within the model where you want to create the Capability.  From the displayed list of Tasks that are owned by the selected element, choose the UML operations that you want to create along with the Capability.

You should create all of your Capabilities under the Capabilities package hierarchy of your service model.

Create a candidate service from activity element

  • Open a Free Form diagram under the Capabilities package hierarchy in the service model. 
  • From the Service drawer of the drawing tools palette, select the Capability from UML Activity entry and drag it onto the diagram.
  • Select the Activity element from which the capability is to be derived.  By default, <<derive>> relationships are created from the Capability and from each of its operations, back to the source Activity elements.

Perform this creation using a Free Form diagram that is owned by the Capabilities package hierarchy, so that the Capability likewise will be owned there.

Capabilities can be created from Activities and Activity Actions.  In each case, the Capability is given the name of the Activity source element.  Further:

  • A Capability that is created from an Action has an operation that is the name of the Action
  • A Capability that is created from an Activity has an operation for each Action that is owned by the Activity

Navigate back to the source element by selecting the <<derive>> relationship in the Project Explorer, right-clicking, and then selecting Navigate > Show Supplier menu item.

Create Candidate Service from Other Source Element

Use this procedure to create a new Candidate Service and derive it from either a Business Goal, Business Rule, Functional Area, BusinessService interface, Existing Asset, or Domain Element. 

  1. Create the new Candidate Service on a Free Form or Class diagram that is owned by the Capabilities package hierarchy.
  2. Drag the source element onto the diagram
  3. From the Class drawer in the drawing tools palette, from the Dependency stack of relationship types, select the Abstraction relationship.  Create this relationship on the diagram, so that it goes from the Capability, to the source element.
  4. From the resulting pop-up list, select the Create Derive item.

Use this procedure to create a <<derive>> relationship from a Capability (or a Capability operation) to an arbitrary UML element, such as an individual operation on a BusinessService interface.

  1. Select the Capability (or sub-element) in the Project Explorer
  2. Right-click and select Add UML > Relationship > Advanced
  3. In the resulting dialog, select the source element, then select the Derive relationship

If the Abstraction and Derive relationships are not available in the drawing tool palette or in the relationship selection dialog, you most likely need to activate them in Rational Software Architect.  Do so by:

  1. Select the model's root package in Project Explorer
  2. Select the Properties biew
  3. Select the Capabilities tab
  4. Select the UML Abstraction Relationship capability 

Activating this also activates Derive.