學校軟體工程期末考試複習(各種圖的詳細說明)
目錄
目錄用例圖用例什麼是用例?用例之間的關係用例圖佈局類之間的關係(類圖)類圖佈局流程圖系統流程圖系統流程圖的符號系統流程圖佈局程式流程圖過程設計語言(PDL)盒圖(N-S圖)問題分析圖(PAD圖)PAD圖的基本符號順序圖(時序圖)時序圖佈局ADL
用例圖
請參考
用例
什麼是用例?
從外部使用者的視角看,一個用例(use case)是執行者(actor)與目標軟體系統之間一次典型的互動作用,其效果就是執行者在軟體系統的幫助下完成了某項業務功能,或達成了某項業務目標。
在課程註冊管理系統中,主要的執行者有:“Registrar”(教務管理員) “Student”(學生)、“Teacher”(任課教師)“Billing System”(收費系統)
相對獨立性和完整性是用例必備的兩項特徵,即,用例表示執行者為達成一項相對獨立、完整的業務目標而與目標軟體系統協同完成的功能。
從軟體系統內部的視角出發,一個用例代表著系統執行的一系列動作,動作執行的結果能夠被外部的執行者所察覺。
用例之間的關係
用例之間的關係主要有三種:包含(include)、擴充套件(extend)和繼承 。
用例圖(Use case diagram)從使用者角度描述系統功能,並指出各功能的操作者。
圖名稱 | 圖定義 | 圖性質 |
---|---|---|
用例圖 | 一組用例、執行者及它們的關係 | 靜態圖 |
課程註冊管理系統的用例圖
用例圖中的所有用例的集合構成目標軟體系統應該提供的功能
用例圖佈局
用例圖的佈局攸關其可理解性。建議讀者採納以下佈局規則:
主要的執行者應置於用例圖的左上區域。
觸發用例執行的主動執行者應位於用例的左面,接收用例產生的資訊的被動執行者應置於用例的右面。
多個用例沿垂直方向排列。如果用例A的執行時間一定在B之前,那麼最好將A置於B之上。
在水平方向繪製包含關係,並將被包含的用例置於包含用例的右側。
在垂直方向繪製擴充套件和繼承關係,並將擴充套件用例置於被擴充套件用例的下方。將繼承用例置於被繼承用例的下方。
類之間的關係(類圖)
課件彙總p680
繼承和聚合(聚集和組合),關聯、依賴和實現
繼承
介紹:
繼承表示是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力。
表示方法:
繼承使用空心三角形+實線表示。
示例:
鳥類繼承抽象類動物
實現
介紹:
實現表示一個class類實現interface介面(可以是多個)的功能。
表示方法:
使用空心三角形+虛線表示
比如:大雁需要飛行,就要實現飛()介面
依賴
介紹:
對於兩個相對獨立的物件,當一個物件負責構造另一個物件的例項,或者依賴另一個物件的服務時,這兩個物件之間主要體現為依賴關係。
表示方法:
依賴關係用虛線箭頭表示。
示例: 動物依賴氧氣和水。呼叫新陳代謝方法需要氧氣類與水類的例項作為引數
關聯
介紹:
對於兩個相對獨立的物件,當一個物件的例項與另一個物件的一些特定例項存在固定的對應關係時,這兩個物件之間為關聯關係。
表示方法:
關聯關係用實線箭頭表示。
示例:
企鵝需要‘知道’氣候的變化,需要‘瞭解’氣候規律。當一個類‘知道’另一個類時,可以用關聯。
聚合
介紹:
表示一種弱的‘擁有’關係,即has-a的關係,體現的是A物件可以包含B物件,但B物件不是A物件的一部分。 兩個物件具有各自的生命週期。
表示方法:
聚合關係用空心的菱形+實線箭頭表示。
示例:
每一隻大雁都屬於一個大雁群,一個大雁群可以有多隻大雁。當大雁死去後大雁群並不會消失,兩個物件生命週期不同。
組合
介紹:
組合是一種強的‘擁有’關係,是一種contains-a的關係,體現了嚴格的部分和整體關係,部分和整體的生命週期一樣。
表示方法:
組合關係用實心的菱形+實線箭頭表示,還可以使用連線兩端的數字表示某一端有幾個例項。
示例:
鳥和翅膀就是組合關係,因為它們是部分和整體的關係,並且翅膀和鳥的生命週期是相同的。
類圖佈局
類圖往往是軟體模型圖中最複雜同時也最關鍵的一張UML檢視。為提高其可理解性,本書推薦以下佈局規則:
(1)儘量沿垂直方向表示繼承、實現關係,沿水平方向表示關聯、聚合、組合、依賴、實現關係。
在繼承關係中,父類應位於子類的上方;
在單向關聯、依賴和實現關係中,方向儘量從左至右;
在聚合、組合關係中,整體類一般位於部件類的左面。
(2)在關聯邊上,多重性、角色名、約束特性等應靠近關聯端。
(3)如果多條邊表示相同種類的關係,它們有公共的類端點,並且在公共端的標註相同,則匯合這些邊。例如,將“使用者”與“教務管理員”、“教師”和“學生”之間的三條繼承邊匯合,佈局成樹形結構。
課程註冊管理系統的類圖
流程圖
p412
流程圖與PDL、盒圖、PAD可以相互轉換
系統流程圖
系統流程圖的符號
系統流程圖符號中有五種基本符號是從程式流程圖中借用來的,當以概括方式抽象描繪一個實際系統時,僅用此五種符號足夠了。
五種基本的系統流程圖符號
系統流程圖佈局
系統流程圖的習慣畫法是使資訊在圖中自頂向下或從左向右流動。
庫存管理系統的系統流程圖
程式流程圖
為了能夠用程式流程圖描述結構化的程式,一般地,限制只允許使用三種基本結構。
a.順序型
b.選擇型
c.先判斷型迴圈 DO-WHILE
過程設計語言(PDL)
•過程設計語言(PDL)也稱為偽碼, PDL是一種用於描述功能模組的演算法設計和加工細節的語言。
•PDL是一種“混雜式語言”,它採用某種語言(如英語或自然語言)的詞彙,另一種語言(結構化程式設計語言)的全部語法。
•偽碼的語法規則分為“外語法”和“內語法”。
• PDL語法是開放式的,其外層語法是確定的,而內層語法則故意不確定。外層語法描述控制結構和資料結構,它用類似於一般程式語言控制結構的關鍵字(如 IF—THEN —ELSE、WHILE—DO、REPEAT—UNTIL等)表示,所以是確定的,而內層語法可使用自然語言的詞彙描述具體操作。
例如,在PDL 描述
if X is not negative
then
return(square root of X as a real number);
else
return(square root of -X as an imaginary number);中,外層語法 IF—THEN —ELSE是確定的,內層操作“square root of X”是不確定的。
盒圖(N-S圖)
N-S圖是為克服流程圖在描述程式邏輯時的隨意性等缺點
只能從上邊進入盒子然後從下邊走出,除此之外沒有其他的入口和出口
用N-S圖作為詳細設計的描述手段時,常需用兩個盒子:資料盒和模組盒,前者描述有關的資料,包括全程資料、區域性資料和模組介面上的引數等,後者描述執行過程。
問題分析圖(PAD圖)
Problem Analysis Diagram
使用二維樹形結構圖來描述程式的邏輯
PAD圖的基本符號
將陣列A(1)到A(10)從大到小進行選擇法排序的演算法描述如下PAD圖所示。
例如:將陣列A(1)到A(10)從大到小進行選擇法排序的演算法描述如下PAD圖所示。
順序圖(時序圖)
課程註冊管理系統中“制訂選課計劃”用例的順序圖
時序圖佈局
順序圖是一張二維圖。
其縱向代表時間軸,時間沿垂直方向向下延伸;
其橫向由多個參與互動的物件構成,這些物件之間無順序關係。
一般情況下,時間軸上的兩點只有相對時序的差異,但在實時應用中,可以使用帶時間刻度的時間軸以度量兩點之間的絕對時差。
一張基本的順序圖由以下圖形元素構成:物件及其生命線與活躍期,訊息傳遞,註解。
⑴順序圖中的物件表示為嵌於矩形框內形如
“[物件名] : [類名]”
的文字,其中物件名、類名分別可省略,但不能同時省略。
⑵物件之下的垂直虛線稱為物件的生命線,表示物件在始於物件表示圖元所處的時間起點、止於物件生命終結符(見圖中TimeConflictChecker物件的生命線)之間的時間段內在軟體系統中存在。如果物件生命線的下方沒有終結符,則表示物件在順序圖所代表的時間段之後仍然存在。
⑶物件中操作的執行期(包括等待同步呼叫返回的時間)稱為物件的活躍期,它由覆蓋於物件生命線之上的長條形矩形表示。
物件間的訊息傳遞表示為物件生命線之間的有向邊,邊上可標註
“[*][監護條件] [返回值:=]訊息名[(引數表)]”
其中“*”為迭代標記,表示同一訊息對同一類的多個物件傳送。
建模者勿需考慮訊息傳送與接收之間的時延,確需考慮時(例如,在實時應用中,或者當訊息通過網路傳輸時),可以用斜向下方的訊息邊來表示,見圖。
順序圖中的訊息分為同步、非同步兩種,分別用實心三角形箭頭和普通箭頭表示。
儘管物件在水平軸上的次序沒有嚴格的語義資訊,但建模應遵循以下佈局規則:
⑴將用例的主動執行者例項安排在順序圖左側;被動執行者例項安排在順序圖右側。
⑵採用分層設計時,應將同層物件放在一起
每層物件的排序規則是:接近使用者介面層靠左,接近後臺處理層(如,資料持久儲存層)靠右;
在軟體分層結構中相鄰的層,其物件集合在順序圖的水平佈局中也相鄰。
因同層物件互動較多,相鄰層間的互動較少,跨層互動更少,所以此排序規則可有效縮短訊息邊的長度,簡化順序圖。
⑶在遵守以上兩條規則的同時,物件的排序應儘量縮短訊息邊的長度,並且儘量使訊息邊的方向從左至右。
關於訊息邊上文字的位置,有以下佈局規則:
⑴如果模型讀者辨識訊息的目標物件較辨識訊息的源物件為難,則文字應置於訊息的目標端;否則,文字應置於訊息的源端。
當訊息的源和目標都易於辨識時,建模者可將文字置於任意一端(不宜將文字置於訊息邊的中間位置),但在本專案的所有順序圖中應保持風格一致。
⑵返回訊息上的文字一定要置於訊息的目標端。
ADL
沒有找到。