RE-Tools: A Multi-notational Requirements Modeling Toolkit
Sam Supakkul and Lawrence Chung

© 2008-2016 Sam Supakkul

Viewing Example Custom Profile

We provide an example on how to create your own UML Profile and integrate with RE-Tools so that your model elements can participate in the satisficing Label Propagation Procedure using the Extensible Label Propagation mechanism as described here.



























  1. Open C:\Profile Files (x86)\StarUML\modules\RE-Tools\example\AgileProfile folder.
  2. Open agile.prf file with a text editor. This file defines a UML Profile for your own use, for example, Agile modeling in this example.
  3. Files with .nxt extension are scripts that handle how to display nodes and links according to the notation.
  4. Bitmap files are referred to in the notation scripts for displaying certain icons.















  1. Open C:\Profile Files (x86)\StarUML\modules\RE-Tools\examples folder
  1. Open Notation-prf-template.txt with a text editor. This file is a template that shows how to define base stereotypes that allow your stereotypes to automatically participate in the Label Propagation Procedure.
































  1. Open the example models file. See here for the instructions. Click the + symbol in front of Extensible Label Propagation model folder. Double-click Agile1 diagram. The associated diagram will be displayed.
  1. Right click a User Story (“Get hint when backup storage is almost full” Story in this example). Click Tagged Values to open the Tagged Value Editor dialog.
  2. Click Label attribute to see the possible labels as defined in “agile.prf” below:


  <TAGDEFINITIONSET>

   <NAME>ExtendedProposition</NAME>

   <TAGDEFINITIONLIST>

    <TAGDEFINITION>

     <NAME>Label</NAME>

     <TAGTYPE>Enumeration</TAGTYPE>

     <DEFAULTDATAVALUE>Unknown</DEFAULTDATAVALUE>

     <LITERALS>

      <LITERAL>Unknown</LITERAL>

      <LITERAL>Satisficed</LITERAL>

      <LITERAL>Denied</LITERAL>

      <LITERAL>WeaklySatisficed</LITERAL>

      <LITERAL>WeaklyDenied</LITERAL>

      <LITERAL>Conflict</LITERAL>

      <LITERAL>Undecided</LITERAL>

      </LITERALS>

    </TAGDEFINITION>

   </TAGDEFINITIONLIST>

  </TAGDEFINITIONSET>

































  1. Try changing the label to Denied.
  1. The Denied label is depicted by a cross mark on the User Story.
  2. Based on the Label Propagation Procedure for AND-decomposition, the parent element (“Backup files” Epic)’s achievement is evaluated to be Denied, which is depicted by a cross mark.
  3. Based on the Label Propagation Procedure based on Open World Assumption, when a child element is Denied, the parent’s achievement is considered Unknown, which is depicted by leaving the element’s label blank.



Notice that even though the Agile profile is a not a built-in notation bundled with the RE-Tools. It represents a custom profile that you may develop for your own use. The concepts in the custom can still participate in the achievement reasoning performed by RE-Tools. In this example, when the Epic’s label is changed, its label will be re-evaluated based on the Label Propagation Procedure.


To enable custom concepts (Epic and User Story in this case) to automatically participate in the Label Propagation, you define them with “ExtendedProposition” as the parent stereotype, as show below. If RE-Tools detects that a model element is a child stereotype of this specific stereotype, it



   <STEREOTYPE>

     <NAME>UserStory</NAME>

     <DESCRIPTION>User Story</DESCRIPTION>

     <BASECLASSES>

       <BASECLASS>UMLClass</BASECLASS>

     </BASECLASSES>

     ...

     <PARENT>ExtendedProposition</PARENT>

     ...

   </STEREOTYPE>