《火球:UML大戰(zhàn)需求分析》學(xué)習(xí)筆記——分析業(yè)務(wù)模型(類圖)

本系列筆記是針對張傳波老師所著的《火球:UML大戰(zhàn)需求分析》的學(xué)習(xí)筆記,內(nèi)容完全是對張老師書籍中重點(diǎn)內(nèi)容的摘抄。如有侵犯,請聯(lián)系本人處理。

目錄

二、分析業(yè)務(wù)模型——類圖

2.1 類和類圖

2.1.1 類

類:需求中提到的各種業(yè)務(wù)概念、人物等,進(jìn)過抽象后都可以視之為類。

類的用途:每個(gè)軟件系統(tǒng)都會(huì)涉及到很多人、業(yè)務(wù)概念和物品等,這些東西之間可能會(huì)有很多關(guān)系,發(fā)生很多事情。類圖能幫助我們識別出這些人、業(yè)務(wù)概念、物品和事情等,并理清它們的關(guān)系。

2.1.2 類圖

一個(gè)類的類圖

一個(gè)類就是一個(gè)矩形的方框,最上面是類的名字,中間是屬性(Attribute),最下面是操作(Operation)。表示一個(gè)類時(shí),可只顯示類名,也可以只顯示類名和屬性,或者是類名和操作。

+? Attribute A: int

“+”表示這個(gè)屬性是public類型的(“-”表示private),冒號后面的int,表示屬性的類型是int型(整數(shù)型),往往在需求分析初始階段,可不必標(biāo)注屬性的類型。

每一個(gè)類應(yīng)該具備表征它核心特點(diǎn)的關(guān)鍵屬性,而一般的無特殊意義的屬性,可不必標(biāo)記進(jìn)去。

2.1.3 抽象類

注意圖中抽象部門四個(gè)字是斜體字,這表明這個(gè)類是抽象類(Abstract Class),抽象類表示這個(gè)類是提煉出來的一種概念,不是具體存在的,具體存在的是繼承抽象部門的各個(gè)具體的部門。

2.1.4關(guān)聯(lián)類

上圖中在表示公司與雇員關(guān)系的直線上,拉出一條虛線,虛線另一端連接勞動(dòng)合同類,這樣的類叫做關(guān)聯(lián)類(Association Class),關(guān)聯(lián)類是對兩個(gè)類的關(guān)系的進(jìn)一步約束。

2.2 類之間的關(guān)系

2.2.1 關(guān)聯(lián)關(guān)系(Association)

a. 一對一的關(guān)系

b. 一對多的關(guān)系

c. 一對零到三個(gè)的關(guān)系

d. 角色關(guān)系

角色前的“+”號表示這個(gè)角色的類型是public,“-”號則表示private。

e. “導(dǎo)航”關(guān)系

表示由“教師”可以找到“學(xué)生”

2.2.2 “包含”關(guān)系

兩種“包含”關(guān)系:聚合和復(fù)合

a. 聚合關(guān)系(“弱”包含)Aggregation

班級消失,則學(xué)生依然存在。學(xué)生可屬于多個(gè)班級。

b. 復(fù)合關(guān)系(“強(qiáng)”包含)Composition

班級消失,學(xué)生消失。學(xué)生僅屬于此班級。

c. “包含”關(guān)系中的數(shù)量關(guān)系

存在0到多個(gè)班級、0到多個(gè)學(xué)生,每個(gè)學(xué)生僅屬于某一班級。

2.2.3 “繼承”關(guān)系(泛化Generalization)

表示A繼承了B,A具備B的特點(diǎn),同時(shí)也有自己特有的特點(diǎn),注意不要搞錯(cuò)繼承方向。

UML中文標(biāo)準(zhǔn)術(shù)語是泛化(Generalization),上圖可讀作:A泛化為B。

2.2.4 “依賴”關(guān)系(依賴Dependency)

表示A依賴于B,依賴程度是相對而言的,不一定是A沒有B就無法存在了。在具體的業(yè)務(wù)邏輯中,對于某個(gè)事情,A需要B來協(xié)助才能完成,這樣也是一種依賴。

2.2.5 讀圖檢查法

你可以分別從左往右、從右往左來讀圖,看看有沒有不合理的地方。以上圖為例,從左往右讀:1個(gè)你對應(yīng)多個(gè)你的另一半。從右往左讀:1個(gè)你的另一半對應(yīng)1個(gè)你,而不要讀成多個(gè)你的另一半對應(yīng)1個(gè)你。

注意:由“多”的一邊往另一半讀時(shí),仍然是1個(gè)什么對應(yīng)多少個(gè)什么,無論你從哪邊開始讀起,都是由“1個(gè)……”開頭。

2.2.6 “遞歸”關(guān)系

“自包含”

“自關(guān)聯(lián)”

2.2.7 “三角”關(guān)系

2.3 如何識別類

用類圖獲取需求的大致步驟如下:

1) 識別出類;

2) 識別出類的主要屬性;

3) 描繪出類之間的關(guān)系;

4) 對各類進(jìn)行分析、抽象、整理。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容