版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第4 4章章 體系結(jié)構(gòu)的設(shè)計(jì)原理體系結(jié)構(gòu)的設(shè)計(jì)原理4.1 4.1 體系結(jié)構(gòu)的設(shè)計(jì)原體系結(jié)構(gòu)的設(shè)計(jì)原理理 軟件體系的結(jié)構(gòu)是建立在幾條基本原理之上的。它們是:抽象、封裝、數(shù)據(jù)隱藏、模塊化、注意點(diǎn)分離、耦合和內(nèi)聚、充分性、完備性和原始性、策略和實(shí)現(xiàn)的分離、接口與實(shí)現(xiàn)的分離、引用的單一性、分而治之、層次化。1. 1. 抽象抽象 抽象是人們用來(lái)處理復(fù)雜性問(wèn)題的基本原理之一。抽象有幾種形式,如數(shù)據(jù)抽象、對(duì)象抽象、實(shí)體抽象、行為抽象、過(guò)程抽象、虛擬機(jī)抽象等。數(shù)據(jù)、實(shí)體的抽象使得軟件操作的對(duì)象和參數(shù)是針對(duì)邏輯結(jié)構(gòu),而非存儲(chǔ)結(jié)構(gòu)的。行為、過(guò)程的抽象使得操作的指派是依據(jù)標(biāo)識(shí)而非地址,由此產(chǎn)生了操作的接口和動(dòng)態(tài)約
2、束描述。 抽象的一個(gè)重要特性就是可替換性可替換性。 2.2.封裝封裝 封裝是將構(gòu)成抽象的屬性和行結(jié)合在一起,并區(qū)分不同抽象的方法。封裝為不同抽象之間提供了明確的界限。封裝有利于非功能特性實(shí)現(xiàn),例如可變性和可重用性。 封裝包括內(nèi)部構(gòu)成和操作服務(wù)兩個(gè)方面。3.3.信息隱藏信息隱藏 信息隱藏是軟件工程的最基本和最重要的原理之一。 信息隱藏對(duì)用戶隱藏了部件的實(shí)現(xiàn)細(xì)節(jié),用來(lái)更好地處理系統(tǒng)的復(fù)雜性和減少各部件之間的耦合。封裝原理經(jīng)常被用來(lái)作為實(shí)現(xiàn)信息隱藏的方法。信息隱藏也可以通過(guò)接口與實(shí)現(xiàn)分離的原理來(lái)實(shí)現(xiàn)。4.4.模塊化模塊化 模塊化主要關(guān)心的是如何將一個(gè)軟件系統(tǒng)分解成子系統(tǒng)和部件,其主要任務(wù)就是決定怎樣
3、將構(gòu)成應(yīng)用的邏輯結(jié)構(gòu)物理地分割成代碼實(shí)體。5.5.注意點(diǎn)分離注意點(diǎn)分離(Separation of Concerns)(Separation of Concerns) 不同和無(wú)關(guān)聯(lián)的責(zé)任應(yīng)該在軟件系統(tǒng)中分離開來(lái),讓它們出現(xiàn)在不同的部件中。相互協(xié)作完成某一任務(wù)的部件應(yīng)該和在其他任務(wù)中執(zhí)行計(jì)算的部件分離開來(lái)。如果一個(gè)部件在不同的環(huán)境下扮演著不同的角色,在部件中這些角色應(yīng)該獨(dú)立且相互分離。6.6.耦合和內(nèi)聚耦合和內(nèi)聚 耦合強(qiáng)調(diào)模塊之間的特征,而內(nèi)聚強(qiáng)調(diào)模塊內(nèi)部的特性。耦合是用來(lái)衡量一個(gè)模塊同另一個(gè)模塊的聯(lián)系的緊密程度的。內(nèi)聚用來(lái)衡量單一模塊內(nèi)功能和元素間聯(lián)系性的程度。 內(nèi)聚有幾種形式,.最期望獲得的
4、是功能內(nèi)聚。其他形式的內(nèi)聚還有:邏輯內(nèi)聚、時(shí)間內(nèi)聚、過(guò)程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和不規(guī)則內(nèi)聚。7.7.充分性、完備性和原始性充分性、完備性和原始性 BOOC94指出軟件系統(tǒng)的每個(gè)部件都應(yīng)該是充分的、完備的和簡(jiǎn)單的。 充分性指的是部件應(yīng)該把握住與其進(jìn)行有意義和高效交互抽象的所有特性。 完備性是指一個(gè)部件應(yīng)該把握住所有與其抽象相關(guān)的特性。 原始性指的是部件所應(yīng)該完成的操作都可以容易地得到實(shí)現(xiàn)。8.8.策略和實(shí)現(xiàn)的分離策略和實(shí)現(xiàn)的分離 軟件系統(tǒng)的部件應(yīng)該實(shí)現(xiàn)策略或處理問(wèn)題,但不能同時(shí)處理兩者。 策略部件負(fù)責(zé)處理上下文相關(guān)的決策、信息的語(yǔ)義和解釋的知識(shí)、把不相交計(jì)算組合形成結(jié)果、對(duì)參數(shù)值進(jìn)行選擇等問(wèn)題
5、。 實(shí)現(xiàn)部件負(fù)責(zé)全面規(guī)范算法的執(zhí)行,執(zhí)行中不需要對(duì)上下文相關(guān)信息進(jìn)行決策.如果不能將一個(gè)軟件體系結(jié)構(gòu)分解成策略和實(shí)現(xiàn)的不同部件,至少應(yīng)該在一個(gè)部件內(nèi)將策略和實(shí)現(xiàn)的功能加以分離。9.9.接口和實(shí)現(xiàn)的分離接口和實(shí)現(xiàn)的分離 任何一個(gè)部件都應(yīng)該包含兩個(gè)部分,接口和實(shí)現(xiàn). 接口部分定義了部件所提供的功能,并規(guī)范了功能的使用方法.該接口對(duì)部件的客戶是可訪問(wèn)的。實(shí)現(xiàn)部分包括了實(shí)現(xiàn)部件所提供功能的實(shí)際代碼。實(shí)現(xiàn)部分還可以包括只服務(wù)于部件內(nèi)部操作的另外的函數(shù)和數(shù)據(jù)結(jié)構(gòu)。實(shí)現(xiàn)部分對(duì)部件客戶來(lái)說(shuō)是不可用的。10.10.分而制之分而制之(divide-and-conquer)(divide-and-conquer)
6、11.11.層次化層次化 處理復(fù)雜性問(wèn)題有兩種方法,即:分而制之的橫向分割和分層次處理的縱向分割。后者是一種把問(wèn)題分解成建立在基礎(chǔ)概念和思想上多層次的、從底向上逐步抽象的分析和表達(dá)的結(jié)構(gòu),每一層處理該層次的問(wèn)題、服務(wù)于該層次的要求。層次化在軟件構(gòu)造中是一種基本的思想。類和對(duì)象是層次化的,操作系統(tǒng)構(gòu)造、編譯器構(gòu)造、應(yīng)用系統(tǒng)構(gòu)造,無(wú)一不是層次化的。同樣,軟件體系結(jié)構(gòu)也是層次化的。4.2 4.2 軟件的非功能特性軟件的非功能特性 功能特性主要是直接針對(duì)客戶的功能需求。非功能特性對(duì)軟件的開發(fā)和維護(hù),可操作性以及對(duì)計(jì)算機(jī)資源的使用都有著很大的影響。非功能特性主要包括系統(tǒng)的可變性、可操作性、效率、 可靠性
7、、 可測(cè)試性、 可重用性。正交性正交性:設(shè)法使兩個(gè)不同的操作交叉重復(fù)部分達(dá)到最小。1.1.可變性可變性/ /可維護(hù)性可維護(hù)性 軟件老化的原因: (1)缺少變化 如果不迅速更新和升級(jí),軟件就會(huì)老化; (2)盲目和無(wú)知的修改; (3)軟件建立初期就設(shè)計(jì)的不靈活,無(wú)法或難以維護(hù)和升級(jí); (4)文檔不充分。 可以通過(guò)下列途徑來(lái)防止老化,它們是:建立準(zhǔn)確的文檔 、當(dāng)引入改變時(shí)保持原始的結(jié)構(gòu)、 深入的系統(tǒng)審查、 在設(shè)計(jì)之初就考慮到變化的影響。可變性有四個(gè)方面BUSC96: (1) 可維護(hù)性。它主要處理已有問(wèn)題的解決,當(dāng)發(fā)現(xiàn)錯(cuò)誤后對(duì)軟件進(jìn)行修復(fù)。 (2)可擴(kuò)充性。它注重于用新特性對(duì)軟件系統(tǒng)進(jìn)行擴(kuò)充,還包括用
8、升級(jí)的版本代替原有的部件、除去不必要的特性和部件??蓴U(kuò)充性的目標(biāo)是可以自由地更換部件而不會(huì)影響客戶的使用,支持把新部件加到已存在系統(tǒng)中。 (3)可重構(gòu)性。它處理軟件系統(tǒng)部件的重構(gòu)和部件之間的關(guān)系可變性問(wèn)題。要支持軟件的可重構(gòu)性,需要對(duì)部件之間的聯(lián)系進(jìn)行詳細(xì)的設(shè)計(jì)。有兩種可重構(gòu)性,一種是系統(tǒng)設(shè)計(jì)人員的,一種是用戶可操作的。 (4)可移植性。這可以使一個(gè)軟件系統(tǒng)能夠適應(yīng)多種硬件平臺(tái)、用戶接口、操作系統(tǒng)、 編程語(yǔ)言和編譯器。2.2.互操作性互操作性 組成系統(tǒng)的各個(gè)部件不是獨(dú)立存在的,他們需要頻繁地與系統(tǒng)中其他部件、系統(tǒng)外的其它系統(tǒng)、運(yùn)行環(huán)境相互作用。為了支持互操作性,軟件體系結(jié)構(gòu)必須設(shè)計(jì)成對(duì)外能夠提
9、供良好外部可見、可訪問(wèn)的功能和數(shù)據(jù)結(jié)構(gòu)的描述。3.3.效率效率4.4.可靠性可靠性 可靠性是軟件系統(tǒng)在各種情況下維持其功能的能力??煽啃钥梢詤^(qū)分為兩個(gè)方面: (1)錯(cuò)容性。其任務(wù)是當(dāng)錯(cuò)誤事件發(fā)生時(shí)確保正確的系統(tǒng)響應(yīng),必要時(shí)采取內(nèi)部補(bǔ)救措施,以避免產(chǎn)生用戶不希望的或?yàn)?zāi)難性的后果。 (2)健壯性。它被用來(lái)保護(hù)系統(tǒng),使其即使在錯(cuò)誤操作和不正確輸入等未預(yù)期錯(cuò)誤的情況下,也能保持在已定義和明確的狀態(tài)下。與錯(cuò)容性相反,健壯性不要求軟件在發(fā)生錯(cuò)誤之后還能繼續(xù)執(zhí)行,它只需要保證軟件能以明確和可接受的方式終止。5.5.可測(cè)試性可測(cè)試性6.6.可重用性可重用性 重用是“通過(guò)已經(jīng)存在的來(lái)獲得想要的”的軟件和實(shí)現(xiàn)設(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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠化苗木栽種與市場(chǎng)推廣合同3篇
- Module6 說(shuō)課稿2024-2025學(xué)年外研版 英語(yǔ)八年級(jí)下冊(cè)
- 人教版七年級(jí)歷史與社會(huì)上冊(cè)第三單元第一課 家住平原說(shuō)課稿
- 100 以內(nèi)不進(jìn)位加法(說(shuō)課稿)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)人教版
- 臨時(shí)工春季勞動(dòng)協(xié)議模板 2024年適用版B版
- 第八單元習(xí)作:有你真好(說(shuō)課稿)-2024-2025學(xué)年六年級(jí)語(yǔ)文上冊(cè)單元作文能力提升(統(tǒng)編版)
- 專業(yè)級(jí)密封膠購(gòu)銷協(xié)議2024條款版
- Unit 6 Im going to study computer science. Section A 1a-2d (Period one)說(shuō)課稿2024-2025學(xué)年人教版八年級(jí)英語(yǔ)上冊(cè)
- 第二章 有理數(shù)的運(yùn)算 說(shuō)課稿2024-2025學(xué)年人教版數(shù)學(xué)七年級(jí)上冊(cè)
- 專業(yè)技術(shù)崗位聘用合同模板一
- 2024-2025學(xué)年八年級(jí)上學(xué)期1月期末物理試題(含答案)
- 2025年國(guó)新國(guó)際投資有限公司招聘筆試參考題庫(kù)含答案解析
- 制造車間用洗地機(jī)安全操作規(guī)程
- 2025河南省建筑安全員-A證考試題庫(kù)及答案
- 商場(chǎng)電氣設(shè)備維護(hù)勞務(wù)合同
- 油氣田智能優(yōu)化設(shè)計(jì)-洞察分析
- 陜西2020-2024年中考英語(yǔ)五年真題匯編學(xué)生版-專題09 閱讀七選五
- 磚混結(jié)構(gòu)基礎(chǔ)加固技術(shù)方案
- 助產(chǎn)專業(yè)的職業(yè)生涯規(guī)劃
- 新《國(guó)有企業(yè)管理人員處分條例》知識(shí)競(jìng)賽考試題庫(kù)500題(含答案)
- 骨質(zhì)疏松護(hù)理
評(píng)論
0/150
提交評(píng)論