版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?面向?qū)ο蟮姆治龊驮O(shè)計過程面向?qū)ο蟮姆治龊驮O(shè)計過程 UML概述概述 用況建模用況建模 靜態(tài)建模靜態(tài)建模 動態(tài)建模動態(tài)建模 物理體系結(jié)構(gòu)建模物理體系結(jié)構(gòu)建模2/215 面向?qū)ο蟮姆治龊驮O(shè)計過程面向?qū)ο蟮姆治龊驮O(shè)計過程 UML概述概述 用況建模用況建模 靜態(tài)建模靜態(tài)建模 動態(tài)建模動態(tài)建模 物理體系結(jié)構(gòu)建模物理體系結(jié)構(gòu)建模3/215Peter Coad和Edward Yourdon提出用下列等式識認(rèn)面向?qū)ο蠓椒ǎ好嫦驅(qū)ο?= 對象(object) + 分類(classification) + 繼承(inheritance) + 通過消息的通信(communica
2、tion with messages)可以說,采用這四個概念開發(fā)的軟件系統(tǒng)是面向?qū)ο蟮?/215面向?qū)ο蠓椒ǖ某霈F(xiàn)很快受到計算機(jī)軟件界的青睞,并成為20世紀(jì)90年代的主流開發(fā)方法。我們可以從下列幾個方面來分析其原因:1.從認(rèn)知學(xué)的角度來看,面向?qū)ο蠓椒ǚ先藗儗陀^世界的認(rèn)識規(guī)律。2.面向?qū)ο蠓椒ㄩ_發(fā)的軟件系統(tǒng)易于維護(hù),其體系結(jié)構(gòu)易于理解、擴(kuò)充和修改。3.面向?qū)ο蠓椒ㄖ械睦^承機(jī)制有力支持軟件的復(fù)用。 5/2151. 對象(object) 對象是指一組屬性以及這組屬性上的專用操作的封裝體。 屬性(attribute)通常是一些數(shù)據(jù),有時它也可以是另一個對象。每個對象都有它自己的屬性值,表示該對象
3、的狀態(tài)。對象中的屬性只能通過該對象所提供的操作來存取或修改。 操作(operation)(也稱方法或服務(wù))規(guī)定了對象的行為,表示對象所能提供的服務(wù)。 6/215封裝(encapsulation)是一種信息隱信息隱蔽技術(shù)蔽技術(shù),用戶只能看見對象封裝界面上的信息,對象的內(nèi)部實(shí)現(xiàn)對用戶是隱蔽的。封裝的目的是使對象的使用者和生產(chǎn)者分離,使對象的定義和實(shí)現(xiàn)分開。 一個對象通??捎蓪ο竺?、屬性和操作三部分組成。7/2152. 類(class) 類是一組具有相同屬性和相同操作的對象的集合。一個類中的每個對象都是這個類的一個實(shí)例(instance)。 類是創(chuàng)建對象的模板,從同一個類實(shí)例化的每個對象都具有相同的
4、結(jié)構(gòu)和行為。8/215轎轎 車車型號:字符串型號:字符串顏色:字符串顏色:字符串牌照號:字符串牌照號:字符串張經(jīng)理的轎車張經(jīng)理的轎車型號型號= =桑塔納桑塔納顏色顏色= =紅色紅色牌照號牌照號= =滬滬AN2037AN2037類類實(shí)例對象實(shí)例對象9/2153. 繼承(inheritance) 繼承是類間的基本關(guān)系,它是基于層次關(guān)系的不同類共享數(shù)據(jù)和操作的一種機(jī)制。父類中定義了其所有子類的公共屬性和操作,在子類中除了定義自己特有的屬性和操作外,可以繼承其父類(或祖先類)的屬性和操作,還可以對父類(或祖先類)中的操作重新定義其實(shí)現(xiàn)方法。 10/215 矩形矩形長長寬寬對角線對角線計算面積計算面積計
5、算對角線計算對角線 多邊形多邊形頂點(diǎn)數(shù)頂點(diǎn)數(shù)頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)計算面積計算面積旋轉(zhuǎn)旋轉(zhuǎn)11/215有時,我們定義一個類,它把一些類組織起來,提供一些公共的行為,但并不需要使用這個類的實(shí)例,而僅使用其子類的實(shí)例。我們把這種沒有實(shí)例的類稱為抽象類(abstract class)。在抽象類中可以定義抽象操作,抽象操作指:只定義這個類的操作接口,不定義它的實(shí)現(xiàn),其實(shí)現(xiàn)部分由其子類定義。抽象操作操作名用斜體字表示,也可以在操作特征(signature)后面加上特征字符串a(chǎn)bstract。12/215交通工具交通工具飛行器飛行器汽汽 車車 船船轎轎 車車貨貨 車車 一般一般- -特殊關(guān)系特殊關(guān)系13/215
6、 如果一個子類只有唯一一個父類,這個繼承稱為單一繼承。如果一個子類有一個以上的父類,這種繼承稱為多重繼承。 水上交通工具水上交通工具 陸上交通工具陸上交通工具 水陸兩棲交通工具水陸兩棲交通工具多重繼承多重繼承14/2154. 消息(message) 消息傳遞是對象間通信的手段,一個對象通過向另一個對象發(fā)送消息來請求其服務(wù)。一個消息通常包括接收對象名、調(diào)用的操作名和適當(dāng)?shù)膮?shù)(如果有必要的話)。消息只告訴接收對象需要完成什么操作,但并不指示接收者怎樣完成操作。消息完全由接收者解釋,接收者獨(dú)立決定采用什么方法完成所需的操作。 15/2155. 多態(tài)性(polymorphism) 多態(tài)性是指同一個操
7、作作用于不同的對象同一個操作作用于不同的對象上可以有不同的解釋,并產(chǎn)生不同的執(zhí)行結(jié)上可以有不同的解釋,并產(chǎn)生不同的執(zhí)行結(jié)果果。例如“畫”操作,作用在“矩形”對象上,則在屏幕上畫一個矩形,作用在“圓”對象上,則在屏幕上畫一個圓。也就是說,相同操作的消息發(fā)送給不同的對象時,每個對象將根據(jù)自己所屬類中定義的這個操作去執(zhí)行,從而產(chǎn)生不同的結(jié)果。 16/2156. 動態(tài)綁定(dynamic binding) 動態(tài)綁定是指在程序運(yùn)行時才將消息所請求的操作與實(shí)現(xiàn)該操作的方法連接起來。 傳統(tǒng)的程序設(shè)計語言的過程調(diào)用與目標(biāo)代碼的連接(即調(diào)用哪個過程)放在程序運(yùn)行前(即編譯鏈接時)進(jìn)行(稱為靜態(tài)綁定),而動態(tài)綁定
8、則是把這種連接推遲到運(yùn)行時才進(jìn)行。 動態(tài)綁定是一種在運(yùn)行時確定被執(zhí)行代碼的技術(shù)。17/215在一般與特殊關(guān)系中,子類是父類的一個特例,所以父類對象可以出現(xiàn)的地方,也允許其子類對象出現(xiàn)。因此在運(yùn)行過程中,當(dāng)一個對象發(fā)送消息請求服務(wù)時,要根據(jù)接收對象的具體情況將請求的操作與實(shí)現(xiàn)的方法進(jìn)行連接,即動態(tài)綁定。 18/215if 條件條件 then p := t ; else p := r ;area := p.getarea ;getArea abstractpolygonareahexagongetArearectanglegetArealengthwidthtrianglegetAreaVar p
9、 : polygon ;Var t : triangle := triangle.new ;Var r : rectangle := rectangle.new ; 19/215 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?UML概述概述 用況建模用況建模 靜態(tài)建模靜態(tài)建模 動態(tài)建模動態(tài)建模 物理體系結(jié)構(gòu)建模物理體系結(jié)構(gòu)建模20/2151.獲取客戶對系統(tǒng)的需求:包括獲取客戶對系統(tǒng)的需求:包括標(biāo)識場景和用況標(biāo)識場景和用況,以,以及建造需求模型及建造需求模型2.用基本的需求為指南,來用基本的需求為指南,來確定類和對象確定類和對象(包括屬性(包括屬性和操作)和操作)3.定義定義類的結(jié)構(gòu)和層次類的結(jié)構(gòu)和層次
10、(繼承關(guān)系繼承關(guān)系)4.建造建造對象對象關(guān)系模型關(guān)系模型5.建造建造對象對象行為模型行為模型6.利用用況利用用況/場景來場景來復(fù)審復(fù)審分析模型分析模型21/2151.獲取客戶對系統(tǒng)的需求獲取客戶對系統(tǒng)的需求 需求獲取必須讓客戶與開發(fā)者充分地交流,這里介紹一種采用用況來收集客戶需求采用用況來收集客戶需求的技術(shù)。分析員首先標(biāo)識使用該系統(tǒng)的不同的執(zhí)行者(執(zhí)行者(actor),這些執(zhí)行者代表使用該系統(tǒng)的不同的角色執(zhí)行者代表使用該系統(tǒng)的不同的角色。每個執(zhí)行者可以敘述他如何使用系統(tǒng),或者說他需要系統(tǒng)提供什么功能。執(zhí)行者提出的每一個使用場景(或功能)都是系統(tǒng)的一個用況的實(shí)例,一個用況描述了系統(tǒng)的一種用法(或
11、一個功能),所有執(zhí)行者提出的所有用況構(gòu)成系統(tǒng)的完整的需求。 22/215注意,執(zhí)行者與用戶是不同的兩個概念,一個用戶可以扮演幾個角色(執(zhí)行者),一個執(zhí)行者可以是用戶,也可以是其他系統(tǒng)(應(yīng)用程序或設(shè)備)。得到的用況必須進(jìn)行復(fù)審,以使需求完整。23/2152.標(biāo)識類和對象 類和對象來自問題領(lǐng)域可以先標(biāo)識候選類,然后進(jìn)行篩選可以先標(biāo)識候選類,然后進(jìn)行篩選24/2153. 定義類的結(jié)構(gòu)和層次 類 的 結(jié) 構(gòu) 主 要 有 兩 種 : 一 般 特 殊(generalizationspecialization)結(jié)構(gòu)和整體部分(wholepart)結(jié)構(gòu)。 一般特殊結(jié)構(gòu)是一種分類結(jié)構(gòu),反映了類間的一般與特殊的關(guān)
12、系。一般類與特殊類之間是一種“is a”的關(guān)系,如:汽車是一種交通工具。同樣,特殊類還可以分為更特殊的類,這樣可形成類的層次結(jié)構(gòu)。 整體部分結(jié)構(gòu)反映了類間的整體與部分關(guān)系。值得注意的是,整體部分關(guān)系是對對象而言的,而不是對類的。整體部分關(guān)系是一種“has a ”的關(guān)系,如“汽車”有“發(fā)動機(jī)”。同樣,整體部分結(jié)構(gòu)也具有層次結(jié)構(gòu)。25/2154. 建造對象關(guān)系模型 對象-關(guān)系模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它指出了類間的關(guān)系(relationship) 類之間的關(guān)系有關(guān)聯(lián)、依賴、泛化、實(shí)現(xiàn)等26/2155. 建立對象行為模型對象-行為模型描述了系統(tǒng)的動態(tài)行為,它們指 明 系 統(tǒng) 如 何 響 應(yīng) 外 部
13、的 事 件 或 激 勵(stimulus)。建模的步驟如下:評估所有的用況,以完全理解系統(tǒng)中交互的序列評估所有的用況,以完全理解系統(tǒng)中交互的序列標(biāo)識驅(qū)動交互序列的事件,理解這些事件如何和特定標(biāo)識驅(qū)動交互序列的事件,理解這些事件如何和特定的對象相關(guān)聯(lián)的對象相關(guān)聯(lián)為每個用況創(chuàng)建事件軌跡(為每個用況創(chuàng)建事件軌跡(event trace)為系統(tǒng)建造狀態(tài)機(jī)圖為系統(tǒng)建造狀態(tài)機(jī)圖復(fù)審對象復(fù)審對象-行為模型,以驗(yàn)證準(zhǔn)確性和一致性行為模型,以驗(yàn)證準(zhǔn)確性和一致性27/215面向?qū)ο笤O(shè)計的一般步驟如下:1. 系統(tǒng)設(shè)計將子系統(tǒng)分配到處理器選擇實(shí)現(xiàn)數(shù)據(jù)管理、界面支持和任務(wù)管理的設(shè)計策略為系統(tǒng)設(shè)計合適的控制機(jī)制復(fù)審并考慮
14、權(quán)衡(折衷)28/2152. 對象設(shè)計 在過程級別(procedural lavel)設(shè)計每個操作,即設(shè)計每個操作的實(shí)現(xiàn)細(xì)節(jié) 定義內(nèi)部類 為類屬性設(shè)計內(nèi)部數(shù)據(jù)結(jié)構(gòu)3. 消息設(shè)計 使用對象間的協(xié)作和對象-關(guān)系模型,設(shè)計消息模型4. 復(fù)審 復(fù)審設(shè)計模型并在需要時迭代。 29/2151. 系統(tǒng)設(shè)計1) 將分析模型劃分成子系統(tǒng) 在OO系統(tǒng)設(shè)計中,我們把分析模型中緊密相關(guān)的類、關(guān)系等設(shè)計元素包裝成子系統(tǒng)。 通常,子系統(tǒng)的所有元素共享某些公共的性質(zhì),它們可能都涉及完成相同的功能;它們可能駐留在相同的產(chǎn)品硬件中;或者它們可能管理相同的類和資源。子系統(tǒng)由它們的責(zé)任所刻畫,即,一個子系統(tǒng)可以通過它提供的服務(wù)來標(biāo)
15、識。在OOD中,這種服務(wù)是完成特定功能的一組操作。 30/215 子系統(tǒng)的設(shè)計準(zhǔn)則是:(1) 子系統(tǒng)應(yīng)具有定義良好的接口,通過接口和系統(tǒng)的其它部分通信;(2) 除了少數(shù)的“通信類” 外,子系統(tǒng)中的類應(yīng)只和該子系統(tǒng)中的其它類協(xié)作;(3) 子系統(tǒng)的數(shù)量不宜太多;(4) 可以在子系統(tǒng)內(nèi)部再次劃分,以降低復(fù)雜性。31/2152) 標(biāo)識問題本身的并發(fā)性,并為子系統(tǒng)分配處理器 通過對對象-行為模型的分析,可發(fā)現(xiàn)系統(tǒng)的并發(fā)性。如果對象(或子系統(tǒng))不是同時活動的,則它們不需并發(fā)處理,此時這些對象(或子系統(tǒng))可以在同一個處理器上實(shí)現(xiàn)。反之,如果對象(或子系統(tǒng))必須對一些事件同時異步地動作,則它們被視為并發(fā)的,此
16、時,可以將并發(fā)的子系統(tǒng)分別分配到不同的處理器,或者分配在同一個處理器,而由操作系統(tǒng)提供并發(fā)支持。32/2153) 任務(wù)管理設(shè)計Coad和Yourdon提出如下管理并發(fā)任務(wù)對象的設(shè)計策略:(1) 確定任務(wù)的類型;(2) 必要時,定義協(xié)調(diào)者任務(wù)和關(guān)聯(lián)的對象;(3) 將協(xié)調(diào)者任務(wù)和其它任務(wù)集成。 通??赏ㄟ^了解任務(wù)是如何被啟動的來確定任務(wù)的通??赏ㄟ^了解任務(wù)是如何被啟動的來確定任務(wù)的類型,如事件驅(qū)動任務(wù),時鐘驅(qū)動任務(wù)。每個任務(wù)應(yīng)該類型,如事件驅(qū)動任務(wù),時鐘驅(qū)動任務(wù)。每個任務(wù)應(yīng)該定義其優(yōu)先級,并識別關(guān)鍵任務(wù)。當(dāng)有多個任務(wù)時還可定義其優(yōu)先級,并識別關(guān)鍵任務(wù)。當(dāng)有多個任務(wù)時還可以考慮增加一個協(xié)調(diào)者任務(wù),以
17、控制這些任務(wù)協(xié)同工作以考慮增加一個協(xié)調(diào)者任務(wù),以控制這些任務(wù)協(xié)同工作33/2154) 數(shù)據(jù)管理設(shè)計 通常數(shù)據(jù)管理設(shè)計成層次模式,其目的是將數(shù)據(jù)的物理存儲及操縱與系統(tǒng)的業(yè)務(wù)邏輯加以分離。 數(shù)據(jù)管理的設(shè)計包括設(shè)計系統(tǒng)中各種數(shù)據(jù)對象的存儲方式(如內(nèi)部數(shù)據(jù)結(jié)構(gòu)、文件、數(shù)據(jù)庫),以及設(shè)計相應(yīng)的服務(wù),即為要儲存的對象增加所需的屬性和操作。34/2155) 資源管理設(shè)計 OO系統(tǒng)可利用一系列不同的資源(如磁盤驅(qū)動器、處理器、通信線路等外部實(shí)體或數(shù)據(jù)庫、對象等抽象資源),很多情況下,子系統(tǒng)同時競爭這些資源,因此要設(shè)計一套控制機(jī)制和安全機(jī)制,以控制對資源的訪問,避免對資源使用的沖突。 6)人機(jī)界面設(shè)計 對大多數(shù)
18、應(yīng)用系統(tǒng)而言,人機(jī)界面本身是一個非常重要的子系統(tǒng)。人機(jī)界面主要強(qiáng)調(diào)人如何命令系統(tǒng),以及系統(tǒng)如何向人提交信息。它包括窗口、菜單、報告的設(shè)計。 35/2157) 子系統(tǒng)間的通信 子系統(tǒng)之間可以通過建立客戶/服務(wù)器連接進(jìn)行通信,也可以通過端對端(peer to peer)連接進(jìn)行通信。我們必須確定子系統(tǒng)間通信的合約(contract),合約提供了一個子系統(tǒng)和另一個子系統(tǒng)交互的方式。 36/2152. 對象設(shè)計對象設(shè)計是為每個類的屬性和操作作出詳細(xì)的設(shè)計,并設(shè)計連接類與它的協(xié)作者之間的消息規(guī)約。對象描述對象描述1)協(xié)議描述(外部的黑盒描述外部的黑盒描述):描述對象的接口,即定義對象可以接收的消息以及當(dāng)
19、對象接收到消息后完成的相關(guān)操作;2)實(shí)現(xiàn)描述(內(nèi)部描述內(nèi)部描述):描述傳送給對象的消息所蘊(yùn)含的每個操作的實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)細(xì)節(jié)包括有關(guān)對象私有部分的信息,即關(guān)于描述對象屬性的數(shù)據(jù)結(jié)構(gòu)的內(nèi)部細(xì)節(jié)和描述操作的過程細(xì)節(jié)。對象的使用者只需要關(guān)心協(xié)議描述對象的使用者只需要關(guān)心協(xié)議描述37/2152)設(shè)計算法和數(shù)據(jù)結(jié)構(gòu) 為對象中的屬性和操作設(shè)計數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)算法。 3. 設(shè)計模式(design patterns) 在許多面向?qū)ο笙到y(tǒng)中,存在一些類和通信對象的重復(fù)出現(xiàn)的模式。這些模式求解特定的設(shè)計問題,使面向?qū)ο笤O(shè)計更靈活,并最終可復(fù)用。這些模式幫助設(shè)計者復(fù)用以前成功的設(shè)計,設(shè)計者可以把這些模式應(yīng)用到新的設(shè)計中
20、。38/215一個設(shè)計模式通??捎盟膫€信息來描述:1)模式名 設(shè)計模式名應(yīng)具有實(shí)際的含義,它能反映模式的適用性和意圖。2)使模式可被應(yīng)用所必須存在的環(huán)境和條件。3)設(shè)計模式的特征 模式特征指出一些設(shè)計的屬性,調(diào)整這些屬性使該模式能適應(yīng)各種不同的問題。這些屬性表示設(shè)計的特征,這些特征能被用于檢索(通過數(shù)據(jù)庫)以找到合適的模式。4)應(yīng)用設(shè)計模式的結(jié)果(consequences) 對于一個設(shè)計模式的使用結(jié)果表明設(shè)計決策的走向。39/215CategoryClass-&-ObjectStructure1+1+AttributeMethodObject model 由五個由五個層次組成,層次組成
21、,相當(dāng)于相當(dāng)于把五張透明膠片把五張透明膠片疊疊在一起,每一層顯在一起,每一層顯示更多的細(xì)節(jié)示更多的細(xì)節(jié)。40/215 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?面向?qū)ο蟮姆治龊驮O(shè)計過程面向?qū)ο蟮姆治龊驮O(shè)計過程 用況建模用況建模 靜態(tài)建模靜態(tài)建模 動態(tài)建模動態(tài)建模 物理體系結(jié)構(gòu)建模物理體系結(jié)構(gòu)建模41/215Unified Modeling Language42/215 為何研究UML結(jié)束方法大戰(zhàn) 發(fā)展歷史 1994年Booch和Rumbaugh在Rational Software Corporation開始了UML的工作,其目標(biāo)是創(chuàng)建一個“統(tǒng)一的方法”, 1995年OOSE的創(chuàng)始人Jacobson
22、加盟到這項工作中,工作重點(diǎn)轉(zhuǎn)移到創(chuàng)建一種統(tǒng)一的建模語言UML 1996年6月、10月、1997年1月、11月分別推出了UML0.9、 UML0.91、 UML1.0、 UML1.1 43/2151997年年11月,月,OMG(Object Management Group)批準(zhǔn)把批準(zhǔn)把UML1.1作為基于面向?qū)ο蠹夹g(shù)作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言的標(biāo)準(zhǔn)建模語言之后,之后,UML進(jìn)行了持續(xù)的修訂和改進(jìn),先后產(chǎn)進(jìn)行了持續(xù)的修訂和改進(jìn),先后產(chǎn)生了生了UML1.2、1.3、1.4、1.5版本版本2004年推出了年推出了UML2.0,UML2.0對對UML1.x作了重大的修改作了重大的修改44/21
23、5 模型中的實(shí)體以及實(shí)體間相互連接的關(guān)系模型中的實(shí)體以及實(shí)體間相互連接的關(guān)系 泛化泛化 對象對象屬性屬性操作操作狀態(tài)狀態(tài)用例用例 結(jié)點(diǎn)結(jié)點(diǎn)接口接口包包依賴依賴關(guān)聯(lián)關(guān)聯(lián)聚集聚集模型元素模型元素類類 屬性屬性操作操作構(gòu)件構(gòu)件注解注解45/215 模型中的實(shí)體以及實(shí)體間相互連接的關(guān)系模型中的實(shí)體以及實(shí)體間相互連接的關(guān)系 部分模型元素部分模型元素注解注解類類屬性屬性操作操作對象:類對象:類屬性屬性操作操作狀態(tài)狀態(tài)用況用況 結(jié)點(diǎn)結(jié)點(diǎn)供應(yīng)接口供應(yīng)接口包包依賴依賴關(guān)聯(lián)關(guān)聯(lián)泛化泛化主動類主動類屬性屬性操作操作請求接口請求接口構(gòu)件構(gòu)件實(shí)現(xiàn)實(shí)現(xiàn)46/215 用況圖用況圖 (use case diagram) 類圖
24、類圖 (class diagram) 對象圖對象圖 (object diagram) 構(gòu)件圖構(gòu)件圖 (component diagram) 組合結(jié)構(gòu)圖組合結(jié)構(gòu)圖 (composite structure diagram) 順序圖順序圖 (sequence diagram) 通信圖通信圖 (communication diagram)交互圖交互圖 (interaction diagram)47/215 狀態(tài)機(jī)圖狀態(tài)機(jī)圖 (state machine diagram) 活動圖活動圖 (activity diagram) 部署圖部署圖 (deployment diagram) 制品圖制品圖 (art
25、ifact diagram) 包圖包圖 (package diagram) 時間圖時間圖 (timing diagram) 交互概覽圖交互概覽圖 (interaction overview diagram)48/215描述參與者與用況描述參與者與用況(參與者使用系統(tǒng)以實(shí)現(xiàn)某一特定目標(biāo)的參與者使用系統(tǒng)以實(shí)現(xiàn)某一特定目標(biāo)的情形情形)之間的關(guān)聯(lián)關(guān)系,以及用況之間的擴(kuò)展、繼承等關(guān)系之間的關(guān)聯(lián)關(guān)系,以及用況之間的擴(kuò)展、繼承等關(guān)系銀行儲蓄帳戶管理系統(tǒng)銀行儲蓄帳戶管理系統(tǒng)包含包含包含包含包含包含銀行職員銀行職員(用戶代理)(用戶代理)帳戶管理帳戶管理銀行間轉(zhuǎn)帳銀行間轉(zhuǎn)帳開戶開戶取款取款銀行內(nèi)轉(zhuǎn)帳銀行內(nèi)轉(zhuǎn)帳注
26、銷注銷存款存款校驗(yàn)密碼校驗(yàn)密碼轉(zhuǎn)帳轉(zhuǎn)帳報表生成報表生成其它銀行其它銀行帳戶管理系統(tǒng)帳戶管理系統(tǒng)客戶客戶系統(tǒng)管理員系統(tǒng)管理員銀行職員銀行職員(管理人員)(管理人員)49/215展現(xiàn)一組類、接口以及它們相互之間的關(guān)系展現(xiàn)一組類、接口以及它們相互之間的關(guān)系2條或條或2條以上的線交于條以上的線交于0個或個或1個點(diǎn)個點(diǎn)lineX1:realY1:realX2:realY2:realpointX: realY: real相交相交2.*0.150/215展現(xiàn)一組對象以及相互展現(xiàn)一組對象以及相互之間的關(guān)系,是依照類之間的關(guān)系,是依照類圖所建立的一組事物圖所建立的一組事物(實(shí)例實(shí)例)的靜態(tài)快照的靜態(tài)快照L1:
27、lineX1=10Y1=10X2= -10Y2= -10L2: lineL3: lineX1=10Y1= 5X2= -10Y2= -5L4: lineX1=9Y1=5X2=9Y2=3X1= -10Y1=10X2=10Y2= -10P1:pointX = 0Y = 0P2:pointX=9Y=4。551/215描述構(gòu)件、接口以及構(gòu)件間的組裝關(guān)系的靜態(tài)視圖,復(fù)合構(gòu)描述構(gòu)件、接口以及構(gòu)件間的組裝關(guān)系的靜態(tài)視圖,復(fù)合構(gòu)件本身可以由內(nèi)部的子構(gòu)件圖描述件本身可以由內(nèi)部的子構(gòu)件圖描述應(yīng)用收費(fèi)應(yīng)用收費(fèi)管理管理信用卡代理構(gòu)件的內(nèi)部結(jié)構(gòu)圖信用卡代理構(gòu)件的內(nèi)部結(jié)構(gòu)圖信用卡代理信用卡代理狀況狀況購買購買預(yù)購銷售預(yù)購銷
28、售團(tuán)體銷售團(tuán)體銷售:售票員:售票員:營業(yè)員界面:營業(yè)員界面:銷售亭界面:銷售亭界面:管理員界面:管理員界面:票:票:信用卡收費(fèi):信用卡收費(fèi)個體銷售個體銷售收費(fèi)收費(fèi)顧客訪問顧客訪問營業(yè)員訪問營業(yè)員訪問52/215UML2.0新增的圖,展示了類或協(xié)作的內(nèi)部結(jié)構(gòu),新增的圖,展示了類或協(xié)作的內(nèi)部結(jié)構(gòu),與構(gòu)件差別不大,經(jīng)常認(rèn)為與構(gòu)件圖等同與構(gòu)件差別不大,經(jīng)常認(rèn)為與構(gòu)件圖等同53/215描述特定場景下交互各方消息發(fā)送和接收的順序描述特定場景下交互各方消息發(fā)送和接收的順序呼叫方呼叫方電話線電話線應(yīng)叫方應(yīng)叫方54/215另一種交互圖,強(qiáng)調(diào)交互上下文:參與交另一種交互圖,強(qiáng)調(diào)交互上下文:參與交互的對象或角色的結(jié)
29、構(gòu)組織互的對象或角色的結(jié)構(gòu)組織控制電梯運(yùn)行的通信圖控制電梯運(yùn)行的通信圖2:nextjob=GetJob():Elevator:Queue:Ordernewlocalnextjob:Elevator control:ButtonPush()parameterjob1.2:Create( )1.1 *all queues: len:=Length( ) broadcast1.3:Invoke (job)1:GetElevator(floorid)job55/215以狀態(tài)機(jī)的形式描述目標(biāo)對象在各種以狀態(tài)機(jī)的形式描述目標(biāo)對象在各種事件作用下的行為事件作用下的行為電梯升降的狀態(tài)機(jī)圖電梯升降的狀態(tài)機(jī)圖Mo
30、ving updo/moving to floorMoving downdo/moving to floorIdletimer=0do/increase timerarrivedarrivedgo down (floor)Moving to First floorgo up(floor)timer=time-outarrivedgo up(floor)Onfirst floor56/215描述一系列活動之間的控制流和數(shù)據(jù)流描述一系列活動之間的控制流和數(shù)據(jù)流未付款未付款已付款已付款*對每一訂單項對每一訂單項有貨有貨缺貨缺貨取消并取消并退回訂單退回訂單收到訂單收到訂單付款認(rèn)可付款認(rèn)可檢查檢查訂單項
31、訂單項制作并發(fā)放制作并發(fā)放提貨單提貨單更新庫存更新庫存制作并發(fā)放制作并發(fā)放缺貨單缺貨單制作并發(fā)放制作并發(fā)放采購單采購單57/215描述系統(tǒng)運(yùn)行時各相關(guān)處理單元結(jié)點(diǎn)、各結(jié)描述系統(tǒng)運(yùn)行時各相關(guān)處理單元結(jié)點(diǎn)、各結(jié)點(diǎn)上部署的構(gòu)件、以及相互間的通信協(xié)議點(diǎn)上部署的構(gòu)件、以及相互間的通信協(xié)議DecNetTCP/IPTCP/IPClientA:Compaq Pro PCApplicationServer;Silicon GraphicsO2DatabaseServer:VAXClientB:Compaq Pro PC58/215部署圖的變體:描述系統(tǒng)實(shí)現(xiàn)制品的物理部署圖的變體:描述系統(tǒng)實(shí)現(xiàn)制品的物理結(jié)構(gòu),制品
32、包括文件、數(shù)據(jù)庫等結(jié)構(gòu),制品包括文件、數(shù)據(jù)庫等這兩個物理文件這兩個物理文件“承載了承載了”邏輯類邏輯類HelloWorld的實(shí)現(xiàn)的實(shí)現(xiàn)59/215描述包描述包(一種模型分解單位一種模型分解單位)以及包之間的關(guān)系以及包之間的關(guān)系售票處售票處計劃計劃廣告廣告進(jìn)度表進(jìn)度表客戶記錄客戶記錄票記錄票記錄運(yùn)作運(yùn)作售票售票工資單工資單計算計算購買購買60/215UML2.0新增的圖,描述對象間的交互,但關(guān)新增的圖,描述對象間的交互,但關(guān)注于關(guān)于時間的推理,而不僅僅是相對順序注于關(guān)于時間的推理,而不僅僅是相對順序添水添水加熱加熱61/215UML2.0新增的圖新增的圖可認(rèn)為是:活動圖可認(rèn)為是:活動圖+順序圖的
33、混合體順序圖的混合體使用活動圖的表示使用活動圖的表示法,其中的節(jié)點(diǎn)或法,其中的節(jié)點(diǎn)或者是一個交互或者者是一個交互或者是一個交互引用是一個交互引用62/215視圖視圖(view)UML圖圖(靜態(tài)方面靜態(tài)方面)UML圖圖(動態(tài)方面動態(tài)方面)用況視圖用況視圖 用況圖用況圖交互圖交互圖狀態(tài)機(jī)圖狀態(tài)機(jī)圖活動圖活動圖設(shè)計視圖設(shè)計視圖 類圖類圖對象圖對象圖同上同上交互視圖交互視圖與設(shè)計視圖相同,更強(qiáng)調(diào)消息交互方面與設(shè)計視圖相同,更強(qiáng)調(diào)消息交互方面實(shí)現(xiàn)視圖實(shí)現(xiàn)視圖 構(gòu)件圖構(gòu)件圖同上同上部署視圖部署視圖 部署圖部署圖同上同上需需求求設(shè)設(shè)計計實(shí)現(xiàn)實(shí)現(xiàn)部署部署63/215 描述可被最終用戶、分析人員和測試描述可被最
34、終用戶、分析人員和測試人員看到的人員看到的系統(tǒng)系統(tǒng)(外部外部)行為行為 不涉及系統(tǒng)的內(nèi)部結(jié)構(gòu),但卻是系統(tǒng)不涉及系統(tǒng)的內(nèi)部結(jié)構(gòu),但卻是系統(tǒng)體系結(jié)構(gòu)設(shè)計的驅(qū)動力體系結(jié)構(gòu)設(shè)計的驅(qū)動力 靜態(tài)方面:用況圖靜態(tài)方面:用況圖 動態(tài)方面:交互圖、狀態(tài)機(jī)圖、活動動態(tài)方面:交互圖、狀態(tài)機(jī)圖、活動圖圖64/215 描述系統(tǒng)設(shè)計方案,主要包括類、接描述系統(tǒng)設(shè)計方案,主要包括類、接口以及相互之間的協(xié)作關(guān)系口以及相互之間的協(xié)作關(guān)系 靜態(tài)方面:類圖、對象圖靜態(tài)方面:類圖、對象圖 動態(tài)方面:交互圖、狀態(tài)機(jī)圖、活動動態(tài)方面:交互圖、狀態(tài)機(jī)圖、活動圖圖65/215 展示系統(tǒng)不同部分之間的控制流,包括展示系統(tǒng)不同部分之間的控制流,
35、包括并發(fā)和同步機(jī)制并發(fā)和同步機(jī)制 主要針對系統(tǒng)的非功能性方面,例如性主要針對系統(tǒng)的非功能性方面,例如性能、可伸縮性、吞吐量等能、可伸縮性、吞吐量等 靜態(tài)方面:類圖、對象圖靜態(tài)方面:類圖、對象圖 動態(tài)方面:交互圖、狀態(tài)動態(tài)方面:交互圖、狀態(tài)機(jī)機(jī)圖、活動圖圖、活動圖 與設(shè)計視圖的區(qū)別:突出控制系統(tǒng)的主與設(shè)計視圖的區(qū)別:突出控制系統(tǒng)的主動類以及各部分間消息的流動動類以及各部分間消息的流動66/215 描述組成最終產(chǎn)品發(fā)布的相關(guān)制品及其描述組成最終產(chǎn)品發(fā)布的相關(guān)制品及其關(guān)系,實(shí)現(xiàn)單元體現(xiàn)為可裝配、打包并關(guān)系,實(shí)現(xiàn)單元體現(xiàn)為可裝配、打包并發(fā)布的文件發(fā)布的文件 體現(xiàn)了邏輯單元體現(xiàn)了邏輯單元(類和構(gòu)件類和構(gòu)
36、件)到物理制品到物理制品(物理構(gòu)件、文件等物理構(gòu)件、文件等)的映射的映射 靜態(tài)方面:構(gòu)件圖靜態(tài)方面:構(gòu)件圖 動態(tài)方面:交互圖、狀態(tài)動態(tài)方面:交互圖、狀態(tài)機(jī)機(jī)圖、活動圖圖、活動圖67/215 描述最終產(chǎn)品物理部署的拓?fù)浣Y(jié)構(gòu)描述最終產(chǎn)品物理部署的拓?fù)浣Y(jié)構(gòu) 包括組成整個系統(tǒng)的各種分布式硬件設(shè)包括組成整個系統(tǒng)的各種分布式硬件設(shè)備,以及各個軟件模塊在這些設(shè)備上的備,以及各個軟件模塊在這些設(shè)備上的部署和運(yùn)行關(guān)系部署和運(yùn)行關(guān)系 靜態(tài)方面:部署圖靜態(tài)方面:部署圖 動態(tài)方面:交互圖、狀態(tài)動態(tài)方面:交互圖、狀態(tài)機(jī)機(jī)圖、活動圖圖、活動圖68/215 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?面向?qū)ο蟮姆治龊驮O(shè)計過程面向
37、對象的分析和設(shè)計過程 UML概述概述 靜態(tài)建模靜態(tài)建模 動態(tài)建模動態(tài)建模 物理體系結(jié)構(gòu)建模物理體系結(jié)構(gòu)建模69/215 用況:文本形式的情節(jié)描述,用以說用況:文本形式的情節(jié)描述,用以說明某參與者使用系統(tǒng)以實(shí)現(xiàn)某一特定明某參與者使用系統(tǒng)以實(shí)現(xiàn)某一特定目標(biāo)的情形目標(biāo)的情形 用況建模用于描述一個系統(tǒng)應(yīng)該做什用況建模用于描述一個系統(tǒng)應(yīng)該做什么,用么,用用況圖用況圖來描述來描述(可能有多幅可能有多幅) 用況圖給出了用戶所感受到的系統(tǒng)行用況圖給出了用戶所感受到的系統(tǒng)行為,但不描述系統(tǒng)如何實(shí)現(xiàn)該功能為,但不描述系統(tǒng)如何實(shí)現(xiàn)該功能70/215 用框圖展示各類外部執(zhí)行者用框圖展示各類外部執(zhí)行者(actor)與系
38、與系統(tǒng)所提供的用況之間的參與關(guān)系,包括:統(tǒng)所提供的用況之間的參與關(guān)系,包括: 系統(tǒng)邊界、用況 執(zhí)行者(參與者):可能使用這些用況的人或外部系統(tǒng),參與者與用況連接表示參與者使用了該用況 模型元素間關(guān)系:關(guān)聯(lián)、擴(kuò)展、包含、泛化等 每個用況的細(xì)節(jié)通常用文字描述,也可以每個用況的細(xì)節(jié)通常用文字描述,也可以用活動圖來描述用活動圖來描述71/215關(guān)系關(guān)系說明說明記號記號關(guān)聯(lián)關(guān)聯(lián)參與者與所參與的一個用參與者與所參與的一個用況之間的通信路徑?jīng)r之間的通信路徑擴(kuò)展擴(kuò)展擴(kuò)展的用況到基本用況的擴(kuò)展的用況到基本用況的一種關(guān)系:擴(kuò)展用況可以一種關(guān)系:擴(kuò)展用況可以訪問基本用況的所有屬性,訪問基本用況的所有屬性,并在基本用
39、況基礎(chǔ)上增加并在基本用況基礎(chǔ)上增加新的行為新的行為extend72/215關(guān)系關(guān)系說明說明記號記號包含包含被包含用況是基本用況的一部被包含用況是基本用況的一部分,基本用況能看到被包含用分,基本用況能看到被包含用況并依賴于它的的執(zhí)行結(jié)果,況并依賴于它的的執(zhí)行結(jié)果,但二者不能相互訪問其它屬性但二者不能相互訪問其它屬性泛化泛化一個一般用況與一個更特殊的一個一般用況與一個更特殊的用況之間的關(guān)系,特殊用況可用況之間的關(guān)系,特殊用況可繼承一般用況的特征繼承一般用況的特征include73/215客戶客戶售票員售票員送貨員送貨員主管主管建立信建立信用用供應(yīng)訂供應(yīng)訂單單訂單支訂單支付付提供提供客戶數(shù)客戶數(shù)據(jù)據(jù)
40、產(chǎn)生訂產(chǎn)生訂單單信用卡信用卡支付支付現(xiàn)金支現(xiàn)金支付付設(shè)置訂設(shè)置訂單單請求請求目錄目錄電話訂購電話訂購includeinclude includeextend核對身核對身份份關(guān)聯(lián)關(guān)聯(lián)擴(kuò)展擴(kuò)展包含包含泛化泛化74/215銀行儲蓄帳戶管理系統(tǒng)銀行儲蓄帳戶管理系統(tǒng)includeincludeinclude銀行職員銀行職員(用戶代理)(用戶代理)帳戶管理帳戶管理銀行間轉(zhuǎn)帳銀行間轉(zhuǎn)帳開戶開戶取款取款銀行內(nèi)轉(zhuǎn)帳銀行內(nèi)轉(zhuǎn)帳注銷注銷存款存款校驗(yàn)密校驗(yàn)密碼碼轉(zhuǎn)帳轉(zhuǎn)帳報表生成報表生成其它銀行其它銀行帳戶管理系統(tǒng)帳戶管理系統(tǒng)客戶客戶系統(tǒng)管理員系統(tǒng)管理員銀行職員銀行職員(管理人員)(管理人員)包含包含泛化泛化75/21
41、576/215 客戶:用況模型指明了系統(tǒng)的功能,描述客戶:用況模型指明了系統(tǒng)的功能,描述了系統(tǒng)能如何使用了系統(tǒng)能如何使用 開發(fā)者:用況模型幫助他們理解系統(tǒng)要做開發(fā)者:用況模型幫助他們理解系統(tǒng)要做什么,同時為以后的其它模型建模、結(jié)構(gòu)什么,同時為以后的其它模型建模、結(jié)構(gòu)設(shè)計、實(shí)現(xiàn)等提供依據(jù)設(shè)計、實(shí)現(xiàn)等提供依據(jù) 集成測試和系統(tǒng)測試人員:根據(jù)用況來測集成測試和系統(tǒng)測試人員:根據(jù)用況來測試系統(tǒng),以驗(yàn)證系統(tǒng)是否完成了用況指定試系統(tǒng),以驗(yàn)證系統(tǒng)是否完成了用況指定的功能的功能77/215 定義系統(tǒng)定義系統(tǒng)(總體范圍總體范圍) 確定參與者確定參與者 確定用況確定用況 描述用況描述用況 定義用況間的關(guān)系定義用況間
42、的關(guān)系 確認(rèn)模型確認(rèn)模型78/215 根據(jù)項目的總體目標(biāo)根據(jù)項目的總體目標(biāo)/任務(wù)以及基本任務(wù)以及基本的開發(fā)決策決定的開發(fā)決策決定做什么不做什么做什么不做什么 總體目標(biāo)/任務(wù):實(shí)現(xiàn)出版社書籍的網(wǎng)上銷售 開發(fā)決策:網(wǎng)上支付采用銀聯(lián)支付系統(tǒng)、書籍的基本信息來自于出版社已有的編輯和發(fā)行管理系統(tǒng)(遺產(chǎn)系統(tǒng)) 邊界外的人或系統(tǒng)邊界外的人或系統(tǒng)(第三方系統(tǒng)、遺第三方系統(tǒng)、遺留系統(tǒng)等留系統(tǒng)等)成為候選的參與者成為候選的參與者79/215 參與者是指與系統(tǒng)交互的人、組織或其參與者是指與系統(tǒng)交互的人、組織或其它系統(tǒng)它系統(tǒng) 參與者代表一種角色,而不是具體的人參與者代表一種角色,而不是具體的人 可分成主參與者和輔助參
43、與者可分成主參與者和輔助參與者 主參與者是用況的直接執(zhí)行者,例如保險系統(tǒng)中業(yè)務(wù)員處理保險的注冊和管理 輔助參與者對于用況的執(zhí)行起輔助作用,例如保險系統(tǒng)中管理員負(fù)責(zé)分配業(yè)務(wù)員權(quán)限80/215 誰使用系統(tǒng)的主要功能誰使用系統(tǒng)的主要功能(主執(zhí)行者主執(zhí)行者) 誰需要從系統(tǒng)中得到對他們?nèi)粘9ぷ鞯闹С终l需要從系統(tǒng)中得到對他們?nèi)粘9ぷ鞯闹С?誰需要維護(hù)、管理和維持系統(tǒng)的日常運(yùn)行誰需要維護(hù)、管理和維持系統(tǒng)的日常運(yùn)行 系統(tǒng)需要控制哪些硬件設(shè)備系統(tǒng)需要控制哪些硬件設(shè)備 系統(tǒng)需要與哪些其它系統(tǒng)交互系統(tǒng)需要與哪些其它系統(tǒng)交互 哪些人或哪些系統(tǒng)對系統(tǒng)產(chǎn)生的結(jié)果哪些人或哪些系統(tǒng)對系統(tǒng)產(chǎn)生的結(jié)果(值值)感感興趣興趣81/2
44、15 用況的特征用況的特征 用況總是由參與者啟動的 執(zhí)行者必須直接或間接地指示系統(tǒng)去執(zhí)行用況 用況向參與者提供服務(wù)或返回結(jié)果,這些結(jié)果必須是可識別的 用況是完整的,一個用況必須是一個完整的描述(有開始、有結(jié)果)82/215 文本形式的情節(jié)描述,用以說文本形式的情節(jié)描述,用以說明某參與者使用系統(tǒng)以實(shí)現(xiàn)某明某參與者使用系統(tǒng)以實(shí)現(xiàn)某一特定目標(biāo)的情形一特定目標(biāo)的情形 例:顧客攜帶所購商品到達(dá)收銀臺,收銀員使用POS系統(tǒng)記錄每件商品,系統(tǒng)連續(xù)顯示累計金額并逐行顯示細(xì)目,顧客輸入支付信息,系統(tǒng)對支付信息進(jìn)行驗(yàn)證和記錄,成功后更新庫存信息,顧客從系統(tǒng)得到購物小票然后離開83/215 使用系統(tǒng)的一個特定情節(jié)或
45、用況的一條執(zhí)行路徑,使用系統(tǒng)的一個特定情節(jié)或用況的一條執(zhí)行路徑,即用況實(shí)例即用況實(shí)例(Use Case Instance) 主成功場景:顧客攜帶商品到收銀臺,順利地完成商品掃描及信用卡付款等全過程 替代場景1:商品掃描失敗,提示輸入商品唯一碼 替代場景2:信用卡劃賬通訊失敗,提示客戶使用現(xiàn)金結(jié)帳 替代場景n:用戶信用卡支付成功后要求退貨 因此用況就是一系列可能的場景集合因此用況就是一系列可能的場景集合84/215 執(zhí)行者需要系統(tǒng)提供哪些功能?執(zhí)行者需要系執(zhí)行者需要系統(tǒng)提供哪些功能?執(zhí)行者需要系統(tǒng)做什么統(tǒng)做什么? 執(zhí)行者是否需要讀、創(chuàng)建、刪除、修改或儲存執(zhí)行者是否需要讀、創(chuàng)建、刪除、修改或儲存系
46、統(tǒng)中的某類信息系統(tǒng)中的某類信息? 執(zhí)行者是否要被系統(tǒng)中的事件提醒,或者執(zhí)行執(zhí)行者是否要被系統(tǒng)中的事件提醒,或者執(zhí)行者是否要提醒系統(tǒng)中某些事情者是否要提醒系統(tǒng)中某些事情?從功能觀點(diǎn)看,從功能觀點(diǎn)看,這些事件表示什么這些事件表示什么? 執(zhí)行者的日常工作是否因?yàn)橄到y(tǒng)的新功能執(zhí)行者的日常工作是否因?yàn)橄到y(tǒng)的新功能(尤其尤其是目前尚未自動化的功能是目前尚未自動化的功能)而被簡化或提高效率而被簡化或提高效率85/215 使用文本描述使用文本描述 用況的目的 用況是如何啟動的:哪個參與者在什么情況下啟動(前提) 參與者和用況之間的消息流(步驟) 主消息流和其它消息流是什么主消息流和其它消息流是什么 根據(jù)條件或
47、異常情況等選擇不同的流程分支根據(jù)條件或異常情況等選擇不同的流程分支 系統(tǒng)中哪些實(shí)體被使用或修改(結(jié)果),如何確定用況執(zhí)行結(jié)束 使用活動圖描述使用活動圖描述86/215 執(zhí)行者的簡要描述,如執(zhí)行者的簡要描述,如 客戶:向公司訂購商品的人 客戶代表:公司處理客戶請求的雇員 庫存系統(tǒng):記錄公司庫存的軟件 用況的簡要描述,如用況的簡要描述,如 訂購貨物:客戶創(chuàng)建一個新的請求商品的訂單,并為那些商品付費(fèi) 取消訂單:客戶取消一個已經(jīng)存在的訂單87/215 用況名稱、參與者用況名稱、參與者 用況的前置條件和后置條件:用況開用況的前置條件和后置條件:用況開始和結(jié)束的條件始和結(jié)束的條件 事件流:一系列陳述句,從
48、參與者的事件流:一系列陳述句,從參與者的角度出發(fā)的一系列步驟角度出發(fā)的一系列步驟 一般有多個事件流:主要流程、其它流程 特殊需求:相關(guān)的非功能性需求特殊需求:相關(guān)的非功能性需求88/215用例的組成部分用例的組成部分注注 釋釋用例名稱用例名稱以動詞開始以動詞開始范圍范圍要設(shè)計的系統(tǒng)要設(shè)計的系統(tǒng)級別級別“用戶目標(biāo)用戶目標(biāo)”(基本流程基本流程)或或“子功能子功能”主要參與者主要參與者調(diào)用系統(tǒng)以提供服務(wù)的參與者調(diào)用系統(tǒng)以提供服務(wù)的參與者涉眾及其關(guān)注點(diǎn)涉眾及其關(guān)注點(diǎn)關(guān)注該用例的人,以及他們各自的需要關(guān)注該用例的人,以及他們各自的需要前置條件前置條件用例啟動前必須成立的條件用例啟動前必須成立的條件后置條
49、件后置條件用例結(jié)束后必須成立的條件用例結(jié)束后必須成立的條件主成功場景主成功場景典型的、理想的成功場景典型的、理想的成功場景替換場景替換場景其它可能的場景(成功或失?。┢渌赡艿膱鼍埃ǔ晒蚴。┨厥庑枨筇厥庑枨笙嚓P(guān)的非功能需求相關(guān)的非功能需求技術(shù)和數(shù)據(jù)變元表技術(shù)和數(shù)據(jù)變元表不同的不同的I/O方法及數(shù)據(jù)格式方法及數(shù)據(jù)格式發(fā)生頻率發(fā)生頻率當(dāng)前用例的發(fā)生頻率,可能影響調(diào)查、測當(dāng)前用例的發(fā)生頻率,可能影響調(diào)查、測試和實(shí)現(xiàn)的時間安排試和實(shí)現(xiàn)的時間安排其它問題其它問題仍待解決或確認(rèn)的問題仍待解決或確認(rèn)的問題89/215范圍:范圍:下一代下一代POSPOS系統(tǒng)系統(tǒng)級別:級別:用戶目標(biāo)用戶目標(biāo)主要參與者:主要
50、參與者:收銀員收銀員涉眾及其關(guān)注點(diǎn):涉眾及其關(guān)注點(diǎn):收銀員:準(zhǔn)確、快速地完成收銀操作收銀員:準(zhǔn)確、快速地完成收銀操作顧客:快速完成付款并獲得購物憑證以方便退貨顧客:快速完成付款并獲得購物憑證以方便退貨前置條件:前置條件:收銀員經(jīng)過認(rèn)證、顧客是超市會員收銀員經(jīng)過認(rèn)證、顧客是超市會員后置條件:后置條件:正確更新庫存、正確計算稅金正確更新庫存、正確計算稅金90/215主成功場景:主成功場景:1.1.顧客攜帶商品到收銀臺付款顧客攜帶商品到收銀臺付款2.2.收銀員啟動一次銷售過程收銀員啟動一次銷售過程n.n.顧客付款系統(tǒng)打印票據(jù)完成整個銷售過程顧客付款系統(tǒng)打印票據(jù)完成整個銷售過程替換場景:替換場景:a.
51、a.顧客信用卡額度不足要求退貨顧客信用卡額度不足要求退貨b.b.顧客信用卡額度不足要求退貨顧客信用卡額度不足要求退貨特殊需求:特殊需求:1.90%1.90%情況下信用卡刷卡響應(yīng)時間小于情況下信用卡刷卡響應(yīng)時間小于3030秒秒2.2.顧客能在顧客能在1 1米范圍內(nèi)清楚看到單價和累計金額顯示米范圍內(nèi)清楚看到單價和累計金額顯示91/215技術(shù)與數(shù)據(jù)變元:技術(shù)與數(shù)據(jù)變元:1.1.商品商品IDID獲取可以通過掃描和鍵盤輸入兩種方式獲取可以通過掃描和鍵盤輸入兩種方式2.2.商品商品IDID支持中國、歐洲及日本三支持中國、歐洲及日本三種種編碼標(biāo)準(zhǔn)編碼標(biāo)準(zhǔn)發(fā)生頻率:發(fā)生頻率:可能在可能在1616小時內(nèi)不間斷發(fā)
52、生小時內(nèi)不間斷發(fā)生其它問題:其它問題:1.1.收銀員下班后是否需要清理現(xiàn)金并進(jìn)行結(jié)帳處理收銀員下班后是否需要清理現(xiàn)金并進(jìn)行結(jié)帳處理2.2.該超市是否可能在未來實(shí)行該超市是否可能在未來實(shí)行2424小時營業(yè)小時營業(yè)92/215 關(guān)聯(lián):參與者與用況關(guān)聯(lián):參與者與用況 擴(kuò)展:用況與用況擴(kuò)展:用況與用況 包含:用況與用況包含:用況與用況 泛化:用況與用況泛化:用況與用況93/215本實(shí)例實(shí)現(xiàn)一個簡化了的銀行儲蓄賬戶管理系統(tǒng),該系統(tǒng)是在銀行的柜臺上對客戶辦理活期儲蓄業(yè)務(wù)。系統(tǒng)的需求陳述如下:一個客戶可以在多個銀行中開設(shè)賬戶,一個客戶也可在同一銀行中開設(shè)多個不同的賬戶??蛻艨梢酝ㄟ^銀行職員進(jìn)行開戶、存款、取
53、款、轉(zhuǎn)賬、注銷賬戶等活動。其中轉(zhuǎn)賬指客戶將自己的某個賬戶上的錢款轉(zhuǎn)入同一銀行的不同賬戶(稱為銀行內(nèi)轉(zhuǎn)賬)或轉(zhuǎn)入不同銀行的賬戶(稱為銀行間轉(zhuǎn)賬)。系統(tǒng)管理員負(fù)責(zé)系統(tǒng)的賬戶管理及業(yè)務(wù)報表的生成。94/215識別執(zhí)行者客戶:到銀行辦理儲蓄業(yè)務(wù)的人,負(fù)責(zé)輸入密碼銀行職員(客戶代理):銀行工作人員,代表客戶進(jìn)行儲蓄業(yè)務(wù)的操作銀行職員(管理人員):銀行工作人員,根據(jù)客戶的儲蓄業(yè)務(wù)更新賬戶管理員:銀行計算機(jī)的管理人員,負(fù)責(zé)賬戶的管理和業(yè)務(wù)報表的生成95/215識別用況從系統(tǒng)的需求陳述可知,銀行職員(客戶代理)需要系統(tǒng)提供開戶、存款、取款、轉(zhuǎn)賬、注銷賬戶等功能,這些功能都包含了校驗(yàn)密碼的功能。系統(tǒng)管理員需要系
54、統(tǒng)提供賬戶管理和報表生成功能。銀行職員(管理人員)則參與了賬戶管理中的更新賬戶的功能。此外,轉(zhuǎn)賬功能可分為銀行內(nèi)轉(zhuǎn)賬和銀行間轉(zhuǎn)賬,我們可將它們設(shè)計成三個用況,其中銀行內(nèi)轉(zhuǎn)賬用況和銀行間轉(zhuǎn)賬用況都繼承了基本轉(zhuǎn)賬用況。據(jù)此分析,得到該系統(tǒng)的用況圖如下圖所示。96/215銀行儲蓄賬戶管理系統(tǒng)銀行儲蓄賬戶管理系統(tǒng)包含包含包含包含包含包含銀行職員銀行職員(用戶代理)(用戶代理)賬戶管理賬戶管理銀行間轉(zhuǎn)賬銀行間轉(zhuǎn)賬開戶開戶取款取款銀行內(nèi)轉(zhuǎn)賬銀行內(nèi)轉(zhuǎn)賬注銷注銷存款存款校驗(yàn)密碼校驗(yàn)密碼轉(zhuǎn)賬轉(zhuǎn)賬報表生成報表生成其它銀行其它銀行賬戶管理系統(tǒng)賬戶管理系統(tǒng)客戶客戶系統(tǒng)管理員系統(tǒng)管理員銀行職員銀行職員(管理人員)(管理
55、人員)97/215開戶用況描述用況名稱:開戶參與的執(zhí)行者:銀行職員(客戶代理),客戶前置條件:一個合法的銀行職員(客戶代理)已登錄到該系統(tǒng)事件流:1.當(dāng)選擇開戶功能時用況開始2.輸入客戶信息(姓名、地址、身份證號等)3.從賬戶管理系統(tǒng)獲取新的賬號4.請客戶輸入密碼5.請客戶再次輸入密碼6.如果兩次密碼不一致則回到第4步,否則繼續(xù)7.在賬戶庫中添加新賬戶8.打印存折,用況結(jié)束后置條件:在賬戶庫中增加了一個新賬戶,得到一張新存折 98/215取款用況描述用況名稱:取款參與的執(zhí)行者:銀行職員(客戶代理)前置條件:一個合法的銀行職員(客戶代理)已登錄到該系統(tǒng)事件流:基本路徑:1.當(dāng)選擇取款功能時用況開
56、始2.當(dāng)輸入客戶信息(姓名、賬號等)后 a)如果客戶信息與賬戶不一致,顯示錯誤信息,可以重新輸入或結(jié)束用況 b)如果該賬戶被凍結(jié)(如因掛失而凍結(jié)),顯示凍結(jié)信息并結(jié)束用況3.輸入并校驗(yàn)密碼99/2154.輸入取款金額,如果該賬戶的余款小于取款金額,顯示錯誤信息,要求重新輸入5.打印取款單,交客戶簽字6.建立取款事件記錄,更新賬戶信息7. 打印存折,用況結(jié)束可選路徑:1.在第5步客戶簽字之前的任何時刻,客戶可以取消本次取款,用況結(jié)束2.第3步校驗(yàn)密碼時,如發(fā)現(xiàn)密碼不一致,則重新輸入密碼,或用況結(jié)束后置條件:如果取款成功,客戶賬戶中的余額被更新(減少),否則余額不變。100/215客戶不確認(rèn)客戶不
57、確認(rèn)客戶確認(rèn)客戶確認(rèn)余額余額取款取款額額未凍結(jié)未凍結(jié)不一致不一致一致一致選擇重新輸入選擇重新輸入選擇結(jié)束選擇結(jié)束凍結(jié)凍結(jié)余額取款額余額取款額打印取款單打印取款單輸入客戶信息輸入客戶信息顯示顯示錯誤信息錯誤信息建立取款記錄建立取款記錄更新賬戶信息更新賬戶信息打印存折打印存折顯示顯示錯誤信息錯誤信息輸入取款金額輸入取款金額輸入并校驗(yàn)密碼輸入并校驗(yàn)密碼顯示顯示凍結(jié)信息凍結(jié)信息101/215 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?面向?qū)ο蟮姆治龊驮O(shè)計過程面向?qū)ο蟮姆治龊驮O(shè)計過程 UML概述概述 用況建模用況建模 動態(tài)建模動態(tài)建模 物理體系結(jié)構(gòu)建模物理體系結(jié)構(gòu)建模102/215 類和對象模型的基本模型元
58、素有類、類和對象模型的基本模型元素有類、對象以及它們之間的關(guān)系對象以及它們之間的關(guān)系 對象圖是類圖的實(shí)例,描述某一時刻類圖中類的特定實(shí)例以及這些實(shí)例之間的特定鏈接 對象圖使用了與類圖相同的符號,只是在對象名下附加下劃線,對象名后可接以冒號和類名,即object-name: class-name 系統(tǒng)中的類和對象模型描述了系統(tǒng)的系統(tǒng)中的類和對象模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)靜態(tài)結(jié)構(gòu)103/215 對象名對象名 :類名:類名屬性名屬性名 = 值值操作操作類名類名屬性名屬性名 :類型:類型操作操作聚集聚集組合組合關(guān)聯(lián)關(guān)聯(lián)泛化泛化依賴依賴實(shí)現(xiàn)實(shí)現(xiàn)104/215實(shí)例實(shí)例xL4P2lineX1:realY1:r
59、ealX2:realY2:realpointX: realY: realL1: lineX1=10Y1=10X2= -10Y2= -10L2: lineL3: lineX1=10Y1= 5X2= -10Y2= -5L4: lineX1=9Y1=5X2=9Y2=3X1= -10Y1=10X2=10Y2= -10P1:pointX = 0Y = 0P2:pointX=9Y=4。5P1L1yL2類圖類圖對象圖對象圖105/215關(guān)系關(guān)系含含 義義符號符號關(guān)聯(lián)關(guān)聯(lián)兩個元素之間的關(guān)聯(lián)關(guān)系兩個元素之間的關(guān)聯(lián)關(guān)系依賴依賴兩個元素之間的依賴關(guān)系兩個元素之間的依賴關(guān)系泛化泛化一般與特殊關(guān)系一般與特殊關(guān)系聚集聚集
60、整體與部分之間的關(guān)聯(lián)關(guān)系整體與部分之間的關(guān)聯(lián)關(guān)系組合組合更強(qiáng)的一種整體與部分間的擁有關(guān)更強(qiáng)的一種整體與部分間的擁有關(guān)系,整體負(fù)責(zé)部分的創(chuàng)建和刪除系,整體負(fù)責(zé)部分的創(chuàng)建和刪除實(shí)現(xiàn)實(shí)現(xiàn)規(guī)約規(guī)約(specification)與它的實(shí)現(xiàn)之與它的實(shí)現(xiàn)之間的關(guān)系間的關(guān)系 106/215 從參與方數(shù)量分:二元關(guān)聯(lián)、多從參與方數(shù)量分:二元關(guān)聯(lián)、多元關(guān)聯(lián)元關(guān)聯(lián) 從參與限制:受限關(guān)聯(lián)從參與限制:受限關(guān)聯(lián) 整體和部分的關(guān)聯(lián):聚集和組合整體和部分的關(guān)聯(lián):聚集和組合107/215二元關(guān)聯(lián)表示為在兩個類之間用一條直線連二元關(guān)聯(lián)表示為在兩個類之間用一條直線連接,直線上可寫上關(guān)聯(lián)名接,直線上可寫上關(guān)聯(lián)名有首都有首都國家國家城市城市工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市綠化養(yǎng)護(hù)勞務(wù)分包合同書4篇
- 二零二五年度城市住宅出售協(xié)議書(含裝修及家具配置)4篇
- 二零二五年鍋爐維修工程承包與環(huán)保驗(yàn)收協(xié)議3篇
- 2024手繪藝術(shù)作品拍賣合同協(xié)議3篇
- 安徽省二零二五年度住房租賃市場租賃糾紛處理合同
- 2025年護(hù)林員勞動合同書(含森林資源保護(hù)培訓(xùn))3篇
- 2025版土地經(jīng)營權(quán)租賃與農(nóng)業(yè)產(chǎn)業(yè)扶貧合同3篇
- 二零二五年度高端房產(chǎn)交易意向金協(xié)議4篇
- 二零二五年度體育場館安保人員派遣管理協(xié)議3篇
- 二零二五年度數(shù)字貨幣技術(shù)研發(fā)與安全協(xié)議2篇
- 消防產(chǎn)品目錄(2025年修訂本)
- 地方性分異規(guī)律下的植被演替課件高三地理二輪專題復(fù)習(xí)
- 光伏項目風(fēng)險控制與安全方案
- 9.2提高防護(hù)能力教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版道德與法治七年級上冊
- 催收培訓(xùn)制度
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理體系 審核與認(rèn)證機(jī)構(gòu)要求》中文版(機(jī)翻)
- 2024年廣東省高考地理真題(解析版)
- 2024高考物理廣東卷押題模擬含解析
- 移動商務(wù)內(nèi)容運(yùn)營(吳洪貴)項目四 移動商務(wù)運(yùn)營內(nèi)容的傳播
- DB43T 2457-2022 烤煙采編烤分收包一體化作業(yè)規(guī)范
- GB/T 15945-1995電能質(zhì)量電力系統(tǒng)頻率允許偏差
評論
0/150
提交評論