Thursday, January 30, 2014

Use cases: actors vs. stakeholders

Use cases are one of the most important parts of the Software Engineering. They are a sequence of steps or events which describe the interactions between an actor and the system for a certain functionality. Use cases are usually represented as a diagram that includes two components which sometimes may cause confusion: actors and stakeholders. We will try to briefly set their definitions and features, as well as give some examples:

Actors: They are external entities that interact with a system in same way, in other words, "anything" with some behavior that acts on the system. Actors represents a role which an user can play in our project, and they must be able to make decisions, however, they do not need to be humans (very important!). Their behavior may be considered as "non-deterministic" (they are different from other objects).

Examples of actors: end users, user roles, persons, companies, organizations, networks, computers that the system needs (hardware), databases, applications (software), etc.

Stakeholders: They are entities that care of the project in some way. Other definition of stakeholder may be "an individual who is materially affected by the outcome of the project" (proposed by RUP, Rational Unified Process). Anyway, we need to clear that the fact of being a stakeholder does not necessarily imply to get a benefice from the project. Besides, we can say that actors are always stakeholders, but this relation is not bidirectional (not always a stakeholder is an actor). The main difference between stakeholders and actors is that stakeholders may not appear on use cases.

Examples of stakeholders: end users of the system, investors, suppliers, customers, vendors, corporations, companies, even developers of their own project.


1 comment: