# I*

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.

## Elements

The model describes dependencies among actors. There are four elements to describe them: goal, soft goal, task and resource. The central concept in i* is in fact that of the intentional actor. Organizational actors are viewed as having intentional properties such as goals, beliefs, abilities, and commitments (concept of distributed intentionality). Actors depend on each other for goals to be achieved, tasks to be performed and resources to be furnished. By depending on others, an actor may be able to achieve goals that are difficult or impossible to achieve on its own; on the other hand, an actor becomes vulnerable if the depended-on actors do not deliver. Actors are strategic in the sense that they are concerned about opportunities and vulnerabilities, and seek rearrangement of their environments that would better serve their interests by restructuring intentional relationships.

## Models

i* framework consists of two main modeling components:

### Strategic Dependency model (SD)

An SD model describes a network of dependency relationships among various actors in an organisational context. The actor is usually identified within the context of the model. This model shows who an actor is and who depend on the work of an actor.
An SD model consists of a set of nodes and links connecting the actors. Nodes represent actors and each link represents a dependency between two actors. The depending actor is called Depender and the actor who is depended upon is called the Dependee.

### Strategic Rationale model (SR)

An SR model allows modeling of the reasons associated with each actor and their dependencies, and provides information about how actors achieve their goals and soft goals. This model includes only elements considered as important enough to impact the results of a goal.
The SR model shows the dependencies of the actors by including the SD model. Relating to these dependencies, the SR model specifies goals, soft goals, tasks and resources. Compared with SD models, SR models provide a more detailed level of modeling by looking inside actors to model internal, intentional relationships. Intentional elements (goals, soft goals, tasks, resources) appear in the SR model not only as external dependencies, but also as internal elements linked by means-ends relationships and task-decompositions. The means-end links provide understanding about why an actor would engage in some tasks, pursue a goal, need a resource, or want a soft goal; the task-decomposition links provide a hierarchical description of intentional elements that make up a routine. Such a model is used to describe stakeholder interests and concerns, and how they might be addressed by different configurations of systems and environments.

## 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.

## Goal 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 one has to transform the i* model into a UML model. One 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.