FOCUSer - FOCUS procEss AwaReness

1. Introduction

FOCUSer is a system that allows guiding the modeler through a set of actions in order to build a model. It does so by highlighting problems in the model that are pertinent to the current state of development of the model and proposing new modeling objectives based on that same state.

The main concepts of the system are constraint, objective and process. Constraints are mechanisms that evaluate the state of the model against arbitrary properties and visually report errors or warnings to the IDE when those properties do not hold. An objective is composed of a set of constraints. In order to achieve an objective the modeler has to satisfy all constraints that objective entails. Processes are composed of objectives that may depend on each other. In order to fulfill a process a modeler has to fulfill all of its objectives. Ideally, the modeler starts with objectives that have no dependencies and progressively fulfills objectives by following the dependency graph.



In the image above we depict a process (on the left side of the picture) and a set of constraints used by that process (on the right side of the picture). Take for instance the objective "Requirement information is complete". In order to arrive to this objective the modeler will first have to fulfill its dependencies, in this case the "Requirements are defined" objective which implies satisfying the "All requirement packages have at least on requirement" constraint. Then, in order to fulfill the objective itself the fields "name", "ID", "rationale", "description" and "author" of all requirements have to be filled out, as stated by the objective's constraints. After this is done, and the "One aspect is defined for each requirement" objective is also fulfilled, the modeler can proceed to the "Requirements are approved by reviewer" objective.

Processes in FOCUSer are descriptive, rather than prescriptive. In practice this means that FOCUSer is non-invasive in the sense that it provides guidance to the user while giving him or her full freedom to select the next modeling actions.

2. Making use of FOCUSer during model development

3. Defining your own process

4. List of implemented constraints