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