system-requirements

What is the difference between the customer, user, stakeholder and actor?


My software Requirement engineering professor always using customer, user, stakeholder and actor alternative or sometimes says these are same words. But I am not sure about the difference among them.

What is domain actually? He use the application domain knowledge word frequently. What do these words mean?


Solution

  • Domain knowledge is ... the knowledge about the domain you're creating a solution for : ) For example - if you're creating an application for a bank, then, the knowledge about banking (accounting, legal rules, bank's procedures etc.) is the domain knowledge.

    Actor is a term used in UML, referring to a role in the system. In practice, it represents the user, which will interact with a particular part of the system being modelled. But in general, the actor is a more abstract notion - one or more physical users can be in the role of one actor.

    Stakeholder simply speaking is the one who pays (or plays a decisive role with regards to the payment) you for creating the application or has an interest in it. Sometimes they will also be users of the application, sometimes not (in the banking example a stakeholder could be a manager from the department you're creating the application for, but they won't be necessarily the one using it). A customer is usually used as a general marketing term - the whole bank is your customer for example.

    But if you create an application for just a one person, some kind of an individual request, then this person will be the only user of your application, the stakeholder, and will fulfil all the roles in your system - all possible Actor entities. And, of course, this user will be your customer.