UML · 系統與概念筆記
文章推薦指數: 80 %
使用案例圖主要的目的在幫助開發團隊設想系統功能的需求,其中包含了參與 ... 然而實作類別圖將不會寫上相同的屬性欄位(attributes),因為實作類別極有可能會使用到像 ...
系統與概念筆記
Introduction
Summary
資訊安全
What'sInformationSecurity
Attack
DDoS
使用者端防護
X-Frame-Options
參考
檢測
網路效能
iperf
程式概念
命名規則
RESTful
UML
UseCase
PoweredbyGitBook
UML
UML
圖例
[UseCasediagram]使用圖例
目的:
用來說明系統所提供的一項功能,
使用案例圖主要的目的在幫助開發團隊設想系統功能的需求,其中包含了參與者(actor,也就是跟系統互動的人)與基本處理程序的關係,還有不同使用案例之間的關係。
繪製
人物:參與者
橢圓:使用案例的名稱
線:表示參與者與使用者案例有關係
使用案例圖通常會表示出一組使用案例:不是整個系統所有的使用案例,就是與使用案例相關的一組特殊的功能(例如所有和安全管理相關的使用案例)。
你必須在圖的中間畫一個橢圓,並在橢圓的中間或是下面填入這個使用案例的名稱,用來表示使用案例圖中的一個使用案例。
另外你要在圖的左邊或是右邊畫一個棒狀的小人(為了避免你會納悶,事實上有一些人會畫比棒狀小人好看的人形圖),用來表示使用案例圖的一個參與者(包括系統使用者)。
還要利用簡單的線條來描述參與者和使用案例之間的關係。
[Classdiagram]類別圖
目的
描述不同的個體(人、事物和資料)相互的關係;它表示了系統的靜態結構。
類別圖能夠用來表示邏輯類別,
通常也就是組織裡面的業務人員所談論的東西:搖滾樂團、CD、收音機;或是貸款、住宅抵押、汽車貸款和利率。
類別圖也能夠用來表示實作的類別,
也就是一般程式設計師所要處理的物件。
實作的類別圖有可能跟邏輯的類別圖使用一些相同的類別。
然而實作類別圖將不會寫上相同的屬性欄位(attributes),因為實作類別極有可能會使用到像是Vectors和HashMaps這類東西。
類別繪製
在類別圖中描繪的類別,是一個有三個水平區域的長方形。
上方的區域表示類別的名稱;
中間的區域包含了類別的屬性欄位;
下面的區域包含了類別的操作(或是方法)。
關係繪製
繼承關係:一條頂端有箭頭的線(箭頭空心)
聯繫(association)關係:兩個類別互相知道對方的聯繫(association)關係,是一條實線
箭頭實線:只有一方知道另一方類別的聯繫關係,就一條有開放箭頭的實線。
1對1:1
1對多:1..*
上面範例,我們觀察到繼承關係和兩個聯繫關係。
CDSalesReport類別繼承了Report類別,
CDSalesReport聯繫到一個CD,
但是CD類別不知道任何有關CDSalesReport類別的資訊。
CD和Band類別互相知道對方,兩個類別都以多對多的方式互相聯繫到對方。
[Sequencediagram]循序圖
循序圖描述特定使用案例或是特定使用案例的一部份詳細的流程。
它們大多能讓人望圖生義;並可以依照順序描述不同物件之間的呼叫關係,也能夠詳細地描述給不同物件的各種呼叫。
循序圖有兩個象限:
垂直象限:
依照訊息/呼叫發生的時間順序,來描述訊息/呼叫的先後次序;
水平象限:
則描述一個物件實體(instances)傳送訊息給哪一個物件實體。
繪製
物件實體(instances):
每一個實體為一個T,在方格內填入實體名:類別名
類別與實體中間插入(空白/冒號/空白:)
例如myReportGenerator:ReportGenerator
類別實體呼叫類別實體:一條有開放箭頭的實線,指到接收端的類別實體
在這條線的上面填入訊息/方法的名稱。
訊息傳遞
對於重要的訊息,你也可以畫上有箭頭的虛線,指回訊息來源的類別實體;
在虛線上標示回傳值。
如何閱讀?
一開始,從左上方角落那個”驅動者(driver)”類別實體開始引發一連串的事件,
然後跟著圖往下追蹤每一個訊息。
要記住:即使在圖4循序圖範例對每一個傳送的訊息都繪製了回傳訊息,但這是可做可不做的。
上圖可以了解到要如何建立一份CD銷售報表。
aServlet物件是我們範例中的驅動者,
aServlet會傳送一個訊息給稱為gen的ReportGenerator類別實體,
這個訊息被標示為generateCDSalesReport,這個名稱代表它是由ReportGenerator物件實作的訊息處理器,
再更詳細地檢視這個訊息,generateCDSalesReport訊息的括號裡面有一個cdId的標記,這表示aServlet會在這個訊息裡面附帶傳送一個稱為cdId的變數。
當gen實體傳送一個generateCDSalesReport訊息,接下來gen會呼叫CDSalesReport類別,會傳送回來一個稱為aCDReport的CDSalesReport實體。
然後gen實體會呼叫回傳的aCDReport實體,再利用每一次的訊息呼叫把參數傳給aCDReport。
在這個序列的最後,gen實體會回傳aCDReport給它的呼叫者aServlet。
請注意:上圖的循序圖對常見的循序圖來說有一點太詳細了,然而,我相信它還是很簡單易懂,同時該圖也展示巢狀呼叫怎樣畫。
另外對於資淺的開發人員來說,有時候也必須要深入每一個程序,描述越詳細清楚,越能幫助開發人員了解他們應該要做什麼。
[Activitydiagram]活動圖
目的
活動圖用來描述在進行一項活動時,兩個或是多個類別物件之間程序的控制流程。
活動圖能夠用來描述在商業單元階層的高階商業程序,也可以用來描述低階內部類別的行為。
以我的經驗來說,活動圖最好是用來描述高階處理程序,
例如目前公司要如何處理商務程序,或是它要怎麼做生意。
這是因為跟循序圖比較起來,活動圖在表面上看來比較”不專業”,另外業務人員會比較快速且容易瞭解這個圖的意義。
繪製
(類似狀態圖)
實心圓圈:活動開始,連接到起始的活動。
活動:圓角的矩形,裡面填上活動的名稱。
轉換線:活動可以透過轉換線連接到其他不同的活動上,也可以連接到決策點上,然後連到有決策點把關的其他活動上。
雙圓:終結所有模擬程序的活動
水道(swimlane):可以使用水道(swimlane)分出不同的群組,用來表示物件實際上要怎麼執行這個活動
上圖我們用兩個水道(swimlane),因為我們有兩個物件控制不同的活動:一個樂團經理人和一個報表工具。
整個程序是由樂團經理人選擇要看哪一個樂團的銷售報表開始,
接下來報表工具會取得並展示該經理人所管理的所有樂團,並詢問他要選哪一個。
在樂團經理人選擇了一個樂團之後,報表工具會取得銷售的資訊並展示這個銷售報表。
根據活動圖的描述,展示報表是這個程序的最後一個步驟。
參考
DonaldBell(譯:姚長利)-UML入門:統一建模語言入門
http://www.dotspace.idv.tw/Jyemii/umlcolumn/articles/umlwriting/UMLBasics/UMLBasics.htm
resultsmatching""
Noresultsmatching""
延伸文章資訊
- 1UML入門:統一建模語言入門 - 點空間
最常使用的UML 標準圖形有:使用案例圖(use case diagram)、類別圖(class ... 一個使用案例可用來說明系統所提供的一項功能,使用案例圖主要的目的在幫助開發團隊 ...
- 2Class Diagram 類別圖筆記 - 奧卡的部落格
緣由每次需要開發較大型的新功能時,往往需要一併重構或是想新架構, ... 類別圖是UML 的一種,他透過一個系統中的物件、物件的屬性、物件擁.
- 3UML類別圖的風格指南(上) - iThome
- 4UML類別圖:基本概念篇 - 自學程式誌
的確,畫類別圖對工程師是一大挑戰,然而它能有效率地分割功能給底下的工程師,並且降低工作之間的相依性,使得每一個工程師開發時程能獨立運作。
- 5類別圖- 維基百科,自由的百科全書
實現(Realization)指的是一個class類別實現interface介面(可以是多個)的功能;在Java中此類別關係通過關鍵字implements明確標識。用帶空心三角形箭頭的虛線表示。...