2014-04-22 36 views
5

我正在爲學校項目創建使用案例。 林有點困惑的前提條件。使用案例中的先決條件

在某些方面也的確是像「已在登錄」或「需要一個帳戶」

但如果sofware是本地設置什麼前提條件?

對我來說,這聽起來邏輯的前提是「軟件需要安裝」

但在另一方面,這種前提條件看起來怪怪的,否則你不會有擺在首位這種使用情況。

所以我的問題是簡短的。系統要求或軟件安裝是否可以成爲先決條件的一部分?

回答

6

真的很好的問題是解決UML問題的核心 - 它是弱語義。因此,你的問題的答案是 - 可能是對的,可能是錯的。 UML設置了符號規則,並且只定義了基本的元素語義(例如,「必須滿足先決條件......」)。

我們甚至可以用「操作系統應該正確配置」或甚至更糟 - 「計算機有電力」等前提條件進一步研究......這些討論很容易變成哲學。 :)

根據我的經驗,有一種方法可以高效地使用用例 - 構建另一個UML模型,它將用於制定前置條件,後置條件甚至用例場景(與前提條件相同的問題)也可以用於場景 - 對於場景來說這是一個正確的抽象?或者,「打開計算機?」是場景中的有效步驟?)。

爲了實現這個功能,我通常使用概念類圖 - 我對我的域進行建模,然後根據這些元素(類和它們的屬性)表達前/後條件和場景,並僅使用這些元素。這很有意義,特別是知道前/後置條件查詢系統的狀態,由對象/值整齊地反映。回到你的例子,如果你想知道「軟件需要安裝」的前提條件,你只需要問自己:「我真的需要一個帶'isInstalled'屬性的'軟件'嗎?」

然後你很可能會意識到,你可能不需要這個先決條件,因爲它只是太「低級別」而不在我的域名範圍。現在你只需要定義你的域名。 :)下面是一個類似的情況一個簡單的例子,展示了理念(記住,用例和類模型繪製在不同的圖表):

enter image description here

這種方法不僅使其更容易指定使用的情況下,還制定了互補的類模型,允許域名規範,業務規則識別和系統設計的第一次抽象。

祝你好運,玩得開心!

+0

Thanx so much !這解決了我的問題!學校項目正在編寫用例,但是已經創建的軟件。有點逆轉......但這是我們必須理解的概念。我選擇了來自Piriform的Ccleaner程序。我已經寫過一個用例......用戶採取清理硬盤的行爲的情況。感謝圖片和解釋! FOSA – Fosa

1

對我而言,系統要求和/或軟件安裝可以是前提條件的一部分,但是一如既往,它必須與您的使用案例相關。 例如,如果硬件或第三個工具安裝或未安裝,您的系統將有不同的行爲。

1

讓我們記住,用例對您的軟件/系統需要實現的真正的高級需求。這樣,前提條件只應與您正在構建的軟件(或系統)相關,而不涉及外部元素(例如,「計算機已連接並打開」不是一個好的先決條件)。例如,當您開始將用例作爲序列或活動圖來實現時,前提條件會提供一些線索,可能需要在軟件中進行檢查,可能需要調用其他某個操作/模塊/類。這種實現練習將幫助您確定前提條件將採取的形式,即使它仍然是必需的,具體取決於應用程序的結構。

舉例來說,如果您希望用戶登錄時不同的行爲,或者操作需要不同的權限,則可能需要「必須登錄」前提條件。因此,一些系統要求可能是先決條件(例如,與設備的連接),某些軟件安裝可能是一個先決條件(例如,所需的配套產品集成),但只有當它們對用例有直接影響時本身。爲您的應用程序安裝軟件不應該是一個先決條件:應用程序無法檢查它是否沒有安裝,因爲它無法運行,它執行然後顯然安裝...