ArticleslgStudy

computer science

I*

I* is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand I* rather than just read about it. In short: 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.

I* — main illustration
I* — illustration

Key takeaways

  • I* belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect I* to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of I* from memory before moving on to harder problems.

Reference excerpt

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.

See also Actor modeling Business Motivation Model Goal modeling Goal-oriented Requirements Language (GRL) KAOS (software development) Use case

… excerpt ends here. Continue reading the full article.

Illustrations

I*: All elements of the i* notation.
All elements of the i* notation.

Worked examples

Example 1 — a first encounter with I*

Start with the simplest possible case. Write down what I* claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to I* before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about I* ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of I*

In research
I* appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses I* in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
I* is common in secondary-school and first-year university syllabi. It links to neighbouring topics Software requirements, Specification languages, so understanding it makes those chapters shorter.
In everyday life
Look for I* outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study I* in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what I* means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain I* out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is I* in simple terms?

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 underl…

Why does I* matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study I*?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on I*.

Tags

  • Software requirements
  • Specification languages

Keep exploring