Introduction

Software project stakeholders have project requirements that revolve around large, abstract goals. These requirements can be represented through goal models, where they can be decomposed into alternatives with related tasks and dependencies. In the example shown in Figure 1, the stakeholder is a city wishing to build new infrastructure.

Shown using the iStar modelling Language [1], all elements on the graph are either actors or intentions (i.e., goals, soft-goals, tasks, or resources). Each intention has a satisfaction value to represent its current state. The satisfaction of a goal can be decomposed into sub-goals or tasks. Intentions are connected through relationships. In the example below, the city is considering how to Manage City Waste and has decomposed this decision into two tasks using a “or” relationship. Thus if one of the two tasks - Use Current Dump or Use New Dump - is satisfied, which it is, then the goal Manage City Waste will also be satisfied during analysis.

Figure 1: City goal model

GrowingLeaf is a web-based goal modelling tool that enables reasoning about changing satisfaction levels over time by identifying intention dynamics. Once stakeholders have represented actors, intentions (with dynamics), relationships and constraints using the iStar goal modeling notation [1], our analysis processes the graph and maps each intention to a sequence of satisfaction values. The exact value that each intention takes on is determined by the current time point. The user can move through these time points to reveal broader patterns of intention satisfaction. Problems with the model – such as unacceptable states, or some goals never being satisfied – also become apparent. GrowingLeaf allows stakeholders to discover these hidden issues in their goal model during early phase engineering. These problems can be resolved by tweaking the graph at hand and, in turn, creating a stronger model for the stakeholder’s project.

Approach

In our previous work [2], we built a beta version of our tool to draw and evaluate goal models. We also introduced the concept of dynamic functions to represent temporal changes in the satisfaction value of intentions. Within each intention, the satisfaction value is determined through a time function [3]. For example, the user can specify that Task_A is initially denied (D) and becomes satisfied (S) from some time point “A” onwards (see Figure 2A).

Figure 2: Task A (left) and Task B (right)

We extended our previous work by allowing users to specify their own time functions (see Figure 2B). This enables the modelling of intentions with complex patterns of satisfaction. To model cyclical behavior, a subset of the users specified time function can be selected to repeat.

Additionally, we introduced the concept of temporal constraints between intentions. This is represented using a new link type. For example, Task_A (see Figure 2A) transitions from denied to satisfied at time “A”. Task_B follows a more complex time function that is specified by the user (see Figure 2B). These two intentions can then be connected by a constraint link, specifying that time “A” for Task_A happens before time “C” for Task_B, as shown in Figure 3.

Figure 3: Between intention constraints

However, adding constraints to the graphical model made it difficult for users to distinguish between model relationships and constraints. To mitigate this issue, we created separate graphical views of the model. Users can now select “Modelling Relationships”, or “Modelling Constraints” to view only one type of link.

Analysis

Our tool uses several analysis techniques that generate sequences of satisfaction values which map onto the goal graph. In our previous work [2], analysis results were shown in a separate window without linkage to the original model. We improved the interface to integrate the analysis into the original page with another model view. We enable users to navigate through different time points in the analysis results using a graphical slider. This allows stakeholders to see how all elements on the graph evolve over time.

Based on the types of questions users wish to answer, GrowingLeaf performs different analysis techniques. For example, in a chaotic environment that has constantly changing variables, the user may use stochastic simulation to explore different possible states of the model. In more controlled environments, the user may use constraint solving to examine if there exists a time point where all goals are satisfied. Furthermore, users are able to stop at any temporal step and select a different analysis type based on the current state of the graph. This allows the user to see many different outcomes based on one state of the goal model (see Figure 4). The users can navigate between these analysis steps, or merge all analysis values together. In models where there are multiple outcomes, this feature makes comparing results easier.

Figure 4: City goal model analysis

Querying is a feature that allows users to probe their model by selecting any two intentions. Our analysis determines the temporal relationship between the selected intentions. In other words, it allows the user to find out whether the change in satisfaction value of Goal_A happens before Goal_B, or vice versa. Currently, this feature is still under development. More back-end work is necessary to finalize the feature.

Finally, our tool uses Javascript, Python and Java. Javascript is used on the frontend. Java is used on the backend. Python is used as a gateway language that facilitates the communication between the frontend and the backend. Frontend files are built on top of Rappid, a framework by JointJS [4].

Conclusion

We have finished the user-interface aspects of these features and evaluated them on several models. Further work is necessary to evaluate the usability of our interface and the appropriateness of our approach.

References

  1. E. Yu, “Towards Modeling and Reasoning Support for Early-Phase Requirements Engineering,” in Proc. of RE’97, 1997, pp. 226–235.

  2. J. Fear, “Visually Simulating Goal Models over Time,” in RUCS, 2015.

  3. A. M. Grubb, “Adding temporal intention dynamics to goal modeling: A position paper,” in MiSE’15, 2015.

  4. clientIO, “JointjS.” 2015.