For this week, we will cover the various goal modeling tools, but before doing so, we will do a quick review on the what is a goal. As a recap from the previous lecture, goals are a representation of stakeholder objectives.
Goal modelling expresses the relationships between a system and its environment. It is useful as it clarifies requirements, enables requirement completeness, and connects requirements to design.
There are various notations for goal models used in software development.
For both in lectures and labs, we will be using the i* notation. As an introductory, i* allows the modeling of actors' goals, tasks, and resources, and how these are related to system components. The i* goal modeling notation provides two kinds of diagram:
Figure 6.1 All elements of the i* notation.
Another specific goal modeling method is KAOS, which provides a way of defining goals and obstacles, underpinned by a formal (mathematical) method of analysis.
Figure 6.2 Basic constructs of the KAOS framework.
The choice between i* and KAOS may depend on the specific requirements of the project.