軟件工程教學課件:7%-第07章 面向對象的分析和設計_第1頁
軟件工程教學課件:7%-第07章 面向對象的分析和設計_第2頁
軟件工程教學課件:7%-第07章 面向對象的分析和設計_第3頁
軟件工程教學課件:7%-第07章 面向對象的分析和設計_第4頁
軟件工程教學課件:7%-第07章 面向對象的分析和設計_第5頁
已閱讀5頁,還剩210頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程2/215 面向對象的基本概念面向對象的基本概念 面向對象的分析和設計過程面向對象的分析和設計過程 UML概述概述 用況建模用況建模 靜態建模靜態建模 動態建模動態建模 物理體系結構建模物理體系結構建模復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程3/215 面向對象的分析和設計過程面向對象的分析和設計過程 UML概述概述 用況建模用況建模 靜態建模靜態建模 動態建模動態建模 物理體系結構建模物理體系結構建模復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程

2、4/215Peter Coad和Edward Yourdon提出用下列等式識認面向對象方法:面向對象 = 對象(object) + 分類(classification) + 繼承(inheritance) + 通過消息的通信(communication with messages)可以說,采用這四個概念開發的軟件系統是面向對象的復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程5/215面向對象方法的出現很快受到計算機軟件界的青睞,并成為20世紀90年代的主流開發方法。我們可以從下列幾個方面來分析其原因:1.從認知學的角度來看,面向對象方法符合人們對客觀世界的認識規

3、律。2.面向對象方法開發的軟件系統易于維護,其體系結構易于理解、擴充和修改。3.面向對象方法中的繼承機制有力支持軟件的復用。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程6/2151. 對象(object) 對象是指一組屬性以及這組屬性上的專用操作的封裝體。 屬性(attribute)通常是一些數據,有時它也可以是另一個對象。每個對象都有它自己的屬性值,表示該對象的狀態。對象中的屬性只能通過該對象所提供的操作來存取或修改。 操作(operation)(也稱方法或服務)規定了對象的行為,表示對象所能提供的服務。 復旦大學計算機科學與工程系復旦大學計算機科學與工程

4、系 軟件工程課程軟件工程課程7/215封裝(encapsulation)是一種信息隱信息隱蔽技術蔽技術,用戶只能看見對象封裝界面上的信息,對象的內部實現對用戶是隱蔽的。封裝的目的是使對象的使用者和生產者分離,使對象的定義和實現分開。 一個對象通常可由對象名、屬性和操作三部分組成。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程8/2152. 類(class) 類是一組具有相同屬性和相同操作的對象的集合。一個類中的每個對象都是這個類的一個實例(instance)。 類是創建對象的模板,從同一個類實例化的每個對象都具有相同的結構和行為。復旦大學計算機科學與工程系復旦大

5、學計算機科學與工程系 軟件工程課程軟件工程課程9/215轎轎 車車型號:字符串型號:字符串顏色:字符串顏色:字符串牌照號:字符串牌照號:字符串張經理的轎車張經理的轎車型號型號= =桑塔納桑塔納顏色顏色= =紅色紅色牌照號牌照號= =滬滬AN2037AN2037類類實例對象實例對象復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程10/2153. 繼承(inheritance) 繼承是類間的基本關系,它是基于層次關系的不同類共享數據和操作的一種機制。父類中定義了其所有子類的公共屬性和操作,在子類中除了定義自己特有的屬性和操作外,可以繼承其父類(或祖先類)的屬性和操作,

6、還可以對父類(或祖先類)中的操作重新定義其實現方法。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程11/215 矩形矩形長長寬寬對角線對角線計算面積計算面積計算對角線計算對角線 多邊形多邊形頂點數頂點數頂點坐標頂點坐標計算面積計算面積旋轉旋轉復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程12/215有時,我們定義一個類,它把一些類組織起來,提供一些公共的行為,但并不需要使用這個類的實例,而僅使用其子類的實例。我們把這種沒有實例的類稱為抽象類(abstract class)。在抽象類中可以定義抽象操作,抽象操作指:只定義這個類的操

7、作接口,不定義它的實現,其實現部分由其子類定義。抽象操作操作名用斜體字表示,也可以在操作特征(signature)后面加上特征字符串abstract。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程13/215交通工具交通工具飛行器飛行器汽汽 車車 船船轎轎 車車貨貨 車車 一般一般- -特殊關系特殊關系復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程14/215 如果一個子類只有唯一一個父類,這個繼承稱為單一繼承。如果一個子類有一個以上的父類,這種繼承稱為多重繼承。 水上交通工具水上交通工具 陸上交通工具陸上交通工具 水陸兩棲交通工

8、具水陸兩棲交通工具多重繼承多重繼承復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程15/2154. 消息(message) 消息傳遞是對象間通信的手段,一個對象通過向另一個對象發送消息來請求其服務。一個消息通常包括接收對象名、調用的操作名和適當的參數(如果有必要的話)。消息只告訴接收對象需要完成什么操作,但并不指示接收者怎樣完成操作。消息完全由接收者解釋,接收者獨立決定采用什么方法完成所需的操作。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程16/2155. 多態性(polymorphism) 多態性是指同一個操作作用于不同的對象

9、同一個操作作用于不同的對象上可以有不同的解釋,并產生不同的執行結上可以有不同的解釋,并產生不同的執行結果果。例如“畫”操作,作用在“矩形”對象上,則在屏幕上畫一個矩形,作用在“圓”對象上,則在屏幕上畫一個圓。也就是說,相同操作的消息發送給不同的對象時,每個對象將根據自己所屬類中定義的這個操作去執行,從而產生不同的結果。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程17/2156. 動態綁定(dynamic binding) 動態綁定是指在程序運行時才將消息所請求的操作與實現該操作的方法連接起來。 傳統的程序設計語言的過程調用與目標代碼的連接(即調用哪個過程)放

10、在程序運行前(即編譯鏈接時)進行(稱為靜態綁定),而動態綁定則是把這種連接推遲到運行時才進行。 動態綁定是一種在運行時確定被執行代碼的技術。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程18/215在一般與特殊關系中,子類是父類的一個特例,所以父類對象可以出現的地方,也允許其子類對象出現。因此在運行過程中,當一個對象發送消息請求服務時,要根據接收對象的具體情況將請求的操作與實現的方法進行連接,即動態綁定。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程19/215if 條件條件 then p := t ; else p := r

11、;area := p.getarea ;getArea abstractpolygonareahexagongetArearectanglegetArealengthwidthtrianglegetAreaVar p : polygon ;Var t : triangle := triangle.new ;Var r : rectangle := rectangle.new ; 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程20/215 面向對象的基本概念面向對象的基本概念 UML概述概述 用況建模用況建模 靜態建模靜態建模 動態建模動態建模 物理體系結構建模物

12、理體系結構建模復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程21/2151.獲取客戶對系統的需求:包括獲取客戶對系統的需求:包括標識場景和用況標識場景和用況,以,以及建造需求模型及建造需求模型2.用基本的需求為指南,來用基本的需求為指南,來確定類和對象確定類和對象(包括屬性(包括屬性和操作)和操作)3.定義定義類的結構和層次類的結構和層次(繼承關系繼承關系)4.建造建造對象對象關系模型關系模型5.建造建造對象對象行為模型行為模型6.利用用況利用用況/場景來場景來復審復審分析模型分析模型復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程

13、22/2151.獲取客戶對系統的需求獲取客戶對系統的需求 需求獲取必須讓客戶與開發者充分地交流,這里介紹一種采用用況來收集客戶需求采用用況來收集客戶需求的技術。分析員首先標識使用該系統的不同的執行者(執行者(actor),這些執行者代表使用該系統的不同的角色執行者代表使用該系統的不同的角色。每個執行者可以敘述他如何使用系統,或者說他需要系統提供什么功能。執行者提出的每一個使用場景(或功能)都是系統的一個用況的實例,一個用況描述了系統的一種用法(或一個功能),所有執行者提出的所有用況構成系統的完整的需求。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程23/215

14、注意,執行者與用戶是不同的兩個概念,一個用戶可以扮演幾個角色(執行者),一個執行者可以是用戶,也可以是其他系統(應用程序或設備)。得到的用況必須進行復審,以使需求完整。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程24/2152.標識類和對象 類和對象來自問題領域可以先標識候選類,然后進行篩選可以先標識候選類,然后進行篩選復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程25/2153. 定義類的結構和層次 類 的 結 構 主 要 有 兩 種 : 一 般 特 殊(generalizationspecialization)結構和整體部分

15、(wholepart)結構。 一般特殊結構是一種分類結構,反映了類間的一般與特殊的關系。一般類與特殊類之間是一種“is a”的關系,如:汽車是一種交通工具。同樣,特殊類還可以分為更特殊的類,這樣可形成類的層次結構。 整體部分結構反映了類間的整體與部分關系。值得注意的是,整體部分關系是對對象而言的,而不是對類的。整體部分關系是一種“has a ”的關系,如“汽車”有“發動機”。同樣,整體部分結構也具有層次結構。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程26/2154. 建造對象關系模型 對象-關系模型描述了系統的靜態結構,它指出了類間的關系(relations

16、hip) 類之間的關系有關聯、依賴、泛化、實現等復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程27/2155. 建立對象行為模型對象-行為模型描述了系統的動態行為,它們指 明 系 統 如 何 響 應 外 部 的 事 件 或 激 勵(stimulus)。建模的步驟如下:評估所有的用況,以完全理解系統中交互的序列評估所有的用況,以完全理解系統中交互的序列標識驅動交互序列的事件,理解這些事件如何和特定標識驅動交互序列的事件,理解這些事件如何和特定的對象相關聯的對象相關聯為每個用況創建事件軌跡(為每個用況創建事件軌跡(event trace)為系統建造狀態機圖為系統建造

17、狀態機圖復審對象復審對象-行為模型,以驗證準確性和一致性行為模型,以驗證準確性和一致性復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程28/215面向對象設計的一般步驟如下:1. 系統設計將子系統分配到處理器將子系統分配到處理器選擇實現數據管理、界面支持和任務選擇實現數據管理、界面支持和任務管理的設計策略管理的設計策略為系統設計合適的控制機制為系統設計合適的控制機制復審并考慮權衡(折衷)復審并考慮權衡(折衷)復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程29/2152. 對象設計 在過程級別(在過程級別(procedural lav

18、el)設計)設計每個操作,即設計每個操作的實現細節每個操作,即設計每個操作的實現細節 定義內部類定義內部類 為類屬性設計內部數據結構為類屬性設計內部數據結構3. 消息設計 使用對象間的協作和對象-關系模型,設計消息模型4. 復審 復審設計模型并在需要時迭代。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程30/2151. 系統設計1) 將分析模型劃分成子系統 在OO系統設計中,我們把分析模型中緊密相關的類、關系等設計元素包裝成子系統。 通常,子系統的所有元素共享某些公共的性質,它們可能都涉及完成相同的功能;它們可能駐留在相同的產品硬件中;或者它們可能管理相同的類

19、和資源。子系統由它們的責任所刻畫,即,一個子系統可以通過它提供的服務來標識。在OOD中,這種服務是完成特定功能的一組操作。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程31/215 子系統的設計準則是:(1) 子系統應具有定義良好的接口,通過接口和系統的其它部分通信;(2) 除了少數的“通信類” 外,子系統中的類應只和該子系統中的其它類協作;(3) 子系統的數量不宜太多;(4) 可以在子系統內部再次劃分,以降低復雜性。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程32/2152) 標識問題本身的并發性,并為子系統分配處理器 通過

20、對對象-行為模型的分析,可發現系統的并發性。如果對象(或子系統)不是同時活動的,則它們不需并發處理,此時這些對象(或子系統)可以在同一個處理器上實現。反之,如果對象(或子系統)必須對一些事件同時異步地動作,則它們被視為并發的,此時,可以將并發的子系統分別分配到不同的處理器,或者分配在同一個處理器,而由操作系統提供并發支持。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程33/2153) 任務管理設計Coad和Yourdon提出如下管理并發任務對象的設計策略:(1) 確定任務的類型;(2) 必要時,定義協調者任務和關聯的對象;(3) 將協調者任務和其它任務集成。 通

21、常可通過了解任務是如何被啟動的來確定任務的通常可通過了解任務是如何被啟動的來確定任務的類型,如事件驅動任務,時鐘驅動任務。每個任務應該類型,如事件驅動任務,時鐘驅動任務。每個任務應該定義其優先級,并識別關鍵任務。當有多個任務時還可定義其優先級,并識別關鍵任務。當有多個任務時還可以考慮增加一個協調者任務,以控制這些任務協同工作以考慮增加一個協調者任務,以控制這些任務協同工作復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程34/2154) 數據管理設計 通常數據管理設計成層次模式,其目的是將數據的物理存儲及操縱與系統的業務邏輯加以分離。 數據管理的設計包括設計系統中各

22、種數據對象的存儲方式(如內部數據結構、文件、數據庫),以及設計相應的服務,即為要儲存的對象增加所需的屬性和操作。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程35/2155) 資源管理設計 OO系統可利用一系列不同的資源(如磁盤驅動器、處理器、通信線路等外部實體或數據庫、對象等抽象資源),很多情況下,子系統同時競爭這些資源,因此要設計一套控制機制和安全機制,以控制對資源的訪問,避免對資源使用的沖突。 6)人機界面設計 對大多數應用系統而言,人機界面本身是一個非常重要的子系統。人機界面主要強調人如何命令系統,以及系統如何向人提交信息。它包括窗口、菜單、報告的設計。

23、 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程36/2157) 子系統間的通信 子系統之間可以通過建立客戶/服務器連接進行通信,也可以通過端對端(peer to peer)連接進行通信。我們必須確定子系統間通信的合約(contract),合約提供了一個子系統和另一個子系統交互的方式。 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程37/2152. 對象設計對象設計是為每個類的屬性和操作作出詳細的設計,并設計連接類與它的協作者之間的消息規約。對象描述對象描述1)協議描述(外部的黑盒描述外部的黑盒描述):描述對象的接口,即定義對象可

24、以接收的消息以及當對象接收到消息后完成的相關操作;2)實現描述(內部描述內部描述):描述傳送給對象的消息所蘊含的每個操作的實現細節,實現細節包括有關對象私有部分的信息,即關于描述對象屬性的數據結構的內部細節和描述操作的過程細節。對象的使用者只需要關心協議描述對象的使用者只需要關心協議描述復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程38/2152)設計算法和數據結構 為對象中的屬性和操作設計數據結構和實現算法。 3. 設計模式(design patterns) 在許多面向對象系統中,存在一些類和通信對象的重復出現的模式。這些模式求解特定的設計問題,使面向對象設計

25、更靈活,并最終可復用。這些模式幫助設計者復用以前成功的設計,設計者可以把這些模式應用到新的設計中。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程39/215一個設計模式通常可用四個信息來描述:1)模式名 設計模式名應具有實際的含義,它能反映模式的適用性和意圖。2)使模式可被應用所必須存在的環境和條件。3)設計模式的特征 模式特征指出一些設計的屬性,調整這些屬性使該模式能適應各種不同的問題。這些屬性表示設計的特征,這些特征能被用于檢索(通過數據庫)以找到合適的模式。4)應用設計模式的結果(consequences) 對于一個設計模式的使用結果表明設計決策的走向。復

26、旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程40/215CategoryClass-&-ObjectStructure1+1+AttributeMethodObject model 由五個由五個層次組成,層次組成,相當于相當于把五張透明膠片把五張透明膠片疊疊在一起,每一層顯在一起,每一層顯示更多的細節示更多的細節。復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程41/215 面向對象的基本概念面向對象的基本概念 面向對象的分析和設計過程面向對象的分析和設計過程 用況建模用況建模 靜態建模靜態建模 動態建模動態建模 物理體系結

27、構建模物理體系結構建模復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程42/215Unified Modeling Language復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程43/215 為何研究UML結束方法大戰 發展歷史 1994年Booch和Rumbaugh在Rational Software Corporation開始了UML的工作,其目標是創建一個“統一的方法”, 1995年OOSE的創始人Jacobson加盟到這項工作中,工作重點轉移到創建一種統一的建模語言UML 1996年6月、10月、1997年1月、11月分別推

28、出了UML0.9、 UML0.91、 UML1.0、 UML1.1 復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程44/2151997年年11月,月,OMG(Object Management Group)批準把批準把UML1.1作為基于面向對象技術作為基于面向對象技術的標準建模語言的標準建模語言之后,之后,UML進行了持續的修訂和改進,先后產進行了持續的修訂和改進,先后產生了生了UML1.2、1.3、1.4、1.5版本版本2004年推出了年推出了UML2.0,UML2.0對對UML1.x作了重大的修改作了重大的修改復旦大學計算機科學與工程系復旦大學計算機科學與

29、工程系 軟件工程課程軟件工程課程45/215 模型中的實體以及實體間相互連接的關系模型中的實體以及實體間相互連接的關系 泛化泛化 對象對象屬性屬性操作操作狀態狀態用例用例 結點結點接口接口包包依賴依賴關聯關聯聚集聚集模型元素模型元素類類 屬性屬性操作操作構件構件注解注解復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程46/215 模型中的實體以及實體間相互連接的關系模型中的實體以及實體間相互連接的關系 部分模型元素部分模型元素注解注解類類屬性屬性操作操作對象:類對象:類屬性屬性操作操作狀態狀態用況用況 結點結點供應接口供應接口包包依賴依賴關聯關聯泛化泛化主動類主動

30、類屬性屬性操作操作請求接口請求接口構件構件實現實現復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程47/215 用況圖用況圖 (use case diagram) 類圖類圖 (class diagram) 對象圖對象圖 (object diagram) 構件圖構件圖 (component diagram) 組合結構圖組合結構圖 (composite structure diagram) 順序圖順序圖 (sequence diagram) 通信圖通信圖 (communication diagram)交互圖交互圖 (interaction diagram)復旦大學計算

31、機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程48/215 狀態機圖狀態機圖 (state machine diagram) 活動圖活動圖 (activity diagram) 部署圖部署圖 (deployment diagram) 制品圖制品圖 (artifact diagram) 包圖包圖 (package diagram) 時間圖時間圖 (timing diagram) 交互概覽圖交互概覽圖 (interaction overview diagram)復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程49/215描述參與者與用況描述參與者與

32、用況(參與者使用系統以實現某一特定目標的參與者使用系統以實現某一特定目標的情形情形)之間的關聯關系,以及用況之間的擴展、繼承等關系之間的關聯關系,以及用況之間的擴展、繼承等關系銀行儲蓄帳戶管理系統銀行儲蓄帳戶管理系統包含包含包含包含包含包含銀行職員銀行職員(用戶代理)(用戶代理)帳戶管理帳戶管理銀行間轉帳銀行間轉帳開戶開戶取款取款銀行內轉帳銀行內轉帳注銷注銷存款存款校驗密碼校驗密碼轉帳轉帳報表生成報表生成其它銀行其它銀行帳戶管理系統帳戶管理系統客戶客戶系統管理員系統管理員銀行職員銀行職員(管理人員)(管理人員)復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程50/

33、215展現一組類、接口以及它們相互之間的關系展現一組類、接口以及它們相互之間的關系2條或條或2條以上的線交于條以上的線交于0個或個或1個點個點lineX1:realY1:realX2:realY2:realpointX: realY: real相交相交2.*0.1復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程51/215展現一組對象以及相互展現一組對象以及相互之間的關系,是依照類之間的關系,是依照類圖所建立的一組事物圖所建立的一組事物(實例實例)的靜態快照的靜態快照L1: lineX1=10Y1=10X2= -10Y2= -10L2: lineL3: lineX

34、1=10Y1= 5X2= -10Y2= -5L4: lineX1=9Y1=5X2=9Y2=3X1= -10Y1=10X2=10Y2= -10P1:pointX = 0Y = 0P2:pointX=9Y=4。5復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程52/215描述構件、接口以及構件間的組裝關系的靜態視圖,復合構描述構件、接口以及構件間的組裝關系的靜態視圖,復合構件本身可以由內部的子構件圖描述件本身可以由內部的子構件圖描述應用收費應用收費管理管理信用卡代理構件的內部結構圖信用卡代理構件的內部結構圖信用卡代理信用卡代理狀況狀況購買購買預購銷售預購銷售團體銷售團

35、體銷售:售票員:售票員:營業員界面:營業員界面:銷售亭界面:銷售亭界面:管理員界面:管理員界面:票:票:信用卡收費:信用卡收費個體銷售個體銷售收費收費顧客訪問顧客訪問營業員訪問營業員訪問復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程53/215UML2.0新增的圖,展示了類或協作的內部結構,新增的圖,展示了類或協作的內部結構,與構件差別不大,經常認為與構件圖等同與構件差別不大,經常認為與構件圖等同復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程54/215描述特定場景下交互各方消息發送和接收的順序描述特定場景下交互各方消息發送和接收

36、的順序呼叫方呼叫方電話線電話線應叫方應叫方復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程55/215另一種交互圖,強調交互上下文:參與交另一種交互圖,強調交互上下文:參與交互的對象或角色的結構組織互的對象或角色的結構組織控制電梯運行的通信圖控制電梯運行的通信圖2:nextjob=GetJob():Elevator:Queue:Ordernewlocalnextjob:Elevator control:ButtonPush()parameterjob1.2:Create( )1.1 *all queues: len:=Length( ) broadcast1.3:

37、Invoke (job)1:GetElevator(floorid)job復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程56/215以狀態機的形式描述目標對象在各種以狀態機的形式描述目標對象在各種事件作用下的行為事件作用下的行為電梯升降的狀態機圖電梯升降的狀態機圖Moving updo/moving to floorMoving downdo/moving to floorIdletimer=0do/increase timerarrivedarrivedgo down (floor)Moving to First floorgo up(floor)timer=

38、time-outarrivedgo up(floor)Onfirst floor復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程57/215描述一系列活動之間的控制流和數據流描述一系列活動之間的控制流和數據流未付款未付款已付款已付款*對每一訂單項對每一訂單項有貨有貨缺貨缺貨取消并取消并退回訂單退回訂單收到訂單收到訂單付款認可付款認可檢查檢查訂單項訂單項制作并發放制作并發放提貨單提貨單更新庫存更新庫存制作并發放制作并發放缺貨單缺貨單制作并發放制作并發放采購單采購單復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程58/215描述系統運行時

39、各相關處理單元結點、各結描述系統運行時各相關處理單元結點、各結點上部署的構件、以及相互間的通信協議點上部署的構件、以及相互間的通信協議DecNetTCP/IPTCP/IPClientA:Compaq Pro PCApplicationServer;Silicon GraphicsO2DatabaseServer:VAXClientB:Compaq Pro PC復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程59/215部署圖的變體:描述系統實現制品的物理部署圖的變體:描述系統實現制品的物理結構,制品包括文件、數據庫等結構,制品包括文件、數據庫等這兩個物理文件這兩個

40、物理文件“承載了承載了”邏輯類邏輯類HelloWorld的實現的實現復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程60/215描述包描述包(一種模型分解單位一種模型分解單位)以及包之間的關系以及包之間的關系售票處售票處計劃計劃廣告廣告進度表進度表客戶記錄客戶記錄票記錄票記錄運作運作售票售票工資單工資單計算計算購買購買復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程61/215UML2.0新增的圖,描述對象間的交互,但關新增的圖,描述對象間的交互,但關注于關于時間的推理,而不僅僅是相對順序注于關于時間的推理,而不僅僅是相對順序添水添水

41、加熱加熱復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程62/215UML2.0新增的圖新增的圖可認為是:活動圖可認為是:活動圖+順序圖的混合體順序圖的混合體使用活動圖的表示使用活動圖的表示法,其中的節點或法,其中的節點或者是一個交互或者者是一個交互或者是一個交互引用是一個交互引用復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程63/215視圖視圖(view)UML圖圖(靜態方面靜態方面)UML圖圖(動態方面動態方面)用況視圖用況視圖 用況圖用況圖交互圖交互圖狀態機圖狀態機圖活動圖活動圖設計視圖設計視圖 類圖類圖對象圖對象圖同上同上交

42、互視圖交互視圖與設計視圖相同,更強調消息交互方面與設計視圖相同,更強調消息交互方面實現視圖實現視圖 構件圖構件圖同上同上部署視圖部署視圖 部署圖部署圖同上同上需需求求設設計計實現實現部署部署復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程64/215 描述可被最終用戶、分析人員和測試描述可被最終用戶、分析人員和測試人員看到的人員看到的系統系統(外部外部)行為行為 不涉及系統的內部結構,但卻是系統不涉及系統的內部結構,但卻是系統體系結構設計的驅動力體系結構設計的驅動力 靜態方面:用況圖靜態方面:用況圖 動態方面:交互圖、狀態機圖、活動動態方面:交互圖、狀態機圖、活動

43、圖圖復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程65/215 描述系統設計方案,主要包括類、接描述系統設計方案,主要包括類、接口以及相互之間的協作關系口以及相互之間的協作關系 靜態方面:類圖、對象圖靜態方面:類圖、對象圖 動態方面:交互圖、狀態機圖、活動動態方面:交互圖、狀態機圖、活動圖圖復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程66/215 展示系統不同部分之間的控制流,包括展示系統不同部分之間的控制流,包括并發和同步機制并發和同步機制 主要針對系統的非功能性方面,例如性主要針對系統的非功能性方面,例如性能、可伸縮性、吞吐

44、量等能、可伸縮性、吞吐量等 靜態方面:類圖、對象圖靜態方面:類圖、對象圖 動態方面:交互圖、狀態動態方面:交互圖、狀態機機圖、活動圖圖、活動圖 與設計視圖的區別:突出控制系統的主與設計視圖的區別:突出控制系統的主動類以及各部分間消息的流動動類以及各部分間消息的流動復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程67/215 描述組成最終產品發布的相關制品及其描述組成最終產品發布的相關制品及其關系,實現單元體現為可裝配、打包并關系,實現單元體現為可裝配、打包并發布的文件發布的文件 體現了邏輯單元體現了邏輯單元(類和構件類和構件)到物理制品到物理制品(物理構件、文件等

45、物理構件、文件等)的映射的映射 靜態方面:構件圖靜態方面:構件圖 動態方面:交互圖、狀態動態方面:交互圖、狀態機機圖、活動圖圖、活動圖復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程68/215 描述最終產品物理部署的拓撲結構描述最終產品物理部署的拓撲結構 包括組成整個系統的各種分布式硬件設包括組成整個系統的各種分布式硬件設備,以及各個軟件模塊在這些設備上的備,以及各個軟件模塊在這些設備上的部署和運行關系部署和運行關系 靜態方面:部署圖靜態方面:部署圖 動態方面:交互圖、狀態動態方面:交互圖、狀態機機圖、活動圖圖、活動圖復旦大學計算機科學與工程系復旦大學計算機科學

46、與工程系 軟件工程課程軟件工程課程69/215 面向對象的基本概念面向對象的基本概念 面向對象的分析和設計過程面向對象的分析和設計過程 UML概述概述 靜態建模靜態建模 動態建模動態建模 物理體系結構建模物理體系結構建模復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程70/215 用況:文本形式的情節描述,用以說用況:文本形式的情節描述,用以說明某參與者使用系統以實現某一特定明某參與者使用系統以實現某一特定目標的情形目標的情形 用況建模用于描述一個系統應該做什用況建模用于描述一個系統應該做什么,用么,用用況圖用況圖來描述來描述(可能有多幅可能有多幅) 用況圖給出了

47、用戶所感受到的系統行用況圖給出了用戶所感受到的系統行為,但不描述系統如何實現該功能為,但不描述系統如何實現該功能復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程71/215 用框圖展示各類外部執行者用框圖展示各類外部執行者(actor)與系與系統所提供的用況之間的參與關系,包括:統所提供的用況之間的參與關系,包括: 系統邊界、用況 執行者(參與者):可能使用這些用況的人或外部系統人或外部系統,參與者與用況連接表示參與者使用了該用況 模型元素間關系:關聯、擴展、包含、泛化等 每個用況的細節通常用文字描述,也可以每個用況的細節通常用文字描述,也可以用活動圖來描述用活動

48、圖來描述復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程72/215關系關系說明說明記號記號關聯關聯參與者與所參與的一個用參與者與所參與的一個用況之間的通信路徑況之間的通信路徑擴展擴展擴展的用況到基本用況的擴展的用況到基本用況的一種關系:擴展用況可以一種關系:擴展用況可以訪問基本用況的所有屬性,訪問基本用況的所有屬性,并在基本用況基礎上增加并在基本用況基礎上增加新的行為新的行為extend復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程73/215關系關系說明說明記號記號包含包含被包含用況是基本用況的一部被包含用況是基本用況的一部分,

49、基本用況能看到被包含用分,基本用況能看到被包含用況并依賴于它的的執行結果,況并依賴于它的的執行結果,但二者不能相互訪問其它屬性但二者不能相互訪問其它屬性泛化泛化一個一般用況與一個更特殊的一個一般用況與一個更特殊的用況之間的關系,特殊用況可用況之間的關系,特殊用況可繼承一般用況的特征繼承一般用況的特征include復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程74/215客戶客戶售票員售票員送貨員送貨員主管主管建立信建立信用用供應訂供應訂單單訂單支訂單支付付提供提供客戶數客戶數據據產生訂產生訂單單信用卡信用卡支付支付現金支現金支付付設置訂設置訂單單請求請求目錄目錄

50、電話訂購電話訂購includeinclude includeextend核對身核對身份份關聯關聯擴展擴展包含包含泛化泛化復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程75/215銀行儲蓄帳戶管理系統銀行儲蓄帳戶管理系統includeincludeinclude銀行職員銀行職員(用戶代理)(用戶代理)帳戶管理帳戶管理銀行間轉帳銀行間轉帳開戶開戶取款取款銀行內轉帳銀行內轉帳注銷注銷存款存款校驗密校驗密碼碼轉帳轉帳報表生成報表生成其它銀行其它銀行帳戶管理系統帳戶管理系統客戶客戶系統管理員系統管理員銀行職員銀行職員(管理人員)(管理人員)包含包含泛化泛化復旦大學計算機科

51、學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程76/215復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程77/215 客戶:用況模型指明了系統的功能,描述客戶:用況模型指明了系統的功能,描述了系統能如何使用了系統能如何使用 開發者:用況模型幫助他們理解系統要做開發者:用況模型幫助他們理解系統要做什么,同時為以后的其它模型建模、結構什么,同時為以后的其它模型建模、結構設計、實現等提供依據設計、實現等提供依據 集成測試和系統測試人員:根據用況來測集成測試和系統測試人員:根據用況來測試系統,以驗證系統是否完成了用況指定試系統,以驗證系統是否完成了用況指

52、定的功能的功能復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程78/215 定義系統定義系統(總體范圍總體范圍) 確定參與者確定參與者 確定用況確定用況 描述用況描述用況 定義用況間的關系定義用況間的關系 確認模型確認模型復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程79/215 根據項目的總體目標根據項目的總體目標/任務以及基本任務以及基本的開發決策決定的開發決策決定做什么不做什么做什么不做什么 總體目標/任務:實現出版社書籍的網上銷售 開發決策:網上支付采用銀聯支付系統、書籍的基本信息來自于出版社已有的編輯和發行管理系統(遺產系

53、統) 邊界外的人或系統邊界外的人或系統(第三方系統、遺第三方系統、遺留系統等留系統等)成為候選的參與者成為候選的參與者復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程80/215 參與者是指與系統交互的人、組織或其參與者是指與系統交互的人、組織或其它系統它系統 參與者代表一種角色,而不是具體的人參與者代表一種角色,而不是具體的人 可分成主參與者和輔助參與者可分成主參與者和輔助參與者 主參與者是用況的直接執行者,例如保險系統中業務員處理保險的注冊和管理 輔助參與者對于用況的執行起輔助作用,例如保險系統中管理員負責分配業務員權限復旦大學計算機科學與工程系復旦大學計算機

54、科學與工程系 軟件工程課程軟件工程課程81/215 誰使用系統的主要功能誰使用系統的主要功能(主執行者主執行者) 誰需要從系統中得到對他們日常工作的支持誰需要從系統中得到對他們日常工作的支持 誰需要維護、管理和維持系統的日常運行誰需要維護、管理和維持系統的日常運行 系統需要控制哪些硬件設備系統需要控制哪些硬件設備 系統需要與哪些其它系統交互系統需要與哪些其它系統交互 哪些人或哪些系統對系統產生的結果哪些人或哪些系統對系統產生的結果(值值)感感興趣興趣復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程82/215 用況的特征用況的特征 用況總是由參與者啟動的 執行者必

55、須直接或間接地指示系統去執行用況 用況向參與者提供服務或返回結果,這些結果必須是可識別的 用況是完整的,一個用況必須是一個完整的描述(有開始、有結果)復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程83/215 文本形式的情節描述,用以說文本形式的情節描述,用以說明某參與者使用系統以實現某明某參與者使用系統以實現某一特定目標的情形一特定目標的情形 例:顧客攜帶所購商品到達收銀臺,收銀員使用POS系統記錄每件商品,系統連續顯示累計金額并逐行顯示細目,顧客輸入支付信息,系統對支付信息進行驗證和記錄,成功后更新庫存信息,顧客從系統得到購物小票然后離開復旦大學計算機科學與

56、工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程84/215 使用系統的一個特定情節或用況的一條執行路徑,使用系統的一個特定情節或用況的一條執行路徑,即用況實例即用況實例(Use Case Instance) 主成功場景:顧客攜帶商品到收銀臺,順利地完成商品掃描及信用卡付款等全過程 替代場景1:商品掃描失敗,提示輸入商品唯一碼 替代場景2:信用卡劃賬通訊失敗,提示客戶使用現金結帳 替代場景n:用戶信用卡支付成功后要求退貨 因此用況就是一系列可能的場景集合因此用況就是一系列可能的場景集合復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程85/215 執行者需

57、要系統提供哪些功能?執行者需要系執行者需要系統提供哪些功能?執行者需要系統做什么統做什么? 執行者是否需要讀、創建、刪除、修改或儲存執行者是否需要讀、創建、刪除、修改或儲存系統中的某類信息系統中的某類信息? 執行者是否要被系統中的事件提醒,或者執行執行者是否要被系統中的事件提醒,或者執行者是否要提醒系統中某些事情者是否要提醒系統中某些事情?從功能觀點看,從功能觀點看,這些事件表示什么這些事件表示什么? 執行者的日常工作是否因為系統的新功能執行者的日常工作是否因為系統的新功能(尤其尤其是目前尚未自動化的功能是目前尚未自動化的功能)而被簡化或提高效率而被簡化或提高效率復旦大學計算機科學與工程系復旦

58、大學計算機科學與工程系 軟件工程課程軟件工程課程86/215 使用文本描述使用文本描述 用況的目的 用況是如何啟動的:哪個參與者在什么情況下啟動(前提) 參與者和用況之間的消息流(步驟) 主消息流和其它消息流是什么主消息流和其它消息流是什么 根據條件或異常情況等選擇不同的流程分支根據條件或異常情況等選擇不同的流程分支 系統中哪些實體被使用或修改(結果),如何確定用況執行結束 使用活動圖描述使用活動圖描述復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程87/215 執行者的簡要描述,如執行者的簡要描述,如 客戶:向公司訂購商品的人 客戶代表:公司處理客戶請求的雇員

59、庫存系統:記錄公司庫存的軟件 用況的簡要描述,如用況的簡要描述,如 訂購貨物:客戶創建一個新的請求商品的訂單,并為那些商品付費 取消訂單:客戶取消一個已經存在的訂單復旦大學計算機科學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程88/215 用況名稱、參與者用況名稱、參與者 用況的前置條件和后置條件:用況開用況的前置條件和后置條件:用況開始和結束的條件始和結束的條件 事件流:一系列陳述句,從參與者的事件流:一系列陳述句,從參與者的角度出發的一系列步驟角度出發的一系列步驟 一般有多個事件流:主要流程、其它流程 特殊需求:相關的非功能性需求特殊需求:相關的非功能性需求復旦大學計算機科

60、學與工程系復旦大學計算機科學與工程系 軟件工程課程軟件工程課程89/215用例的組成部分用例的組成部分注注 釋釋用例名稱用例名稱以動詞開始以動詞開始范圍范圍要設計的系統要設計的系統級別級別“用戶目標用戶目標”(基本流程基本流程)或或“子功能子功能”主要參與者主要參與者調用系統以提供服務的參與者調用系統以提供服務的參與者涉眾及其關注點涉眾及其關注點關注該用例的人,以及他們各自的需要關注該用例的人,以及他們各自的需要前置條件前置條件用例啟動前必須成立的條件用例啟動前必須成立的條件后置條件后置條件用例結束后必須成立的條件用例結束后必須成立的條件主成功場景主成功場景典型的、理想的成功場景典型的、理想的成功場景

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論