Skip to content

A tool for modeling and analyzing (Tropos like) formal goal models with Dynamic Intentions.

License

Notifications You must be signed in to change notification settings

amgrubb/BloomingLeaf

Repository files navigation

BloomingLeaf

BloomingLeaf is a browser-based tool that uses precise semantics (with Tropos) to model goals and relationships that evolve over time. Simulation techniques are used to enable stakeholders to choose between design alternatives, ask what-if questions, and plan for software evolution in an ever-changing world. BloomingLeaf implements the Evolving Intentions framework.

BloomingLeaf is developed primarily in The Grubb Lab at Smith College, but was originally created as part of @amgrubb's thesis at the University of Toronto.

Goals of BloomingLeaf:

  1. Enable modeling of goals with evolving intentions/goals.
  2. Enable simulation of goal models as intentions evolve.
  3. Enable stakeholders to ask time-based trade-off questions in early-phase requirements engineering.

Review our overview poster to learn more about the original goals of BloomingLeaf Version 1.0.

BloomingLeaf can be run locally as a Node server or online as an Express application, see the setup guide for addtional details.

Versions

Updates for Version 2.7

In Version 2.7, we integrated training into the tool itself. We implemented a set of embedded instructional tutorials that aim to guide and instruct first-time goal modelers, while clarifying the common points of confusion. These updates are described in our MoDRE'25 paper.

Additionally, we now allow users to host BloomingLeaf as an Express application, which enables online hosting with the SSL protocol (see updated setup guide).

Updates for Version 2.6

In Version 2.6, we added the Presences Conditions feature as describe in our MoDRE'23 paper: https://ieeexplore.ieee.org/document/10260777

Updates for Version 2.5

In Version 2.5, we focused on updating the analysis capabilities and a few bug fixes to the interface.

  • We implemented backend capabilities for model merging, as described in our RE'22 paper.
  • We added the EVO capabilities to the Next State view and created filters for intention filters, as described in our RE@Next'23 paper.
  • We extended the EVO palettes to add more appropriate options for our international audience and users with a color vision deficiency, as describe in our iStar'23 paper.

Updates for Version 2.0

In Version 2.0, we refactored the code base to take advantage of the underlying backbone.js structure:

  • removed all global variables in leaf-ui and updated the graph data structure
  • created backbone models for actors, intentions, evolving functions, configurations, and results
  • created backbone views for all backbone models
  • allow users to assign absolute values for function segments in the Element Inspector view
  • updated and added functionality to the intermediate values table
  • updated the communication between the front and backend code
  • refactored the backend code base to take advantage of the new backbone models
  • fix bugs in the next state view
  • updated the look and feel of the tool

See our summary for further details about these additions.

Updates for Version 1.5

In Version 1.5, we added the following model-management features (+ additional small features and fixes):

  • separate analysis results from model elements
  • save / load analysis configurations (num states, etc.)
  • save / load analysis results - including a tag
  • pair models with analysis results
  • clear propagated labels

See our poster for further details about these additions.

Want to contribute?

The contributing guide and setup guide are good places to start. If you have questions, feel free to ask.

Dependencies

Building on the shoulders of giants:

Tool Description
JointJS (Rappid) JavaScript Diagramming Library (v2.3.1)
JaCoP Java Constraint Programming (JaCoP) solver
gson A Java serialization library to convert Java & JSON
SweetAlert Javascript Library for Popup customization
ChartJS Javascript Library for creating charts
noUiSlider JavaScript range slider library
KeyboardJS Javascript Libary to easily set up binding keys.

About

A tool for modeling and analyzing (Tropos like) formal goal models with Dynamic Intentions.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 37