從需求定義到軟件體系結(jié)構(gòu)_第1頁
從需求定義到軟件體系結(jié)構(gòu)_第2頁
從需求定義到軟件體系結(jié)構(gòu)_第3頁
從需求定義到軟件體系結(jié)構(gòu)_第4頁
從需求定義到軟件體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2022-6-1312.22.2從需求定義到軟件體系結(jié)構(gòu)從需求定義到軟件體系結(jié)構(gòu) 2022-6-132什么是“工程”?定義有很多,通常來說:定義有很多,通常來說:用最少的代價(jià)解決問題用最少的代價(jià)解決問題 . 目的是處理實(shí)際的難題目的是處理實(shí)際的難題 . 以科學(xué)知識(shí)為手段以科學(xué)知識(shí)為手段 . 建造工具建造工具 . 服務(wù)于人類服務(wù)于人類目標(biāo):使普通人能做以前只有目標(biāo):使普通人能做以前只有專家圣手才能做的事情專家圣手才能做的事情2022-6-133工程的進(jìn)化2022-6-134工程化的步伐手工(Craft)商業(yè)(Commerical)工程(Professional Engineering)行家里手和

2、業(yè)余天才熟練的工匠受過系統(tǒng)教育的專業(yè)人員直覺與強(qiáng)力既定程序分析與理論偶然的進(jìn)步注重實(shí)效地優(yōu)化以科學(xué)為指導(dǎo)地升級(jí)換代不經(jīng)意的推廣言傳身教專業(yè)教育課程奢侈地使用原料注重成本與原料利用原料多次利用生產(chǎn)是為了使用而不是出售為銷售而生產(chǎn)市場(chǎng)份額2022-6-135規(guī)范化循環(huán)規(guī)范化循環(huán)專門的解決方法專門的解決方法土方法土方法規(guī)范化規(guī)范化模型與理論模型與理論新的問題新的問題實(shí)踐提高實(shí)踐提高2022-6-1362022-6-1372022-6-1382022-6-1392022-6-1310軟件設(shè)計(jì)的目標(biāo)和目的軟件設(shè)計(jì)的目標(biāo)和目的 軟件需求:解決軟件需求:解決“做什么做什么” 軟件設(shè)計(jì):解決軟件設(shè)計(jì):解決“怎

3、么做怎么做” 軟件結(jié)構(gòu)設(shè)計(jì)的任務(wù)軟件結(jié)構(gòu)設(shè)計(jì)的任務(wù) 問題結(jié)構(gòu)問題結(jié)構(gòu)( (軟件需求軟件需求) ) 軟件結(jié)構(gòu)軟件結(jié)構(gòu) 映射映射2022-6-13112.2.1 2.2.1 什么叫軟件的體系結(jié)構(gòu)什么叫軟件的體系結(jié)構(gòu) n軟件體系結(jié)構(gòu),又常被稱為架構(gòu)。軟件體系結(jié)構(gòu),又常被稱為架構(gòu)。n“軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)”你早就知道你早就知道nClient/ServernThree-tiernP2PnDistributedn2022-6-1312n架構(gòu)不是框框架構(gòu)不是框框應(yīng)用架構(gòu)的基本思想應(yīng)用架構(gòu)的基本思想一個(gè)架構(gòu)是一個(gè)可復(fù)用的設(shè)計(jì)構(gòu)一個(gè)架構(gòu)是一個(gè)可復(fù)用的設(shè)計(jì)構(gòu)件,它規(guī)定了應(yīng)用的體系結(jié)構(gòu),件,它規(guī)定了應(yīng)用的體系結(jié)

4、構(gòu),闡明了整個(gè)設(shè)計(jì)、協(xié)作構(gòu)件之間闡明了整個(gè)設(shè)計(jì)、協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流的依賴關(guān)系、責(zé)任分配和控制流程。程。 2022-6-1313“建筑體系結(jié)構(gòu)”2022-6-1314“建筑體系結(jié)構(gòu)”2022-6-1315SA的定義n后人精簡Garlan and Shaw的定義為:體系結(jié)構(gòu)體系結(jié)構(gòu) = = 組件組件 + + 連接件連接件 + + 約束約束Architecture = Components + Connectors + Constrains2022-6-1316n除了構(gòu)件,連接件和約束3個(gè)最基本的組成元素,軟件體系結(jié)構(gòu)還包括端口(port)和角色(role)兩種元素。n構(gòu)件的接

5、口由一組端口組成構(gòu)件的接口由一組端口組成,每個(gè)端口表示了構(gòu)件和外部環(huán)境的交互點(diǎn)。連接件作為建模軟件體系結(jié)構(gòu)的主要實(shí)體,同樣也有接口。連接件的接口由一組角色組成,連接的每個(gè)角色定義了該連接表示的交互的參與者。 2022-6-1317SA之重要n最早指出SA的重要性的是大師Edsger Dijkstra(1930-2002)“.the larger the project, the more essential the structuring!”(1968)2022-6-1318程序=?n程序程序 = 算法算法 + 數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)結(jié)構(gòu)(1960s )n程序程序 = 子程序子程序 + 子程序(子程序

6、(1970s )n對(duì)象對(duì)象 = 算法算法 + 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)程序程序 = 對(duì)象對(duì)象 + 對(duì)象(對(duì)象(1980s)n程序程序 = 組件組件 + 連接件(連接件(1990s)2022-6-1319 軟件體系結(jié)構(gòu)學(xué)習(xí)主要內(nèi)容軟件體系結(jié)構(gòu)學(xué)習(xí)主要內(nèi)容軟件體系結(jié)構(gòu)的有關(guān)概念軟件體系結(jié)構(gòu)的有關(guān)概念軟件體系結(jié)構(gòu)的層次性軟件體系結(jié)構(gòu)的層次性軟件體系結(jié)構(gòu)的設(shè)計(jì)原理軟件體系結(jié)構(gòu)的設(shè)計(jì)原理2022-6-1320什么是軟件體系結(jié)構(gòu)什么是軟件體系結(jié)構(gòu) 軟件體系結(jié)構(gòu)定義了軟軟件體系結(jié)構(gòu)定義了軟件局部和總體部件的構(gòu)成件局部和總體部件的構(gòu)成, ,以以及這些部件之間的相互作用及這些部件之間的相互作用關(guān)系。關(guān)系。 2022-6

7、-1321技術(shù)進(jìn)步n每個(gè)新的體系結(jié)構(gòu)的誕生,都給技術(shù)的每個(gè)新的體系結(jié)構(gòu)的誕生,都給技術(shù)的進(jìn)步帶來深遠(yuǎn)影響進(jìn)步帶來深遠(yuǎn)影響nWWWn三層結(jié)構(gòu)三層結(jié)構(gòu)nCORBAnJ2EEn.NET軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)包括兩部分軟件體系結(jié)構(gòu)包括兩部分: :(1)(1)過程構(gòu)件過程構(gòu)件( (模塊模塊) )的層次結(jié)構(gòu)的層次結(jié)構(gòu)(2)(2)數(shù)據(jù)構(gòu)件數(shù)據(jù)構(gòu)件2022-6-1323軟件的架構(gòu)主要回答的問題軟件的架構(gòu)主要回答的問題軟件的組成部分軟件的組成部分軟件的層次關(guān)系軟件的層次關(guān)系模塊的內(nèi)部處理邏輯模塊的內(nèi)部處理邏輯模塊之間的界面模塊之間的界面軟件體系結(jié)構(gòu)可分為四種不同的體系:軟件體系結(jié)構(gòu)可分為四種不同的

8、體系:概念結(jié)構(gòu)概念結(jié)構(gòu) 包括部件、互連、原則和性能等包括部件、互連、原則和性能等代碼結(jié)構(gòu)代碼結(jié)構(gòu) 包括軟件的配置管理、系統(tǒng)建造等包括軟件的配置管理、系統(tǒng)建造等模塊結(jié)構(gòu)模塊結(jié)構(gòu) 包括模塊界面、模塊管理、模塊控制和一致性等包括模塊界面、模塊管理、模塊控制和一致性等執(zhí)行結(jié)構(gòu)執(zhí)行結(jié)構(gòu) 包括性能分析、調(diào)度分析、動(dòng)態(tài)配置和不同的包括性能分析、調(diào)度分析、動(dòng)態(tài)配置和不同的執(zhí)行系統(tǒng)之間的接口等執(zhí)行系統(tǒng)之間的接口等 與軟件體系結(jié)構(gòu)有關(guān)的研究:與軟件體系結(jié)構(gòu)有關(guān)的研究:體系結(jié)構(gòu)風(fēng)格體系結(jié)構(gòu)風(fēng)格(Architecture Styles)(Architecture Styles) 表示軟件系統(tǒng)的一種特別的基本結(jié)構(gòu),以及

9、相表示軟件系統(tǒng)的一種特別的基本結(jié)構(gòu),以及相關(guān)的構(gòu)造方法關(guān)的構(gòu)造方法設(shè)計(jì)模式設(shè)計(jì)模式(Design Patterns)(Design Patterns) 構(gòu)造型模式、結(jié)構(gòu)型模式、行為型模式構(gòu)造型模式、結(jié)構(gòu)型模式、行為型模式框架框架(Framework)(Framework) 另一種研究和構(gòu)造軟件體系結(jié)構(gòu)的方法,更多另一種研究和構(gòu)造軟件體系結(jié)構(gòu)的方法,更多的是關(guān)于應(yīng)用領(lǐng)域問題的已建立的系統(tǒng)結(jié)構(gòu)。的是關(guān)于應(yīng)用領(lǐng)域問題的已建立的系統(tǒng)結(jié)構(gòu)??蚣芎驮O(shè)計(jì)模式n構(gòu)件通常是代碼重用,而設(shè)計(jì)模式是設(shè)計(jì)重用,構(gòu)件通常是代碼重用,而設(shè)計(jì)模式是設(shè)計(jì)重用,框架則介于兩者之間,部分代碼重用,部分設(shè)框架則介于兩者之間,部分代

10、碼重用,部分設(shè)計(jì)重用,有時(shí)分析也可重用。計(jì)重用,有時(shí)分析也可重用。n有三種級(jí)別的重用:有三種級(jí)別的重用:(1)內(nèi)部重用內(nèi)部重用,即在同一應(yīng)用中能公共使用的抽,即在同一應(yīng)用中能公共使用的抽象塊象塊;(2)代碼重用代碼重用,即將通用模塊組合成庫或工具集,即將通用模塊組合成庫或工具集,以便在多個(gè)應(yīng)用和領(lǐng)域都能使用;以便在多個(gè)應(yīng)用和領(lǐng)域都能使用;(3)應(yīng)用框架的重用應(yīng)用框架的重用,即為專用領(lǐng)域提供通用的,即為專用領(lǐng)域提供通用的或現(xiàn)成的基礎(chǔ)結(jié)構(gòu),以獲得最高級(jí)別的重用或現(xiàn)成的基礎(chǔ)結(jié)構(gòu),以獲得最高級(jí)別的重用性。性。 n設(shè)計(jì)模式是對(duì)在某種環(huán)境中反復(fù)出現(xiàn)的設(shè)計(jì)模式是對(duì)在某種環(huán)境中反復(fù)出現(xiàn)的問題以及解決該問題的方

11、案的描述,它問題以及解決該問題的方案的描述,它比框架更抽象;比框架更抽象;n架構(gòu)可以用代碼表示,架構(gòu)可以用代碼表示,也能直接執(zhí)行或也能直接執(zhí)行或復(fù)用,而對(duì)模式而言只有實(shí)例才能用代復(fù)用,而對(duì)模式而言只有實(shí)例才能用代碼表示碼表示; ;n設(shè)計(jì)模式是比架構(gòu)更小的元素,設(shè)計(jì)模式是比架構(gòu)更小的元素,一個(gè)架一個(gè)架構(gòu)中往往含有一個(gè)或多個(gè)設(shè)計(jì)模式,架構(gòu)中往往含有一個(gè)或多個(gè)設(shè)計(jì)模式,架構(gòu)總是針對(duì)某一特定應(yīng)用領(lǐng)域,但同一構(gòu)總是針對(duì)某一特定應(yīng)用領(lǐng)域,但同一模式卻可適用于各種應(yīng)用。模式卻可適用于各種應(yīng)用。2022-6-1328n成功的架構(gòu)開發(fā)需要確定領(lǐng)域?qū)S玫某晒Φ募軜?gòu)開發(fā)需要確定領(lǐng)域?qū)S玫摹盁狳c(diǎn)” (Hot spot

12、)。應(yīng)用開發(fā)者在框架的基礎(chǔ)上進(jìn)行開發(fā),只須擴(kuò)展架構(gòu)的某些部分,“熱點(diǎn)”就是在應(yīng)用領(lǐng)域的一種擴(kuò)展槽,開發(fā)者根據(jù)自己的需要填充這些擴(kuò)展槽n“食譜” (Cookbook)就是描述如何使用架構(gòu)方法的文檔。在“食譜”中包含了許多“烹飪”方法,這些“烹飪”方法相當(dāng)于一些具體的操作步驟,描述了為解決某一專門問題如何使用架構(gòu)的詳細(xì)方法。架構(gòu)的內(nèi)部設(shè)計(jì)和實(shí)現(xiàn)細(xì)節(jié)通常不出現(xiàn)在“食譜”中。2022-6-1329為什么要進(jìn)行體系結(jié)構(gòu)開發(fā)為什么要進(jìn)行體系結(jié)構(gòu)開發(fā)? n領(lǐng)域內(nèi)的軟件結(jié)構(gòu)一致性好;領(lǐng)域內(nèi)的軟件結(jié)構(gòu)一致性好; n建立更加開放的系統(tǒng);建立更加開放的系統(tǒng); n重用代碼大大增加重用代碼大大增加; ;n軟件設(shè)計(jì)人員要

13、專注于對(duì)領(lǐng)域的了解,使軟件設(shè)計(jì)人員要專注于對(duì)領(lǐng)域的了解,使需求分析更充分;需求分析更充分; n存儲(chǔ)了經(jīng)驗(yàn)存儲(chǔ)了經(jīng)驗(yàn); ;n允許采用快速原型技術(shù);允許采用快速原型技術(shù); n有利于在一個(gè)項(xiàng)目內(nèi)多人協(xié)同工作;有利于在一個(gè)項(xiàng)目內(nèi)多人協(xié)同工作; n大粒度的重用使得平均開發(fā)費(fèi)用降低大粒度的重用使得平均開發(fā)費(fèi)用降低; ;2022-6-1330n好的開始相當(dāng)于成功一半好的開始相當(dāng)于成功一半n設(shè)計(jì)模式是支撐架構(gòu)的重要組件設(shè)計(jì)模式是支撐架構(gòu)的重要組件n架構(gòu)設(shè)計(jì)是骨架,設(shè)計(jì)模式就是肉架構(gòu)設(shè)計(jì)是骨架,設(shè)計(jì)模式就是肉n時(shí)刻牢記架構(gòu)設(shè)計(jì)的目標(biāo)時(shí)刻牢記架構(gòu)設(shè)計(jì)的目標(biāo)1. 最大化的重用:2. 盡可能的簡單明了:3. 最靈活的

14、拓展性:2022-6-1331好的體系結(jié)構(gòu)好的體系結(jié)構(gòu)n與大多數(shù)好的設(shè)計(jì)一樣與大多數(shù)好的設(shè)計(jì)一樣n是一系列相容的原理和技術(shù)的產(chǎn)是一系列相容的原理和技術(shù)的產(chǎn)物,在項(xiàng)目的各個(gè)階段保持一致物,在項(xiàng)目的各個(gè)階段保持一致n在各種變化面前表現(xiàn)出彈性在各種變化面前表現(xiàn)出彈性n在產(chǎn)品的整個(gè)生命周期中充當(dāng)向在產(chǎn)品的整個(gè)生命周期中充當(dāng)向?qū)?dǎo)n重用成熟的工程知識(shí)重用成熟的工程知識(shí)2022-6-13322.3 軟件體系結(jié)構(gòu)的風(fēng)格軟件體系結(jié)構(gòu)的風(fēng)格 n軟件體系結(jié)構(gòu)風(fēng)格主要分為兩類。軟件體系結(jié)構(gòu)風(fēng)格主要分為兩類。 固定術(shù)語類:固定術(shù)語類:包括全局組織結(jié)構(gòu),如分層包括全局組織結(jié)構(gòu),如分層系統(tǒng),管道過濾器系統(tǒng),客戶系統(tǒng),管道

15、過濾器系統(tǒng),客戶/ /服務(wù)系統(tǒng),服務(wù)系統(tǒng),黑板系統(tǒng)等,還包括局部化的模式,如黑板系統(tǒng)等,還包括局部化的模式,如模型視圖控制等其他面向?qū)ο箝_發(fā)模型視圖控制等其他面向?qū)ο箝_發(fā)的模式。全局化的模式是在軟件全局上的模式。全局化的模式是在軟件全局上提供設(shè)計(jì)方式;而局部化的模式則側(cè)重提供設(shè)計(jì)方式;而局部化的模式則側(cè)重于軟件系統(tǒng)的一小部分,是針對(duì)特定問于軟件系統(tǒng)的一小部分,是針對(duì)特定問題提供解決方案。題提供解決方案。 2022-6-1333 參數(shù)化模型類:這一類別的風(fēng)這一類別的風(fēng)格包括對(duì)特定應(yīng)用領(lǐng)域的特定系格包括對(duì)特定應(yīng)用領(lǐng)域的特定系統(tǒng)組織,它指定了構(gòu)件及其交互統(tǒng)組織,它指定了構(gòu)件及其交互的配置,如詞法分析

16、器,類型分的配置,如詞法分析器,類型分析器,優(yōu)化器和代碼生產(chǎn)器,還析器,優(yōu)化器和代碼生產(chǎn)器,還有一些參考模型,如人機(jī)交互框有一些參考模型,如人機(jī)交互框架,通信參考模型,以及在航空、架,通信參考模型,以及在航空、移動(dòng)機(jī)器人等領(lǐng)域的大量特定領(lǐng)移動(dòng)機(jī)器人等領(lǐng)域的大量特定領(lǐng)域方法。域方法。 2022-6-1334體系結(jié)構(gòu)風(fēng)格的最關(guān)鍵四個(gè)要素n提供一個(gè)設(shè)計(jì)的詞匯表提供一個(gè)設(shè)計(jì)的詞匯表n定義一套配置規(guī)則定義一套配置規(guī)則n定義一套解釋原則定義一套解釋原則n定義基于這種風(fēng)格的系統(tǒng)所進(jìn)行的分析定義基于這種風(fēng)格的系統(tǒng)所進(jìn)行的分析2022-6-13352.3.2 2.3.2 常用的軟件體系結(jié)構(gòu)風(fēng)格常用的軟件體系結(jié)構(gòu)

17、風(fēng)格 n1、 管道和過濾器風(fēng)格管道和過濾器風(fēng)格 在管道/過濾器風(fēng)格的軟件體系結(jié)構(gòu)中,每個(gè)構(gòu)件都有一組輸入和輸出,構(gòu)件讀輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。 管道管道管道管道過濾器過濾器過濾器過濾器過濾器過濾器2022-6-13372、倉庫風(fēng)格和黑板風(fēng)格 n倉庫(Repositories)風(fēng)格的體系結(jié)構(gòu)有兩種不同的構(gòu)件組成:(1)中央數(shù)據(jù)結(jié)構(gòu)中央數(shù)據(jù)結(jié)構(gòu),它說明當(dāng)前狀態(tài);(2)獨(dú)立構(gòu)件的集合,獨(dú)立構(gòu)件的集合,它對(duì)中央數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作。 2022-6-1338n對(duì)于系統(tǒng)中數(shù)據(jù)和狀態(tài)的控制方法有兩種。(1)輸入事務(wù)選擇進(jìn)行某種處理,并把執(zhí)行結(jié)果作為當(dāng)前狀態(tài)存儲(chǔ)到中央數(shù)據(jù)結(jié)構(gòu)中,這時(shí),倉庫

18、是一個(gè)傳統(tǒng)的數(shù)據(jù)庫體系結(jié)構(gòu)(2)另一種方法是,由中央數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)決定進(jìn)行某種處理,這時(shí),倉庫是一個(gè)黑板(blackboard)體系結(jié)構(gòu)。 2022-6-1339存儲(chǔ)器直接存取黑板(共享數(shù)據(jù))知識(shí)源知識(shí)源知識(shí)源知識(shí)源知識(shí)源知識(shí)源計(jì)算2022-6-1340倉庫和黑板n倉庫在計(jì)算機(jī)應(yīng)用中幾乎無處不在倉庫在計(jì)算機(jī)應(yīng)用中幾乎無處不在n信息共享系統(tǒng)在很多領(lǐng)域有相似的信息共享系統(tǒng)在很多領(lǐng)域有相似的發(fā)展趨勢(shì),因?yàn)橛邢嗨频募夹g(shù)和商發(fā)展趨勢(shì),因?yàn)橛邢嗨频募夹g(shù)和商業(yè)壓力的激勵(lì)業(yè)壓力的激勵(lì)n黑板是一種特別的倉庫,主要用于黑板是一種特別的倉庫,主要用于需要對(duì)凌亂的信息進(jìn)行處理的領(lǐng)域,需要對(duì)凌亂的信息進(jìn)行處理的領(lǐng)域

19、,其控制策略必須是其控制策略必須是機(jī)會(huì)主義的機(jī)會(huì)主義的2022-6-13413、數(shù)據(jù)抽象和面向?qū)ο箫L(fēng)格數(shù)據(jù)抽象和面向?qū)ο箫L(fēng)格 n面向?qū)ο蟮娘L(fēng)格主要是利用對(duì)象的3個(gè)特性,即封裝特性、繼承和多態(tài)封裝特性、繼承和多態(tài)特性,特性,建立構(gòu)件對(duì)象。對(duì)象是一種被稱作管理者的構(gòu)件,因?yàn)樗?fù)責(zé)保持資源的完整性。對(duì)象是通過函數(shù)和過程的調(diào)用來交互的。 抽象數(shù)據(jù)類型過程調(diào)用對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象2022-6-13434、客戶/服務(wù)器風(fēng)格(C/S結(jié)構(gòu)) n三部分組成:l 中心服務(wù)數(shù)據(jù)系統(tǒng)l 客戶應(yīng)用程序l 網(wǎng)絡(luò) 客戶端通過網(wǎng)絡(luò)直接連接到數(shù)據(jù)庫服務(wù)器,由二者分擔(dān)業(yè)務(wù)處理。2022-6-1344用戶1用戶2用戶3用戶4用戶5

20、Print ServerLink/RxLPT1LPT2COMPower/TXPWROKWIC0ACT/CH0ACT/CH1WIC0ACT/CH0ACT/CH1ETHACTCOL其他公用設(shè)備打印機(jī)調(diào)制解調(diào)器InternetIntranet數(shù)據(jù)庫服務(wù)器客戶機(jī)客戶機(jī)/ /服務(wù)器體系結(jié)構(gòu)服務(wù)器體系結(jié)構(gòu)2022-6-1345C/SC/S體系結(jié)構(gòu)的處理流程體系結(jié)構(gòu)的處理流程輸入數(shù)據(jù)輸出數(shù)據(jù)請(qǐng)求按鈕表示層業(yè)務(wù)處理開始SQL 請(qǐng)求結(jié)束SQL 請(qǐng)求開始業(yè)務(wù)處理結(jié)束數(shù)據(jù)存取請(qǐng)求業(yè)務(wù)處理程序業(yè)務(wù)處理請(qǐng)求和業(yè)務(wù)處理所需的全部輸入數(shù)據(jù)全部處理結(jié)束DBMS 執(zhí)行SQL數(shù)據(jù)層業(yè)務(wù)處理開始數(shù)據(jù)存取請(qǐng)求業(yè)務(wù)處理結(jié)束數(shù)據(jù)存取程序

21、數(shù)據(jù)登錄/更新/讀取的請(qǐng)求數(shù)據(jù)登錄/更新/讀取的結(jié)果客戶機(jī)客戶機(jī)/ /服務(wù)器體系結(jié)構(gòu)服務(wù)器體系結(jié)構(gòu)應(yīng)用系統(tǒng)的組成:應(yīng)用系統(tǒng)的組成:顯示邏輯部分顯示邏輯部分(表示層表示層):實(shí)現(xiàn)與用戶交互實(shí)現(xiàn)與用戶交互應(yīng)用處理部分應(yīng)用處理部分(功能層功能層):進(jìn)行具體運(yùn)算和數(shù)據(jù)處理進(jìn)行具體運(yùn)算和數(shù)據(jù)處理數(shù)據(jù)管理部分?jǐn)?shù)據(jù)管理部分(數(shù)據(jù)層數(shù)據(jù)層):對(duì)數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行查詢、對(duì)數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行查詢、 修改、更新等任務(wù)修改、更新等任務(wù)應(yīng)用分層應(yīng)用分層表示層表示層功能層功能層數(shù)據(jù)層數(shù)據(jù)層三層明確分割三層明確分割, 邏輯上獨(dú)立邏輯上獨(dú)立 胖客戶機(jī)和瘦客戶機(jī)胖客戶機(jī)和瘦客戶機(jī)客戶機(jī)客戶機(jī)“胖胖” 客戶機(jī)客戶機(jī)應(yīng)用應(yīng)用處理處理邏

22、輯邏輯顯顯示示邏邏輯輯服務(wù)器服務(wù)器數(shù)據(jù)數(shù)據(jù)管理管理邏輯邏輯數(shù)據(jù)庫數(shù)據(jù)庫“瘦瘦”客戶機(jī)客戶機(jī)表示表示顯顯示示邏邏輯輯數(shù)據(jù)數(shù)據(jù)管理管理邏輯邏輯數(shù)據(jù)庫數(shù)據(jù)庫表示表示應(yīng)用處理應(yīng)用處理應(yīng)用應(yīng)用處理處理邏輯邏輯客戶機(jī)客戶機(jī)服務(wù)器服務(wù)器三層三層C/S的基本硬件結(jié)構(gòu)的基本硬件結(jié)構(gòu) 將三層功能裝載到硬件的三種基本方法將三層功能裝載到硬件的三種基本方法表示層表示層表示層表示層表示層表示層功能層功能層數(shù)據(jù)層數(shù)據(jù)層數(shù)據(jù)層數(shù)據(jù)層功能層功能層功能層功能層數(shù)據(jù)層數(shù)據(jù)層客客戶戶機(jī)機(jī)服服務(wù)務(wù)器器(1)(1)將數(shù)據(jù)層和將數(shù)據(jù)層和 功能層放在功能層放在 一臺(tái)服務(wù)器上一臺(tái)服務(wù)器上(2)(2)將數(shù)據(jù)層和將數(shù)據(jù)層和 功能層放在功能層放在

23、 不同服務(wù)器上不同服務(wù)器上服服務(wù)務(wù)器器(3)(3)將功能層放將功能層放 在客戶機(jī)上在客戶機(jī)上2022-6-1349 體系結(jié)構(gòu)體系結(jié)構(gòu)3.4 3.4 三層客戶三層客戶/ /服務(wù)器風(fēng)格服務(wù)器風(fēng)格 第三章第三章 軟件體系結(jié)構(gòu)風(fēng)格軟件體系結(jié)構(gòu)風(fēng)格表示層表示層數(shù)據(jù)層數(shù)據(jù)層功能層功能層三層客戶機(jī)三層客戶機(jī)/ /服務(wù)器體系結(jié)構(gòu)服務(wù)器體系結(jié)構(gòu)2022-6-1350 處理流程處理流程3.4 3.4 三層客戶三層客戶/ /服務(wù)器風(fēng)格服務(wù)器風(fēng)格 輸入數(shù)據(jù)輸出數(shù)據(jù)請(qǐng)求按鈕表示層業(yè)務(wù)處理開始SQL 請(qǐng)求結(jié)束SQL 請(qǐng)求開始業(yè)務(wù)處理結(jié)束數(shù)據(jù)存取請(qǐng)求業(yè)務(wù)處理程序業(yè)務(wù)處理請(qǐng)求和業(yè)務(wù)處理所需的全部輸入數(shù)據(jù)全部處理結(jié)束DBMS

24、執(zhí)行SQL數(shù)據(jù)層業(yè)務(wù)處理開始數(shù)據(jù)存取請(qǐng)求業(yè)務(wù)處理結(jié)束數(shù)據(jù)存取程序數(shù)據(jù)登錄/更新/讀取的請(qǐng)求數(shù)據(jù)登錄/更新/讀取的結(jié)果功能層第三章第三章 軟件體系結(jié)構(gòu)風(fēng)格軟件體系結(jié)構(gòu)風(fēng)格三層三層C/SC/S體系結(jié)構(gòu)的處理流程體系結(jié)構(gòu)的處理流程2022-6-13515、瀏覽器/服務(wù)器風(fēng)格(B/S結(jié)構(gòu)) n具體結(jié)構(gòu)為:瀏覽器瀏覽器/Web服務(wù)器服務(wù)器/數(shù)據(jù)數(shù)據(jù)庫服務(wù)器庫服務(wù)器。B/S體系結(jié)構(gòu)主要是利用不斷成熟的WWW瀏覽技術(shù),結(jié)合瀏覽器的多種腳本語言,用通用瀏覽器實(shí)現(xiàn)原來需要復(fù)雜的專用軟件才能實(shí)現(xiàn)的功能。 2022-6-1352瀏覽器瀏覽器/ /服務(wù)器體系結(jié)構(gòu)服務(wù)器體系結(jié)構(gòu)2022-6-1353結(jié)合三層C/S的B/

25、S結(jié)構(gòu)(四層)數(shù)據(jù)庫數(shù)據(jù)庫客戶端數(shù)據(jù)庫驅(qū)動(dòng)應(yīng)用服務(wù)中間服務(wù)器客戶端(Browser)WebApp.Web Server客戶端遠(yuǎn)程連接客戶機(jī)2022-6-13546、分層系統(tǒng)風(fēng)格 n分層分層(layered)系統(tǒng)組織成一個(gè)層次結(jié)構(gòu),每一層為上層服務(wù),并作為下層客戶每一層為上層服務(wù),并作為下層客戶。在一些層次系統(tǒng)中,除了一些精心挑選的輸出函數(shù)外,內(nèi)部的層次對(duì)相鄰的層可見內(nèi)部的層次對(duì)相鄰的層可見。 n這種風(fēng)格支持基于可增加抽象層的設(shè)計(jì)。這樣,允許將一個(gè)復(fù)雜問題分解成一個(gè)增量步驟序列的實(shí)現(xiàn)。由于每一層最多只影由于每一層最多只影響兩層,同時(shí)只要給相鄰層提供相同的接響兩層,同時(shí)只要給相鄰層提供相同的接口。

26、口。2022-6-1355過程調(diào)用構(gòu)件元素可用系統(tǒng)基本功能核心層用戶2022-6-1356層次模型的結(jié)構(gòu)關(guān)系層次模型的結(jié)構(gòu)關(guān)系客戶客戶層層N層層N-1層層1使用使用抽象的最高層抽象的最高層抽象的最低層抽象的最低層2022-6-1357層次風(fēng)格特點(diǎn)n每層為上一層提供服務(wù),使用下一層的每層為上一層提供服務(wù),使用下一層的服務(wù),只能見到與自己鄰接的層服務(wù),只能見到與自己鄰接的層n適當(dāng)時(shí)候適當(dāng)時(shí)候(必不得已的時(shí)候必不得已的時(shí)候),可以允許一定,可以允許一定的越層操作的越層操作n大的問題分解為若干個(gè)漸進(jìn)的小問題,大的問題分解為若干個(gè)漸進(jìn)的小問題,逐步解決,隱藏了很多復(fù)雜度逐步解決,隱藏了很多復(fù)雜度n修改一

27、層,修改一層,最多影響兩層最多影響兩層,而通常只能,而通常只能影響上層。接口穩(wěn)固,則誰都不影響影響上層。接口穩(wěn)固,則誰都不影響2022-6-1358 使用層,不需要去了解層的實(shí)現(xiàn)細(xì)節(jié)不需要去了解層的實(shí)現(xiàn)細(xì)節(jié) 可以使用另一種技術(shù)來改變基礎(chǔ)的層,而不會(huì)影響上面的層的應(yīng)用。 可以減少不同層之間的依賴。 容易制定出層標(biāo)準(zhǔn)。 底下的層可以用來建立頂上的層的多項(xiàng)服務(wù)。 層不可能封裝所有的功能,一旦有功能變動(dòng),勢(shì)必要波及所有的層。 效率降低。2022-6-1359應(yīng)用層協(xié)議應(yīng)用層協(xié)議表示層協(xié)議表示層協(xié)議會(huì)晤層協(xié)議會(huì)晤層協(xié)議傳輸層協(xié)議傳輸層協(xié)議 物物 理理 介介 質(zhì)質(zhì)應(yīng)用層應(yīng)用層表示層表示層會(huì)晤層會(huì)晤層傳輸層

28、傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層應(yīng)用層應(yīng)用層表示層表示層會(huì)晤層會(huì)晤層傳輸層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層網(wǎng)絡(luò)層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層物理層物理層中繼系統(tǒng)中繼系統(tǒng) 中繼系統(tǒng)中繼系統(tǒng)主機(jī)系統(tǒng)主機(jī)系統(tǒng)主機(jī)系統(tǒng)主機(jī)系統(tǒng)2022-6-13602022-6-13617、基于事件的隱式調(diào)用風(fēng)格 n基于事件的隱式調(diào)用風(fēng)格的思想是構(gòu)件不直接調(diào)用一個(gè)過程不直接調(diào)用一個(gè)過程,而是觸發(fā)或廣播一個(gè)或多個(gè)事件。系統(tǒng)中的其它構(gòu)件可以把某一過程注冊(cè)為與它所關(guān)心的事件相關(guān)聯(lián)。當(dāng)一個(gè)事件被觸發(fā)時(shí),系統(tǒng)自動(dòng)調(diào)用在這個(gè)事件中注冊(cè)的過程,這樣,一個(gè)事

29、件的觸發(fā)就導(dǎo)致了另一模塊中的過程的調(diào)用。 2022-6-1362n從體系結(jié)構(gòu)上說,這種從體系結(jié)構(gòu)上說,這種風(fēng)格的構(gòu)件是一風(fēng)格的構(gòu)件是一些模塊些模塊,這些模塊既可以是一些過程,這些模塊既可以是一些過程,又可以是一些事件的集合。過程可以用又可以是一些事件的集合。過程可以用通用的方式調(diào)用,也可以在系統(tǒng)事件中通用的方式調(diào)用,也可以在系統(tǒng)事件中注冊(cè)一些過程,當(dāng)發(fā)生這些事件時(shí),過注冊(cè)一些過程,當(dāng)發(fā)生這些事件時(shí),過程被調(diào)用。程被調(diào)用。 2022-6-1363n基于事件的隱式調(diào)用風(fēng)格的主要特基于事件的隱式調(diào)用風(fēng)格的主要特點(diǎn)是事件的點(diǎn)是事件的觸發(fā)者并不知道哪些構(gòu)件觸發(fā)者并不知道哪些構(gòu)件會(huì)被這些事件影響會(huì)被這些事

30、件影響。這樣不能假定構(gòu)。這樣不能假定構(gòu)件的處理順序,甚至不知道哪些過程件的處理順序,甚至不知道哪些過程會(huì)被調(diào)用,因此,許多隱式調(diào)用的系會(huì)被調(diào)用,因此,許多隱式調(diào)用的系統(tǒng)也包含顯式調(diào)用作為構(gòu)件相互的補(bǔ)統(tǒng)也包含顯式調(diào)用作為構(gòu)件相互的補(bǔ)充形式充形式 2022-6-13648、模型視圖控制器風(fēng)格nMVC模式把涉及數(shù)據(jù)管理和顯示的功能分散到不同的對(duì)象上,降低對(duì)象間的耦合。MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性地使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、模型、視圖、控制器視圖、控制器。它們各自處理自己的任務(wù),并且盡量降低部分間的耦合。每一部分處理特定的任務(wù),并負(fù)責(zé)完成與其它部分

31、的通信。2022-6-1365Model-View-Controller模式2022-6-1366MVC模式nMVC模式的目的就是實(shí)現(xiàn)Web系統(tǒng)的職能分工。nModel層實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通??梢杂肑avaBean或EJB來實(shí)現(xiàn)。nView層用于與用戶的交互,通常用JSP來實(shí)現(xiàn)。nController層是Model與View之間溝通的橋梁,它可以分派用戶的請(qǐng)求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時(shí)它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。 2022-6-1367MVCMVC的優(yōu)點(diǎn):的優(yōu)點(diǎn):n 各施其職,互不干涉各施其職,互不干涉n 有利于開發(fā)中的分工有利于開發(fā)中的分工n 有利于組件

32、的重用有利于組件的重用 2022-6-1368MVC的缺點(diǎn): n MVC的缺點(diǎn)是由于它沒有明確的定義,所以完全理解MVC并不是很容易。 n 如何將MVC運(yùn)用到應(yīng)用程序中沒有準(zhǔn)確的解決方案,需要設(shè)計(jì)者認(rèn)真考慮。n 由于將一個(gè)應(yīng)用程序分成了三個(gè)部件,所以使用MVC同時(shí)也意味著你將要管理比以前更多的文件,意味著代碼文件增多,因此,對(duì)于文件的管理需要費(fèi)點(diǎn)心思,開發(fā)的工作量也要增加了。 n 模型和視圖的嚴(yán)格分離可能使得調(diào)試?yán)щy一些,但比較容易發(fā)現(xiàn)錯(cuò)誤。 2022-6-13699、C2風(fēng)格 nC2體系結(jié)構(gòu)風(fēng)格可以概括為:體系結(jié)構(gòu)風(fēng)格可以概括為:通過連接件綁定在一起的按照一通過連接件綁定在一起的按照一組規(guī)則

33、運(yùn)作的并行構(gòu)件網(wǎng)絡(luò)組規(guī)則運(yùn)作的并行構(gòu)件網(wǎng)絡(luò)。 2022-6-1370C2風(fēng)格中的系統(tǒng)組織規(guī)則n 系統(tǒng)中的構(gòu)件和連接件都有一個(gè)頂部和一系統(tǒng)中的構(gòu)件和連接件都有一個(gè)頂部和一個(gè)底部;個(gè)底部;n 構(gòu)件的頂部應(yīng)連接到某連接件的底部,構(gòu)構(gòu)件的頂部應(yīng)連接到某連接件的底部,構(gòu)件的底部則應(yīng)連接到某連接件的頂部,而構(gòu)件的底部則應(yīng)連接到某連接件的頂部,而構(gòu)件與構(gòu)件之間的直接連接是不允許的;件與構(gòu)件之間的直接連接是不允許的;n 一個(gè)連接件可以和任意數(shù)目的其它構(gòu)件和一個(gè)連接件可以和任意數(shù)目的其它構(gòu)件和連接件連接;連接件連接;n 當(dāng)兩個(gè)連接件進(jìn)行直接連接時(shí),必須由其當(dāng)兩個(gè)連接件進(jìn)行直接連接時(shí),必須由其中一個(gè)的底部到另一個(gè)

34、的頂部中一個(gè)的底部到另一個(gè)的頂部對(duì)體系結(jié)構(gòu)風(fēng)格的理解對(duì)體系結(jié)構(gòu)風(fēng)格的理解v結(jié)構(gòu)風(fēng)格以結(jié)構(gòu)風(fēng)格以結(jié)構(gòu)組織為特性結(jié)構(gòu)組織為特性定義了一個(gè)軟件系統(tǒng)定義了一個(gè)軟件系統(tǒng)族,表達(dá)了部件以及部件之間的關(guān)系。族,表達(dá)了部件以及部件之間的關(guān)系。v體系結(jié)構(gòu)風(fēng)格通過組件應(yīng)用的限制及其與構(gòu)建有體系結(jié)構(gòu)風(fēng)格通過組件應(yīng)用的限制及其與構(gòu)建有關(guān)的組成和設(shè)計(jì)規(guī)則來關(guān)的組成和設(shè)計(jì)規(guī)則來表現(xiàn)組件和組件之間的關(guān)表現(xiàn)組件和組件之間的關(guān)系系。v體系結(jié)構(gòu)風(fēng)格表示了軟件系統(tǒng)的一種體系結(jié)構(gòu)風(fēng)格表示了軟件系統(tǒng)的一種特別的基本特別的基本結(jié)構(gòu)結(jié)構(gòu),以及相關(guān)的構(gòu)造方法。,以及相關(guān)的構(gòu)造方法。v體系結(jié)構(gòu)風(fēng)格應(yīng)該使一些對(duì)軟件體系結(jié)構(gòu)風(fēng)格應(yīng)該使一些對(duì)軟件構(gòu)

35、成帶有整體性構(gòu)成帶有整體性、普遍性、一般性的結(jié)構(gòu)和結(jié)構(gòu)關(guān)系的方法、普遍性、一般性的結(jié)構(gòu)和結(jié)構(gòu)關(guān)系的方法。在。在設(shè)計(jì)中,遵循這些風(fēng)格的構(gòu)成原則,對(duì)軟件的開設(shè)計(jì)中,遵循這些風(fēng)格的構(gòu)成原則,對(duì)軟件的開發(fā)和維護(hù)十分有益。發(fā)和維護(hù)十分有益。2022-6-1372 體系結(jié)構(gòu)軟件設(shè)計(jì)的問題體系結(jié)構(gòu)軟件設(shè)計(jì)的問題 工具工具 如何描述軟件的總體結(jié)構(gòu)如何描述軟件的總體結(jié)構(gòu)方法方法 用什么方法由問題結(jié)構(gòu)導(dǎo)出用什么方法由問題結(jié)構(gòu)導(dǎo)出 軟件結(jié)構(gòu)軟件結(jié)構(gòu)評(píng)估準(zhǔn)則評(píng)估準(zhǔn)則 什么樣的軟件結(jié)構(gòu)是什么樣的軟件結(jié)構(gòu)是 “最優(yōu)的最優(yōu)的”2022-6-1373體系結(jié)構(gòu)文檔的用處體系結(jié)構(gòu)文檔的用處n軟件開發(fā)過程中各種角色之間交流軟件開發(fā)

36、過程中各種角色之間交流設(shè)計(jì)思想的媒介設(shè)計(jì)思想的媒介n進(jìn)行上層分析的基礎(chǔ)。此基礎(chǔ)上可進(jìn)行上層分析的基礎(chǔ)。此基礎(chǔ)上可以驗(yàn)證體系結(jié)構(gòu)設(shè)計(jì)方案,精煉或以驗(yàn)證體系結(jié)構(gòu)設(shè)計(jì)方案,精煉或改變必要的方案改變必要的方案n讓別人理解系統(tǒng)的第一手資料讓別人理解系統(tǒng)的第一手資料2022-6-1374有利于軟件開發(fā)者之間交流有利于軟件開發(fā)者之間交流n基本想法是什么?n我該做什么 (如,實(shí)現(xiàn)哪些需求) ?n我該在哪做 (如,這項(xiàng)功能實(shí)現(xiàn)在哪里) ?n我和誰交互?接口是什么?n有什么可以重用的代碼?n必須遵從什么約定(質(zhì)量目標(biāo)、舊體系/接口、預(yù)算等)?n有哪些硬性規(guī)定(設(shè)計(jì)、接口、約束等)?2022-6-13752.4 軟件體系結(jié)構(gòu)描述方法軟件體系結(jié)構(gòu)描述方法 n2.4.1 軟件體系結(jié)構(gòu)描述方法概述1 1、軟件體系結(jié)構(gòu)描述方法、軟件體系結(jié)構(gòu)描述方法 圖形表達(dá)工具:使用較多的圖形表達(dá)工具:使用較多的UMLUML中的中的“4 41 1”視圖視圖 模塊內(nèi)連接語言模塊內(nèi)連接語言 基于構(gòu)件的系統(tǒng)描述語言基于構(gòu)件的系統(tǒng)描述語言 軟件體系結(jié)構(gòu)的描述語言(軟件體系結(jié)構(gòu)的描述語言(ADLADL) 2 2、軟件體系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論