面向?qū)ο笤O計_第1頁
面向?qū)ο笤O計_第2頁
面向?qū)ο笤O計_第3頁
面向?qū)ο笤O計_第4頁
面向?qū)ο笤O計_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程2021/3/26大連理工大學軟件學院大連理工大學軟件學院2第第11章章 面向?qū)ο笤O計面向?qū)ο笤O計 分析是提取和整理用戶需求分析是提取和整理用戶需求,并建立問題域精確模并建立問題域精確模型的過程。型的過程。 設計則是把分析階段得到的需求轉(zhuǎn)變成符合成本設計則是把分析階段得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象的和質(zhì)量要求的、抽象的系統(tǒng)實現(xiàn)方案系統(tǒng)實現(xiàn)方案的過程。的過程。 從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O計從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O計(通??s寫為通常縮寫為OOD),是一個逐漸擴充模型的過程。即面向?qū)ο笤O計就是一個逐漸擴充模型的過程。即面向?qū)ο笤O計就是用面向?qū)ο笥^點建立求解域模型的過程。是用面向

2、對象觀點建立求解域模型的過程。2021/3/26大連理工大學軟件學院大連理工大學軟件學院3 盡管分析和設計的定義有明顯區(qū)別盡管分析和設計的定義有明顯區(qū)別, ,但是在實際的軟件但是在實際的軟件開發(fā)過程中二者的開發(fā)過程中二者的界限是模糊界限是模糊的。的。 許多分析結果可以直接映射成設計結果許多分析結果可以直接映射成設計結果, ,而在設計過程而在設計過程中又往往會加深和補充對系統(tǒng)需求的理解中又往往會加深和補充對系統(tǒng)需求的理解, ,從而進一步從而進一步完善分析結果。完善分析結果。 因此因此, ,分析和設計活動是一個多次反復迭代的過程。分析和設計活動是一個多次反復迭代的過程。 面向?qū)ο箝_發(fā)活動的平滑面向

3、對象開發(fā)活動的平滑( (無縫無縫) )過渡過渡, ,使得領域?qū)<液褪沟妙I域?qū)<液烷_發(fā)人員能夠比較容易地跟蹤整個系統(tǒng)開發(fā)過程。開發(fā)人員能夠比較容易地跟蹤整個系統(tǒng)開發(fā)過程。2021/3/26大連理工大學軟件學院大連理工大學軟件學院4 面向?qū)ο笤O計細分為面向?qū)ο笤O計細分為系統(tǒng)設計和對象設計系統(tǒng)設計和對象設計。 系統(tǒng)設計確定實現(xiàn)系統(tǒng)的策略和目標系統(tǒng)系統(tǒng)設計確定實現(xiàn)系統(tǒng)的策略和目標系統(tǒng)的高層結構。的高層結構。 (架構設計架構設計) 對象設計確定解空間中的類、關聯(lián)、接口對象設計確定解空間中的類、關聯(lián)、接口形式及實現(xiàn)服務的算法。形式及實現(xiàn)服務的算法。2021/3/26大連理工大學軟件學院大連理工大學軟件學院

4、5 11.1 面向?qū)ο笤O計的準則面向?qū)ο笤O計的準則 11.2 啟發(fā)規(guī)則啟發(fā)規(guī)則 11.3 軟件重用軟件重用 11.4 系統(tǒng)分解系統(tǒng)分解 11.5 設計問題域子系統(tǒng)設計問題域子系統(tǒng) 11.6 設計人設計人-機交互子系統(tǒng)機交互子系統(tǒng) 11.7 設計任務管理子系統(tǒng)設計任務管理子系統(tǒng)2021/3/26大連理工大學軟件學院大連理工大學軟件學院6 11.8 設計數(shù)據(jù)管理子系統(tǒng)設計數(shù)據(jù)管理子系統(tǒng) 11.9 設計類中的服務設計類中的服務 11.10 設計關聯(lián)設計關聯(lián) 11.11 設計優(yōu)化設計優(yōu)化 11.12 小結小結2021/3/26大連理工大學軟件學院大連理工大學軟件學院711.1 面向?qū)ο笤O計的準則面向?qū)?/p>

5、象設計的準則 所謂優(yōu)秀設計所謂優(yōu)秀設計,就是權衡了各種因素就是權衡了各種因素,從而從而使得系統(tǒng)在其整個生命周期中的總開銷最使得系統(tǒng)在其整個生命周期中的總開銷最小的設計。小的設計。 對大多數(shù)軟件系統(tǒng)而言對大多數(shù)軟件系統(tǒng)而言,60%以上的軟件以上的軟件費用都用于軟件維護費用都用于軟件維護,因此因此,優(yōu)秀軟件設計優(yōu)秀軟件設計的一個主要特點就是容易維護。的一個主要特點就是容易維護。2021/3/26大連理工大學軟件學院大連理工大學軟件學院8模塊化模塊化抽象抽象信息隱藏信息隱藏弱耦合弱耦合1.交互耦合交互耦合如果對象之間的耦合通過消息連接來實現(xiàn)如果對象之間的耦合通過消息連接來實現(xiàn),則則這種耦合就是交互耦

6、合。為使交互耦合盡可能這種耦合就是交互耦合。為使交互耦合盡可能松散松散,應該遵守下述準則。應該遵守下述準則。盡量降低消息連接的復雜程度。應該盡量減少消息盡量降低消息連接的復雜程度。應該盡量減少消息中包含的參數(shù)個數(shù)中包含的參數(shù)個數(shù),降低參數(shù)的復雜程度。降低參數(shù)的復雜程度。減少對象發(fā)送減少對象發(fā)送(或接收或接收)的消息數(shù)。的消息數(shù)。2021/3/26大連理工大學軟件學院大連理工大學軟件學院92.繼承耦合繼承耦合提高繼承耦合程度。繼承是一般類與特殊類耦提高繼承耦合程度。繼承是一般類與特殊類耦合的形式。通過繼承關系結合起來的基類和派合的形式。通過繼承關系結合起來的基類和派生類生類,構成系統(tǒng)中粒度更大的

7、模塊。構成系統(tǒng)中粒度更大的模塊。為獲得緊密的繼承耦合為獲得緊密的繼承耦合,邏輯上應該存在邏輯上應該存在“ISA”的關系。(的關系。(過度繼承過度繼承)在設計時應該使特殊類盡量多繼承并使用其一在設計時應該使特殊類盡量多繼承并使用其一般化類的屬性和服務般化類的屬性和服務,從而更緊密地耦合到其從而更緊密地耦合到其一般化類。一般化類。2021/3/26大連理工大學軟件學院大連理工大學軟件學院10強內(nèi)聚強內(nèi)聚1.服務內(nèi)聚服務內(nèi)聚一個服務應該完成一個且僅完成一個功能。一個服務應該完成一個且僅完成一個功能。2.類內(nèi)聚類內(nèi)聚設計類的原則是設計類的原則是,一個類應該只有一個用途一個類應該只有一個用途,類的屬性類

8、的屬性和服務應該都是完成該類對象的任務必需的。和服務應該都是完成該類對象的任務必需的。如果某個類有多個用途如果某個類有多個用途,通常應該把它分解成多個專通常應該把它分解成多個專用的類。用的類。3.一般一般特殊內(nèi)聚特殊內(nèi)聚這種結構應該是對相應的領域知識的正確抽取。這種結構應該是對相應的領域知識的正確抽取。2021/3/26大連理工大學軟件學院大連理工大學軟件學院11 可重用(可重用(避免重復開發(fā)避免重復開發(fā)) 軟件重用是提高軟件開發(fā)生產(chǎn)率和目標系統(tǒng)質(zhì)軟件重用是提高軟件開發(fā)生產(chǎn)率和目標系統(tǒng)質(zhì)量的重要途徑。量的重要途徑。重用基本上從設計階段開始重用基本上從設計階段開始。 重用有兩方面的含義重用有兩方

9、面的含義: 盡量使用已有的類盡量使用已有的類(包括開發(fā)環(huán)境提供的類庫包括開發(fā)環(huán)境提供的類庫,及以及以往開發(fā)類似系統(tǒng)時創(chuàng)建的類往開發(fā)類似系統(tǒng)時創(chuàng)建的類), 如果確實需要創(chuàng)建新類如果確實需要創(chuàng)建新類,則在設計這些新類的協(xié)議則在設計這些新類的協(xié)議時時,應該考慮將來的可重復使用性。應該考慮將來的可重復使用性。2021/3/26大連理工大學軟件學院大連理工大學軟件學院1211.2 啟發(fā)規(guī)則啟發(fā)規(guī)則設計結果應該清晰易懂設計結果應該清晰易懂提高軟件可維護性和可重用性重要措施。提高軟件可維護性和可重用性重要措施。1. 用詞一致用詞一致2. 使用已有的協(xié)議(使用已有的協(xié)議(重載重載)3. 減少消息模式的數(shù)目減少

10、消息模式的數(shù)目4. 避免模糊的定義避免模糊的定義2021/3/26大連理工大學軟件學院大連理工大學軟件學院13一般一般特殊結構的深度應適當特殊結構的深度應適當應該使類等級中包含的層次數(shù)適當。應該使類等級中包含的層次數(shù)適當。設計簡單的類設計簡單的類盡量設計小而簡單的類盡量設計小而簡單的類,便于開發(fā)管理。便于開發(fā)管理。1. 避免包含過多的屬性避免包含過多的屬性2. 有明確的定義有明確的定義3. 盡量簡化對象之間的合作關系盡量簡化對象之間的合作關系4. 不要提供太多服務(不要提供太多服務(保持適當內(nèi)聚的基礎上保持適當內(nèi)聚的基礎上)2021/3/26大連理工大學軟件學院大連理工大學軟件學院14 使用簡

11、單的協(xié)議使用簡單的協(xié)議 消息中的參數(shù)不要超過消息中的參數(shù)不要超過3個。個。 使用簡單的服務使用簡單的服務 設計出來的類中的服務通常都很小設計出來的類中的服務通常都很小,有的僅有的僅35行源程序語句行源程序語句,可以用一個動詞和一個賓可以用一個動詞和一個賓語的簡單句子描述功能。語的簡單句子描述功能。 把設計變動減至最小(把設計變動減至最?。ńY構穩(wěn)定結構穩(wěn)定) 設計質(zhì)量越高設計質(zhì)量越高,設計結果保持不變的時間也越設計結果保持不變的時間也越長長 (Refactoring) 面向?qū)ο蟮脑O計原則(面向?qū)ο蟮脑O計原則(專題介紹專題介紹)2021/3/26大連理工大學軟件學院大連理工大學軟件學院15理想的設

12、計變動情況Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. 2021/3/26大連理工大學軟件學院大連理工大學軟件學院1611.4 系統(tǒng)分解系統(tǒng)分解 大多數(shù)系統(tǒng)的面向?qū)ο笤O計模型大多數(shù)系統(tǒng)的面向?qū)ο笤O計模型, ,在邏輯上都由四在邏輯上都由四大部分組成。分別是大部分組成。分別是問題域子系統(tǒng)問題域子系統(tǒng), ,人人- -機交

13、互子機交互子系統(tǒng)、任務管理子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)系統(tǒng)、任務管理子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)。 這四個子系統(tǒng)如果重要程度和規(guī)模過大這四個子系統(tǒng)如果重要程度和規(guī)模過大, ,在設計過在設計過程中應該進一步劃分成更小的子系統(tǒng)程中應該進一步劃分成更小的子系統(tǒng), ,規(guī)模過小的規(guī)模過小的可合并在其他子系統(tǒng)中??珊喜⒃谄渌酉到y(tǒng)中。 某些領域的應用系統(tǒng)在邏輯上可能僅由某些領域的應用系統(tǒng)在邏輯上可能僅由3 3個個( (甚至甚至少于少于3 3個個) )子系統(tǒng)組成。子系統(tǒng)組成。2021/3/26大連理工大學軟件學院大連理工大學軟件學院17典型的面向?qū)ο笤O計模型2021/3/26大連理工大學軟件學院大連理工大學軟件學院18

14、 子系統(tǒng)間的兩種交互方式子系統(tǒng)間的兩種交互方式 子系統(tǒng)之間的交互有兩種可能的方式子系統(tǒng)之間的交互有兩種可能的方式,分別分別是客戶供應商是客戶供應商(client supplier)關系和平等伙關系和平等伙伴伴(peer to peer)關系。關系。 單向交互比雙向交互更容易理解單向交互比雙向交互更容易理解,也更容易也更容易設計和修改設計和修改,因此應該盡量使用客戶因此應該盡量使用客戶供應供應商關系。商關系。2021/3/26大連理工大學軟件學院大連理工大學軟件學院19組織系統(tǒng)的兩種方案組織系統(tǒng)的兩種方案把子系統(tǒng)組織成完整的系統(tǒng)時把子系統(tǒng)組織成完整的系統(tǒng)時,有水平層次組織有水平層次組織和垂直塊組

15、織兩種方案可供選擇。和垂直塊組織兩種方案可供選擇。1.層次組織層次組織把軟件系統(tǒng)組織成層次系統(tǒng)把軟件系統(tǒng)組織成層次系統(tǒng),每層是一個子系統(tǒng)。每層是一個子系統(tǒng)。上層在下層的基礎上建立上層在下層的基礎上建立,下層為實現(xiàn)上層功能而提供下層為實現(xiàn)上層功能而提供必要的服務。必要的服務。每一層內(nèi)所包含的對象每一層內(nèi)所包含的對象,彼此間相互獨立彼此間相互獨立,而處于不同而處于不同層次上的對象層次上的對象,彼此間往往有關聯(lián)。彼此間往往有關聯(lián)。在上、下層之間存在客戶在上、下層之間存在客戶供應商關系。低層子系統(tǒng)供應商關系。低層子系統(tǒng)提供服務提供服務,相當于供應商相當于供應商,上層子系統(tǒng)使用下層提供的上層子系統(tǒng)使用下

16、層提供的服務服務,相當于客戶。相當于客戶。2021/3/26大連理工大學軟件學院大連理工大學軟件學院202.塊狀組織(塊狀組織(主題主題)把軟件系統(tǒng)垂直地分解成若干個相對獨立的、弱把軟件系統(tǒng)垂直地分解成若干個相對獨立的、弱耦合的子系統(tǒng)耦合的子系統(tǒng),一個子系統(tǒng)相當于一塊一個子系統(tǒng)相當于一塊,每塊提供一每塊提供一種類型的服務。種類型的服務。設計系統(tǒng)的拓撲結構設計系統(tǒng)的拓撲結構由子系統(tǒng)組成完整的系統(tǒng)時由子系統(tǒng)組成完整的系統(tǒng)時,典型的拓撲結構典型的拓撲結構有管道型、樹型、星型等。應采用與問題結有管道型、樹型、星型等。應采用與問題結構相適應的、盡可能簡單的拓撲結構構相適應的、盡可能簡單的拓撲結構,以減少

17、以減少子系統(tǒng)之間的交互數(shù)量。子系統(tǒng)之間的交互數(shù)量。2021/3/26大連理工大學軟件學院大連理工大學軟件學院21典型的拓撲結構2021/3/26大連理工大學軟件學院大連理工大學軟件學院22典型的組織結構2021/3/26大連理工大學軟件學院大連理工大學軟件學院2311.5 設計問題域子系統(tǒng)(設計問題域子系統(tǒng)(業(yè)務業(yè)務) 面向?qū)ο蠓治龅贸龅臉I(yè)務模型面向?qū)ο蠓治龅贸龅臉I(yè)務模型, ,為設計業(yè)務子系統(tǒng)為設計業(yè)務子系統(tǒng)奠定了良好的基礎奠定了良好的基礎, ,建立了完整的框架。建立了完整的框架。 應盡量保持面向?qū)ο蠓治鏊⒌膯栴}域結構。通應盡量保持面向?qū)ο蠓治鏊⒌膯栴}域結構。通常常, ,僅需從實現(xiàn)角度

18、對業(yè)務模型作一些補充或修改僅需從實現(xiàn)角度對業(yè)務模型作一些補充或修改, ,主要是增添、合并或分解類、屬性及服務主要是增添、合并或分解類、屬性及服務, ,調(diào)整繼調(diào)整繼承關系承關系, ,優(yōu)化結構等。優(yōu)化結構等。 當業(yè)務子系統(tǒng)過分復雜龐大時當業(yè)務子系統(tǒng)過分復雜龐大時, ,應進一步分解成若應進一步分解成若干個更小的子系統(tǒng)。(干個更小的子系統(tǒng)。(分析模型中的主題分析模型中的主題)2021/3/26大連理工大學軟件學院大連理工大學軟件學院24 調(diào)整需求(調(diào)整需求(必要時必要時) 重用已有的類(重用已有的類(繼承、組合繼承、組合) 組合業(yè)務類組合業(yè)務類 通過引入一個根類而把問題域類組合在一起。通過引入一個根類

19、而把問題域類組合在一起。組合優(yōu)于繼承組合優(yōu)于繼承?! 增添一般化類以建立協(xié)議增添一般化類以建立協(xié)議 調(diào)整繼承層次調(diào)整繼承層次2021/3/26大連理工大學軟件學院大連理工大學軟件學院252021/3/26大連理工大學軟件學院大連理工大學軟件學院2611.6 設計人機交互子系統(tǒng)設計人機交互子系統(tǒng)設計人機交互界面的準則設計人機交互界面的準則遵循下列準則有助于設計出讓用戶滿意遵循下列準則有助于設計出讓用戶滿意的人的人-機交互界面。機交互界面。 1. 一致性一致性使用一致的術語使用一致的術語,一致的步驟一致的步驟,一致的動作。一致的動作。2021/3/26大連理工大學軟件學院大連理工大學軟件學院272

20、.減少步驟減少步驟應使用戶為做某件事情而需敲擊鍵盤的次數(shù)、點按應使用戶為做某件事情而需敲擊鍵盤的次數(shù)、點按鼠標的次數(shù)、或者下拉菜單的距離鼠標的次數(shù)、或者下拉菜單的距離,都減至最少。都減至最少。應使得技術水平不同的用戶應使得技術水平不同的用戶,為獲得有意義的結果所為獲得有意義的結果所需使用的時間都減至最少。特別應該為熟練用戶提需使用的時間都減至最少。特別應該為熟練用戶提供簡捷的操作方法供簡捷的操作方法(例如例如,熱鍵熱鍵)。3.及時提供反饋信息及時提供反饋信息每當用戶等待系統(tǒng)完成一項工作時每當用戶等待系統(tǒng)完成一項工作時,系統(tǒng)都應該向用系統(tǒng)都應該向用戶提供有意義的、及時的反饋信息戶提供有意義的、及

21、時的反饋信息,以便用戶能夠知以便用戶能夠知道系統(tǒng)目前已經(jīng)完成該項工作的多大比例。道系統(tǒng)目前已經(jīng)完成該項工作的多大比例。2021/3/26大連理工大學軟件學院大連理工大學軟件學院284.提供撤消命令提供撤消命令應該提供應該提供“撤消撤消(undo)”命令命令,以便用戶及時撤消錯誤以便用戶及時撤消錯誤動作動作,消除錯誤動作造成的后果。消除錯誤動作造成的后果。5.無須記憶無須記憶不應該要求用戶記住在某個窗口中顯示的信息不應該要求用戶記住在某個窗口中顯示的信息,然后再然后再用到另一個窗口中用到另一個窗口中,這是軟件系統(tǒng)的責任而不是用戶的這是軟件系統(tǒng)的責任而不是用戶的任務。任務。用戶在使用系統(tǒng)時用于思考

22、人用戶在使用系統(tǒng)時用于思考人-機交互方法所花費的時機交互方法所花費的時間減至最少間減至最少,而用于做實際想做的工作所用的時間達到而用于做實際想做的工作所用的時間達到最大值。最大值。更理想的情況更理想的情況,人機交互界面能夠增強用戶的能力。人機交互界面能夠增強用戶的能力。2021/3/26大連理工大學軟件學院大連理工大學軟件學院296. 易學易學人機交互界面應該易學易用人機交互界面應該易學易用,提供聯(lián)機參考資提供聯(lián)機參考資料料,以便用戶遇到困難時可隨時參閱。以便用戶遇到困難時可隨時參閱。7. 富有吸引力富有吸引力人機交互界面不僅應該方便、高效人機交互界面不僅應該方便、高效,還應該使還應該使人在使

23、用時感到心情愉快人在使用時感到心情愉快,能夠從中獲得樂趣能夠從中獲得樂趣,從而吸引人去使用它。從而吸引人去使用它。2021/3/26大連理工大學軟件學院大連理工大學軟件學院30設計人設計人-機交互子系統(tǒng)的策略機交互子系統(tǒng)的策略1. 分類用戶分類用戶為更好了解用戶的需要與愛好為更好了解用戶的需要與愛好,以便設計以便設計出符合用戶需要的界面出符合用戶需要的界面,首先應把將來可首先應把將來可能與系統(tǒng)交互的用戶分類。能與系統(tǒng)交互的用戶分類。按技能水平分類按技能水平分類(新手新手/初級初級/中級中級/高級高級)。按職務分類按職務分類(總經(jīng)理總經(jīng)理/經(jīng)理經(jīng)理/職員職員)。按所屬集合分類按所屬集合分類(職員

24、職員/顧客顧客)。2021/3/26大連理工大學軟件學院大連理工大學軟件學院312.描述用戶描述用戶應仔細了解將來使用系統(tǒng)的每類用戶的情況應仔細了解將來使用系統(tǒng)的每類用戶的情況,把獲得的下列各項信息記錄下來。把獲得的下列各項信息記錄下來。用戶類型用戶類型使用系統(tǒng)欲達到的目的使用系統(tǒng)欲達到的目的特征特征(年齡、性別、受教育程度、限制因素等年齡、性別、受教育程度、限制因素等)關鍵的成功因素關鍵的成功因素(需求、愛好、習慣等需求、愛好、習慣等)技能水平技能水平完成本職工作的腳本完成本職工作的腳本2021/3/26大連理工大學軟件學院大連理工大學軟件學院323. 設計命令層次設計命令層次設計命令層次設

25、計命令層次:1. 現(xiàn)有人機交互習慣(現(xiàn)有人機交互習慣(Windows系統(tǒng)系統(tǒng))2. 確定初始的命令層次(確定初始的命令層次(命令安排命令安排)所謂命令層次所謂命令層次,實質(zhì)上是用過程抽象機制組織起實質(zhì)上是用過程抽象機制組織起來的、可供選用的服務的表示形式。來的、可供選用的服務的表示形式。設計命令層次時設計命令層次時,通常先從對服務的過程抽象著通常先從對服務的過程抽象著手手,然后再進一步修改它們?nèi)缓笤龠M一步修改它們,以適合具體應用環(huán)境以適合具體應用環(huán)境的需要。的需要。2021/3/26大連理工大學軟件學院大連理工大學軟件學院333. 精化命令層次精化命令層次次序次序: :仔細選擇每個服務的名字仔

26、細選擇每個服務的名字, ,并在命令層的并在命令層的每一部分內(nèi)把服務排好次序。排序時或者把最每一部分內(nèi)把服務排好次序。排序時或者把最常用的服務放在最前面常用的服務放在最前面, ,或者按照用戶習慣的工或者按照用戶習慣的工作步驟排序。作步驟排序。整體整體部分關系部分關系: :尋找在這些服務中存在的整尋找在這些服務中存在的整體體部分模式部分模式, ,這樣做有助于在命令層中分組組這樣做有助于在命令層中分組組織服務。織服務。2021/3/26大連理工大學軟件學院大連理工大學軟件學院34寬度和深度寬度和深度:由于人的短期記憶能力有限由于人的短期記憶能力有限,命令命令層次的寬度和深度都不應該過大。層次的寬度和

27、深度都不應該過大。操作步驟操作步驟:應該用盡量少的單擊、拖動和擊鍵組應該用盡量少的單擊、拖動和擊鍵組合來表達命令合來表達命令,而且應該為高級用戶提供簡捷的而且應該為高級用戶提供簡捷的操作方法。操作方法。4. 設計人機交互類設計人機交互類人機交互類與所使用的操作系統(tǒng)及編程語人機交互類與所使用的操作系統(tǒng)及編程語言密切相關。言密切相關。MFC, Swing etc.2021/3/26大連理工大學軟件學院大連理工大學軟件學院3511.7 設計任務管理子系統(tǒng)設計任務管理子系統(tǒng) 分析并發(fā)性分析并發(fā)性 通過面向?qū)ο蠓治鼋⑵饋淼膭討B(tài)模型通過面向?qū)ο蠓治鼋⑵饋淼膭討B(tài)模型,是分是分析并發(fā)性的主要依據(jù)。析并發(fā)性

28、的主要依據(jù)。 如兩個對象彼此間不存在交互如兩個對象彼此間不存在交互,或同時接受事或同時接受事件件,則這兩個對象在本質(zhì)上是并發(fā)的。則這兩個對象在本質(zhì)上是并發(fā)的。2021/3/26大連理工大學軟件學院大連理工大學軟件學院36設計任務管理子系統(tǒng)設計任務管理子系統(tǒng)常見的任務有事件驅(qū)動型任務、時鐘驅(qū)常見的任務有事件驅(qū)動型任務、時鐘驅(qū)動型任務、優(yōu)先任務、關鍵任務和協(xié)調(diào)動型任務、優(yōu)先任務、關鍵任務和協(xié)調(diào)任務等。任務等。設計任務管理子系統(tǒng)設計任務管理子系統(tǒng),包括確定各類任務包括確定各類任務并把任務分配給適當?shù)挠布蜍浖?zhí)并把任務分配給適當?shù)挠布蜍浖?zhí)行。行。2021/3/26大連理工大學軟件學院大連理工

29、大學軟件學院371.確定事件驅(qū)動型任務確定事件驅(qū)動型任務某些任務是由事件驅(qū)動的某些任務是由事件驅(qū)動的,這類任務可能主要完成通這類任務可能主要完成通信工作。信工作。2.確定時鐘驅(qū)動型任務確定時鐘驅(qū)動型任務某些任務每隔一定時間間隔就被觸發(fā)以執(zhí)行某些處理某些任務每隔一定時間間隔就被觸發(fā)以執(zhí)行某些處理,例如例如,某些設備需要周期性地獲得數(shù)據(jù)某些設備需要周期性地獲得數(shù)據(jù);某些人機接口、子系統(tǒng)、任務、處理器或其他系統(tǒng)也某些人機接口、子系統(tǒng)、任務、處理器或其他系統(tǒng)也可能需要周期性地通信??赡苄枰芷谛缘赝ㄐ?。在這些場合往往需要使用時鐘驅(qū)動型任務。在這些場合往往需要使用時鐘驅(qū)動型任務。2021/3/26大連理

30、工大學軟件學院大連理工大學軟件學院383.確定優(yōu)先任務確定優(yōu)先任務優(yōu)先任務可以滿足高優(yōu)先級或低優(yōu)先級的處優(yōu)先任務可以滿足高優(yōu)先級或低優(yōu)先級的處理需求。理需求。高優(yōu)先級高優(yōu)先級:某些服務具有很高的優(yōu)先級某些服務具有很高的優(yōu)先級,為了在嚴格為了在嚴格限定的時間內(nèi)完成這種服務限定的時間內(nèi)完成這種服務,需要把這類服務分離需要把這類服務分離成獨立的任務成獨立的任務低優(yōu)先級低優(yōu)先級:與高優(yōu)先級相反與高優(yōu)先級相反,有些服務是低優(yōu)先級的有些服務是低優(yōu)先級的,屬于低優(yōu)先級處理屬于低優(yōu)先級處理(通常指那些背景處理通常指那些背景處理)。設計時。設計時用額外的任務把這樣的處理分離出來。用額外的任務把這樣的處理分離出來

31、。2021/3/26大連理工大學軟件學院大連理工大學軟件學院394.確定關鍵任務確定關鍵任務關鍵任務是有關系統(tǒng)成功或失敗的關鍵處理關鍵任務是有關系統(tǒng)成功或失敗的關鍵處理,這類處這類處理通常都有嚴格的可靠性要求。理通常都有嚴格的可靠性要求。在設計過程中可能用額外的任務把這樣的關鍵處理在設計過程中可能用額外的任務把這樣的關鍵處理分離出來分離出來,以滿足高可靠性處理的要求。以滿足高可靠性處理的要求。對高可靠性處理應該精心設計和編碼對高可靠性處理應該精心設計和編碼,并且應該嚴格并且應該嚴格測試。測試。5.確定協(xié)調(diào)任務確定協(xié)調(diào)任務當系統(tǒng)中存在三個以上任務時當系統(tǒng)中存在三個以上任務時,就應該增加一個任務就

32、應該增加一個任務,用它作為協(xié)調(diào)任務。用它作為協(xié)調(diào)任務。2021/3/26大連理工大學軟件學院大連理工大學軟件學院406.盡量減少任務數(shù)盡量減少任務數(shù)必須仔細分析和選擇每個確實需要的任務。應該必須仔細分析和選擇每個確實需要的任務。應該使系統(tǒng)中包含的任務數(shù)盡量少。使系統(tǒng)中包含的任務數(shù)盡量少。7.確定資源需求確定資源需求使用多處理器或固件使用多處理器或固件,主要是為了滿足高性能的需主要是為了滿足高性能的需求。設計者必須通過計算系統(tǒng)載荷求。設計者必須通過計算系統(tǒng)載荷(即每秒處理的即每秒處理的業(yè)務數(shù)及處理一個業(yè)務所花費的時間業(yè)務數(shù)及處理一個業(yè)務所花費的時間),來估算所需來估算所需要的要的CPU(或其他固

33、件或其他固件)的處理能力。的處理能力。2021/3/26大連理工大學軟件學院大連理工大學軟件學院4111.8 設計數(shù)據(jù)管理子系統(tǒng)設計數(shù)據(jù)管理子系統(tǒng) 數(shù)據(jù)管理子系統(tǒng)是系統(tǒng)存儲或檢索對象的基本設數(shù)據(jù)管理子系統(tǒng)是系統(tǒng)存儲或檢索對象的基本設施施,建立在某種數(shù)據(jù)存儲管理系統(tǒng)之上建立在某種數(shù)據(jù)存儲管理系統(tǒng)之上,并且隔離了并且隔離了數(shù)據(jù)存儲管理模式數(shù)據(jù)存儲管理模式(文件、關系數(shù)據(jù)庫或面向?qū)ο笪募?、關系數(shù)據(jù)庫或面向?qū)ο髷?shù)據(jù)庫數(shù)據(jù)庫)的影響。的影響。 選擇數(shù)據(jù)存儲管理模式選擇數(shù)據(jù)存儲管理模式 不同的數(shù)據(jù)存儲管理模式有不同的特點不同的數(shù)據(jù)存儲管理模式有不同的特點,適用范圍適用范圍也不相同也不相同,應該根據(jù)應用系統(tǒng)

34、的特點選擇適用的模應該根據(jù)應用系統(tǒng)的特點選擇適用的模式。式。2021/3/26大連理工大學軟件學院大連理工大學軟件學院421. 文件管理系統(tǒng)文件管理系統(tǒng)2. 關系數(shù)據(jù)庫管理系統(tǒng)關系數(shù)據(jù)庫管理系統(tǒng)3. 面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)是一種新技術面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)是一種新技術,主要有兩種設計途徑主要有兩種設計途徑:擴展的關系數(shù)據(jù)庫擴展的關系數(shù)據(jù)庫管理系統(tǒng)和擴展的面向?qū)ο蟪绦蛟O計語管理系統(tǒng)和擴展的面向?qū)ο蟪绦蛟O計語言。言。2021/3/26大連理工大學軟件學院大連理工大學軟件學院43設計數(shù)據(jù)管理子系統(tǒng)設計數(shù)據(jù)管理子系統(tǒng)既需要設計數(shù)據(jù)格式又需要設計相應的服務。既

35、需要設計數(shù)據(jù)格式又需要設計相應的服務。1.設計數(shù)據(jù)格式設計數(shù)據(jù)格式設計數(shù)據(jù)格式的方法與所使用的數(shù)據(jù)存儲管設計數(shù)據(jù)格式的方法與所使用的數(shù)據(jù)存儲管理模式密切相關理模式密切相關1.文件系統(tǒng)文件系統(tǒng)(文本、二進制文本、二進制;順序、隨機訪問方式順序、隨機訪問方式)2.關系數(shù)據(jù)庫管理系統(tǒng)(關系數(shù)據(jù)庫管理系統(tǒng)(ER、范式理論)、范式理論)3.面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)(面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)(Object Mapping)4.XML DTD, Schema2021/3/26大連理工大學軟件學院大連理工大學軟件學院442.設計相應的服務設計相應的服務如某個類的對象需要存儲起來如某個類的對象需要存儲起來,則在這個

36、類中則在這個類中增加一個屬性和服務增加一個屬性和服務,用于完成存儲對象自身用于完成存儲對象自身的工作。的工作。Interface Serializable in Java數(shù)據(jù)庫端(存儲過程、觸發(fā)器等)數(shù)據(jù)庫端(存儲過程、觸發(fā)器等)2021/3/26大連理工大學軟件學院大連理工大學軟件學院45復雜的應用復雜的應用 對于以下領域的應用對于以下領域的應用,RDBMS力不從心力不從心: CAD, CAM CASE Office Information System Multimedia systems GIS Science and medicine OODB就是要將面向?qū)ο缶幊陶Z言與數(shù)據(jù)就是要將面向

37、對象編程語言與數(shù)據(jù)庫技術結合起來庫技術結合起來,滿足復雜應用的要求。滿足復雜應用的要求。2021/3/26大連理工大學軟件學院大連理工大學軟件學院46RDBMS弱點弱點 不能滿意的表示現(xiàn)實世界中真正的實體不能滿意的表示現(xiàn)實世界中真正的實體,往往往通過犧牲了性能換取功能。往通過犧牲了性能換取功能。 對數(shù)據(jù)抽象缺乏支持對數(shù)據(jù)抽象缺乏支持,關系模型只支持簡單關系模型只支持簡單的結構化很強的應用。對具有復雜結構和的結構化很強的應用。對具有復雜結構和復雜語義的應用缺乏支持。復雜語義的應用缺乏支持。 不支持聚合抽象(不支持聚合抽象(Aggregation) 不支持泛化不支持泛化/特化抽象特化抽象 不支持抽

38、象數(shù)據(jù)類型不支持抽象數(shù)據(jù)類型ADT2021/3/26大連理工大學軟件學院大連理工大學軟件學院47RDBMS弱點弱點 缺乏對對象行為控制的支持。應用領域中缺乏對對象行為控制的支持。應用領域中一個完整的對象應具有兩個方面的描述一個完整的對象應具有兩個方面的描述: 結構表示結構表示 行為的具體描述行為的具體描述二者的互相捆綁保證了對象狀態(tài)變化的正確性二者的互相捆綁保證了對象狀態(tài)變化的正確性,而關系模型缺乏對行為描述的支持。而關系模型缺乏對行為描述的支持。 阻抗適配(阻抗適配(impedance mismatch) 2021/3/26大連理工大學軟件學院大連理工大學軟件學院48編程語言阻抗失配帶來的問

39、題編程語言阻抗失配帶來的問題Hibernate!Object mapping2021/3/26大連理工大學軟件學院大連理工大學軟件學院49編程語言阻抗失配帶來的問題編程語言阻抗失配帶來的問題 說明性說明性SQL語言與過程性的編程語言的阻抗失配語言與過程性的編程語言的阻抗失配 面向集合的數(shù)據(jù)操作與面向記錄的數(shù)據(jù)操作失配面向集合的數(shù)據(jù)操作與面向記錄的數(shù)據(jù)操作失配 目前解決方法目前解決方法:用游標的方法順序提取。但存在問用游標的方法順序提取。但存在問題題: 對復雜應用而言對復雜應用而言,隨機訪問需求與單行的順序訪問約束隨機訪問需求與單行的順序訪問約束之間的失配。之間的失配。 建立在連接(建立在連接(

40、Join)查詢上的查詢結果是不可更新的)查詢上的查詢結果是不可更新的,這對被切割的復雜對象的更新帶來很大困難。這對被切割的復雜對象的更新帶來很大困難。2021/3/26大連理工大學軟件學院大連理工大學軟件學院50編程語言阻抗失配帶來的問題編程語言阻抗失配帶來的問題exec sql declare EdgeToVertices cursor for select * from StartEnd;exec sql open EdgeToVertices ;while(1) /*Iterate over the EdgeToVertices crusor*/exec sql fetch EdgeTo

41、Vertex into:E#, :V#;exec sql select X,Y,Z/*read the coordinates*/ into :Xvar, :Yvar, :Zvar from Vertices s where s.VertexID= :V#;exec sql update Vertices set;/*perform modifications*/2021/3/26大連理工大學軟件學院大連理工大學軟件學院5111.9 設計類中的服務設計類中的服務 確定類中應有的服務確定類中應有的服務 需要綜合考慮對象模型、動態(tài)模型和功能模型需要綜合考慮對象模型、動態(tài)模型和功能模型,才能正確確才能正確確定類中應有的服務。定類中應有的服務。 對象模型是進行對象設計的基本框架。但面向?qū)ο蠓治龅膶ο竽P褪沁M行對象設計的基本框架。但面向?qū)ο蠓治龅膶ο竽P蛯ο竽P?只在每個類中列出很少幾個最核心的服務。只在每個類中列出很少幾個最核心的服務。 必須把動態(tài)模型中對象的行為以及功能模型中的數(shù)據(jù)處理必須把動態(tài)模型中對象的行為以及功能模型中的數(shù)據(jù)處理,轉(zhuǎn)換成由適當?shù)念愃峁┑姆铡?/p>

溫馨提示

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

評論

0/150

提交評論