Скажите, а как описываются права доступа?
Я не в курсе, поиск не особо помог, шаблоны проектирования еще не знаю (а они, походу, тоже не помогут).
Так что вот что я надумал сам:
1) Как я понимаю, речь идет о доступе к функциям приложения, а если еще точнее - к информации в БД.
2) Если представлять информацию в БД на диаграмме классов, то я размышляю так:
данные хранятся в атрибутах объектов.
Объект имеет также методы и связи с другими объектами. Тогда:
- создание объекта - метод "create()"
- уничтожение объекта - метод "destroy()"
- чтение значения атрибута - метод "get()"
- задание значения атрибута - метод "set()"
- установка связи между объектами - метод "add()" (т.е. добавить ссылку на другой объект в коллекцию данного объекта)
- удаление связи между объектами - метод "remove()"
Таким образом, мы должны ограничивать права доступа - просто разрешая или запрещая пользователю запуск методов объектов !
В целях упрощения, я не рассматриваю случай распределения прав между пользователями на создание объектов.
3) Диаграмма классов имеет вид:
Кстати, реализация класса "Разрешения" может быть и получше выполнена, сдесь же все примитивно:
if "Разрешения"."Доступен метод (№ 5)" then "Роль1"."метод № 5" (т.е. может выполнить 5-й метод)