機房重構之用例圖

一、爲什麼畫用例圖

用例圖(Use Case Diagram)是由軟件需求分析到最終實現的第一步,它描述人們如何使用一個系統。用例視圖顯示誰是相關的用戶、用戶希望系統提供什麼樣的服務,以及用戶需要爲系統提供的服務,以便使系統的用戶更容易理解這些元素的用途,也便於軟件開發人員最終實現這些元素。用例圖在各種開發活動中被廣泛的應用,但是它最常用來描述系統及子系統。

 

二、怎樣畫

用例圖包含六個元素,分別是:參與者(Actor)、用例(Use Case)、關聯關係(Association)、包含關係(Include)、擴展關係(Extend)以及泛化關係(Generalization)

1、參與者: 參與者是系統外部的一個實體,它以某種方式參與用例的執行過程。  在機房收費系統中的參與者有三個一般用戶,操作員,管理員。

參與者的確定方法:

1)誰將使用該系統的主要功能。

2)誰將需要該系統的支持以完成其工作。

3)誰將需要維護、管理該系統,以及保持該系統處於工作狀態。

4)系統需要處理哪些硬件設備。

5)與該系統那個交互的是什麼系統。

6)誰或什麼系統對本系統產生的結果感興趣。

通過以上方法可以確定參與者有:一般用戶,操作員,管理員

對於學生在這個系統中我不認爲他是一個參與者,因爲我理解的是這個系統是學校的機房管理者使用的,而不是學生使用的,學生只是卡的持有者,機房管理員(一般用戶,操作員,管理員)操作的學生卡進行註冊,充值,退卡,上下機等操作。也就是說機房管理員是和學生的卡打交道的,而不是學生。

一般用戶,操作員,管理員之間是泛化關係,即操作員繼承一般用戶,管理員繼承操作員。


2、用例: 用例是外部可見的系統功能單元,這些系統功能由系統單元所提供,並通過一系列系統單元與一個或多個參與者之間交換的消息所表達。用例的用途是,在不揭示系統內部構造的前提下定義連貫的行爲。

 

在識別用例的過程中,通過回答以下幾個問題,系統分析者可以獲得幫助。

1) 特定參與者希望系統提供什麼功能。

2) 系統是否存儲和檢索信息,如果是,由哪個參與者觸發。

3) 當系統改變狀態時,是否通知參與者。

4) 是否存在影響系統的外部事件。

5) 哪個參與者通知系統這些事件。

在本機房收費系統中用例有:上下機,查看記錄,修改密碼等用例。


       3、關聯關係(Association

         關聯關係描述參與者與用例之間的關係,它是用於表示類的掛系的關聯元類的實例。在UML中,關聯關係用箭頭來表示。

       4、 包含關係(Include

雖然每個用例的實例都是獨立的,但是一個用例可以用其它的更簡單的用例來描述。這有點像通過繼承父類並增加附加描述來定義一個類。一個用例可以簡單地包含其它用例具有的行爲,並把它所包含的用例行爲作爲自身行爲的一部分,這被稱作包含關係。在這種情況下,新用例不是初始用例的一個特殊例子,並且不能被初始用例所代替。在UML中,包含關係表示爲虛線箭頭交<<include>>字樣,箭頭指向被包含的用例。

5、擴展關係(Extend

一個用例也可以被定義爲基礎用例的增量擴展,這被稱作擴展關係,擴展關係是把新的行爲插入到已有的用例中的方法。同一個基礎用例的幾個擴展用例可以在一起應用。基礎用例的擴展增加了原有的語義,此時基礎用例而不是擴展用例被作爲例子使用。在UML中,擴展關係表示爲虛線箭頭加<<extend>>字樣,箭頭指向被擴展展的用例。

6、泛化關係(Generalization

一個用例可以被特別列舉爲一個或多個用例,這被稱爲用例泛化。當父用例能夠被使用時,任何子用例也可以被使用。在UML中用例泛化與其它泛化關係的表示法相同,用一個三角箭頭從子用例指向父用例。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章