“許可マトリックス”を最もよく視覚化する方法UMLクラス図で?
-
04-07-2019 - |
質問
簡単にするために:
さまざまな種類のユーザーレベルとアクションを備えたパーミッションベースのシステムがあります(UNIXファイルシステムのパーミッションを考えてください)
これをUMLで視覚化する最良の方法は何ですか?
解決
通常、ユーザー、ロール、および権限を表すクラスがあります。ユーザーはロールに属し、ロールには権限が付与されます。他のオブジェクトにアクセスするには、許可が必要です。 UMLでは、Roleを抽象基本クラスとしてモデル化し、各ロールに1つずつ、複数の異なる実装を持っていると思います。
通常、Permissionは、読み取り、書き込み、削除が可能なビジネスエンティティクラスのセット(プロパティの除外または包含を含む)を含むオブジェクトとしてモデル化します。各ロールには、1つの許可があります。その許可は、1つ以上の他のクラスへのアクセスを許可または拒否します。許可はデフォルトでは拒否されており、要求されたアクションに適切なクラスがクラスにある場合のみアクセスが許可されます。
他のヒント
ファイルシステムオブジェクトには多くの標準メソッドがあり、それぞれに関連するアクセス許可があると思います。
通常関心のある9つのメソッド/許可があります:(ユーザー、グループ、その他)*(読み取り、書き込み、実行)の組み合わせ。さらに、スティッキーやSetUIDなどのオプションがあります。
ファイルシステムオブジェクトは、1人のユーザーと1つのグループに関連付けられています。ユーザーは、任意の数のグループに関連付けられます。
現在のユーザーは、任意の数のグループに関連付けられています。
上記はかなり標準的なクラス図です。ファイルシステムオブジェクト、ユーザー、グループ、関連付け。また、ファイルシステムオブジェクトには、多数の属性と9つの標準メソッドがあります。
許可されるものの制約には、きちんとした図がありません。これは一連のルール式です。 1つ目は、使用する許可セット(ユーザー、グループ、またはその他)であり、次にそのセット内の許可(読み取り、書き込み、または実行)です。
具体的なオブジェクトのセット(Unixにはユーザー、グループ、その他)を持つユーザーのクラス、および具体的なオブジェクトのセット(Unixには読み取り、書き込み、実行)を持つ操作のクラスを定義できます。その後、ユーザークラスと操作クラスの2つの関連付けでアクセス許可を定義できます。
ユーザークラスインスタンスと操作クラスインスタンスの組み合わせを簡単に図式化する完全なsetメソッドをリストする方が簡単だと思います。