Book a Demo

Author Topic: Modelling roles and actors, where actors can be people or systems  (Read 55360 times)

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
I am looking for some thoughts on how to model roles and actors, where actors can be people or systems, and you can have a system actor and a person actor playing the same role.

For example you can have an Applicant, which could be viewed as an Actor or a Role, applying for a Mortgage or a Loan. I would like to differentiate between an Person applying for a  Mortgage or a Loan, and a System applying on behalf of a Person for a Mortgage or a Loan through an API.

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #1 on: July 31, 2019, 08:14:34 am »
Just assign it a role: Human <role name> vs Machine <role name> and specialize from <role name>. You could as well use a stereotype (which now means you have to have a profile).

a.

Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #2 on: July 31, 2019, 08:21:09 am »
I think ideally you'd have an upper level ontology that described this.  If you are in the finance space, have a look at FIBO.

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #3 on: July 31, 2019, 07:01:19 pm »
Thanks Glassboy and qwerty, I would look at FIBO.

Both a change to our custom profile and an ontology are needed, actually we probably need more than one ontology but let's leave this for now. However, there are a number of aspects that need clarification:
  • Does the ontology sit inside or outside the profile? - I would prefer for the ontology to sit outside the profile, it is more flexible. Happy to consider other options.
  • How do we use an ontology within the profile? - I have always seem ontologies as hierarchical, profiles, unfortunately, do not handle hierarchies very nicely
  • By using an ontology to categorise actors, aren't we essentially overloading the stereotype? - I don't mind but I have always seem, perhaps erroneously, the stereotype as a type


qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #4 on: July 31, 2019, 08:19:50 pm »
A profile IS an ontology in the way that it helps to describe things. It focuses on (e.g.) business objects that are important in a domain and gives a handle for them. Your machine/human actors would be such things. Giving the two handles <<MachineActor>> and <<HumanActor>> will bundle a certain "knowledge cloud" that is commonly understood in that domain. So you introduce it as such with an agreed wording. Now when using that (after some short introduction) everyone in the domain should have a similar picture about what is being talked. The profile itself is on a low (entity) level. Built on that you later find the model which combines entities to more complex construct. Some of these constructs may become part of the ontology itself.

q.

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #5 on: July 31, 2019, 09:00:34 pm »
A profile IS an ontology in the way that it helps to describe things. It focuses on (e.g.) business objects that are important in a domain and gives a handle for them. Your machine/human actors would be such things. Giving the two handles <<MachineActor>> and <<HumanActor>> will bundle a certain "knowledge cloud" that is commonly understood in that domain. So you introduce it as such with an agreed wording. Now when using that (after some short introduction) everyone in the domain should have a similar picture about what is being talked. The profile itself is on a low (entity) level. Built on that you later find the model which combines entities to more complex construct. Some of these constructs may become part of the ontology itself.

q.
I don't disagree but the main problem I have is that I see an ontology as a hierarchy and Sparx profiles do not handle hierarchies very nicely. For example, I would like to have the following ontology:

Actor [Metaclass]
----Organisation (Actor) [Stereotype]
------------Government Department (Actor) [Stereotype]
------------Organisational Unit (Actor) [Stereotype]
------------Company (Actor) [Stereotype]
------------Other Organisation (Actor) [Stereotype]
----Person (Actor) [Stereotype]
------------ Internal Person (Actor) [Stereotype]
------------ External Person (Actor) [Stereotype]
----System (Actor) [Stereotype]
------------ Internal System (Actor) [Stereotype]
------------ External System (Actor) [Stereotype]
----Role [Stereotype]
------------ Internal Role [Stereotype]
------------ External Role [Stereotype]


Beyond the 2nd level, I find using a profile for this a bit cumbersome because it is not very extensible and, AFIK, profiles do not support stereotype inheritance - i.e, each stereotype in the example above needs to be an extension of the Actor metaclass. As a result if I wanted to pull a list/catalogue of all the elements within the scope of the Organisation stereotype I either have to use 2 stereotypes, which I would prefer to avoid, or a very complex filter.

 


Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #6 on: July 31, 2019, 09:32:26 pm »
Hi Modesto,
Speaking of Ontologies...  As modellers, we should be precise with words.

We often confuse Hierarchy with Tree.

There are two kinds of hierarchies, Tree and Lattices.  Tree nodes must have only one parent (superordinate), Lattice nodes could have more than one parent.

Most ontologies are lattices (which a tree structure finds VERY difficult to accommodate)

HTH,
Paolo

PS: I've been pondering the problem of Actors since you asked the question in the OP.
We've come to the view that Actors have agency, but don't actually do anything.  Roles can be defined, but don't do anything.  We created the concept of Agent (or Player) - the intersection of an Actor and a Role to solve this problem.  That was before you posed the question.

Since then, I've come to the view that the concept of actor represents the behavioural aspects of a thing, not the thing itself.  We describe a person as an actor because they exhibit behaviour.  Similarly, a system can be described as an actor because it, too, exhibits behaviour.  But a system IS NOT a person.
We CAN say that structurally, a person IS a biological entity that HAS behaviour and therefore renders as an actor.
Similarly, a system IS a technological entity that HAS behaviour and therefore renders as an actor.

I'm still looking at the modelling implications of the above.

Thoughts?
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #7 on: July 31, 2019, 09:47:34 pm »
I think you should boil it down to the relation between use case and actors. Lot's of the above just seem to be attributes of a concrete actors (which can be at any complexity) and you would apply some constraints upon them (like Government Department can do this but Internal System can do that).

To me the use case is the driving fact. What actors (or what roles do they play) do you expect when interacting. Trying to build an organizational chart of actors is of no big use (in my eyes). Organization change but the roles are very stable.

q.

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #8 on: July 31, 2019, 11:36:17 pm »
I think you should boil it down to the relation between use case and actors. Lot's of the above just seem to be attributes of a concrete actors (which can be at any complexity) and you would apply some constraints upon them (like Government Department can do this but Internal System can do that).

To me the use case is the driving fact. What actors (or what roles do they play) do you expect when interacting. Trying to build an organizational chart of actors is of no big use (in my eyes). Organization change but the roles are very stable.

q.
The original profile extends the Actor metaclass as shown above but stops at the 2nd level (minus roles) and treats anything else as attributes/tags. However, I am not convinced it works, it appears that we are going to need 1 or 2 extensions to enhance how we model organisations and how organisations are grouped into data exchange networks, please think GDPR.

There are two kinds of hierarchies, Tree and Lattices.  Tree nodes must have only one parent (superordinate), Lattice nodes could have more than one parent.

Most ontologies are lattices (which a tree structure finds VERY difficult to accommodate)
I haven't decided if the ontology is going to be a Tree of a Lattice and we have having an internal conversation about this. (Information) Systems as actors are the spanner in the works. If we were going to go for a Tree we will need to have 2 systems one to handle the behavioural aspect -  i.e., systems as actors -  and the other to handle the structural aspect of systems - i.e., systems as a structured group of application and components.

Thoughts please?

Since then, I've come to the view that the concept of actor represents the behavioural aspects of a thing, not the thing itself.  We describe a person as an actor because they exhibit behaviour.  Similarly, a system can be described as an actor because it, too, exhibits behaviour.  But a system IS NOT a person.
We CAN say that structurally, a person IS a biological entity that HAS behaviour and therefore renders as an actor.
Similarly, a system IS a technological entity that HAS behaviour and therefore renders as an actor.

I'm still looking at the modelling implications of the above.

Thoughts?
I agree that actors represent the behavioural aspects of a thing but the behavioural aspect could expressed via roles because the same human or system can perform many actions depending on the role they play.

There is a very subtle difference between the following statements:
  • A Mortgage Applicant (Actor?) applying for a Mortgage (thing/business object?)
  • A human (Actor?) performing the role of Mortgage Applicant (Role?) to apply for a Mortgage (thing/business object?)

In a complex organisation, like the one we are modelling, the first approach is likely to result on a very long list of data actors. However, a close inspection of such list of actors suggests 2 things: 1) there are levels of abstraction - e.g., Applicant can have various specialisations: Mortgage Applicant, Loan Applicant, and Credit Card Applicant, 2) applicant sounds more like a role than various people - Paolo, Modesto, qwerty and Glassboy can perform, all humans I think  ;) but it can also be performed system to system via an API. Thus the advantage of the 2nd is that it reduces the list of actors and allows generalisation.


Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #9 on: August 01, 2019, 06:57:58 am »
Both a change to our custom profile and an ontology are needed, actually we probably need more than one ontology

Which is why I suggest at least having a glance at FIBO before you go to far down a rabbit hole.  When I was working for a bank I found it very useful to quickly implement part of it to solve some issues.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #10 on: August 01, 2019, 10:22:50 am »
At the risk of tunnelling in the rabbit hole...

(I agree with Glassboy, check out FIBO as a practical solution to your current issues.  I'm leveraging the excellent example you've provided, Modesto, to explore some issues I'm thinking about.)

I think you should boil it down to the relation between use case and actors. Lots of the above just seem to be attributes of concrete actors (which can be at any complexity) and you would apply some constraints upon them (like Government Department can do this but Internal System can do that).

To me, the use case is the driving fact. What actors (or what roles do they play) do you expect when interacting. Trying to build an organizational chart of actors is of no big use (in my eyes). Organization change but the roles are very stable.

q.
Don't forget, q is using Actor in the UML sense.  A UML Actor is an ArchiMate Role (it pretty much says so in the UML spec) - which begs the question why didn't they use the term Role? :)
Quote
The original profile extends the Actor metaclass as shown above but stops at the 2nd level (minus roles) and treats anything else as attributes/tags. However, I am not convinced it works, it appears that we are going to need 1 or 2 extensions to enhance how we model organisations and how organisations are grouped into data exchange networks, please think GDPR.

There are two kinds of hierarchies, Tree and Lattices.  Tree nodes must have only one parent (superordinate), Lattice nodes could have more than one parent.

Most ontologies are lattices (which a tree structure finds VERY difficult to accommodate)
I haven't decided if the ontology is going to be a Tree of a Lattice and we have to have an internal conversation about this. (Information) Systems as actors are the spanner in the works. If we were going to go for a Tree we will need to have 2 systems one to handle the behavioural aspect -  i.e., systems as actors -  and the other to handle the structural aspect of systems - i.e., systems as a structured group of application and components.

Thoughts, please?
I'm looking into how can I express both the structural and behavioural aspects for the same item.  That is, I believe we CAN create a tree - based upon the structural aspects of the items since that seems to be pretty disjoint.  A person IS NOT a computer system.  The behavioural aspects are expressed relationally.
Quote
Since then, I've come to the view that the concept of actor represents the behavioural aspects of a thing, not the thing itself.  We describe a person as an actor because they exhibit behaviour.  Similarly, a system can be described as an actor because it, too, exhibits behaviour.  But a system IS NOT a person.
We CAN say that structurally, a person IS a biological entity that HAS behaviour and therefore renders as an actor.
Similarly, a system IS a technological entity that HAS behaviour and therefore renders as an actor.

I'm still looking at the modelling implications of the above.

Thoughts?
I agree that actors represent the behavioural aspects of a thing but the behavioural aspect could be expressed via roles because the same human or system can perform many actions depending on the role they play.

There is a very subtle difference between the following statements:
  • A Mortgage Applicant (Actor?) applying for a Mortgage (thing/business object?)
  • A human (Actor?) performing the role of Mortgage Applicant (Role?) to apply for a Mortgage (thing/business object?)
Using my Actor/Role/Agent metamodel this would be:
A Mortgage Applicant Agent (whether Human or computer Actor) playing the Role of Mortgage Applicant applying for a Mortgage (thing)
A Human Agent (since we have a human Actor) playing the Role of Mortgage Applicant applying for a Mortgage (thing)

As you can see one is a specialization of the other.

The KEY thing we've learned is that in (certainly English) language, we often use abbreviated terms for the names of things and so can get REALLY confused...
You need to be quite precise if you are to express the reality in the model.

For example, An organisational position is usually named after the principal Role of the Primary job that it undertakes
Thus, I, Paolo, (the Actor) hold the Position of Data Architect, because the primary job is Data Architecting, whose primary role is Data Architect.

But as you can see one "Data Architect" is the Position name and the other is the Role name.  I could have made things worse by describing the job as Data Architect, but I tend to use the active form for the job (since it describes a form of activity).

So because we use ambiguous names, we can get horribly confused about what is actually going on.
Quote
In a complex organisation, like the one we are modelling, the first approach is likely to result in a very long list of data actors. However, a close inspection of such list of actors suggests 2 things: 1) there are levels of abstraction - e.g., Applicant can have various specialisations: Mortgage Applicant, Loan Applicant, and Credit Card Applicant, 2) applicant sounds more like a role than various people - Paolo, Modesto, qwerty and Glassboy can perform, all humans I think  ;) but it can also be performed system to system via an API. Thus the advantage of the 2nd is that it reduces the list of actors and allows generalisation.
In your example immediately above, I don't think the system is the applicant, the person is always the applicant (At least until we have AI's taking up residence in dwellings).  As far as the mortgage application approval system is concerned, the request is either coming direct or via an API - or have I got that wrong?

Paolo
« Last Edit: August 01, 2019, 10:25:09 am by Paolo F Cantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #11 on: August 01, 2019, 11:06:51 pm »
Don't forget, q is using Actor in the UML sense.  A UML Actor is an ArchiMate Role (it pretty much says so in the UML spec) - which begs the question why didn't they use the term Role? :)
This is an interesting comparison which highlights one of the difficulties I personally have with modelling this using UML, ArchiMate represents (Business) Actors and Roles as elements and not as relationships - see https://pubs.opengroup.org/architecture/archimate3-doc/chap08.html#_Toc489946042. I tend to think about elements/boxes as names and relationships as verbs, but this may be because I am a data architect. This means I graphically see the following sentence as follows:

A Person (element/box) acting as (relationship) an Applicant (element/box) applies for (relationship) a Mortgage (element/box).

It is very difficult to model that sentence is UML without extending it, mainly because a Person in UML is not an Actor, the Applicant is the Actor (which is semantically a role, a you and q pointed out). By the way, from a data architecture point of view each box/thing is likely to correspond a data entity (but this not my main concern) for which data needs to be recorded as part of the process/interaction.

By the way UML representing Actors with a doll like figure, does not help to understand them as Roles, it encourages understanding actors a humans/people.

In your example immediately above, I don't think the system is the applicant, the person is always the applicant (At least until we have AI's taking up residence in dwellings).  As far as the mortgage application approval system is concerned, the request is either coming direct or via an API - or have I got that wrong?
In principle I agree but in our case the person is not directly interfacing with the business we are modelling, the person is interfacing with an external 3rd party who in turn is using a system-to-system interface to interact with us. For example, mortgage can be submitted by a broker using and API. An even better example are custom declarations, the majority of the time they are submitted using system-to-system interfaces by external systems capable of automating complex logistic tasks, although some can be submitted through a direct interaction between a Person and the system handling custom declarations. In a nutshell, although there is a human involved in the process, the human on a system-to-system interaction is often out of boundaries and the external system is performing the role of a person. Furthermore, a person will perform one operation - i.e., application/submission - at a time but a system can perform them in batches.

I think that what I have in mind and your Actor/Role/Agent metamodel are not to far away, let me think about it.



 

Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #12 on: August 02, 2019, 07:50:59 am »
agree but in our case the person is not directly interfacing with the business we are modelling, the person is interfacing with an external 3rd party who in turn is using a system-to-system interface to interact with us. For example, mortgage can be submitted by a broker using and API. An even better example are custom declarations, the majority of the time they are submitted using system-to-system interfaces by external systems capable of automating complex logistic tasks, although some can be submitted through a direct interaction between a Person and the system handling custom declarations. In a nutshell, although there is a human involved in the process, the human on a system-to-system interaction is often out of boundaries and the external system is performing the role of a person. Furthermore, a person will perform one operation - i.e., application/submission - at a time but a system can perform them in batches.

I think that what I have in mind and your Actor/Role/Agent metamodel are not to far away, let me think about it.

When you think about it, keep in mind that you are modelling your use cases, the approach you take should also be able to model misuse cases (such as bad actors).

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #13 on: August 02, 2019, 08:26:40 am »
Don't forget, q is using Actor in the UML sense.  A UML Actor is an ArchiMate Role (it pretty much says so in the UML spec) - which begs the question why didn't they use the term Role? :)
This is an interesting comparison which highlights one of the difficulties I personally have with modelling this using UML, ArchiMate represents (Business) Actors and Roles as elements and not as relationships - see https://pubs.opengroup.org/architecture/archimate3-doc/chap08.html#_Toc489946042. I tend to think about elements/boxes as names and relationships as verbs, but this may be because I am a data architect.
Yes, this is a good starting point, but as with anything like this "handle with care"
Quote
This means I graphically see the following sentence as follows:

A Person (element/box) acting as (relationship) an Applicant (element/box) applies for (relationship) a Mortgage (element/box).
You can also see it as: "A human agent (Actor in the role of applicant - intersector element) applies for (relationship a mortgage (element)) "
Quote

It is very difficult to model that sentence is UML without extending it, mainly because a Person in UML is not an Actor, the Applicant is the Actor (which is semantically a role, as you and q pointed out).
I'm not using Actor in the UML sense, I'm talking about normal language.  In discussing the Agency, the Human is in the role of actor and the Role is in the role of role :)  (See what I did there?  I implied that actor is a relationship - like stakeholder, user, owner ALL often represented by elements [more to come on this])
Quote
By the way, from a data architecture point of view each box/thing is likely to correspond a data entity (but this not my main concern) for which data needs to be recorded as part of the process/interaction.

By the way, UML representing Actors with a doll-like figure does not help to understand them as Roles, it encourages understanding actors a humans/people.
"We hold this truth to be self-evident"
Quote

In your example immediately above, I don't think the system is the applicant, the person is always the applicant (At least until we have AI's taking up residence in dwellings).  As far as the mortgage application approval system is concerned, the request is either coming direct or via an API - or have I got that wrong?
In principle, I agree but in our case, the person is not directly interfacing with the business we are modelling, the person is interfacing with an external 3rd party who in turn is using a system-to-system interface to interact with us. For example, a mortgage can be submitted by a broker using and API. An even better example is custom declarations, the majority of the time they are submitted using system-to-system interfaces by external systems capable of automating complex logistics tasks, although some can be submitted through a direct interaction between a Person and the system handling custom declarations. In a nutshell, although there is a human involved in the process, the human on a system-to-system interaction is often out of boundaries and the external system is performing the role of a person. Furthermore, a person will perform one operation - i.e., application/submission - at a time but a system can perform them in batches.

I think that what I have in mind and your Actor/Role/Agent metamodel are not too far away, let me think about it.
I guess my point is that all the modelling technologies have issues when you get "down to the nitty-gritty".  That's why we've adopted the mechanism of adapting them to fit our needs.

Our intent is to be able to narratively describe the model using the semantics we've adopted/adapted.

Notwithstanding that the external person appears to be outside the boundaries, it IS they who are applying for the loan (or providing the customs declaration), so they are inside the boundary.  The external system is merely a mechanism for getting the application (an object) to your system.  You have two kinds of application objects (direct and external).

I hope this is helping you because it's really helping me clarify some ideas.
Paolo
« Last Edit: August 02, 2019, 08:28:51 am by Paolo F Cantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Richard Freggi

  • EA User
  • **
  • Posts: 498
  • Karma: +18/-7
    • View Profile
Re: Modelling roles and actors, where actors can be people or systems
« Reply #14 on: August 02, 2019, 09:59:01 am »
Don't forget, q is using Actor in the UML sense.  A UML Actor is an ArchiMate Role (it pretty much says so in the UML spec) - which begs the question why didn't they use the term Role? :)
This is an interesting comparison which highlights one of the difficulties I personally have with modelling this using UML, ArchiMate represents (Business) Actors and Roles as elements and not as relationships - see https://pubs.opengroup.org/architecture/archimate3-doc/chap08.html#_Toc489946042. I tend to think about elements/boxes as names and relationships as verbs, but this may be because I am a data architect. This means I graphically see the following sentence as follows:

A Person (element/box) acting as (relationship) an Applicant (element/box) applies for (relationship) a Mortgage (element/box).

It is very difficult to model that sentence is UML without extending it, mainly because a Person in UML is not an Actor, the Applicant is the Actor (which is semantically a role, a you and q pointed out). By the way, from a data architecture point of view each box/thing is likely to correspond a data entity (but this not my main concern) for which data needs to be recorded as part of the process/interaction.

By the way UML representing Actors with a doll like figure, does not help to understand them as Roles, it encourages understanding actors a humans/people.

In your example immediately above, I don't think the system is the applicant, the person is always the applicant (At least until we have AI's taking up residence in dwellings).  As far as the mortgage application approval system is concerned, the request is either coming direct or via an API - or have I got that wrong?
In principle I agree but in our case the person is not directly interfacing with the business we are modelling, the person is interfacing with an external 3rd party who in turn is using a system-to-system interface to interact with us. For example, mortgage can be submitted by a broker using and API. An even better example are custom declarations, the majority of the time they are submitted using system-to-system interfaces by external systems capable of automating complex logistic tasks, although some can be submitted through a direct interaction between a Person and the system handling custom declarations. In a nutshell, although there is a human involved in the process, the human on a system-to-system interaction is often out of boundaries and the external system is performing the role of a person. Furthermore, a person will perform one operation - i.e., application/submission - at a time but a system can perform them in batches.

I think that what I have in mind and your Actor/Role/Agent metamodel are not to far away, let me think about it.

Modesto, I think a read of "Use Case modeling" and "Applying Use Cases" (Addison Wesley) will answer all your questions.  It's only a couple or three hours read per book.