第4、5章_軟件設(shè)計(jì)方法_第1頁(yè)
第4、5章_軟件設(shè)計(jì)方法_第2頁(yè)
第4、5章_軟件設(shè)計(jì)方法_第3頁(yè)
第4、5章_軟件設(shè)計(jì)方法_第4頁(yè)
第4、5章_軟件設(shè)計(jì)方法_第5頁(yè)
已閱讀5頁(yè),還剩141頁(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、1引言引言面向?qū)ο箝_(kāi)發(fā)方法的核心是利用面向?qū)ο竺嫦驅(qū)ο箝_(kāi)發(fā)方法的核心是利用面向?qū)ο蟮母拍詈头椒▽?duì)軟件需求分析和設(shè)計(jì),建的概念和方法對(duì)軟件需求分析和設(shè)計(jì),建立面向?qū)ο蟮能浖治龊驮O(shè)計(jì)模型。立面向?qū)ο蟮能浖治龊驮O(shè)計(jì)模型。面向?qū)ο筌浖_(kāi)發(fā)過(guò)程從領(lǐng)域概念到設(shè)計(jì)面向?qū)ο筌浖_(kāi)發(fā)過(guò)程從領(lǐng)域概念到設(shè)計(jì)概念和代碼實(shí)現(xiàn)都以類和對(duì)象為核心,是概念和代碼實(shí)現(xiàn)都以類和對(duì)象為核心,是一個(gè)逐步精化的過(guò)程,因此需求分析和設(shè)一個(gè)逐步精化的過(guò)程,因此需求分析和設(shè)計(jì)之間并沒(méi)有嚴(yán)格的分界線。計(jì)之間并沒(méi)有嚴(yán)格的分界線。本章使用本章使用UML進(jìn)行軟件分析和設(shè)計(jì)。進(jìn)行軟件分析和設(shè)計(jì)。4.1 基于基于UML的分析與設(shè)計(jì)的分析與設(shè)計(jì)UML

2、是獨(dú)立于軟件開(kāi)發(fā)過(guò)程的,它幾乎可是獨(dú)立于軟件開(kāi)發(fā)過(guò)程的,它幾乎可以用于任何類型的軟件開(kāi)發(fā)過(guò)程,包括瀑以用于任何類型的軟件開(kāi)發(fā)過(guò)程,包括瀑布式、迭代式、螺旋式等不同模型。布式、迭代式、螺旋式等不同模型。在軟件分析和設(shè)計(jì)中,可以根據(jù)項(xiàng)目的特在軟件分析和設(shè)計(jì)中,可以根據(jù)項(xiàng)目的特征、開(kāi)發(fā)組織在已有實(shí)踐中定義的相關(guān)規(guī)征、開(kāi)發(fā)組織在已有實(shí)踐中定義的相關(guān)規(guī)范、設(shè)計(jì)人員本身的偏好等因素,對(duì)基于范、設(shè)計(jì)人員本身的偏好等因素,對(duì)基于UML的軟件設(shè)計(jì)過(guò)程進(jìn)行定制。的軟件設(shè)計(jì)過(guò)程進(jìn)行定制。 根據(jù)根據(jù)UML各種視圖的特點(diǎn),它們可能更適各種視圖的特點(diǎn),它們可能更適用于軟件分析與設(shè)計(jì)的某些活動(dòng),形成了用于軟件分析與設(shè)計(jì)的某

3、些活動(dòng),形成了一些常用的設(shè)計(jì)方式與過(guò)程,起到一定的一些常用的設(shè)計(jì)方式與過(guò)程,起到一定的指導(dǎo)作用,但并沒(méi)有強(qiáng)制性要求。指導(dǎo)作用,但并沒(méi)有強(qiáng)制性要求。基于基于UML的分析與設(shè)計(jì)過(guò)程的分析與設(shè)計(jì)過(guò)程使用使用UML的軟件分析的軟件分析和設(shè)計(jì)的較為通用的和設(shè)計(jì)的較為通用的過(guò)程,實(shí)踐中開(kāi)發(fā)人過(guò)程,實(shí)踐中開(kāi)發(fā)人員可以此過(guò)程為基礎(chǔ)員可以此過(guò)程為基礎(chǔ)進(jìn)行改進(jìn)和訂制。進(jìn)行改進(jìn)和訂制。用例分析與設(shè)計(jì):用例分析與設(shè)計(jì):需求獲取,分析和描述的過(guò)程,它將利用例及用例圖表示需需求獲取,分析和描述的過(guò)程,它將利用例及用例圖表示需求。求。概念模型與頂層架構(gòu)設(shè)計(jì):概念模型與頂層架構(gòu)設(shè)計(jì):抽取全局性的概念,為后續(xù)的分析和設(shè)計(jì)活動(dòng)建

4、立結(jié)構(gòu)和劃抽取全局性的概念,為后續(xù)的分析和設(shè)計(jì)活動(dòng)建立結(jié)構(gòu)和劃分。分。用戶界面設(shè)計(jì):用戶界面設(shè)計(jì):設(shè)計(jì)每個(gè)界面中的所有界面元素,確定初步的界面布局,定設(shè)計(jì)每個(gè)界面中的所有界面元素,確定初步的界面布局,定義用戶界面動(dòng)作對(duì)軟件系統(tǒng)中設(shè)計(jì)元素的要求。增加專用類義用戶界面動(dòng)作對(duì)軟件系統(tǒng)中設(shè)計(jì)元素的要求。增加專用類與對(duì)象。與對(duì)象。數(shù)據(jù)模型的設(shè)計(jì):數(shù)據(jù)模型的設(shè)計(jì):確定設(shè)計(jì)模型中需要持久保存的類的對(duì)象及其屬性,定義持確定設(shè)計(jì)模型中需要持久保存的類的對(duì)象及其屬性,定義持久持久存儲(chǔ)數(shù)據(jù)之間的組織方式,并明確數(shù)據(jù)模型中的操作久持久存儲(chǔ)數(shù)據(jù)之間的組織方式,并明確數(shù)據(jù)模型中的操作行為。行為。設(shè)計(jì)的精化:設(shè)計(jì)的精化:對(duì)

5、上面的邏輯、界面、數(shù)據(jù)模型等不同側(cè)重對(duì)上面的邏輯、界面、數(shù)據(jù)模型等不同側(cè)重點(diǎn)的設(shè)計(jì)結(jié)果進(jìn)行整理,合并相似的類,保點(diǎn)的設(shè)計(jì)結(jié)果進(jìn)行整理,合并相似的類,保證各模型之間的一致性,并消除冗余。證各模型之間的一致性,并消除冗余。類設(shè)計(jì):類設(shè)計(jì):對(duì)類進(jìn)行細(xì)化設(shè)計(jì),精化類之間的關(guān)系以及類對(duì)類進(jìn)行細(xì)化設(shè)計(jì),精化類之間的關(guān)系以及類的操作和屬性,使它們能夠直接提交給軟件構(gòu)的操作和屬性,使它們能夠直接提交給軟件構(gòu)造階段進(jìn)行編碼實(shí)現(xiàn)。造階段進(jìn)行編碼實(shí)現(xiàn)。部署模型設(shè)計(jì):部署模型設(shè)計(jì):對(duì)軟件最終的元素結(jié)構(gòu)以及運(yùn)行的具體環(huán)境進(jìn)對(duì)軟件最終的元素結(jié)構(gòu)以及運(yùn)行的具體環(huán)境進(jìn)行描述行描述4.2用例分析與設(shè)計(jì)用例分析與設(shè)計(jì)案例:銀行案

6、例:銀行ATM自動(dòng)柜員機(jī)的需求簡(jiǎn)述(自動(dòng)柜員機(jī)的需求簡(jiǎn)述(本案例將要開(kāi)發(fā)的本案例將要開(kāi)發(fā)的ATM系統(tǒng)能夠?yàn)轭櫩吞嵯到y(tǒng)能夠?yàn)轭櫩吞峁┮韵禄痉?wù),它們統(tǒng)一稱為交易):供以下基本服務(wù),它們統(tǒng)一稱為交易):取款服務(wù)。顧客可以用銀行卡從對(duì)應(yīng)的賬戶中支取現(xiàn)取款服務(wù)。顧客可以用銀行卡從對(duì)應(yīng)的賬戶中支取現(xiàn)金,現(xiàn)金必須是金,現(xiàn)金必須是100元的整數(shù)倍,且每次取款不能超過(guò)元的整數(shù)倍,且每次取款不能超過(guò)2000元。元。存款服務(wù)。顧客可以把現(xiàn)金存入與銀行卡對(duì)應(yīng)的賬戶存款服務(wù)。顧客可以把現(xiàn)金存入與銀行卡對(duì)應(yīng)的賬戶中。中。轉(zhuǎn)帳服務(wù)。顧客可以把一個(gè)銀行卡對(duì)應(yīng)的賬戶中的款轉(zhuǎn)帳服務(wù)。顧客可以把一個(gè)銀行卡對(duì)應(yīng)的賬戶中的款項(xiàng)轉(zhuǎn)帳

7、到另一個(gè)銀行賬戶中。項(xiàng)轉(zhuǎn)帳到另一個(gè)銀行賬戶中。查詢服務(wù)。顧客能夠查詢一個(gè)銀行卡對(duì)應(yīng)的賬戶中的查詢服務(wù)。顧客能夠查詢一個(gè)銀行卡對(duì)應(yīng)的賬戶中的余額余額。銀行銀行ATM自動(dòng)柜員機(jī)需求簡(jiǎn)述自動(dòng)柜員機(jī)需求簡(jiǎn)述該該ATM系統(tǒng)包括以下組成部分:系統(tǒng)包括以下組成部分:讀卡器讀卡器交互的控制臺(tái),鍵盤及顯示器交互的控制臺(tái),鍵盤及顯示器送出現(xiàn)金的裝置,取款器送出現(xiàn)金的裝置,取款器存款的插槽,存款器存款的插槽,存款器打印機(jī)打印機(jī)啟動(dòng)和關(guān)閉啟動(dòng)和關(guān)閉ATM系統(tǒng)的開(kāi)關(guān)鍵盤系統(tǒng)的開(kāi)關(guān)鍵盤ATM系統(tǒng)與銀行服務(wù)通過(guò)特定的網(wǎng)絡(luò)連接進(jìn)行通信系統(tǒng)與銀行服務(wù)通過(guò)特定的網(wǎng)絡(luò)連接進(jìn)行通信ATM系統(tǒng)在提供以上服務(wù)的過(guò)程中,必須滿足系統(tǒng)在提供

8、以上服務(wù)的過(guò)程中,必須滿足以下要求以下要求一個(gè)顧客可以在最終確認(rèn)前放棄一項(xiàng)交易一個(gè)顧客可以在最終確認(rèn)前放棄一項(xiàng)交易ATM在執(zhí)行交易過(guò)程中將與銀行系統(tǒng)進(jìn)行通信,在執(zhí)行交易過(guò)程中將與銀行系統(tǒng)進(jìn)行通信,對(duì)是否允許交易進(jìn)行驗(yàn)證對(duì)是否允許交易進(jìn)行驗(yàn)證ATM為每次成功的交易提供一個(gè)打印回執(zhí)為每次成功的交易提供一個(gè)打印回執(zhí)ATM需要維護(hù)一個(gè)內(nèi)部日志,對(duì)每次交易進(jìn)行記需要維護(hù)一個(gè)內(nèi)部日志,對(duì)每次交易進(jìn)行記錄錄(1)確定用例)確定用例采用用例模型描述系統(tǒng)需求時(shí),首先需要采用用例模型描述系統(tǒng)需求時(shí),首先需要開(kāi)發(fā)人員從業(yè)務(wù)需求描述出發(fā)獲取參與者開(kāi)發(fā)人員從業(yè)務(wù)需求描述出發(fā)獲取參與者(Actor)和場(chǎng)景,對(duì)場(chǎng)景進(jìn)行匯總

9、、分類)和場(chǎng)景,對(duì)場(chǎng)景進(jìn)行匯總、分類、抽象,形成用例。、抽象,形成用例。場(chǎng)景是從單個(gè)參與者的角度觀察目標(biāo)軟件場(chǎng)景是從單個(gè)參與者的角度觀察目標(biāo)軟件系統(tǒng)的功能和外部行為,這種功能通過(guò)系系統(tǒng)的功能和外部行為,這種功能通過(guò)系統(tǒng)與用戶之間的交互來(lái)表示。統(tǒng)與用戶之間的交互來(lái)表示。場(chǎng)景是用例的實(shí)例,而用例是某類場(chǎng)景的場(chǎng)景是用例的實(shí)例,而用例是某類場(chǎng)景的共同抽象。共同抽象。 確定參與者和場(chǎng)景確定參與者和場(chǎng)景對(duì)多個(gè)場(chǎng)景進(jìn)行抽象對(duì)多個(gè)場(chǎng)景進(jìn)行抽象用例用例獲取場(chǎng)景獲取場(chǎng)景以下問(wèn)題可以幫助分析人員獲取場(chǎng)景:以下問(wèn)題可以幫助分析人員獲取場(chǎng)景:目標(biāo)軟件系統(tǒng)有哪些參與者?目標(biāo)軟件系統(tǒng)有哪些參與者?參與者希望系統(tǒng)執(zhí)行的任務(wù)有

10、哪些?參與者希望系統(tǒng)執(zhí)行的任務(wù)有哪些?參與者希望獲得哪些信息?這些信息由誰(shuí)生參與者希望獲得哪些信息?這些信息由誰(shuí)生成?由誰(shuí)修改?成?由誰(shuí)修改?參與者需要通知系統(tǒng)哪些事件?系統(tǒng)響應(yīng)這參與者需要通知系統(tǒng)哪些事件?系統(tǒng)響應(yīng)這些事件時(shí)會(huì)表現(xiàn)出哪些外部行為?些事件時(shí)會(huì)表現(xiàn)出哪些外部行為?系統(tǒng)將通告參與者哪些事件?系統(tǒng)將通告參與者哪些事件?確定參與者和場(chǎng)景的關(guān)鍵在于理解業(yè)務(wù)領(lǐng)域和初步需求描確定參與者和場(chǎng)景的關(guān)鍵在于理解業(yè)務(wù)領(lǐng)域和初步需求描述文檔。述文檔。定義用例定義用例在場(chǎng)景確定之后,通過(guò)對(duì)場(chǎng)景的匯總、分在場(chǎng)景確定之后,通過(guò)對(duì)場(chǎng)景的匯總、分類歸并、抽象即可形成用例。類歸并、抽象即可形成用例。需要特別注意的

11、是,參與者并只限于人員需要特別注意的是,參與者并只限于人員,其它與目標(biāo)軟件發(fā)生交互的外部實(shí)體或,其它與目標(biāo)軟件發(fā)生交互的外部實(shí)體或系統(tǒng)也是參與者;用例應(yīng)該是對(duì)參與者可系統(tǒng)也是參與者;用例應(yīng)該是對(duì)參與者可見(jiàn)的系統(tǒng)需求或功能,否則不能作為用例見(jiàn)的系統(tǒng)需求或功能,否則不能作為用例。 如果多個(gè)外部實(shí)體在與目標(biāo)軟件系統(tǒng)進(jìn)行如果多個(gè)外部實(shí)體在與目標(biāo)軟件系統(tǒng)進(jìn)行交互時(shí)扮演同一角色,這些實(shí)體用同一參交互時(shí)扮演同一角色,這些實(shí)體用同一參與者表示;如果一個(gè)外部實(shí)體扮演多個(gè)角與者表示;如果一個(gè)外部實(shí)體扮演多個(gè)角色,則需要多個(gè)參與者來(lái)表示同一實(shí)體,色,則需要多個(gè)參與者來(lái)表示同一實(shí)體,即參與者與角色一一對(duì)應(yīng)。即參與者與

12、角色一一對(duì)應(yīng)。確定用例確定用例確認(rèn)參與者和責(zé)任不同的參與者不同的參與者系統(tǒng)管理員、程序員、會(huì)計(jì)、出納員系統(tǒng)管理員、程序員、會(huì)計(jì)、出納員與系統(tǒng)通信的其他系統(tǒng)與系統(tǒng)通信的其他系統(tǒng)不同的責(zé)任不同的責(zé)任系統(tǒng)配置、程序設(shè)計(jì)、財(cái)務(wù)管理、現(xiàn)金管理系統(tǒng)配置、程序設(shè)計(jì)、財(cái)務(wù)管理、現(xiàn)金管理分析參與者的工作:使用案例分析參與者的工作:使用案例各種使用過(guò)程、步驟各種使用過(guò)程、步驟ATM案例的參與者案例的參與者“顧客顧客”(Customer)“操作管理人員操作管理人員”(Operator)“銀行服務(wù)器銀行服務(wù)器”(Bank System)“讀卡器讀卡器”(Card Reader)“存款器存款器”(Cash Accept

13、or)“取款器取款器”(Cash Dispenser)“打印機(jī)打印機(jī)”(Printer)參與者:與系統(tǒng)交互的人、設(shè)備、其他系統(tǒng)參與者:與系統(tǒng)交互的人、設(shè)備、其他系統(tǒng)ATM案例的用例案例的用例“取款取款”(Withdrawal)“存款存款”(Deposit)“轉(zhuǎn)帳轉(zhuǎn)帳”(Transfer)“查詢余額查詢余額”(Inquiry)“開(kāi)機(jī)開(kāi)機(jī)”(System Startup)“關(guān)機(jī)關(guān)機(jī)”(System Shutdown)用例:系統(tǒng)的功能用例:系統(tǒng)的功能(2)生成用例圖)生成用例圖確定參與者與用例之后,建立用例圖,描述確定參與者與用例之后,建立用例圖,描述參與者與用例、用例之間的關(guān)系。參與者與用例、用例

14、之間的關(guān)系。生成用例圖是一個(gè)逐步精化的過(guò)程,首先可生成用例圖是一個(gè)逐步精化的過(guò)程,首先可以建立初步的用例圖,包括前面發(fā)現(xiàn)的參與以建立初步的用例圖,包括前面發(fā)現(xiàn)的參與者和用例;者和用例;然后對(duì)用例圖進(jìn)行細(xì)化,定義用例之間然后對(duì)用例圖進(jìn)行細(xì)化,定義用例之間“包含包含”、 “擴(kuò)展擴(kuò)展”、“繼承繼承”等關(guān)系,并可能需要定等關(guān)系,并可能需要定義新的用例,以能夠更準(zhǔn)確地使用用例圖描義新的用例,以能夠更準(zhǔn)確地使用用例圖描述系統(tǒng)需求。述系統(tǒng)需求。 用例用例建模建模步驟步驟1) 描述各種使用案例描述各種使用案例描述描述交互過(guò)程的動(dòng)作序列交互過(guò)程的動(dòng)作序列模擬系統(tǒng)工作的交互過(guò)程模擬系統(tǒng)工作的交互過(guò)程2)確認(rèn)動(dòng)作)

15、確認(rèn)動(dòng)作檢查使用案例,引入并描述動(dòng)作檢查使用案例,引入并描述動(dòng)作覆蓋覆蓋所有可能發(fā)生的動(dòng)作所有可能發(fā)生的動(dòng)作用例用例建模建模步驟步驟3) 跟蹤跟蹤執(zhí)行執(zhí)行過(guò)程過(guò)程為每個(gè)為每個(gè)使用使用案例案例制作制作順序順序圖圖描述對(duì)象之間的描述對(duì)象之間的消息消息傳送過(guò)程傳送過(guò)程4) 構(gòu)造狀態(tài)轉(zhuǎn)移圖構(gòu)造狀態(tài)轉(zhuǎn)移圖為為每個(gè)對(duì)象每個(gè)對(duì)象構(gòu)造構(gòu)造的狀態(tài)轉(zhuǎn)移圖的狀態(tài)轉(zhuǎn)移圖反映對(duì)象接受和發(fā)送的反映對(duì)象接受和發(fā)送的消息消息考慮所有考慮所有使用使用案例案例中的所有中的所有消息消息生成初步用例圖生成初步用例圖用例圖的細(xì)化用例圖的細(xì)化包含(包含(include)關(guān)系)關(guān)系擴(kuò)展(擴(kuò)展(extend)關(guān)系)關(guān)系 繼承關(guān)系:為了對(duì)相似

16、用例的交互模式進(jìn)繼承關(guān)系:為了對(duì)相似用例的交互模式進(jìn)行抽象行抽象“取款、存款、轉(zhuǎn)賬、查詢?nèi)】睢⒋婵?、轉(zhuǎn)賬、查詢”可被認(rèn)為是可被認(rèn)為是“交交易易”過(guò)程,因此定義過(guò)程,因此定義“交易交易”用例。用例。插卡后可以不執(zhí)行任何一個(gè)插卡后可以不執(zhí)行任何一個(gè)“交易交易”,或執(zhí)行,或執(zhí)行多次多次“交易交易”,因此,因此“交易交易”不能體現(xiàn)參與者不能體現(xiàn)參與者需系統(tǒng)的交互過(guò)程,所以定義需系統(tǒng)的交互過(guò)程,所以定義“會(huì)話會(huì)話”用例。用例。細(xì)化后細(xì)化后ATM用例圖用例圖(3)用例描述)用例描述從外部視角看,一個(gè)用例是參與者與目標(biāo)從外部視角看,一個(gè)用例是參與者與目標(biāo)軟件之間的一次交互過(guò)程;從系統(tǒng)內(nèi)部視軟件之間的一次交互

17、過(guò)程;從系統(tǒng)內(nèi)部視角看,一個(gè)用例是系統(tǒng)執(zhí)行的一系列動(dòng)作角看,一個(gè)用例是系統(tǒng)執(zhí)行的一系列動(dòng)作,動(dòng)作執(zhí)行的結(jié)果能被外部的參與者覺(jué)察,動(dòng)作執(zhí)行的結(jié)果能被外部的參與者覺(jué)察。為了使用例中包含的動(dòng)作和執(zhí)行過(guò)程具體為了使用例中包含的動(dòng)作和執(zhí)行過(guò)程具體化,應(yīng)對(duì)用例進(jìn)行描述。對(duì)用例的完整描化,應(yīng)對(duì)用例進(jìn)行描述。對(duì)用例的完整描述包括:用例名稱、參與者、前置條件、述包括:用例名稱、參與者、前置條件、一個(gè)主事件流、一個(gè)主事件流、0到多個(gè)輔事件流、后置條到多個(gè)輔事件流、后置條件。件。主事件流表示正常情況下參與者與系統(tǒng)之間的主事件流表示正常情況下參與者與系統(tǒng)之間的信息交互及動(dòng)作序列,信息交互及動(dòng)作序列,輔事件流則表示特殊

18、情況或異常情況下的信息輔事件流則表示特殊情況或異常情況下的信息交互及動(dòng)作序列。交互及動(dòng)作序列?!叭】钣美】钣美泵枋雒枋鲇美Q用例名稱:Withdrawal參與者參與者:Customer,Bank System,Card Reader,Cash Dispenser,Printer前置條件前置條件:顧客已插入銀行卡,密碼驗(yàn)證正確,顧客按下:顧客已插入銀行卡,密碼驗(yàn)證正確,顧客按下“取款取款”按鈕按鈕主事件流主事件流:顧客輸入取款金額,并確認(rèn)。顧客輸入取款金額,并確認(rèn)。系統(tǒng)認(rèn)可取款金額,并發(fā)送指令給取款器。系統(tǒng)認(rèn)可取款金額,并發(fā)送指令給取款器。取款器把相應(yīng)金額的現(xiàn)金送出。取款器把相應(yīng)金額的現(xiàn)金

19、送出。打印機(jī)打印回執(zhí)。打印機(jī)打印回執(zhí)。輔事件流輔事件流:如果取款金額不是如果取款金額不是100的整數(shù)倍,則顯示信息的整數(shù)倍,則顯示信息“輸入金額必須是輸入金額必須是100的整數(shù)倍,的整數(shù)倍,請(qǐng)重新輸入請(qǐng)重新輸入”,并返回主事件流中步驟(,并返回主事件流中步驟(1)。)。如果取款金額超過(guò)如果取款金額超過(guò)2000元,則顯示信息元,則顯示信息“輸入金額不能超過(guò)輸入金額不能超過(guò)2000元,請(qǐng)重新輸元,請(qǐng)重新輸入入” ,并返回主事件流中步驟(,并返回主事件流中步驟(1)。)。如果賬戶余額小于取款金額,則顯示信息如果賬戶余額小于取款金額,則顯示信息“賬戶余額不足,請(qǐng)重新輸入賬戶余額不足,請(qǐng)重新輸入” ,并

20、,并返回主事件流中步驟(返回主事件流中步驟(1)。)。顧客在確認(rèn)取款金額前可以選擇取消交易。顧客在確認(rèn)取款金額前可以選擇取消交易。1.后置條件后置條件:如果取款成功,系統(tǒng)從賬戶余額中減去相應(yīng)數(shù)額,并返回等待狀態(tài);如:如果取款成功,系統(tǒng)從賬戶余額中減去相應(yīng)數(shù)額,并返回等待狀態(tài);如果顧客取消交易,則返回等待狀態(tài)。果顧客取消交易,則返回等待狀態(tài)。交互圖交互圖所有的任務(wù)都是一組對(duì)象合作完成的,作所有的任務(wù)都是一組對(duì)象合作完成的,作為對(duì)用例的進(jìn)一步細(xì)化,可以使用交互圖為對(duì)用例的進(jìn)一步細(xì)化,可以使用交互圖來(lái)描述有哪些對(duì)象如何通過(guò)消息傳遞完成來(lái)描述有哪些對(duì)象如何通過(guò)消息傳遞完成用例。用例。設(shè)計(jì)交互圖的過(guò)程也

21、是一個(gè)發(fā)現(xiàn)概念對(duì)象設(shè)計(jì)交互圖的過(guò)程也是一個(gè)發(fā)現(xiàn)概念對(duì)象的過(guò)程,這些概念層的對(duì)象和消息可以作的過(guò)程,這些概念層的對(duì)象和消息可以作為系統(tǒng)的概念層建模和后續(xù)進(jìn)一步精化提為系統(tǒng)的概念層建模和后續(xù)進(jìn)一步精化提供基礎(chǔ)。供基礎(chǔ)。順序圖描述用例順序圖描述用例交互圖與用例模交互圖與用例模型之間的對(duì)應(yīng)關(guān)型之間的對(duì)應(yīng)關(guān)系:對(duì)于動(dòng)作緒系:對(duì)于動(dòng)作緒論比較簡(jiǎn)單的用論比較簡(jiǎn)單的用例,一個(gè)交互圖例,一個(gè)交互圖對(duì)應(yīng)一個(gè)用例;對(duì)應(yīng)一個(gè)用例;對(duì)于比較復(fù)雜的對(duì)于比較復(fù)雜的用例,可能對(duì)應(yīng)用例,可能對(duì)應(yīng)多個(gè)交互圖,每多個(gè)交互圖,每個(gè)交互圖表示一個(gè)交互圖表示一個(gè)相對(duì)簡(jiǎn)單的子個(gè)相對(duì)簡(jiǎn)單的子動(dòng)作序列。動(dòng)作序列。Session用例的順序圖描述

22、用例的順序圖描述Traction用例的順序圖描述用例的順序圖描述Withdrawal用例的順序圖描述用例的順序圖描述小結(jié)小結(jié)用例分析與設(shè)計(jì)過(guò)程是基于用例分析與設(shè)計(jì)過(guò)程是基于UML的軟件設(shè)的軟件設(shè)計(jì)過(guò)程的基礎(chǔ),只有建立了清晰、準(zhǔn)確的計(jì)過(guò)程的基礎(chǔ),只有建立了清晰、準(zhǔn)確的用例模型并對(duì)用例執(zhí)行過(guò)程進(jìn)行較為全面用例模型并對(duì)用例執(zhí)行過(guò)程進(jìn)行較為全面的描述,才能使后續(xù)設(shè)計(jì)活動(dòng)不出現(xiàn)偏差的描述,才能使后續(xù)設(shè)計(jì)活動(dòng)不出現(xiàn)偏差。在為用例建立交互圖過(guò)程中,可以逐步發(fā)在為用例建立交互圖過(guò)程中,可以逐步發(fā)現(xiàn)各種系統(tǒng)概念層對(duì)象,這些對(duì)象為下一現(xiàn)各種系統(tǒng)概念層對(duì)象,這些對(duì)象為下一步建立面向?qū)ο蟮母拍钅P吞峁┝艘罁?jù),步建立面

23、向?qū)ο蟮母拍钅P吞峁┝艘罁?jù),并且可以作為頂層架構(gòu)設(shè)計(jì)的基礎(chǔ)。并且可以作為頂層架構(gòu)設(shè)計(jì)的基礎(chǔ)。(1)概念模型設(shè)計(jì))概念模型設(shè)計(jì)概念模型針對(duì)問(wèn)題領(lǐng)域中的對(duì)象進(jìn)行描述概念模型針對(duì)問(wèn)題領(lǐng)域中的對(duì)象進(jìn)行描述,頂層架構(gòu)依據(jù)概念模型進(jìn)行設(shè)計(jì)。,頂層架構(gòu)依據(jù)概念模型進(jìn)行設(shè)計(jì)。在用戶需求和相關(guān)的業(yè)務(wù)領(lǐng)域中,往往有在用戶需求和相關(guān)的業(yè)務(wù)領(lǐng)域中,往往有一些一些全局性的全局性的概念對(duì)于理解需求至關(guān)重要概念對(duì)于理解需求至關(guān)重要,因此,有必要抽取這些概念,研究這些,因此,有必要抽取這些概念,研究這些概念之間的關(guān)系。概念之間的關(guān)系。UML類圖類圖非常適合用來(lái)建立領(lǐng)域概念模型非常適合用來(lái)建立領(lǐng)域概念模型,描述在問(wèn)題域中存在哪

24、些主要概念和對(duì),描述在問(wèn)題域中存在哪些主要概念和對(duì)象,并表示出它們之間的關(guān)系,例如關(guān)聯(lián)象,并表示出它們之間的關(guān)系,例如關(guān)聯(lián)、聚集、繼承等。、聚集、繼承等。關(guān)鍵概念關(guān)鍵概念為建立以為建立以UML類圖表示的領(lǐng)域概念模型,類圖表示的領(lǐng)域概念模型,首先必須標(biāo)識(shí)關(guān)鍵概念。關(guān)鍵概念的來(lái)源首先必須標(biāo)識(shí)關(guān)鍵概念。關(guān)鍵概念的來(lái)源包括:包括:(1)業(yè)務(wù)需求描述、用例說(shuō)明;)業(yè)務(wù)需求描述、用例說(shuō)明;(2)業(yè)務(wù)領(lǐng)域中的相關(guān)規(guī)范、標(biāo)準(zhǔn)、術(shù)語(yǔ)定)業(yè)務(wù)領(lǐng)域中的相關(guān)規(guī)范、標(biāo)準(zhǔn)、術(shù)語(yǔ)定義。義。(3)反映業(yè)務(wù)領(lǐng)域知識(shí)的既往經(jīng)驗(yàn)。)反映業(yè)務(wù)領(lǐng)域知識(shí)的既往經(jīng)驗(yàn)。分析類分析類描述概念模型的描述概念模型的UML類圖主要由分析類組類圖主要

25、由分析類組成。成。分析類是指直接服務(wù)于用戶功能性需求的分析類是指直接服務(wù)于用戶功能性需求的概念層面的類,它們與待開(kāi)發(fā)軟件系統(tǒng)的概念層面的類,它們與待開(kāi)發(fā)軟件系統(tǒng)的具體實(shí)現(xiàn)技術(shù)無(wú)關(guān)。具體實(shí)現(xiàn)技術(shù)無(wú)關(guān)。概念層概念層UML類圖也可以稱為分析類圖。類圖也可以稱為分析類圖。 三種分析類三種分析類邊界類。負(fù)責(zé)目標(biāo)軟件系統(tǒng)與參與者之間的交互,構(gòu)造型為邊界類。負(fù)責(zé)目標(biāo)軟件系統(tǒng)與參與者之間的交互,構(gòu)造型為。通常情況下,參與者與用例之間的一種通信通常情況下,參與者與用例之間的一種通信連接對(duì)應(yīng)一個(gè)邊界類。連接對(duì)應(yīng)一個(gè)邊界類。其職責(zé)包括:其職責(zé)包括:邊界控制:邊界控制:包括定義數(shù)據(jù)的格式及內(nèi)容轉(zhuǎn)換,輸出結(jié)果的呈現(xiàn),軟

26、包括定義數(shù)據(jù)的格式及內(nèi)容轉(zhuǎn)換,輸出結(jié)果的呈現(xiàn),軟件運(yùn)行過(guò)程中界面的變化與切換等。件運(yùn)行過(guò)程中界面的變化與切換等。外部接口:外部接口:實(shí)現(xiàn)目標(biāo)軟件系統(tǒng)與外部系統(tǒng)或外部設(shè)備之間的信息交實(shí)現(xiàn)目標(biāo)軟件系統(tǒng)與外部系統(tǒng)或外部設(shè)備之間的信息交流和互操作,主要關(guān)注跨越目標(biāo)軟件系統(tǒng)邊界的通信協(xié)流和互操作,主要關(guān)注跨越目標(biāo)軟件系統(tǒng)邊界的通信協(xié)議議環(huán)境隔離:環(huán)境隔離:對(duì)目標(biāo)軟件系統(tǒng)與操作系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)、中間件對(duì)目標(biāo)軟件系統(tǒng)與操作系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)、中間件等環(huán)境軟件進(jìn)行交互的功能與特性進(jìn)行封裝,使目標(biāo)軟等環(huán)境軟件進(jìn)行交互的功能與特性進(jìn)行封裝,使目標(biāo)軟件系統(tǒng)的其余部分盡右能獨(dú)立于環(huán)境軟件。件系統(tǒng)的其余部分盡右能

27、獨(dú)立于環(huán)境軟件。控制類。作為完成用例任務(wù)的責(zé)任承擔(dān)者控制類。作為完成用例任務(wù)的責(zé)任承擔(dān)者,負(fù)責(zé)協(xié)調(diào)、控制其它類共同完成用例規(guī),負(fù)責(zé)協(xié)調(diào)、控制其它類共同完成用例規(guī)定的功能或行為。構(gòu)造型為定的功能或行為。構(gòu)造型為。用例通常對(duì)應(yīng)控制類用例通常對(duì)應(yīng)控制類。實(shí)體類。負(fù)責(zé)保存目標(biāo)軟件系統(tǒng)中具有持實(shí)體類。負(fù)責(zé)保存目標(biāo)軟件系統(tǒng)中具有持久意義的信息項(xiàng)并向其它類提供讀、寫(xiě)信久意義的信息項(xiàng)并向其它類提供讀、寫(xiě)信息項(xiàng)內(nèi)容的必要操作接口,一般不涉及業(yè)息項(xiàng)內(nèi)容的必要操作接口,一般不涉及業(yè)務(wù)邏輯處理。構(gòu)造型為務(wù)邏輯處理。構(gòu)造型為 。ATM系統(tǒng)的概念模型系統(tǒng)的概念模型分析模型分析模型圖圖(2)頂層架構(gòu)設(shè)計(jì))頂層架構(gòu)設(shè)計(jì)頂層架

28、構(gòu)的主要目的是為后續(xù)的分析和設(shè)頂層架構(gòu)的主要目的是為后續(xù)的分析和設(shè)計(jì)活動(dòng)建立一種結(jié)構(gòu)和劃分,以便開(kāi)發(fā)人計(jì)活動(dòng)建立一種結(jié)構(gòu)和劃分,以便開(kāi)發(fā)人員在不同的開(kāi)發(fā)階段,以及同一開(kāi)發(fā)階段員在不同的開(kāi)發(fā)階段,以及同一開(kāi)發(fā)階段的不同開(kāi)發(fā)人員,能夠聚焦于系統(tǒng)的不同的不同開(kāi)發(fā)人員,能夠聚焦于系統(tǒng)的不同部分。部分。頂層架構(gòu)是分析和設(shè)計(jì)的階段成果的承載頂層架構(gòu)是分析和設(shè)計(jì)的階段成果的承載體。體。隨著開(kāi)發(fā)過(guò)程的推進(jìn),框架中的內(nèi)容不斷隨著開(kāi)發(fā)過(guò)程的推進(jìn),框架中的內(nèi)容不斷豐富、翔實(shí),最終演進(jìn)為完整的面向?qū)ο筘S富、翔實(shí),最終演進(jìn)為完整的面向?qū)ο筌浖Y(jié)構(gòu)。軟件結(jié)構(gòu)。 頂層架構(gòu)設(shè)計(jì)頂層架構(gòu)設(shè)計(jì)頂層架構(gòu)的設(shè)計(jì)可以把體系結(jié)構(gòu)設(shè)計(jì)方法

29、頂層架構(gòu)的設(shè)計(jì)可以把體系結(jié)構(gòu)設(shè)計(jì)方法與概念模型得到的結(jié)果結(jié)合起來(lái)考慮,利與概念模型得到的結(jié)果結(jié)合起來(lái)考慮,利用一定的體系結(jié)構(gòu)模式(例如分層模式、用一定的體系結(jié)構(gòu)模式(例如分層模式、模型視圖控制器模型視圖控制器MVC模式等)對(duì)概念模式等)對(duì)概念模型中的相關(guān)元素進(jìn)行組織,同時(shí)需要考模型中的相關(guān)元素進(jìn)行組織,同時(shí)需要考慮目標(biāo)軟件系統(tǒng)與其它作為參與者的外部慮目標(biāo)軟件系統(tǒng)與其它作為參與者的外部系統(tǒng)之間的聯(lián)系和交互方式。系統(tǒng)之間的聯(lián)系和交互方式。UML包圖非常適合于表示軟件頂層架構(gòu),包圖非常適合于表示軟件頂層架構(gòu),可以從某種視角將具有比較密切的關(guān)聯(lián)的可以從某種視角將具有比較密切的關(guān)聯(lián)的一些類劃分為一個(gè)包,

30、分屬不同包的兩個(gè)一些類劃分為一個(gè)包,分屬不同包的兩個(gè)類之間的關(guān)聯(lián)則比較松散。類之間的關(guān)聯(lián)則比較松散。 ATM系統(tǒng)的頂層架構(gòu)圖系統(tǒng)的頂層架構(gòu)圖用戶界面設(shè)計(jì)的內(nèi)容用戶界面設(shè)計(jì)的內(nèi)容用戶界面是對(duì)于用戶的直接表現(xiàn),直接影用戶界面是對(duì)于用戶的直接表現(xiàn),直接影響到用戶對(duì)軟件易用性、友好性的感覺(jué)。響到用戶對(duì)軟件易用性、友好性的感覺(jué)。用戶界面包含兩方面內(nèi)容:用戶界面包含兩方面內(nèi)容:首先要首先要完整地包括用戶在使用軟件過(guò)程中所需的各種完整地包括用戶在使用軟件過(guò)程中所需的各種元素元素,例如窗口、菜單、按鈕、輸入文本框、選擇列,例如窗口、菜單、按鈕、輸入文本框、選擇列表、提示信息等,缺乏這些元素中的某些將會(huì)導(dǎo)致軟表

31、、提示信息等,缺乏這些元素中的某些將會(huì)導(dǎo)致軟件功能無(wú)法被用戶正常完成;件功能無(wú)法被用戶正常完成;其次要求其次要求具有良好的外觀和布局具有良好的外觀和布局,例如背景顏色、按,例如背景顏色、按鈕等元素的位置、選擇列表中條目的順序等,這些因鈕等元素的位置、選擇列表中條目的順序等,這些因素的不足可能不會(huì)影響軟件功能的正確使用,但會(huì)給素的不足可能不會(huì)影響軟件功能的正確使用,但會(huì)給用戶帶來(lái)不便、迷惑甚至反感。用戶帶來(lái)不便、迷惑甚至反感。本節(jié)關(guān)注第一方面的內(nèi)容本節(jié)關(guān)注第一方面的內(nèi)容用戶界面的層次和結(jié)構(gòu)用戶界面的層次和結(jié)構(gòu)用戶界面元素分為兩個(gè)層次:用戶界面元素分為兩個(gè)層次:屏幕屏幕:用構(gòu)造型用構(gòu)造型表示表示窗

32、口:屏幕上的組成部分(文本框、按鈕等)統(tǒng)窗口:屏幕上的組成部分(文本框、按鈕等)統(tǒng)一稱為窗口。用構(gòu)造型一稱為窗口。用構(gòu)造型表示表示用戶界面的結(jié)構(gòu)可以由用戶界面的結(jié)構(gòu)可以由UML類圖描述,屏幕類圖描述,屏幕和窗口用類進(jìn)行表示,并給出它們之間的關(guān)和窗口用類進(jìn)行表示,并給出它們之間的關(guān)系。系。屏幕之間的切換過(guò)程可以用屏幕之間的切換過(guò)程可以用UML狀態(tài)圖表示狀態(tài)圖表示。每個(gè)狀態(tài)表示當(dāng)時(shí)所處的屏幕,遷移表示。每個(gè)狀態(tài)表示當(dāng)時(shí)所處的屏幕,遷移表示用戶激勵(lì)。用戶激勵(lì)。當(dāng)屏幕中有許多窗口時(shí),可以對(duì)窗口劃分層當(dāng)屏幕中有許多窗口時(shí),可以對(duì)窗口劃分層次,一些簡(jiǎn)單的窗口可以作為復(fù)雜窗口的屬次,一些簡(jiǎn)單的窗口可以作為復(fù)

33、雜窗口的屬性和操作。性和操作。屏幕結(jié)構(gòu)類圖屏幕結(jié)構(gòu)類圖CustomerConsole用戶通過(guò)控制臺(tái)使用用戶通過(guò)控制臺(tái)使用ATM的過(guò)程中,可分為的過(guò)程中,可分為5個(gè)個(gè)相對(duì)獨(dú)立的過(guò)程相對(duì)獨(dú)立的過(guò)程(1)插入銀行卡到輸入正確密碼并進(jìn)入選擇交易類)插入銀行卡到輸入正確密碼并進(jìn)入選擇交易類型的屏幕型的屏幕(2)選擇)選擇“取款取款”交易,并到完成后退出或返回選交易,并到完成后退出或返回選擇交易類型的屏幕擇交易類型的屏幕(3)選擇)選擇“存款存款”交易,并到完成后退出或返回選交易,并到完成后退出或返回選擇交易類型的屏幕擇交易類型的屏幕(4)選擇)選擇“轉(zhuǎn)帳轉(zhuǎn)帳”交易,并到完成后退出或返回選交易,并到完成后

34、退出或返回選擇交易類型的屏幕擇交易類型的屏幕(5)選擇)選擇“查詢查詢”交易,并到完成后退出或返回選交易,并到完成后退出或返回選擇交易類型的屏幕擇交易類型的屏幕屏幕變化狀態(tài)圖屏幕變化狀態(tài)圖“插卡插卡”過(guò)程的屏幕轉(zhuǎn)換狀態(tài)圖:每個(gè)狀態(tài)表示一個(gè)屏幕,遷移表過(guò)程的屏幕轉(zhuǎn)換狀態(tài)圖:每個(gè)狀態(tài)表示一個(gè)屏幕,遷移表示當(dāng)前屏幕用戶的激勵(lì)。示當(dāng)前屏幕用戶的激勵(lì)。屏幕結(jié)構(gòu)類圖屏幕結(jié)構(gòu)類圖InputPin屏幕屏幕的結(jié)構(gòu)圖。每的結(jié)構(gòu)圖。每個(gè)屏幕的結(jié)構(gòu)個(gè)屏幕的結(jié)構(gòu)可以用類圖設(shè)可以用類圖設(shè)計(jì),即屏幕上計(jì),即屏幕上有什么(窗有什么(窗口),如:文口),如:文本框、按鈕等本框、按鈕等用戶控制包圖用戶控制包圖顧客控制臺(tái)包含豐富的

35、元素,可以進(jìn)一步細(xì)化形成一個(gè)對(duì)應(yīng)的顧客控制臺(tái)包含豐富的元素,可以進(jìn)一步細(xì)化形成一個(gè)對(duì)應(yīng)的包,專門描述界面元素其中有分為包,專門描述界面元素其中有分為5個(gè)子包,分別對(duì)應(yīng)個(gè)子包,分別對(duì)應(yīng)“插插卡卡”、“取款取款”、“存款存款”、“轉(zhuǎn)賬轉(zhuǎn)賬”、“查詢查詢”5個(gè)獨(dú)立的個(gè)獨(dú)立的過(guò)程。每個(gè)子包又對(duì)應(yīng)一些列的屏幕,并對(duì)應(yīng)到表示屏幕切換過(guò)程。每個(gè)子包又對(duì)應(yīng)一些列的屏幕,并對(duì)應(yīng)到表示屏幕切換的狀態(tài)圖的狀態(tài)圖插卡包圖插卡包圖小結(jié)小結(jié)一個(gè)獨(dú)立的過(guò)程包含若干屏幕變換一個(gè)獨(dú)立的過(guò)程包含若干屏幕變換狀態(tài)圖表示屏幕間的變換狀態(tài)圖表示屏幕間的變換狀態(tài)圖的一個(gè)狀態(tài)表示一個(gè)屏幕狀態(tài)圖的一個(gè)狀態(tài)表示一個(gè)屏幕一個(gè)屏幕的結(jié)構(gòu)用屏幕結(jié)構(gòu)

36、(類)圖表示一個(gè)屏幕的結(jié)構(gòu)用屏幕結(jié)構(gòu)(類)圖表示數(shù)據(jù)模型設(shè)計(jì)數(shù)據(jù)模型設(shè)計(jì)數(shù)據(jù)模型設(shè)計(jì)包括數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)數(shù)據(jù)模型設(shè)計(jì)包括數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)文件設(shè)計(jì)等,本節(jié)主要關(guān)注持設(shè)計(jì)、數(shù)據(jù)文件設(shè)計(jì)等,本節(jié)主要關(guān)注持久數(shù)據(jù)存儲(chǔ)設(shè)計(jì)。持久數(shù)據(jù)模型設(shè)計(jì)步驟久數(shù)據(jù)存儲(chǔ)設(shè)計(jì)。持久數(shù)據(jù)模型設(shè)計(jì)步驟為:為:(1)確定設(shè)計(jì)模型中需要持久保存的類的對(duì)象及其屬性,)確定設(shè)計(jì)模型中需要持久保存的類的對(duì)象及其屬性, 其中其中實(shí)體類實(shí)體類是主要關(guān)注對(duì)象。是主要關(guān)注對(duì)象。(2)確定持久存儲(chǔ)的數(shù)據(jù)之間的組織方式。)確定持久存儲(chǔ)的數(shù)據(jù)之間的組織方式。(3)確定數(shù)據(jù)模型中的操作行為,例如數(shù)據(jù)完整性驗(yàn)證、)確定數(shù)據(jù)模型中的操作

37、行為,例如數(shù)據(jù)完整性驗(yàn)證、 數(shù)據(jù)讀取、存儲(chǔ)與更新、數(shù)據(jù)求和、求數(shù)據(jù)平均值等。數(shù)據(jù)讀取、存儲(chǔ)與更新、數(shù)據(jù)求和、求數(shù)據(jù)平均值等。(4)進(jìn)一步優(yōu)化持久數(shù)據(jù)操作的性能,如使用數(shù)據(jù)索引、)進(jìn)一步優(yōu)化持久數(shù)據(jù)操作的性能,如使用數(shù)據(jù)索引、 存儲(chǔ)過(guò)程、觸發(fā)器等方式。存儲(chǔ)過(guò)程、觸發(fā)器等方式。數(shù)據(jù)模型設(shè)計(jì)的輸出制品是數(shù)據(jù)模型,包括以數(shù)據(jù)模型設(shè)計(jì)的輸出制品是數(shù)據(jù)模型,包括以UML類圖表示的數(shù)據(jù)庫(kù)表格以類圖表示的數(shù)據(jù)庫(kù)表格以及它們之間的關(guān)系。數(shù)據(jù)模型必須滿足設(shè)計(jì)模型對(duì)持久數(shù)據(jù)存儲(chǔ)的要求。及它們之間的關(guān)系。數(shù)據(jù)模型必須滿足設(shè)計(jì)模型對(duì)持久數(shù)據(jù)存儲(chǔ)的要求。關(guān)系數(shù)據(jù)庫(kù)建模關(guān)系數(shù)據(jù)庫(kù)建模類對(duì)應(yīng)于關(guān)系數(shù)據(jù)模型中的表格(類對(duì)應(yīng)于關(guān)

38、系數(shù)據(jù)模型中的表格(table),對(duì)象對(duì)應(yīng)于記錄(,對(duì)象對(duì)應(yīng)于記錄(record),屬性對(duì)應(yīng)),屬性對(duì)應(yīng)于表格中的字段(于表格中的字段(field)或者列()或者列(column),類中的方法實(shí)現(xiàn)可以用),類中的方法實(shí)現(xiàn)可以用SQL語(yǔ)句對(duì)數(shù)語(yǔ)句對(duì)數(shù)據(jù)庫(kù)表格進(jìn)行操作。據(jù)庫(kù)表格進(jìn)行操作。 表示表格,表示表格,表示關(guān)鍵字,表示關(guān)鍵字,foreign key表示外鍵表示外鍵數(shù)據(jù)模型數(shù)據(jù)模型4.6 設(shè)計(jì)精化設(shè)計(jì)精化設(shè)計(jì)精化的任務(wù):設(shè)計(jì)精化的任務(wù):(1)精化軟件架構(gòu))精化軟件架構(gòu)(2)調(diào)整軟件組成類)調(diào)整軟件組成類(3)精化交互模型)精化交互模型(4)精化類之間關(guān)系)精化類之間關(guān)系(1)精化軟件架構(gòu))精化

39、軟件架構(gòu)精化軟件架構(gòu)的主要目的是尋找一種理想精化軟件架構(gòu)的主要目的是尋找一種理想的包劃分方案,使得每個(gè)包中直接包含的的包劃分方案,使得每個(gè)包中直接包含的類的數(shù)量規(guī)模適中,包的邊界清晰、自然類的數(shù)量規(guī)模適中,包的邊界清晰、自然,并且包間的耦合度較低。,并且包間的耦合度較低。隨著分析和設(shè)計(jì)不斷深入,原有包圖中的隨著分析和設(shè)計(jì)不斷深入,原有包圖中的包可能包含了過(guò)多的類,此時(shí)需要對(duì)其進(jìn)包可能包含了過(guò)多的類,此時(shí)需要對(duì)其進(jìn)行分拆。行分拆。按照軟件工程強(qiáng)內(nèi)聚、松耦合的原則,這按照軟件工程強(qiáng)內(nèi)聚、松耦合的原則,這種分拆應(yīng)該具有某種自然劃分的性質(zhì),并種分拆應(yīng)該具有某種自然劃分的性質(zhì),并且盡可能降低劃分以后的子

40、包之間的耦合且盡可能降低劃分以后的子包之間的耦合度。度。 精化軟件架構(gòu)精化軟件架構(gòu)包間的耦合度主要取決于依賴關(guān)系,包間的依賴關(guān)系又取包間的耦合度主要取決于依賴關(guān)系,包間的依賴關(guān)系又取決于兩個(gè)包中類之間的關(guān)系,包劃分(拆分、移動(dòng)、合并決于兩個(gè)包中類之間的關(guān)系,包劃分(拆分、移動(dòng)、合并等)的有關(guān)原則:等)的有關(guān)原則:避免包間的循環(huán)依賴關(guān)系,即排除包避免包間的循環(huán)依賴關(guān)系,即排除包P1依賴于包依賴于包P2、P2又依賴于又依賴于P1的情形。的情形。在層次結(jié)構(gòu)中,位于較低層次的通用包不應(yīng)當(dāng)依賴于在層次結(jié)構(gòu)中,位于較低層次的通用包不應(yīng)當(dāng)依賴于較高層次中的專用包。較高層次中的專用包。在層次結(jié)構(gòu)中,較高層次的

41、包可以依賴于較低層次的在層次結(jié)構(gòu)中,較高層次的包可以依賴于較低層次的包,但應(yīng)盡量在相鄰的層次間發(fā)生。包,但應(yīng)盡量在相鄰的層次間發(fā)生。如果針對(duì)某些子系統(tǒng)專門劃分了接口包和實(shí)現(xiàn)包,那如果針對(duì)某些子系統(tǒng)專門劃分了接口包和實(shí)現(xiàn)包,那么,其它與該子系統(tǒng)相關(guān)的包只能依賴于接口包,不么,其它與該子系統(tǒng)相關(guān)的包只能依賴于接口包,不能依賴于實(shí)現(xiàn)包。能依賴于實(shí)現(xiàn)包。圖圖4-17、4-18 “用戶交互層包、子包精化后的模型用戶交互層包、子包精化后的模型”用戶交互層包精化后的模型用戶交互層包精化后的模型用戶交互層中子包精化后的模型用戶交互層中子包精化后的模型(2)調(diào)整軟件構(gòu)成類)調(diào)整軟件構(gòu)成類對(duì)設(shè)計(jì)模型中的類進(jìn)行調(diào)整

42、和優(yōu)化,以滿對(duì)設(shè)計(jì)模型中的類進(jìn)行調(diào)整和優(yōu)化,以滿足強(qiáng)內(nèi)聚、低耦合、簡(jiǎn)單性、自然性等軟足強(qiáng)內(nèi)聚、低耦合、簡(jiǎn)單性、自然性等軟件工程原則。調(diào)整和優(yōu)化主要包括:件工程原則。調(diào)整和優(yōu)化主要包括:(1)增加輔助類,例如實(shí)現(xiàn)通信、關(guān)鍵算法)增加輔助類,例如實(shí)現(xiàn)通信、關(guān)鍵算法的類的類(2)合并相互通信頻繁的類)合并相互通信頻繁的類 (3)分拆規(guī)模過(guò)大的類)分拆規(guī)模過(guò)大的類 精化過(guò)程中新增加的類(3)精化交互模型)精化交互模型精化交互圖時(shí),消息名、對(duì)象交互的參數(shù)精化交互圖時(shí),消息名、對(duì)象交互的參數(shù)、返回值等均需要注明。需要考慮以下內(nèi)、返回值等均需要注明。需要考慮以下內(nèi)容:容:(1)要考慮軟件架構(gòu)和組成類被調(diào)整之

43、后對(duì))要考慮軟件架構(gòu)和組成類被調(diào)整之后對(duì)交互模型會(huì)產(chǎn)生哪些影響,新出現(xiàn)的對(duì)象交互模型會(huì)產(chǎn)生哪些影響,新出現(xiàn)的對(duì)象或拆分后的對(duì)象如何參與交互過(guò)程,在其或拆分后的對(duì)象如何參與交互過(guò)程,在其中起到什么樣的作用中起到什么樣的作用(2)對(duì)象在交互過(guò)程中的消息傳遞需要哪些)對(duì)象在交互過(guò)程中的消息傳遞需要哪些參數(shù)和返回值。參數(shù)和返回值。(3)交互過(guò)程是否需要細(xì)化,例如增加必要)交互過(guò)程是否需要細(xì)化,例如增加必要的消息,或?qū)植恳靡粋€(gè)更加具體的交的消息,或?qū)植恳靡粋€(gè)更加具體的交互圖?;D。圖圖4-20 精化后的精化后的Withdrawal順序圖順序圖精化后的精化后的Withdrawal順序圖順序圖(4)

44、精化類之間的關(guān)系)精化類之間的關(guān)系研究類之間的連接關(guān)系:研究類之間的連接關(guān)系:(1)根據(jù)這些連接的語(yǔ)義強(qiáng)度將它們精確地)根據(jù)這些連接的語(yǔ)義強(qiáng)度將它們精確地判定為判定為 UML的依賴、關(guān)聯(lián)、聚合或構(gòu)成關(guān)系之一的依賴、關(guān)聯(lián)、聚合或構(gòu)成關(guān)系之一;(2)確定連接的方向及參與連接的類對(duì)象之)確定連接的方向及參與連接的類對(duì)象之間的數(shù)間的數(shù) 量對(duì)應(yīng)關(guān)系;量對(duì)應(yīng)關(guān)系;(3)根據(jù)軟件復(fù)用的要求及軟件結(jié)構(gòu)簡(jiǎn)潔化)根據(jù)軟件復(fù)用的要求及軟件結(jié)構(gòu)簡(jiǎn)潔化、清晰、清晰 化的要求,優(yōu)化類之間的關(guān)系。化的要求,優(yōu)化類之間的關(guān)系。精化類之間的關(guān)系精化類之間的關(guān)系對(duì)象對(duì)象obj1和和obj2之間的消息傳遞機(jī)制:之間的消息傳遞機(jī)制:

45、(1)引用全局對(duì)象)引用全局對(duì)象(2)通過(guò)參數(shù)傳遞)通過(guò)參數(shù)傳遞(3)引用局部對(duì)象)引用局部對(duì)象(4)通過(guò)類的成員變量:)通過(guò)類的成員變量:暫時(shí)性連接,用依賴關(guān)系表示暫時(shí)性連接,用依賴關(guān)系表示穩(wěn)定性連接穩(wěn)定性連接構(gòu)成關(guān)系構(gòu)成關(guān)系聚合聚合/集關(guān)系集關(guān)系關(guān)聯(lián)關(guān)系(以上兩種均不成立關(guān)聯(lián)關(guān)系(以上兩種均不成立)精化類之間的關(guān)系精化類之間的關(guān)系其他需要考慮的問(wèn)題:其他需要考慮的問(wèn)題:(1)關(guān)聯(lián)類)關(guān)聯(lián)類(2)依賴、構(gòu)成、聚合關(guān)系的方向:盡量將)依賴、構(gòu)成、聚合關(guān)系的方向:盡量將關(guān)聯(lián)單關(guān)聯(lián)單 向化,單向關(guān)系更簡(jiǎn)單,實(shí)現(xiàn)代價(jià)更小。向化,單向關(guān)系更簡(jiǎn)單,實(shí)現(xiàn)代價(jià)更小。(3)利用繼承精化設(shè)計(jì)模型,引進(jìn)新的父類)

46、利用繼承精化設(shè)計(jì)模型,引進(jìn)新的父類捕獲公捕獲公 共性。共性。小結(jié)小結(jié)在設(shè)計(jì)精化的過(guò)程中,同時(shí)存在對(duì)業(yè)務(wù)邏在設(shè)計(jì)精化的過(guò)程中,同時(shí)存在對(duì)業(yè)務(wù)邏輯、界面、數(shù)據(jù)模型等不同側(cè)面的設(shè)計(jì)模輯、界面、數(shù)據(jù)模型等不同側(cè)面的設(shè)計(jì)模型進(jìn)行整理和融合的過(guò)程,根據(jù)需要合并型進(jìn)行整理和融合的過(guò)程,根據(jù)需要合并不同模型中相似的類,消除設(shè)計(jì)模型之間不同模型中相似的類,消除設(shè)計(jì)模型之間的冗余,同時(shí)必須保證設(shè)計(jì)模型之間的一的冗余,同時(shí)必須保證設(shè)計(jì)模型之間的一致性。致性。類設(shè)計(jì)類設(shè)計(jì)類設(shè)計(jì)的任務(wù)是對(duì)各種設(shè)計(jì)模型中出現(xiàn)的類設(shè)計(jì)的任務(wù)是對(duì)各種設(shè)計(jì)模型中出現(xiàn)的類進(jìn)行細(xì)化設(shè)計(jì),以使它們精細(xì)至能夠直類進(jìn)行細(xì)化設(shè)計(jì),以使它們精細(xì)至能夠直接提

47、交給軟件構(gòu)造階段進(jìn)行代碼實(shí)現(xiàn),類接提交給軟件構(gòu)造階段進(jìn)行代碼實(shí)現(xiàn),類設(shè)計(jì)也是一種對(duì)設(shè)計(jì)的精化,類設(shè)計(jì)主要設(shè)計(jì)也是一種對(duì)設(shè)計(jì)的精化,類設(shè)計(jì)主要包括:包括:(1)對(duì)類的屬性與操作進(jìn)行精化。)對(duì)類的屬性與操作進(jìn)行精化。(2)對(duì)類的對(duì)象實(shí)例在其生命周期中對(duì)外部)對(duì)類的對(duì)象實(shí)例在其生命周期中對(duì)外部消息的消息的 響應(yīng)和狀態(tài)變化過(guò)程進(jìn)行建模。響應(yīng)和狀態(tài)變化過(guò)程進(jìn)行建模。(3)對(duì)類中重要操作的實(shí)現(xiàn)過(guò)程或算法進(jìn)行)對(duì)類中重要操作的實(shí)現(xiàn)過(guò)程或算法進(jìn)行描述。描述。(1)關(guān)注單個(gè)類的內(nèi)部細(xì)節(jié)的設(shè)計(jì);關(guān)注單個(gè)類的內(nèi)部細(xì)節(jié)的設(shè)計(jì);(2)和和(3)屬于類的行為模型設(shè)計(jì)。屬于類的行為模型設(shè)計(jì)。(1)精化類的屬性與操作)精化類

48、的屬性與操作對(duì)于類的每項(xiàng)屬性,在設(shè)計(jì)模型中,可以定對(duì)于類的每項(xiàng)屬性,在設(shè)計(jì)模型中,可以定義屬性的名稱、類型、初始值、取值范圍及義屬性的名稱、類型、初始值、取值范圍及屬性說(shuō)明(后三項(xiàng)內(nèi)容是可選的)。屬性說(shuō)明(后三項(xiàng)內(nèi)容是可選的)。操作的基本內(nèi)容包括名稱、參數(shù)表(含參數(shù)操作的基本內(nèi)容包括名稱、參數(shù)表(含參數(shù)的名稱和類型)、返回類型、功能描述。的名稱和類型)、返回類型、功能描述。如果操作比較復(fù)雜,還需要用文字或如果操作比較復(fù)雜,還需要用文字或UML活活動(dòng)圖說(shuō)明操作的實(shí)現(xiàn)算法。動(dòng)圖說(shuō)明操作的實(shí)現(xiàn)算法。精化類的屬性與操作精化類的屬性與操作屬性和操作的作用范圍:屬性和操作的作用范圍:(1)public:對(duì)

49、系統(tǒng)中所有類可見(jiàn):對(duì)系統(tǒng)中所有類可見(jiàn)(2)protected:對(duì)本類及其子類可見(jiàn):對(duì)本類及其子類可見(jiàn)(3)private:僅對(duì)本類可見(jiàn):僅對(duì)本類可見(jiàn)確定屬性和操作作用范圍的原則:盡量縮小作用范圍,每確定屬性和操作作用范圍的原則:盡量縮小作用范圍,每個(gè)類僅公開(kāi)那些直接響應(yīng)消息所必需的操作。原則上屬性個(gè)類僅公開(kāi)那些直接響應(yīng)消息所必需的操作。原則上屬性不宜公開(kāi),如果確有必要讓其他類讀取或者設(shè)置該屬性的不宜公開(kāi),如果確有必要讓其他類讀取或者設(shè)置該屬性的值,應(yīng)通過(guò)本類增加值,應(yīng)通過(guò)本類增加get/set函數(shù)實(shí)現(xiàn)。函數(shù)實(shí)現(xiàn)。精化類之間的關(guān)系精化類之間的關(guān)系在類中設(shè)置相應(yīng)屬性,實(shí)現(xiàn)類之間的關(guān)聯(lián)、聚合、構(gòu)成關(guān)

50、系在類中設(shè)置相應(yīng)屬性,實(shí)現(xiàn)類之間的關(guān)聯(lián)、聚合、構(gòu)成關(guān)系: :a a、類型為、類型為B B的指針或引用的指針或引用b b、集合類型,集合元素的類型為、集合類型,集合元素的類型為B B的指針或引用的指針或引用c c、類型為、類型為B B的指針或引用的指針或引用d d、集合類型,集合元素的類型為、集合類型,集合元素的類型為B B A AB Ba 1:1的關(guān)聯(lián)或聚合(非構(gòu)成)關(guān)系的關(guān)聯(lián)或聚合(非構(gòu)成)關(guān)系b 1:*的關(guān)聯(lián)或聚合(非構(gòu)成)關(guān)系的關(guān)聯(lián)或聚合(非構(gòu)成)關(guān)系c 1:1的構(gòu)成關(guān)系的構(gòu)成關(guān)系d 1:*的構(gòu)成關(guān)系的構(gòu)成關(guān)系精化類的屬性與操作精化類的屬性與操作類的操作主要來(lái)源于各種設(shè)計(jì)模型和方案類的操

51、作主要來(lái)源于各種設(shè)計(jì)模型和方案中對(duì)類的職責(zé)的規(guī)定,針對(duì)每個(gè)類的特征中對(duì)類的職責(zé)的規(guī)定,針對(duì)每個(gè)類的特征,考慮是否需要以下操作:,考慮是否需要以下操作:(1)對(duì)象創(chuàng)建)對(duì)象創(chuàng)建(2)對(duì)象刪除)對(duì)象刪除(3)對(duì)象比較)對(duì)象比較(4)對(duì)象復(fù)制)對(duì)象復(fù)制(2)類的行為模型設(shè)計(jì))類的行為模型設(shè)計(jì)在兩個(gè)層次上建模在兩個(gè)層次上建模(1)針對(duì)整個(gè)類使用)針對(duì)整個(gè)類使用UML狀態(tài)圖描述其行狀態(tài)圖描述其行為。為。(2)針對(duì)類中某些重要的方法,用)針對(duì)類中某些重要的方法,用UML活活動(dòng)圖描述其執(zhí)行過(guò)程或步驟。動(dòng)圖描述其執(zhí)行過(guò)程或步驟。 對(duì)象具有一定的生存周期,在其活躍過(guò)程中可以響應(yīng)外部的消息激勵(lì),對(duì)象具有一定的生存

52、周期,在其活躍過(guò)程中可以響應(yīng)外部的消息激勵(lì),執(zhí)行相應(yīng)的操作。對(duì)象生存期具有不同的狀態(tài),位于不同的狀態(tài)可以響應(yīng)執(zhí)行相應(yīng)的操作。對(duì)象生存期具有不同的狀態(tài),位于不同的狀態(tài)可以響應(yīng)不同的消息,因此可以用狀態(tài)圖刻畫(huà)對(duì)象的動(dòng)態(tài)行為。不同的消息,因此可以用狀態(tài)圖刻畫(huà)對(duì)象的動(dòng)態(tài)行為。 只需針對(duì)具有明顯的狀態(tài)特征并具有比較復(fù)雜的只需針對(duì)具有明顯的狀態(tài)特征并具有比較復(fù)雜的“狀態(tài)狀態(tài)事件事件響應(yīng)響應(yīng)”的類設(shè)計(jì)狀態(tài)圖即可。狀態(tài)圖主要針對(duì)控制類,很少對(duì)實(shí)體類。的類設(shè)計(jì)狀態(tài)圖即可。狀態(tài)圖主要針對(duì)控制類,很少對(duì)實(shí)體類。 圖圖4-23、4-24 狀態(tài)圖中的節(jié)點(diǎn)是狀態(tài)狀態(tài)圖中的節(jié)點(diǎn)是狀態(tài)對(duì)于某些執(zhí)行比較重要的任務(wù)且控制流程較為

53、復(fù)雜的方對(duì)于某些執(zhí)行比較重要的任務(wù)且控制流程較為復(fù)雜的方法,可以使用活動(dòng)圖描述其執(zhí)行過(guò)程法,可以使用活動(dòng)圖描述其執(zhí)行過(guò)程 圖圖4-25 活動(dòng)圖中的節(jié)點(diǎn)是動(dòng)作活動(dòng)圖中的節(jié)點(diǎn)是動(dòng)作Withdrawal類中方法類中方法Check()執(zhí)行過(guò)程的活動(dòng)圖執(zhí)行過(guò)程的活動(dòng)圖小結(jié)小結(jié)類的設(shè)計(jì)最終應(yīng)該達(dá)到準(zhǔn)確、詳細(xì)描述類類的設(shè)計(jì)最終應(yīng)該達(dá)到準(zhǔn)確、詳細(xì)描述類的構(gòu)成和行為的目標(biāo)。由于面向?qū)ο筌浖臉?gòu)成和行為的目標(biāo)。由于面向?qū)ο筌浖淖罱K實(shí)現(xiàn)表現(xiàn)為一組類的實(shí)現(xiàn),并且最的最終實(shí)現(xiàn)表現(xiàn)為一組類的實(shí)現(xiàn),并且最終的測(cè)試和運(yùn)行也是以類為基礎(chǔ),因此類終的測(cè)試和運(yùn)行也是以類為基礎(chǔ),因此類的設(shè)計(jì)結(jié)果是軟件開(kāi)發(fā)中后續(xù)活動(dòng)的直接的設(shè)計(jì)結(jié)果

54、是軟件開(kāi)發(fā)中后續(xù)活動(dòng)的直接參考依據(jù)。參考依據(jù)。部署模型設(shè)計(jì)部署模型設(shè)計(jì)部署模型設(shè)計(jì)考慮如下內(nèi)容:部署模型設(shè)計(jì)考慮如下內(nèi)容:(1)最終開(kāi)發(fā)完成的軟件包括哪些制品形式)最終開(kāi)發(fā)完成的軟件包括哪些制品形式;(2)軟件運(yùn)行環(huán)境存在哪些類型的物理節(jié)點(diǎn))軟件運(yùn)行環(huán)境存在哪些類型的物理節(jié)點(diǎn);(3)不同節(jié)點(diǎn)之間的連接和通信形式是什么)不同節(jié)點(diǎn)之間的連接和通信形式是什么;(4)軟件制品應(yīng)該如何在物理節(jié)點(diǎn)上進(jìn)行部)軟件制品應(yīng)該如何在物理節(jié)點(diǎn)上進(jìn)行部署,即它們的部署映射關(guān)系。署,即它們的部署映射關(guān)系。部署圖對(duì)于復(fù)雜的分布式軟件系統(tǒng)非常有用,部署圖還部署圖對(duì)于復(fù)雜的分布式軟件系統(tǒng)非常有用,部署圖還可以描述整個(gè)系統(tǒng)結(jié)構(gòu)

55、的一些特殊要求,例如系統(tǒng)的備可以描述整個(gè)系統(tǒng)結(jié)構(gòu)的一些特殊要求,例如系統(tǒng)的備份和容錯(cuò)結(jié)構(gòu)設(shè)計(jì)。份和容錯(cuò)結(jié)構(gòu)設(shè)計(jì)。ATM系統(tǒng)部署模型系統(tǒng)部署模型第第5章章面向數(shù)據(jù)流的軟件設(shè)計(jì)方法面向數(shù)據(jù)流的軟件設(shè)計(jì)方法面向數(shù)據(jù)流的軟件設(shè)計(jì)方法即結(jié)構(gòu)化設(shè)計(jì)面向數(shù)據(jù)流的軟件設(shè)計(jì)方法即結(jié)構(gòu)化設(shè)計(jì)方法,其目標(biāo)是為結(jié)構(gòu)化軟件的設(shè)計(jì)提供方法,其目標(biāo)是為結(jié)構(gòu)化軟件的設(shè)計(jì)提供一個(gè)一個(gè)系統(tǒng)化的途徑系統(tǒng)化的途徑。面向數(shù)據(jù)流的設(shè)計(jì)方法根據(jù)分析階段對(duì)數(shù)面向數(shù)據(jù)流的設(shè)計(jì)方法根據(jù)分析階段對(duì)數(shù)據(jù)流的分析設(shè)計(jì)軟件結(jié)構(gòu),根據(jù)數(shù)據(jù)流圖據(jù)流的分析設(shè)計(jì)軟件結(jié)構(gòu),根據(jù)數(shù)據(jù)流圖的特性定義兩種的特性定義兩種“映射映射”并轉(zhuǎn)化為并轉(zhuǎn)化為程序結(jié)構(gòu)程序結(jié)構(gòu)。映射

56、映射DFD( (問(wèn)題結(jié)構(gòu)問(wèn)題結(jié)構(gòu)) )軟件系統(tǒng)的結(jié)構(gòu)軟件系統(tǒng)的結(jié)構(gòu)( (程序結(jié)構(gòu)程序結(jié)構(gòu)) )數(shù)據(jù)流圖的層次數(shù)據(jù)流圖的層次信息處理系統(tǒng)一般由信息處理系統(tǒng)一般由數(shù)據(jù)流數(shù)據(jù)流和一系列的和一系列的轉(zhuǎn)轉(zhuǎn)換換構(gòu)成,這些轉(zhuǎn)換將輸入數(shù)據(jù)流變化為輸構(gòu)成,這些轉(zhuǎn)換將輸入數(shù)據(jù)流變化為輸出數(shù)據(jù)流。數(shù)據(jù)流圖就是用來(lái)刻畫(huà)數(shù)據(jù)流出數(shù)據(jù)流。數(shù)據(jù)流圖就是用來(lái)刻畫(huà)數(shù)據(jù)流和轉(zhuǎn)換的信息系統(tǒng)建模技術(shù)和轉(zhuǎn)換的信息系統(tǒng)建模技術(shù) 。它提供層次結(jié)構(gòu)讓分析人員能夠方便地表它提供層次結(jié)構(gòu)讓分析人員能夠方便地表示任意抽象級(jí)別上的信息系統(tǒng)或其子部分示任意抽象級(jí)別上的信息系統(tǒng)或其子部分,并支持,并支持問(wèn)題分解、逐步求精問(wèn)題分解、逐步求精的分析方法的分

57、析方法。 初始時(shí),整個(gè)信息處理系統(tǒng)可以用頂級(jí)(初始時(shí),整個(gè)信息處理系統(tǒng)可以用頂級(jí)(第級(jí))數(shù)據(jù)流圖表示。第級(jí))數(shù)據(jù)流圖表示。 在數(shù)據(jù)流方法中,對(duì)數(shù)據(jù)(數(shù)據(jù)流)的精在數(shù)據(jù)流方法中,對(duì)數(shù)據(jù)(數(shù)據(jù)流)的精化是伴隨著對(duì)化是伴隨著對(duì)轉(zhuǎn)換轉(zhuǎn)換的精化而同步進(jìn)行的。的精化而同步進(jìn)行的。 (1)數(shù)據(jù)流圖)數(shù)據(jù)流圖頂級(jí)數(shù)據(jù)流圖頂級(jí)數(shù)據(jù)流圖數(shù)據(jù)流圖的精化數(shù)據(jù)流圖的精化在進(jìn)行逐層精化的過(guò)程中,必須維持層間在進(jìn)行逐層精化的過(guò)程中,必須維持層間數(shù)據(jù)流圖的平衡,即,數(shù)據(jù)流圖的平衡,即,被精化的轉(zhuǎn)換的輸被精化的轉(zhuǎn)換的輸入、輸出流必須與精化它的數(shù)據(jù)流子圖的入、輸出流必須與精化它的數(shù)據(jù)流子圖的初始輸入流和最終輸出流嚴(yán)格一致初始輸入

58、流和最終輸出流嚴(yán)格一致。要注意逐層精化必須適可而止,因?yàn)樵O(shè)計(jì)要注意逐層精化必須適可而止,因?yàn)樵O(shè)計(jì)之前的分析活動(dòng)只求對(duì)問(wèn)題的全面、清晰之前的分析活動(dòng)只求對(duì)問(wèn)題的全面、清晰的理解,并不關(guān)心軟件的設(shè)計(jì)細(xì)節(jié)。的理解,并不關(guān)心軟件的設(shè)計(jì)細(xì)節(jié)。 (2)數(shù)據(jù)字典)數(shù)據(jù)字典數(shù)據(jù)流圖機(jī)制并不足以完整地描述軟件需數(shù)據(jù)流圖機(jī)制并不足以完整地描述軟件需求,因?yàn)闆](méi)有描述數(shù)據(jù)流的內(nèi)容。求,因?yàn)闆](méi)有描述數(shù)據(jù)流的內(nèi)容。數(shù)據(jù)流圖必須與描述并組織數(shù)據(jù)條目的數(shù)數(shù)據(jù)流圖必須與描述并組織數(shù)據(jù)條目的數(shù)據(jù)字典配套使用。據(jù)字典配套使用。 數(shù)據(jù)條目的定義必須遵循以下原則:精確數(shù)據(jù)條目的定義必須遵循以下原則:精確、簡(jiǎn)潔,并且能為用戶方和軟件開(kāi)發(fā)

59、方共、簡(jiǎn)潔,并且能為用戶方和軟件開(kāi)發(fā)方共同理解。同理解。 數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典的內(nèi)容n在數(shù)據(jù)流圖中標(biāo)識(shí)數(shù)據(jù)流、數(shù)據(jù)源或外部在數(shù)據(jù)流圖中標(biāo)識(shí)數(shù)據(jù)流、數(shù)據(jù)源或外部實(shí)體的名稱與別名;實(shí)體的名稱與別名;n數(shù)據(jù)類型;數(shù)據(jù)類型;n所有以它作為輸入流或輸出流的轉(zhuǎn)換的列所有以它作為輸入流或輸出流的轉(zhuǎn)換的列表;表;n如何使用該數(shù)據(jù)條目的簡(jiǎn)要說(shuō)明;如何使用該數(shù)據(jù)條目的簡(jiǎn)要說(shuō)明;n數(shù)據(jù)條目的解釋性說(shuō)明;數(shù)據(jù)條目的解釋性說(shuō)明;n其它補(bǔ)充說(shuō)明,例如取值范圍與缺省值,其它補(bǔ)充說(shuō)明,例如取值范圍與缺省值,有關(guān)的設(shè)計(jì)約束等。有關(guān)的設(shè)計(jì)約束等。語(yǔ)法語(yǔ)法A+B:語(yǔ)法成分:語(yǔ)法成分A和和B的順序連接;的順序連接;A|B:A或或B

60、;An:n個(gè)個(gè)A的順序連接。的順序連接。數(shù)據(jù)條目中的語(yǔ)法成分都必須有對(duì)應(yīng)描述數(shù)據(jù)條目中的語(yǔ)法成分都必須有對(duì)應(yīng)描述。數(shù)據(jù)字典示例電話號(hào)碼數(shù)據(jù)字典示例電話號(hào)碼電話號(hào)碼電話號(hào)碼 分機(jī)號(hào)分機(jī)號(hào)外線號(hào)碼外線號(hào)碼分機(jī)號(hào)分機(jī)號(hào) 350135023599外線號(hào)碼外線號(hào)碼 2(市話號(hào)碼市話號(hào)碼長(zhǎng)話號(hào)碼長(zhǎng)話號(hào)碼)長(zhǎng)話號(hào)碼長(zhǎng)話號(hào)碼 (區(qū)號(hào)區(qū)號(hào)市話號(hào)碼市話號(hào)碼)區(qū)號(hào)區(qū)號(hào) 任何長(zhǎng)度為任何長(zhǎng)度為2或或3的數(shù)字串的數(shù)字串市話號(hào)碼市話號(hào)碼 局號(hào)局號(hào)分局號(hào)分局號(hào)局號(hào)局號(hào) 455448888552分局號(hào)分局號(hào) = 任何長(zhǎng)度為任何長(zhǎng)度為4的數(shù)字串的數(shù)字串小結(jié)小結(jié)利用數(shù)據(jù)字典可以對(duì)數(shù)據(jù)流圖中的數(shù)據(jù)流利用數(shù)據(jù)字典可以對(duì)數(shù)據(jù)流圖中的數(shù)據(jù)

溫馨提示

  • 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)論