2013-08-05 65 views
3

我正在嘗試創建一個模型,該模型將允許我捕獲給定組織中的所有者,用戶資產&。我似乎遇到了一個絆腳石,因爲我無法回答以下問題,也無法確定我是否正確地對其進行了建模。有沒有更好的方法在UML中建模?

  1. 如何表示給定資產的所有權和用戶?
  2. 如何表達對象的所有權和使用價值,例如服務器對象的供應商值爲IBM,由ABC Corp擁有並由DEF用戶使用。
  3. 有沒有一種方法可以進一步分離常見屬性或屬性,例如名稱,地點?是否需要進一步解耦?
  4. 如何評估行爲約束如如果用戶離開組織或資產損壞會發生什麼?如果不在模型中,我在哪裏獲取這些信息?

模型

的例子

enter image description here

編輯

繼我已經更新我的模型的答案。不知道它是否正在走向正確的道路。

enter image description here

回答

2

編輯:應對OP評論:

回覆。記錄所有權等信息,這裏有一個例子: enter image description here

關鍵是獲取/出售等日期是資產和組織/用戶之間的關係的屬性。它們不是參與類的屬性。在示例中,資產使用允許許多併發用戶,而資產所有權只允許任何給定點的1個所有者。這是由多重性控制的。

需要顯示所有者以及用戶。如果看到資產不是所有者或用戶類的子類或子類,我將如何顯示它?

您的顯示頁面將根據關係從必需的類中提取信息。一個頁面不限於一次顯示來自單個課程的信息。

例如,所有者下的名稱屬性將具有組織的名稱,但服務器下的名稱屬性將具有服務器的名稱,即FQDN。

OK:那麼你可以爲這兩個名稱使用不同的數據類型。也許是一個簡單的組織字符串和一個特定的資產FQDN。但請記住:這意味着全部資產必須使用FQDN進行命名。如果只有計算機以FQDN命名,則將名稱屬性放在計算機上,而不是資產。順便說一句:組織有一個獨立於資產類型的資產命名方案是很常見的。唯一的要求是它是獨一無二的。例如,我已經在上面顯示了這一點。心連心。

末編輯

回答您的具體問題:

如何表達所有權[..]對於一個給定的資產?

推測這就是Organisation - Asset協會涵蓋的內容?如果是這樣,那麼多重性是多少?據推測:

  • 每個資產只屬於一個組織或者資產可以共同擁有?
  • 每個組織都擁有多個(零個或多個)資產?
  • 您是否需要記錄關於所有權的任何信息 - 例如,何時獲取資產,何時出售資產等等。如果是這樣,您需要一個關聯類來捕獲這些信息。

如何爲特定資產表示用戶?

上述類似的問題。很多用戶可以使用相同的資產嗎?同時或順序?你需要記錄資產使用的開始/結束日期嗎?

如何表達[..]服務器對象有IBM

的廠商價值你有這樣的建模與Asset.vendor屬性 - 這可能是足夠的。但是:您是否需要獲取供應商的任何詳細信息?例如聯繫信息,地址,支持合同等。如果是這樣,您可能需要拆分出一個單獨的供應商類。

有沒有一種方法可以進一步分離常見的屬性或屬性,例如名稱,地點?是否需要進一步解耦?

所有3個子類具有相同的屬性。那味道不好 - 這表明他們並沒有真正的不同。您能否使用一個類別(Asset)捕獲所有屬性 - 並且具有額外的「assetType」(或類似的),合法值爲「S​​erver」,「Destop」,「Laptop」?但是:您是否需要跟蹤不是某種類型計算機的資產?如果是這樣,一個資產類別不夠靈活。

如何評估行爲約束如如果用戶離開組織或資產損壞會發生什麼?

取決於您的業務需求。如果用戶離開,需要發生什麼?資產是否應該沒有用戶?在這種情況下,關係需要是可選的(0 .. *)。

資產被損壞是什麼意思?你需要記錄損害賠償嗎?如果是這樣,你需要另一個班。

如果不在模型中,我會在何處捕獲這些信息?

如果它不在模型中,您不能記錄或更改它。所以我會非常警惕任何你認爲你需要捕捉的東西,這不在模型中。這更可能意味着您的模型不完整,或者您缺少需求。

一般來說,我建議你在命名&中加入一些進一步的想法。這樣做無疑會提出有關要求和/或域限制的問題。這將有助於您獲得一個滿足要求的更好機會的模型。

hth。

+0

感謝您的詳細回覆。在這個階段沒有要求資產可以共同擁有。這並不是說它不會發生。如何模擬它發生的可能性?我不理解你的評論「你是否需要記錄關於所有權的任何信息 - 例如,資產何時被收購,何時被出售等等。如果是這樣,你需要一個關聯類來捕獲它。」我確實需要記錄這些信息。 – PeanutsMonkey

+0

至於你的問題'以上類似的問題。很多用戶可以使用相同的資產嗎?同時或順序? '是的,多個用戶可以使用同一資產,並且可能同時或順序發生。例如,數據庫服務器將具有併發用戶。 – PeanutsMonkey

+0

至於我關於運行時對象的問題,我的意思是說需要顯示所有者和用戶。如果看到資產不是所有者或用戶類的子類或子類,我將如何顯示它? – PeanutsMonkey

3

你的設計似乎與你的問題的介紹馬赫。對於問題4,它確實取決於你想用系統捕獲什麼。如果資產被損壞,它是否需要在系統中保留記錄?如果用戶離開其組織,您想要在系統內存中存儲什麼?

對於問題3,你可以使用一個共同的抽象類,這樣的:

asset ownership UML Class diagram http://app.genmymodel.com/engine/xaelis/assetOwnership.jpg

,如果你想製作複印件並適應這種模式,您可以使用此link

+0

謝謝Xaelis。有沒有比實體更好的術語?我開始時採用了與你所建議的相同的方法,但是我展示模型的人被術語實體弄糊塗了。我想捕捉損壞等約束的原因是因爲它提供了一些方面的歷史背景,例如當時誰是用戶,什麼是損壞的和可能被替換的等等。最後,我如何讓對象顯示運行時間值對於所有權,用戶等,特別是如果資產不是用戶的專業化或一般化。 – PeanutsMonkey

+0

也許比實體更好的術語可以是NamedElement或LocalizableElement。如果您需要損壞事件的歷史記錄,您可以添加一個Damage類,它可以記錄此類事件的所有信息(日期,地點,用戶和組織)。 – Xaelis

+1

僅僅因爲兩個班級共用一個名字和地點而使用一個通用基地是非常可疑的。他們的子類應該有一些共同的語義;它不應該只是一個方便,以節省您的打字。不過,您的模型具有多樣性並定義了一些角色。他們可能會或可能不會是正確的 - 這將取決於要求。但好事是它提出了問題。 – sfinnie

相關問題