3

特定の組織の所有者、ユーザー、および資産を取得できるモデルを作成しようとしています。以下の質問に答えることができず、モデルを正しくモデル化したかどうかわからないため、つまずきにぶつかったようです。

  1. 特定のアセットの所有権とユーザーを表現するにはどうすればよいですか?
  2. オブジェクトの所有権と使用値を表現するにはどうすればよいですか。たとえば、サーバー オブジェクトのベンダー値は IBM で、ABC Corp が所有し、DEF ユーザーが使用します。
  3. 名前や場所など、共通の属性やプロパティをさらに切り離す方法はありますか? これをさらに分離する必要はありますか?
  4. ユーザーが組織を離れたり、資産が破損した場合にどうなるかなど、行動上の制約を評価するにはどうすればよいですか? モデルにない場合、この情報をどこで取得しますか?

モデル例

ここに画像の説明を入力

編集

回答に加えて、モデルを更新しました。それが正しい道を進んでいるかどうかはわかりません。

ここに画像の説明を入力

4

2 に答える 2

3

あなたのデザインは、問題のプレゼンテーションと一致しているようです。質問 4 については、システムで何をキャプチャしたいかによって異なります。資産が損傷した場合、システムに記録を残しておく必要がありますか? ユーザーが組織を離れた場合、システムのメモリに何を保存しますか?

質問 3 では、次のような一般的な抽象クラスを使用できます。

資産所有権 UML クラス図 http://app.genmymodel.com/engine/xaelis/assetOwnership.jpg

このモデルをコピーして適応させたい場合は、このリンクを使用できます。

于 2013-08-05T06:03:21.213 に答える
2

編集: OP コメントへの応答:

再。所有権などに関する情報を記録します。例を次に示します。 ここに画像の説明を入力

重要なことは、取得日/販売日などは、資産と組織/ユーザーの間の関係の属性であるということです。参加しているクラスの属性ではありません。この例では、Asset Use では多数の同時ユーザーが許可されますが、Asset Ownership では任意の時点で 1 人の所有者のみが許可されます。それは多重度によって制御されます。

ユーザーだけでなく所有者も表示する必要があります。アセットが所有者クラスまたはユーザー クラスのサブクラスまたはサブタイプではないことを確認するには、どうすればよいでしょうか?

表示ページは、関係に従って、必要なクラスから情報を取得します。ページは、一度に 1 つのクラスの情報を表示することに制限されていません。

たとえば、所有者の下の名前属性には組織の名前が含まれますが、サーバーの下の名前属性にはサーバーの名前、つまり FQDN が含まれます。

OK: 2 つの名前のデータ型が異なる可能性があります。おそらく、組織の単純な文字列と資産の特定の FQDN です。ただし、覚えておいてください: これは、すべてのアセットに FQDN を使用して名前を付ける必要があることを意味します。コンピューターのみが FQDN で名前が付けられている場合は、name 属性を資産ではなくコンピューターに配置します。余談ですが、組織がアセットの種類に依存しないアセットの命名スキームを持つことはかなり一般的です。唯一の要件は、それが一意であることです。たとえば、上記の diag でこれを示しました。h番目。

編集を終了

特定の質問に答える:

特定のアセットの所有権 [..] を表現するにはどうすればよいですか?

おそらくそれはOrganisation - Asset協会がカバーしているものですか?だとしたら多重度は?おそらく:

  • 各アセットは 1 つの組織によって所有されています。または、アセットを共同で所有できますか?
  • 各組織は多くの (0 個以上の) 資産を所有していますか?
  • 所有権に関する情報を記録する必要がありますか? たとえば、資産がいつ取得されたか、いつ売却されたかなどです。その場合は、それを取得するための関連クラスが必要になります。

特定のアセットのユーザーを表現するにはどうすればよいですか?

上記と同様の質問。多くのユーザーが同じアセットを使用できますか? 同時または順次?アセットの使用開始日と終了日を記録する必要がありますか?

[..] サーバー オブジェクトのベンダ値が IBM であることを表現するにはどうすればよいですか

これは属性でモデル化されていAsset.vendorます-これで十分かもしれません。ただし、ベンダーの詳細を取得する必要がありますか? たとえば、連絡先情報、住所、サポート契約などです。その場合は、別の Vendor クラスを分割する必要があります。

名前や場所など、共通の属性やプロパティをさらに切り離す方法はありますか? これをさらに分離する必要はありますか?

3 つのサブクラスはすべて同じ属性を持ちます。それは悪いにおいがします-それは、それらが実際には異なっていないことを示唆しています. すべての属性を取得する 1 つのクラス ( ) を使用できますか?Assetまた、追加の「assetType」(または同様の) と、正当な値「Server」、「Destop」、「Laptop」を持ちますか? ただし、ある種のコンピューターではない資産を追跡する必要がありますか? もしそうなら、単一の資産クラスは十分に柔軟ではありません。

ユーザーが組織を離れたり、資産が破損した場合にどうなるかなど、行動上の制約を評価するにはどうすればよいですか?

ビジネス要件によって異なります。ユーザーが離れた場合はどうすればよいですか? アセットにユーザーがいないだけですか? その場合、関係はオプション (0..*) である必要があります。

資産が損傷を受けるとはどういう意味ですか? 損害を記録する必要がありますか?もしそうなら、別のクラスが必要です。

モデルにない場合、この情報をどこで取得しますか?

モデルに含まれていない場合は、記録または変更できません。したがって、モデルに含まれていないものをキャプチャする必要があると思われるものには、非常に注意を払っています。多くの場合、モデルが不完全であるか、要件が不足していることを意味します。

一般に、関連付けの命名と多様性についてさらに検討することをお勧めします。そうすることで、要件やドメインの制約に関する疑問が生じることは間違いありません。これは、要件を満たす可能性がはるかに高いモデルを取得するのに役立ちます。

h番目。

于 2013-08-05T12:17:44.027 に答える