




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第第5章章 面向對象開發(fā)技術面向對象開發(fā)技術 5.2 面向對象方法概述面向對象方法概述 2 5.3 面向對象分析面向對象分析 3 5.4 面向對象設計面向對象設計 4 5.1 面向對象的相關概念面向對象的相關概念1 5.5 面向對象分析和設計實例面向對象分析和設計實例 5 5.6 實驗五實驗五 Rational Rose應用應用 6 5.7 本章小結本章小結 75.2 面向對象方法概述面向對象方法概述5.2 面向對象方法概述面向對象方法概述案例案例5-1面向對象(Object Oriented,OO)是當前計算機界關心的重點,是90年代軟件開發(fā)方法的主流。如數(shù)據(jù)庫系統(tǒng)、交互式界面、應用結構、應
2、用平臺、分數(shù)據(jù)庫系統(tǒng)、交互式界面、應用結構、應用平臺、分布式系統(tǒng)、網(wǎng)絡管理結構、布式系統(tǒng)、網(wǎng)絡管理結構、CADCAD技術、人工智能技術、人工智能等領域。 從世界觀的角度可以認為:從世界觀的角度可以認為:1、面向對象的基本哲、面向對象的基本哲學是認為世界是由各種各樣具有自己的運動規(guī)律和內(nèi)學是認為世界是由各種各樣具有自己的運動規(guī)律和內(nèi)部狀態(tài)的部狀態(tài)的對象對象所組成的;所組成的;2、不同對象之間的、不同對象之間的相互作用相互作用和通訊和通訊構成了完整的現(xiàn)實世界。構成了完整的現(xiàn)實世界。 從方法學的角度可以認為:從方法學的角度可以認為:1、面向對象的方法是、面向對象的方法是面向對象的世界觀在開發(fā)方法中的
3、直接運用;面向對象的世界觀在開發(fā)方法中的直接運用;2、它強、它強調(diào)系統(tǒng)的結構應該直接與現(xiàn)實世界的結構相對應,應調(diào)系統(tǒng)的結構應該直接與現(xiàn)實世界的結構相對應,應該圍繞現(xiàn)實世界中的對象來構造系統(tǒng),而不是圍繞功該圍繞現(xiàn)實世界中的對象來構造系統(tǒng),而不是圍繞功能來構造系統(tǒng)。能來構造系統(tǒng)。5.1 面向對象的相關概念面向對象的相關概念 5.1.1 對象與類對象與類 1)對象)對象 對象對象是描述客觀事物的是描述客觀事物的實體實體,是構成系統(tǒng)的,是構成系統(tǒng)的基本單位基本單位。 對象對象具有具有三要素三要素:對象標識、屬性和服務對象標識、屬性和服務。對象標識對象標識為為對象的名字,對象的名字,用于用于唯一地識別系
4、統(tǒng)內(nèi)部對象,在定義或使唯一地識別系統(tǒng)內(nèi)部對象,在定義或使用對象時指定。用對象時指定。 屬性屬性也稱也稱狀態(tài)狀態(tài)或或數(shù)據(jù)數(shù)據(jù)用于用于描述描述對象對象的的靜態(tài)特征靜態(tài)特征。在某些。在某些OOP(Object Oriented Programming面向對象編程面向對象編程)語言中,)語言中,屬屬性性通常被稱為通常被稱為成員變量成員變量或簡稱或簡稱變量變量。服務服務也稱也稱操作操作、行為行為或或方法方法, 用于用于描述對象的描述對象的動態(tài)特征動態(tài)特征,在某些,在某些OOP語言中,語言中,服服務務通常被稱為通常被稱為成員函數(shù)成員函數(shù)或簡稱或簡稱函數(shù)函數(shù)。5.1 面向對象的相關概念面向對象的相關概念 2
5、)封裝)封裝 封裝封裝(Encapsulation)有)有兩層含義兩層含義:一是:一是是是其全部屬性和全部服務緊密結合而形成的一個不可分割其全部屬性和全部服務緊密結合而形成的一個不可分割的的;二是;二是如同一個密封的如同一個密封的“黑盒子黑盒子”,表示對,表示對象狀態(tài)的數(shù)據(jù)和實現(xiàn)操作的代碼都被封裝在其中。象狀態(tài)的數(shù)據(jù)和實現(xiàn)操作的代碼都被封裝在其中。 封裝封裝是對象的一個重要特性。在面向對象的系統(tǒng)中,是對象的一個重要特性。在面向對象的系統(tǒng)中,是一個封裝數(shù)據(jù)屬性和操作行為的是一個封裝數(shù)據(jù)屬性和操作行為的。5.1 面向對象的相關概念面向對象的相關概念 3)類和實例)類和實例 類類(Class)也稱)
6、也稱對象類對象類(Object Class)是對)是對具有具有相同屬性和服務的相同屬性和服務的一組對象一組對象的的抽象定義抽象定義。類與對象是抽。類與對象是抽象描述與具體實例的關系,一個象描述與具體實例的關系,一個具體的對象具體的對象被稱為被稱為類的類的一個實例一個實例(Instance)。)。案例案例5-2 “張三轎車張三轎車”等具體對象可得到等具體對象可得到 “轎車轎車”類類, 而這些具體的對象就是該類的實例。如圖而這些具體的對象就是該類的實例。如圖5-1所示所示。圖圖5-1 對象、類與實例對象、類與實例 5.1 面向對象的相關概念面向對象的相關概念 5.1.2 繼承及多態(tài)性繼承及多態(tài)性
7、1) 繼承繼承 繼承繼承(Inheritance)是父類和子類之間)是父類和子類之間共享共享數(shù)據(jù)結數(shù)據(jù)結構和方法構和方法的一種的一種機制機制,是以現(xiàn)存的定義的內(nèi)容為基礎,是以現(xiàn)存的定義的內(nèi)容為基礎,建立新定義內(nèi)容的技術,是類之間的一種建立新定義內(nèi)容的技術,是類之間的一種關系關系。繼承有。繼承有:單重繼承、多重繼承。:單重繼承、多重繼承。繼承性繼承性通常表示父類與子通常表示父類與子類的關系,如圖類的關系,如圖5-2所示。所示。圖圖5-2繼承性繼承性 圖圖5-3繼承性描述繼承性描述5.1 面向對象的相關概念面向對象的相關概念 圖圖5-3 是繼承性描述的一種是繼承性描述的一種圖示方法圖示方法。通過繼
8、承關。通過繼承關系還可系還可構成層次關系構成層次關系,單重繼承單重繼承構成的類之間的層次構成的類之間的層次關系為一關系為一樹狀樹狀,若將所有無子類的類,都看成還有一,若將所有無子類的類,都看成還有一個公共子類個公共子類, 多重繼承多重繼承構成的類之間的關系為一個構成的類之間的關系為一個網(wǎng)格網(wǎng)格,而且繼承關系可傳遞。而且繼承關系可傳遞。 建立繼承結構建立繼承結構的的有有3個:一是易編程、易理解個:一是易編程、易理解且代碼短且代碼短, 結構清晰;二是易修改,共同部分只在一處結構清晰;二是易修改,共同部分只在一處修改即可;三是易增加新類,只須描述不同部分。修改即可;三是易增加新類,只須描述不同部分。
9、5.1 面向對象的相關概念面向對象的相關概念 2) 多態(tài)性和動態(tài)綁定多態(tài)性和動態(tài)綁定 多態(tài)性多態(tài)性(Polymorphism)是指多種類型的)是指多種類型的對象對象在在相同的相同的操作或函數(shù)、過程操作或函數(shù)、過程中取得中取得不同結果的特性不同結果的特性。多態(tài)。多態(tài)有多種不同形式,其中參數(shù)多態(tài)和包含多態(tài)有多種不同形式,其中參數(shù)多態(tài)和包含多態(tài)統(tǒng)稱為統(tǒng)稱為通用通用多態(tài)多態(tài),過載多態(tài)和強制多態(tài)則,過載多態(tài)和強制多態(tài)則統(tǒng)稱為統(tǒng)稱為特定多態(tài)特定多態(tài)。 動態(tài)綁定動態(tài)綁定(Dynamic-binding)是多態(tài)性的基石之)是多態(tài)性的基石之一。將函數(shù)一。將函數(shù)調(diào)用調(diào)用與目標代碼塊的與目標代碼塊的連接連接延遲到運
10、行時進行延遲到運行時進行,只有發(fā)送消息時才與接收消息實例的一個操作只有發(fā)送消息時才與接收消息實例的一個操作綁定綁定。5.1 面向對象的相關概念面向對象的相關概念 5.1.3 消息與方法消息與方法 1) 消息與消息通信消息與消息通信 消息消息(Message)是向)是向對象對象發(fā)出的發(fā)出的服務請求服務請求,包含包含信息信息為:提供服務的對象標識、消息名、輸入信息和回為:提供服務的對象標識、消息名、輸入信息和回答信息。答信息。 消息通信消息通信(Communication with messages)與對)與對象的封裝原則密切相關。象的封裝原則密切相關。 2)方法)方法 方法方法(Method)
11、指在指在對象內(nèi)對象內(nèi)的的操作操作。數(shù)據(jù)描述對象的。數(shù)據(jù)描述對象的狀態(tài),操作可操縱私有數(shù)據(jù),改變對象的狀態(tài)。當其他狀態(tài),操作可操縱私有數(shù)據(jù),改變對象的狀態(tài)。當其他對象向該對象發(fā)出消息并響應時,其操作才得以實現(xiàn)。對象向該對象發(fā)出消息并響應時,其操作才得以實現(xiàn)。方法是類中操作的方法是類中操作的實現(xiàn)過程實現(xiàn)過程,一個一個方法方法包括包括方法名、參數(shù)方法名、參數(shù)及方法體。及方法體。5.1 面向對象的相關概念面向對象的相關概念 課堂討論:課堂討論: (1) 什么是對象及其三要素?什么是類及實例? (2) 怎樣理解繼承及多態(tài)性?舉例說明。 (3) 舉例說明消息與方法及其之間的關系。5.2 面向對象方法概述面
12、向對象方法概述5.2 面向對象方法概述面向對象方法概述5.2 面向對象方法概述面向對象方法概述5.2 面向對象方法概述面向對象方法概述5.2 面向對象方法概述面向對象方法概述-如例圖。-定義系統(tǒng)基本結構-系統(tǒng)邏輯構造。5.2 面向對象方法概述面向對象方法概述 OOSE 的的開發(fā)活動開發(fā)活動主要主要分為分為分析、構造和測試分析、構造和測試三個過程三個過程,如圖如圖5-4所示。所示。 圖圖5-4 OOSE 的開發(fā)活動的開發(fā)活動5.2 面向對象方法概述面向對象方法概述 用例用例(Use case)是貫穿是貫穿OOSE 活動的活動的核心核心,描述了系,描述了系統(tǒng)的需求及功能。用例實際上是從使用者的角度
13、統(tǒng)的需求及功能。用例實際上是從使用者的角度確定系統(tǒng)確定系統(tǒng)的功能的功能,描述系統(tǒng)用戶(也稱使用者)對于系統(tǒng)的使用情,描述系統(tǒng)用戶(也稱使用者)對于系統(tǒng)的使用情況。圖況。圖5-5所示,使用者以所示,使用者以人形人形表示表示,橢圓橢圓表示用例,大的表示用例,大的矩形框矩形框表示系統(tǒng)的邊界。用連接使用者和用例的表示系統(tǒng)的邊界。用連接使用者和用例的箭頭線箭頭線,表示使用者驅動事件的完成。表示使用者驅動事件的完成。 用例之間通常有用例之間通常有“使用使用”和和“擴展擴展”兩種關系兩種關系。圖圖5-5 用例圖用例圖5.2 面向對象方法概述面向對象方法概述*2常見的面向對象開發(fā)方法常見的面向對象開發(fā)方法 開
14、發(fā)方法有開發(fā)方法有Coad方法、方法、Booch方法、方法、OMT方法和方法和UML語言等。語言等。(1)Booch方法方法-最先最先OOM 。(2)Coad方法方法-較早的較早的OOM。(3)OMT方法方法-對象建模技術對象建模技術(美國通用電氣公司提出)。(4)UML語言。語言。課堂討論:課堂討論: (1) 面向對象包括哪些主要概念?它們的具體含義是什么? (2) 面向對象具有哪些特征? (3) 面向對象的軟件開發(fā)過程是怎樣的?5.3 面向對象分析面向對象分析 5.3 面向對象分析面向對象分析 面向對象分析(面向對象分析(OOA)的的目標目標是是獲取獲取用戶需求用戶需求并并建立建立一系列問
15、題域的精確模型一系列問題域的精確模型,描述描述滿足用戶需要滿足用戶需要的的軟件。軟件。OOA應表示出系統(tǒng)的數(shù)據(jù)、功能應表示出系統(tǒng)的數(shù)據(jù)、功能和行為和行為3方面的基本特征方面的基本特征。先要進行調(diào)研分析,在理解。先要進行調(diào)研分析,在理解需求的基礎上建立并驗證模型。需求的基礎上建立并驗證模型。5.3 面向對象分析面向對象分析 5.3.1 面向對象分析的任務面向對象分析的任務 1面向對象分析的原則面向對象分析的原則 OOA階段階段是是獲取獲取和和描述描述用戶需求并用戶需求并建立建立問題域對問題域對象模型的過程。分析系統(tǒng)中所含的所有對象及其相互象模型的過程。分析系統(tǒng)中所含的所有對象及其相互間的關系,為
16、間的關系,為建立分析模型建立分析模型,應遵照,應遵照5個基本原則個基本原則:建立信息域模型;建立信息域模型;描述功能;描述功能;表達行為;表達行為;劃劃分功能、數(shù)據(jù)、行為模型,揭示更多的細節(jié);分功能、數(shù)據(jù)、行為模型,揭示更多的細節(jié);以早以早期模型描述問題實質(zhì),以后期模型給出實現(xiàn)細節(jié),這期模型描述問題實質(zhì),以后期模型給出實現(xiàn)細節(jié),這是是OOA的基礎。的基礎。5.3 面向對象分析面向對象分析 2面向對象分析的任務面向對象分析的任務 OOA的的關鍵關鍵是是定義定義所有與待解決問題相關的所有與待解決問題相關的類類,包括包括類的操作和屬性、類與類之間的關系,以及它們表現(xiàn)出類的操作和屬性、類與類之間的關系
17、,以及它們表現(xiàn)出的行為,主要的行為,主要完成完成6項任務項任務:(1 1)全面深入調(diào)研分析,掌握用戶業(yè)務需求細節(jié)及流程;)全面深入調(diào)研分析,掌握用戶業(yè)務需求細節(jié)及流程;(2 2)準確標識類,包括定義其屬性和操作;)準確標識類,包括定義其屬性和操作;(3 3)認真分析定義類的層次關系;)認真分析定義類的層次關系;(4 4)明確表達對象與對象之間的關系)明確表達對象與對象之間的關系( (對象的連接對象的連接) );(5 5)具體確定模型化對象的行為。)具體確定模型化對象的行為。(6 6)建立系統(tǒng)模型。)建立系統(tǒng)模型。5.3 面向對象分析面向對象分析 5.3.2 面向對象分析的過程面向對象分析的過程
18、 OOA是利用面向對象的概念和方法為軟件需求是利用面向對象的概念和方法為軟件需求建造建造模型模型,使用戶需求逐步精確化、一致化、完全化的分析,使用戶需求逐步精確化、一致化、完全化的分析過程,也是提取需求的過程,過程,也是提取需求的過程,主要包括主要包括理解、表達和驗理解、表達和驗證證3個過程個過程。 OOA中中建造的模型建造的模型主要有對象模型、動態(tài)模型和功主要有對象模型、動態(tài)模型和功能模型能模型3種種。對象模型對象模型常由常由五個層次五個層次組成組成:類與對象層、:類與對象層、屬性層、服務層、結構層和主題層,其層次屬性層、服務層、結構層和主題層,其層次對應著對應著OOA過程中過程中建立建立對
19、象模型的對象模型的五項主要活動五項主要活動:發(fā)現(xiàn)對象、定義:發(fā)現(xiàn)對象、定義 類、定義屬性、定義服務、劃分結構。類、定義屬性、定義服務、劃分結構。 OOA過程如圖過程如圖5-6所示。所示。 5.3 面向對象分析面向對象分析 圖圖5-6 面向對象分析過程面向對象分析過程5.3 面向對象分析面向對象分析 5.3.3 對象建模技術對象建模技術 對象建模技術對象建模技術(Object Modeling Technique,OMT)用于用于OOA、系統(tǒng)設計和對象級設計。可將分析時獲取的需求信息構、系統(tǒng)設計和對象級設計??蓪⒎治鰰r獲取的需求信息構建在對象模型、功能模型和動態(tài)模型建在對象模型、功能模型和動態(tài)模
20、型三類模型中三類模型中。 1. 建立對象模型建立對象模型 對象模型對象模型是是OOA最關鍵最關鍵的模型之一的模型之一,主要描述主要描述系統(tǒng)中對象的系統(tǒng)中對象的靜態(tài)結構、對象之間的關系、對象的屬性和操作。利用包含對象靜態(tài)結構、對象之間的關系、對象的屬性和操作。利用包含對象和類的和類的關系圖關系圖表示,通過表示靜態(tài)的、結構上的、系統(tǒng)的表示,通過表示靜態(tài)的、結構上的、系統(tǒng)的“數(shù)據(jù)數(shù)據(jù)特征,為動態(tài)模型和功能模型提供特征,為動態(tài)模型和功能模型提供基本框架基本框架。 建立對象模型時,首先確定對象和類,然后分析對象的類及建立對象模型時,首先確定對象和類,然后分析對象的類及其相互之間關系。其相互之間關系。對象
21、類與對象間的關系對象類與對象間的關系可分為可分為3種種:一般一般特殊特殊(繼承或歸納)關系、聚集(組合)關系和關聯(lián)關系。(繼承或歸納)關系、聚集(組合)關系和關聯(lián)關系。對象模型對象模型用類符號、類實例符號、類的繼承關系、聚集關系和關聯(lián)等用類符號、類實例符號、類的繼承關系、聚集關系和關聯(lián)等表示表示。 對象模型對象模型描述系統(tǒng)的描述系統(tǒng)的靜態(tài)結構靜態(tài)結構包括:類和對象,它們的屬性包括:類和對象,它們的屬性和操作,以及它們之間的關系。和操作,以及它們之間的關系。構造對象模型構造對象模型的的目的目的是找出與應是找出與應用程序密切相關的概念。用程序密切相關的概念。5.3 面向對象分析面向對象分析 【案例
22、案例5-3】對象模型對象模型以以包含的對象及其包含的對象及其關系圖關系圖表示表示。在對象模型中在對象模型中用于用于表示表示“類、類的關聯(lián)關系和鏈屬性類、類的關聯(lián)關系和鏈屬性”的的圖形符號圖形符號,分別如圖,分別如圖5-7所示中所示中(a)、(b)和和(c)。其中。其中,類的類的關聯(lián)關系關聯(lián)關系反映對象之間相互依賴及作用關系,反映對象之間相互依賴及作用關系,鏈鏈屬性屬性是關聯(lián)中鏈(實例對象間的物理或概念上的連接)是關聯(lián)中鏈(實例對象間的物理或概念上的連接)的性質(zhì)。的性質(zhì)。(a) (b) (c) 圖圖5-7 表示類、關聯(lián)關系和鏈屬性表示類、關聯(lián)關系和鏈屬性5.3 面向對象分析面向對象分析 使用使用
23、OMT建立對象模型建立對象模型的的主要步驟主要步驟為:為: (1) 確定對象類。通過分析確定所有的對象類;確定對象類。通過分析確定所有的對象類; (2) 定義數(shù)據(jù)詞典。主要用于描述類、屬性和關系;定義數(shù)據(jù)詞典。主要用于描述類、屬性和關系; (3) 組織并簡化對象類。通過繼承進行組織和簡化對象類;組織并簡化對象類。通過繼承進行組織和簡化對象類; (4) 測試訪問路徑。測試所有的訪問路徑;測試訪問路徑。測試所有的訪問路徑; (5) 對象分組建立模塊。對象分組建立模塊。 2. 建立動態(tài)模型建立動態(tài)模型 動態(tài)模型動態(tài)模型主要主要用于用于系統(tǒng)的控制邏輯,注重對象及其關系的改系統(tǒng)的控制邏輯,注重對象及其關
24、系的改變,描述涉及時序和改變的狀態(tài)。動態(tài)模型變,描述涉及時序和改變的狀態(tài)。動態(tài)模型包括包括狀態(tài)圖和事件跟狀態(tài)圖和事件跟蹤圖。蹤圖。建立動態(tài)模型建立動態(tài)模型的的主要步驟主要步驟為:為: (1) 準備場景。為典型的交互序列準備好場景;準備場景。為典型的交互序列準備好場景; (2) 建立事件跟蹤圖。確定對象之間的事件,為每個場景建立建立事件跟蹤圖。確定對象之間的事件,為每個場景建立事件跟蹤圖;事件跟蹤圖; (3) 繪出事件流程圖。為每個系統(tǒng)準備一個事件流程圖;繪出事件流程圖。為每個系統(tǒng)準備一個事件流程圖; (4) 建立狀態(tài)圖。為具有重要動態(tài)行為的類建立狀態(tài)圖;建立狀態(tài)圖。為具有重要動態(tài)行為的類建立狀
25、態(tài)圖; (5) 檢驗。檢驗不同狀態(tài)圖中共享事件的一致性和完整性。檢驗。檢驗不同狀態(tài)圖中共享事件的一致性和完整性。對象建模技術5.3 面向對象分析面向對象分析 【例例5-4】賓館信息系統(tǒng)賓館信息系統(tǒng)中旅客和床位的狀態(tài)轉換圖。中旅客和床位的狀態(tài)轉換圖。如圖如圖5-8和和5-9所示。所示。 圖5-8 旅客的狀態(tài)轉換圖圖圖5-9 床位在系統(tǒng)中狀態(tài)轉換圖床位在系統(tǒng)中狀態(tài)轉換圖 空空已住已住5.3 面向對象分析面向對象分析 3. 建立功能模型建立功能模型 功能模型功能模型用于用于系統(tǒng)內(nèi)部系統(tǒng)內(nèi)部數(shù)據(jù)數(shù)據(jù)的傳送和處理。功能模型的傳送和處理。功能模型表明,經(jīng)過處理從輸入數(shù)據(jù)能得到具體的輸出數(shù)據(jù),但忽表明,經(jīng)過
26、處理從輸入數(shù)據(jù)能得到具體的輸出數(shù)據(jù),但忽略參加處理的數(shù)據(jù)以何時序執(zhí)行。略參加處理的數(shù)據(jù)以何時序執(zhí)行。功能模型功能模型由多個數(shù)據(jù)流由多個數(shù)據(jù)流圖圖組成組成,指明從外部輸入,通過操作和內(nèi)部存儲,直到外,指明從外部輸入,通過操作和內(nèi)部存儲,直到外部輸出的整個數(shù)據(jù)流情況。功能模型部輸出的整個數(shù)據(jù)流情況。功能模型還包括還包括了對象模型內(nèi)了對象模型內(nèi)部數(shù)據(jù)間的限制。部數(shù)據(jù)間的限制。 功能模型中的功能模型中的數(shù)據(jù)流圖數(shù)據(jù)流圖可形成一個層次結構,可形成一個層次結構,建立功建立功能模型能模型的的主要步驟主要步驟為:為: (1) 確定輸出和輸出值;確定輸出和輸出值; (2) 用數(shù)據(jù)流圖表示功能的依賴性。用數(shù)據(jù)流圖
27、表示功能的依賴性。 (3) 具體描述每個功能;具體描述每個功能; (4) 確定具體限制。確定具體限制。 (5) 對功能確定優(yōu)化的準則。對功能確定優(yōu)化的準則。5.3 面向對象分析面向對象分析 【案例案例5-5】賓館客房信息系統(tǒng)賓館客房信息系統(tǒng)數(shù)據(jù)流圖數(shù)據(jù)流圖,如圖如圖5-10所示。所示。 圖圖5-10 旅館客房管理系統(tǒng)數(shù)據(jù)流圖旅館客房管理系統(tǒng)數(shù)據(jù)流圖 5.3 面向對象分析面向對象分析*5.3.4 UML概述概述 UML(Unified Modeling Language)是一種定義)是一種定義良好、易于表達、功能強大且普遍適用的(良好、易于表達、功能強大且普遍適用的(一種標準的圖形化(即可視化)
28、 )結構化建模語言結構化建模語言。 1UML組成組成 UML綜合綜合OOM使用使用的各種圖形描述的技術,旨在給的各種圖形描述的技術,旨在給出這些圖形描述的語法和語義的語言,是出這些圖形描述的語法和語義的語言,是一種標準的圖一種標準的圖形化(即可視化)形化(即可視化)建模語言建模語言。從。從,UML由圖由圖和元模型和元模型,圖是,圖是UML的的語法語法,而元模型給出圖的含,而元模型給出圖的含義成為義成為UML語義語義。一種專門設計的統(tǒng)一描述一種專門設計的統(tǒng)一描述OOM的的標準圖形符號標準圖形符號建模語言建模語言。5.3 面向對象分析面向對象分析 1)UML的體系結構的體系結構 UML的體系結構的
29、體系結構如圖如圖5-11所示。從體系結構上,所示。從體系結構上,UML由三部由三部分分組成組成:基本構造塊、規(guī)則和公用機制。其中:基本構造塊、規(guī)則和公用機制。其中基本構造塊基本構造塊又包括又包括3種類型:事物、關系和圖。種類型:事物、關系和圖。事物事物劃分為劃分為4種類型種類型:(1 1)結構事物)結構事物- -類、接口、用例。類、接口、用例。(2 2)行為事物)行為事物- -交互機和狀態(tài)等。交互機和狀態(tài)等。(3 3)分組事物)分組事物- -包包( (整體整體- -根包,子系統(tǒng)根包,子系統(tǒng)- -特殊包特殊包) )。(4 4)注釋事物)注釋事物- -信息、說明。信息、說明。 圖圖5-11 UML
30、的體系結構的體系結構5.3 面向對象分析面向對象分析 2)UML模型元素模型元素 UML是一種專門設計的統(tǒng)一描述面向對象方法的是一種專門設計的統(tǒng)一描述面向對象方法的標標準圖形符號系統(tǒng)準圖形符號系統(tǒng)。 (1)UML的語義。的語義。語義定義在一個四層(抽象級別)語義定義在一個四層(抽象級別)建模概念框架建模概念框架中:中:UMLUML的基本元模型層、元模型層、模的基本元模型層、元模型層、模型層、用戶模型層型層、用戶模型層(模型的例子組成)。 (2)UML模型元素模型元素。UML兩類兩類模型元素模型元素。一類模。一類模型元素型元素用于用于表示模型中的某個概念,如類、對象、用例、表示模型中的某個概念,
31、如類、對象、用例、結點、構件、包、接口等;另一類模型元素結點、構件、包、接口等;另一類模型元素用于用于表示模表示模型元素之間相互連接的關系,主要有關聯(lián)、泛化(表示型元素之間相互連接的關系,主要有關聯(lián)、泛化(表示一般與特殊的關系)、依賴、聚集(表示整體與部分的一般與特殊的關系)、依賴、聚集(表示整體與部分的關系)等。關系)等。模型元素圖形表示如圖模型元素圖形表示如圖5-12所示。所示。5.3 面向對象分析面向對象分析圖圖5-12模型元素圖形表示模型元素圖形表示 一類模型元素一類模型元素用于用于表示模型表示模型中的某個概念中的某個概念二類模型元素二類模型元素用于用于表示模型表示模型元素之間相互元素
32、之間相互連接的關系連接的關系表示表示一般與特殊的關系一般與特殊的關系表示表示整體與部分的關系整體與部分的關系5.3 面向對象分析面向對象分析 (3)UML模型圖及表示法模型圖及表示法。常用的。常用的UML模型圖模型圖有有五類五類圖圖(共(共9種種圖形)圖形)用于用于定義定義UML的的主要內(nèi)容主要內(nèi)容:用例:用例圖、靜態(tài)圖(類圖、對象圖)、行為圖(狀態(tài)圖、活圖、靜態(tài)圖(類圖、對象圖)、行為圖(狀態(tài)圖、活動圖)、交互圖(順序圖、協(xié)作圖)、實現(xiàn)圖(構件動圖)、交互圖(順序圖、協(xié)作圖)、實現(xiàn)圖(構件圖、配置圖)。圖、配置圖)。 描述描述軟件系統(tǒng)軟件系統(tǒng)動態(tài)特性動態(tài)特性使用使用5種種圖圖:用例圖、順序:
33、用例圖、順序圖、協(xié)作圖、狀態(tài)圖和活動圖。可通過表圖、協(xié)作圖、狀態(tài)圖和活動圖??赏ㄟ^表5-1可見可見UML的視圖的視圖及其所包括的圖及與每種圖有關的主要概念。及其所包括的圖及與每種圖有關的主要概念。5.3 面向對象分析面向對象分析視圖域視圖域視圖視圖圖圖主要概念主要概念結構分類結構分類靜態(tài)視圖靜態(tài)視圖類圖類圖類、關聯(lián)、泛化、依賴關系、實現(xiàn)、接口類、關聯(lián)、泛化、依賴關系、實現(xiàn)、接口用例視圖用例視圖用例圖用例圖用例、執(zhí)行者、關聯(lián)、擴展、包含、用例繼用例、執(zhí)行者、關聯(lián)、擴展、包含、用例繼承承實現(xiàn)視圖實現(xiàn)視圖構件圖構件圖構件、接口、依賴關系、實現(xiàn)構件、接口、依賴關系、實現(xiàn) 動態(tài)行為動態(tài)行為部署視圖部署視
34、圖部署圖部署圖結點、構件、依賴關系、位置。結點、構件、依賴關系、位置。狀態(tài)視圖狀態(tài)視圖狀態(tài)圖狀態(tài)圖狀態(tài)、事件、轉換、動作狀態(tài)、事件、轉換、動作活動視圖活動視圖活動圖活動圖狀態(tài)、活動、轉換、分叉、連接狀態(tài)、活動、轉換、分叉、連接交互視圖交互視圖順序圖順序圖交互、對象、消息、激活交互、對象、消息、激活協(xié)作圖協(xié)作圖協(xié)作、交互、角色、消息協(xié)作、交互、角色、消息模型管理模型管理模型管理視圖模型管理視圖類圖類圖包、子系統(tǒng)、模型。包、子系統(tǒng)、模型。可擴展性可擴展性所有所有所有所有約束、版型、標簽值約束、版型、標簽值表表5-1 UML視圖及其包含圖的主要概念視圖及其包含圖的主要概念 【注意注意】容易混淆容易混
35、淆的是有時也將的是有時也將圖圖稱為稱為模型模型,兩者都包含一組模型元素的信息。,兩者都包含一組模型元素的信息。: 模型模型描述的是信息的描述的是信息的邏輯結構邏輯結構,而,而圖圖是模型的是模型的特殊物理表示特殊物理表示。5.3 面向對象分析面向對象分析3)UML模型結構模型結構 根據(jù)根據(jù)UML語義,語義,UML模型結構模型結構可可分為分為元元模型、元模型、模元元模型、元模型、模型和用戶模型四個抽象層次結構,如圖型和用戶模型四個抽象層次結構,如圖5-13所示。層次關系是下所示。層次關系是下一層為上一層的一層為上一層的基礎基礎,上一層為下一層的,上一層為下一層的實例實例。圖圖5-13 UML模型結
36、構模型結構/示例示例 元模型元模型模型模型5.3 面向對象分析面向對象分析2. UML模型及建模規(guī)則模型及建模規(guī)則 OOM主要有主要有4種模型種模型:用例模型、靜態(tài)模型、動態(tài)模:用例模型、靜態(tài)模型、動態(tài)模型和實現(xiàn)模型。型和實現(xiàn)模型。 UML建模規(guī)則建模規(guī)則包括對以下內(nèi)容的包括對以下內(nèi)容的描述描述。 (1)名字:任何一個)名字:任何一個UML成員都必須包含一個成員都必須包含一個名字名字。 (2)作用域:)作用域:UML成員所定義的成員所定義的內(nèi)容內(nèi)容起作用起作用的上下文的上下文環(huán)境。環(huán)境。 (3)可見性:)可見性:UML成員能被其他成員成員能被其他成員引用引用的方式。的方式。 (4)完整性)完整
37、性:UML成員之間成員之間互相連接互相連接的的合法性合法性和和一致性一致性 (5)運行屬性:)運行屬性:UML成員在成員在運行時運行時的的特性特性。5.3 面向對象分析面向對象分析3. UML特點及應用特點及應用 (1)UML的的特點特點。主要包括:。主要包括: 統(tǒng)一的標準,易使用,可視化,表達力強,易于在統(tǒng)一的標準,易使用,可視化,表達力強,易于在不同背景的人員之間進行交流。不同背景的人員之間進行交流。 UML可運用于任何軟件開發(fā)過程,各種模型都可采可運用于任何軟件開發(fā)過程,各種模型都可采用用UML建模。建模。 UML內(nèi)部有擴展機制,可以對一些概念進行進一步內(nèi)部有擴展機制,可以對一些概念進行
38、進一步地擴展。地擴展。 UML的一個最重要的特征是用于建模。的一個最重要的特征是用于建模。 模型可視化。模型可視化。5.3 面向對象分析面向對象分析(2)使用準則)使用準則 使用準則使用準則主要包括:選擇使用合適的主要包括:選擇使用合適的UML圖,只對關圖,只對關鍵事物建立模型,分層次地畫模型圖,模型應具有協(xié)調(diào)性,鍵事物建立模型,分層次地畫模型圖,模型應具有協(xié)調(diào)性,模型和模型的元素大小適中。模型和模型的元素大小適中。(3)應用領域)應用領域 建立用例模型建立用例模型主要是主要是識別識別角色和用例,角色和用例,給出給出系統(tǒng)用例系統(tǒng)用例視圖(可以分層次的)描述和每個用例的實例腳本(文字)視圖(可以
39、分層次的)描述和每個用例的實例腳本(文字)描述。描述。UML中,用例視圖由角色、用例、關聯(lián)和系統(tǒng)邊界中,用例視圖由角色、用例、關聯(lián)和系統(tǒng)邊界組成組成。 5.3 面向對象分析面向對象分析【案例案例5-65-6】保險業(yè)務系統(tǒng)保險業(yè)務系統(tǒng)的用例視圖例,如的用例視圖例,如圖圖5-14所示所示圖圖5-14 保險業(yè)務系統(tǒng)的用例視圖例保險業(yè)務系統(tǒng)的用例視圖例 5.4 面向對象設計面向對象設計 課堂討論課堂討論: (1) OOA的原則是什么?的原則是什么? (2) OOA的主要任務和過程有哪些?的主要任務和過程有哪些? (3) OOA的主要方法有哪些?的主要方法有哪些?5.4 面向對象設計面向對象設計 5.4
40、.1面向對象設計的準則及任務面向對象設計的準則及任務 1.面向對象設計準則面向對象設計準則 OOD準則包括準則包括5個方面:個方面:(1)抽象。強調(diào)實體本質(zhì)內(nèi)在屬性,忽略無關)抽象。強調(diào)實體本質(zhì)內(nèi)在屬性,忽略無關緊要屬性。緊要屬性。(2)信息隱蔽。)信息隱蔽。(3)高內(nèi)聚。)高內(nèi)聚。(4)低耦合。)低耦合。(5)可重用。)可重用。5.4 面向對象設計面向對象設計 2.OOD的基本任務的基本任務 OOD是是OOM在軟件設計階段在軟件設計階段應用與擴展應用與擴展,是將是將OOA 所創(chuàng)建的分析模型所創(chuàng)建的分析模型轉換為轉換為設計模型,設計模型,解決解決“怎么做怎么做”的問題的問題。主要目標主要目標是
41、提高開發(fā)效率、質(zhì)量和可維護性。是提高開發(fā)效率、質(zhì)量和可維護性。(1)系統(tǒng)設計。)系統(tǒng)設計。主要任務主要任務是是:將分析模型中緊密相關將分析模型中緊密相關的的類類劃分為劃分為子系統(tǒng)子系統(tǒng)(也稱為(也稱為主題主題),子系統(tǒng)應具有良),子系統(tǒng)應具有良好的接口,且其中的類相互協(xié)作。好的接口,且其中的類相互協(xié)作。(2)對象設計。模塊、數(shù)據(jù)結構及接口等都集中地體)對象設計。模塊、數(shù)據(jù)結構及接口等都集中地體現(xiàn)在現(xiàn)在對象對象和和對象層次結構對象層次結構中,系統(tǒng)開發(fā)的全過程都與中,系統(tǒng)開發(fā)的全過程都與對象層次結構直接相關,是面向對象系統(tǒng)的對象層次結構直接相關,是面向對象系統(tǒng)的基礎和核基礎和核心心。(3)設計優(yōu)化
42、。)設計優(yōu)化。5.4 面向對象設計面向對象設計 5.4.2 系統(tǒng)設計的過程系統(tǒng)設計的過程 在以在以OOM設計軟件時,設計軟件時,OOD模型模型(求解域對象模型求解域對象模型)與與OOA模型模型(問題域對象模型問題域對象模型)類似,類似,組成組成的的5個層次個層次為為:主題層、:主題層、類與對象層、結構層、屬性層和服務層,大多數(shù)系統(tǒng)的類與對象層、結構層、屬性層和服務層,大多數(shù)系統(tǒng)的OOD模型模型,在,在邏輯上都由邏輯上都由4大部分大部分組成組成對應組成目標系統(tǒng)的對應組成目標系統(tǒng)的4個子個子系統(tǒng)系統(tǒng):人機交互子系統(tǒng)、問題域子系統(tǒng)、任務管理子系統(tǒng)和數(shù):人機交互子系統(tǒng)、問題域子系統(tǒng)、任務管理子系統(tǒng)和數(shù)
43、據(jù)管理子系統(tǒng)。分別據(jù)管理子系統(tǒng)。分別包括包括:有效的人機交互所必須的實際顯示:有效的人機交互所必須的實際顯示和輸入;放置和輸入;放置OOA結果并管理分析的某些類及對象、結構、結果并管理分析的某些類及對象、結構、屬性和方法;任務定義、通信和協(xié)調(diào)、硬件分配及外部系統(tǒng);屬性和方法;任務定義、通信和協(xié)調(diào)、硬件分配及外部系統(tǒng);對永久性數(shù)據(jù)的訪問和管理。對永久性數(shù)據(jù)的訪問和管理。OOD模型如圖模型如圖5-15所示。所示。圖圖5-15 OOD模型模型 5.4 面向對象設計面向對象設計 OOD是是將將分析階段獲得的分析階段獲得的需求需求,轉變成轉變成符合成本和質(zhì)量要求的、符合成本和質(zhì)量要求的、抽象的系統(tǒng)實現(xiàn)方
44、案的抽象的系統(tǒng)實現(xiàn)方案的過程過程。分為分為系統(tǒng)設計和對象設計系統(tǒng)設計和對象設計兩個階段兩個階段,系系統(tǒng)設計統(tǒng)設計確定實現(xiàn)系統(tǒng)的策略和目標系統(tǒng)的高層結構,確定實現(xiàn)系統(tǒng)的策略和目標系統(tǒng)的高層結構,對象設計對象設計確定解確定解空間中的類、關聯(lián)、接口形式及實現(xiàn)服務的算法。空間中的類、關聯(lián)、接口形式及實現(xiàn)服務的算法。 系統(tǒng)設計過程系統(tǒng)設計過程主要按照主要按照5個步驟個步驟: 1系統(tǒng)分解系統(tǒng)分解 軟件中軟件中子系統(tǒng)結構子系統(tǒng)結構組成組成有兩種方案:水平層次組織和塊狀組織。有兩種方案:水平層次組織和塊狀組織。 (1)層次組織。層次結構可以分為兩種模式:封閉式和開放式。)層次組織。層次結構可以分為兩種模式:封
45、閉式和開放式。 (2)塊狀組織。將系統(tǒng)分解成幾個相對獨立的、低耦合的子系)塊狀組織。將系統(tǒng)分解成幾個相對獨立的、低耦合的子系統(tǒng),每一子系統(tǒng)相當于一塊,每塊提供一種類型的服務。統(tǒng),每一子系統(tǒng)相當于一塊,每塊提供一種類型的服務。 (3)設計系統(tǒng)的拓補結構??衫脤哟魏蛪K的各種組合,將多)設計系統(tǒng)的拓補結構。可利用層次和塊的各種組合,將多個子系統(tǒng)構成完整的軟件系統(tǒng)。個子系統(tǒng)構成完整的軟件系統(tǒng)。 2.設計問題域子系統(tǒng)設計問題域子系統(tǒng) 設計問題域子系統(tǒng)的設計問題域子系統(tǒng)的主要工作主要工作為:調(diào)整需求、重用設計、組合為:調(diào)整需求、重用設計、組合問題域類、添加一般化類等。問題域類、添加一般化類等。5.4 面
46、向對象設計面向對象設計 3.設計任務管理子系統(tǒng)設計任務管理子系統(tǒng) (1)分析并發(fā)性。)分析并發(fā)性。 (2)設計任務管理子系統(tǒng)。通常有以下)設計任務管理子系統(tǒng)。通常有以下6項工作項工作:確:確定事件驅動任務、辨識時鐘驅動任務、辨識優(yōu)先及關鍵定事件驅動任務、辨識時鐘驅動任務、辨識優(yōu)先及關鍵任務、明確協(xié)調(diào)者、評審任務、確定資源需求。任務、明確協(xié)調(diào)者、評審任務、確定資源需求。 (3)定義任務。主要工作包括:明確具體任務、協(xié))定義任務。主要工作包括:明確具體任務、協(xié)調(diào)工作方法和通信方式。調(diào)工作方法和通信方式。 4. 設計數(shù)據(jù)管理子系統(tǒng)設計數(shù)據(jù)管理子系統(tǒng) (1)選取數(shù)據(jù)存儲管理模式。)選取數(shù)據(jù)存儲管理模式
47、。 (2)設計數(shù)據(jù)管理子系統(tǒng)。)設計數(shù)據(jù)管理子系統(tǒng)。5.4 面向對象設計面向對象設計 5. 設計人機交互子系統(tǒng)設計人機交互子系統(tǒng) 通常設計人機交互子系統(tǒng)時,遵循以下通常設計人機交互子系統(tǒng)時,遵循以下準則和策略準則和策略。 1)設計人機交互界面的準則)設計人機交互界面的準則 (1)達到一致。盡量使術語、步驟和動作達到完全一致。)達到一致。盡量使術語、步驟和動作達到完全一致。 (2)提高效率。盡量減少擊鍵次數(shù)、點擊鼠標的頻率及)提高效率。盡量減少擊鍵次數(shù)、點擊鼠標的頻率及下拉菜單的距離,減少輸出時間。下拉菜單的距離,減少輸出時間。 (3)反饋及時。使用戶及時了解系統(tǒng)正在完成操作任務)反饋及時。使用
48、戶及時了解系統(tǒng)正在完成操作任務的進展情況。的進展情況。 (4)提供)提供“撤銷撤銷”命令。使用戶及時撤銷錯誤動作,避命令。使用戶及時撤銷錯誤動作,避免免/減少錯誤的影響。減少錯誤的影響。 (5)減少記憶。最好不用記住操作信息再使用界面,盡)減少記憶。最好不用記住操作信息再使用界面,盡量簡單或在操作同時給出提示。量簡單或在操作同時給出提示。 (6)幫助使用。提供聯(lián)機幫助和參考資料,供隨時查閱。)幫助使用。提供聯(lián)機幫助和參考資料,供隨時查閱。 (7)便捷友好。易于操作,快捷新穎,富有吸引力。)便捷友好。易于操作,快捷新穎,富有吸引力。5.4 面向對象設計面向對象設計 2)設計人機交互子系統(tǒng)的策略)
49、設計人機交互子系統(tǒng)的策略 (1)用戶分類用戶分類。有利于設計和實現(xiàn)人機交互子系統(tǒng)各項。有利于設計和實現(xiàn)人機交互子系統(tǒng)各項功能。功能。 按組織層次分類:行政人員、管理人員、專業(yè)技術人員、按組織層次分類:行政人員、管理人員、專業(yè)技術人員、其他辦事員。其他辦事員。 按職能分類:顧客、職員。按職能分類:顧客、職員。 按技能層次分類:外行、初學者、熟練者、專家。按技能層次分類:外行、初學者、熟練者、專家。 (2)用戶描述用戶描述。對用戶的描述主要包括。對用戶的描述主要包括6個方面:個方面: 用戶具體類型。用戶具體類型。 使用系統(tǒng)所要達到的目的。使用系統(tǒng)所要達到的目的。 特征(年齡、性別、受教育程度、限制
50、因素等)。特征(年齡、性別、受教育程度、限制因素等)。 關鍵的成功因素(需求、愛好、習慣等)。關鍵的成功因素(需求、愛好、習慣等)。 業(yè)務及操作的技能水平。業(yè)務及操作的技能水平。 完成本崗位業(yè)務工作的腳本。完成本崗位業(yè)務工作的腳本。5.4 面向對象設計面向對象設計 (3)設計命令層次設計命令層次。有利于設計和實現(xiàn)人機交互子系統(tǒng)各。有利于設計和實現(xiàn)人機交互子系統(tǒng)各種操作命令。種操作命令。 詳細調(diào)研現(xiàn)有的人機交互含義、準則和操作流程。詳細調(diào)研現(xiàn)有的人機交互含義、準則和操作流程。 確定初始的命令層次:如一系列選擇屏幕、一個按鈕或確定初始的命令層次:如一系列選擇屏幕、一個按鈕或一系列圖標。一系列圖標。
51、 精化命令層次:調(diào)研命令的次序及歸納關系、命令層次精化命令層次:調(diào)研命令的次序及歸納關系、命令層次的寬度和深度要小且操作簡單。的寬度和深度要小且操作簡單。 (4)設計人機交互類設計人機交互類。便于提供人機交互的類別操作。便于提供人機交互的類別操作。如如Visual C+語言提供了語言提供了MFC類庫,設計人機交互類時,只需類庫,設計人機交互類時,只需從其類庫中選擇合適的類,再派生出需要的類。從其類庫中選擇合適的類,再派生出需要的類。5.4 面向對象設計面向對象設計 5.4.3 對象設計的過程對象設計的過程 1) 對象描述對象描述對象的設計描述可選擇以下對象的設計描述可選擇以下2種形式種形式。
52、(1)協(xié)議描述。)協(xié)議描述。 (2)實現(xiàn)描述。)實現(xiàn)描述。2) 設計類中的服務設計類中的服務 (1)確定類中應有的服務。)確定類中應有的服務。 (2)設計實現(xiàn)服務的方法。)設計實現(xiàn)服務的方法。3) 設計類中的關聯(lián)設計類中的關聯(lián)4) 實現(xiàn)鏈屬性實現(xiàn)鏈屬性5) 優(yōu)化設計優(yōu)化設計5.4 面向對象設計面向對象設計 5.4.4 類設計的目標及方法類設計的目標及方法 1. 類設計的主要目標類設計的主要目標類設計的主要目標:類設計的主要目標: (1)單一概念的模型。)單一概念的模型。 (2)可復用的)可復用的“插接相容性插接相容性”構件。構件。 (3)可靠的構件。)可靠的構件。 (4)可集成的構件。)可集成
53、的構件。 2. 類設計的方法類設計的方法 類的設計描述包括:類的設計描述包括: (1)協(xié)議描述。)協(xié)議描述。 (2)實現(xiàn)描述。)實現(xiàn)描述。課堂討論:課堂討論: (1) OOD的準則和任務有哪些?的準則和任務有哪些? (2) 系統(tǒng)設計及對象設計的過程分別是什么?系統(tǒng)設計及對象設計的過程分別是什么? (3) 類設計的目標和方法有哪些?類設計的目標和方法有哪些?5.5 面向對象分析和設計實例面向對象分析和設計實例 5.5.1 圖書管理信息系統(tǒng)圖書管理信息系統(tǒng)OOA實例實例【案例案例5-7】圖書管理信息系統(tǒng)圖書管理信息系統(tǒng)(以下簡稱圖書館系統(tǒng)或系(以下簡稱圖書館系統(tǒng)或系統(tǒng)),院校廣大師生都使用過比較熟
54、悉圖書借閱、還書和其它方統(tǒng)),院校廣大師生都使用過比較熟悉圖書借閱、還書和其它方面的實際業(yè)務過程、角色、用例和行為等。面的實際業(yè)務過程、角色、用例和行為等。具體問題描述:具體問題描述:(1)一個圖書館藏有圖書和期刊雜志兩大類書籍,每種圖書)一個圖書館藏有圖書和期刊雜志兩大類書籍,每種圖書/雜雜志可以有多冊。志可以有多冊。(2)圖書館可以維護(注冊、更新和刪除)圖書資料。)圖書館可以維護(注冊、更新和刪除)圖書資料。(3)圖書管理員在系統(tǒng)支持下,為借書者進行借還圖書服務。)圖書管理員在系統(tǒng)支持下,為借書者進行借還圖書服務。(4)所有人員可以網(wǎng)上瀏覽圖書館的圖書信息和各種告示。)所有人員可以網(wǎng)上瀏
55、覽圖書館的圖書信息和各種告示。(5)借書者可以預約暫時借閱不到的書或雜志。)借書者可以預約暫時借閱不到的書或雜志。(6)系統(tǒng)能夠在所有流行的技術環(huán)境下運行,有一個良好的圖)系統(tǒng)能夠在所有流行的技術環(huán)境下運行,有一個良好的圖形交互界面。形交互界面。(7)系統(tǒng)應該具有良好的可擴展性。)系統(tǒng)應該具有良好的可擴展性。5.4 面向對象設計面向對象設計 1 1建立用例模型建立用例模型 (1 1)畫出網(wǎng)上圖書館系統(tǒng)的用例視圖。如圖)畫出網(wǎng)上圖書館系統(tǒng)的用例視圖。如圖5-165-16所示。所示。 (2 2)給出系統(tǒng)每個用例的腳本描述,包括正常情景和異常情景)給出系統(tǒng)每個用例的腳本描述,包括正常情景和異常情景的
56、腳本描述。的腳本描述。 圖圖5-16 圖書館系統(tǒng)的用例視圖圖書館系統(tǒng)的用例視圖 5.5 面向對象分析和設計實例面向對象分析和設計實例 2 2建立侯選類建立侯選類 通過篩選的侯選類有通過篩選的侯選類有3 3類類:借書者類、圖書書目類和圖書標題類,分別:借書者類、圖書書目類和圖書標題類,分別建立它們的建立它們的CRCCRC卡。如表卡。如表5-35-3所示。所示。 表表 5-3 圖書館系統(tǒng)的圖書館系統(tǒng)的CRC卡卡借書者類借書者類責任:維護借的書目的數(shù)據(jù)和罰金,請求借、還、續(xù)借書目功能責任:維護借的書目的數(shù)據(jù)和罰金,請求借、還、續(xù)借書目功能 協(xié)作者:圖書書目類協(xié)作者:圖書書目類 圖書書目類圖書書目類責
57、任:維護一個具體書目數(shù)據(jù),通知相應的圖書標題完成借、還功能責任:維護一個具體書目數(shù)據(jù),通知相應的圖書標題完成借、還功能 協(xié)作者:圖書標題類協(xié)作者:圖書標題類圖書標題類圖書標題類責任:維護一個抽象書的數(shù)據(jù),知道該書的可借數(shù)、預約數(shù)責任:維護一個抽象書的數(shù)據(jù),知道該書的可借數(shù)、預約數(shù) 協(xié)作者:圖書書目類協(xié)作者:圖書書目類5.5 面向對象分析和設計實例面向對象分析和設計實例 3. 構建類圖構建類圖 建立一個建立一個“借借/還還”類存儲借書者的借書記錄,以一個預約者的類存儲借書者的借書記錄,以一個預約者的“預約預約”類類存儲預約記錄。存儲預約記錄。最終的類最終的類包括:借書者、圖書標題、圖書書目、借包
58、括:借書者、圖書標題、圖書書目、借/還、預約。還、預約。構成了圖書館系統(tǒng)的類圖,如圖構成了圖書館系統(tǒng)的類圖,如圖5-17所示。所示。1n借/還預約借書者圖書標題圖書書目圖圖5-17 圖書館系統(tǒng)的類圖圖書館系統(tǒng)的類圖包含11nn借/還/續(xù)借預約3. 5.5 面向對象分析和設計實例面向對象分析和設計實例 4. 動態(tài)建模動態(tài)建模 圖書館系統(tǒng)借書(未預約)功能的動態(tài)建模,可以選擇使用時序圖、圖書館系統(tǒng)借書(未預約)功能的動態(tài)建模,可以選擇使用時序圖、協(xié)作圖、狀態(tài)圖和活動圖進行描述。分別如圖協(xié)作圖、狀態(tài)圖和活動圖進行描述。分別如圖5-18、圖、圖5-19和圖和圖5-20所示。所示。:借書者:圖書書目:圖
59、書標題2.1驗證可借圖圖5-18 圖書館系統(tǒng)借書功能的時序圖圖書館系統(tǒng)借書功能的時序圖:借書者借書者借書2.借書3.創(chuàng)建借書記錄4.更新圖書標題5.更新圖書書目6.更新借書者:借/還1.驗證可借性5.5 面向對象分析和設計實例面向對象分析和設計實例 1.驗證可借性:借書者借書:借書者借書者6.更新借書者:借/還 new:圖書書目:圖書標題圖圖5-19 圖書館系統(tǒng)借書功能的協(xié)作圖圖書館系統(tǒng)借書功能的協(xié)作圖2.1驗證可借4.更新圖書標題2.借書5.更新圖書書目3.創(chuàng)建借書記錄5.5 面向對象分析和設計實例面向對象分析和設計實例圖書館管理員圖圖5-20 圖書館系統(tǒng)借圖書館系統(tǒng)借/還書業(yè)務層的活動圖還
60、書業(yè)務層的活動圖借書者圖書館成員查找圖書還書者排隊等待還書借書記錄還書圖書回架記錄借書準備為下一個成員服務5.5 面向對象分析和設計實例面向對象分析和設計實例 5.5.2 圖書管理信息系統(tǒng)圖書管理信息系統(tǒng)OOD實例實例 1領域建模領域建模 通過對圖書館系統(tǒng)進一步分析,將系統(tǒng)中的領域和關鍵類通過對圖書館系統(tǒng)進一步分析,將系統(tǒng)中的領域和關鍵類條理化,得出商業(yè)域類模型。條理化,得出商業(yè)域類模型。圖書館系統(tǒng)類操作的細化,分析時通過協(xié)作圖、時序圖、活動圖書館系統(tǒng)類操作的細化,分析時通過協(xié)作圖、時序圖、活動圖等給出描述。其中,圖書館系統(tǒng)商業(yè)域類模型如圖圖等給出描述。其中,圖書館系統(tǒng)商業(yè)域類模型如圖5-21
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信用貸款管理制度
- 信訪資料管理制度
- 修建水電管理制度
- 全封閉門衛(wèi)管理制度
- 公司零現(xiàn)金管理制度
- 加氣站公司管理制度
- 廠內(nèi)特種車管理制度
- 品牌蛋糕店管理制度
- 畜牧領域碩士研究生培養(yǎng)模式的創(chuàng)新與實踐
- 小公司合同管理制度
- 精神科安全用藥管理
- 餐飲店鋪轉租合同范本
- 員工動員大會演講稿
- 二手設備轉讓合同(2024版)
- 《印刷工藝及實訓》課件-5-平版印刷
- 高效智慧的廠站網(wǎng)一體化解決方案
- 餐飲從業(yè)人員有害生物防治知識培訓
- 鐵路安全員c證考試題庫單選題100道及答案
- 腦外手術的配合
- 北京通州區(qū)大運河博物館的觀后感
- 2025年上半年意識形態(tài)工作研判報告范文
評論
0/150
提交評論