第10章 面向?qū)ο蠓治鯻第1頁(yè)
第10章 面向?qū)ο蠓治鯻第2頁(yè)
第10章 面向?qū)ο蠓治鯻第3頁(yè)
第10章 面向?qū)ο蠓治鯻第4頁(yè)
第10章 面向?qū)ο蠓治鯻第5頁(yè)
已閱讀5頁(yè),還剩81頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第10章 面向?qū)ο蠓治?本章將介紹面向?qū)ο蠓治鲞^(guò)程、建立對(duì)象模型、建立動(dòng)態(tài)模型、建立功能模型和定義服務(wù)。本章目錄(I)n10.1 面向?qū)ο蠓治鲞^(guò)程n10.1.1 分析過(guò)程概述n10.1.2 需求陳述n10.1.3 三個(gè)模型n10.1.4 五個(gè)層次n10.2 建立對(duì)象模型n10.2.1 確定類與對(duì)象n10.2.1.1 識(shí)別潛在的類與對(duì)象n10.2.1.1.1 識(shí)別對(duì)象類型n10.2.1.1.2 初步分析n10.2.1.1.3 實(shí)例分析n10.2.1.2 篩選出正確的類與對(duì)象n10.2.1.2.1 冗余準(zhǔn)則n10.2.1.2.2 無(wú)關(guān)準(zhǔn)則n10.2.1.2.3 模糊準(zhǔn)則本章目錄(II)n10.2.

2、1.2.4 屬性準(zhǔn)則n10.2.1.2.5 操作準(zhǔn)則n10.2.1.2.6 實(shí)現(xiàn)準(zhǔn)則n10.2.2 確定關(guān)聯(lián)n10.2.2.1 初步確定關(guān)聯(lián)n10.2.2.2 篩選n10.2.2.3 完善關(guān)聯(lián)n10.2.3 劃分主題n10.2.4 確定屬性n10.2.3.1 方法和過(guò)程n10.2.3.2 刪除屬性的標(biāo)準(zhǔn)n10.2.5 識(shí)別繼承關(guān)系n10.2.6 優(yōu)化對(duì)象模型本章目錄(III)n10.3 建立動(dòng)態(tài)模型n10.3.1 編寫(xiě)腳本n10.3.2 設(shè)想用戶界面n10.3.3 事件跟蹤圖n10.3.4 狀態(tài)圖n10.3.5 優(yōu)化動(dòng)態(tài)模型n10.4 建立功能模型n10.4.1 基本系統(tǒng)模型圖n10.4.2

3、功能級(jí)數(shù)據(jù)流圖n10.4.3 處理框功能描述n10.5 定義服務(wù)n作業(yè)10.1 面向?qū)ο蠓治鲞^(guò)程n面向?qū)ο蠓治龆x:n面向?qū)ο蠓治觯∣OA-Object Oriented Analysis)是指用面向?qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。n面向?qū)ο蠓治鲞^(guò)程是提取和確定系統(tǒng)需求的過(guò)程。n首先,分析人員通過(guò)與用戶以及領(lǐng)域?qū)<医涣?,力?zhēng)完全地、全面地理解用戶需求;n然后,將這些理解表達(dá)成文檔,即需求規(guī)格說(shuō)明;n最后,通過(guò)用戶、領(lǐng)域?qū)<?、系統(tǒng)分析員和系統(tǒng)設(shè)計(jì)人員的評(píng)審后,確定需求規(guī)格說(shuō)明。n面向?qū)ο蠓治鲂枨笠?guī)格說(shuō)明主要包括:對(duì)象模型、動(dòng)態(tài)模型和功能模型。n面向?qū)ο蠓治鲂枨笠?guī)格說(shuō)明是面向?qū)ο笤O(shè)計(jì)的依據(jù)。1

4、0.1.1 分析過(guò)程概述(I)n概念:n分析過(guò)程就是提取系統(tǒng)的需求的過(guò)程,是指為了滿足用戶的需求,系統(tǒng)必須“做什么”,而不是“怎么做”(系統(tǒng)如何實(shí)現(xiàn))。n步驟:n(1) 系統(tǒng)分析通常是從一個(gè)需求文檔(陳述)和用戶一系列的討論開(kāi)始的。n需求文檔的制定人員:n一般來(lái)說(shuō),由用戶、領(lǐng)域?qū)<?、系統(tǒng)的開(kāi)發(fā)者以及其他有關(guān)人員參加制定需求文檔。n需求文檔的內(nèi)容:n1) 需求文檔應(yīng)給出一個(gè)完整的、一致的和靈活的描述,表明系統(tǒng)需求的一切,而且應(yīng)是可管理的。n2) 需求文檔應(yīng)包括功能操作和操作特征。n如,使用的容易性、可靠性、可維護(hù)性等性能。n3) 需求文檔應(yīng)包括軟件必須處理的接口、適應(yīng)環(huán)境以及其他設(shè)計(jì)上的約束。1

5、0.1.1 分析過(guò)程概述(II)n(2) 隨后,系統(tǒng)分析員要對(duì)需求文檔進(jìn)行分析。n必要性:n1) 需求文檔通常是不完整、不準(zhǔn)確的,也可能還是非正式的。n2) 通過(guò)分析可以發(fā)現(xiàn)和改正需求文檔中的歧義性、不一致性,剔除冗余的內(nèi)容,挖掘潛在的內(nèi)容,彌補(bǔ)不足,從而使需求文檔更完整、更準(zhǔn)確。n方法:n1) 在分析需求的過(guò)程中,系統(tǒng)分析員應(yīng)該反復(fù)、多次地與用戶討論、交流信息。n2) 應(yīng)該調(diào)研、觀察、了解現(xiàn)有的類似系統(tǒng)。n3) 應(yīng)該快速地建立一個(gè)原型系統(tǒng),通過(guò)在計(jì)算機(jī)上運(yùn)行原型系統(tǒng),使得分析員和用戶盡快交流和相互理解,從而能更正確地、更完整地提取和確定用戶的需求。10.1.1 分析過(guò)程概述(III)n(3)

6、 然后,是需求建模。n系統(tǒng)分析員根據(jù)提取的用戶需求,深入理解用戶需求,識(shí)別出問(wèn)題域內(nèi)的對(duì)象,并分析它們相互之間的關(guān)系,抽象出目標(biāo)系統(tǒng)應(yīng)該完成的需求任務(wù),并用OOA模型準(zhǔn)確地表示出來(lái),即用面向?qū)ο笥^點(diǎn)建立對(duì)象模型、動(dòng)態(tài)模型和功能模型。nOOA模型是面向?qū)ο笤O(shè)計(jì)(OOD)的基礎(chǔ),它應(yīng)該準(zhǔn)確地、簡(jiǎn)潔地表示問(wèn)題。通過(guò)建立模型,可避免理解上的片面性,提高目標(biāo)系統(tǒng)的正確性、可靠性。n在此基礎(chǔ)上,編寫(xiě)出面向?qū)ο蟮男枨笠?guī)格說(shuō)明。10.1.1 分析過(guò)程概述(IV)n(4) 最后,是需求評(píng)審。n通過(guò)用戶、領(lǐng)域?qū)<摇⑾到y(tǒng)分析員和系統(tǒng)設(shè)計(jì)人員的評(píng)審,并進(jìn)行反復(fù)修改后,確定需求規(guī)格說(shuō)明。n注意事項(xiàng):n1) 需求分析是復(fù)

7、雜而又艱辛的過(guò)程。n2) 系統(tǒng)分析人員應(yīng)該多和用戶交流,認(rèn)真和領(lǐng)域?qū)<姨接?。n3) 必須在領(lǐng)域?qū)<业闹笇?dǎo)和密切配合下進(jìn)行,才能有效地完成任務(wù)。10.1.2 需求陳述(1)n概念:n需求陳述也叫需求文檔或問(wèn)題陳述。n意義:n陳述需求是開(kāi)發(fā)任何一個(gè)系統(tǒng)的首要任務(wù)。n內(nèi)容:n1) 主要陳述用戶的需求,即該系統(tǒng)應(yīng)該“做什么”, 而不是“怎么做”(系統(tǒng)如何實(shí)現(xiàn))。n2) 應(yīng)該陳述系統(tǒng)任務(wù)是什么,而不是解決問(wèn)題的方法。n方法:n需求陳述必須要將解決問(wèn)題的目標(biāo)清楚地表達(dá)出來(lái)。n如果目標(biāo)模糊,將會(huì)影響系統(tǒng)分析、設(shè)計(jì)和實(shí)現(xiàn)等后續(xù)開(kāi)發(fā)階段的工作。n分析人員和用戶一起研究和討論才能準(zhǔn)確表達(dá)用戶的要求,并找出遺漏的信

8、息。10.1.2 需求陳述(2)n實(shí)例:n用OTM(Object Modeling Technique)開(kāi)發(fā)方法,以ATM(Auto Take Money )系統(tǒng)為例,提出需求陳述。n自動(dòng)取款機(jī)(ATM)系統(tǒng)結(jié)構(gòu)如下圖所示。10.1.2 需求陳述(3)nATM系統(tǒng)的需求陳述:n(1) 問(wèn)題綜述n某銀行擬開(kāi)發(fā)一個(gè)自動(dòng)取款機(jī)系統(tǒng),它是一個(gè)由自動(dòng)取款機(jī)、中央計(jì)算機(jī)、分行計(jì)算機(jī)及營(yíng)業(yè)終端組成的網(wǎng)絡(luò)系統(tǒng)。nATM和中央計(jì)算機(jī)由總行投資購(gòu)買(mǎi)。n總行擁有多臺(tái)ATM,分別設(shè)在全市各主要街道上。n分行負(fù)責(zé)提供分行計(jì)算機(jī)和營(yíng)業(yè)終端。n營(yíng)業(yè)終端設(shè)在分行下屬的各個(gè)儲(chǔ)蓄所內(nèi)。n系統(tǒng)的軟件開(kāi)發(fā)成本由各個(gè)分行共同承擔(dān)。10

9、.1.2 需求陳述(4)n(2) 實(shí)施陳述n1) 營(yíng)業(yè)終端處理流程:na) 銀行營(yíng)業(yè)員使用營(yíng)業(yè)終端處理儲(chǔ)戶提交的儲(chǔ)蓄事務(wù)。nb) 儲(chǔ)戶可以用現(xiàn)金或支票向自己擁有的某個(gè)賬戶內(nèi)存款或開(kāi)新賬戶,儲(chǔ)戶也可以從自己的賬戶中取款。n通常,一個(gè)儲(chǔ)戶可能擁有多個(gè)賬戶。nc) 營(yíng)業(yè)員負(fù)責(zé)把儲(chǔ)戶提交的存款或取款事務(wù)輸進(jìn)營(yíng)業(yè)終端,接收儲(chǔ)戶交來(lái)的現(xiàn)金或支票,或者付給儲(chǔ)戶現(xiàn)金。nd) 營(yíng)業(yè)終端與相應(yīng)的分行計(jì)算機(jī)通信,分行計(jì)算機(jī)具體處理針對(duì)某個(gè)賬戶的事務(wù)并且維護(hù)賬戶。10.1.2 需求陳述(5)n2) 現(xiàn)金兌換卡實(shí)施細(xì)則:na) 擁有銀行賬戶的儲(chǔ)戶有權(quán)申請(qǐng)領(lǐng)取現(xiàn)金兌換卡。n所謂現(xiàn)金兌換卡,就是一張?zhí)刂频拇趴?,上面有分行?/p>

10、碼和卡號(hào)。n分行代碼惟一標(biāo)識(shí)總行下屬的一個(gè)分行,卡號(hào)確定了這張卡可以訪問(wèn)哪些賬戶。nb) 使用兌換卡可以通過(guò)ATM訪問(wèn)自己的賬戶。n目前,僅限于用現(xiàn)金兌換卡在ATM上提取現(xiàn)金(即取款),或查詢有關(guān)自己賬戶的信息(例如,某個(gè)指定賬戶上的余額)。n將來(lái),可能還要求使用ATM辦理轉(zhuǎn)賬、存款等事務(wù)。nc) 通常,一張卡可以訪問(wèn)儲(chǔ)戶的若干個(gè)賬戶,但是不一定能訪問(wèn)這個(gè)儲(chǔ)戶的全部賬戶。nd) 系統(tǒng)應(yīng)該能夠處理并發(fā)的訪問(wèn)。n每張現(xiàn)金兌換卡僅屬于一個(gè)儲(chǔ)戶所有,但是,同一張卡可能有多個(gè)副本,因此,必須考慮同時(shí)在若干臺(tái)ATM上使用同樣的現(xiàn)金兌換卡的可能性。10.1.2 需求陳述(6)n3) ATM處理流程:na)

11、當(dāng)用戶把現(xiàn)金兌換卡插入ATM之后,ATM就與用戶交互,以獲取有關(guān)這次事務(wù)的信息,并與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息。nb) 首先,ATM要求用戶輸入密碼。nc) 接下來(lái),ATM把從這張卡上讀到的信息以及用戶輸入的密碼傳給中央計(jì)算機(jī),請(qǐng)求中央計(jì)算機(jī)核對(duì)這些信息并處理這次事務(wù)。nd) 中央計(jì)算機(jī)根據(jù)卡上的分行代碼確定這次事務(wù)與分行的對(duì)應(yīng)關(guān)系,并且委托相應(yīng)的分行計(jì)算機(jī)驗(yàn)證用戶密碼。ne) 如果用戶輸入的密碼是正確的,ATM就要求用戶選擇事務(wù)類型(取款、查詢等)。nf) 當(dāng)用戶選擇取款時(shí),ATM請(qǐng)求用戶輸入取款額。ng) 最后,ATM從現(xiàn)金出口輸出現(xiàn)金,并且打印出賬單交給用戶。10.1.3 三個(gè)模型n面

12、向?qū)ο蠼J敲嫦驅(qū)ο蠓治龅年P(guān)鍵。n面向?qū)ο蟮哪P桶ㄒ韵氯齻€(gè):n對(duì)象模型n對(duì)象模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。n動(dòng)態(tài)模型n動(dòng)態(tài)模型描述了系統(tǒng)的互交次序。n功能模型。n功能模型描述了系統(tǒng)的數(shù)據(jù)變換。n不同的問(wèn)題,三個(gè)子模型的側(cè)重程度不同:n(1) 對(duì)象模型是最基礎(chǔ)的、最核心的、最重要的。n無(wú)論解決什么問(wèn)題,首先要在問(wèn)題域中提取和定義出對(duì)象模型。n(2) 當(dāng)問(wèn)題涉及用戶界面與過(guò)程控制時(shí),動(dòng)態(tài)模型是重點(diǎn)。n(3) 如果問(wèn)題涉及大量數(shù)據(jù)變換,則功能模型非常重要。n(4) 對(duì)象模型中的操作(服務(wù))可以出現(xiàn)在動(dòng)態(tài)模型和功能模型內(nèi)。10.1.4 五個(gè)層次(1)n對(duì)于一個(gè)復(fù)雜問(wèn)題的面向?qū)ο蟮哪P涂捎梦鍌€(gè)層次表示,如

13、下圖“對(duì)象模型的五個(gè)層次”所示:n五個(gè)層次就像合并在一起的五個(gè)透明的圖層一樣,每一層從不同角度將對(duì)象模型更細(xì)化、更具體化。主題層 subject level類-對(duì)象層object結(jié)構(gòu)層 structure屬性層 attribute服務(wù)層 serves10.1.4 五個(gè)層次(2)n主題(Subject)層n主題給出分析模型的總體概貌,是控制讀者在同一時(shí)間所能考慮的模型規(guī)模的機(jī)制。n類-&-對(duì)象(Class & Object)層n對(duì)象是數(shù)據(jù)及其處理的抽象,它反映了保存有關(guān)信息和與現(xiàn)實(shí)世界交互的能力。n結(jié)構(gòu)(Structure)層n結(jié)構(gòu)表示問(wèn)題域的復(fù)雜性。n類-成員結(jié)構(gòu)反映了一般-特

14、殊關(guān)系。n整體-部分結(jié)構(gòu)反映了整體-部分的關(guān)系。n屬性(Attribute)層n屬性是數(shù)據(jù)元素,用來(lái)描述對(duì)象或分類結(jié)構(gòu)的實(shí)例,可在圖中給出并在對(duì)象的儲(chǔ)存中指定,即給出對(duì)象定義的同時(shí),指定屬性。n服務(wù)(Serves)層n服務(wù)是接收到消息后必須執(zhí)行的一些處理,可在圖上標(biāo)明它并在對(duì)象的儲(chǔ)存中指定,即給出對(duì)象定義的同時(shí),定義服務(wù)。10.1.4 五個(gè)層次(3)n面向?qū)ο竽P偷奈鍌€(gè)層次對(duì)應(yīng)面向?qū)ο蠓治龅奈鍌€(gè)主要活動(dòng)組成:n確定類-對(duì)象n識(shí)別結(jié)構(gòu)n識(shí)別主題n定義屬性n定義服務(wù)(方法)n五個(gè)活動(dòng)的執(zhí)行順序:n五個(gè)主要活動(dòng)可以同時(shí)(并行)處理。n五個(gè)活動(dòng)的工作可以不按順序進(jìn)行,也沒(méi)必要完成一項(xiàng)活動(dòng)后才開(kāi)始另一項(xiàng)

15、活動(dòng)工作。n五個(gè)主要活動(dòng)沒(méi)有必要遵循自頂向下,逐步求精的原則。n可以從較高抽象層轉(zhuǎn)移到較低的具體層,然后再返回到較高抽象層繼續(xù)處理。n當(dāng)系統(tǒng)分析員在確定類-對(duì)象的同時(shí),想到該類的服務(wù),則可以先確定服務(wù)后,再返回去繼續(xù)尋找類-對(duì)象。10.1.4 五個(gè)層次(4)n基于五個(gè)活動(dòng)的面向?qū)ο蠓治鲞^(guò)程的流程為:n(1) 確定類-對(duì)象;n(2) 識(shí)別結(jié)構(gòu);n(3) 識(shí)別主題;n(4) 定義屬性;n(5) 建立動(dòng)態(tài)模型;n(6) 建立功能模型;n(7) 定義服務(wù)(方法)。n因?yàn)閯?dòng)態(tài)模型和功能模型更準(zhǔn)確地描述了類中所提供的服務(wù)的需求,所以,類中操作(服務(wù))需等到建立了這兩個(gè)模型之后再確定。n對(duì)于大型的、復(fù)雜的問(wèn)

16、題,不可能嚴(yán)格按照上面流程進(jìn)行,需要反復(fù)多次進(jìn)行尋找、確定、識(shí)別、建立和定義來(lái)構(gòu)造模型。n(1) 首先,構(gòu)造出模型的雛形或部分;n(2) 隨后,逐步擴(kuò)充、修改、求精直至滿意為止;n(3) 然后,構(gòu)造出符合問(wèn)題域需求的正確的、準(zhǔn)確的、完整的目標(biāo)系統(tǒng)的模型;n(4) 最后,編寫(xiě)出需求規(guī)格說(shuō)明。10.2 建立對(duì)象模型n對(duì)象模型的作用:n描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的類和對(duì)象,它們的屬性和操作,以及它們之間的聯(lián)系。n對(duì)象模型的重要性:n對(duì)象模型描述了系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),它是三個(gè)模型的最關(guān)鍵的一個(gè)模型。n對(duì)象模型為建立動(dòng)態(tài)模型和功能模型提供了實(shí)質(zhì)性的框架。n一個(gè)系統(tǒng)首先創(chuàng)建對(duì)象模型,然后再創(chuàng)建動(dòng)態(tài)模型和

17、功能模型。n面向?qū)ο蠓椒ㄊ且詫?duì)象為基礎(chǔ)來(lái)構(gòu)造系統(tǒng),而不是以功能為基礎(chǔ)來(lái)構(gòu)造系統(tǒng)。n對(duì)象模型是基礎(chǔ),動(dòng)態(tài)模型和功能模型在此基礎(chǔ)上創(chuàng)建。n對(duì)象模型的建立目標(biāo):n目標(biāo)是從問(wèn)題域中提煉出對(duì)目標(biāo)系統(tǒng)有價(jià)值的概念,描述問(wèn)題域中的類-對(duì)象以及它們之間的關(guān)系,表示出目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。n靜態(tài)數(shù)據(jù)結(jié)構(gòu)相對(duì)于用戶的需求變化來(lái)說(shuō),相對(duì)比較穩(wěn)定。n靜態(tài)數(shù)據(jù)結(jié)構(gòu)較少地依賴應(yīng)用細(xì)節(jié),比較容易確定。10.2.1 確定類與對(duì)象n主要任務(wù):n系統(tǒng)分析員需要在問(wèn)題域中,通過(guò)分析找出客觀存在的類與對(duì)象。n步驟:n(1) 識(shí)別潛在的類與對(duì)象n(2) 篩選出正確的類與對(duì)象n通過(guò)篩選,剔除冗余的類與對(duì)象之后,精選出可作為目標(biāo)系統(tǒng)的正

18、式類與對(duì)象。10.2.1.1 識(shí)別潛在的類與對(duì)象n識(shí)別潛在的類與對(duì)象包括以下兩個(gè)過(guò)程:n(1) 識(shí)別對(duì)象類型n(2) 初步分析10.2.1.1.1 識(shí)別對(duì)象類型n對(duì)象是人們要研究的任何事物及對(duì)問(wèn)題域中有意義的事物的抽象,它們既可能是物理實(shí)體,也可能是抽象概念(規(guī)則、計(jì)劃和事件)。n具體地說(shuō),對(duì)象可分為如下幾種類型:n(1) 物理實(shí)體n指有形的實(shí)物。n例如,飛機(jī)、汽車、計(jì)算機(jī)、書(shū)或機(jī)房等。n(2) 人或組織的角色n例如,醫(yī)生、教師、學(xué)生、工人、部門(mén)或公司等。n(3) 事件n指在特定時(shí)間所發(fā)生的事。n例如,飛行、演出、開(kāi)會(huì)、訪問(wèn)或事故等。n(4) 性能說(shuō)明n指廠商對(duì)產(chǎn)品性能的說(shuō)明。n例如,產(chǎn)品名字

19、、型號(hào)、規(guī)格和各種性能指標(biāo)等。10.2.1.1.2 初步分析n初步分析的方法包括:n(1) 依據(jù)對(duì)象的不同類型,找出在當(dāng)前問(wèn)題域中潛在的類與對(duì)象。n(2) 依據(jù)以自然語(yǔ)言書(shū)寫(xiě)的需求文檔(陳述),這是一種比較簡(jiǎn)單的、非正式的分析。n名詞:可作為潛在(候選)的類與對(duì)象。n形容詞:可作為線索來(lái)確定屬性。n動(dòng)詞:可作為潛在的服務(wù)(操作)。n候選者找出之后,必須經(jīng)過(guò)嚴(yán)格地篩選,清除掉不正確的或不必要的事物,保留正確的或必要的事物。n初步分析的結(jié)果可作為更詳細(xì)、更精確的正式的面向?qū)ο蠓治龅碾r形,當(dāng)然,也是正式的面向?qū)ο蠓治龅囊粋€(gè)良好的開(kāi)端。10.2.1.1.3 實(shí)例分析n以ATM系統(tǒng)為例,說(shuō)明非正式分析過(guò)

20、程。n(1) 仔細(xì)閱讀10.1.2節(jié)給出的需求陳述,從陳述中找出下列名詞作為類-對(duì)象的初步的候選者。n銀行、自動(dòng)取款機(jī)(ATM)、系統(tǒng)、中央計(jì)算機(jī)、分行計(jì)算機(jī)、營(yíng)業(yè)終端、網(wǎng)絡(luò)、總行、分行、軟件、成本、市、街道、營(yíng)業(yè)廳、儲(chǔ)蓄所。營(yíng)業(yè)員、儲(chǔ)戶、現(xiàn)金、支票、賬戶、事務(wù)、現(xiàn)金兌換卡、余額、磁卡、分行代碼、卡號(hào)、用戶、副本、信息、密碼、類型、取款額、賬單以及訪問(wèn)等。n(2) 通常,在需求陳述中不會(huì)一個(gè)不漏地寫(xiě)出問(wèn)題域中所有有關(guān)的類-對(duì)象,因此,分析員應(yīng)該根據(jù)領(lǐng)域知識(shí)或常識(shí)進(jìn)一步把隱含的類-對(duì)象提取出來(lái)。n例如,在ATM系統(tǒng)的需求陳述中沒(méi)有寫(xiě)“通信鏈路”和“事務(wù)日志”,但是,根據(jù)領(lǐng)域知識(shí)和常識(shí)可以知道,在

21、ATM系統(tǒng)中應(yīng)該包含這兩個(gè)實(shí)體。10.2.1.2 篩選出正確的類與對(duì)象n通過(guò)非正式分析找出的候選對(duì)象,僅僅是提供給分析員的初步的候選者,接下來(lái),還應(yīng)該對(duì)每個(gè)候選對(duì)象進(jìn)行嚴(yán)格考察、篩選,從中去掉不正確的或不必要的,僅保留正確的或必要的對(duì)象。n在現(xiàn)實(shí)世界中,存在著許多對(duì)象,但僅可討論而已,不能全部納入系統(tǒng)中去。n篩選類與對(duì)象的準(zhǔn)則包括:n(1) 冗余準(zhǔn)則n(2) 無(wú)關(guān)準(zhǔn)則n(3) 模糊準(zhǔn)則n(4) 屬性準(zhǔn)則n(5) 操作準(zhǔn)則n(6) 實(shí)現(xiàn)準(zhǔn)則10.2.1.2.1 冗余準(zhǔn)則n若兩個(gè)類表達(dá)了同樣的信息,則應(yīng)該保留在此問(wèn)題域中最富于描述力的那個(gè)名稱,去掉冗余的類。n實(shí)例n上面初步分析得出了ATM系統(tǒng)的3

22、4個(gè)候選的類:n其中,儲(chǔ)戶與用戶,現(xiàn)金兌換卡與磁卡及副本分別描述了相同的信息。n因此,應(yīng)該將“用戶”、“磁卡”、“副本”等冗余的類去掉,僅保留“儲(chǔ)戶”和“現(xiàn)金兌換卡”這兩個(gè)類。10.2.1.2.2 無(wú)關(guān)準(zhǔn)則n刪除那些與問(wèn)題沒(méi)有多少關(guān)系或根本無(wú)關(guān)的類,僅把與問(wèn)題密切相關(guān)的類-對(duì)象放進(jìn)目標(biāo)系統(tǒng)中。n有些類在其他問(wèn)題中可能很重要,但與當(dāng)前要解決的問(wèn)題無(wú)關(guān),同樣也應(yīng)該把它們刪掉。n實(shí)例n在ATM系統(tǒng)中,應(yīng)該去掉 “成本”、“市”、“街道”、“營(yíng)業(yè)廳”和“儲(chǔ)蓄所”等候選類。n原因:n(1) 本系統(tǒng)并不處理軟件開(kāi)發(fā)成本的問(wèn)題n(2) ATM和營(yíng)業(yè)員終端放置的地點(diǎn)與本軟件的關(guān)系也不大。10.2.1.2.3

23、模糊準(zhǔn)則n在初步分析時(shí),列出來(lái)的作為候選的類-對(duì)象中,可能有一些模糊的、泛指的名詞。因此,通常應(yīng)去掉這些籠統(tǒng)的或模糊的類。n模糊的、泛指的名詞包括:n系統(tǒng)無(wú)須記憶的信息;n雖然在需求陳述中,但它們所暗示的事務(wù),有更明確更具體的名詞來(lái)表示。n實(shí)例n在ATM系統(tǒng)中:n“銀行”實(shí)際指總行或分行。n“訪問(wèn)”在這里實(shí)際指事務(wù)。n“信息”的具體內(nèi)容在需求陳述中隨后就指明了。n此外,還有一些籠統(tǒng)含糊的名詞。n因此,在本例中,應(yīng)該去掉“銀行”、“網(wǎng)絡(luò)”、“系統(tǒng)”、“軟件”、“信息”和“訪問(wèn)”等候選類。10.2.1.2.4 屬性準(zhǔn)則n對(duì)象是用屬性來(lái)描述的,若有些名詞只是其他對(duì)象的屬性的描述,則應(yīng)該把這些名詞從候

24、選類-對(duì)象中去掉。n當(dāng)然,如果某個(gè)性質(zhì)具有很強(qiáng)的獨(dú)立性,則應(yīng)把它作為類而不是作為屬性。n實(shí)例n在ATM系統(tǒng)中,“現(xiàn)金”、“支票”、“取款額”、“賬單”、“余額”、“分行代碼”、“卡號(hào)”、“密碼”和“類型”等,實(shí)際上都應(yīng)該作為屬性而不是作為類。n在分析人員考慮不周的地方,該準(zhǔn)則能幫助他篩選潛在的對(duì)象。10.2.1.2.5 操作準(zhǔn)則n在需求陳述中,有時(shí)可能使用一些既可作為名詞又可作為動(dòng)詞的詞,此時(shí),應(yīng)根據(jù)它們?cè)诒締?wèn)題中的含義來(lái)決定它們是作為類還是作為類中定義的操作。n實(shí)例n通常把電話“撥號(hào)”當(dāng)作動(dòng)詞,當(dāng)構(gòu)造電話模型時(shí),確實(shí)應(yīng)該把它作為一個(gè)操作,而不是一個(gè)類。n但是,在開(kāi)發(fā)電話的自動(dòng)記賬系統(tǒng)時(shí),把“

25、撥號(hào)”作為重要的一個(gè)類,n因?yàn)椋凶约旱娜掌?、時(shí)間、受話地點(diǎn)等屬性。n總之,當(dāng)一個(gè)操作具有屬性需獨(dú)立存在時(shí),應(yīng)該作為類-對(duì)象而不是作為類的操作。10.2.1.2.6 實(shí)現(xiàn)準(zhǔn)則n在分析階段,應(yīng)該去掉僅和實(shí)現(xiàn)有關(guān)的候選的類-對(duì)象。n因?yàn)椋谠O(shè)計(jì)和實(shí)現(xiàn)階段,這些類-對(duì)象可能是重要的,但是,目標(biāo)系統(tǒng)實(shí)現(xiàn)不應(yīng)該在分析階段考慮,不然會(huì)分散我們的注意力。n實(shí)例n在ATM系統(tǒng)中,“事務(wù)日志”無(wú)非是對(duì)一系列事務(wù)的記錄,它的確切表示方式是面向?qū)ο笤O(shè)計(jì)的議題;n“通信鏈路”在邏輯上是一種聯(lián)系,在系統(tǒng)實(shí)現(xiàn)時(shí)它是關(guān)聯(lián)鏈的物理實(shí)現(xiàn)。n因此,應(yīng)該暫時(shí)去掉“事務(wù)日志”和“通信鏈路”這兩個(gè)類,在設(shè)計(jì)或?qū)崿F(xiàn)時(shí)再考慮它們。n經(jīng)過(guò)

26、上述六種準(zhǔn)則的篩選,在ATM系統(tǒng)的例子中,僅剩下了下列一些類-對(duì)象:nATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)、營(yíng)業(yè)終端、總行、分行、營(yíng)業(yè)員、儲(chǔ)戶、賬戶、事務(wù)和現(xiàn)金兌換卡等。10.2.2 確定關(guān)聯(lián)n定義:n關(guān)聯(lián)指兩個(gè)或多個(gè)對(duì)象之間的相互依賴、相互作用的關(guān)系。n確定關(guān)聯(lián)的時(shí)機(jī):n一般情況下,在初步分析問(wèn)題域中的類與對(duì)象確定之后,接著就可以分析、確定類與對(duì)象之間存在的關(guān)聯(lián)關(guān)系。n分析員也可以不按照這樣的工作順序,靈活地選取自己習(xí)慣的工作方式。n因?yàn)?,在整個(gè)開(kāi)發(fā)過(guò)程中,從OOAOOD,面向?qū)ο蟾拍詈捅硎痉?hào)都是一致的。n確定關(guān)聯(lián)的意義:n分析、確定關(guān)聯(lián),能促使分析員考慮問(wèn)題域的邊緣情況,有助于發(fā)現(xiàn)那些潛在的類

27、與對(duì)象。n注意:n聚集關(guān)系(整體-部分關(guān)系)是關(guān)聯(lián)的一個(gè)特例,在分析、確定關(guān)聯(lián)的過(guò)程中,不必明確地去區(qū)分關(guān)聯(lián)和聚集。10.2.2.1 初步確定關(guān)聯(lián)(I)n通常,關(guān)聯(lián)關(guān)系在需求陳述中,使用描述性動(dòng)詞或動(dòng)詞詞組來(lái)表示。確定步驟為:n首先,直接提取需求陳述中的動(dòng)詞詞組來(lái)初步確定多數(shù)的關(guān)聯(lián);n然后,挖掘一些在陳述中隱含的關(guān)聯(lián);n最后,根據(jù)問(wèn)題域?qū)嶓w間的相互依賴、相互作用關(guān)系,與用戶及領(lǐng)域?qū)<矣懻?,作進(jìn)一步的補(bǔ)充。n實(shí)例n以ATM系統(tǒng)為例,按上述步驟,經(jīng)過(guò)分析,初步確定出如下表所示的關(guān)聯(lián)。n“”:表示刪掉的關(guān)聯(lián)。n“”:表示分解后又刪掉的關(guān)聯(lián)。10.2.2.1 初步確定關(guān)聯(lián)(II)確定方法關(guān) 聯(lián)直接提取

28、動(dòng)詞短語(yǔ)得出關(guān)聯(lián) (1) ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)及營(yíng)業(yè)員終端組成網(wǎng)絡(luò) () (2) 總行擁有多臺(tái)ATM ()(3) ATM設(shè)在主要街道上 ()(4) 分行提供分行計(jì)算機(jī)和營(yíng)業(yè)終端 () (5) 營(yíng)業(yè)終端設(shè)在分行營(yíng)業(yè)廳及儲(chǔ)蓄所內(nèi) ()(6) 分行分?jǐn)傑浖_(kāi)發(fā)成本 ()(7) 儲(chǔ)戶擁有賬戶 (8) 分行計(jì)算機(jī)處理針對(duì)賬戶的事務(wù) ()(9) 分行計(jì)算機(jī)維護(hù)賬戶 ()(10) 營(yíng)業(yè)終端與分行計(jì)算機(jī)通信 (11) 營(yíng)業(yè)員輸入針對(duì)賬戶的事務(wù) ()(12) ATM與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息 ()(13) 中央計(jì)算機(jī)確定事務(wù)與分行的對(duì)應(yīng)關(guān)系 ()(14) ATM讀現(xiàn)金兌換卡 ()(15) ATM與

29、用戶交互 ()(16) ATM輸出現(xiàn)金 ()(17) ATM打印賬單 ()(18) 系統(tǒng)處理并發(fā)的訪問(wèn) ()10.2.2.1 初步確定關(guān)聯(lián)(III)確定方法關(guān) 聯(lián)需求陳述中隱含關(guān)聯(lián)(19) 總行由各個(gè)分行組成(20) 分行保管賬戶(21) 總行擁有中央計(jì)算機(jī)(22) 系統(tǒng)維護(hù)事務(wù)日志 ()(23) 系統(tǒng)提供必要的安全性 ()(24) 儲(chǔ)戶擁有現(xiàn)金兌換卡 根據(jù)問(wèn)題域知識(shí)得出關(guān)聯(lián)(25) 現(xiàn)金兌換卡訪問(wèn)賬戶 (26) 分行聘用營(yíng)業(yè)員 10.2.2.1 初步確定關(guān)聯(lián)(IV)進(jìn)一步完善關(guān)聯(lián)(27) 中央計(jì)算機(jī)與分行通信(中央計(jì)算機(jī)確定事務(wù)與分行的對(duì)應(yīng)關(guān)系改名)(28) 營(yíng)業(yè)員輸入事務(wù) (營(yíng)業(yè)員輸入針對(duì)

30、賬戶的事務(wù)的分解)(29) 事務(wù)修改賬戶 (同上)(30) 分行計(jì)算機(jī)處理事務(wù) (分行計(jì)算機(jī)處理針對(duì)賬戶的事務(wù)的分解)(31) 事務(wù)處理賬戶 (同上)(32) ATM與中央計(jì)算機(jī)通信 (ATM與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息)(33) 在ATM上輸入事務(wù) (同上)(34) 總行擁有中央計(jì)算機(jī) (總行擁有多臺(tái)ATM的分解)(35) 分行保管賬戶 (分行計(jì)算機(jī)維護(hù)賬戶)(36) 事務(wù)修改賬戶 (同上)(37) 分行擁有分行計(jì)算機(jī)(分行提供分行計(jì)算機(jī)和營(yíng)業(yè)終端的分解)(38) 分行擁有營(yíng)業(yè)終端 (同上)(39) 營(yíng)業(yè)員輸入營(yíng)業(yè)事務(wù)(增補(bǔ))(40) 營(yíng)業(yè)事務(wù)輸進(jìn)營(yíng)業(yè)終端(增補(bǔ))(41) 在ATM上輸入遠(yuǎn)

31、程事務(wù)(增補(bǔ))(42) 遠(yuǎn)程事務(wù)由現(xiàn)金兌換卡授權(quán)(增補(bǔ))10.2.2.2 篩選(I)n經(jīng)初步分析得出的候選關(guān)聯(lián),還需認(rèn)真篩選。主要依據(jù)的篩選關(guān)聯(lián)的標(biāo)準(zhǔn)包括:n(1) 刪除已去掉的類之間的關(guān)聯(lián)n在分析、確定類-對(duì)象的過(guò)程中,如果已經(jīng)刪掉了某個(gè)候選類,則與這個(gè)類有關(guān)的關(guān)聯(lián)也應(yīng)該刪掉,或用其他類重新表達(dá)這個(gè)關(guān)聯(lián)。n實(shí)例n在ATM系統(tǒng)中,由于已經(jīng)刪掉了“系統(tǒng)”、“網(wǎng)絡(luò)”、“市”、“街道”、“成本”、“軟件”、“事務(wù)日志”、“現(xiàn)金”、“營(yíng)業(yè)廳”、“儲(chǔ)蓄所”和“賬單”等候選類,因此,與這些類有關(guān)的以下八個(gè)關(guān)聯(lián)也應(yīng)該刪掉。n包括:上表中的(1),(3),(5),(6),(16),(17),(22),(23)

32、。10.2.2.2 篩選(II)n(2) 刪除與問(wèn)題無(wú)關(guān)的關(guān)聯(lián)或?qū)崿F(xiàn)階段的關(guān)聯(lián)n在侯選類中,應(yīng)該把與本問(wèn)題域無(wú)關(guān)的關(guān)聯(lián)或與實(shí)現(xiàn)密切相關(guān)的關(guān)聯(lián)刪去。n實(shí)例n在ATM系統(tǒng)中,“系統(tǒng)處理并發(fā)的訪問(wèn)”只提醒我們?cè)趯?shí)現(xiàn)階段需要使用實(shí)現(xiàn)并發(fā)訪問(wèn)的算法,以處理并發(fā)事務(wù),并沒(méi)有標(biāo)明對(duì)象之間的新關(guān)聯(lián),因此,應(yīng)刪去它。n包括:上表中序號(hào)為(18)的關(guān)聯(lián)。n(3) 派生關(guān)聯(lián)n有的關(guān)聯(lián)可以用已有的、必要的關(guān)聯(lián)來(lái)定義時(shí),應(yīng)該去掉這些冗余的關(guān)聯(lián)。n實(shí)例n在ATM系統(tǒng)中,上表序號(hào)為(2)的關(guān)聯(lián):“總行擁有多臺(tái)ATM” 派生了“總行擁有中央計(jì)算機(jī)”和“ATM與中央計(jì)算機(jī)通信”這兩個(gè)關(guān)聯(lián)。n上表序號(hào)為(9)的關(guān)聯(lián):“分行計(jì)算機(jī)

33、維護(hù)賬戶”的實(shí)際含義是“分行保管賬戶”和“事務(wù)修改賬戶”。10.2.2.2 篩選(III)n(4) 刪除瞬時(shí)動(dòng)作n1) 關(guān)聯(lián)應(yīng)該描述問(wèn)題域的靜態(tài)結(jié)構(gòu),而不應(yīng)該是一個(gè)瞬時(shí)事件,因此應(yīng)刪除瞬時(shí)事件的關(guān)聯(lián)。n實(shí)例n在ATM系統(tǒng)中,“ATM讀現(xiàn)金兌換卡”描述了ATM與用戶交互周期中的一個(gè)動(dòng)作,它并不是ATM與現(xiàn)金兌換卡之間的固有關(guān)系,因此應(yīng)該刪去。類似地,還應(yīng)該刪去“ATM與用戶交互”這個(gè)候選的關(guān)聯(lián)。n包括:上表中序號(hào)為(14)和(15)的關(guān)聯(lián)。n2) 如果用動(dòng)作表述的需求隱含了問(wèn)題域的某種基本結(jié)構(gòu),則應(yīng)該用適當(dāng)?shù)膭?dòng)詞詞組重新表示這個(gè)關(guān)聯(lián)。n實(shí)例n在ATM系統(tǒng)的需求陳述中,“中央計(jì)算機(jī)確定事務(wù)與分行的

34、對(duì)應(yīng)關(guān)系”隱含了結(jié)構(gòu)上“中央計(jì)算機(jī)與分行通信”的關(guān)系,因此,應(yīng)該刪去。n包括:上表中序號(hào)為(13)的關(guān)聯(lián)。10.2.2.2 篩選(IV)n(5) 多元關(guān)聯(lián)分解n多元關(guān)聯(lián)是三個(gè)或三個(gè)以上對(duì)象之間的關(guān)聯(lián),多數(shù)可以分解為二元關(guān)聯(lián)或用詞組描述成限定的關(guān)聯(lián)。n實(shí)例n在ATM系統(tǒng)中,上表序號(hào)為(11)的關(guān)聯(lián):“營(yíng)業(yè)員輸入針對(duì)賬戶的事務(wù)”可以分解成“營(yíng)業(yè)員輸入事務(wù)”和“事務(wù)修改賬戶”兩個(gè)二元關(guān)聯(lián)。n上表序號(hào)為(8)的關(guān)聯(lián):“分行計(jì)算機(jī)處理針對(duì)賬戶的事務(wù)”可以分解成“分行計(jì)算機(jī)處理事務(wù)”和“事務(wù)修改賬戶”兩個(gè)二元關(guān)聯(lián)。n上表序號(hào)為(12)的關(guān)聯(lián):“ATM與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息”可以分解成“ATM與中央

35、計(jì)算機(jī)通信”和“在ATM上輸入事務(wù)”兩個(gè)二元關(guān)聯(lián)。10.2.2.3 完善關(guān)聯(lián)(I)n經(jīng)過(guò)篩選后余下的關(guān)聯(lián)不夠精確、完善時(shí),應(yīng)該進(jìn)一步分解和增補(bǔ),以調(diào)整關(guān)聯(lián)。改進(jìn)方法如下:n(1) 重命名n關(guān)聯(lián)的命名相當(dāng)重要,準(zhǔn)確的名字有利于讀者理解。因此,如有不合適的、含義不清的名字,應(yīng)該重新選擇含義更明確的名字來(lái)作為關(guān)聯(lián)名。n例如,上表中序號(hào)為(4)的關(guān)聯(lián):“分行提供分行計(jì)算機(jī)和營(yíng)業(yè)員終端”改為“分行擁有分行計(jì)算機(jī)”和“分行擁有營(yíng)業(yè)員終端”就更明確些。n(2) 分解n為了能夠適用于不同的關(guān)聯(lián),必要時(shí)應(yīng)該分解以前確定的類-對(duì)象。n例如,在ATM系統(tǒng)中,應(yīng)該把“事務(wù)”分解成“遠(yuǎn)程事務(wù)”和“營(yíng)業(yè)事務(wù)”。10.2.

36、2.3 完善關(guān)聯(lián)(II)n(3) 增補(bǔ)n發(fā)現(xiàn)了遺漏的關(guān)聯(lián)或分解類-對(duì)象之后需要新關(guān)聯(lián)時(shí),應(yīng)該及時(shí)增補(bǔ)。n例如,在ATM系統(tǒng)中,把“事務(wù)”分解成上述兩類之后,需要補(bǔ)充如下關(guān)聯(lián):n上表中序號(hào)為(39)的關(guān)聯(lián):“營(yíng)業(yè)員輸入營(yíng)業(yè)事務(wù)”。n上表中序號(hào)為(40)的關(guān)聯(lián):“營(yíng)業(yè)員事務(wù)輸進(jìn)營(yíng)業(yè)終端”。n上表中序號(hào)為(41)的關(guān)聯(lián):“在ATM上輸入遠(yuǎn)程事務(wù)”。n上表中序號(hào)為(42)的關(guān)聯(lián):“遠(yuǎn)程事務(wù)由現(xiàn)金兌換卡授權(quán)”。n(4) 標(biāo)明階數(shù)n當(dāng)確定各個(gè)關(guān)聯(lián)的類型之后,可以初步地確定關(guān)聯(lián)的階數(shù)。隨著系統(tǒng)分析反復(fù)改進(jìn),階數(shù)也會(huì)經(jīng)常改動(dòng)。10.2.2.3 完善關(guān)聯(lián)(III)n下圖是經(jīng)過(guò)上述分析過(guò)程之后得出的“ATM系統(tǒng)初

37、始對(duì)象模型圖”。10.2.3 劃分主題(1)n概念:n主題是一種指導(dǎo)開(kāi)發(fā)者或用戶研究大型復(fù)雜模型的機(jī)制。n主題是一種手段,有助于分解大型項(xiàng)目以便分組承擔(dān)任務(wù)。n主題給出了面向?qū)ο蠓治龊驮O(shè)計(jì)的模型總體概貌。n主題的依據(jù)原理:整體-部分關(guān)系的擴(kuò)充。n一個(gè)系統(tǒng)模型可以包含多個(gè)主題,也就是說(shuō),主題是整個(gè)問(wèn)題域和系統(tǒng)任務(wù)的一部分,是用來(lái)與整個(gè)問(wèn)題域和系統(tǒng)任務(wù)(總體)進(jìn)行通信的部分。n劃分主題的依據(jù):n(1) 目標(biāo)系統(tǒng)的大小。n若開(kāi)發(fā)很小的系統(tǒng):則沒(méi)必要?jiǎng)澐种黝};n若開(kāi)發(fā)大型、復(fù)雜的系統(tǒng):則為了降低復(fù)雜程度,應(yīng)將系統(tǒng)再進(jìn)一步劃分成幾個(gè)不同的主題,使得開(kāi)發(fā)者便于分組承擔(dān)任務(wù),小組成員能集中精力考慮承擔(dān)范疇內(nèi)

38、的內(nèi)容。n(2) 將相互間依賴和交互較多的對(duì)象確定為同一個(gè)主題。10.2.3 劃分主題(2)n對(duì)于含有較多對(duì)象的系統(tǒng),應(yīng)采用選擇、精煉和構(gòu)造的方法來(lái)確定主題。步驟包括:n首先,由高級(jí)分析員粗略地識(shí)別對(duì)象和關(guān)聯(lián);n然后,初步選擇主題;n經(jīng)進(jìn)一步分析,在更深入了解系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,修改和精煉主題;n最后,按問(wèn)題領(lǐng)域構(gòu)造出一個(gè)主題(主題編號(hào)和主題名)。n實(shí)例:ATM系統(tǒng)可劃分為以下三個(gè)主題:n(1)總行:包括總行、中央計(jì)算機(jī)2個(gè)類。n(2)分行:包括分行、分行計(jì)算機(jī)、柜員終端、柜員事務(wù)、柜員、賬戶等類。n(3)ATM:包括ATM、遠(yuǎn)程事務(wù)、現(xiàn)金兌換卡、儲(chǔ)戶等類。n注意:n用、和分別表示這三個(gè)主題的A

39、TM對(duì)象模型如下圖所示。n該例不是很復(fù)雜,可以不引入主題層,在這里主要是為了說(shuō)明如何確定主題。n為了使圖簡(jiǎn)單、清晰,在下面的章節(jié)中討論這個(gè)例子時(shí)將忽略主題層。10.2.3 劃分主題(3)站號(hào)分行代碼總行總行名分行代碼組成擁有站號(hào)通信分行分行名站號(hào)卡號(hào)發(fā)放分行計(jì)算機(jī)型號(hào)擁有賬號(hào)聘員號(hào)保管營(yíng)業(yè)員姓名擁有輸入1營(yíng)業(yè)事務(wù)類型日期金額營(yíng)業(yè)終端通信1輸入1賬戶余額限額類型聘用修改修改1訪問(wèn)擁有儲(chǔ)戶姓名地址擁有ATM1輸入現(xiàn)有金額付出金額遠(yuǎn)程事務(wù)類型日期金額11現(xiàn)金兌換卡密碼授權(quán)11中央計(jì)算機(jī)名稱通信110.2.4 確定屬性n屬性的概念:n屬性是用來(lái)描述類-&-對(duì)象的特性的,一個(gè)屬性是一個(gè)數(shù)據(jù)項(xiàng)(狀

40、態(tài)信息),類中對(duì)象都有相應(yīng)的值(狀態(tài))。n屬性的描述:n屬性放在類-&-對(duì)象表示符號(hào)的中間部位。n每個(gè)類-&-對(duì)象都由屬性描述,屬性按照類-對(duì)象的規(guī)范來(lái)描述。n確定屬性的重要性:n在面向?qū)ο蠓治鲋?,“屬性”用?lái)反映問(wèn)題域和系統(tǒng)的任務(wù)。n屬性能幫助我們更深入、更具體的認(rèn)識(shí)類-對(duì)象和結(jié)構(gòu)。n換句話說(shuō),屬性能為“類-對(duì)象”以及“結(jié)構(gòu)”提供更多的細(xì)節(jié),10.2.4.1 方法和過(guò)程n確定屬性的方法:n分析n分析強(qiáng)調(diào)對(duì)象的外觀或功能。n選擇n選擇則強(qiáng)調(diào)目標(biāo)系統(tǒng)的需求。n確定屬性的過(guò)程:n(1) 首先,在需求陳述中找出屬性或通過(guò)分析找出屬性。n屬性是對(duì)象的性質(zhì),通常用名詞詞組和形容詞來(lái)表示。

41、n屬性必須是問(wèn)題域中對(duì)象的基本性質(zhì),而且在目標(biāo)系統(tǒng)中是必要的。n也就是說(shuō),只考慮與目標(biāo)系統(tǒng)相關(guān)的屬性,不考慮超出目標(biāo)系統(tǒng)范圍的屬性。n(2) 然后,刪除不正確的和不必要的屬性,選擇正確的和必要的屬性。n(3) 最后,恰當(dāng)?shù)慕o屬性命名。10.2.4.2 刪除屬性的標(biāo)準(zhǔn)(1)n刪除屬性的標(biāo)準(zhǔn)包括:n(1) 區(qū)別對(duì)象和屬性n對(duì)象是在應(yīng)用領(lǐng)域內(nèi)具有自身性質(zhì)的實(shí)體。n若某個(gè)實(shí)體的獨(dú)立存在相當(dāng)重要,而相比之下它的值不那么重要,則應(yīng)把它作為一個(gè)對(duì)象而不是對(duì)象的屬性。n同一個(gè)實(shí)體在不同的應(yīng)用領(lǐng)域中是作對(duì)象還是作屬性,需要根據(jù)應(yīng)用需求具體分析而定。n例如,在郵政目錄中,“城市”是一個(gè)屬性,而在人口普查中,“城市

42、”卻看作為對(duì)象。n(2) 區(qū)別鏈屬性和屬性n在分析過(guò)程中,不應(yīng)該把鏈屬性作為對(duì)象的屬性。n若某個(gè)性質(zhì)依賴于某個(gè)關(guān)聯(lián)鏈的存在,則該性質(zhì)是鏈屬性而不是屬性。n鏈屬性在多對(duì)多關(guān)聯(lián)中很明顯,在整個(gè)開(kāi)發(fā)過(guò)程中,不要把它作為兩個(gè)關(guān)聯(lián)對(duì)象中任意一個(gè)的屬性。10.2.4.2 刪除屬性的標(biāo)準(zhǔn)(2)n(3) 區(qū)別限定詞和屬性n當(dāng)屬性固定下來(lái)后,能減少關(guān)聯(lián)的階數(shù)時(shí),則可將該屬性重新定義成為一個(gè)限定詞。n例如,在ATM系統(tǒng)中,分行代碼、聘員號(hào)、賬號(hào)和站號(hào)等都是限定詞,而不要把它誤認(rèn)為屬性。n再如,在上圖“ATM系統(tǒng)初始對(duì)象模型圖”中,“分行代碼”不但可作為關(guān)聯(lián)“分行組成總行”上的限定詞,也可作為關(guān)聯(lián)“中央計(jì)算機(jī)”與“

43、分行計(jì)算機(jī)”的限定詞,這樣,就將該關(guān)聯(lián)的一對(duì)多的通信關(guān)系減少為一對(duì)一的通信關(guān)系,如下圖“帶有屬性與主題的ATM對(duì)象模型”。n(4) 區(qū)別內(nèi)部值和屬性n若某個(gè)性質(zhì)是對(duì)象的非公開(kāi)的內(nèi)部狀態(tài)時(shí),則應(yīng)該將這個(gè)屬性從對(duì)象模型中刪掉。n(5) 避免過(guò)于細(xì)化n一個(gè)對(duì)象的屬性不能過(guò)于細(xì)化,在分析過(guò)程中,應(yīng)去掉那些對(duì)大多數(shù)操作沒(méi)有影響的屬性。n(6)存在不一致的屬性n類應(yīng)該是簡(jiǎn)單而且一致的。如果得出一些看起來(lái)與其他屬性毫不相關(guān)的屬性,則應(yīng)該考慮把該類分解成兩個(gè)不同的類。10.2.4.2 刪除屬性的標(biāo)準(zhǔn)(3)nATM系統(tǒng)對(duì)象模型中的屬性如右圖所示(這是簡(jiǎn)化模型,較實(shí)際應(yīng)用系統(tǒng)中的屬性少)。n增補(bǔ)了以下一些限定詞:

44、n(1) “卡號(hào)”:前面的分析過(guò)程中,遺漏了“分行發(fā)放現(xiàn)金兌換卡”這一關(guān)聯(lián),現(xiàn)在發(fā)現(xiàn)了,因而就把“卡號(hào)”這個(gè)限定詞補(bǔ)上。n(2) “分行代碼”:關(guān)聯(lián)“分行組成總行”上的限定詞。n(2) “賬號(hào)”:關(guān)聯(lián)“分行保管賬戶”上的限定詞。n(3) “聘員號(hào)”:關(guān)聯(lián)“分行雇傭柜員”上的限定詞。n(4) “站號(hào)”:關(guān)聯(lián)“分行擁有柜員終端”、“柜員終端與分行計(jì)算機(jī)通信”和“中央計(jì)算機(jī)與ATM通信”等3個(gè)關(guān)聯(lián)上的限定詞。10.2.5 識(shí)別繼承關(guān)系(1)n概念:n結(jié)構(gòu)是問(wèn)題域復(fù)雜關(guān)系的表示,它與系統(tǒng)的任務(wù)直接相關(guān)。n確定了類的屬性后,就可以利用繼承來(lái)共享公共的性質(zhì),以結(jié)構(gòu)的形式重新組織類。n一般-特殊結(jié)構(gòu)具有繼承

45、性,一般類和對(duì)象的屬性和方法一旦被識(shí)別,即可在特殊類和對(duì)象中使用。通常,其建立的方法包括:n(1) 自底向上識(shí)別n1) 自底向上識(shí)別是抽象出現(xiàn)有類的共同性質(zhì)來(lái)一般化成父類,找出具有相似的屬性、操作和關(guān)聯(lián)的類來(lái)發(fā)現(xiàn)繼承。n例如,在ATM系統(tǒng)中,“遠(yuǎn)程事務(wù)”和“營(yíng)業(yè)事務(wù)”可以一般化為“事務(wù)”(父類);“ATM”和“營(yíng)業(yè)終端”可以一般化為“輸入站”(父類)。10.2.5 識(shí)別繼承關(guān)系(2)n2) 在識(shí)別中,應(yīng)盡可能應(yīng)用現(xiàn)實(shí)世界中的常用分類結(jié)構(gòu)。n3) 如果不能直接使用現(xiàn)有的類,可以將屬性或類稍加細(xì)化再表示出來(lái)。n(2) 自頂向下識(shí)別n自頂向下識(shí)別是把現(xiàn)有的類細(xì)化為更具體的子類,通常,具體化的子類可以

46、在應(yīng)用領(lǐng)域中直接找出來(lái)。n如果具體化類與現(xiàn)有實(shí)際情況矛盾時(shí),說(shuō)明該類定義不當(dāng),需要重新考慮。n例如,在ATM系統(tǒng)中,“遠(yuǎn)程事務(wù)”和“營(yíng)業(yè)事務(wù)”是“事務(wù)”(父類)的具體化類(子類);“ATM”和“營(yíng)業(yè)終端”是“輸入站”(父類)的具體化類(子類)。n在類層次結(jié)構(gòu)中,特殊類共有的屬性應(yīng)放在父類中;特殊類中應(yīng)定義自己獨(dú)有的屬性,當(dāng)然它可以繼承父類的屬性。n“帶有繼承關(guān)系的ATM對(duì)象模型”如下圖所示。10.2.5 識(shí)別繼承關(guān)系(3)10.2.6 優(yōu)化對(duì)象模型(1)n必要性:n通過(guò)以上步驟建立起來(lái)的對(duì)象模型不能確保完全正確,還應(yīng)反復(fù)修改,不斷完善與優(yōu)化。n在建模的各個(gè)階段,一旦發(fā)現(xiàn)缺陷,就必須返回到前階段

47、進(jìn)行修改。n有些細(xì)化工作(如定義服務(wù))要等到動(dòng)態(tài)模型和功能模型建完以后才能進(jìn)行。n優(yōu)化步驟:n在建模的過(guò)程中,不一定按前述的工作順序進(jìn)行,分析員完全可以以自己的獨(dú)特方法進(jìn)行,既可以將幾個(gè)階段并行處理,又可以隨意組織前述工作順序。n如果是初次使用面向?qū)ο蠓椒?,建議還是按照前述順序進(jìn)行比較好。n優(yōu)化方法:n(1) 刪除冗余的類n如果某類中缺少屬性、操作和關(guān)聯(lián),則可刪除該類。n(2) 分解類n“現(xiàn)金兌換卡”可分為“卡權(quán)限”和“現(xiàn)金兌換卡”兩個(gè)功能,前者表示儲(chǔ)戶訪問(wèn)賬戶的權(quán)限,后者則表示含有分行代碼和卡號(hào)的數(shù)據(jù)載體。10.2.6 優(yōu)化對(duì)象模型(2)n(3) 補(bǔ)充關(guān)聯(lián)n一個(gè)“事務(wù)”由若干個(gè)“更新”組成,

48、它們構(gòu)成整體-部分關(guān)系。n一個(gè)“更新”是一個(gè)動(dòng)作,即對(duì)賬戶所做的一次處理,如存款、取款、查詢等。n“更新”有類型、金額等屬性。n所以, “更新”可補(bǔ)充定義成為一個(gè)單獨(dú)類,“事務(wù)”與它構(gòu)成整體-部分關(guān)系。n(4) 合并類n如過(guò)在一個(gè)應(yīng)用系統(tǒng)中,兩個(gè)類雖然名字不同,但是它們所完成的任務(wù)以及與其他類的關(guān)系也相同,這時(shí)可將這兩個(gè)類合并成為一個(gè)類。n例如,“分行”與“分行計(jì)算機(jī)”合并為“分行”;“總行”與“中央計(jì)算機(jī)”合并成為“總行”。n通過(guò)進(jìn)一步的優(yōu)化,得出的“優(yōu)化后的ATM對(duì)象模型”如下圖所示。10.2.6 優(yōu)化對(duì)象模型(3)10.3 建立動(dòng)態(tài)模型n建立動(dòng)態(tài)模型對(duì)于每個(gè)系統(tǒng)并不是都重要,這要看開(kāi)發(fā)系

49、統(tǒng)的類型而定。n對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō),動(dòng)態(tài)模型并不重要。n對(duì)于交互式系統(tǒng)來(lái)說(shuō),動(dòng)態(tài)模型卻非常重要。n功能:n動(dòng)態(tài)模型規(guī)定了“什么時(shí)候做”,即在何種狀態(tài)下、接受了什么事件的觸發(fā),來(lái)確定對(duì)象的可能事件的順序。n功能模型指明了系統(tǒng)應(yīng)該“做什么”。n建立動(dòng)態(tài)模型的步驟:n(1) 編寫(xiě)典型交互行為的腳本;n(2) 從腳本中提取出事件,確定觸發(fā)每個(gè)事件的動(dòng)作對(duì)象以及接收事件的目標(biāo)對(duì)象;n(3) 排列事件發(fā)生的次序,確定每個(gè)對(duì)象可能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們;n(4) 比較各個(gè)對(duì)象的狀態(tài)圖,檢查對(duì)象之間的一致性,確保事件之間的匹配。10.3.1 編寫(xiě)腳本(1)n當(dāng)系統(tǒng)與用戶交互時(shí),為了對(duì)目

50、標(biāo)系統(tǒng)的行為有更具體的認(rèn)識(shí),用腳本表示系統(tǒng)的行為。n腳本的概念:n腳本描述用戶(或其他外部設(shè)備)與目標(biāo)系統(tǒng)之間的一個(gè)或多個(gè)典型的交互過(guò)程。n腳本是事件序列,當(dāng)系統(tǒng)中的對(duì)象與外部用戶發(fā)生互換信息時(shí),就產(chǎn)生一個(gè)事件,所呼喚的信息值就是該事件的參數(shù)。n編寫(xiě)腳本的必要性:n雖然在需求陳述中已經(jīng)描寫(xiě)了完整的交互過(guò)程,但還需要確定交互的形式。n實(shí)例:nATM系統(tǒng)的需求陳述雖然表明了應(yīng)從儲(chǔ)戶那里獲得有關(guān)事務(wù)的信息,但并沒(méi)有準(zhǔn)確說(shuō)明獲得信息的具體過(guò)程和需要什么參數(shù),動(dòng)作順序如何等還是模糊的。n屏幕布局和輸出格式是外觀的界面,一般是不會(huì)影響交互行為的邏輯和所交換的信息的。10.3.1 編寫(xiě)腳本(2)n編寫(xiě)腳本的

51、重要性:n編寫(xiě)腳本是建立動(dòng)態(tài)模型的基礎(chǔ),是確保整個(gè)交互過(guò)程的正確性和清晰性的重要步驟。n編寫(xiě)腳本的過(guò)程:n這是分析用戶對(duì)系統(tǒng)交互行為的需求的過(guò)程,需要用戶參與,提出意見(jiàn),并審查和更改。步驟包括:n首先,編寫(xiě)正常情況的腳本;n然后,考慮特殊情況腳本;n例如,輸入或輸出的數(shù)據(jù)的值域。n最后,考慮用戶出錯(cuò)情況腳本;n例如,非法輸入值或響應(yīng)失敗等。n此外,還應(yīng)該考慮在基本交互行為之上的“通用”交互行為。n例如,“幫助”要求和“狀態(tài)查詢”等。10.3.1 編寫(xiě)腳本(3)n“ATM系統(tǒng)的正常情況腳本”如下圖所示:10.3.1 編寫(xiě)腳本(4)n“ATM系統(tǒng)的異常情況腳本”如下圖所示:10.3.2 設(shè)想用戶界

52、面n分析階段不能完全忽略用戶界面。n大部分交互行為都可以分為應(yīng)用邏輯和用戶界面兩部分。n動(dòng)態(tài)模型著重表示應(yīng)用系統(tǒng)的控制邏輯。n系統(tǒng)分析員首先集中精力考慮系統(tǒng)的信息流和控制流,而不是首先考慮用戶界面。n用戶界面的好壞往往對(duì)用戶是否喜歡、是否接受一個(gè)系統(tǒng)起很重要的作用。n用戶界面的優(yōu)劣很難評(píng)價(jià)。n軟件開(kāi)發(fā)人員應(yīng)快速建立起用戶界面的原型,供用戶試用與評(píng)價(jià)。n初步設(shè)想出的ATM系統(tǒng)的界面如右圖所示。10.3.3 事件跟蹤圖(1)n準(zhǔn)備好腳本,就為建立動(dòng)態(tài)模型奠定了必要的基礎(chǔ)。接下來(lái)的工作包括:n然后,需進(jìn)一步明確事件及事件與對(duì)象的關(guān)系,可以畫(huà)出事件跟蹤圖;n接著,在腳本和事件跟蹤圖的基礎(chǔ)上,再畫(huà)出狀態(tài)

53、圖;n最后,由狀態(tài)圖組成動(dòng)態(tài)模型。n在畫(huà)出事件跟蹤圖之前,需要作以下兩件事情:n(1) 認(rèn)真分析腳本的各個(gè)步驟,從中確定所有外部事件。n(a)事件包括系統(tǒng)與用戶(或外部設(shè)備)交互的所有信號(hào)、輸入、輸出、中斷和動(dòng)作等。n(b)從腳本中容易發(fā)現(xiàn)正常事件,但是,應(yīng)注意不要遺漏了出錯(cuò)條件和異常事件。n(c)傳遞信息的對(duì)象的動(dòng)作也是事件。n例如,儲(chǔ)戶插入現(xiàn)金兌換卡、儲(chǔ)戶輸入密碼和ATM輸出現(xiàn)金等都是對(duì)象的動(dòng)作事件。n再如,儲(chǔ)戶插入現(xiàn)金兌換卡與系統(tǒng)要求密碼,是對(duì)象到對(duì)象的交互行為的事件。10.3.3 事件跟蹤圖(2)n(d)把對(duì)控制流產(chǎn)生相同效果的事件組合為一類事件,并取一個(gè)唯一的名字。n例如,“吐出現(xiàn)金

54、”是一個(gè)事件類,盡管這類事件中的每個(gè)個(gè)別事件的參數(shù)值不同(吐出的現(xiàn)金數(shù)額不同),然而這并不影響控制流。n(e)應(yīng)把對(duì)控制流有不同影響的事件區(qū)分開(kāi),不要誤組合在一起。n例如,“賬戶有效”、“賬戶無(wú)效”、“密碼錯(cuò)”等都是不同的事件。n(2) 找出系統(tǒng)所有的事件后,還需要確定事件與對(duì)象的關(guān)系。n(a)哪個(gè)對(duì)象是事件的發(fā)送者,哪個(gè)對(duì)象又是事件的接收者。n某事件對(duì)于發(fā)送者來(lái)說(shuō)是輸出事件,對(duì)于接收者來(lái)說(shuō)則是輸入事件。n(b)有時(shí)一個(gè)事件可能既是輸出事件又是輸入事件,這是因?yàn)閷?duì)象將事件發(fā)給了自己。n確定了事件以及每類事件的發(fā)送對(duì)象和接收對(duì)象之后,可以將腳本進(jìn)一步擴(kuò)充,畫(huà)出事件跟蹤圖。n事件跟蹤圖的概念:n事

55、件跟蹤圖是不同對(duì)象間的事件排序表。10.3.3 事件跟蹤圖(3)n事件跟蹤圖的作用:n事件跟蹤圖能形象、清晰地表示事件序列以及事件與對(duì)象的關(guān)系。n事件跟蹤圖的實(shí)質(zhì):n是擴(kuò)充的腳本,是簡(jiǎn)化的UML順序圖。n事件跟蹤圖的畫(huà)法:n(1) 一個(gè)類與對(duì)象用一條豎線表示;n(2) 每個(gè)事件用一條水平的箭頭線表示,箭頭從事件的發(fā)送對(duì)象出發(fā)指向接收對(duì)象;n(3) 事件按照先后順序從上向下遞增;n也就是說(shuō),畫(huà)在最上面的水平箭頭線代表最先發(fā)生的事件,畫(huà)在最下面的水平箭頭線所代表的事件最晚發(fā)生。n(4) 箭頭線之間的間距,并不表示兩個(gè)事件之間的精確時(shí)間差;n(5) 箭頭線的相對(duì)位置僅表示事件發(fā)生的先后次序。10.3

56、.3 事件跟蹤圖(4)n“ATM系統(tǒng)正常情況腳本的事件跟蹤圖”如下圖所示:10.3.4 狀態(tài)圖(1)n畫(huà)出事件跟蹤圖后,可根據(jù)事件跟蹤圖再畫(huà)出狀態(tài)圖。n并不是每一個(gè)類都需要一張狀態(tài)圖來(lái)描述它的行為。n例如,一個(gè)對(duì)象僅響應(yīng)與過(guò)去歷史無(wú)關(guān)的事件,或者把歷史作為不影響控制流的參數(shù),則這類對(duì)象的狀態(tài)圖是不必要的。n狀態(tài)圖的概念:n狀態(tài)圖描繪事件與對(duì)象狀態(tài)的關(guān)系。n狀態(tài)轉(zhuǎn)換的概念:n如果一個(gè)事件可以驅(qū)動(dòng)某個(gè)對(duì)象從一種狀態(tài)變?yōu)榱硪环N狀態(tài),那么由該事件引起的狀態(tài)改變稱為“轉(zhuǎn)換”。n某個(gè)對(duì)象接收了一個(gè)事件以后,會(huì)轉(zhuǎn)換成什么樣的狀態(tài),這取決于該對(duì)象的當(dāng)前狀態(tài)和所接收的事件。n狀態(tài)圖的特點(diǎn):n(1) 狀態(tài)圖確定了

57、由事件序列引出的狀態(tài)序列,因而,可用狀態(tài)圖描繪一類對(duì)象的行為。n在動(dòng)態(tài)模型中,并不是任何一個(gè)類-對(duì)象的行為都需要用一張狀態(tài)圖描繪,只需考慮那些具有重要交互行為的類既可。10.3.4 狀態(tài)圖(2)n(2) 狀態(tài)圖反映出對(duì)象接收和發(fā)送的事件。n每個(gè)腳本或事件跟蹤圖都對(duì)應(yīng)狀態(tài)圖中的一條路徑(即箭頭線),路徑上應(yīng)標(biāo)以事件名;n兩個(gè)事件之間的間隔就是一個(gè)狀態(tài),應(yīng)給每個(gè)狀態(tài)取個(gè)有意義的名字。n這是事件和狀態(tài)的一個(gè)序列初始圖,即初始狀態(tài)圖。n狀態(tài)圖的畫(huà)法策略:n(1) 考慮分支點(diǎn)n畫(huà)出了初始狀態(tài)圖之后,再合并其他腳本的事件跟蹤圖到該初始的狀態(tài)圖中。n首先,在以前考慮過(guò)的腳本中找出分支點(diǎn)。n例如,“驗(yàn)證賬戶”

58、是個(gè)分支點(diǎn),因?yàn)轵?yàn)證的結(jié)果可能是“賬戶有效”,也可能是“無(wú)效賬戶”。n然后,把其他腳本中的事件序列作為一條可選的路徑并入已有的狀態(tài)圖中。10.3.4 狀態(tài)圖(3)n(2) 考慮異常情況n狀態(tài)圖不但要考慮正常事件,還需要考慮邊界情況、特殊情況和異常情況。n例如,用戶要求取消正在處理事務(wù)。n當(dāng)發(fā)生了異常事件后,系統(tǒng)應(yīng)給出出錯(cuò)處理的腳本,并且并入已有的狀態(tài)圖中。n(3) 補(bǔ)充遺漏情況n狀態(tài)圖的構(gòu)造應(yīng)考慮所有腳本,并且應(yīng)包含影響某類對(duì)象狀態(tài)的全部事件。n因而,在完成初始狀態(tài)圖后,應(yīng)進(jìn)一步檢查狀態(tài)圖,發(fā)現(xiàn)有遺漏的情況,應(yīng)該立即補(bǔ)充遺漏腳本,并且并入已有的狀態(tài)圖中。10.3.4 狀態(tài)圖(4)n實(shí)例分析:n

59、(1)“ATM”、“柜員終端”、“總行”和“分行”都是主動(dòng)對(duì)象,它們相互發(fā)送事件。n由于“營(yíng)業(yè)終端”的狀態(tài)圖和“ATM”的狀態(tài)圖類似,因此,只需要考慮它們之一的狀態(tài)圖既可。n(2)“現(xiàn)金兌換卡”、“事務(wù)”和“賬戶”等是被動(dòng)對(duì)象,并不發(fā)送事件。n(3)“儲(chǔ)戶”和“柜員”是系統(tǒng)外部的動(dòng)作對(duì)象,無(wú)須在系統(tǒng)內(nèi)實(shí)現(xiàn)它們。n(4)因此,只需考慮“ATM”、“總行”、“柜員終端”和“分行”的狀態(tài)圖。n“柜員終端”和“ATM”狀態(tài)圖類似,這里省略。n(5)“ATM類的狀態(tài)圖”、“總行類的狀態(tài)圖”和“分行類的狀態(tài)圖”分別如下圖所示。n這些狀態(tài)圖都是簡(jiǎn)化的、粗略的,尤其對(duì)異常情況和出錯(cuò)情況等考慮不周。n例如,“A

60、TM類的狀態(tài)圖”并沒(méi)有表示在網(wǎng)絡(luò)通信鏈路不通時(shí)的系統(tǒng)行為,在這種情況下,ATM停止處理儲(chǔ)戶事務(wù)。10.3.4 狀態(tài)圖(5)ATM類的狀態(tài)圖10.3.4 狀態(tài)圖(6)“總行類的狀態(tài)圖”10.3.4 狀態(tài)圖(7)“分行類的狀態(tài)圖”10.3.5 優(yōu)化動(dòng)態(tài)模型n每個(gè)類的動(dòng)態(tài)行為用一張狀態(tài)圖來(lái)描繪,各個(gè)類的狀態(tài)圖通過(guò)共享事件合并起來(lái),從而構(gòu)成系統(tǒng)的動(dòng)態(tài)模型。n也就是說(shuō),動(dòng)態(tài)模型是基于事件共享而互相關(guān)聯(lián)的一組狀態(tài)圖的集合。n多個(gè)類的狀態(tài)圖完成之后,還需要檢查系統(tǒng)級(jí)的完整性和一致性。方法包括:n(1)一般來(lái)說(shuō),每個(gè)事件都應(yīng)該既有發(fā)送對(duì)象又有接受對(duì)象;n(2)有時(shí)發(fā)送者和接受者是同一個(gè)對(duì)象。n(3)對(duì)無(wú)前驅(qū)或后續(xù)的狀態(tài)應(yīng)該著重檢查,如果這種狀態(tài)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論