軟件體系結(jié)構(gòu)及設(shè)計(jì)考點(diǎn)_第1頁
軟件體系結(jié)構(gòu)及設(shè)計(jì)考點(diǎn)_第2頁
軟件體系結(jié)構(gòu)及設(shè)計(jì)考點(diǎn)_第3頁
軟件體系結(jié)構(gòu)及設(shè)計(jì)考點(diǎn)_第4頁
軟件體系結(jié)構(gòu)及設(shè)計(jì)考點(diǎn)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件體系結(jié)構(gòu)與設(shè)計(jì)考點(diǎn)-王同喜一、簡(jiǎn)答題(3*10=30)1. 軟件設(shè)計(jì)與軟件編碼的區(qū)別?軟件設(shè)計(jì)是從軟件需求規(guī)格說明書出發(fā),根據(jù)需求分析階段確定的功能設(shè)計(jì)軟件系統(tǒng)的整體結(jié)構(gòu)、劃分功能模塊、確定每個(gè)模塊的實(shí)現(xiàn)算法以及編寫具體的代碼,形成軟件的具體設(shè)計(jì)方案。軟件編碼是信息從一種形式或格式轉(zhuǎn)換為另一種形式的過程也稱為計(jì)算機(jī)編程語言的代碼簡(jiǎn)稱編碼整個(gè)軟件開發(fā)過程是由架構(gòu)師或者系統(tǒng)分析師來設(shè)計(jì),而編碼是由程序員來搞定,程序員一般只是完成某一功能模塊2. 軟件體系結(jié)構(gòu)的模式有哪幾種?含義?(如:分層模式)抽象分層體系結(jié)構(gòu)模式(層次體系結(jié)構(gòu)模式)是一種軟件體系結(jié)構(gòu)模式,它將系統(tǒng)水平分割為多個(gè)抽象的層次。分

2、層風(fēng)格的體系結(jié)構(gòu)是將系統(tǒng)組織成一個(gè)層次結(jié)構(gòu),每一層為上層提供服務(wù),并作為下層的客戶端。在分層風(fēng)格的體系結(jié)構(gòu)中,上層可以調(diào)用下層的服務(wù)。TCP/IP網(wǎng)絡(luò)是層次模式的最著名例子,TCP/IP共包含以下5個(gè)概念層:物理層、網(wǎng)絡(luò)接口層、互聯(lián)網(wǎng)層、傳輸層、應(yīng)用層。分層風(fēng)格的體系結(jié)構(gòu)有許多優(yōu)點(diǎn):(1)支持基于抽象程度遞增的系統(tǒng)設(shè)計(jì):使設(shè)計(jì)者可以把一個(gè)復(fù)雜系統(tǒng)按遞增的步驟進(jìn)行分解;(2)支持功能增強(qiáng):因?yàn)槊恳粚又炼嗪拖噜彽纳舷聦咏换?因此功能的改變最多影響相鄰的上下層;(3)支持復(fù)用:只要提供的服務(wù)接口定義不變,同一層的不同實(shí)現(xiàn)可以交換使用。這樣,就可以定義一組標(biāo)準(zhǔn)的接口,而允許各種不同的實(shí)現(xiàn)方法;(4)可

3、替換性。但是,分層風(fēng)格的體系結(jié)構(gòu)也有弱點(diǎn),如如更改行為的重迭等等。調(diào)用/返回模式異步消息通信模式帶回復(fù)的同步消息通信模式3. 軟件體系結(jié)構(gòu)風(fēng)格常見的有哪些。主程序子程序風(fēng)格、過濾器、管道軟件體系結(jié)構(gòu)風(fēng)格:能夠用來具體描述軟件系統(tǒng)控制結(jié)構(gòu)和整體組織的一種體系結(jié)構(gòu),能夠表示系統(tǒng)的框架結(jié)構(gòu),用于從較高的層次上來描述各部分之間的關(guān)系和接口。常見的軟件體系結(jié)構(gòu)風(fēng)格有:管道-過濾器風(fēng)格、面向?qū)ο箫L(fēng)格、事件驅(qū)動(dòng)風(fēng)格、分層風(fēng)格、主程序/子程序、黑板系統(tǒng)等主程序/子程序,傳統(tǒng)的主程序/子程序組織結(jié)構(gòu)模式將功能分解為一個(gè)控制層次,其中“主”程序調(diào)用一組程序構(gòu)件,這些程序構(gòu)件又去調(diào)用其他構(gòu)件。很多系統(tǒng)的主要組織結(jié)構(gòu)

4、反映了所使用的編程語言的特點(diǎn)。對(duì)于一個(gè)沒有模塊化支持的語言,系統(tǒng)通常會(huì)被組織成一個(gè)主程序和一系列子程序的集合。主程序擔(dān)當(dāng)子程序的驅(qū)動(dòng)器,為子程序提供一個(gè)控制環(huán)路,使子程序以某種次序順序執(zhí)行。主程序/子程序體系結(jié)構(gòu)的構(gòu)件分布在網(wǎng)絡(luò)中的多臺(tái)計(jì)算機(jī)上,則構(gòu)成遠(yuǎn)程過程調(diào)用體系結(jié)構(gòu)。4. 重構(gòu)(迭代)的含義?與重新設(shè)計(jì)的區(qū)別?1.重構(gòu)改進(jìn)軟件設(shè)計(jì)2.重構(gòu)使軟件更容易理解3.重構(gòu)幫助找到bug4.重提高編程速度5.重構(gòu)并不是重新設(shè)計(jì),而是對(duì)軟件內(nèi)部結(jié)構(gòu)的一種調(diào)整,目的在于不改變軟件可觀察行為的前提下,調(diào)整其結(jié)構(gòu)。5. 軟件設(shè)計(jì)類有哪些?分別起什么作用?(編輯類 領(lǐng)域類 邏輯類 控制類 持久類 系統(tǒng)類)外部

5、類:在軟件系統(tǒng)外部并通過接口連接到系統(tǒng)的類。外部用戶類通過接口連接到用戶交互類,與之交互;外部系統(tǒng)類通過接口連接到代理類,與之通信;外部設(shè)備類為設(shè)備I/O邊界類提供輸入或接受其輸出。邊界類:用戶交互對(duì)象直接與人類用戶通信,從用戶獲取輸入,通過標(biāo)準(zhǔn)I/O設(shè)備(如鍵盤、顯示器和鼠標(biāo))向用戶提供輸出;(操作員交互)代理對(duì)象通過接口連接到外部系統(tǒng)并與之通信,隱藏了通信的細(xì)節(jié);(抓取和放置機(jī)器人代理)設(shè)備I/O邊界對(duì)象對(duì)一個(gè)硬件I/O設(shè)備提供軟件接口。(ATM讀卡器接口)實(shí)體類:存儲(chǔ)數(shù)據(jù),并通過它們提供的操作為這些數(shù)據(jù)提供有限的訪問。(例子:賬戶類,傳感器數(shù)據(jù)等)控制類:提供了實(shí)現(xiàn)一個(gè)用例對(duì)象的總體協(xié)調(diào)

6、。(例子:賬戶管理員類)應(yīng)用邏輯類:業(yè)務(wù)邏輯對(duì)象用于處理一個(gè)客戶端請(qǐng)求的特定業(yè)務(wù)的應(yīng)用邏輯,盡可能相互獨(dú)立變化的業(yè)務(wù)規(guī)則封裝(隱藏)到分離的業(yè)務(wù)邏輯對(duì)象中;(取款交易管理類)算法對(duì)象封裝問題域中使用的算法。(巡航器)服務(wù)對(duì)象為其他對(duì)象提供服務(wù),通常在面向?qū)ο蟮募軜?gòu)和應(yīng)用中提供。(目錄服務(wù))6. 軟件過程模型,每種模型的特點(diǎn)所謂軟件過程模型就是一種開發(fā)策略,這種策略針對(duì)軟件工程的各個(gè)階段提供了一套范形,使工程的進(jìn)展達(dá)到預(yù)期的目的。對(duì)一個(gè)軟件的開發(fā)無論其大小,我們都需要選擇一個(gè)合適的軟件過程模型,這種選擇基于項(xiàng)目和應(yīng)用的性質(zhì)、采用的方法、需要的控制,以及要交付的產(chǎn)品的特點(diǎn)。過程模型總分為五大類:1

7、.慣例過程模型。2.瀑布模型(又叫作生命周期模型)。3.增量過程模型: 包括增量模型、RAD模型。4.演化過程模型: 包括 原型開發(fā)模型、螺旋模型、協(xié)同開發(fā)模型。5.專用過程模型: 包括 基于構(gòu)件的開發(fā)模型、形式化方法模型、面向方面的軟件開發(fā)模型7. 設(shè)計(jì)模式 (應(yīng)用場(chǎng)景)設(shè)計(jì)模式描述了待解決的重復(fù)出現(xiàn)的設(shè)計(jì)問題,對(duì)問題的解決方案以及解決方案工作的上下文。因此,設(shè)計(jì)模式是一個(gè)壁壘的粒度更大的復(fù)用模式。設(shè)計(jì)模式主要分三個(gè)類型:創(chuàng)建型、結(jié)構(gòu)型和行為型。 創(chuàng)建型是指將對(duì)象實(shí)例化,這類模式都提供一個(gè)方法,將客戶從所需要的實(shí)例化的對(duì)象中解耦。其中策略模式使用場(chǎng)景:要達(dá)到某一個(gè)目的,根據(jù)具體的實(shí)際情況,選

8、擇合適的方法。適合于實(shí)現(xiàn)某一個(gè)功能有多種方案可以選擇的情景單件模式使用場(chǎng)景:用于創(chuàng)建獨(dú)一無二的,只能有一個(gè)實(shí)例的對(duì)象,單件模式給了我們一個(gè)全局的訪問點(diǎn),和全局變量一樣方便又沒有全局變量的缺點(diǎn)。工廠模式使用場(chǎng)景:創(chuàng)建新對(duì)象,且該對(duì)象需要被被封裝。(其中抽象工廠模式的應(yīng)用場(chǎng)景:定義一個(gè)負(fù)責(zé)創(chuàng)建一組產(chǎn)品的接口,這個(gè)接口內(nèi)的每一個(gè)方法都負(fù)責(zé)創(chuàng)建一個(gè)具體產(chǎn)品。抽象工廠的方法通常以工廠方法的方式實(shí)現(xiàn)。)結(jié)構(gòu)型:把類和對(duì)象組合到更大的結(jié)構(gòu)中其中裝飾者模式使用場(chǎng)景:增加行為到包裝對(duì)象上,在不改變對(duì)象自身的基礎(chǔ)上,在程序運(yùn)行期間給對(duì)象動(dòng)態(tài)的添加職責(zé),比如說點(diǎn)了一杯咖啡,添加其它調(diào)料的過程,或者類似于在炒菜的過程

9、中,加油加鹽加料酒的過程。代理模式使用場(chǎng)景:使用代理模式創(chuàng)建對(duì)象,讓代表對(duì)象控制某對(duì)象的訪問,被代理的對(duì)象可以是遠(yuǎn)程的對(duì)象,創(chuàng)建開銷大的對(duì)象或者需要安全控制的對(duì)象。外觀模式使用場(chǎng)景:通過實(shí)現(xiàn)一個(gè)提供更合理的接口的外觀類,可以將一個(gè)復(fù)雜的子系統(tǒng)變得容易使用,不僅簡(jiǎn)化了接口,也將客戶從組件中解耦適配器模式使用場(chǎng)景:包裝某些對(duì)象,讓它們的接口看起來不像自己而像是被的東西,將類的接口轉(zhuǎn)為想要的接口,以便實(shí)現(xiàn)不同的接口;就像你買了港版手機(jī),附帶的港版的充電器,你需要一個(gè)轉(zhuǎn)接頭才能使用,這個(gè)轉(zhuǎn)接頭的功能就類似于適配器。行為型:類和對(duì)象如何交互和分配職責(zé)其中模板模式使用場(chǎng)景:適用于算法的結(jié)構(gòu)保持不變,同時(shí)由

10、子類提供部分實(shí)現(xiàn)的情況。常被架構(gòu)師用于搭建項(xiàng)目的框架,架構(gòu)師定好了骨架,程序員繼承了骨架的結(jié)構(gòu)之后,負(fù)責(zé)往里面填空。命令模式使用場(chǎng)景:有時(shí)候需要向某些對(duì)象發(fā)送請(qǐng)求,但是并不知道請(qǐng)求的接受者是誰,也不知道請(qǐng)求的操作是什么,將對(duì)象的請(qǐng)求者從命令的執(zhí)行者中解耦。使用此模式的優(yōu)點(diǎn)還在于,command對(duì)象擁有更長(zhǎng)的生命周期,可以在程序運(yùn)行的任何時(shí)刻去調(diào)用這個(gè)方法。迭代器模式使用場(chǎng)景:需要順序訪問一個(gè)組合內(nèi)的多個(gè)對(duì)象的時(shí)候使用。觀察者模式使用場(chǎng)景:幫你的對(duì)象知悉現(xiàn)狀,不會(huì)錯(cuò)過該對(duì)象感興趣的事情,對(duì)象甚至可以在運(yùn)行時(shí)決定是否需要繼續(xù)被通知,就像你關(guān)注了京東商城某款產(chǎn)品的降價(jià)信息,當(dāng)該商品降價(jià),你就會(huì)通過短

11、信或者郵件獲得通知,而不用你每天都登陸去看了,這種情況下,京東商城就是主題(subject),作為客戶的你就是觀察者了。狀態(tài)模式使用場(chǎng)景:解決某些需要場(chǎng)景的問題。8. 面向?qū)ο笤O(shè)計(jì)原則設(shè)計(jì)原則名稱設(shè)計(jì)原則簡(jiǎn)介單一職責(zé)原則類的職責(zé)要單一,不能將太多的職責(zé)放在一個(gè)類中開閉原則軟件實(shí)體對(duì)擴(kuò)展是開放的,但對(duì)修改是關(guān)閉的,即在不修改一個(gè)軟件實(shí)體的基礎(chǔ)上去擴(kuò)展其功能里氏代換原則在軟件系統(tǒng)中,一個(gè)可以接受基類對(duì)象的地方必然可以接受一個(gè)子類對(duì)象依賴倒轉(zhuǎn)原則要針對(duì)抽象層編程,而不要針對(duì)具體類編程接口隔離原則使用多個(gè)專門的接口來取代一個(gè)統(tǒng)一的接口合成復(fù)用原則在系統(tǒng)中應(yīng)該盡量多使用組合和聚合關(guān)聯(lián)關(guān)系,盡量少使用甚至

12、不使用繼承關(guān)系迪米特法則一個(gè)軟件實(shí)體對(duì)其他實(shí)體的引用越少越好,或者說如果兩個(gè)類不必彼此直接通信,那么這兩個(gè)類就不應(yīng)當(dāng)發(fā)生直接的相互作用,而是通過引入一個(gè)第三者發(fā)生間接交互9. 4+1視圖邏輯視圖,設(shè)計(jì)的對(duì)象模型(使用面向?qū)ο蟮脑O(shè)計(jì)方法時(shí))。過程視圖,捕捉設(shè)計(jì)的并發(fā)和同步特征。物理視圖,描述了軟件到硬件的映射,反映了分布式特性。開發(fā)視圖,描述了在開發(fā)環(huán)境中軟件的靜態(tài)組織結(jié)構(gòu)。場(chǎng)景視圖。系統(tǒng)工程師首先接觸物理視圖,然后轉(zhuǎn)向進(jìn)程視圖;用戶、顧客、數(shù)據(jù)分析專家從邏輯視圖入手;項(xiàng)目經(jīng)理、軟件配置人員則從開發(fā)視圖來看待"41"視圖。10. 軟件質(zhì)量屬性有哪些可維護(hù)性:在軟件部署之后它能

13、被更改的程度??尚薷男裕涸谧畛蹰_發(fā)期間和最初開發(fā)之后軟件能夠被修改的程度??蓽y(cè)試性:軟件能被測(cè)試的程度??勺粉櫺裕好恳粋€(gè)階段的產(chǎn)品能夠被追蹤到上一個(gè)階段產(chǎn)品的程度??缮炜s性:在最初部署之后系統(tǒng)能夠成長(zhǎng)的程度??蓮?fù)用性:軟件能夠被復(fù)用的程度。性能:系統(tǒng)滿足其性能目標(biāo)的程度,例如吞吐量和響應(yīng)時(shí)間。安全性:系統(tǒng)抵御安全威脅的程度??捎眯裕合到y(tǒng)能夠解決系統(tǒng)失敗問題的程度。二、選擇題(20*2=40)1. 某小型企業(yè)欲開發(fā)一個(gè)基于WEB的考勤管理系統(tǒng),客戶對(duì)系統(tǒng)的要求不明確,在這種情況下,采用哪種模型?【極限編程】2. 若把整個(gè)軟件開發(fā)流程分為有效驗(yàn)證及評(píng)審構(gòu)成,那么這個(gè)是什么模型?【螺旋】3. 面向?qū)?/p>

14、象分析的任務(wù)不包括?【建模各對(duì)象的狀態(tài)】4. 某服務(wù)器軟件系統(tǒng),對(duì)可用性和性能要求較高,以下什么設(shè)計(jì)可提高系統(tǒng)的可用性?【主動(dòng)冗余】,提高性能?【隊(duì)列調(diào)度】5. 4+1視圖用來描述系統(tǒng)的體系結(jié)構(gòu),那么該系統(tǒng)中,系統(tǒng)工程師側(cè)重于?【部署視圖】,用戶側(cè)重【邏輯視圖】6. 下列那一階段,對(duì)軟件架構(gòu)的關(guān)注最多?【設(shè)計(jì)與實(shí)現(xiàn)】7. 采用面向?qū)ο笤O(shè)計(jì)的銀行信息系統(tǒng),賬戶類應(yīng)該設(shè)計(jì)為什么類?【實(shí)體類】,賬戶管理員?【控制類】8. 某游戲公司欲開發(fā)一款即時(shí)戰(zhàn)略游戲,設(shè)計(jì)目標(biāo)之一是能夠支持玩家各自創(chuàng)建地圖,采用什么風(fēng)格?【解釋器】9. 某軟件公司,服務(wù)端處理軟件其核心是對(duì)客戶端的消息的處理,包括HTTP,該公司架構(gòu)師該采用什么風(fēng)格?【管道過濾器】10. Windows操作系統(tǒng)的圖形界面,架構(gòu)風(fēng)格是?【黑板】11. JAVA語言倡導(dǎo)一次編

溫馨提示

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