i* (pronounced “i star”) or i* framework is a modeling language suitable for an early phase of system modeling in order to understand the problem domain. i* modeling language allows to model both as-is and to-be situations. The name i* refers to the notion of distributed intentionality which underlines the framework. It is an approach originally developed for modelling and reasoning about organizational environments and their information systems composed of heterogeneous actors with different, often competing, goals that depend on each other to undertake their tasks and achieve these goals. It covers both actor-oriented and Goal modeling. i* models answer the question WHO and WHY, not what.
In contrast, the UML Use case approach covers only functional goals, with actors directly involved in operations (typically with software). The KAOS approach covers goals of all types but is less concerned with the intentionality of actors.
Reasons for using i*
i* provides the possibility to achieve information in an early phase of the software engineering process. In former days UML was used to make information visible, but as UML often focuses on organisational objects, which are not so important in the early phase, when the emphasis should be on helping stakeholders gain better understanding of the various possibilities for using information systems in their organizations.
i* models offer a number of levels of analysis, in terms of ability, workability, viability and believability.
Benefits of i* and Use Case Integration
i* provides an early understanding of the organizational relationships in a business domain. The Use Case development from organizational modeling using i* allows requirement engineers to establish a relationship between the functional requirements of the intended system and the organizational goals previously defined in the organization modeling.
i* can be used in requirements engineering to understand the problem domain. SD models and SR models can then be used to develop use cases. This is an ideal language to express Actors, Tasks, Resources, Goals and Softgoals.
From i* to UML
i* is used for the early requirements and UML for late requirements. Thus you have to transform the i* model into a UML model. You can do this by using the following guidelines:
- actors: actors can be mapped to class aggregation,
- tasks: tasks can be mapped to class operations. For example: a task between a dependent actor and a dependence in the SD model corresponds to a public operation in the dependence UML class,
- resources: resources can be mapped as classes,
- goals and soft goals: strategic goal and soft goals can be mapped to attributes,
- task decomposition: the task decomposition can be represented by pre- and post-conditions.