Как лучше всего визуализировать & # 8220; Матрицу разрешений & # 8221; в диаграмме классов UML?

StackOverflow https://stackoverflow.com/questions/237373

Вопрос

Ради простоты:

Существует система, основанная на разрешениях, с различными типами пользовательских уровней и действий (например: разрешения файловой системы UNIX)

Каков наилучший подход для визуализации этого в UML?

Это было полезно?

Решение

У меня обычно есть классы, представляющие пользователей, роли и разрешения. Пользователи принадлежат к ролям, а роли получают разрешения. Разрешения необходимы для доступа к другим объектам. В UML я предполагаю, что вы смоделировали бы роль как абстрактный базовый класс и имели бы несколько разных реализаций, по одной для каждой роли.

Обычно я моделирую Разрешение как объект, содержащий наборы читаемых, записываемых, удаляемых классов бизнес-сущностей (возможно, содержащих исключения или включения свойств). Каждая роль, то есть одно разрешение. Это разрешение разрешает или запрещает доступ к одному или нескольким другим классам. По умолчанию в доступе отказано, и доступ разрешен только в том случае, если класс находится в соответствующем наборе для запрошенного действия.

Другие советы

Мне нравится думать, что у объекта файловой системы есть несколько стандартных методов, каждый из которых имеет соответствующее разрешение.

Существует 9 методов / разрешений, которые обычно представляют интерес: комбинации (пользователь, группа, другие) * (чтение, запись, выполнение). Кроме того, есть такие параметры, как Sticky и SetUID.

Объект файловой системы связан с одним пользователем и одной группой. Пользователь связан с любым количеством групп.

Текущий пользователь связан с любым количеством групп.

Выше приведено довольно стандартное представление диаграмм классов. Объекты файловой системы, пользователи, группы, ассоциации. А объекты файловой системы имеют кучу атрибутов и 9 канонических методов.

Ограничение на то, что разрешено, не имеет аккуратной диаграммы. Это набор выражений правил. Первый - какой набор разрешений использовать (пользователь, группа или другое), а затем какое разрешение в наборе (чтение, запись или выполнение).

Вы могли бы, я полагаю, определить класс пользователей с некоторым набором конкретных объектов (в Unix есть пользователь, группа, другое) и класс операций с некоторым набором конкретных объектов (Unix имеет чтение, запись, выполнение) , Затем вы можете определить разрешения с двумя ассоциациями: один для класса пользователя и один для класса операций.

Я думаю, что проще просто перечислить методы полного набора, чтобы суетливо представить схемы комбинаций экземпляров пользовательских классов и классов операций.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top