by Sam Supakkul
System Requirements | Download
& Installation Guide | User Guide | Previous Releases | License | Label Evaluation

Figure 1. A Softgoal Interdependency Graph (SIG) using the Softgoal Profile for StarUML
This tool supports non-functional requirements (NFRs) modeling using the NFR Framework [book (draft), paper (draft)]. It is implemented as a UML profile, called the Softgoal Profile, for StarUML, an open-source UML modeling tool, for ease of implementation and integration with other UML diagrams such as class diagram and use case diagram as well as other UML profile based notations. Figure 1 shows an example of a Softgoal Interdependency Graph (SIG) or an NFRs model. The Softgoal Profile now automatically evaluates the satisficing labels of softgoals and contributions using the label evaluation procedure described in the NFR Framework (see page 20 of this draft), supporting both closed and open world assumptions. See a discussion on this topic and evaluation catalogs here.
The Softgoal Profile is now a part of the RE-Tools that supports additional requirements engineering notations. The following are the notations the tool now supports:
The tool currently does not check and prevent unmeaningful model composition due to the limited OCL support by the underlying StarUML tool for implementing necessary well-formedness rules. We hope to add some supports for well-formedness checking in the future.
The RE-Tools is available here. Comments or questions are welcome and may be posted on the tool distribution site here, or email to "ssupakkul (at) ieee (dot) org".
1. Start StarUML. A dialog titled "New Project By Approach" would be displayed (see Figure 4). You may choose any Approach you prefer, or you could click the provided WRSPM Approach based on the Reference Model for requirements and specifications (step 1), then click OK (step 2) to create a new project using the WRSPM Approach. A blank project will be created as shown in Figure 5.

Figure 4. Creating a New Project Using the Softgoal Profile
2.Click the tab associated with a desirable diagram . For example, click "Softgoal" tab for NFRs Modeling (step 1a on Figure 5). Alternatively or if the desirable diagram is not currently opened, you may double-click the diagram in the Model Explorer (step 1b).

Figure 5. A Newly Created Project using the WRSPM Approach
3. To create a softgoal, click an icon on the
tool panel , for example, the NFR Softgoal (step 1 in Figure 6), then click a desirable location on the SIG diagram (step 2). A new model element of the selected
icon will be created at the specified location. The name of the new softgoal will be pre-assigned. By default,
StarUML highlights the name of the new softgoal and allows the user to change the name. Do not change any part of this name, especially the name of the UML stereotype in the bracket (e.g. <<NSG>>); otherwise, this element would no longer be recognized as a softgoal. Just click somewhere on the diagram or press Esc to accept the default name. The softgoal should be displayed with "Type[Topic]" placeholder to indicate that Type of the softgoal has not been supplied by the user.

Figure 6. Creating a Softgoal
4. To assign Type and/or Topic of the new softgoal, click a desirable softgoal, StarUML will indicate that the element is selected and in focus. Click Tagged Values button on the menu bar (step 1 in Figure 7) or press Ctrl+F7. A Tagged Value Editor dialog will be displayed. Select Softgoal on the Tag Definition Set pull down list (step 2). Tagged Values (Type and Topic) for the Softgoal will be displayed. Enter a text for the Type (e.g. "Security") and/or Topic (e.g. "Account") Tagged Values (step 3). The default "Type[Topic]" placeholder for the softgoal on the diagram will be replaced by the supplied Type and Topic. The criticality of the softgoal can be changed in the same manner (step 4). Then click Close to close the dialog (step 5).

Figure 7. Editing Type, Topic, Criticality, and Label of a Softgoal
5. To create a contribution link between two softgoals, click a contribution icon on the panel (e.g. AND icon -- step 1 in Figure 8). Click an intended offspring softgoal, without releasing the left mouse button (hold the left mouse button), drag to the intended parent softgoal, then release the left button. A contribution link will be created between the two softgoals. Other contributions (e.g. MAKE, HELP, HURT, BREAK, AND, OR) can be created in the same manner. For simplicity, AND/OR decomposition is currently displayed as a single or double cross-bar instead of an arc linking all sub-goals as defined in the NFR Framework. This implementation was inspired by the AND decomposition notation used in the i*/Tropos Framework.

Figure 8. Creating a Contribution Link
6. To create a correlation contribution (a side-effect of an operationalizing softgoal toward another NFR), create a regular satisficing contribution (e.g. MAKE, HELP, HURT, BREAK -- step 1 in Figure 9). Select the contribution link, then open the Tagged Value Editor (step 2). Select Satisficing Tag Definition Set (step 3), then change the Correlation Tagged Value from "No" to "Yes". The link will be changed from a solid line to a dash line to indicate that it is a correlation contribution.
Figure 9. Creating a Correlation Contribution
7. To indicate that a desirable solutions is chosen for achieving a softgoal, select a desirable leaf-level Operationalizing Softgoal solution (e.g. Password[Account.Access] -- step 1 in Figure 10). Open the Tagged Value Editor (step 2), set Label to "Satisficed" (step 3), then close the dialog (step 4). A check mark will be displayed on the selected solution to represent the Satisficed Label. The Label of considered but discarded solutions (e.g. CardKey[Account.Access]) should be set to Denied to reflect the decisions. Every time a Label is changed, the Softgoal Profile automatically evaluates and propagates the Labels upward toward parent softgoals according to the label evaluation procedure.

Figure 10. Setting Softgoal Label
8. In some cases, automated label propagation may produce an Undecided label as illustrated in the evaluation catalogs, which would require user intervention to indicate whether the softgoal should be considered acceptable or unacceptable (Satisficed or Denied). For example, in Fig. 11, the label of Cost is automatically evaluated to Undecided (denoted by a "u" icon) because of opposing positive and negative labels derived from Satisficed "Passwords" and "Security tokens" respectively. If the user considers the negative impact on Cost is acceptable, she may override the Undecided label with Satisficed by first click the Cost softgoal (step 1), open the Tagged Value Editor (step 2), select "Satisficed" label (step 3), then click Close (step 4). Cost will then be displayed with a check mark to indicate the user-defined label. Similarly, the user may also set/override the label for contribution links in the same way.
Figure 11. Overriding a Softgoal Label
9. Repeat step 3-8 to create additional softgoals and contributions as needed.
10. When closing StarUML, a COM Server Warning dialog is displayed as shown in Figure 12. This is due to a problem being investigated where a call to .Net Framework to release the label evaluation procedure engine (implemented as a COM object) does not work as expected. Click Yes to close the dialog without any ill effect. If No is clicked by accident, StarUML may generate Windows exception, which will require to be closed using Windows Task Manager without any ill effect.

Figure 12. Click Yes to Close the COM Server Warning Dialog
By default, the label evaluation is based on the label evaluation procedure described in the NFR Framework with an extension to propagate labels using the open world assumption as suggested by Dr. Lawrence Chung. However, the Softgoal Profile can also be configured to use the closed world assumption that would more closely follow the original evaluation procedure [book]. See a discussion on world assumption for goal-oriented Modeling and label evaluation catalogs of for both open and closed world assumptions here.
To change the world assumption (between the closed and open world assumptions), select "Tool > Options" (step 1 in Figure 13). Select "Softgoal > Label Propagation" (step 2), select the desirable world assumption (step 3), then click OK to accept the change (step 4). The label of all softgoals and contributions of the current diagram will be re-evaluated based on the selected world assumption.

Figure 13. Changing World Assumption Option
Please note that the world assumption is not stored with SIG's. As the result, when a SIG is saved and re-opened, the Labels may show the result of label propagation using the world assumption that is different from the current World Assumption option. To re-evaluate all labels of the current SIG using the World Assumption defined in the Options menu, select "Tools > Re-evaluate SIG Labels" as shown Figure 14. The label of all softgoals and contributions of the current SIG will be re-evaluated using the current world assumption.

Figure 14. Re-evaluating All SIG Labels Using the Current World Assumption
© 2007-2009 Sam Supakkul
Updated May 28, 2009