Hello,
I am modelling a computer network. Within this computer network, users each have one or more roles. The permissions granted to each roles are described within the set of groups they belong to.
I modelled roles by creating an abstract class for roles. Its properties are abstract booleans. The abstract class has a generalization link with all the specific roles in the network. I want the property associated to each group to be set as 1 or 0 (depending on whether or not a specific role belongs to a group or not).
How to assignate if a role is granted permission to a certain group? Is there any better way to represent the roles and the permission groups of a network?
After going through what a class diagram blank proposes as modelling elements, I found that I may define two Literal Numeric Values (one for 1 and one for 0). Then I can allocated Numeric References pointing to the abstract properties which correspond to permission groups, and assign to these references the values I want (1 for granting access to the group, 0 otherwise).
Is it a legitimate way of modelling?
Hi @MatthieuT,
Users within the Arcadia philosophy should be modelled as Actors (Operational, System, Logical, Physical) depending on which perspective you are considering. It is possible to model the idea of roles and permissions using either Entities or Operational Roles [ORB] in the OA perspective. However, I would not recommend using Operational Roles as they do not transition properly into the other analysis stages of the Arcadia method.
One option would be to use Actors and allocate functions to each of them to model their respective permissions.
Classes are predominantly used for data modelling, the purpose of which is to precisely define functional exchanges. I think the way you are trying to model users’ permissions is not wrong per se, but it does not align to the Arcadia ontology — unless of course your intention is pass users’ permissions via a functional exchange as a way of confirming whether a given user has the right permissions to initiate a system function.
Hope this helps.
1 Like
Hello @woodske,
Thank you for your answer! It helped me a lot. I’ll reconsider my model to align with the Arcadia method.