The idea is that class Entity will never be instantiated (an abstract base class in C++ terminology), but is used to specify all properties common to User and Group. Now there are operations defined on these classes, eg
join: entity, group -> groupwhich are used to assign or delete entities (ie users or groups) to resp. from groups. There are other operations which operate on entities and I also need operations which operate on all entities (eg search for a user with a specific name). As far as I understand, ACT ONE does not support inheritance. If this is correct, could some of you give me a hint which formalism would be appropriate to specify (and maybe verify) my approach? I also need some constraints, eg for each group there may be a maximal number of members (members can be users or groups), and the operation join should only add an entity to the group if this number is not yet reached. Another example of constraint is as follows. Each group has a flag which can restrict membership to users (this way it would be possible to prohibit nested groups). Consequently, the operation join should fail, if this flag is set and it is tried to add a group to the group. As you can see, object orientation is important for my model. I would be really thankful for any hint or pointer to appropriate literature.
leave: entity, group -> group