3.3面向對象的分析方法


什么是對象?

​ 在現實世界中的一個東西,只要是有概念或者是實體存在。

如:一名職工、一本圖書、一項貸款、一項生產計划、一場演出等。

幾種著名的面向對象方法

  • UML(一種可視化建模語言,能描述開發需要的各種視圖,並以此為基礎組建系統。
  • OMT
  • OOSE

面向對象的軟件開發模型

1、數據模型(對象模型):

描述系統數據結構的對象模型;

2、行為模型(動態模型)

描述系統控制結構

3、功能模型(用例圖)

描述系統功能。

一個典型的軟件系統使用數據結構(對象模型),執行操作(動態模型),並且完成數據值的變化(功能模型)。

功能模型——用例圖UCD

(1)用例圖的基本圖形符號

用例建模用於描述系統需求,把系統當作黑盒,從用戶的角度,描述系統的場景。

主要圖形元素有以下幾個:

參與者:是指外部用戶或外部實體在系統中扮演的角色。可以是一個人、一個計算機子系統、硬件設備或者時間等角色【一個小人兒】

用例:對一組動作序列的描述,系統通過執行這一組動作序列為參與者產生一個可觀察的結果。用例名往往用動賓結構命名。【一個橢圓】

執行關聯: 參與者(Actor )執行用例(Use Case)之間的關系【直線兒】

(2)用例建模的過程

建立用例模型的順序是:

1.確定誰會直接使用該系統。這些都是參與者(Actor)。

2.選取其中一個參與者。

3.定義該參與者希望系統做什么,參與者希望系統做的每件事成為一個用例。

4.對每件事來說,何時參與者會使用系統,通常會發生什么,這就是用例的基本過程。

5.描述該用例的基本過程

6.考慮一些可變情況,把他們創建為擴展用例

7.復審不同用例的描述,找出其中的相同點,抽出相同點作為共同的用例

8.重復步驟2~7,找出每一個用例。

要素

(1)參與者

參與者(actor)是指系統以外的、需要使用系統或與系統交互的東西,包括人、設備、外部系統等。

參與者的三種表示形式

如何確定參與者?

在獲取用例前首先要確定系統的參與者,開發人員可以通過回答以下的問題來尋找系統的參與者。
(1)誰將使用該系統的主要功能?
(2)誰將需要該系統的支持以完成其工作?
(3)誰將需要維護、管理該系統,以及保持該系統處於工作狀態?
(4)系統需要處理哪些硬件設備
(5)與該系統交互的是什么系統
(6)或什么系統對本系統產生的結果感興趣

示例:飲料自動售貨系統

在飲料自動售賣機中,最先想到的參與者是顧客。

其次,供應商向自動販賣機添加飲料。收銀員從自動販賣機收錢。

(2)用例(Use Case)

“用例”的定義

​ 對一組動作序列的描述,系統通過執行這一組動作序列為參與者產生一個可觀察的結果

圖形表示

用橢圓形表示

用例特征

  • 說明了系統具有的一種行為模式

  • 說明了一個參與者與系統執行的一個相關的事件序列

  • 提供了一種獲取系統需求的方法

  • 提供了一種與最終的用戶領域專家進行溝通的方法

  • 提供了一種測試系統的方法

怎么獲取用例?

參與者希望用戶執行什么任務?

參與者在系統中訪問哪些信息(創建、存儲、修改、刪除等)?

需要將哪些外界信息提供給系統

需要將系統的什么事情告訴參與者

如何維護系統

(3)系統和關聯

系統:用於界定系統功能范圍,描述該系統功能的用例都置於其中,而描述外部實體的參與者都置於其外。

關聯:連接參與者和用例,表示參與者所代表的系統外部實體與該用例所描述的系統需求有關。

用例之間的關系

關聯(Association):、泛化(Inheritance)、包含(Include)、擴展(Extend)

(1)關聯(Association)

表示參與者與用例之間的通信,任何一方都可發送或接受消息。

【箭頭指向】:指向消息接收方

注:參與者可以參與多個用例,由此形成子系統

(2)泛化(Inheritance)

【箭頭指向】:指向父用例

就是通常理解的繼承關系,子用例和父用例相似,但表現出更特別的行為;子用例將繼承父用例的所有結構、行為和關系。

子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。

(3)包含(Include)

【箭頭指向】:指向分解出來的功能用例

  包含關系用來把一個較復雜用例所表示的功能分解成較小的步驟。一個用例可以包含另外一個用例。

(4)擴展(Extend)

【箭頭指向】:指向基礎用例

擴展關系是指用例功能的延伸,相當於為基礎用例提供一個附加功能。由一個用例的擴展點可以擴展出另外一個用例。

包含(include)、擴展(extend)的區別:

包含:在執行基本用例時一定會執行包含用例部分

擴展:一個基本用例執行時,可以執行、也可以不執行擴展用例部分

關聯、包含、擴展、泛化 的區別:

舉例:自動售貨系統 初步的用例圖

用例擴展后的用例圖

用例實例一:ATM系統用例圖

用例實例二:圖書借閱系統用例圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM