軟件體系結(jié)構(gòu)范文

時(shí)間:2023-03-24 13:15:30

導(dǎo)語(yǔ):如何才能寫(xiě)好一篇軟件體系結(jié)構(gòu),這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

篇1

關(guān)鍵詞:軟件體系結(jié)構(gòu);重用;模式

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)35-2519-02

A Comprehensive Introduction to the Study of Software Architecture

WANG Qiang

(AnHui Technical College of Mechanical and Electrical Engineering, Wuhu 241000, China)

Abstract: Software architecture is the hotspot in software engineering research. This article discusses about the purpose and current situation of software architecture researching.

Key words: software architecture; reuse; mode

1 引言

隨著計(jì)算機(jī)技術(shù)的發(fā)展和應(yīng)用的不斷深入,軟件系統(tǒng)的規(guī)模和復(fù)雜度日益增加,在軟件設(shè)計(jì)過(guò)程中人們所面臨的問(wèn)題不僅僅是考慮軟件系統(tǒng)的功能問(wèn)題,而是面臨要解決更難處理的可修改性,性能,可靠性等非功能性問(wèn)題。特別是80年代以來(lái),對(duì)軟件適應(yīng)變更的要求越來(lái)越高,所以對(duì)軟件整體的設(shè)計(jì)已經(jīng)超過(guò)了算法和數(shù)據(jù)結(jié)構(gòu),成為系統(tǒng)開(kāi)發(fā)關(guān)注的主要問(wèn)題。軟件開(kāi)發(fā)最大的風(fēng)險(xiǎn)來(lái)自需求變更,但一蹴而就搞定需求不現(xiàn)實(shí),好的體系結(jié)構(gòu)是易改動(dòng)的基礎(chǔ)。 能否復(fù)用很重要,設(shè)計(jì)復(fù)用比代碼復(fù)用更有用更難。因此,研究軟件體系結(jié)構(gòu)研究的能提高軟件生產(chǎn)率和簡(jiǎn)化維護(hù)。提高軟件生產(chǎn)率的關(guān)鍵在于軟件相關(guān)部分的復(fù)用,而簡(jiǎn)化維護(hù)的關(guān)鍵是減少軟件理解的成本和提高軟件的質(zhì)量,這就是研究軟件體系結(jié)構(gòu)的目的。

2 軟件體系結(jié)構(gòu)的概念

軟件系統(tǒng)的規(guī)模在迅速增大的同時(shí),軟件開(kāi)發(fā)方法也經(jīng)歷了一系列的變革.在此過(guò)程中,軟件體系結(jié)構(gòu)也由最初模糊的概念發(fā)展到一個(gè)漸趨成熟的技術(shù)。

1) 1992年P(guān)erry 和Wo1f 在他們?cè)缙陉P(guān)于軟件體系結(jié)構(gòu)的論文中指出:軟件體系結(jié)構(gòu)是一組具有一定形式的結(jié)構(gòu)化元素或稱為設(shè)計(jì)元素組成。

2) 1993年Shaw 和Garlan 認(rèn)為軟件體系結(jié)構(gòu)是軟件設(shè)計(jì)過(guò)程中的一個(gè)層次,這一層次超越計(jì)算過(guò)程中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。

3) 1994年Hayes Roth 則認(rèn)為軟件體系結(jié)構(gòu)是一個(gè)抽象的系統(tǒng)規(guī)范,主要包括用其行為來(lái)描述的功能構(gòu)件和構(gòu)件之間的相互連接、接口和關(guān)系。

4) 1995年Garlan 和Perry 在IEEE 軟件工程學(xué)報(bào)上又采用如下的定義:軟件體系結(jié)構(gòu)是一個(gè)程序各構(gòu)件的結(jié)構(gòu)、它們之間的相互關(guān)系以及進(jìn)行設(shè)計(jì)的原則和隨時(shí)間進(jìn)化的指導(dǎo)方針。

5) 1996年Boehm 和他的學(xué)生提出,一個(gè)軟件體系結(jié)構(gòu)包括一個(gè)軟件和系統(tǒng)構(gòu)件,互聯(lián)及約束的集合。

6) 1997年Ctements 和Kazman在《使用軟件體系結(jié)構(gòu)》一書(shū)中給出如下的定義:一個(gè)程序或計(jì)算機(jī)系統(tǒng)的軟件體系結(jié)構(gòu)包括一個(gè)或一組軟件構(gòu)件、軟件構(gòu)件的外部的可見(jiàn)特性及其相互關(guān)系。

3 軟件體系結(jié)構(gòu)的現(xiàn)狀

下面介紹幾種常見(jiàn)的體系結(jié)構(gòu)。

模型-視圖-控制結(jié)構(gòu)是交互式應(yīng)用程序廣泛使用的一種體系結(jié)構(gòu)。它有效地在存儲(chǔ)和展示數(shù)據(jù)的對(duì)象中區(qū)分功能模塊以降低它們之間的連接度,這種體系結(jié)構(gòu)將傳統(tǒng)的輸入、處理和輸入模型轉(zhuǎn)化為圖形顯示的用戶交互模型,或者換一種說(shuō)法,是多層次的Web商業(yè)應(yīng)用;MVC體系結(jié)構(gòu)具有三個(gè)層面:模型(Model)、視圖(View)和控制(Controller),每個(gè)層面有其各自的功能作用。

模型層負(fù)責(zé)表達(dá)和訪問(wèn)商業(yè)數(shù)據(jù),執(zhí)行商業(yè)邏輯和操作。也就是說(shuō),這一層就是現(xiàn)實(shí)生活中功能的軟件模擬;在模型層變化的時(shí)候,它將通知視圖層并提供后者訪問(wèn)自身狀態(tài)的能力,同時(shí)控制層也可以訪問(wèn)其功能函數(shù)以完成相關(guān)的任務(wù)。

視圖層負(fù)責(zé)顯示模型層的內(nèi)容。它從模型層取得數(shù)據(jù)并指定這些數(shù)據(jù)如何被顯示出來(lái)。在模型層變化的時(shí)候,它將自動(dòng)更新。另外視圖層也會(huì)將用戶的輸入傳送給控制器??刂茖迂?fù)責(zé)定義應(yīng)用程序的行為。它可以分派用戶的請(qǐng)求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時(shí)它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作;在一個(gè)圖形界面中,常見(jiàn)的用戶輸入包括點(diǎn)擊按鈕和菜單選擇。在Web應(yīng)用中,它包括對(duì)Web層的HTTP GET和POST的請(qǐng)求;控制層可以基于用戶的交互和模型層的操作結(jié)果來(lái)選擇下一個(gè)可以顯示的視圖,一個(gè)應(yīng)用程序通常會(huì)基于一組相關(guān)功能設(shè)定一個(gè)控制層的模塊,甚至一些應(yīng)用程序會(huì)根據(jù)不同的用戶類型具有不同的控制層設(shè)定,這主要是由于不同用戶的視圖交互和選擇也是不同的。

在模型層、視圖層和控制層之間劃分責(zé)任可以減少代碼的重復(fù)度,并使應(yīng)用程序維護(hù)起來(lái)更簡(jiǎn)單。同時(shí)由于數(shù)據(jù)和商務(wù)邏輯的分開(kāi),在新的數(shù)據(jù)源加入和數(shù)據(jù)顯示變化的時(shí)候,數(shù)據(jù)處理也會(huì)變得更簡(jiǎn)單。

軟件體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。它反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語(yǔ)義特性,并指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效地組織成一個(gè)完整的系統(tǒng)。按這種方式理解,軟件體系結(jié)構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語(yǔ)表和一組指導(dǎo)構(gòu)件系統(tǒng)的規(guī)則。

對(duì)軟件體系結(jié)構(gòu)風(fēng)格的研究和實(shí)踐促進(jìn)了對(duì)設(shè)計(jì)的復(fù)用,一些經(jīng)過(guò)實(shí)踐證實(shí)的解決方案也可以可靠地用于解決新的問(wèn)題。體系結(jié)構(gòu)風(fēng)格的不變部分使不同的系統(tǒng)可以共享同一個(gè)實(shí)現(xiàn)代碼。只要系統(tǒng)是使用常用的、規(guī)范的方法來(lái)組織,就可使別的設(shè)計(jì)者很容易地理解系統(tǒng)的體系結(jié)構(gòu)。例如,如果某人把系統(tǒng)描述為"客戶/服務(wù)器"模式,則不必給出設(shè)計(jì)細(xì)節(jié),我們立刻就會(huì)明白系統(tǒng)是如何組織和工作的。

下面是Garlan和Shaw對(duì)通用體系結(jié)構(gòu)風(fēng)格的分類:

1) 數(shù)據(jù)流風(fēng)格:批處理序列;管道/過(guò)濾器

2) 調(diào)用/返回風(fēng)格:主程序/子程序;面向?qū)ο箫L(fēng)格;層次結(jié)構(gòu)

3) 獨(dú)立構(gòu)件風(fēng)格:進(jìn)程通訊;事件系統(tǒng)

4) 虛擬機(jī)風(fēng)格:解釋器;基于規(guī)則的系統(tǒng)

5) 倉(cāng)庫(kù)風(fēng)格:數(shù)據(jù)庫(kù)系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)

設(shè)計(jì)模式使人們可以更簡(jiǎn)單方便地復(fù)用成功地設(shè)計(jì)和體系架構(gòu)。將以證實(shí)的技術(shù)表述成設(shè)計(jì)模式也會(huì)使新系統(tǒng)開(kāi)發(fā)者更容易理解其設(shè)計(jì)思路。設(shè)計(jì)模式幫助你做出有利于系統(tǒng)復(fù)用的選擇,避免設(shè)計(jì)損害了系統(tǒng)復(fù)用性。通過(guò)提供一個(gè)顯示類和對(duì)象作用關(guān)系以及它們之間潛在聯(lián)系的說(shuō)明規(guī)范,設(shè)計(jì)模式甚至能夠提高已有系統(tǒng)的文檔管理和系統(tǒng)維護(hù)的有效性。簡(jiǎn)而言之,設(shè)計(jì)模式可以幫助設(shè)計(jì)者更快更好地完成系統(tǒng)設(shè)計(jì)。

一個(gè)設(shè)計(jì)模式描述了對(duì)于特定設(shè)計(jì)問(wèn)題被驗(yàn)證的解決方案,它綜合了所有開(kāi)發(fā)者對(duì)這個(gè)問(wèn)題所在領(lǐng)域的知識(shí)和見(jiàn)解;同時(shí)也是對(duì)于常見(jiàn)問(wèn)題的可重用方案,它們一般適用于單個(gè)問(wèn)題,但是組織在一起就可以提供整個(gè)企業(yè)系統(tǒng)的解決方案。J2EE平臺(tái)就用到很多設(shè)計(jì)模式,列舉如下:

1) 前控制器。

2) 控制器

3) 視圖

4) 視圖幫助

5) 會(huì)話面

6) 數(shù)據(jù)訪問(wèn)對(duì)象

7) 值對(duì)象或傳輸對(duì)象

8) 截取過(guò)濾器

隨著軟件體系結(jié)構(gòu)的不斷發(fā)展,出現(xiàn)了一種新型的體系結(jié)構(gòu)即SOA。SOA被稱為軟件體系結(jié)構(gòu)的劃時(shí)代革命。

SOA是一種結(jié)構(gòu)模型,它可以根據(jù)需求通過(guò)網(wǎng)絡(luò)對(duì)松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件交互的人為依賴性。SOA的關(guān)鍵是“服務(wù)”的概念,W3C將服務(wù)定義為:“服務(wù)提供者完成一組工作,為服務(wù)使用者交付所需的最終結(jié)果。最終結(jié)果通常會(huì)使使用者的狀態(tài)發(fā)生變化,但也可能使提供者的狀態(tài)改變,或者雙方都產(chǎn)生變化”。將SOA定義為:“本質(zhì)上是服務(wù)的集合。服務(wù)間彼此通信,這種通信可能是簡(jiǎn)單的數(shù)據(jù)傳送,也可能是兩個(gè)或更多的服務(wù)協(xié)調(diào)進(jìn)行某些活動(dòng)。服務(wù)間需要某些方法進(jìn)行連接。所謂服務(wù)就是精確定義、封裝完善、獨(dú)立于其他服務(wù)所處環(huán)境和狀態(tài)的函數(shù)。” 將SOA定義為:“按需連接資源的系統(tǒng)。在SOA中,資源被作為可通過(guò)標(biāo)準(zhǔn)方式訪問(wèn)的獨(dú)立服務(wù),提供給網(wǎng)絡(luò)中的其他成員。與傳統(tǒng)的系統(tǒng)結(jié)構(gòu)相比,SOA規(guī)定了資源間更為靈活的松散耦合關(guān)系?!?Gartner則將SOA描述為:“客戶端/服務(wù)器的軟件設(shè)計(jì)方法,一項(xiàng)應(yīng)用由軟件服務(wù)和軟件服務(wù)使用者組成……SOA與大多數(shù)通用的客戶端/服務(wù)器模型的不同之處,在于它著重強(qiáng)調(diào)軟件組件的松散耦合,并使用獨(dú)立的標(biāo)準(zhǔn)接口?!?Gartner相信BPM和SOA的結(jié)合對(duì)所有類型的應(yīng)用集成都大有助益――“SOA極大的得益于BPM技術(shù)和方法論,但是SOA面臨的真正問(wèn)題是確立正確的企業(yè)意識(shí),即:強(qiáng)化戰(zhàn)略化的SOA計(jì)劃(針對(duì)供應(yīng)和使用)并鼓勵(lì)重用?!彪m然不同廠商或個(gè)人對(duì)SOA有著不同的理解,但是我們?nèi)匀豢梢詮纳鲜龅亩x中看到SOA的幾個(gè)關(guān)鍵特性:一種粗粒度、松耦合服務(wù)結(jié)構(gòu),服務(wù)之間通過(guò)簡(jiǎn)單、精確定義接口進(jìn)行通訊,不涉及底層編程接口和通訊模型。

4 軟件體系結(jié)構(gòu)存在的不足

盡管軟件體系結(jié)構(gòu)研究領(lǐng)域取得了若干成果,但在應(yīng)用方面,軟件體系結(jié)構(gòu)仍然有很多可以改進(jìn)的地方。N. Medvovonic認(rèn)為,目前對(duì)軟件體系結(jié)構(gòu)的理解還僅限于直觀、或當(dāng)作稀奇事、或當(dāng)作民間傳說(shuō);語(yǔ)義豐富但不嚴(yán)謹(jǐn)。體系結(jié)構(gòu)似乎沒(méi)有解決實(shí)際問(wèn)題。由此可見(jiàn),若要有效地指導(dǎo)軟件工程實(shí)踐、為軟件開(kāi)發(fā)提供一個(gè)好的結(jié)構(gòu)及其設(shè)計(jì)結(jié)構(gòu)的指導(dǎo)原則,軟件體系結(jié)構(gòu)研究還有若干問(wèn)題需要解決。比如缺乏統(tǒng)一的軟件體系結(jié)構(gòu)的概念,各種軟件體系結(jié)構(gòu)的不易操作性,ADL繁多,缺乏統(tǒng)一的ADL支持等等。

5 前景展望

目前,軟件體系結(jié)構(gòu)領(lǐng)域研究非常活躍。隨著研究的不斷深入,軟件復(fù)用的層次越來(lái)越高,人們?cè)陂_(kāi)發(fā)新的系統(tǒng)時(shí)不必總是重復(fù)別人已經(jīng)創(chuàng)造的東西,而是可在軟件開(kāi)發(fā)中復(fù)用已有成果,這樣可以把注意力投入到軟件新增功能上,提高軟件開(kāi)發(fā)效率。

針對(duì)軟件體系結(jié)構(gòu)發(fā)展趨勢(shì),Clements預(yù)測(cè)在未來(lái)的5~10年內(nèi)軟件體系結(jié)構(gòu)研究將圍繞如下5個(gè)方向展開(kāi):體系結(jié)構(gòu)創(chuàng)建與選擇;體系結(jié)構(gòu)表示;體系結(jié)構(gòu)分析;基于體系結(jié)構(gòu)開(kāi)發(fā);體系結(jié)構(gòu)演化.而Perry在IFIP 2000 年世界計(jì)算機(jī)大會(huì)主題演講中認(rèn)為,最為重要的3個(gè)研究方向是:體系結(jié)構(gòu)風(fēng)格、體系結(jié)構(gòu)連接件和動(dòng)態(tài)體系結(jié)構(gòu)。

參考文獻(xiàn):

[1] 王霞俊.淺談軟件體系結(jié)構(gòu)[J].常州輕工職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007(1).

[2] 鄧倫丹,羅丹,汪偉.幾種主要的軟件體系結(jié)構(gòu)風(fēng)格的分析[J].科技信息,2007(32):102.

[3] 孫昌愛(ài),金茂忠,劉超.軟件體系結(jié)構(gòu)研究綜述[J].軟件學(xué)報(bào),2002(13)

[4] 秦建超,杜友福,孟珍偉.淺談軟件體系結(jié)構(gòu)科技信息[J],2007(2)

[5] Michale Kircher.面向模式的軟件體系結(jié)構(gòu)[M].1版.北京:機(jī)械工業(yè)出版社,2005:5-6.

篇2

【 關(guān)鍵詞 】 軟件體系結(jié)構(gòu);瀏覽器引擎

Research of Hybrid Web/Native Software Architecture

Liu Lei Liu Qiang

(Guangdong Certificate Authority Co., Ltd GuangdongGuangzhou 510100)

【 Abstract 】 Hybrid Web/Native software architecture was proposed to satisfy the complex and variable business need of CA operators. The architecture integrates Web browser engine with native client software. With this architecture, client software owns the full control of hardware, while it is as flexible as a Web application. The UI and business flow of client software can be dynamically modified by Web server side code in real time.

【 Keywords 】 software architecture; browser engine

1 引言

隨著數(shù)字證書(shū)應(yīng)用的不斷發(fā)展,數(shù)字證書(shū)運(yùn)營(yíng)商對(duì)業(yè)務(wù)靈活性的需求不斷增加。目前主流數(shù)字證書(shū)客戶端軟件基本屬于純粹的本地客戶端軟件,雖然經(jīng)過(guò)多年的不斷開(kāi)發(fā)完善,功能已經(jīng)基本成熟、穩(wěn)定,但是隨著客戶端軟件部署數(shù)量的不斷增加以及地域范圍的不斷擴(kuò)大,當(dāng)數(shù)字證書(shū)運(yùn)營(yíng)商的業(yè)務(wù)管理規(guī)則需要調(diào)整時(shí),客戶端軟件的更新維護(hù)成本將會(huì)很高。更重要的是,有的業(yè)務(wù)規(guī)則調(diào)整之前需要做到所有的本地客戶端軟件都統(tǒng)一更新到一個(gè)最新的版本,否則將會(huì)導(dǎo)致用戶體驗(yàn)不一致問(wèn)題的發(fā)生。數(shù)字證書(shū)運(yùn)營(yíng)商迫切需要一種統(tǒng)一、快速、準(zhǔn)確控制客戶端軟件功能的技術(shù)解決方案。

基于Web的應(yīng)用雖然具有很高的靈活性以滿足這種需求,但由于主流瀏覽器在安全方面的限制,使得在涉及硬件設(shè)備管理的領(lǐng)域,Web應(yīng)用常常存在各種使用上的困難。以IE瀏覽器為例,雖然可以通過(guò)開(kāi)發(fā)ActiveX控件的方式來(lái)使得Web頁(yè)面具有訪問(wèn)本地?cái)?shù)字證書(shū)硬件設(shè)備的能力,但是各種不同的IE安全設(shè)置和操作系統(tǒng)安全設(shè)置常常使得控件無(wú)法正常使用,這大大增加了運(yùn)營(yíng)商的維護(hù)工作量。另一方面,傳統(tǒng)的本地客戶端軟件,雖然具有完全控制硬件設(shè)備的權(quán)限,但是在靈活性上還遠(yuǎn)遠(yuǎn)不如像Web頁(yè)面那樣可以通過(guò)服務(wù)器端代碼動(dòng)態(tài)實(shí)時(shí)為客戶端生成用戶界面和業(yè)務(wù)流程。

本文提出了一種Web/Native混合軟件體系結(jié)構(gòu),該體系將Web瀏覽器引擎集成到本地客戶端軟件中,實(shí)現(xiàn)了在客戶端軟件中通過(guò)HTML、CSS和JavaScript來(lái)控制用戶界面和業(yè)務(wù)流程,底層則可以直接訪問(wèn)硬件設(shè)備,實(shí)現(xiàn)對(duì)設(shè)備的完全控制。

2 體系結(jié)構(gòu)設(shè)計(jì)

Qt是一套開(kāi)放源代碼的跨平臺(tái)C++開(kāi)發(fā)框架,為了將來(lái)客戶端軟件可以順利移植到各種基于嵌入式操作系統(tǒng)的車(chē)載或手持移動(dòng)設(shè)備上,選擇Qt作為體系結(jié)構(gòu)的技術(shù)實(shí)現(xiàn)框架。Web瀏覽器引擎采用了開(kāi)放源代碼的WebKit,該引擎目前已經(jīng)被各種商用瀏覽器廣泛使用,例如蘋(píng)果Safari、Google Chrome等。

基于Qt和WebKit的Web/Native混合軟件體系結(jié)構(gòu)如圖1所示。最上層的Application層將完全使用網(wǎng)頁(yè)開(kāi)發(fā)語(yǔ)言來(lái)進(jìn)行描述(HTML/CSS/JS),可以通過(guò)網(wǎng)頁(yè)開(kāi)發(fā)工具來(lái)進(jìn)行開(kāi)發(fā),這使得數(shù)量眾多的網(wǎng)頁(yè)開(kāi)發(fā)人員可以參與到客戶端軟件開(kāi)發(fā)中,在某種程度上降低了客戶端軟件開(kāi)發(fā)的人力成本。在Application層之下,是WebKit瀏覽器引擎,用于對(duì)網(wǎng)頁(yè)代碼進(jìn)行解析。在WebKit之下,則是Qt提供的對(duì)網(wǎng)絡(luò)、圖形界面等方面的開(kāi)發(fā)庫(kù),這些庫(kù)都通過(guò)C++代碼來(lái)進(jìn)行調(diào)用。在這一層中也包含了各種自行開(kāi)發(fā)的對(duì)硬件設(shè)備進(jìn)行控制的庫(kù)。

3 JavaScript與本地Qt對(duì)象交互機(jī)制

將Web頁(yè)面與底層開(kāi)發(fā)庫(kù)整合起來(lái)的核心在于實(shí)現(xiàn)JavaScript與本地Qt對(duì)象之間的交互機(jī)制,本文將對(duì)該機(jī)制進(jìn)行詳細(xì)描述。

信號(hào)和槽(Signal and Slot)機(jī)制是Qt機(jī)制的核心,用于對(duì)象間的通信,也是Qt的一個(gè)主要特點(diǎn)。Qt提供了信號(hào)和槽機(jī)制,當(dāng)一個(gè)信號(hào)被觸發(fā),與其連接的槽便會(huì)觸發(fā),這是在Qt的預(yù)編譯過(guò)程中生成moc代碼來(lái)實(shí)現(xiàn)的。

在圖形用戶界面開(kāi)發(fā)中,當(dāng)對(duì)一個(gè)Widget進(jìn)行操作時(shí),常常需要觸發(fā)另一個(gè)Widget去處理,也就是實(shí)現(xiàn)兩個(gè)對(duì)象之間的通信。例如,當(dāng)按下一個(gè)按鈕時(shí),希望窗口關(guān)閉。

常見(jiàn)的實(shí)現(xiàn)機(jī)制是使用回調(diào)函數(shù)?;卣{(diào)函數(shù)是調(diào)用一個(gè)函數(shù)指針?biāo)赶虻暮瘮?shù)。如果需要在按下按鈕時(shí),執(zhí)行某個(gè)函數(shù),則需要把指向這個(gè)函數(shù)的指針作為參數(shù)傳入到回調(diào)函數(shù)中。但采用這樣的機(jī)制存在類型安全問(wèn)題,此外還會(huì)增強(qiáng)類之間的耦合性,不利于軟件的擴(kuò)展和維護(hù)。

JavaScript與本地Qt對(duì)象的交互分為兩個(gè)步驟,如圖2所示:1)將本地Qt對(duì)象的信號(hào)和JavaScript的slots連接起來(lái);2)通過(guò)JavaScript調(diào)用本地Qt對(duì)象的slots。

在開(kāi)發(fā)中,一個(gè)對(duì)象只需繼承Qobject,便可使用該機(jī)制。信號(hào)和槽機(jī)制首先是類型安全的,信號(hào)和槽的參數(shù)必須匹配(槽函數(shù)的參數(shù)表必須小于或等于信號(hào)的參數(shù)表)。其次,使用該機(jī)制可以降低對(duì)象耦合性,在開(kāi)發(fā)一個(gè)對(duì)象時(shí),不需考慮一個(gè)信號(hào)發(fā)出后需要進(jìn)行什么操作,也不需考慮誰(shuí)要連接到這個(gè)槽函數(shù),這樣有利于多人合作開(kāi)發(fā)以及將來(lái)的代碼復(fù)用。信號(hào)和槽的連接方法請(qǐng)見(jiàn)圖3所示。

4 對(duì)象與Web頁(yè)面的整合方式

有兩種方式可以將Qt對(duì)象整合到Web頁(yè)面中,然后再用QWebView widget來(lái)顯示這張Web頁(yè)面:方式1 將Qt對(duì)象添加到JavaSript的上下文環(huán)境中;方式2 創(chuàng)建一個(gè)插件,然后通過(guò)對(duì)象標(biāo)簽將Qt widgets置入到Web頁(yè)面中。

我們選擇了使用方式2,頁(yè)面中widgets的公共槽將像普通函數(shù)一樣公開(kāi)給JavaScript函數(shù)。widget要能整合到Web頁(yè)面中,需要繼承QWebPluginFactory類,并且重新實(shí)現(xiàn)plugins方法和create方法。plugins方法用來(lái)通知Web頁(yè)面該插件可用。但需要?jiǎng)?chuàng)建widgets時(shí),create方法將被調(diào)用。例如,當(dāng)需要將一個(gè)名為my-device-control的widget置入頁(yè)面的HTML代碼時(shí),可使用如下的對(duì)象標(biāo)簽:

/>

為了創(chuàng)建這個(gè)widget,必須激活plugins并且將plugin工廠類通知給QWebPage。在下面的代碼中,DeviceControlFactory在application/my-device-control發(fā)出請(qǐng)求時(shí),創(chuàng)建了DeviceControl實(shí)例widget。

{

...

QWebSettings::globalSettings()->

setAttribute( QWebSettings::PluginsEnabled, true);

webView->page()->setPluginFactory( new DeviceControlColorLabelFactory( this ) );

...

}

DeviceControl widget公開(kāi)了一個(gè)名為openDevice()的公共槽,這樣就可以在JavaSript中像調(diào)用普通函數(shù)那樣進(jìn)行調(diào)用了,調(diào)用代碼如下:

打開(kāi)設(shè)備

5 實(shí)現(xiàn)效果

如圖4所示是基于Web/Native結(jié)構(gòu)開(kāi)發(fā)的數(shù)字證書(shū)客戶端軟件。該客戶端的顯示界面全部采用Web方式實(shí)現(xiàn)。界面分為證書(shū)功能區(qū)、證書(shū)消息區(qū)、證書(shū)展現(xiàn)區(qū)。使用純Web的方式很容易實(shí)現(xiàn)證書(shū)消息區(qū)和證書(shū)展現(xiàn)區(qū)的功能,但是如果不進(jìn)行一系列瀏覽器安全設(shè)置,是無(wú)法實(shí)現(xiàn)讀取USB Key中的數(shù)字證書(shū)的,也就無(wú)法實(shí)現(xiàn)數(shù)字證書(shū)與服務(wù)器消息之間的對(duì)應(yīng)關(guān)系。引入Native的方式很好的解決了這個(gè)問(wèn)題,通過(guò)Native接口不僅可以在完全無(wú)需額外設(shè)置的情況下讀取USB Key中的數(shù)字證書(shū),還可以實(shí)現(xiàn)證書(shū)功能區(qū)中的修改USB Key密碼、使用USB Key中的私鑰進(jìn)行文件簽名等功能。

5 結(jié)束語(yǔ)

Web/Native混合軟件體系結(jié)構(gòu)通過(guò)在傳統(tǒng)C/S結(jié)構(gòu)的客戶端軟件中集成Web瀏覽器引擎,使得客戶端軟件既具有對(duì)硬件設(shè)備的全面控制能力,又具有與Web應(yīng)用相同的靈活性?;谠擉w系結(jié)構(gòu)開(kāi)發(fā)的數(shù)字證書(shū)客戶端管理軟件將能很好的滿足數(shù)字證書(shū)運(yùn)營(yíng)商越來(lái)越復(fù)雜多變的業(yè)務(wù)需求。

參考文獻(xiàn)

[1] 布施曼等著.面向模式的軟件架構(gòu)(卷4):分布式計(jì)算的模式語(yǔ)言.人民郵電出版社,2010.

[2] 葉偉等著.互聯(lián)網(wǎng)時(shí)代的軟件革命――SaaS架構(gòu)設(shè)計(jì).電子工業(yè)出版社,2009.

[3] 伊斯特等著.C++設(shè)計(jì)模式――基于Qt 4開(kāi)源跨平臺(tái)開(kāi)發(fā)框架.清華大學(xué)電子工業(yè)出版社,2007.

[4] Developing hybrid Web/GTK+ rich internet applications. http:///webkit/webkitgtk-fosdem08.pdf.

[5] Federal Information, Web Enabling your Native Apps,http:///webkit/WebEnableYourNativeApp.pdf.

作者簡(jiǎn)介:

篇3

關(guān)鍵詞:化學(xué)抽象機(jī);軟件體系結(jié)構(gòu)信息科學(xué)

1概述軟件體系結(jié)構(gòu)是當(dāng)前軟件工程領(lǐng)域的一個(gè)研究熱點(diǎn),是大型軟件開(kāi)發(fā)中必須解決的核心技術(shù)。無(wú)數(shù)的寫(xiě)作論文軟件工程實(shí)踐證明:一個(gè)成功的軟件系統(tǒng)往往都有一個(gè)好的軟件體系結(jié)構(gòu)。但是在軟件設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、運(yùn)行以及升級(jí)的各個(gè)階段,體系結(jié)構(gòu)都不可避免地會(huì)發(fā)生變化,如何把運(yùn)行時(shí)適應(yīng)性機(jī)制加到復(fù)雜的大規(guī)模軟件系統(tǒng)中就成為一個(gè)重要的工程問(wèn)題。然而要通過(guò)軟件體系結(jié)構(gòu)的研究實(shí)現(xiàn)這一目標(biāo),首先必須用某種方式描述動(dòng)態(tài)體系結(jié)構(gòu)。

目前已定義的ADL超過(guò)20種,具有代表性的ADL包括C2、Darwin、Rapide、Unicon、Wright、D-ADL和ACME等[1];國(guó)內(nèi)包括XYZ/ADL、ABC/ADL、FRADL和A-ADL等。但這些語(yǔ)言大多注重軟件系統(tǒng)結(jié)構(gòu)靜態(tài)特性的描述,而對(duì)其動(dòng)態(tài)特性描述不足。PaolaInverardi和AlexxanderLWolf[2]首先將CHAM應(yīng)用于描述和分析軟件體系結(jié)構(gòu)。他們充分利用CHAM擅長(zhǎng)描述系統(tǒng)動(dòng)態(tài)性和并行性的優(yōu)點(diǎn),用CHAM形式化方法描述和分析了軟件體系結(jié)構(gòu)動(dòng)態(tài)操作性語(yǔ)義,在軟件體系結(jié)構(gòu)動(dòng)態(tài)特性描述方面進(jìn)行了有效的擴(kuò)展,主張用CHAM模型描述軟件體系結(jié)構(gòu),并例舉描述了編譯器的體系結(jié)構(gòu),包括順序多階段編譯器和并行、共享存貯庫(kù)的多階段編譯器?;贑HAM的體系結(jié)構(gòu)描述,運(yùn)用重寫(xiě)技術(shù)和結(jié)構(gòu)歸納證明方法,能夠?qū)w系結(jié)構(gòu)的部分行為屬性進(jìn)行形式化或半形式化的證明。

2化學(xué)抽象機(jī)化學(xué)抽象機(jī)CHAM主要用于異步并行計(jì)算模型的建模[3],通過(guò)將化學(xué)反應(yīng)和抽象機(jī)概念有機(jī)結(jié)合描述系統(tǒng)狀態(tài)變化,它將一個(gè)系統(tǒng)的狀態(tài)看成化學(xué)溶液,溶液由分子組成,分子根據(jù)一定的反應(yīng)規(guī)則相互反應(yīng)又引起新的系統(tǒng)狀態(tài)變化。溶液中不同分子可按反應(yīng)規(guī)則平行地進(jìn)行反應(yīng),只要各自反應(yīng)的分子集不重疊。因CHAM在描述系統(tǒng)動(dòng)態(tài)性、并行性方面的優(yōu)良特性,所以可較好描述異步并行計(jì)算模型,尤其擅長(zhǎng)描述如λ計(jì)算和CCS進(jìn)程計(jì)算模型[4]。一個(gè)化學(xué)抽象機(jī)由一組分子m0,m1,m2…、溶液s0,s1,s2…和變換規(guī)則組成,分子是CHAM的基本元素,由一個(gè)常數(shù)集和操作符集派生而成的句法代數(shù)定義;溶液是由有限多個(gè)分子的集合,它反映了系統(tǒng)的某種狀態(tài),溶液中的分子根據(jù)變換規(guī)則進(jìn)行反應(yīng)。

變換規(guī)則從應(yīng)用范圍可分為:通用規(guī)則,即在整個(gè)CHAM中通用的規(guī)則;專用規(guī)則,適用于某些特定分子的規(guī)則。從反應(yīng)作用可分為:加熱規(guī)則,把大分子分解成小分子的規(guī)則;冷卻規(guī)則,小分子合成大分子的規(guī)則。從反應(yīng)涉及的分子可分為:自反應(yīng)規(guī)則,只有單一分子的狀態(tài)變化;互反應(yīng)規(guī)則,反應(yīng)過(guò)程中至少有兩個(gè)分子參加反應(yīng)。本質(zhì)上,CHAM可看成一種有限狀態(tài)機(jī),因此它具有一般狀態(tài)機(jī)特征,與其他以狀態(tài)機(jī)為轉(zhuǎn)換模型的技術(shù)相比,CHAM利用化學(xué)反應(yīng)這一隱喻,因此在刻畫(huà)系統(tǒng)的動(dòng)態(tài)性特征方面比較自然。CHAM規(guī)格說(shuō)明是一個(gè)基于操作的系統(tǒng)框架,這種框架不會(huì)把所描述的系統(tǒng)曲解為某種特定的計(jì)算模型。CHAM描述不僅可以描述系統(tǒng)靜態(tài)特征,還能從系統(tǒng)操作動(dòng)態(tài)性方面進(jìn)行描述,通過(guò)對(duì)各單元的描述、引入的轉(zhuǎn)換規(guī)則及項(xiàng)重寫(xiě)描述和分析體系結(jié)構(gòu)的動(dòng)態(tài)行為,因而可使軟件開(kāi)發(fā)人員很快地了解系統(tǒng)功能和行為,適用于多種層次的用戶。在CHAM中,膜是一種封裝結(jié)構(gòu),任何溶液可以被看作一個(gè)關(guān)于其它溶液的單一分子,膜內(nèi)的溶液可以獨(dú)立進(jìn)化。膜具有半可滲透性,允許某些分子進(jìn)入和離開(kāi),通過(guò)膜上的氣孔,可以有選擇地從膜中抽取分子,同時(shí),氣孔的可逆性允許分子被重新吸收到原始溶液中,膜表示了復(fù)合構(gòu)件,實(shí)際上提供了一種刻畫(huà)系統(tǒng)模塊化的途徑。

3在SA中的應(yīng)用3.1描述SA。用于描述SA的CHAM可表示成一個(gè)三元組CHAM=(M,E,R),其中:3.1.1分子集M={m|m∈MS∨MI},MS={mS1,…,mSn}為穩(wěn)定狀態(tài)分子集,處于穩(wěn)定狀態(tài)的分子不吸收或釋放電子,MI={mi|mi∈{mS(.P)+,(P.)+mS(.P)+,(P.)+mS}∧mS∈MS}為離子狀態(tài)分子集,處于離子狀態(tài)的分子準(zhǔn)備進(jìn)行吸收或釋放電子操作,其中P={i(e),o(e)}為分子上的操作集,i(e)為吸收電子,o(e)為釋放電子,操作符“.”表示操作順序。3.1.2電子集E={e1,…,ek},分子可根據(jù)自反應(yīng)規(guī)則準(zhǔn)備進(jìn)行進(jìn)行收或釋放電子,當(dāng)溶液中有兩種互補(bǔ)電子,即一對(duì)釋放-吸收電子時(shí),可根據(jù)互反應(yīng)規(guī)則進(jìn)行反應(yīng)。3.1.3規(guī)則集R=RS∪RM,RS={r|r∈{mS1=mI1,…,mSj=mIj}∪{mS1=mS1*,…,mSj=mSj*},mSj∈MS∧mIj∈MI,j=1,2,…}是分子自身從吸收電子到釋放電子的過(guò)程或分子復(fù)制自身過(guò)程規(guī)則集,mSj*表示由mSj復(fù)制與mSj性質(zhì)、狀態(tài)完全相同的分子,RM={r|r∈{m11,m21,…=m11,m21,…},mij,mij∈MI,i,j=1,2,…}是電子在分子間流動(dòng)過(guò)程的規(guī)則集,rp∈RM,rq∈RM,p≠q,若{mp1,…,mpj}∩{mq1,…,mqj}=",則rp,rq可并行反應(yīng)。3.2描述構(gòu)件、連接件。用CHAM描述軟件連接件或構(gòu)件,可表示成一個(gè)四元組(MC,ECI,ECO,RC):3.2.1連接件或構(gòu)件的分子集MC;3.2.2連接件或構(gòu)件的前置條件,即輸入電子集ECI;3.2.3連接件或構(gòu)件的后置斷言,即輸出電子集ECO;3.2.4連接件或構(gòu)件分子集的反應(yīng)規(guī)則集Rc。連接件或構(gòu)件的分子集反映了連接件或構(gòu)件的角色集及在角色上進(jìn)行的輸入輸出操作,相對(duì)來(lái)說(shuō)是靜態(tài)的,是一種實(shí)現(xiàn)上的結(jié)構(gòu),屬于語(yǔ)法層。輸入電子集是使用該連接器或構(gòu)件前必須具備的條件,輸出電子集后映的是使用該連接件或構(gòu)件后的狀態(tài)。反應(yīng)規(guī)則集說(shuō)明了連接件或構(gòu)件如何運(yùn)用反應(yīng)規(guī)則從而發(fā)生狀態(tài)的演變,實(shí)質(zhì)上是連接件或構(gòu)件的動(dòng)態(tài)行為,是相對(duì)動(dòng)態(tài)的,屬于語(yǔ)義層。如管道-過(guò)濾器體系結(jié)構(gòu)風(fēng)格的CHAM描述如下:定義過(guò)濾器:MC:PIPE_FILTERECI:readerECO:writerRC1:PIPE_FILTER=PIPE_FILTER.i(reader)RC2:PIPE_FILTER.i(reader)=i(reader).PIPE_FILTER,PIPE_FILTER.o(writer)RC3:PIPE_FILTER.o(writer)=o(writer).PIPE_FILTER定義管道:MC:PIPE_CONNECI:readerECO:writerRC1:PIPE_CONN=PIPE_CONN.i(reader)RC2:PIPE_CONN.i(reader)=i(reader).PIPE_CONN,PIPE_CONN.o(writer)RC3:PIPE_CONN.o(writer)=o(writer).PIPE_CONN由過(guò)濾器和管道構(gòu)造一個(gè)系統(tǒng):SYS_M:PIPE_FILTER,PIPE_CONNSYS_E:reader,writerSYS_R1:PIPE_FILTER.o(writer),PIPE_CONN.i(reader)=o(writ-er).PIPE_FILTER,i(reader).PIPE_CONN

4展望目前基于構(gòu)件的軟件工程正逐漸成為軟件開(kāi)發(fā)的新趨勢(shì),但是也給基于構(gòu)件的軟件系統(tǒng)測(cè)試帶來(lái)了新的問(wèn)題,而CHAM不僅可用于描述動(dòng)態(tài)軟件體系結(jié)構(gòu),還可用于測(cè)試體系結(jié)構(gòu),因?yàn)镃HAM這種對(duì)系統(tǒng)狀態(tài)變化的描述特別適合于測(cè)試系統(tǒng)的行為和功能,Bertolino[5]等人提出從軟件體系結(jié)構(gòu)描述中導(dǎo)出實(shí)現(xiàn)層的測(cè)試用例,以指導(dǎo)構(gòu)件系統(tǒng)的集成測(cè)試的思想,隨著對(duì)CHAM的深入研究,必將有新的應(yīng)用被提出。

參考文獻(xiàn)

[1]MedvidovicN,TaylorRN,Aclassificationandcomparisonframeworkforsoftwarearchitecturedescriptionlanguages[J].IEEETrans.onSoftwareEngi.,2000,26(1):70-93.

[2]InverardiP,WolfAL.Formalspecificationandanalysisofsoftwarearchitecturesusingthechemicalabstractmachinemodel[J].IEEETrans.onSoftwareEngi.,1995,21(4):373-386.

[3]BerryG.,BoudolG.TheChemicalAbstractMa-chine[J].TheoreticalComputerScience,1992,(96):217-248.

篇4

【關(guān)鍵詞】軟件體系結(jié)構(gòu) 構(gòu)件模型 構(gòu)件語(yǔ)言 SACM SAJ

【中圖分類號(hào)】G642 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1674-4810(2013)14-0081-01

在軟件開(kāi)發(fā)中,如何提高軟件質(zhì)量是人們的普遍追求和共同愿望。而提高質(zhì)量的關(guān)鍵問(wèn)題就是構(gòu)件技術(shù)和軟件體系結(jié)構(gòu)技術(shù)。但是,目前在這兩項(xiàng)技術(shù)開(kāi)發(fā)中面臨著多方面的挑戰(zhàn),本文擬對(duì)這些問(wèn)題提出相應(yīng)的解決方案。

一 基于軟件體系結(jié)構(gòu)的構(gòu)件模型SACM

第一,構(gòu)件。SACM構(gòu)件是能提供相對(duì)獨(dú)立服務(wù)的計(jì)算單元,具有規(guī)范的接口和顯示的上下文依賴,能夠被第三方組合。就其組成來(lái)看,主要包括端口和服務(wù)兩個(gè)部分,每個(gè)端口代表一個(gè)交互點(diǎn),至多有一個(gè)請(qǐng)求服務(wù)接口和一個(gè)提供服務(wù)接口。對(duì)于構(gòu)件來(lái)說(shuō),其服務(wù)實(shí)現(xiàn)部分由方法體構(gòu)成,這就降低了構(gòu)件之間的耦合度,能夠提高構(gòu)件的復(fù)用程度。

第二,構(gòu)件之間的關(guān)系。在SACM中,存在著多種構(gòu)件,這些構(gòu)架之間相互聯(lián)系,形成了多種多樣的不同的關(guān)系,主要有部分-整體關(guān)系、泛化關(guān)系、連接關(guān)系、協(xié)作關(guān)系。

第三,連接子的引入及其作用。為了更容易地實(shí)現(xiàn)映射、對(duì)軟件系統(tǒng)屬性進(jìn)行分析、驗(yàn)證和跟蹤,提高構(gòu)件的復(fù)用程度,提高軟件系統(tǒng)結(jié)構(gòu)的動(dòng)態(tài)配置、加強(qiáng)低軟件的維護(hù),在SACM構(gòu)件中有必要引入連接子。就其作用來(lái)看,連接子主要發(fā)揮通信、轉(zhuǎn)換、輔助交換、協(xié)調(diào)控制的作用,對(duì)整個(gè)軟件系統(tǒng)的運(yùn)行有著積極的意義。

第四,基于連接子構(gòu)件組合方法。在SACM構(gòu)件當(dāng)中,構(gòu)件組合方法主要有兩種:基于被動(dòng)的和基于主動(dòng)的連接子構(gòu)件組合方法,不同的方式有各自的優(yōu)勢(shì),需要根據(jù)具體情況選用。

二 面向構(gòu)件語(yǔ)言SAJ

第一,SAJ語(yǔ)言設(shè)計(jì)的目的。該語(yǔ)言設(shè)計(jì)的目的主要包括以下幾個(gè)方面:能夠更好地支持面向構(gòu)件軟件開(kāi)發(fā)、實(shí)現(xiàn)從體系結(jié)構(gòu)設(shè)計(jì)模型到地層代碼的映射。

第二,SAJ語(yǔ)言支持面向構(gòu)件軟件開(kāi)發(fā)。在進(jìn)行軟件開(kāi)發(fā)的過(guò)程中,為了能夠更好地對(duì)面向構(gòu)件的軟件進(jìn)行支持,面向構(gòu)件語(yǔ)言應(yīng)能夠支持構(gòu)件的封裝、復(fù)用和組合,并支持構(gòu)件的設(shè)計(jì)與開(kāi)發(fā)。具體來(lái)說(shuō),是從以下五個(gè)方面來(lái)支持面向構(gòu)件軟件開(kāi)發(fā)的:構(gòu)件的封裝性、構(gòu)件組合、面向構(gòu)件設(shè)計(jì)原則、設(shè)計(jì)模式、連接子復(fù)用。

第三,SAJ語(yǔ)言的實(shí)現(xiàn)。使用Polyglot框架來(lái)實(shí)現(xiàn)SAJ語(yǔ)言的編譯器,并將編寫(xiě)的源代碼翻譯成Java代碼,每個(gè)端口自動(dòng)產(chǎn)生一個(gè)字段,保存所使用的連接子。由連接子協(xié)調(diào)構(gòu)件之間的通信,通過(guò)消息截取和消息過(guò)濾,有利于解決構(gòu)件之間不相容的問(wèn)題。有利于實(shí)現(xiàn)日志、數(shù)據(jù)加密傳輸?shù)确?wù),并能夠?qū)崿F(xiàn)各種體系結(jié)構(gòu)風(fēng)格,具有良好的運(yùn)用空間。

三 SAJ語(yǔ)言的語(yǔ)法、語(yǔ)義和類型系統(tǒng)

第一,SAJ語(yǔ)言的簡(jiǎn)介。對(duì)于SAJ語(yǔ)言來(lái)說(shuō),它的核心是基于RelJ,它是在RelJ的基礎(chǔ)上,添加了構(gòu)件、端口、連接子、角色等軟件體系結(jié)構(gòu)。

第二,SAJ語(yǔ)言的類型系統(tǒng)。類型是程序設(shè)計(jì)中項(xiàng)的集合,它們具有共同的性質(zhì)。對(duì)于類型系統(tǒng),從本質(zhì)上來(lái)說(shuō),它是一個(gè)類型推導(dǎo)規(guī)則的集合,在程序設(shè)計(jì)中具有重要的作用:檢查類型錯(cuò)誤、支持語(yǔ)言抽象、優(yōu)化程序,并支持語(yǔ)言的安全性。

四 豐富構(gòu)件接口信息

第一,顯示相應(yīng)的服務(wù)關(guān)系。顯示描述請(qǐng)求服務(wù)和提供服務(wù)之間的關(guān)系,構(gòu)件要想為外界服務(wù),就需要從外界得到相應(yīng)的請(qǐng)求服務(wù)。對(duì)于現(xiàn)有構(gòu)件模型來(lái)說(shuō),請(qǐng)求服務(wù)和提供服務(wù)之間的關(guān)系是固定的。但是在可復(fù)用構(gòu)件的軟件開(kāi)發(fā)中,請(qǐng)求服務(wù)和提供服務(wù)之間不存在嚴(yán)格的依賴關(guān)系,往往存在著一些問(wèn)題與不足,影響正常的服務(wù)。因此,有必要顯示請(qǐng)求服務(wù)與提供服務(wù)之間的關(guān)系。此外,從構(gòu)件復(fù)用粒度的角度來(lái)說(shuō),顯示它們之間的服務(wù)也是十分必要的。同時(shí),顯示它們之間的關(guān)系,有利于對(duì)構(gòu)件質(zhì)量進(jìn)行精確度量、調(diào)整與改進(jìn),更能靈活適應(yīng)不同的環(huán)境,提高服務(wù)質(zhì)量,更好地滿足軟件開(kāi)發(fā)的實(shí)際需要。

第二,描述服務(wù)的參數(shù)值。在進(jìn)行軟件開(kāi)發(fā)時(shí),服務(wù)的參數(shù)值往往會(huì)對(duì)構(gòu)件行為產(chǎn)生一定的影響。并且構(gòu)件開(kāi)發(fā)人員對(duì)這個(gè)也非常清楚。所以,在接口中增加描述服務(wù)的參數(shù)值是現(xiàn)實(shí)的、必要的。在構(gòu)件接口中,有提供服務(wù)和請(qǐng)求服務(wù),對(duì)于它們的參數(shù)值描述略有不同。一般是在行為協(xié)議中描述參數(shù)值,并在構(gòu)件組合中得到具體應(yīng)用。

五 結(jié)束語(yǔ)

總之,構(gòu)件模型和面向構(gòu)件語(yǔ)言有利于解決當(dāng)前構(gòu)件技術(shù)和軟件體系結(jié)構(gòu)技術(shù)所面臨的問(wèn)題。文中所提出的構(gòu)件模型SACM和構(gòu)件語(yǔ)言SAJ,能夠有力地促進(jìn)構(gòu)件技術(shù)的發(fā)展。在今后的實(shí)際工作中,仍然有對(duì)該相關(guān)問(wèn)題進(jìn)行進(jìn)一步深入研究的必要。

參考文獻(xiàn)

[1]岳洋.SMC/ADL:一種層級(jí)式構(gòu)件系統(tǒng)的體系結(jié)構(gòu)描述語(yǔ)言[J].計(jì)算機(jī)科學(xué),2012(7)

篇5

關(guān)鍵詞: 模糊測(cè)試; 體系結(jié)構(gòu)分析; 漏洞挖掘; 安全漏洞

中圖分類號(hào): TN711?34; TM417 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)09?0099?04

Abstract: To improve the efficiency of vulnerability mining, the vulnerability mining system Fast Fuzzing based on software architecture analysis was designed and implemented in combination with the advantages of symbolic execution, stain analysis and fuzzing test. This system is composed of architecture analysis, instruction tracing, symbolic execution, stain analysis and dynamic testing. To improve the system efficiency, the traditional technology method was optimized. The experimental results show that the Fast Fuzzing system can effectively detect the security problems in IE8 and IE10, successfully trigger multiple vulnerabilities in IE8 and IE10, which is suitable for the safety testing of common software.

Keywords: fuzzing test; architecture analysis; vulnerability mining; security vulnerability

0 引 言

由于軟件漏洞的高危害性,漏洞挖掘技術(shù)已成為計(jì)算機(jī)領(lǐng)域中的一個(gè)研究熱點(diǎn)[1]。一方面,軟件安全研究人員專注于各種流行軟件的安全性分析和測(cè)試,以發(fā)現(xiàn)這些軟件中的安全問(wèn)題;另一方面,軟件開(kāi)發(fā)商也積極投入到產(chǎn)品的安全檢測(cè)中,以提高軟件的安全性[2]。

近年來(lái),在程序分析和編譯原理等領(lǐng)域的促進(jìn)下,面向源代碼的漏洞挖掘技術(shù)取得了一定成果。然而,該技術(shù)仍然存在著許多不足之處:如出于商業(yè)利益和商業(yè)保護(hù)等原因,絕大多數(shù)的軟件開(kāi)發(fā)商并不對(duì)外提供軟件的源代碼[3]。其次,源代碼層次的漏洞挖掘和分析并不能發(fā)現(xiàn)在程序編譯、程序鏈接過(guò)程中產(chǎn)生的漏洞問(wèn)題。此外,軟件中引入的軟件體系結(jié)構(gòu)方法、對(duì)外接口的不規(guī)范調(diào)用,也有可能存在潛在的安全問(wèn)題[4]。

1 系統(tǒng)需求與目標(biāo)

現(xiàn)有的符號(hào)執(zhí)行技術(shù)主要面臨路徑爆炸、約束求解困難和效率比較低等問(wèn)題,而本文的設(shè)計(jì)思想基于符號(hào)執(zhí)行技術(shù)和模糊測(cè)試技術(shù),同時(shí)與軟件體系結(jié)構(gòu)的方法相結(jié)合[5]。因此,本系統(tǒng)的設(shè)計(jì)目標(biāo)主要包括如下幾點(diǎn):

(1) 高效率。提高本系統(tǒng)的測(cè)試效率,使得系統(tǒng)能夠?qū)Υ郎y(cè)軟件進(jìn)行自動(dòng)化測(cè)試,分析軟件運(yùn)行時(shí)的狀態(tài)信息,并且能夠準(zhǔn)確記錄軟件的異常行為和崩潰信息。

(2) 高適用性。能夠?qū)νㄓ酶袷降臄?shù)據(jù)進(jìn)行處理,并且通過(guò)反饋式生成測(cè)試用例,驅(qū)動(dòng)測(cè)試過(guò)程的持續(xù)運(yùn)行。

(3) 高代碼覆蓋率。能夠在動(dòng)態(tài)測(cè)試時(shí)分析測(cè)試用例的代碼覆蓋率,盡可能生成不同路徑的測(cè)試用例,提高系統(tǒng)測(cè)試時(shí)的代碼覆蓋率。

2 系統(tǒng)架構(gòu)設(shè)計(jì)

為了提高漏洞挖掘的效率,本文在軟件體系結(jié)構(gòu)分析的基礎(chǔ)上,結(jié)合了符號(hào)執(zhí)行和污點(diǎn)分析技術(shù),設(shè)計(jì)和實(shí)現(xiàn)了針對(duì)二進(jìn)制程序的漏洞挖掘系統(tǒng)Fast Fuzzing[6]。

Fast Fuzzing漏洞挖掘系統(tǒng)采用離線符號(hào)執(zhí)行和離線污點(diǎn)分析的方法,在PANDA平臺(tái)的基礎(chǔ)上實(shí)現(xiàn)了上述功能,同時(shí)利用STP求解器進(jìn)行約束求解,生成新的測(cè)試用例。另外,還結(jié)合了污點(diǎn)分析結(jié)果,得到相關(guān)的污點(diǎn)信息,從而用于導(dǎo)向型測(cè)試用例的生成[7]。在進(jìn)行動(dòng)態(tài)測(cè)試時(shí),F(xiàn)ast Fuzzing系統(tǒng)會(huì)計(jì)算每次測(cè)試用例的代碼覆蓋情況,從而在選擇新的測(cè)試用例進(jìn)行測(cè)試時(shí),優(yōu)先選擇能夠提高代碼覆蓋率的新測(cè)試用例。Fast Fuzzing系統(tǒng)架構(gòu)圖如圖1所示。Fast Fuzzing漏洞挖掘系統(tǒng)主要由指令追蹤模塊、體系結(jié)構(gòu)分析模塊、符號(hào)執(zhí)行模塊、污點(diǎn)分析模塊和測(cè)試模塊組成。

3 系統(tǒng)實(shí)現(xiàn)

3.1 指令追蹤模塊設(shè)計(jì)與實(shí)現(xiàn)

指令追蹤模塊的主要功能是,記錄測(cè)試程序執(zhí)行時(shí)每條指令的地址、上下文信息和內(nèi)存信息等。該模塊是在動(dòng)態(tài)分析平臺(tái) PANDA下實(shí)現(xiàn)的,其作為 PANDA平臺(tái)的一個(gè)工具模塊 panda_tools。指令追蹤模塊主要有如下三個(gè)模塊:

指令追蹤:程序執(zhí)行過(guò)程中能夠動(dòng)態(tài)分析每條指令,記錄指令的具體信息和寄存器信息。指令追蹤功能主要通過(guò)注冊(cè)PANDA_CB_INSN_TRANSLATE和PANDA_CB_INSN_EXEC兩個(gè)回調(diào)函數(shù)實(shí)現(xiàn)。

內(nèi)存追蹤:程序執(zhí)行過(guò)程中對(duì)內(nèi)存的操作進(jìn)行有針對(duì)性的記錄,包括內(nèi)存的申請(qǐng)、內(nèi)存的讀/寫(xiě)、內(nèi)存塊大小和數(shù)據(jù)信息等。內(nèi)存追蹤方法與指令追蹤類似,通過(guò)注冊(cè) [PANDA_CB_VIRT_MEM_READ,PANDA_CB_VIRT_][MEM_WRITE,]PANDA_CB_PHYS_MEM_READ和PANDA_CB_PHYS_MEM_WRITE四個(gè)類型的回調(diào)函數(shù),分別實(shí)現(xiàn)對(duì)虛擬地址內(nèi)存的讀/寫(xiě)操作和物理地址內(nèi)存的讀/寫(xiě)操作的監(jiān)控。

函數(shù)追蹤:程序執(zhí)行過(guò)程中能夠記錄系統(tǒng)函數(shù)的調(diào)用,同時(shí)在提供符號(hào)表的情況下,能夠記錄指定函數(shù)的調(diào)用信息。系統(tǒng)通過(guò) PANDA平臺(tái)對(duì)指令分析的過(guò)程,注 冊(cè)了兩個(gè)回調(diào)函數(shù)對(duì)其進(jìn)行處理,類型為PANDA_CB_INSN_TRANSLATE的translate_call back函數(shù)和類型為PANDA_CB_INSN_EXEC的exec_callback函數(shù)。

3.2 體系結(jié)構(gòu)分析模塊設(shè)計(jì)與實(shí)現(xiàn)

體系結(jié)構(gòu)分析模塊的功能是對(duì)最基本的主程序和子程序進(jìn)行靜態(tài)分析,通過(guò)對(duì)二進(jìn)制程序進(jìn)行基本塊劃分,記錄相關(guān)的基本塊信息,提取其中的函數(shù)調(diào)用關(guān)系,從而分析程序中的所有路徑,再根據(jù)靜態(tài)分析時(shí)的信息提取出相應(yīng)路徑的約束關(guān)系,用于后續(xù)的符號(hào)執(zhí)行中[8]。

體系結(jié)構(gòu)分析模塊是在IDAPro靜態(tài)分析工具的基礎(chǔ)上實(shí)現(xiàn)的,之后通過(guò)模塊實(shí)現(xiàn)的插件對(duì)IDAPro反匯編結(jié)果進(jìn)行深入的分析,對(duì)程序進(jìn)行基本塊劃分和記錄,同時(shí)提取出其中的調(diào)用關(guān)系。該模塊的基本架構(gòu)如圖2所示。在體系結(jié)構(gòu)分析模塊中,主要包含基本代碼塊分析、函數(shù)調(diào)用分析和路徑分析三個(gè)部分。

3.3 符號(hào)執(zhí)行模塊設(shè)計(jì)與實(shí)現(xiàn)

符號(hào)執(zhí)行模塊通過(guò)分析指令追蹤時(shí)的記錄,結(jié)合體系結(jié)構(gòu)分析時(shí)的路徑關(guān)系,將輸入數(shù)據(jù)符號(hào)化表示,生成相應(yīng)的約束關(guān)系;之后,在軌跡重放時(shí),根據(jù)程序執(zhí)行時(shí)的上下文環(huán)境,更新路徑約束關(guān)系,并利用約束求解器進(jìn)行求解,生成新的測(cè)試用例,對(duì)程序進(jìn)行進(jìn)一步的測(cè)試。本系統(tǒng)基于PANDA平臺(tái)構(gòu)建,其底層由QEMU模擬器構(gòu)建,采用TCG中間語(yǔ)言的方式對(duì)指令進(jìn)行翻譯處理。本文在此基礎(chǔ)上,采用了離線符號(hào)執(zhí)行的方式,根據(jù)指令追蹤時(shí)的記錄,實(shí)現(xiàn)對(duì)中間代碼的符號(hào)化分析,從而提高符號(hào)執(zhí)行的效率。

符號(hào)執(zhí)行模塊首先在體系結(jié)構(gòu)分析模塊的基礎(chǔ)上,通過(guò)對(duì)目標(biāo)軟件的靜態(tài)分析,生成軟件內(nèi)部的函數(shù)調(diào)用圖,進(jìn)而推導(dǎo)出軟件中的路徑關(guān)系。該模塊的基本流程如圖3所示。

3.4 污點(diǎn)分析模塊設(shè)計(jì)與實(shí)現(xiàn)

污點(diǎn)分析模塊通過(guò)指令追蹤時(shí)對(duì)原始輸入數(shù)據(jù)的污點(diǎn)標(biāo)記,分析相關(guān)內(nèi)存信息,記錄污點(diǎn)數(shù)據(jù)的傳播過(guò)程,獲得輸入數(shù)據(jù)與敏感內(nèi)存操作的關(guān)系,從而生成新的測(cè)試用例。

污點(diǎn)分析模塊是在PADNA平臺(tái)基礎(chǔ)上實(shí)現(xiàn)的,借助于指令追蹤模塊,對(duì)目標(biāo)程序的執(zhí)行流程進(jìn)行軌跡記錄,生成相應(yīng)的軌跡記錄文件。軌跡記錄部分主要針對(duì)每條執(zhí)行過(guò)的指令,具體包括指令的地址、指令機(jī)器碼和指令運(yùn)行時(shí)寄存器、內(nèi)存的相關(guān)信息。

3.5 動(dòng)態(tài)測(cè)試模塊設(shè)計(jì)與實(shí)現(xiàn)

動(dòng)態(tài)測(cè)試模塊是在Windows異常處理機(jī)制的基礎(chǔ)上,通過(guò)執(zhí)行目標(biāo)程序捕獲運(yùn)行時(shí)出現(xiàn)的異常信息判斷測(cè)試用例是否會(huì)引發(fā)程序崩潰,再進(jìn)一步分析崩潰信息,判斷該問(wèn)題是否是由于軟件自身的安全漏洞而引起的。同時(shí),動(dòng)態(tài)測(cè)試模塊的功能還在于能夠不斷生成新的測(cè)試用例,對(duì)目標(biāo)程序進(jìn)行持續(xù)的測(cè)試。本系統(tǒng)主要是在Windows異常處理平臺(tái)下實(shí)現(xiàn)了動(dòng)態(tài)測(cè)試模塊,主要通過(guò)對(duì)未執(zhí)行代碼塊中插入軟件斷點(diǎn)追蹤指令的執(zhí)行過(guò)程,并且對(duì)程序運(yùn)行時(shí)的異常情形進(jìn)行監(jiān)控。

(1) 處理流程

動(dòng)態(tài)測(cè)試模塊采用加載目標(biāo)程序的方式對(duì)目標(biāo)程序進(jìn)程測(cè)試。同時(shí),在創(chuàng)建目標(biāo)程序的進(jìn)程時(shí),通過(guò)DLL注入的方式實(shí)現(xiàn)對(duì)異常信息的監(jiān)控和對(duì)代碼覆蓋率的檢測(cè)功能。其具體處理流程如圖4所示。在程序碰到異常情形時(shí),首先通過(guò)注入的DLL判斷此處的異常是否是DLL注入時(shí)插入的指令造成的,如果是則恢復(fù)原先指令,記錄此時(shí)的狀態(tài)信息,以便分析代碼覆蓋率;否則的話,則認(rèn)為是程序中存在的安全問(wèn)題觸發(fā)了此類異常,記錄測(cè)試用例、此時(shí)的寄存器和上下文信息,以便進(jìn)一步確認(rèn)該安全問(wèn)題是一個(gè)程序漏洞。

(2) 異常監(jiān)控

異常監(jiān)控部分主要包含追蹤路徑初始化、基本代碼塊斷點(diǎn)設(shè)置和異常處理函數(shù)設(shè)置這兩個(gè)功能,其具體實(shí)現(xiàn)是通過(guò)DLL注入的方式對(duì)目標(biāo)程序的執(zhí)行進(jìn)程進(jìn)行監(jiān)控。

(3) 代碼覆蓋率檢測(cè)

在對(duì)基本代碼塊進(jìn)行斷點(diǎn)設(shè)置時(shí),根據(jù)BBL_INFO結(jié)構(gòu)中的isexecute字段判斷基本代碼塊是否執(zhí)行。對(duì)于已經(jīng)執(zhí)行的基本代碼塊,將其記錄在已測(cè)試基本代碼塊結(jié)構(gòu)中,然后在程序執(zhí)行完后,將記錄中的代碼塊與模塊中的所有代碼塊進(jìn)行比對(duì),算出該模塊中的基本代碼塊代碼覆蓋率。

4 系統(tǒng)測(cè)試與分析

4.1 功能測(cè)試

(1) 測(cè)試方法

針對(duì)IE10,初始測(cè)試用例大小為21 824 B,指令記錄文件大小為53 323 MB, 共生成了625 369個(gè)測(cè)試用例,發(fā)現(xiàn)了24個(gè)異常。針對(duì)IE8,初始測(cè)試用例大小為21 824 B,指令記錄文件大小為23 954 MB,共生成了405 712個(gè)測(cè)試用例,發(fā)現(xiàn)異常數(shù)為31個(gè)。通過(guò)上述異常分析可以看到,IE8中的異常2和IE10中的異常2信息基本一致,都屬于訪問(wèn)不可訪問(wèn)內(nèi)存錯(cuò)誤,而其他異常信息也屬于此類錯(cuò)誤。為測(cè)試Fast Fuzzing系統(tǒng)的代碼覆蓋率情況,本測(cè)試中對(duì)比分析FileFuzz工具對(duì)IE8軟件的測(cè)試代碼覆蓋率情況,結(jié)果如表3所示。

通過(guò)上述結(jié)果的對(duì)比,可以發(fā)現(xiàn)Fast Fuzzing相對(duì)于傳統(tǒng)的模糊測(cè)試工具而言,其在測(cè)試時(shí)覆蓋的代碼面更廣,能夠?qū)浖M(jìn)行更為全面的安全測(cè)試。

5 結(jié) 論

針對(duì)傳統(tǒng)模糊測(cè)試方法的不足,本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于軟件體系結(jié)構(gòu)的漏洞挖掘工具,并且結(jié)合了混合符號(hào)執(zhí)行技術(shù)和細(xì)粒度污點(diǎn)分析技術(shù),通過(guò)對(duì)這兩方法的反饋信息進(jìn)行深入分析,生成新的測(cè)試用例驅(qū)動(dòng)測(cè)試流程,從而大大地提高了測(cè)試時(shí)代碼的覆蓋率和測(cè)試效率。

參考文獻(xiàn)

[1] 楊世德,梁光明,余凱.基于ARM嵌入式系統(tǒng)底層漏洞挖掘技術(shù)研究[J].現(xiàn)代電子技術(shù),2015,38(18):94?96.

[2] 蒲石,陳周?chē)?guó),祝世雄.震網(wǎng)病毒分析與防范[J].信息網(wǎng)絡(luò)安全,2012(2):40?43.

[3] 王鐵磊.面向二進(jìn)制程序的漏洞挖掘關(guān)鍵技術(shù)研究[D].北京:北京大學(xué),2011.

[4] 陳寶國(guó).美國(guó)國(guó)家網(wǎng)絡(luò)安全戰(zhàn)略解析[J].信息網(wǎng)絡(luò)安全,2010(1):66?68.

[5] BRUMLEY D, POOSANKAM P, SONG D, et al. Automatic patch?based exploit generation is possible: techniques and implications [C]// Proceedings of 2008 IEEE Symposium on Security and Privacy. [S.l.]: IEEE, 2008: 143?157.

[6] BALAKRISHNAN G, REPS T, MELSKI D, et al. What you see is not what you execute [J]. ACM transactions on programming languages and systems, 2010, 32(6): 202?213.

篇6

關(guān)鍵詞 軟件通信體系結(jié)構(gòu) 無(wú)線電系統(tǒng) 軟件定義

中圖分類號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A

在現(xiàn)實(shí)生活中,軟件定義無(wú)線電技術(shù)在軍事方面的應(yīng)用不斷地發(fā)展研究,各國(guó)為了早日實(shí)現(xiàn)軍事化的軟件定義無(wú)線電技術(shù),加大了對(duì)軟件定義無(wú)線電的研究。目前,軟件定義無(wú)線電技術(shù)已成為未來(lái)軍事通信發(fā)展的趨勢(shì)。①

1 軟件通信體系結(jié)構(gòu)

1.1 硬件體系結(jié)構(gòu)

軟件通信體系中硬件體系結(jié)構(gòu)采用了面向?qū)ο蠹夹g(shù),通過(guò)面向面向?qū)ο蠹夹g(shù)的概念對(duì)系統(tǒng)內(nèi)部的典型模塊進(jìn)行劃分,要求實(shí)際系統(tǒng)一旦實(shí)現(xiàn),必須將其詳細(xì)的、完整的接口進(jìn)行公開(kāi)。軟件開(kāi)發(fā)人員可以通過(guò)公開(kāi)的接口,對(duì)硬件的性能和容量以加載特定的波形,第三方則通過(guò)公開(kāi)的接口,提供系統(tǒng)內(nèi)部模塊,方便了新技術(shù)的插入。

硬件體系結(jié)構(gòu)除了要對(duì)所有無(wú)線設(shè)備系統(tǒng)內(nèi)部硬件模塊的組成進(jìn)行定義,還要給出所有無(wú)線設(shè)備內(nèi)部硬件的物理屬性。當(dāng)無(wú)線設(shè)備系統(tǒng)內(nèi)部硬件物理屬性符合條件時(shí),這些硬件設(shè)備就可以應(yīng)用到實(shí)際平臺(tái)硬件模塊,具有統(tǒng)一性,針對(duì)所有的通信設(shè)備來(lái)說(shuō)都是通用的,實(shí)現(xiàn)了硬件模塊設(shè)計(jì)的實(shí)用性與通用性,節(jié)約了系統(tǒng)成本。未來(lái)無(wú)線通信系統(tǒng)發(fā)展主要以軟件為主,而現(xiàn)代無(wú)線通信系統(tǒng)是由軟件與硬件相結(jié)合來(lái)實(shí)現(xiàn)無(wú)線通信的功能。因此,為滿足無(wú)線通信系統(tǒng)未來(lái)發(fā)展的需求,硬件模塊要具有一定的可擴(kuò)展性,這可以確保在原有硬件模塊基礎(chǔ)上,通過(guò)增加新的功能或者在已有的硬件模塊中增加新的硬件模塊來(lái)實(shí)現(xiàn)新的技術(shù),既保證了硬件模塊統(tǒng)一性,又增加了硬件模塊內(nèi)在的靈活性,滿足軟件無(wú)線電發(fā)展的需求。②

1.2 軟件體系結(jié)構(gòu)

在軟件通信體系中軟件與硬件所承擔(dān)的功能不同,根據(jù)軟件在通信體系中所承擔(dān)的功能,可將軟件體系結(jié)構(gòu)由上到下分為應(yīng)用程序、核心框架、公共對(duì)象請(qǐng)求體系中間件和嵌入式實(shí)時(shí)操作系統(tǒng)四部分。其中核心框架、公共對(duì)象請(qǐng)求體系中間件以及嵌入式實(shí)時(shí)操作系統(tǒng)三部分共同構(gòu)成了軟件體系結(jié)構(gòu)中的核心內(nèi)容,也是軟件體系結(jié)構(gòu)中一個(gè)通用的軟件平臺(tái)。軟件平臺(tái)的構(gòu)成給開(kāi)發(fā)人員和波形的設(shè)計(jì)帶來(lái)了新的要求與限制,有利于實(shí)現(xiàn)波形從一個(gè)無(wú)線通信系統(tǒng)到另一個(gè)無(wú)線通信系統(tǒng)的移植。

1.3 安全體系結(jié)構(gòu)

軟件通信體系中安全體系結(jié)構(gòu),為了保證在不同的無(wú)線通信系統(tǒng)能夠相互通連與相互操作,是為了確保用戶的信息在傳輸、發(fā)送、處理以及存儲(chǔ)過(guò)程中的完整性與機(jī)密性。在安合體系結(jié)構(gòu)中,整個(gè)系統(tǒng)的安全功能是由一個(gè)通信保密模塊、紅邊處理器以及黑邊處理器三部分共同來(lái)完成的,而非一個(gè)邊界分明的安全模塊來(lái)單獨(dú)完成。③

2 軟件定義無(wú)線電系統(tǒng)

軟件定義無(wú)線電系統(tǒng)又稱為軟件無(wú)線電系統(tǒng),是一種可以通過(guò)軟件進(jìn)行編輯,實(shí)現(xiàn)全部功能的無(wú)線電,具有較高的靈活性與通用性。用戶通過(guò)軟件無(wú)線電系統(tǒng),對(duì)動(dòng)態(tài)修改配置對(duì)系統(tǒng)中的網(wǎng)絡(luò)裝備與軟件更新設(shè)備進(jìn)行修改,從而獲得更好的服務(wù)與性能。軟件定義無(wú)線電系統(tǒng)是通過(guò)一個(gè)簡(jiǎn)單的終端設(shè)備,運(yùn)用軟件重配置功能來(lái)支持各種不同種類的無(wú)線系統(tǒng)與服務(wù)的新技術(shù)。固定或者移動(dòng)的軟件定義無(wú)線電設(shè)備,都能讓用戶通過(guò)改變軟件改變接收與發(fā)送的特征。移動(dòng)無(wú)線電系統(tǒng)與改變運(yùn)行模式的軟件定義無(wú)線電設(shè)備相互通聯(lián),并且能夠同時(shí)在多種公共安全頻帶中工作。

軟件定義無(wú)線電系統(tǒng)不僅具備基本的無(wú)線通信功能,還具有以下三個(gè)方面的功能:一是通過(guò)軟件定義無(wú)線電系統(tǒng)能夠升級(jí)系統(tǒng)所裝載的軟件,以此來(lái)達(dá)到對(duì)系統(tǒng)的升級(jí)與功能的更新。④二是軟件定義無(wú)線電系統(tǒng)可以支持不同電臺(tái)系統(tǒng)的相互通聯(lián),達(dá)到不同獨(dú)立運(yùn)行的電臺(tái)系統(tǒng)能夠互傳信息。三是軟件定義無(wú)線電系統(tǒng)主要以軟件為主,解放了硬件通信業(yè)務(wù)傳輸方式,通過(guò)軟件定義無(wú)線電系統(tǒng)所裝載不同軟件實(shí)現(xiàn)動(dòng)態(tài)配置系統(tǒng)功能。

3 軟件定義無(wú)線電的發(fā)展

軟件定義無(wú)線電技術(shù)采用現(xiàn)代化高端軟件進(jìn)行操縱與控制,具有高自動(dòng)化程度與較強(qiáng)的擴(kuò)展能力,打破傳統(tǒng)依賴于硬件發(fā)展的通信體系。軟件定義無(wú)線電體系的發(fā)展是通信領(lǐng)域的第三次革命,經(jīng)歷了從固定通信到移運(yùn)通信,模擬通信到數(shù)字通信的改革。

軟件定義無(wú)線電技術(shù)作為現(xiàn)代通信行業(yè)新技術(shù),在未來(lái)的無(wú)線電通信應(yīng)用中有良好的發(fā)展前景,可能成為未來(lái)無(wú)線電通信技術(shù)的支柱。軟件定義無(wú)線電技術(shù)可以多頻段多模式的手機(jī)、衛(wèi)星通信、智能天線以及蜂窩移動(dòng)通信系統(tǒng)、無(wú)線局域網(wǎng)等各個(gè)相關(guān)的應(yīng)用領(lǐng)域。

4 總結(jié)

隨著科學(xué)技術(shù)的不斷發(fā)展,軟件定義無(wú)線電系統(tǒng)在各個(gè)領(lǐng)域中得到了廣泛的應(yīng)用,無(wú)線通信體系朝著通信數(shù)字化、智能一體化的發(fā)展。由于我國(guó)目前無(wú)線通信體系硬件水平的有限,導(dǎo)致軟件無(wú)線電通信還達(dá)不到理想的要求。針對(duì)軟件通信體系與軟件定義無(wú)線電系統(tǒng)的研究,可以預(yù)見(jiàn),軟件定義無(wú)線電技術(shù)可能成為未來(lái)通信行業(yè)發(fā)展的核心內(nèi)容。⑤

注釋

① 范建華,王曉波,李云洲.基于軟件通信體系結(jié)構(gòu)的軟件定義無(wú)線電系統(tǒng)[J].通信技術(shù),2011,51(8):1031-1037.

② 劉獻(xiàn),張棟嶺,陳涵生.軟件定義無(wú)線電及軟件通信體系結(jié)構(gòu)的規(guī)范[J].計(jì)算機(jī)工程,2009,30(1):95-98.

③ 邱永紅,朱勤.基于軟件通信系統(tǒng)的無(wú)線通信系統(tǒng)研究[J].系統(tǒng)工程與電子技術(shù),2009,26(5)621-625.

篇7

關(guān)鍵詞:軟件;抽取;需求

信息化產(chǎn)業(yè)經(jīng)過(guò)幾十年的發(fā)展和建設(shè),正逐步從最初的用于解決局部問(wèn)題的小型或簡(jiǎn)單軟件,向復(fù)雜、成體系、網(wǎng)絡(luò)化的企業(yè)級(jí)系統(tǒng)擴(kuò)展。軟件系統(tǒng)的構(gòu)成不再只是模塊,越來(lái)越多的是功能構(gòu)件和子系統(tǒng),使軟件系統(tǒng)成為“系統(tǒng)的系統(tǒng)”,或叫復(fù)雜系統(tǒng)。如何構(gòu)建可擴(kuò)充、可裁剪、可生長(zhǎng)的滿足企業(yè)應(yīng)用的大型軟件系統(tǒng),已成為軟件業(yè)研究的重要課題之一。其中,復(fù)雜系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)是人們最關(guān)注的核心問(wèn)題。

1 軟件設(shè)計(jì)的需求分析

軟件通常是因需求才進(jìn)行設(shè)計(jì)開(kāi)發(fā),由用戶方從解決業(yè)務(wù)問(wèn)題的角度提出,均以專業(yè)的術(shù)語(yǔ)或事務(wù)性的語(yǔ)言描述。高質(zhì)量、清晰準(zhǔn)確的需求描述,可有效約束軟件系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)和功能定位。邊緣清晰、描述規(guī)范的要求,會(huì)在一定程度上降低軟件設(shè)計(jì)和開(kāi)發(fā)的成本,提高軟件質(zhì)量和開(kāi)發(fā)效率。但是,需求的成長(zhǎng)和變化,往往伴隨軟件的整個(gè)開(kāi)發(fā)過(guò)程,這種現(xiàn)狀使得軟件設(shè)計(jì)的難度不斷增加,程序開(kāi)發(fā)也從傳統(tǒng)的開(kāi)發(fā)方法向敏捷編程轉(zhuǎn)化。

用戶基于一定的業(yè)務(wù)需要提出需求,通常不能直接指導(dǎo)軟件的開(kāi)發(fā),只有經(jīng)過(guò)軟件設(shè)計(jì)者的分析提取,通過(guò)規(guī)范的技術(shù)語(yǔ)言描述,形成面向軟件開(kāi)發(fā)者的需求規(guī)格說(shuō)明,才能指導(dǎo)軟件的研制。抽取需求是軟件設(shè)計(jì)師必須完成的工作,傳統(tǒng)的需求抽取方法一般包括面談、問(wèn)卷、觀察和業(yè)務(wù)文檔研究等,這些方法簡(jiǎn)單、成本低,對(duì)業(yè)務(wù)邏輯清晰、封閉性較好的需求比較適合,而對(duì)復(fù)雜且很難封閉的需求,采用傳統(tǒng)的抽取方法,則風(fēng)險(xiǎn)很大。在軟件開(kāi)發(fā)領(lǐng)域,需求抽取方法有原型法、聯(lián)合應(yīng)用開(kāi)發(fā)法和快速應(yīng)用開(kāi)發(fā)法三種。

1.1 原型法

通過(guò)構(gòu)造軟件演示系統(tǒng),即根據(jù)理解的需求,建立一個(gè)快速而粗糙的工作模型,由可視化方法獲得用戶的反饋。

1.2 聯(lián)合應(yīng)用開(kāi)發(fā)法

是將領(lǐng)導(dǎo)、用戶、開(kāi)發(fā)人員、系統(tǒng)設(shè)計(jì)師等召集起來(lái)通過(guò)會(huì)議的方式,集中所有人的智慧,對(duì)要求進(jìn)行分析抽取。

1.3 快速應(yīng)用開(kāi)發(fā)法

就是集前兩種方法,加上最優(yōu)方案的系統(tǒng)研制而進(jìn)行的一種需求抽取方法,是一種快速軟件開(kāi)發(fā)方法。

以上是目前常被采用的需要抽取方法,但對(duì)于系統(tǒng)分析員或系統(tǒng)設(shè)計(jì)師來(lái)說(shuō),無(wú)論采用哪種方法,都必須面臨提取關(guān)鍵需求、判斷需求增長(zhǎng)點(diǎn)和發(fā)展方向的問(wèn)題。

2 需求分析對(duì)系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)的影響

2.1 抽取影響軟件結(jié)構(gòu)的需求,是需求分析的核心

關(guān)鍵需求是軟件結(jié)構(gòu)設(shè)計(jì)的核心,而提取關(guān)鍵需求是軟件結(jié)構(gòu)設(shè)計(jì)師必備的技能。以一個(gè)數(shù)據(jù)錄入軟件為例,一般需要提供一個(gè)交互式界面,由用戶鍵入所需數(shù)據(jù),提交存儲(chǔ)到文件或數(shù)據(jù)庫(kù)里即可。但用戶要求錄入的數(shù)據(jù)項(xiàng),應(yīng)能隨著業(yè)務(wù)的不斷變化而進(jìn)行增加或刪減,可多人同時(shí)進(jìn)行錄入。同時(shí),要求對(duì)存儲(chǔ)的數(shù)據(jù)按照需要的方式進(jìn)行查詢調(diào)閱,甚至進(jìn)行一定的復(fù)合計(jì)算或評(píng)估分析等。對(duì)于這樣的需求,錄入項(xiàng)不斷變化、多人同時(shí)操作、存儲(chǔ)要求等都是核心元素,這些元素將直接影響軟件結(jié)構(gòu)的設(shè)計(jì)。軟件設(shè)計(jì)應(yīng)考慮分布式并發(fā)機(jī)制和大量的數(shù)據(jù)存儲(chǔ)訪問(wèn)要求。這些需求均與功能無(wú)關(guān),但會(huì)影響軟件結(jié)構(gòu)的設(shè)計(jì)。數(shù)據(jù)庫(kù)訪問(wèn)相關(guān)的軟件,一般采用傳統(tǒng)的C/S結(jié)構(gòu)。當(dāng)用戶增加到一定量時(shí),該結(jié)構(gòu)會(huì)導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)器負(fù)載加重,甚至系統(tǒng)崩潰。為了適應(yīng)這種變化,應(yīng)采用多層結(jié)構(gòu),將用戶操作與數(shù)據(jù)存儲(chǔ)進(jìn)行分離。采用多層結(jié)構(gòu),不僅可以緩解數(shù)據(jù)庫(kù)服務(wù)訪問(wèn)壓力,還能降低數(shù)據(jù)庫(kù)變化給用戶操作帶來(lái)的影響。錄入項(xiàng)的變化需求,潛在地存在著數(shù)據(jù)項(xiàng)擴(kuò)充、界面調(diào)整等功能要求。一般情況下,完全適應(yīng)這種變化的軟件很難設(shè)計(jì)。為此,可把錄入項(xiàng)作為配置要素,界面設(shè)計(jì)和數(shù)據(jù)存儲(chǔ)項(xiàng)根據(jù)配置項(xiàng)進(jìn)行定制,應(yīng)用服務(wù)層要在接口設(shè)計(jì)上考慮數(shù)據(jù)項(xiàng)的擴(kuò)充能力。具有這類需求的軟件,一般由界面構(gòu)造工具、錄入界面、應(yīng)用服務(wù)軟件和數(shù)據(jù)庫(kù)服務(wù)器構(gòu)成。

在抽取關(guān)鍵需求的過(guò)程中,抽取與業(yè)務(wù)無(wú)關(guān)的需求非常重要?!芭c業(yè)務(wù)無(wú)關(guān)”指支撐業(yè)務(wù)功能運(yùn)行且與業(yè)務(wù)處理邏輯無(wú)關(guān)的功能。傳輸服務(wù)是典型的與業(yè)務(wù)無(wú)關(guān)的功能,在任意基于網(wǎng)絡(luò)運(yùn)行的軟件中,不可避免的需要信息傳輸功能的支持。抽取與業(yè)務(wù)無(wú)關(guān)的需求,需要分析人員有豐富的軟件設(shè)計(jì)經(jīng)驗(yàn),這種公共需求的抽取,有利于開(kāi)發(fā)過(guò)程中軟件的重用,可降低開(kāi)發(fā)成本。

2.2 關(guān)注需求中與規(guī)模發(fā)展相關(guān)的因素

軟件設(shè)計(jì)應(yīng)用規(guī)模的發(fā)展速度,是軟件結(jié)構(gòu)設(shè)計(jì)時(shí)應(yīng)考慮的主要需求之一。規(guī)模是考驗(yàn)軟件支撐能力的主要因素。規(guī)模的發(fā)展可能是用戶量的膨脹,也可能是數(shù)據(jù)量的迅猛增長(zhǎng),或兩者都有。軟件能力的成長(zhǎng)性設(shè)計(jì),通常會(huì)使開(kāi)發(fā)付出代價(jià),這是由于一方面在設(shè)計(jì)初期沒(méi)有考慮這種成長(zhǎng)性,導(dǎo)致設(shè)計(jì)失?。涣硪环矫?,雖然考慮了成長(zhǎng)性,但由于軟件復(fù)雜度的增大,增加了開(kāi)發(fā)成本和風(fēng)險(xiǎn)。因此,對(duì)并發(fā)和負(fù)載的設(shè)計(jì),應(yīng)在設(shè)計(jì)之前就要給予充分考慮。

2.3 捕捉需求的變化方向

確定需求的增長(zhǎng)點(diǎn)是考驗(yàn)軟件適應(yīng)能力的關(guān)鍵。需求的變化和調(diào)整是客觀存在的,軟件設(shè)計(jì)者分析需求時(shí),應(yīng)考慮到需求中可能存在的變化點(diǎn)或變化趨勢(shì),以提高軟件的適應(yīng)能力和成長(zhǎng)能力。需求的增長(zhǎng)點(diǎn)通常隱含在企業(yè)發(fā)展和技術(shù)發(fā)展中,一類是業(yè)務(wù)發(fā)展引起的工作流變化或增長(zhǎng)。這種軟件結(jié)構(gòu)應(yīng)具備新業(yè)務(wù)處理軟件的集成能力;一類是業(yè)務(wù)轉(zhuǎn)向。原有的業(yè)務(wù)處理軟件不能滿足轉(zhuǎn)向后的業(yè)務(wù)處理要求,存在改造、裁剪、新增能力等潛在需求。軟件結(jié)構(gòu)還應(yīng)具備可裁剪、可擴(kuò)充的能力,否則將會(huì)造成巨大的經(jīng)濟(jì)損失。

抓住需求的變化點(diǎn),設(shè)計(jì)合適的體系結(jié)構(gòu),可增強(qiáng)軟件的生命力。面對(duì)需求多變的現(xiàn)實(shí),降低結(jié)構(gòu)的耦合度是有效緩解軟件適應(yīng)能力的方法之一。但是,降低耦合度一般會(huì)帶來(lái)效率或系統(tǒng)復(fù)雜度的上升。因此,小型軟件選擇這種方法應(yīng)慎重。(下轉(zhuǎn)第16頁(yè))(上接第13頁(yè))

綜上所述,設(shè)計(jì)滿足需求的軟件結(jié)構(gòu),重點(diǎn)關(guān)注的是功能,而設(shè)計(jì)適應(yīng)需求變化的軟件結(jié)構(gòu),關(guān)注的往往是非功能性需求,這需要系統(tǒng)設(shè)計(jì)師除了具備豐富的經(jīng)驗(yàn)和敏銳的洞察力外,還應(yīng)花大量的時(shí)間和精力同用戶不斷溝通與交流,從中獲取最需要的需求,以支持軟件整體結(jié)構(gòu)的設(shè)計(jì)。

參考文獻(xiàn):

篇8

【關(guān)鍵詞】計(jì)算機(jī)體系 結(jié)構(gòu)軟件模擬技術(shù) 分析

雖然軟件模擬技術(shù)在計(jì)算機(jī)體系結(jié)構(gòu)上的應(yīng)用起步較晚,但是已經(jīng)取得了一定的成就,在現(xiàn)代處理器或計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中,體系結(jié)構(gòu)軟件模擬技術(shù)已成為一個(gè)不可缺少的環(huán)節(jié)。盡管如此,軟件模擬技術(shù)仍然存在著許多的問(wèn)題,由于軟件模擬技術(shù)的開(kāi)發(fā)工藝比較復(fù)雜,還需要花費(fèi)大量的時(shí)間對(duì)其進(jìn)行標(biāo)準(zhǔn)測(cè)試,所以為了能夠讓它在計(jì)算機(jī)體系結(jié)構(gòu)方面的應(yīng)用能夠達(dá)到人們對(duì)計(jì)算機(jī)能力日益增長(zhǎng)的需求,需要對(duì)計(jì)算機(jī)體系機(jī)構(gòu)軟件模擬技術(shù)進(jìn)行分析。

1 計(jì)算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)存在的問(wèn)題

1.1 軟件模擬技術(shù)的開(kāi)發(fā)難度比較大

由于計(jì)算機(jī)的機(jī)構(gòu)極其復(fù)雜,當(dāng)前如果要將計(jì)算機(jī)里邊的晶體管和電路全部通過(guò)模擬技術(shù)實(shí)現(xiàn)是不太現(xiàn)實(shí)的操作,所以只能采取結(jié)構(gòu)簡(jiǎn)化措施,按照一定的層次分配對(duì)計(jì)算機(jī)的體系結(jié)構(gòu)進(jìn)行簡(jiǎn)化。但是在同等情況下,計(jì)算機(jī)體系結(jié)構(gòu)在簡(jiǎn)化之后依舊相當(dāng)?shù)膹?fù)雜,不利于軟件模擬技術(shù)的開(kāi)發(fā)。所以,為了能夠解決計(jì)算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)在應(yīng)用過(guò)程中的這一難題,編程人員經(jīng)過(guò)研究發(fā)現(xiàn)可以使用C語(yǔ)言當(dāng)中的功能語(yǔ)言來(lái)開(kāi)發(fā)相對(duì)應(yīng)的模擬軟件。這種方式下開(kāi)發(fā)出來(lái)的軟件和其它方式開(kāi)發(fā)的軟件相比,具有明顯的優(yōu)勢(shì),比如在使用過(guò)程更不容易出錯(cuò),還可以減少對(duì)能源資源以及時(shí)間的消耗。當(dāng)前我國(guó)在軟件模擬技術(shù)開(kāi)發(fā)方面的工作,基本上都是在原本的模擬器基礎(chǔ)上開(kāi)始的,并沒(méi)有嚴(yán)格遵守從最開(kāi)始的步驟出發(fā)的要求,由于軟件模擬技術(shù)的復(fù)雜性,讓許多開(kāi)發(fā)出來(lái)的軟件在推廣使用之前受到廣大用戶的質(zhì)疑。因此在軟件模擬技術(shù)的開(kāi)展工作上,需要加大對(duì)軟件設(shè)計(jì)的力度,以提高軟件運(yùn)行的準(zhǔn)確性。

1.2 模擬器的設(shè)計(jì)時(shí)間長(zhǎng)

計(jì)算機(jī)主機(jī)上的一大重要運(yùn)行程序就是模擬器,在模擬運(yùn)行系統(tǒng)運(yùn)行過(guò)程的時(shí)候,記錄處理器運(yùn)行的狀態(tài)一般都是利用時(shí)鐘級(jí)別以上的記錄器。在這種狀態(tài)下包含大量的數(shù)據(jù)在當(dāng)中,在模擬運(yùn)行速度方面產(chǎn)生了直接的影響。目前我國(guó)最快的模擬器運(yùn)行速度遠(yuǎn)遠(yuǎn)慢于計(jì)算機(jī)主機(jī)的硬件運(yùn)行速度,通過(guò)軟件模擬技術(shù)讓處理器的運(yùn)行速度不斷提高,為能夠同時(shí)提高軟件模擬技術(shù)的測(cè)試運(yùn)行性能,相關(guān)組織也相應(yīng)的了測(cè)試標(biāo)準(zhǔn)程序,解決因測(cè)試耗費(fèi)的時(shí)間過(guò)長(zhǎng)而引起的低工作效率問(wèn)題。

1.3 軟件模擬技術(shù)中模擬器的運(yùn)行結(jié)果有待提高

當(dāng)前我們主要把計(jì)算機(jī)體系結(jié)構(gòu)模擬器開(kāi)發(fā)的主要過(guò)程分為三個(gè)階段,其一是目標(biāo)體系的構(gòu)建,其二是模擬器結(jié)構(gòu)的設(shè)計(jì),其三是模擬器的實(shí)現(xiàn)。這三個(gè)階段中目標(biāo)體系的構(gòu)建主要是針對(duì)迷你軟件的開(kāi)發(fā),是它開(kāi)發(fā)過(guò)程中的一個(gè)重要環(huán)節(jié),但是在運(yùn)行結(jié)果方面存在很大的缺陷。第二個(gè)階段出現(xiàn)的問(wèn)題主要體現(xiàn)在它的細(xì)節(jié)方面,雖然這個(gè)過(guò)程中能夠?qū)τ?jì)算機(jī)的體系結(jié)構(gòu)目標(biāo)具有比較明確的理解,但是容易出現(xiàn)細(xì)節(jié)性的錯(cuò)誤。綜上所述,軟件模擬技術(shù)在測(cè)試運(yùn)行結(jié)果的時(shí)候需要特別注意一些運(yùn)行方面的錯(cuò)誤,避免給模擬器運(yùn)行的結(jié)果帶來(lái)嚴(yán)重的影響。

2 提高計(jì)算機(jī)體系結(jié)構(gòu)軟件模擬技術(shù)的有效措施

2.1 相應(yīng)的減少模擬器運(yùn)行的參數(shù)

為了能夠提高計(jì)算機(jī)的運(yùn)行速度,可以針對(duì)計(jì)算機(jī)的運(yùn)行過(guò)程是用一些具有代表性的測(cè)試參數(shù),并適當(dāng)對(duì)一些模擬器的測(cè)試程序進(jìn)行修改,以減少模擬器運(yùn)行的參數(shù),提高模擬器運(yùn)行的測(cè)試效果,節(jié)約程序測(cè)試的使用時(shí)間。可以隨意選去一些模擬器的運(yùn)行參數(shù),將它們?cè)O(shè)置在模擬器設(shè)置中,執(zhí)行的結(jié)果為最終結(jié)果,如果參數(shù)的訊息可以在模擬器中找到對(duì)應(yīng)的結(jié)果,則可以將其參數(shù)保存,反之則可以進(jìn)行刪減。通過(guò)減少運(yùn)行參數(shù)的方式,不僅提高了運(yùn)行的速度,還可以減少測(cè)試過(guò)程的誤差,降低錯(cuò)誤率,提高軟件模擬技術(shù)在計(jì)算機(jī)體系結(jié)構(gòu)方面的運(yùn)用。

2.2 減少模擬器運(yùn)行指令的數(shù)量

計(jì)算機(jī)作為當(dāng)代社會(huì)信息傳播的主要方式之一,在運(yùn)行過(guò)程中需要消耗大量的數(shù)據(jù),所以如果要對(duì)其運(yùn)行過(guò)程進(jìn)行全面的模擬,需要在程序中添加大量的運(yùn)行指令來(lái)滿足要求,而這些指令也正是運(yùn)行耗費(fèi)大量時(shí)間的關(guān)鍵所在。所以,為了能夠很好的解決這一弊端,隨著我國(guó)科學(xué)技術(shù)的不斷進(jìn)步,以及對(duì)軟件模擬技術(shù)的深入研究,發(fā)現(xiàn)如果采用全部的指令來(lái)完成軟件的模擬工作是行不通的,但是如果只是采用其中的部分指令,讓這部分指令的運(yùn)行過(guò)程來(lái)代替全部指令的運(yùn)行過(guò)程,將讓模擬效果大幅度提高。因此同時(shí)也面臨著一個(gè)重要難題,在眾多的指令中應(yīng)該如何取舍才能完美的取代全部指令的運(yùn)行過(guò)程。在做出指令選擇的時(shí)候需要了解各指令之間的差異,對(duì)它的運(yùn)行效果有所了解,然后進(jìn)行篩選,在保證不直接影響模擬效果的前提下,選出具有代表性的指令。當(dāng)前主要的指令選擇方式有兩種,一個(gè)是直接選擇指令,另一個(gè)是通過(guò)統(tǒng)計(jì)學(xué)的方式對(duì)指令進(jìn)行選擇。

3 結(jié)語(yǔ)

隨著我國(guó)信息的傳輸量大幅度提高,對(duì)計(jì)算機(jī)體系結(jié)構(gòu)要求的提出的更高要求,軟件模擬技術(shù)被大量的推廣和應(yīng)用,在計(jì)算機(jī)的發(fā)展過(guò)程中起到重要作用,對(duì)這項(xiàng)技術(shù)進(jìn)行分析就是為了能夠促進(jìn)這項(xiàng)技術(shù)更好的發(fā)展。

參考文獻(xiàn)

[1]李明樹(shù),楊秋松,翟健.軟件過(guò)程建模方法研究[J].軟件學(xué)報(bào),2009(03).

[2]許建衛(wèi),陳明宇,楊偉,潘曉雷,鄭規(guī),趙健博,孫凝暉.計(jì)算機(jī)體系結(jié)構(gòu)模擬器技術(shù)和發(fā)展[J].系統(tǒng)仿真學(xué)報(bào), 2009(20).

[3]王杰生,李舟軍,李夢(mèng)君.用描述邏輯進(jìn)行語(yǔ)義Web服務(wù)組合[J].軟件學(xué)報(bào), 2008(04).

篇9

中圖分類號(hào):G642

摘要:分析軟件工程專業(yè)的崗位需求和知識(shí)結(jié)構(gòu),提出適合地方性應(yīng)用型高校的軟件工程專業(yè)核心課程設(shè)置方案和體系結(jié)構(gòu)。關(guān)鍵詞:地方高校;軟件工程;課程體系

0 引言

進(jìn)入21世紀(jì),以互聯(lián)網(wǎng)為核心的網(wǎng)絡(luò)與應(yīng)用得到快速發(fā)展,信息技術(shù)的應(yīng)用模式發(fā)生了巨大變化。在開(kāi)放、動(dòng)態(tài)、復(fù)雜的網(wǎng)絡(luò)環(huán)境下,靈活、可信、協(xié)同的計(jì)算資源、數(shù)據(jù)資源、軟件資源、服務(wù)資源等各種信息資源的共享和利用、無(wú)處不在的普適計(jì)算、主動(dòng)可信的服務(wù)計(jì)算,均對(duì)軟件工程提出了巨大挑戰(zhàn)。

黃淮學(xué)院軟件工程專業(yè)是河南省省級(jí)特色專業(yè),近年來(lái)緊緊圍繞培養(yǎng)“就業(yè)能稱職、創(chuàng)業(yè)有能力、深造有基礎(chǔ)、發(fā)展有后勁”的高素質(zhì)技術(shù)技能型人才的目標(biāo)定位,積極推進(jìn)應(yīng)用型人才培養(yǎng)模式改革,緊扣產(chǎn)業(yè)辦專業(yè),牽手企業(yè)促學(xué)業(yè),強(qiáng)化職業(yè)促就業(yè),不斷提升專業(yè)價(jià)值,全面提高應(yīng)用型人才培養(yǎng)質(zhì)量。作為本科層次教育,重視較寬厚的基礎(chǔ)知識(shí)的傳授;作為應(yīng)用型人才的培養(yǎng)定位,重視面向生產(chǎn)、經(jīng)營(yíng)、管理實(shí)際,面向經(jīng)濟(jì)社會(huì)活動(dòng)實(shí)際,培養(yǎng)運(yùn)用所學(xué)知識(shí)分析問(wèn)題、解決問(wèn)題的能力,同時(shí)也要培養(yǎng)學(xué)生適應(yīng)社會(huì)的能力、創(chuàng)業(yè)發(fā)展能力。應(yīng)用型本科院校課程體系的設(shè)計(jì)應(yīng)有其內(nèi)在的規(guī)律與特定的模式。基于此,筆者以黃淮學(xué)院為例,對(duì)這一問(wèn)題做如下探討。

1 軟件工程課程體系建設(shè)原則

原則1:構(gòu)建課程體系的重要原則是核心課程體系的構(gòu)建。核心課程體系的構(gòu)建不是計(jì)算機(jī)科學(xué)專業(yè)課程和軟件工程類課程的簡(jiǎn)單堆砌,而是對(duì)計(jì)算機(jī)學(xué)科課程進(jìn)行有效的裁減和調(diào)整。對(duì)比軟件工程學(xué)科和計(jì)算機(jī)科學(xué)技術(shù)學(xué)科可以看出,計(jì)算機(jī)科學(xué)的主要目標(biāo)是為解決計(jì)算問(wèn)題尋找有效的、能產(chǎn)生更好性能的途徑;軟件工程的主要目標(biāo)更注重具體方法和技術(shù)的應(yīng)用,軟件工程除了關(guān)注解決軟件問(wèn)題的理論、原則、方法和技術(shù),還關(guān)注軟件質(zhì)量、軟件過(guò)程、項(xiàng)目管理、團(tuán)隊(duì)合作、與用戶/客戶相關(guān)的問(wèn)題,研究的對(duì)象是軟件開(kāi)發(fā)過(guò)程中的所有活動(dòng)。軟件工程專業(yè)的培養(yǎng)目標(biāo)是合格的軟件工程師,具有更明確的職業(yè)特性。

原則2:應(yīng)用型本科高校軟件工程專業(yè)不是簡(jiǎn)單復(fù)制211或985高校的課程體系,而要根據(jù)培養(yǎng)“就業(yè)能稱職、創(chuàng)業(yè)有能力、深造有基礎(chǔ)、發(fā)展有后勁”的目標(biāo),結(jié)合實(shí)際工作崗位職業(yè)需求,基于傳統(tǒng)本科教育與職業(yè)教育相互滲透的培養(yǎng)理念,在通才與專才之間尋找平衡點(diǎn),專業(yè)知識(shí)體系夠用為主,“軟、硬并重”,以第一課堂為核心,以行業(yè)、企業(yè)和管理服務(wù)崗位對(duì)人才知識(shí)、能力、素質(zhì)的具體要求構(gòu)建課程體系。

原則3:權(quán)衡軟件工程專業(yè)本科畢業(yè)生所應(yīng)具備知識(shí)的深度、廣度和適應(yīng)性。在大學(xué)教育期間,學(xué)生應(yīng)學(xué)習(xí)的知識(shí)大致可以劃分為4個(gè).方面:人文社會(huì)科學(xué)知識(shí),這是做人之根本;數(shù)學(xué)知識(shí),這是軟件工程專業(yè)的底層基礎(chǔ);專業(yè)知識(shí),是軟件工程學(xué)科之特色;相關(guān)領(lǐng)域知識(shí),是學(xué)生就業(yè)之砝碼。知識(shí)是基礎(chǔ),能力是知識(shí)的綜合體現(xiàn)。對(duì)于軟件工程專業(yè)的學(xué)生應(yīng)該著力培養(yǎng)以下能力:專業(yè)必備的開(kāi)發(fā)、設(shè)計(jì)能力,能終身受用的學(xué)習(xí)能力,培養(yǎng)領(lǐng)導(dǎo)力的處事能力和積累財(cái)富的創(chuàng)新能力。在注重學(xué)科知識(shí)的系統(tǒng)性和嚴(yán)謹(jǐn)性基礎(chǔ)上強(qiáng)調(diào)實(shí)際能力培養(yǎng)的重要性。

2 軟件工程專業(yè)課程體系基本構(gòu)架

黃淮學(xué)院軟件工程專業(yè)知識(shí)體系如圖1所示,該知識(shí)體系以人文外語(yǔ)知識(shí)和科學(xué)基礎(chǔ)知識(shí)為基本,軟件工程專業(yè)基礎(chǔ)知識(shí)為中堅(jiān),軟件工程與軟件管理專業(yè)知識(shí)為塔頂,輔以實(shí)踐和頂崗實(shí)訓(xùn)構(gòu)成軟件工程專業(yè)知識(shí)體系金字塔。

人文與外語(yǔ)知識(shí)包含由教育部統(tǒng)一要求的思想政治類課程、大學(xué)英語(yǔ)、專業(yè)外語(yǔ)以及創(chuàng)新創(chuàng)意和職業(yè)規(guī)劃方面的拓展課程;學(xué)科基礎(chǔ)知識(shí)則涉及數(shù)學(xué)系列課程、電子基礎(chǔ)課程和計(jì)算機(jī)科學(xué)基礎(chǔ)課程;專業(yè)基礎(chǔ)知識(shí)和專業(yè)技能知識(shí)包含程序設(shè)計(jì)基礎(chǔ)、軟件工程和軟件管理等,具體教學(xué)過(guò)程中可以涉及部分軟件工具和軟件產(chǎn)品作教學(xué)載體。針對(duì)軟件行業(yè)普遍反映的畢業(yè)生獨(dú)立解決問(wèn)題能力不強(qiáng)、責(zé)任心差、對(duì)問(wèn)題進(jìn)行抽象和分析的能力差的問(wèn)題,設(shè)計(jì)了如圖2所示的實(shí)踐能力漸進(jìn)培養(yǎng)模式,該模式貫穿在課程教學(xué)、實(shí)驗(yàn)、實(shí)訓(xùn)和畢業(yè)設(shè)計(jì)等教學(xué)過(guò)程中。

3 軟件工程課程系列的設(shè)計(jì)

黃淮學(xué)院軟件工程專業(yè)的課程體系既考慮了工程性、技術(shù)性、實(shí)用性、系統(tǒng)性、綜合性和復(fù)合型,又注意到強(qiáng)化基礎(chǔ)在有效解決復(fù)雜軟件的構(gòu)造和應(yīng)用方面能起到關(guān)鍵性作用,采取了根據(jù)就業(yè)崗位的能力需求進(jìn)行知識(shí)分解,由課程模塊構(gòu)建系列課程,分階段互動(dòng)式的課程設(shè)置方法。具體安排如圖3所示。

從圖3可以看到基礎(chǔ)知識(shí)教學(xué)階段共2學(xué)年,這樣設(shè)計(jì)是為了強(qiáng)化學(xué)生基礎(chǔ)知識(shí),實(shí)現(xiàn)“基礎(chǔ)扎實(shí)、學(xué)科認(rèn)知和專業(yè)融入”的目標(biāo)。公共基礎(chǔ)系列課程針對(duì)人文與外語(yǔ)知識(shí),學(xué)科基礎(chǔ)理論系列課程的啟動(dòng)從數(shù)學(xué)基礎(chǔ)課程系列和計(jì)算機(jī)導(dǎo)論開(kāi)始,內(nèi)容貫穿軟件工程所涉及的計(jì)算機(jī)系統(tǒng)、程序設(shè)計(jì)語(yǔ)言、軟件工程、網(wǎng)絡(luò)技術(shù)等專業(yè)基礎(chǔ)知識(shí)的知識(shí)點(diǎn)以及與信息技術(shù)有關(guān)的社會(huì)人文等知識(shí),力求使學(xué)生對(duì)所學(xué)專業(yè)有比較深入的了解,樹(shù)立專業(yè)學(xué)習(xí)的責(zé)任感和自豪感。其中包括高級(jí)語(yǔ)言程序設(shè)計(jì)、程序設(shè)計(jì)基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)和面向?qū)ο蟪绦蛟O(shè)計(jì),旨在引導(dǎo)學(xué)生領(lǐng)會(huì)計(jì)算思維的同時(shí)訓(xùn)練其編程能力;硬件與網(wǎng)絡(luò)系列課程包含數(shù)字邏輯、計(jì)算機(jī)組成原理和計(jì)算機(jī)網(wǎng)絡(luò),軟件工程系列基礎(chǔ)課程包括操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)原理和WEB程序設(shè)計(jì),這樣安排力求達(dá)到“編程、網(wǎng)絡(luò)和應(yīng)用開(kāi)發(fā)”三位一體的教學(xué)目標(biāo)。

專業(yè)技能教學(xué)階段共設(shè)36周,設(shè)計(jì)思路是強(qiáng)調(diào)對(duì)學(xué)生工程性、技術(shù)性、實(shí)用性、系統(tǒng)性、綜合性和復(fù)合型能力的培養(yǎng),實(shí)現(xiàn)“熟悉軟件工程技能、樹(shù)立系統(tǒng)概念和掌握軟件設(shè)計(jì)開(kāi)發(fā)技術(shù)”3個(gè)目標(biāo)。在這一階段中,綜合考慮主干專業(yè)課程和特色課程的設(shè)置,基于辦學(xué)特色設(shè)置若干動(dòng)態(tài)可擴(kuò)充的課程模塊,全面考慮課程之間的關(guān)聯(lián),強(qiáng)調(diào)統(tǒng)一設(shè)計(jì)、統(tǒng)一規(guī)劃。所有方向以系統(tǒng)分析與建模、軟件工程、軟件測(cè)試技術(shù)和嵌入式系統(tǒng)為基礎(chǔ),學(xué)生必須選修WEB程序開(kāi)發(fā)和嵌入式軟件兩個(gè)專業(yè)方向中的一個(gè)課程模塊,WEB程序開(kāi)發(fā)方向設(shè)置網(wǎng)站前臺(tái)開(kāi)發(fā)技術(shù)、數(shù)據(jù)庫(kù)應(yīng)用技術(shù)、軟件框架技術(shù)、軟件需求工程和現(xiàn)代軟件開(kāi)發(fā)技術(shù);嵌入式軟件專業(yè)方向開(kāi)設(shè)單片機(jī)與接口技術(shù)、嵌入式Linux程序設(shè)計(jì)、移動(dòng)編程技術(shù)、手持設(shè)備軟件開(kāi)發(fā)和嵌入式系統(tǒng)開(kāi)發(fā)綜合實(shí)踐,同時(shí)要求至少選修4門(mén)任選課以拓展專業(yè)知識(shí)。

工程實(shí)習(xí)教學(xué)階段開(kāi)設(shè)在第4學(xué)年,設(shè)計(jì)思路是通過(guò)具體項(xiàng)目參與真刀真槍的項(xiàng)目訓(xùn)練,通過(guò)畢業(yè)設(shè)計(jì)與論文培養(yǎng)總結(jié)概括能力,實(shí)現(xiàn)理論與實(shí)際結(jié)合、技能與職業(yè)素質(zhì)結(jié)合的目標(biāo)。

在軟件工程專業(yè)的課程體系設(shè)計(jì)中還應(yīng)充分考慮課程間的銜接性、系統(tǒng)性和創(chuàng)新能力培養(yǎng)。教學(xué)計(jì)劃中通過(guò)設(shè)置10門(mén)設(shè)計(jì)類課程,加強(qiáng)課內(nèi)實(shí)踐教學(xué),常設(shè)性的學(xué)生軟件設(shè)計(jì)比賽如ACM競(jìng)賽和軟件設(shè)計(jì)大賽也被引入教學(xué)過(guò)程中。上述思路形成的課程體系更細(xì)化的結(jié)構(gòu)如圖4所示。

4 結(jié)語(yǔ)

一個(gè)好的軟件工程課程體系應(yīng)該在一個(gè)或若干個(gè)應(yīng)用領(lǐng)域方面體現(xiàn)出自己的特色,為了幫助學(xué)生在適當(dāng)?shù)纳疃壬蠈W(xué)習(xí)其他應(yīng)用領(lǐng)域的知識(shí),軟件工程課程體系應(yīng)該安排相應(yīng)的支持課程。軟件工程的應(yīng)用領(lǐng)域如此廣泛,軟件工程課程體系不可能也不應(yīng)該面面俱到。在相關(guān)領(lǐng)導(dǎo)的支持下,黃淮學(xué)院軟件工程專業(yè)建設(shè)已取得了可喜的成果。軟件工程專業(yè)在2010被批準(zhǔn)為河南省特色專業(yè),2012年批準(zhǔn)為河南省專業(yè)綜合改革試點(diǎn)專業(yè),每年畢業(yè)學(xué)生到各大公司進(jìn)行項(xiàng)目實(shí)踐,并推薦部分優(yōu)秀學(xué)生到IBM等業(yè)界著名企業(yè)實(shí)習(xí),獲得各公司的一致好評(píng)。這幾年的實(shí)踐表明,教學(xué)計(jì)劃的設(shè)計(jì)是確保培養(yǎng)目標(biāo)實(shí)現(xiàn)的保障,課程體系的設(shè)計(jì)是合理安排教學(xué)過(guò)程的關(guān)鍵。學(xué)院軟件工程專業(yè)的每一位老師在這幾年的教學(xué)改革中付出了辛勤的勞動(dòng),但回首軟件工程專業(yè)取得的進(jìn)步,大家都感到心情舒暢。高等院校的教學(xué)改革是永恒的主題,作為應(yīng)用型本科院校軟件工程專業(yè)的課程體系更應(yīng)與時(shí)俱進(jìn),我們一定會(huì)在現(xiàn)有基礎(chǔ)上進(jìn)一步優(yōu)化軟件工程專業(yè)的課程體系,以期獲得更好的結(jié)果。

參考文獻(xiàn):

[1]楊青,劉洪星.軟件工程學(xué)科的特征及其課程體系設(shè)計(jì)原則[J].武漢理工大學(xué)學(xué)報(bào),2005,27(2):183-186.

[2]曾永衛(wèi),林志剛,楊堯彪.應(yīng)用型本科院校課程體系頂層設(shè)計(jì)的探討[J].湖南工程學(xué)院學(xué)報(bào),2007,17(3):65-67.

[3]祁文青,紀(jì)鵬,馮運(yùn)仿,等.計(jì)算機(jī)類應(yīng)用型本科的人才定位和課程體系[J].黃石理工學(xué)院學(xué)報(bào),2012,28(1):60-63.

篇10

關(guān)鍵詞:明挖車(chē)站;SAP2000;車(chē)站結(jié)構(gòu);板單元;殼單元;風(fēng)道;

中圖分類號(hào):U231文獻(xiàn)標(biāo)識(shí)碼: A

一.概述

明挖地鐵車(chē)站的計(jì)算通常采用平面剛架結(jié)構(gòu)模型[1],在與線路垂直方向截取尺寸,荷載條件不同的截面進(jìn)行車(chē)站橫斷面計(jì)算,再沿線路走向截取縱斷面,計(jì)算梁柱受力。這種計(jì)算方式有著計(jì)算模型受力機(jī)理清晰,建模簡(jiǎn)便,設(shè)計(jì)保守的優(yōu)點(diǎn),但相對(duì)于車(chē)站三維整體建模,二維模型也有其弊端:首先二維模型對(duì)于車(chē)站斷面形式變化較少的車(chē)站相對(duì)簡(jiǎn)便,但如果車(chē)站斷面形式多樣,尤其是縱斷面需要不止計(jì)算一種的情況下,其計(jì)算量會(huì)非常大,因?yàn)槠淇v斷面,每段梁的荷載需用板帶法進(jìn)行手動(dòng)計(jì)算再進(jìn)行進(jìn)行施加,如果柱跨不均勻,車(chē)站寬度變化多,會(huì)大大增加建模工作量,而三維整體建模只需建模一次,并且無(wú)需手動(dòng)計(jì)算梁?jiǎn)卧奢d,所以相對(duì)于三維維整體建模,二維模型計(jì)算并不一定能做到簡(jiǎn)便省時(shí);從受力考慮,二維模型計(jì)算沒(méi)有考慮板的縱向剛度,即板不能與梁共同承受彎矩,這顯然不合理,會(huì)造成梁?jiǎn)卧獜澗乇葘?shí)際大,造成經(jīng)濟(jì)浪費(fèi);另外由于平面模型自身的局限性,無(wú)法模擬側(cè)墻風(fēng)道出入口開(kāi)洞,盾構(gòu)開(kāi)孔,中板開(kāi)孔等細(xì)部計(jì)算。因此需要適時(shí)考慮應(yīng)用三維模型計(jì)算,減少工作量,提高結(jié)構(gòu)設(shè)計(jì)的可靠性和經(jīng)濟(jì)性。

二.明挖地鐵車(chē)站結(jié)構(gòu)

明挖車(chē)站結(jié)構(gòu)不同于地上混凝土框架結(jié)構(gòu),其頂,中,底板極少采用雙向板肋梁樓蓋與無(wú)梁樓蓋結(jié)構(gòu),但也不同于單向板肋梁樓蓋,通常,延線路方向梁為主梁,在垂直于線路方向的位置,只有設(shè)置扶梯吊鉤與車(chē)站高度寬度變化等位置才設(shè)置次梁,一般只有單方向的主梁;明挖車(chē)站沒(méi)有基礎(chǔ),其底板結(jié)構(gòu)即是基礎(chǔ)結(jié)構(gòu),以溫克爾彈簧的連接方式作用于地基土體;側(cè)墻是車(chē)站結(jié)構(gòu)的主要承重結(jié)構(gòu),車(chē)站側(cè)向土體土壓力作用在側(cè)墻上,平衡于頂、中、底板的軸力。車(chē)站頂板,底板與側(cè)墻連接處通過(guò)腋角增強(qiáng)剛度。在整個(gè)受力體系中,墻、板結(jié)構(gòu)發(fā)揮了重要的作用,這與以梁柱結(jié)構(gòu)為主的地上混凝土框架結(jié)構(gòu)形成了鮮明的對(duì)比。在這種情況下,板結(jié)構(gòu)不能簡(jiǎn)單的歸為單向板還是雙向板,而是在SAP2000軟件中,通過(guò)單元網(wǎng)格劃分,與梁柱體系協(xié)同受力。

在SAP2000軟件中可以實(shí)現(xiàn)面單元的網(wǎng)絡(luò)劃分,通過(guò)網(wǎng)絡(luò)劃分后的板單元,其邊緣處的梁?jiǎn)卧沧詣?dòng)進(jìn)行劃分并于劃分后的板單元共用節(jié)點(diǎn)。根據(jù)車(chē)站結(jié)構(gòu)體系的特點(diǎn),面荷載需施加“均布荷載”而不是“均勻分布到框架”,實(shí)際計(jì)算中,如果采用“均勻分布到框架”的方式施加荷載則結(jié)算結(jié)構(gòu)明顯比實(shí)際偏小。

三.明挖車(chē)站結(jié)構(gòu)在SAP2000有限元軟件在有限元軟件中的實(shí)現(xiàn)

3.1 工程概況

本次分析選取蘭州市城市軌道交通1號(hào)線一期工程拱星墩站,位于城關(guān)區(qū)現(xiàn)狀道路東崗東路與焦家灣路丁字路口處,車(chē)站沿東崗東路東西方向鋪設(shè)。標(biāo)準(zhǔn)段:寬度為20.10~20.70m,總高13.54~14.23m,結(jié)構(gòu)底板埋深約17.36~18.05m;盾構(gòu)加深段:寬度為30.60m,總高14.87m,結(jié)構(gòu)底板埋深約18.24m。中心里程處結(jié)構(gòu)頂板覆土厚約3.82m。

拱星墩站所處場(chǎng)地地基土自上而下為:地表一般分布有人工填土;其下為全新統(tǒng)的沖積黃土狀土、卵石,底部為下更新統(tǒng)卵石。

3.2主要構(gòu)件材料及尺寸

1) 材料的選擇須滿足結(jié)構(gòu)強(qiáng)度及耐久性要求,按照《混凝土結(jié)構(gòu)設(shè)計(jì)規(guī)范》[2](GB50010--2010)及《混凝土結(jié)構(gòu)耐久性設(shè)計(jì)規(guī)范》[3]((GB/T50476--2008)要求,主要受力構(gòu)件材料選取如下:

混凝土:頂、底板和側(cè)墻混凝土強(qiáng)度等級(jí)為C50,抗?jié)B等級(jí)為P12,中板為C35,柱為C50,素混凝土墊層為C20;主筋采用HRB400

2)主要構(gòu)件尺寸

標(biāo)準(zhǔn)段:頂板厚800mm,中板厚400mm,底板厚900mm。頂、中、底板與內(nèi)襯墻支座處均設(shè)斜托局部加厚

3.2 模型實(shí)現(xiàn)

SAP2000是獨(dú)立的基于有限元的結(jié)構(gòu)分析和設(shè)計(jì)程序。它提供了功能強(qiáng)大的交互式用戶界面,帶有很多工具幫助快速和精確創(chuàng)建模型,同時(shí)具有分析最復(fù)雜工程所需的分析技術(shù)[4]。 SAP2000默認(rèn)情況下有兩個(gè)操作窗口,可以在這兩個(gè)操作窗口中可以分別設(shè)置顯示模式,顯示對(duì)象和結(jié)構(gòu)激活、鈍化情況,非常方便,另外與Midas軟件不同,SAP2000可以在劃分單元網(wǎng)絡(luò)之后,可對(duì)劃分后的單元進(jìn)行整體指定操作,例如施加荷載,定義截面、邊界條件等,它還可以將劃分精細(xì)程度不同的相鄰板單元或?qū)嶓w單元實(shí)現(xiàn)變形協(xié)調(diào)。但在施加漸變荷載方面,SAP2000只能通過(guò)定義節(jié)點(diǎn)樣式來(lái)進(jìn)行施加,不如Midas操作靈活。

在SAP2000中,板殼對(duì)象按照受力特點(diǎn)可以分為三類:膜單元、板單元和殼單元。膜單元只具有平面內(nèi)的剛度;板單元與膜單元相反,只具有平面外的剛度,承受彎曲力,模擬薄梁或者地基梁等;殼單元的力學(xué)行為是膜單元與板單元之和,是真正意義上的殼單元。 墻板結(jié)構(gòu)是明挖車(chē)站的受力主體。模型實(shí)現(xiàn)過(guò)程中的每一個(gè)細(xì)節(jié),決定模型質(zhì)量與受力分析的準(zhǔn)確性。本次車(chē)站所有墻,板結(jié)構(gòu)均采用殼單元進(jìn)行模擬,并應(yīng)選擇厚殼。其中,參數(shù)“Thickness of Membrane” 用于計(jì)算殼元或膜元的面內(nèi)剛度和用于計(jì)算自重和質(zhì)量(動(dòng)力);Thickness of Bending 用于計(jì)算板或殼單元的面外剛度,所以本次建模應(yīng)將這兩個(gè)參數(shù)應(yīng)與實(shí)際板單元厚度一致[5]。

3.3計(jì)算結(jié)果

圖3.1 車(chē)站整體框架體系基本組合彎矩圖

圖3.2 車(chē)站側(cè)墻基本組合彎矩圖

圖3.3 車(chē)站底板基本組合彎矩圖

圖3.4 車(chē)站中板基本組合彎矩圖

圖3.5 車(chē)站頂板基本組合彎矩圖

圖3.6 車(chē)站盾構(gòu)端端墻基本組合彎矩圖

表3.1 二維三維模型計(jì)算結(jié)果對(duì)比

構(gòu)件位置 二維平面計(jì)算基本組合彎矩(KN?m) 三維整體計(jì)算基本組合彎矩

(KN?m)

頂板標(biāo)準(zhǔn)段(跨中/中柱支座) 653/1071 760/1203

中板標(biāo)準(zhǔn)段(跨中/中柱支座) 95/170 160/250

底板標(biāo)準(zhǔn)段(跨中/中柱支座) 876/1121 1005/1477

側(cè)墻(跨中/與底板連接處) 246/970 430/1003

頂縱梁標(biāo)準(zhǔn)段(跨中/支座) 4733/6700 3446/4655

中縱梁標(biāo)準(zhǔn)段(跨中/支座) 1684/1972 892/1302

底縱梁標(biāo)準(zhǔn)段(跨中/支座) 5663/9100 4733/7889

4.結(jié)論

通過(guò)本次三維模型計(jì)算,得出如下結(jié)論:

1)通過(guò)三維建??梢酝茢啵瑝?、板結(jié)構(gòu)在明挖車(chē)站受力體系中發(fā)揮著重要作用,與梁、柱體系協(xié)同承擔(dān)荷載,三維計(jì)算結(jié)果表明真實(shí)情況下墻,板實(shí)際受力略大于二維平面計(jì)算結(jié)果,各主梁的實(shí)際彎矩小于二維平面計(jì)算結(jié)果。

2)車(chē)站與風(fēng)道連接處,應(yīng)確保變形縫量測(cè)梁的剛度和柱跨的合理性,減小頂板變形。

3)車(chē)站盾構(gòu)擴(kuò)大段與標(biāo)準(zhǔn)段連接處的底橫梁,跨中位置基本組合彎矩達(dá)到8000KN?m以上,應(yīng)增強(qiáng)底橫梁截面上部配筋。

4)盾構(gòu)端墻抗震柱兩側(cè)和第一層抗震柱之間的區(qū)域彎矩很小,建議盾構(gòu)端墻采取在此類區(qū)域減少配筋。

5)車(chē)站各側(cè)梁,彎矩都處于較低水平,尤其是中板盾構(gòu)端邊梁與平面計(jì)算出入較大。其梁的尺寸和配筋還有優(yōu)化余地

參考文獻(xiàn):[1]李興高,張彌.地鐵車(chē)站結(jié)構(gòu)內(nèi)力計(jì)算中的問(wèn)題[J].都市快軌交通.2005,18(5):26―30.Li Xinggao,Zhang Mi.Problems in Internal Force Calculation ofMetro Station Structure[J].Uraban Rapid Rail Transit.2005.18(5):26―30.

[2] 中華人民共和國(guó)住房和城鄉(xiāng)建設(shè)部.GB50010--2010混凝土結(jié)

構(gòu)設(shè)計(jì)規(guī)范[s].北京:中國(guó)建筑工業(yè)出版社。2010.

[3] 中華人民共和國(guó)住房和城鄉(xiāng)建設(shè)部.GB/T50476--2008混凝土

結(jié)構(gòu)耐久性設(shè)計(jì)規(guī)范[S].北京:中國(guó)建筑工業(yè)出版社.2008.