《《軟件架構(gòu)與設(shè)計模式》復(fù)習(xí) 資料》由會員分享,可在線閱讀,更多相關(guān)《《軟件架構(gòu)與設(shè)計模式》復(fù)習(xí) 資料(5頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、《軟件架構(gòu)與設(shè)計模式》復(fù)習(xí)要點(diǎn)整理
(老師將我們整理的資料進(jìn)行了修改和補(bǔ)充,紅色的部分是老師的批注)
一、軟件體系結(jié)構(gòu)部分
1、架構(gòu)設(shè)計師與軟件工程師的主要區(qū)別。
架構(gòu)設(shè)計師以宏觀(Macro View)的角度切入系統(tǒng)架構(gòu),善于抽象思維,軟件工程 師則通常是以微觀(Micro View)的角度切入。如一般設(shè)計師通??紤]的層次是一 個使用者按下按鈕時所發(fā)生的狀況,而架構(gòu)設(shè)計師考慮的則是成千上萬個使用者 按下按鈕時所發(fā)生的狀況。
2、軟件體系結(jié)構(gòu)的“4+1視圖”是指什么?是否每個軟件系統(tǒng)這 5個視圖都需 要?
答:從 5 個不同的視角包括邏輯視角、過程視角、物理視角、開發(fā)視角和場景 視
2、角來描述軟件體系結(jié)構(gòu)。每一個視角只關(guān)心系統(tǒng)的一個側(cè)面,5個視角結(jié)合在 一起才能夠反映系統(tǒng)的軟件體系結(jié)構(gòu)的全部內(nèi)容,但并非每個系統(tǒng)都必須把 5 個視圖都畫出來,而是各有側(cè)重。例如 MIS 系統(tǒng)側(cè)重于邏輯視圖、開發(fā)視圖, 而實(shí)時控制系統(tǒng)則側(cè)重于進(jìn)程視圖、物理視圖
1. 、典型的軟件構(gòu)架樣式(archi tec tu ral st yles )有哪些? 答:答到其中4種以上即可
o 以數(shù)據(jù)為中心的構(gòu)架 數(shù)據(jù)集成——一個集中式的數(shù)據(jù)集與多個客戶端進(jìn)行通信
o 數(shù)據(jù)流構(gòu)架
成批數(shù)據(jù)流;管道和過濾器
o 虛擬組織架
目標(biāo):可移植性
模擬對象:模擬硬件不具備的功能或軟件環(huán)境
實(shí)例:java虛
3、擬機(jī)(java的平臺獨(dú)立性)
o 調(diào)用——返回構(gòu)架
目標(biāo):可更改性和可擴(kuò)展性
主一 程序(傳統(tǒng));面向?qū)ο?類派生);層次樣式
o獨(dú)立組件構(gòu)架
由獨(dú)立進(jìn)程或?qū)ο蠼M成,通過消息進(jìn)行通信
例: C/S 模式
o 異質(zhì)構(gòu)架
多種構(gòu)架樣式的綜合 局部異質(zhì)/層次異質(zhì)/并行異質(zhì)(同時符合幾種樣式)
2、 簡單了解管道-過濾器風(fēng)格的應(yīng)用 答:不考概念,能判斷出管道-過濾器風(fēng)格即可
過濾器(Filter)是數(shù)據(jù)流水線的處理單元,負(fù)責(zé)豐富,提煉或轉(zhuǎn)換他的輸
入數(shù)據(jù). 它以下面的三種方式工作:
-隨后的數(shù)據(jù)流水線單元從過濾器中拉出(pull)數(shù)據(jù).
-前面的流水線單元把新的輸入數(shù)據(jù)壓入(
4、push)過濾器.
-過濾器以循環(huán)的方式工作,從流水線中拉出輸入數(shù)據(jù)并且將其輸出 數(shù)據(jù)壓入流水線.
前兩種是被動過濾器(Passive Filter),后面的是主動過濾器(Active Filter).
3、簡單區(qū)別軟件構(gòu)架分析方法SAAM與ATAM。 答:不必全部答,選部分要點(diǎn)即可
涉及的質(zhì)量屬性:ATAM不面向任何具體的質(zhì)量屬性,但據(jù)其歷史,它更側(cè) 重于可修改性,安全性,可靠性和性能; SAAM 只要是可修改性 和功能
分析的對象: ATAM 架構(gòu)方法或樣式,闡述過程、數(shù)據(jù)流、使用、物理或模 塊試圖的架構(gòu)文檔;SAAM架構(gòu)文檔,特別是闡述邏輯或模塊視 圖的部分
試用階段: AT
5、AM 在架構(gòu)設(shè)計方法已經(jīng)選定之后; SAAM 在架構(gòu)已經(jīng)將功能分 配到各個模塊中以后
采用方法:利用效用樹和對場景的集體討論來搞清楚質(zhì)量屬性需求。通過對 架構(gòu)方法的分析確定出敏感點(diǎn)、權(quán)衡點(diǎn)和風(fēng)險; SAAM 利用對場 景的集體討論搞清楚質(zhì)量屬性需求。通過來驗證功能或?qū)Ω某?本做出估計
資源需求:一般用 3的時間,另外還有預(yù)先的準(zhǔn)備時間和之后的總結(jié)時間。 參評人員有客戶、架構(gòu)師、風(fēng)險承擔(dān)者和 4 人評估小組; SAAM 一般用 2天時間,另外還有之后的總結(jié)時間,參評人員有客戶、 架構(gòu)師、風(fēng)險承擔(dān)者和 3人評估小組
6、理解軟件體系結(jié)構(gòu)(Sof tware arch it ec ture)
6、,框架(Framework)和設(shè)計 模式(Design patterns) 3 個概念
軟件體系結(jié)構(gòu)是構(gòu)件的集合,包括處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件。處理構(gòu) 件負(fù)責(zé)對數(shù)據(jù)進(jìn)行加工,數(shù)據(jù)構(gòu)件是被加工的信息,連接構(gòu)件把體系結(jié)構(gòu)的 不同部分組組合連接起來。
框架:框架是一種軟件重用技術(shù),它是一個應(yīng)用軟件系統(tǒng)的部分或整體的可 重用設(shè)計。應(yīng)用框架具有領(lǐng)域相關(guān)性,構(gòu)件根據(jù)框架進(jìn)行復(fù)合而生成可運(yùn)行 的系統(tǒng)??蚣芫唧w表現(xiàn)為一組抽象類以及其實(shí)例(對象)之間的相互作用方 式。
設(shè)計模式是對面向?qū)ο笤O(shè)計中反復(fù)出現(xiàn)的問題的 解決方案,通常描述了 一組相互 緊密作用的類與對象。設(shè)計模式提供一種討論軟件設(shè)計 的公共語
7、言,使 得熟練設(shè) 計者的設(shè)計經(jīng)驗可以被 初學(xué)者和其他設(shè) 計者掌握。設(shè)計 模式還為軟件重構(gòu)提供了 目標(biāo)。
7、了解 C/S 與 B/S 混合軟件架構(gòu)及其優(yōu)缺點(diǎn) 答:
o C/S與B/S混合軟件體系結(jié)構(gòu)的優(yōu)點(diǎn)是外部用戶不直接訪問數(shù)據(jù)庫服務(wù) 器,能保證企業(yè)數(shù)據(jù)庫的相對安全。企業(yè)內(nèi)部用戶的交互性較強(qiáng),數(shù)據(jù) 查詢和修改的響應(yīng)速度較快。
o C/S與B/S混合軟件體系結(jié)構(gòu)的缺點(diǎn)是企業(yè)外部用戶修改和維護(hù)數(shù)據(jù)時, 速度較慢,較煩瑣,數(shù)據(jù)的動態(tài)交互性不強(qiáng)。
二、框架
了解層次結(jié)構(gòu)的各層在邏輯上各自獨(dú)立,表現(xiàn)層與功能層,功能層與數(shù)據(jù)層之間 要進(jìn)行數(shù)據(jù)傳送,通常采用的技術(shù)。
答:中間件技術(shù),請査資料,簡
8、要作答
3、 給出 一 個基 于 Model-View-Controller 模式 構(gòu)建 三層 Web 應(yīng) 用 (Browser/Web/DataBase)的簡單方案。要求用 JSP, Servlet, JavaBeans 和 JDBC 的技術(shù)組合來實(shí)現(xiàn)。
整個系統(tǒng)采用 Browser/Web/DataBase 的三層體系結(jié)構(gòu)。
Web服務(wù)器接受請求,通過應(yīng)用程序服務(wù)器執(zhí)行Servlet并返回其輸出,實(shí)現(xiàn)與 客戶機(jī)進(jìn)行信息資源的交互。
數(shù)據(jù)庫服務(wù)器用來存儲管理信息系統(tǒng)中所用到的各種數(shù)據(jù)。 系統(tǒng)的客戶端只需要一個瀏覽器,相關(guān)人員通過瀏覽器來査詢、增加、修改、刪 除數(shù)據(jù),對信息進(jìn)行管理。(
9、上述文字與下圖只選二種表達(dá)即可)
在中間層上采用 MVC 模式
角色: Model 層實(shí)現(xiàn)業(yè)務(wù)邏輯
View層顯示用戶界面
Controller層負(fù)責(zé)View層和Model層之間的控制關(guān)系
實(shí)現(xiàn):Servlet 控制器
JSP 文檔——視圖
JavaBeans 模型
三、 設(shè)計模式
4、理解面向?qū)ο笤O(shè)計的“開—閉”原則
答:“開—閉”原則是指軟件實(shí)體應(yīng)當(dāng)對擴(kuò)展性開放,對修改關(guān)閉。即軟件實(shí) 體應(yīng)該在不修改的前提下擴(kuò)展,這個原則實(shí)際上為軟件設(shè)計指明了目標(biāo)。我們 知道軟件設(shè)計應(yīng)當(dāng)充分考慮軟件的可維護(hù)性,即需求發(fā)生變化的時候軟件結(jié)構(gòu) 能夠靈活地適應(yīng)這種變化。就評價軟
10、件的可維護(hù)性而言,“開—閉”原則提供 了一個依據(jù)。實(shí)際上,設(shè)計模式的應(yīng)用就是使軟件的結(jié)構(gòu)在某種程度上滿足“開 —閉”原則。
5、理解下述面向?qū)ο笤O(shè)計的策略
(1)Design to interfaces.
答:設(shè)計到接口,關(guān)注對象外部特征
(2)Favor composition over inheritance. 答:采用類組合而非類繼承的方式進(jìn)行設(shè)計
(3)Find what varies and encapsulate it.
答:發(fā)現(xiàn)變化點(diǎn),封裝變化點(diǎn)
四、 方案題
參照課件 ppt unit1-case05
從 1-2 中任選一題作答或選擇你自己開發(fā)的系統(tǒng)作答
軟
11、件體系結(jié)構(gòu)分析與設(shè)計要點(diǎn)提示(供參考和選擇):
?軟件體系結(jié)構(gòu)(軟件架構(gòu))
?實(shí)現(xiàn)方案(系統(tǒng)框架、開發(fā)平臺、網(wǎng)絡(luò)結(jié)構(gòu)、開發(fā)工具、技術(shù)等)
?M-V-C模式?數(shù)據(jù)層設(shè)計?設(shè)計模式
1、 公路長途客運(yùn)行業(yè)聯(lián)網(wǎng)售票系統(tǒng)
系統(tǒng)通過整合公路客運(yùn)行業(yè)客票資源,解決長途客運(yùn)信息分散,乘客難于獲得 出行信息,必須到站買票等問題,并實(shí)現(xiàn)站間互售、社會代售、網(wǎng)絡(luò)訂售票相結(jié) 合的全新的公路長途票務(wù)服務(wù)。
客運(yùn)站隸屬于不同的經(jīng)營主體,客票中心配置中心應(yīng)用服務(wù)器和中心數(shù)據(jù) 庫,匯總?cè)靠推毙畔?。每個客運(yùn)站都擁有獨(dú)立的信息管理系統(tǒng),客運(yùn)站和社會 代售點(diǎn)通過城域網(wǎng)絡(luò)接入中心服務(wù)器,網(wǎng)絡(luò)用戶通過Internet連
12、接網(wǎng)上訂票WEB 服務(wù)器,實(shí)現(xiàn)訂售票服務(wù)。整個系統(tǒng)構(gòu)成松散的“邦聯(lián)式”結(jié)構(gòu)。客運(yùn)站信息系 統(tǒng)包括售、檢、調(diào)、結(jié)等功能;票務(wù)中心包括管理、票務(wù)、結(jié)算功能。
在系統(tǒng)建成后一段時間內(nèi),客運(yùn)站售票仍是售票的主要方式,不能因為系統(tǒng)的 其它故障導(dǎo)致客運(yùn)站售票活動的中止,從而使旅客在客運(yùn)站集結(jié),影響社會正常 的工作、生產(chǎn)秩序。
2、 遠(yuǎn)程考試系統(tǒng)
遠(yuǎn)程考試系統(tǒng)是一個基于數(shù)據(jù)庫和Web的遠(yuǎn)程在線實(shí)時測試系統(tǒng)。系統(tǒng)中的 大量題庫、試卷、用戶信息等都是作為數(shù)據(jù)庫記錄的形式存儲的, 使得系統(tǒng)的 管理維護(hù)和擴(kuò)展更為方便,同時也便于從數(shù)據(jù)庫中隨機(jī)自動產(chǎn)生一份試卷。 遠(yuǎn) 程考試系統(tǒng)客戶端的配置極為簡單,并且支持遠(yuǎn)程
13、訪問,客戶端的平臺無關(guān)性使 得系統(tǒng)可以適用各種復(fù)雜的應(yīng)用。系統(tǒng)的絕大部分工作都是在 Server 端完成的; Client端根據(jù)功能分為普通Client和數(shù)據(jù)庫管理Client。遠(yuǎn)程考試系統(tǒng)從功 能邏輯上劃分可分為以下四個部分:
1) 考生考試系統(tǒng):考生考試系統(tǒng)具有參加考試,查詢考試結(jié)果以及一些輔 助功能。
2) 教師批閱系統(tǒng):教師批閱系統(tǒng)具有批閱試卷,查看分?jǐn)?shù),統(tǒng)計成績,管 理試卷和劃分學(xué)生等級等功能。
3) 管理系統(tǒng):管理系統(tǒng)能對系統(tǒng)的用戶信息和試卷進(jìn)行管理,增加,修改, 刪除。
4) 題庫維護(hù)系統(tǒng):題庫管理系統(tǒng)主要用于試題庫的維護(hù),包括新建、修改、 刪除等功能, 同時還可以定義考試中的試卷模板,以便管理系統(tǒng)根據(jù)此模板自 動生成試卷。