软件体系结构第三章作业
1、層次系統(tǒng)結(jié)構(gòu)和基于消息的層次系統(tǒng)結(jié)構(gòu)有什么區(qū)別?
層次結(jié)構(gòu)將系統(tǒng)進(jìn)行分級(jí)組織,其組織思想是:在層次結(jié)構(gòu)中,每一層向上層提供服務(wù),并作為客戶向下層請(qǐng)求服務(wù)。分層系統(tǒng)的優(yōu)點(diǎn):支持基于抽象程度遞增的系統(tǒng)設(shè)計(jì);支持功能增強(qiáng);支持重用。分層系統(tǒng)的缺點(diǎn):并不是每個(gè)系統(tǒng)都可以很容易的劃分為分層的模式,甚至即使是層次化的,出于性能的考慮,也不得不吧一些低及或高級(jí)的功能綜合起來;很難找到一個(gè)合適的、正確的層次抽象方法。
消息總線是系統(tǒng)的連接件、負(fù)責(zé)消息的分派、傳遞和過濾以及處理結(jié)果的返回。消息是構(gòu)件之間通信的唯一方式。由于構(gòu)件通過總線進(jìn)行連接,并不要求各個(gè)構(gòu)件具有相同的地址空間或局限在一臺(tái)機(jī)器上,因此該風(fēng)格可以很好的刻畫分布式開發(fā)系統(tǒng),以及CORBA.DCOM和EJB規(guī)范的系統(tǒng)。
2、試分析和比較B/S,二層C/S和三層C/S,指出各自的優(yōu)點(diǎn)和缺點(diǎn)。
二層C/S體系結(jié)構(gòu)將應(yīng)用一分為二,服務(wù)器負(fù)責(zé)數(shù)據(jù)管理,客戶機(jī)完成與用戶的交互任務(wù)。優(yōu)點(diǎn)(1)C/S體系結(jié)構(gòu)具有強(qiáng)大的數(shù)據(jù)操作的事務(wù)處理能力,模型思想簡(jiǎn)單,易于人們理解和接受。(2)對(duì)軟硬件的變化有極大的適應(yīng)性和靈活性,易于對(duì)系統(tǒng)進(jìn)行擴(kuò)充和縮小。(3)系統(tǒng)中的功能構(gòu)建充分隔離,節(jié)約大量費(fèi)用。缺點(diǎn):(1)開發(fā)成本較高。(2)客戶端程序設(shè)計(jì)復(fù)雜(3)信息內(nèi)容和形式單一(4)用戶界面風(fēng)格不一,使用繁雜不易推廣。(5)軟件移植困難(6)軟件維護(hù)和升級(jí)困難(7)新技術(shù)不能輕易應(yīng)用。三層CS在上面的基礎(chǔ)上進(jìn)行了改造,并增加了一個(gè)服務(wù)器,其優(yōu)點(diǎn):(1)允許合理的劃分三層結(jié)構(gòu)的功能,能提高系統(tǒng)和軟件的可維護(hù)性和可擴(kuò)展性。(2)具有良好的可升級(jí)性和開放性。(3)應(yīng)用的各層可以并行開發(fā),可以選擇各自最適合的開發(fā)語言。(4)為嚴(yán)格的安全管理奠定了堅(jiān)實(shí)的基礎(chǔ)。
B/S風(fēng)格就是上述三層應(yīng)用結(jié)構(gòu)的一種實(shí)現(xiàn)方式,其具體結(jié)構(gòu)為:瀏覽器/Web服務(wù)器/數(shù)據(jù)庫服務(wù)器。優(yōu)點(diǎn)(1)基于B/S體系結(jié)構(gòu)的軟件,系統(tǒng)安裝,修改和維護(hù)全在服務(wù)器端解決。(2)提供了異種機(jī),異種網(wǎng),異種應(yīng)用服務(wù)的聯(lián)機(jī),聯(lián)網(wǎng),同意服務(wù)的最現(xiàn)實(shí)的開放性基礎(chǔ)。缺點(diǎn)(1)缺乏對(duì)動(dòng)態(tài)頁面的支持能力,沒有集成有效的數(shù)據(jù)庫處理能力。(2)在數(shù)據(jù)查詢等響應(yīng)速度上,要遠(yuǎn)遠(yuǎn)低于C/S體系結(jié)構(gòu)。(3)數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動(dòng)態(tài)交互性不強(qiáng),不利于在線事務(wù)處理應(yīng)用。
3、組織或參與一個(gè)采用B/S和C/S混合體系結(jié)構(gòu)的軟件項(xiàng)目的開發(fā),總結(jié)開發(fā)經(jīng)驗(yàn)。
首先,開發(fā)者根據(jù)一定的原則,將系統(tǒng)的所有子功能分類,決定哪些子功能適合采用C/S,哪些適合采用B/S。適合采用C/S的子功能應(yīng)具備以下特點(diǎn):1安全性要求高;2要求具有較強(qiáng)的交互性;3使用范圍小,地點(diǎn)固定;4要求處理大量數(shù)據(jù)。例如,倉庫管理系統(tǒng)中的入庫單、領(lǐng)料單的輸入功能,財(cái)務(wù)系統(tǒng)中的憑證輸入功能等等。而適合采用B/S的子功能應(yīng)具備以下特點(diǎn):1使用范圍廣,地點(diǎn)靈活;2功能變動(dòng)頻繁;3安全性、交互性要求不同。例如:企業(yè)內(nèi)部信息發(fā)布功能,意見箱輸入功能,公司財(cái)務(wù)分析表的查詢功能,總裁決策支持系統(tǒng)中的查詢功能等等。
相對(duì)于單獨(dú)采用C/S或B/S,這種方案的優(yōu)點(diǎn)在于:1保證敏感數(shù)據(jù)的安全性,特別是對(duì)數(shù)據(jù)庫的修改和新增記錄加強(qiáng)了控制;2經(jīng)濟(jì)有效地利用企業(yè)內(nèi)部計(jì)算機(jī)的資源,簡(jiǎn)化了一部分可以簡(jiǎn)化的客戶端;3既保證了復(fù)雜功能的交互性,又保證了一般功能的易用與統(tǒng)一;4系統(tǒng)維護(hù)簡(jiǎn)便,布局合理;5網(wǎng)絡(luò)效率最高。
如果系統(tǒng)開發(fā)者在系統(tǒng)設(shè)計(jì)階段決定采用這種C/S與B/S相結(jié)合的模式,那么在系統(tǒng)開發(fā)生命周期的如下各個(gè)階段相對(duì)這種新模式都應(yīng)有所響應(yīng)。
在系統(tǒng)設(shè)計(jì)階段主要考慮的是MIS系統(tǒng)平臺(tái)選擇問題。在詳細(xì)設(shè)計(jì)階段,系統(tǒng)開發(fā)者需要根據(jù)企業(yè)自身的業(yè)務(wù)特點(diǎn),以及一定的選擇原則,來決定各個(gè)子功能采用哪一種模式并在系統(tǒng)說明書上分別注明。在編碼設(shè)計(jì)階段,系統(tǒng)開發(fā)者需要針對(duì)采用不同模式的子功能,選用不同的編碼方式(例如:C/S可以采用VB編程環(huán)境,而B/S采用ASP方法),然后編譯生成不同的客戶應(yīng)用及Web服務(wù)程序。在安裝調(diào)試階段,其特點(diǎn)主要體現(xiàn)在系統(tǒng)的物理結(jié)構(gòu)上,即特定的客戶應(yīng)用程序?qū)⒈话惭b在特定的使用者的客戶端上,Web服務(wù)程序需要被安裝在Web服務(wù)器上,而每個(gè)客戶端上都將被安裝上瀏覽器,同時(shí),客戶應(yīng)用的使用者必須接受一定的培訓(xùn)。在軟件維護(hù)階段,針對(duì)不同模式的子功能應(yīng)采取不同維護(hù)方式。
4、組織或參與一個(gè)采用三層體系結(jié)構(gòu)的軟件項(xiàng)目的開發(fā),總結(jié)開發(fā)經(jīng)驗(yàn)。
三層體系結(jié)構(gòu)包括:用戶界面表示層(USL) 、業(yè)務(wù)邏輯層(BLL) 、數(shù)據(jù)訪問層(DAL) 。各層的作用 :1:數(shù)據(jù)訪問層:主要是對(duì)原始數(shù)據(jù)(數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式)的操作層,而不是指原始數(shù)據(jù),也就是說,是對(duì)數(shù)據(jù)的操作,而不是數(shù)據(jù)庫,具體為業(yè)務(wù)邏輯層或表示層提供數(shù)據(jù)服務(wù)。2:業(yè)務(wù)邏輯層:主要是針對(duì)具體的問題的操作,也可以理解成對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理,如果說數(shù)據(jù)層是積木,那邏輯層就是對(duì)這些積木的搭建。3:表示層:主要表示W(wǎng)EB方式,也可以表示成WINFORM方式,WEB方式也可以表現(xiàn)成:aspx, 如果邏輯層相當(dāng)強(qiáng)大和完善,無論表現(xiàn)層如何定義和更改,邏輯層都能完善地提供服務(wù)。
三層是指邏輯上的三層,即使這三個(gè)層放置到一臺(tái)機(jī)器上。 三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗(yàn)等工作放到了中間層進(jìn)行處理。在保證客戶端功能的前提下,為用戶提供一個(gè)簡(jiǎn)潔的界面。這意味著如果需要修改應(yīng)用程序代碼,只需要對(duì)中間層應(yīng)用服務(wù)器進(jìn)行修改,而不用修改成千上萬的客戶端應(yīng)用程序?!爸虚g業(yè)務(wù)層”的用途有很多,例如:驗(yàn)證用戶輸入數(shù)據(jù)、緩存從數(shù)據(jù)庫中讀取的數(shù)據(jù)等等….但是,“中間業(yè)務(wù)層”的實(shí)際目的是將“數(shù)據(jù)訪問層”的最基礎(chǔ)的存儲(chǔ)邏輯組合起來,形成一種業(yè)務(wù)規(guī)則。要保證“數(shù)據(jù)訪問層”的中的函數(shù)功能的原子性!即最小性和不可再分?!皵?shù)據(jù)訪問層”只管負(fù)責(zé)存儲(chǔ)或讀取數(shù)據(jù)就可以了。
我們用三層結(jié)構(gòu)主要是使項(xiàng)目結(jié)構(gòu)更清楚,分工更明確,有利于后期的維護(hù)和升級(jí)。它未必會(huì)提升性能,因?yàn)楫?dāng)子程序模塊未執(zhí)行結(jié)束時(shí),主程序模塊只能處于等待狀態(tài)。這說明將應(yīng)用程序劃分層次,會(huì)帶來其執(zhí)行速度上的一些損失。但從團(tuán)隊(duì)開發(fā)效率角度上來講卻可以感受到大不相同的效果。需要說明一下,三層結(jié)構(gòu)不是.NET的專利,也不是專門用在數(shù)據(jù)庫上的技術(shù)。它是一種更加普適的架構(gòu)設(shè)計(jì)理念。此種架構(gòu)要在數(shù)據(jù)庫設(shè)計(jì)上注意表之間的關(guān)系,盡力滿足主與子的關(guān)系。在功能上對(duì)用戶要有一定的限制,不要表現(xiàn)在對(duì)于子表的刪除操作一定要慎重,以免造成主表與子表的數(shù)據(jù)在邏輯上出現(xiàn)的主表的外鍵在子表中沒有相對(duì)應(yīng)的值。
“三層結(jié)構(gòu)”開發(fā)模式,入門難度夠高,難于理解和學(xué)習(xí)。這是對(duì)于初學(xué)程序設(shè)計(jì)的人來說的。以這種模式開發(fā)出來的軟件,代碼量通常要稍稍多一些。這往往會(huì)令初學(xué)者淹沒在茫茫的代碼之中。望之生畏,對(duì)其產(chǎn)生反感,也是可以理解的。
5、SIS和DSSA分別用在哪些場(chǎng)合?
答:1.DSSA只對(duì)某一個(gè) 領(lǐng)域進(jìn)行設(shè)計(jì)專家知識(shí)的提取,存儲(chǔ)和組織,但可以同時(shí)使用多種體系結(jié)構(gòu)風(fēng)格;而在某個(gè)體系結(jié)構(gòu)風(fēng)格中進(jìn)行體系結(jié)構(gòu)設(shè)計(jì)專家知識(shí)的組織時(shí),可以將提取的公共結(jié)構(gòu)和設(shè)計(jì)方法擴(kuò)展到多個(gè)領(lǐng)域。
2.DSSA的特定領(lǐng)域參考體系結(jié)構(gòu)通常選用一個(gè)或多個(gè)適合所研究領(lǐng)域的體系結(jié)構(gòu)風(fēng)格,并設(shè)計(jì)一個(gè)該領(lǐng)域?qū)S玫捏w系結(jié)構(gòu)分析設(shè)計(jì)工具。
3.體系結(jié)構(gòu)風(fēng)格的定義和該風(fēng)格應(yīng)用的領(lǐng)域是直交的,提取的設(shè)計(jì)知識(shí)比用DSSA提取的設(shè)計(jì)專家知識(shí)的應(yīng)用范圍要廣。
4.DSSA和體系結(jié)構(gòu)風(fēng)格是互為互補(bǔ)的兩項(xiàng)技術(shù)。
6、在軟件開發(fā)中,采用異構(gòu)結(jié)構(gòu)有什么好處,其負(fù)面影響有哪些?
1).結(jié)構(gòu)有不同的處理能力的強(qiáng)項(xiàng)和弱點(diǎn),一個(gè)系統(tǒng)的體系結(jié)構(gòu)應(yīng)該根據(jù)實(shí)際需要進(jìn)行選擇,以解決實(shí)際問題。
2).軟件包,框架,通信以及其他一些體系機(jī)構(gòu)上的問題,目前存在者多中標(biāo)準(zhǔn)。即使再某一段時(shí)間內(nèi)某一標(biāo)準(zhǔn)占據(jù)著統(tǒng)治地位,但變動(dòng)最終是絕對(duì)的。
3).工作中,我們總會(huì)遇到一些遺留下的代碼,它們?nèi)杂行в?#xff0c;但是卻與新系統(tǒng)有某種程度上的不協(xié)調(diào)。然而在很多場(chǎng)合,將技術(shù)與經(jīng)濟(jì)綜合進(jìn)行考慮時(shí),總是決定不重寫它們。
4).在某一單位中,規(guī)定了共享共同的軟件包或相互關(guān)系的一些標(biāo)準(zhǔn),仍會(huì)存在解釋或表示習(xí)慣上的不同。
負(fù)面影響:大多數(shù)應(yīng)用程序只使用10%的代碼實(shí)現(xiàn)系統(tǒng)的公開功能,剩下90%的代碼完成系統(tǒng)管理功能:輸入和輸出,用戶界面,文本編輯,基本圖表,標(biāo)準(zhǔn)對(duì)話框,通信,數(shù)據(jù)確認(rèn)和旁聽追蹤,特定領(lǐng)域的基本定義等。
總結(jié)
以上是生活随笔為你收集整理的软件体系结构第三章作业的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rust房屋建造蓝图_都说蓝图,而不是白
- 下一篇: design.js