2. Making use of FOCUSer during model development

The main functionality of FOCUSer is to restrict the error and warning messages to the ones that are relevant to the modeling task at hand. This is achieved by guiding the user through the selection and activation of objectives that should be accomplished next.

2.1. Current and Upcoming objectives

The AF3 IDE presents to the user the two combo boxes that allow making use of FOCUSer: the current objective and the upcoming objective.



2.2. Using the process as a modeling aid

In order to demonstrate the capabilities of FOCUSer we will build a partial project for aiding the modeler in building requirements using AF3's MIRA framework. The process includes three objectives that depend on each other as indicated by the arrows in the following figure. In the figure the direction of the arrows defines the direction of the dependencies.



Note that an (empty) default configuration is always present in the project. In our process in the figure above the default configuration corresponds to the "At least one requirement exists" constraint.

Once the modeler starts a building a requirements model, the color of the current objective box is set to the color red. This indicates the objective has not yet been satisfied.




The modeler can then right-click on the error message to understand what the current required modeling actions are that will lead to fulfilling the active constraints.




Once a requirement has been added the color of the current objective is set to green and the upcoming objective is set to the one(s) that depend on it (in this case that all requirements should have a name).




The modeler can then turn the upcoming objective into the current objective by selecting it from the combo box.




Note that it is possible for the modeler to understand which percentage of the objective at hand is already complete. This is achieved by hovering the mouse on the "current objective" combo box. The percentage is calculated in terms of the number of instances of the constraints that currently exist in the project. Note that for example for the "All requirements have a name" constraint, one instance of it will exist per requirement in the project.