軟件體系結(jié)構(gòu)范文
時間:2023-03-24 13:15:30
導(dǎo)語:如何才能寫好一篇軟件體系結(jié)構(gòu),這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
關(guān)鍵詞:軟件體系結(jié)構(gòu);重用;模式
中圖分類號:TP311文獻標(biāo)識碼:A文章編號: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 引言
隨著計算機技術(shù)的發(fā)展和應(yīng)用的不斷深入,軟件系統(tǒng)的規(guī)模和復(fù)雜度日益增加,在軟件設(shè)計過程中人們所面臨的問題不僅僅是考慮軟件系統(tǒng)的功能問題,而是面臨要解決更難處理的可修改性,性能,可靠性等非功能性問題。特別是80年代以來,對軟件適應(yīng)變更的要求越來越高,所以對軟件整體的設(shè)計已經(jīng)超過了算法和數(shù)據(jù)結(jié)構(gòu),成為系統(tǒng)開發(fā)關(guān)注的主要問題。軟件開發(fā)最大的風(fēng)險來自需求變更,但一蹴而就搞定需求不現(xiàn)實,好的體系結(jié)構(gòu)是易改動的基礎(chǔ)。 能否復(fù)用很重要,設(shè)計復(fù)用比代碼復(fù)用更有用更難。因此,研究軟件體系結(jié)構(gòu)研究的能提高軟件生產(chǎn)率和簡化維護。提高軟件生產(chǎn)率的關(guān)鍵在于軟件相關(guān)部分的復(fù)用,而簡化維護的關(guān)鍵是減少軟件理解的成本和提高軟件的質(zhì)量,這就是研究軟件體系結(jié)構(gòu)的目的。
2 軟件體系結(jié)構(gòu)的概念
軟件系統(tǒng)的規(guī)模在迅速增大的同時,軟件開發(fā)方法也經(jīng)歷了一系列的變革.在此過程中,軟件體系結(jié)構(gòu)也由最初模糊的概念發(fā)展到一個漸趨成熟的技術(shù)。
1) 1992年P(guān)erry 和Wo1f 在他們早期關(guān)于軟件體系結(jié)構(gòu)的論文中指出:軟件體系結(jié)構(gòu)是一組具有一定形式的結(jié)構(gòu)化元素或稱為設(shè)計元素組成。
2) 1993年Shaw 和Garlan 認為軟件體系結(jié)構(gòu)是軟件設(shè)計過程中的一個層次,這一層次超越計算過程中的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計。
3) 1994年Hayes Roth 則認為軟件體系結(jié)構(gòu)是一個抽象的系統(tǒng)規(guī)范,主要包括用其行為來描述的功能構(gòu)件和構(gòu)件之間的相互連接、接口和關(guān)系。
4) 1995年Garlan 和Perry 在IEEE 軟件工程學(xué)報上又采用如下的定義:軟件體系結(jié)構(gòu)是一個程序各構(gòu)件的結(jié)構(gòu)、它們之間的相互關(guān)系以及進行設(shè)計的原則和隨時間進化的指導(dǎo)方針。
5) 1996年Boehm 和他的學(xué)生提出,一個軟件體系結(jié)構(gòu)包括一個軟件和系統(tǒng)構(gòu)件,互聯(lián)及約束的集合。
6) 1997年Ctements 和Kazman在《使用軟件體系結(jié)構(gòu)》一書中給出如下的定義:一個程序或計算機系統(tǒng)的軟件體系結(jié)構(gòu)包括一個或一組軟件構(gòu)件、軟件構(gòu)件的外部的可見特性及其相互關(guān)系。
3 軟件體系結(jié)構(gòu)的現(xiàn)狀
下面介紹幾種常見的體系結(jié)構(gòu)。
模型-視圖-控制結(jié)構(gòu)是交互式應(yīng)用程序廣泛使用的一種體系結(jié)構(gòu)。它有效地在存儲和展示數(shù)據(jù)的對象中區(qū)分功能模塊以降低它們之間的連接度,這種體系結(jié)構(gòu)將傳統(tǒng)的輸入、處理和輸入模型轉(zhuǎn)化為圖形顯示的用戶交互模型,或者換一種說法,是多層次的Web商業(yè)應(yīng)用;MVC體系結(jié)構(gòu)具有三個層面:模型(Model)、視圖(View)和控制(Controller),每個層面有其各自的功能作用。
模型層負責(zé)表達和訪問商業(yè)數(shù)據(jù),執(zhí)行商業(yè)邏輯和操作。也就是說,這一層就是現(xiàn)實生活中功能的軟件模擬;在模型層變化的時候,它將通知視圖層并提供后者訪問自身狀態(tài)的能力,同時控制層也可以訪問其功能函數(shù)以完成相關(guān)的任務(wù)。
視圖層負責(zé)顯示模型層的內(nèi)容。它從模型層取得數(shù)據(jù)并指定這些數(shù)據(jù)如何被顯示出來。在模型層變化的時候,它將自動更新。另外視圖層也會將用戶的輸入傳送給控制器。控制層負責(zé)定義應(yīng)用程序的行為。它可以分派用戶的請求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作;在一個圖形界面中,常見的用戶輸入包括點擊按鈕和菜單選擇。在Web應(yīng)用中,它包括對Web層的HTTP GET和POST的請求;控制層可以基于用戶的交互和模型層的操作結(jié)果來選擇下一個可以顯示的視圖,一個應(yīng)用程序通常會基于一組相關(guān)功能設(shè)定一個控制層的模塊,甚至一些應(yīng)用程序會根據(jù)不同的用戶類型具有不同的控制層設(shè)定,這主要是由于不同用戶的視圖交互和選擇也是不同的。
在模型層、視圖層和控制層之間劃分責(zé)任可以減少代碼的重復(fù)度,并使應(yīng)用程序維護起來更簡單。同時由于數(shù)據(jù)和商務(wù)邏輯的分開,在新的數(shù)據(jù)源加入和數(shù)據(jù)顯示變化的時候,數(shù)據(jù)處理也會變得更簡單。
軟件體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。它反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語義特性,并指導(dǎo)如何將各個模塊和子系統(tǒng)有效地組織成一個完整的系統(tǒng)。按這種方式理解,軟件體系結(jié)構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語表和一組指導(dǎo)構(gòu)件系統(tǒng)的規(guī)則。
對軟件體系結(jié)構(gòu)風(fēng)格的研究和實踐促進了對設(shè)計的復(fù)用,一些經(jīng)過實踐證實的解決方案也可以可靠地用于解決新的問題。體系結(jié)構(gòu)風(fēng)格的不變部分使不同的系統(tǒng)可以共享同一個實現(xiàn)代碼。只要系統(tǒng)是使用常用的、規(guī)范的方法來組織,就可使別的設(shè)計者很容易地理解系統(tǒng)的體系結(jié)構(gòu)。例如,如果某人把系統(tǒng)描述為"客戶/服務(wù)器"模式,則不必給出設(shè)計細節(jié),我們立刻就會明白系統(tǒng)是如何組織和工作的。
下面是Garlan和Shaw對通用體系結(jié)構(gòu)風(fēng)格的分類:
1) 數(shù)據(jù)流風(fēng)格:批處理序列;管道/過濾器
2) 調(diào)用/返回風(fēng)格:主程序/子程序;面向?qū)ο箫L(fēng)格;層次結(jié)構(gòu)
3) 獨立構(gòu)件風(fēng)格:進程通訊;事件系統(tǒng)
4) 虛擬機風(fēng)格:解釋器;基于規(guī)則的系統(tǒng)
5) 倉庫風(fēng)格:數(shù)據(jù)庫系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)
設(shè)計模式使人們可以更簡單方便地復(fù)用成功地設(shè)計和體系架構(gòu)。將以證實的技術(shù)表述成設(shè)計模式也會使新系統(tǒng)開發(fā)者更容易理解其設(shè)計思路。設(shè)計模式幫助你做出有利于系統(tǒng)復(fù)用的選擇,避免設(shè)計損害了系統(tǒng)復(fù)用性。通過提供一個顯示類和對象作用關(guān)系以及它們之間潛在聯(lián)系的說明規(guī)范,設(shè)計模式甚至能夠提高已有系統(tǒng)的文檔管理和系統(tǒng)維護的有效性。簡而言之,設(shè)計模式可以幫助設(shè)計者更快更好地完成系統(tǒng)設(shè)計。
一個設(shè)計模式描述了對于特定設(shè)計問題被驗證的解決方案,它綜合了所有開發(fā)者對這個問題所在領(lǐng)域的知識和見解;同時也是對于常見問題的可重用方案,它們一般適用于單個問題,但是組織在一起就可以提供整個企業(yè)系統(tǒng)的解決方案。J2EE平臺就用到很多設(shè)計模式,列舉如下:
1) 前控制器。
2) 控制器
3) 視圖
4) 視圖幫助
5) 會話面
6) 數(shù)據(jù)訪問對象
7) 值對象或傳輸對象
8) 截取過濾器
隨著軟件體系結(jié)構(gòu)的不斷發(fā)展,出現(xiàn)了一種新型的體系結(jié)構(gòu)即SOA。SOA被稱為軟件體系結(jié)構(gòu)的劃時代革命。
SOA是一種結(jié)構(gòu)模型,它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件交互的人為依賴性。SOA的關(guān)鍵是“服務(wù)”的概念,W3C將服務(wù)定義為:“服務(wù)提供者完成一組工作,為服務(wù)使用者交付所需的最終結(jié)果。最終結(jié)果通常會使使用者的狀態(tài)發(fā)生變化,但也可能使提供者的狀態(tài)改變,或者雙方都產(chǎn)生變化”。將SOA定義為:“本質(zhì)上是服務(wù)的集合。服務(wù)間彼此通信,這種通信可能是簡單的數(shù)據(jù)傳送,也可能是兩個或更多的服務(wù)協(xié)調(diào)進行某些活動。服務(wù)間需要某些方法進行連接。所謂服務(wù)就是精確定義、封裝完善、獨立于其他服務(wù)所處環(huán)境和狀態(tài)的函數(shù)。” 將SOA定義為:“按需連接資源的系統(tǒng)。在SOA中,資源被作為可通過標(biāo)準(zhǔn)方式訪問的獨立服務(wù),提供給網(wǎng)絡(luò)中的其他成員。與傳統(tǒng)的系統(tǒng)結(jié)構(gòu)相比,SOA規(guī)定了資源間更為靈活的松散耦合關(guān)系?!?Gartner則將SOA描述為:“客戶端/服務(wù)器的軟件設(shè)計方法,一項應(yīng)用由軟件服務(wù)和軟件服務(wù)使用者組成……SOA與大多數(shù)通用的客戶端/服務(wù)器模型的不同之處,在于它著重強調(diào)軟件組件的松散耦合,并使用獨立的標(biāo)準(zhǔn)接口?!?Gartner相信BPM和SOA的結(jié)合對所有類型的應(yīng)用集成都大有助益――“SOA極大的得益于BPM技術(shù)和方法論,但是SOA面臨的真正問題是確立正確的企業(yè)意識,即:強化戰(zhàn)略化的SOA計劃(針對供應(yīng)和使用)并鼓勵重用。”雖然不同廠商或個人對SOA有著不同的理解,但是我們?nèi)匀豢梢詮纳鲜龅亩x中看到SOA的幾個關(guān)鍵特性:一種粗粒度、松耦合服務(wù)結(jié)構(gòu),服務(wù)之間通過簡單、精確定義接口進行通訊,不涉及底層編程接口和通訊模型。
4 軟件體系結(jié)構(gòu)存在的不足
盡管軟件體系結(jié)構(gòu)研究領(lǐng)域取得了若干成果,但在應(yīng)用方面,軟件體系結(jié)構(gòu)仍然有很多可以改進的地方。N. Medvovonic認為,目前對軟件體系結(jié)構(gòu)的理解還僅限于直觀、或當(dāng)作稀奇事、或當(dāng)作民間傳說;語義豐富但不嚴(yán)謹(jǐn)。體系結(jié)構(gòu)似乎沒有解決實際問題。由此可見,若要有效地指導(dǎo)軟件工程實踐、為軟件開發(fā)提供一個好的結(jié)構(gòu)及其設(shè)計結(jié)構(gòu)的指導(dǎo)原則,軟件體系結(jié)構(gòu)研究還有若干問題需要解決。比如缺乏統(tǒng)一的軟件體系結(jié)構(gòu)的概念,各種軟件體系結(jié)構(gòu)的不易操作性,ADL繁多,缺乏統(tǒng)一的ADL支持等等。
5 前景展望
目前,軟件體系結(jié)構(gòu)領(lǐng)域研究非常活躍。隨著研究的不斷深入,軟件復(fù)用的層次越來越高,人們在開發(fā)新的系統(tǒng)時不必總是重復(fù)別人已經(jīng)創(chuàng)造的東西,而是可在軟件開發(fā)中復(fù)用已有成果,這樣可以把注意力投入到軟件新增功能上,提高軟件開發(fā)效率。
針對軟件體系結(jié)構(gòu)發(fā)展趨勢,Clements預(yù)測在未來的5~10年內(nèi)軟件體系結(jié)構(gòu)研究將圍繞如下5個方向展開:體系結(jié)構(gòu)創(chuàng)建與選擇;體系結(jié)構(gòu)表示;體系結(jié)構(gòu)分析;基于體系結(jié)構(gòu)開發(fā);體系結(jié)構(gòu)演化.而Perry在IFIP 2000 年世界計算機大會主題演講中認為,最為重要的3個研究方向是:體系結(jié)構(gòu)風(fēng)格、體系結(jié)構(gòu)連接件和動態(tài)體系結(jié)構(gòu)。
參考文獻:
[1] 王霞俊.淺談軟件體系結(jié)構(gòu)[J].常州輕工職業(yè)技術(shù)學(xué)院學(xué)報,2007(1).
[2] 鄧倫丹,羅丹,汪偉.幾種主要的軟件體系結(jié)構(gòu)風(fēng)格的分析[J].科技信息,2007(32):102.
[3] 孫昌愛,金茂忠,劉超.軟件體系結(jié)構(gòu)研究綜述[J].軟件學(xué)報,2002(13)
[4] 秦建超,杜友福,孟珍偉.淺談軟件體系結(jié)構(gòu)科技信息[J],2007(2)
[5] Michale Kircher.面向模式的軟件體系結(jié)構(gòu)[M].1版.北京:機械工業(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ù)字證書應(yīng)用的不斷發(fā)展,數(shù)字證書運營商對業(yè)務(wù)靈活性的需求不斷增加。目前主流數(shù)字證書客戶端軟件基本屬于純粹的本地客戶端軟件,雖然經(jīng)過多年的不斷開發(fā)完善,功能已經(jīng)基本成熟、穩(wěn)定,但是隨著客戶端軟件部署數(shù)量的不斷增加以及地域范圍的不斷擴大,當(dāng)數(shù)字證書運營商的業(yè)務(wù)管理規(guī)則需要調(diào)整時,客戶端軟件的更新維護成本將會很高。更重要的是,有的業(yè)務(wù)規(guī)則調(diào)整之前需要做到所有的本地客戶端軟件都統(tǒng)一更新到一個最新的版本,否則將會導(dǎo)致用戶體驗不一致問題的發(fā)生。數(shù)字證書運營商迫切需要一種統(tǒng)一、快速、準(zhǔn)確控制客戶端軟件功能的技術(shù)解決方案。
基于Web的應(yīng)用雖然具有很高的靈活性以滿足這種需求,但由于主流瀏覽器在安全方面的限制,使得在涉及硬件設(shè)備管理的領(lǐng)域,Web應(yīng)用常常存在各種使用上的困難。以IE瀏覽器為例,雖然可以通過開發(fā)ActiveX控件的方式來使得Web頁面具有訪問本地數(shù)字證書硬件設(shè)備的能力,但是各種不同的IE安全設(shè)置和操作系統(tǒng)安全設(shè)置常常使得控件無法正常使用,這大大增加了運營商的維護工作量。另一方面,傳統(tǒng)的本地客戶端軟件,雖然具有完全控制硬件設(shè)備的權(quán)限,但是在靈活性上還遠遠不如像Web頁面那樣可以通過服務(wù)器端代碼動態(tài)實時為客戶端生成用戶界面和業(yè)務(wù)流程。
本文提出了一種Web/Native混合軟件體系結(jié)構(gòu),該體系將Web瀏覽器引擎集成到本地客戶端軟件中,實現(xiàn)了在客戶端軟件中通過HTML、CSS和JavaScript來控制用戶界面和業(yè)務(wù)流程,底層則可以直接訪問硬件設(shè)備,實現(xiàn)對設(shè)備的完全控制。
2 體系結(jié)構(gòu)設(shè)計
Qt是一套開放源代碼的跨平臺C++開發(fā)框架,為了將來客戶端軟件可以順利移植到各種基于嵌入式操作系統(tǒng)的車載或手持移動設(shè)備上,選擇Qt作為體系結(jié)構(gòu)的技術(shù)實現(xiàn)框架。Web瀏覽器引擎采用了開放源代碼的WebKit,該引擎目前已經(jīng)被各種商用瀏覽器廣泛使用,例如蘋果Safari、Google Chrome等。
基于Qt和WebKit的Web/Native混合軟件體系結(jié)構(gòu)如圖1所示。最上層的Application層將完全使用網(wǎng)頁開發(fā)語言來進行描述(HTML/CSS/JS),可以通過網(wǎng)頁開發(fā)工具來進行開發(fā),這使得數(shù)量眾多的網(wǎng)頁開發(fā)人員可以參與到客戶端軟件開發(fā)中,在某種程度上降低了客戶端軟件開發(fā)的人力成本。在Application層之下,是WebKit瀏覽器引擎,用于對網(wǎng)頁代碼進行解析。在WebKit之下,則是Qt提供的對網(wǎng)絡(luò)、圖形界面等方面的開發(fā)庫,這些庫都通過C++代碼來進行調(diào)用。在這一層中也包含了各種自行開發(fā)的對硬件設(shè)備進行控制的庫。
3 JavaScript與本地Qt對象交互機制
將Web頁面與底層開發(fā)庫整合起來的核心在于實現(xiàn)JavaScript與本地Qt對象之間的交互機制,本文將對該機制進行詳細描述。
信號和槽(Signal and Slot)機制是Qt機制的核心,用于對象間的通信,也是Qt的一個主要特點。Qt提供了信號和槽機制,當(dāng)一個信號被觸發(fā),與其連接的槽便會觸發(fā),這是在Qt的預(yù)編譯過程中生成moc代碼來實現(xiàn)的。
在圖形用戶界面開發(fā)中,當(dāng)對一個Widget進行操作時,常常需要觸發(fā)另一個Widget去處理,也就是實現(xiàn)兩個對象之間的通信。例如,當(dāng)按下一個按鈕時,希望窗口關(guān)閉。
常見的實現(xiàn)機制是使用回調(diào)函數(shù)?;卣{(diào)函數(shù)是調(diào)用一個函數(shù)指針?biāo)赶虻暮瘮?shù)。如果需要在按下按鈕時,執(zhí)行某個函數(shù),則需要把指向這個函數(shù)的指針作為參數(shù)傳入到回調(diào)函數(shù)中。但采用這樣的機制存在類型安全問題,此外還會增強類之間的耦合性,不利于軟件的擴展和維護。
JavaScript與本地Qt對象的交互分為兩個步驟,如圖2所示:1)將本地Qt對象的信號和JavaScript的slots連接起來;2)通過JavaScript調(diào)用本地Qt對象的slots。
在開發(fā)中,一個對象只需繼承Qobject,便可使用該機制。信號和槽機制首先是類型安全的,信號和槽的參數(shù)必須匹配(槽函數(shù)的參數(shù)表必須小于或等于信號的參數(shù)表)。其次,使用該機制可以降低對象耦合性,在開發(fā)一個對象時,不需考慮一個信號發(fā)出后需要進行什么操作,也不需考慮誰要連接到這個槽函數(shù),這樣有利于多人合作開發(fā)以及將來的代碼復(fù)用。信號和槽的連接方法請見圖3所示。
4 對象與Web頁面的整合方式
有兩種方式可以將Qt對象整合到Web頁面中,然后再用QWebView widget來顯示這張Web頁面:方式1 將Qt對象添加到JavaSript的上下文環(huán)境中;方式2 創(chuàng)建一個插件,然后通過對象標(biāo)簽將Qt widgets置入到Web頁面中。
我們選擇了使用方式2,頁面中widgets的公共槽將像普通函數(shù)一樣公開給JavaScript函數(shù)。widget要能整合到Web頁面中,需要繼承QWebPluginFactory類,并且重新實現(xiàn)plugins方法和create方法。plugins方法用來通知Web頁面該插件可用。但需要創(chuàng)建widgets時,create方法將被調(diào)用。例如,當(dāng)需要將一個名為my-device-control的widget置入頁面的HTML代碼時,可使用如下的對象標(biāo)簽:
/>
為了創(chuàng)建這個widget,必須激活plugins并且將plugin工廠類通知給QWebPage。在下面的代碼中,DeviceControlFactory在application/my-device-control發(fā)出請求時,創(chuàng)建了DeviceControl實例widget。
{
...
QWebSettings::globalSettings()->
setAttribute( QWebSettings::PluginsEnabled, true);
webView->page()->setPluginFactory( new DeviceControlColorLabelFactory( this ) );
...
}
DeviceControl widget公開了一個名為openDevice()的公共槽,這樣就可以在JavaSript中像調(diào)用普通函數(shù)那樣進行調(diào)用了,調(diào)用代碼如下:
打開設(shè)備
5 實現(xiàn)效果
如圖4所示是基于Web/Native結(jié)構(gòu)開發(fā)的數(shù)字證書客戶端軟件。該客戶端的顯示界面全部采用Web方式實現(xiàn)。界面分為證書功能區(qū)、證書消息區(qū)、證書展現(xiàn)區(qū)。使用純Web的方式很容易實現(xiàn)證書消息區(qū)和證書展現(xiàn)區(qū)的功能,但是如果不進行一系列瀏覽器安全設(shè)置,是無法實現(xiàn)讀取USB Key中的數(shù)字證書的,也就無法實現(xiàn)數(shù)字證書與服務(wù)器消息之間的對應(yīng)關(guān)系。引入Native的方式很好的解決了這個問題,通過Native接口不僅可以在完全無需額外設(shè)置的情況下讀取USB Key中的數(shù)字證書,還可以實現(xiàn)證書功能區(qū)中的修改USB Key密碼、使用USB Key中的私鑰進行文件簽名等功能。
5 結(jié)束語
Web/Native混合軟件體系結(jié)構(gòu)通過在傳統(tǒng)C/S結(jié)構(gòu)的客戶端軟件中集成Web瀏覽器引擎,使得客戶端軟件既具有對硬件設(shè)備的全面控制能力,又具有與Web應(yīng)用相同的靈活性?;谠擉w系結(jié)構(gòu)開發(fā)的數(shù)字證書客戶端管理軟件將能很好的滿足數(shù)字證書運營商越來越復(fù)雜多變的業(yè)務(wù)需求。
參考文獻
[1] 布施曼等著.面向模式的軟件架構(gòu)(卷4):分布式計算的模式語言.人民郵電出版社,2010.
[2] 葉偉等著.互聯(lián)網(wǎng)時代的軟件革命――SaaS架構(gòu)設(shè)計.電子工業(yè)出版社,2009.
[3] 伊斯特等著.C++設(shè)計模式――基于Qt 4開源跨平臺開發(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.
作者簡介:
篇3
關(guān)鍵詞:化學(xué)抽象機;軟件體系結(jié)構(gòu)信息科學(xué)
1概述軟件體系結(jié)構(gòu)是當(dāng)前軟件工程領(lǐng)域的一個研究熱點,是大型軟件開發(fā)中必須解決的核心技術(shù)。無數(shù)的寫作論文軟件工程實踐證明:一個成功的軟件系統(tǒng)往往都有一個好的軟件體系結(jié)構(gòu)。但是在軟件設(shè)計、開發(fā)、測試、運行以及升級的各個階段,體系結(jié)構(gòu)都不可避免地會發(fā)生變化,如何把運行時適應(yīng)性機制加到復(fù)雜的大規(guī)模軟件系統(tǒng)中就成為一個重要的工程問題。然而要通過軟件體系結(jié)構(gòu)的研究實現(xiàn)這一目標(biāo),首先必須用某種方式描述動態(tài)體系結(jié)構(gòu)。
目前已定義的ADL超過20種,具有代表性的ADL包括C2、Darwin、Rapide、Unicon、Wright、D-ADL和ACME等[1];國內(nèi)包括XYZ/ADL、ABC/ADL、FRADL和A-ADL等。但這些語言大多注重軟件系統(tǒng)結(jié)構(gòu)靜態(tài)特性的描述,而對其動態(tài)特性描述不足。PaolaInverardi和AlexxanderLWolf[2]首先將CHAM應(yīng)用于描述和分析軟件體系結(jié)構(gòu)。他們充分利用CHAM擅長描述系統(tǒng)動態(tài)性和并行性的優(yōu)點,用CHAM形式化方法描述和分析了軟件體系結(jié)構(gòu)動態(tài)操作性語義,在軟件體系結(jié)構(gòu)動態(tài)特性描述方面進行了有效的擴展,主張用CHAM模型描述軟件體系結(jié)構(gòu),并例舉描述了編譯器的體系結(jié)構(gòu),包括順序多階段編譯器和并行、共享存貯庫的多階段編譯器?;贑HAM的體系結(jié)構(gòu)描述,運用重寫技術(shù)和結(jié)構(gòu)歸納證明方法,能夠?qū)w系結(jié)構(gòu)的部分行為屬性進行形式化或半形式化的證明。
2化學(xué)抽象機化學(xué)抽象機CHAM主要用于異步并行計算模型的建模[3],通過將化學(xué)反應(yīng)和抽象機概念有機結(jié)合描述系統(tǒng)狀態(tài)變化,它將一個系統(tǒng)的狀態(tài)看成化學(xué)溶液,溶液由分子組成,分子根據(jù)一定的反應(yīng)規(guī)則相互反應(yīng)又引起新的系統(tǒng)狀態(tài)變化。溶液中不同分子可按反應(yīng)規(guī)則平行地進行反應(yīng),只要各自反應(yīng)的分子集不重疊。因CHAM在描述系統(tǒng)動態(tài)性、并行性方面的優(yōu)良特性,所以可較好描述異步并行計算模型,尤其擅長描述如λ計算和CCS進程計算模型[4]。一個化學(xué)抽象機由一組分子m0,m1,m2…、溶液s0,s1,s2…和變換規(guī)則組成,分子是CHAM的基本元素,由一個常數(shù)集和操作符集派生而成的句法代數(shù)定義;溶液是由有限多個分子的集合,它反映了系統(tǒng)的某種狀態(tài),溶液中的分子根據(jù)變換規(guī)則進行反應(yīng)。
變換規(guī)則從應(yīng)用范圍可分為:通用規(guī)則,即在整個CHAM中通用的規(guī)則;專用規(guī)則,適用于某些特定分子的規(guī)則。從反應(yīng)作用可分為:加熱規(guī)則,把大分子分解成小分子的規(guī)則;冷卻規(guī)則,小分子合成大分子的規(guī)則。從反應(yīng)涉及的分子可分為:自反應(yīng)規(guī)則,只有單一分子的狀態(tài)變化;互反應(yīng)規(guī)則,反應(yīng)過程中至少有兩個分子參加反應(yīng)。本質(zhì)上,CHAM可看成一種有限狀態(tài)機,因此它具有一般狀態(tài)機特征,與其他以狀態(tài)機為轉(zhuǎn)換模型的技術(shù)相比,CHAM利用化學(xué)反應(yīng)這一隱喻,因此在刻畫系統(tǒng)的動態(tài)性特征方面比較自然。CHAM規(guī)格說明是一個基于操作的系統(tǒng)框架,這種框架不會把所描述的系統(tǒng)曲解為某種特定的計算模型。CHAM描述不僅可以描述系統(tǒng)靜態(tài)特征,還能從系統(tǒng)操作動態(tài)性方面進行描述,通過對各單元的描述、引入的轉(zhuǎn)換規(guī)則及項重寫描述和分析體系結(jié)構(gòu)的動態(tài)行為,因而可使軟件開發(fā)人員很快地了解系統(tǒng)功能和行為,適用于多種層次的用戶。在CHAM中,膜是一種封裝結(jié)構(gòu),任何溶液可以被看作一個關(guān)于其它溶液的單一分子,膜內(nèi)的溶液可以獨立進化。膜具有半可滲透性,允許某些分子進入和離開,通過膜上的氣孔,可以有選擇地從膜中抽取分子,同時,氣孔的可逆性允許分子被重新吸收到原始溶液中,膜表示了復(fù)合構(gòu)件,實際上提供了一種刻畫系統(tǒng)模塊化的途徑。
3在SA中的應(yīng)用3.1描述SA。用于描述SA的CHAM可表示成一個三元組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)備進行吸收或釋放電子操作,其中P={i(e),o(e)}為分子上的操作集,i(e)為吸收電子,o(e)為釋放電子,操作符“.”表示操作順序。3.1.2電子集E={e1,…,ek},分子可根據(jù)自反應(yīng)規(guī)則準(zhǔn)備進行進行收或釋放電子,當(dāng)溶液中有兩種互補電子,即一對釋放-吸收電子時,可根據(jù)互反應(yīng)規(guī)則進行反應(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,…}是分子自身從吸收電子到釋放電子的過程或分子復(fù)制自身過程規(guī)則集,mSj*表示由mSj復(fù)制與mSj性質(zhì)、狀態(tài)完全相同的分子,RM={r|r∈{m11,m21,…=m11,m21,…},mij,mij∈MI,i,j=1,2,…}是電子在分子間流動過程的規(guī)則集,rp∈RM,rq∈RM,p≠q,若{mp1,…,mpj}∩{mq1,…,mqj}=",則rp,rq可并行反應(yīng)。3.2描述構(gòu)件、連接件。用CHAM描述軟件連接件或構(gòu)件,可表示成一個四元組(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)件的角色集及在角色上進行的輸入輸出操作,相對來說是靜態(tài)的,是一種實現(xiàn)上的結(jié)構(gòu),屬于語法層。輸入電子集是使用該連接器或構(gòu)件前必須具備的條件,輸出電子集后映的是使用該連接件或構(gòu)件后的狀態(tài)。反應(yīng)規(guī)則集說明了連接件或構(gòu)件如何運用反應(yīng)規(guī)則從而發(fā)生狀態(tài)的演變,實質(zhì)上是連接件或構(gòu)件的動態(tài)行為,是相對動態(tài)的,屬于語義層。如管道-過濾器體系結(jié)構(gòu)風(fēng)格的CHAM描述如下:定義過濾器: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由過濾器和管道構(gòu)造一個系統(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)件的軟件工程正逐漸成為軟件開發(fā)的新趨勢,但是也給基于構(gòu)件的軟件系統(tǒng)測試帶來了新的問題,而CHAM不僅可用于描述動態(tài)軟件體系結(jié)構(gòu),還可用于測試體系結(jié)構(gòu),因為CHAM這種對系統(tǒng)狀態(tài)變化的描述特別適合于測試系統(tǒng)的行為和功能,Bertolino[5]等人提出從軟件體系結(jié)構(gòu)描述中導(dǎo)出實現(xiàn)層的測試用例,以指導(dǎo)構(gòu)件系統(tǒng)的集成測試的思想,隨著對CHAM的深入研究,必將有新的應(yīng)用被提出。
參考文獻
[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)件語言 SACM SAJ
【中圖分類號】G642 【文獻標(biāo)識碼】A 【文章編號】1674-4810(2013)14-0081-01
在軟件開發(fā)中,如何提高軟件質(zhì)量是人們的普遍追求和共同愿望。而提高質(zhì)量的關(guān)鍵問題就是構(gòu)件技術(shù)和軟件體系結(jié)構(gòu)技術(shù)。但是,目前在這兩項技術(shù)開發(fā)中面臨著多方面的挑戰(zhàn),本文擬對這些問題提出相應(yīng)的解決方案。
一 基于軟件體系結(jié)構(gòu)的構(gòu)件模型SACM
第一,構(gòu)件。SACM構(gòu)件是能提供相對獨立服務(wù)的計算單元,具有規(guī)范的接口和顯示的上下文依賴,能夠被第三方組合。就其組成來看,主要包括端口和服務(wù)兩個部分,每個端口代表一個交互點,至多有一個請求服務(wù)接口和一個提供服務(wù)接口。對于構(gòu)件來說,其服務(wù)實現(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)系。
第三,連接子的引入及其作用。為了更容易地實現(xiàn)映射、對軟件系統(tǒng)屬性進行分析、驗證和跟蹤,提高構(gòu)件的復(fù)用程度,提高軟件系統(tǒng)結(jié)構(gòu)的動態(tài)配置、加強低軟件的維護,在SACM構(gòu)件中有必要引入連接子。就其作用來看,連接子主要發(fā)揮通信、轉(zhuǎn)換、輔助交換、協(xié)調(diào)控制的作用,對整個軟件系統(tǒng)的運行有著積極的意義。
第四,基于連接子構(gòu)件組合方法。在SACM構(gòu)件當(dāng)中,構(gòu)件組合方法主要有兩種:基于被動的和基于主動的連接子構(gòu)件組合方法,不同的方式有各自的優(yōu)勢,需要根據(jù)具體情況選用。
二 面向構(gòu)件語言SAJ
第一,SAJ語言設(shè)計的目的。該語言設(shè)計的目的主要包括以下幾個方面:能夠更好地支持面向構(gòu)件軟件開發(fā)、實現(xiàn)從體系結(jié)構(gòu)設(shè)計模型到地層代碼的映射。
第二,SAJ語言支持面向構(gòu)件軟件開發(fā)。在進行軟件開發(fā)的過程中,為了能夠更好地對面向構(gòu)件的軟件進行支持,面向構(gòu)件語言應(yīng)能夠支持構(gòu)件的封裝、復(fù)用和組合,并支持構(gòu)件的設(shè)計與開發(fā)。具體來說,是從以下五個方面來支持面向構(gòu)件軟件開發(fā)的:構(gòu)件的封裝性、構(gòu)件組合、面向構(gòu)件設(shè)計原則、設(shè)計模式、連接子復(fù)用。
第三,SAJ語言的實現(xiàn)。使用Polyglot框架來實現(xiàn)SAJ語言的編譯器,并將編寫的源代碼翻譯成Java代碼,每個端口自動產(chǎn)生一個字段,保存所使用的連接子。由連接子協(xié)調(diào)構(gòu)件之間的通信,通過消息截取和消息過濾,有利于解決構(gòu)件之間不相容的問題。有利于實現(xiàn)日志、數(shù)據(jù)加密傳輸?shù)确?wù),并能夠?qū)崿F(xiàn)各種體系結(jié)構(gòu)風(fēng)格,具有良好的運用空間。
三 SAJ語言的語法、語義和類型系統(tǒng)
第一,SAJ語言的簡介。對于SAJ語言來說,它的核心是基于RelJ,它是在RelJ的基礎(chǔ)上,添加了構(gòu)件、端口、連接子、角色等軟件體系結(jié)構(gòu)。
第二,SAJ語言的類型系統(tǒng)。類型是程序設(shè)計中項的集合,它們具有共同的性質(zhì)。對于類型系統(tǒng),從本質(zhì)上來說,它是一個類型推導(dǎo)規(guī)則的集合,在程序設(shè)計中具有重要的作用:檢查類型錯誤、支持語言抽象、優(yōu)化程序,并支持語言的安全性。
四 豐富構(gòu)件接口信息
第一,顯示相應(yīng)的服務(wù)關(guān)系。顯示描述請求服務(wù)和提供服務(wù)之間的關(guān)系,構(gòu)件要想為外界服務(wù),就需要從外界得到相應(yīng)的請求服務(wù)。對于現(xiàn)有構(gòu)件模型來說,請求服務(wù)和提供服務(wù)之間的關(guān)系是固定的。但是在可復(fù)用構(gòu)件的軟件開發(fā)中,請求服務(wù)和提供服務(wù)之間不存在嚴(yán)格的依賴關(guān)系,往往存在著一些問題與不足,影響正常的服務(wù)。因此,有必要顯示請求服務(wù)與提供服務(wù)之間的關(guān)系。此外,從構(gòu)件復(fù)用粒度的角度來說,顯示它們之間的服務(wù)也是十分必要的。同時,顯示它們之間的關(guān)系,有利于對構(gòu)件質(zhì)量進行精確度量、調(diào)整與改進,更能靈活適應(yīng)不同的環(huán)境,提高服務(wù)質(zhì)量,更好地滿足軟件開發(fā)的實際需要。
第二,描述服務(wù)的參數(shù)值。在進行軟件開發(fā)時,服務(wù)的參數(shù)值往往會對構(gòu)件行為產(chǎn)生一定的影響。并且構(gòu)件開發(fā)人員對這個也非常清楚。所以,在接口中增加描述服務(wù)的參數(shù)值是現(xiàn)實的、必要的。在構(gòu)件接口中,有提供服務(wù)和請求服務(wù),對于它們的參數(shù)值描述略有不同。一般是在行為協(xié)議中描述參數(shù)值,并在構(gòu)件組合中得到具體應(yīng)用。
五 結(jié)束語
總之,構(gòu)件模型和面向構(gòu)件語言有利于解決當(dāng)前構(gòu)件技術(shù)和軟件體系結(jié)構(gòu)技術(shù)所面臨的問題。文中所提出的構(gòu)件模型SACM和構(gòu)件語言SAJ,能夠有力地促進構(gòu)件技術(shù)的發(fā)展。在今后的實際工作中,仍然有對該相關(guān)問題進行進一步深入研究的必要。
參考文獻
[1]岳洋.SMC/ADL:一種層級式構(gòu)件系統(tǒng)的體系結(jié)構(gòu)描述語言[J].計算機科學(xué),2012(7)
篇5
關(guān)鍵詞: 模糊測試; 體系結(jié)構(gòu)分析; 漏洞挖掘; 安全漏洞
中圖分類號: TN711?34; TM417 文獻標(biāo)識碼: A 文章編號: 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ù)已成為計算機領(lǐng)域中的一個研究熱點[1]。一方面,軟件安全研究人員專注于各種流行軟件的安全性分析和測試,以發(fā)現(xiàn)這些軟件中的安全問題;另一方面,軟件開發(fā)商也積極投入到產(chǎn)品的安全檢測中,以提高軟件的安全性[2]。
近年來,在程序分析和編譯原理等領(lǐng)域的促進下,面向源代碼的漏洞挖掘技術(shù)取得了一定成果。然而,該技術(shù)仍然存在著許多不足之處:如出于商業(yè)利益和商業(yè)保護等原因,絕大多數(shù)的軟件開發(fā)商并不對外提供軟件的源代碼[3]。其次,源代碼層次的漏洞挖掘和分析并不能發(fā)現(xiàn)在程序編譯、程序鏈接過程中產(chǎn)生的漏洞問題。此外,軟件中引入的軟件體系結(jié)構(gòu)方法、對外接口的不規(guī)范調(diào)用,也有可能存在潛在的安全問題[4]。
1 系統(tǒng)需求與目標(biāo)
現(xiàn)有的符號執(zhí)行技術(shù)主要面臨路徑爆炸、約束求解困難和效率比較低等問題,而本文的設(shè)計思想基于符號執(zhí)行技術(shù)和模糊測試技術(shù),同時與軟件體系結(jié)構(gòu)的方法相結(jié)合[5]。因此,本系統(tǒng)的設(shè)計目標(biāo)主要包括如下幾點:
(1) 高效率。提高本系統(tǒng)的測試效率,使得系統(tǒng)能夠?qū)Υ郎y軟件進行自動化測試,分析軟件運行時的狀態(tài)信息,并且能夠準(zhǔn)確記錄軟件的異常行為和崩潰信息。
(2) 高適用性。能夠?qū)νㄓ酶袷降臄?shù)據(jù)進行處理,并且通過反饋式生成測試用例,驅(qū)動測試過程的持續(xù)運行。
(3) 高代碼覆蓋率。能夠在動態(tài)測試時分析測試用例的代碼覆蓋率,盡可能生成不同路徑的測試用例,提高系統(tǒng)測試時的代碼覆蓋率。
2 系統(tǒng)架構(gòu)設(shè)計
為了提高漏洞挖掘的效率,本文在軟件體系結(jié)構(gòu)分析的基礎(chǔ)上,結(jié)合了符號執(zhí)行和污點分析技術(shù),設(shè)計和實現(xiàn)了針對二進制程序的漏洞挖掘系統(tǒng)Fast Fuzzing[6]。
Fast Fuzzing漏洞挖掘系統(tǒng)采用離線符號執(zhí)行和離線污點分析的方法,在PANDA平臺的基礎(chǔ)上實現(xiàn)了上述功能,同時利用STP求解器進行約束求解,生成新的測試用例。另外,還結(jié)合了污點分析結(jié)果,得到相關(guān)的污點信息,從而用于導(dǎo)向型測試用例的生成[7]。在進行動態(tài)測試時,F(xiàn)ast Fuzzing系統(tǒng)會計算每次測試用例的代碼覆蓋情況,從而在選擇新的測試用例進行測試時,優(yōu)先選擇能夠提高代碼覆蓋率的新測試用例。Fast Fuzzing系統(tǒng)架構(gòu)圖如圖1所示。Fast Fuzzing漏洞挖掘系統(tǒng)主要由指令追蹤模塊、體系結(jié)構(gòu)分析模塊、符號執(zhí)行模塊、污點分析模塊和測試模塊組成。
3 系統(tǒng)實現(xiàn)
3.1 指令追蹤模塊設(shè)計與實現(xiàn)
指令追蹤模塊的主要功能是,記錄測試程序執(zhí)行時每條指令的地址、上下文信息和內(nèi)存信息等。該模塊是在動態(tài)分析平臺 PANDA下實現(xiàn)的,其作為 PANDA平臺的一個工具模塊 panda_tools。指令追蹤模塊主要有如下三個模塊:
指令追蹤:程序執(zhí)行過程中能夠動態(tài)分析每條指令,記錄指令的具體信息和寄存器信息。指令追蹤功能主要通過注冊PANDA_CB_INSN_TRANSLATE和PANDA_CB_INSN_EXEC兩個回調(diào)函數(shù)實現(xiàn)。
內(nèi)存追蹤:程序執(zhí)行過程中對內(nèi)存的操作進行有針對性的記錄,包括內(nèi)存的申請、內(nèi)存的讀/寫、內(nèi)存塊大小和數(shù)據(jù)信息等。內(nèi)存追蹤方法與指令追蹤類似,通過注冊 [PANDA_CB_VIRT_MEM_READ,PANDA_CB_VIRT_][MEM_WRITE,]PANDA_CB_PHYS_MEM_READ和PANDA_CB_PHYS_MEM_WRITE四個類型的回調(diào)函數(shù),分別實現(xiàn)對虛擬地址內(nèi)存的讀/寫操作和物理地址內(nèi)存的讀/寫操作的監(jiān)控。
函數(shù)追蹤:程序執(zhí)行過程中能夠記錄系統(tǒng)函數(shù)的調(diào)用,同時在提供符號表的情況下,能夠記錄指定函數(shù)的調(diào)用信息。系統(tǒng)通過 PANDA平臺對指令分析的過程,注 冊了兩個回調(diào)函數(shù)對其進行處理,類型為PANDA_CB_INSN_TRANSLATE的translate_call back函數(shù)和類型為PANDA_CB_INSN_EXEC的exec_callback函數(shù)。
3.2 體系結(jié)構(gòu)分析模塊設(shè)計與實現(xiàn)
體系結(jié)構(gòu)分析模塊的功能是對最基本的主程序和子程序進行靜態(tài)分析,通過對二進制程序進行基本塊劃分,記錄相關(guān)的基本塊信息,提取其中的函數(shù)調(diào)用關(guān)系,從而分析程序中的所有路徑,再根據(jù)靜態(tài)分析時的信息提取出相應(yīng)路徑的約束關(guān)系,用于后續(xù)的符號執(zhí)行中[8]。
體系結(jié)構(gòu)分析模塊是在IDAPro靜態(tài)分析工具的基礎(chǔ)上實現(xiàn)的,之后通過模塊實現(xiàn)的插件對IDAPro反匯編結(jié)果進行深入的分析,對程序進行基本塊劃分和記錄,同時提取出其中的調(diào)用關(guān)系。該模塊的基本架構(gòu)如圖2所示。在體系結(jié)構(gòu)分析模塊中,主要包含基本代碼塊分析、函數(shù)調(diào)用分析和路徑分析三個部分。
3.3 符號執(zhí)行模塊設(shè)計與實現(xiàn)
符號執(zhí)行模塊通過分析指令追蹤時的記錄,結(jié)合體系結(jié)構(gòu)分析時的路徑關(guān)系,將輸入數(shù)據(jù)符號化表示,生成相應(yīng)的約束關(guān)系;之后,在軌跡重放時,根據(jù)程序執(zhí)行時的上下文環(huán)境,更新路徑約束關(guān)系,并利用約束求解器進行求解,生成新的測試用例,對程序進行進一步的測試。本系統(tǒng)基于PANDA平臺構(gòu)建,其底層由QEMU模擬器構(gòu)建,采用TCG中間語言的方式對指令進行翻譯處理。本文在此基礎(chǔ)上,采用了離線符號執(zhí)行的方式,根據(jù)指令追蹤時的記錄,實現(xiàn)對中間代碼的符號化分析,從而提高符號執(zhí)行的效率。
符號執(zhí)行模塊首先在體系結(jié)構(gòu)分析模塊的基礎(chǔ)上,通過對目標(biāo)軟件的靜態(tài)分析,生成軟件內(nèi)部的函數(shù)調(diào)用圖,進而推導(dǎo)出軟件中的路徑關(guān)系。該模塊的基本流程如圖3所示。
3.4 污點分析模塊設(shè)計與實現(xiàn)
污點分析模塊通過指令追蹤時對原始輸入數(shù)據(jù)的污點標(biāo)記,分析相關(guān)內(nèi)存信息,記錄污點數(shù)據(jù)的傳播過程,獲得輸入數(shù)據(jù)與敏感內(nèi)存操作的關(guān)系,從而生成新的測試用例。
污點分析模塊是在PADNA平臺基礎(chǔ)上實現(xiàn)的,借助于指令追蹤模塊,對目標(biāo)程序的執(zhí)行流程進行軌跡記錄,生成相應(yīng)的軌跡記錄文件。軌跡記錄部分主要針對每條執(zhí)行過的指令,具體包括指令的地址、指令機器碼和指令運行時寄存器、內(nèi)存的相關(guān)信息。
3.5 動態(tài)測試模塊設(shè)計與實現(xiàn)
動態(tài)測試模塊是在Windows異常處理機制的基礎(chǔ)上,通過執(zhí)行目標(biāo)程序捕獲運行時出現(xiàn)的異常信息判斷測試用例是否會引發(fā)程序崩潰,再進一步分析崩潰信息,判斷該問題是否是由于軟件自身的安全漏洞而引起的。同時,動態(tài)測試模塊的功能還在于能夠不斷生成新的測試用例,對目標(biāo)程序進行持續(xù)的測試。本系統(tǒng)主要是在Windows異常處理平臺下實現(xiàn)了動態(tài)測試模塊,主要通過對未執(zhí)行代碼塊中插入軟件斷點追蹤指令的執(zhí)行過程,并且對程序運行時的異常情形進行監(jiān)控。
(1) 處理流程
動態(tài)測試模塊采用加載目標(biāo)程序的方式對目標(biāo)程序進程測試。同時,在創(chuàng)建目標(biāo)程序的進程時,通過DLL注入的方式實現(xiàn)對異常信息的監(jiān)控和對代碼覆蓋率的檢測功能。其具體處理流程如圖4所示。在程序碰到異常情形時,首先通過注入的DLL判斷此處的異常是否是DLL注入時插入的指令造成的,如果是則恢復(fù)原先指令,記錄此時的狀態(tài)信息,以便分析代碼覆蓋率;否則的話,則認為是程序中存在的安全問題觸發(fā)了此類異常,記錄測試用例、此時的寄存器和上下文信息,以便進一步確認該安全問題是一個程序漏洞。
(2) 異常監(jiān)控
異常監(jiān)控部分主要包含追蹤路徑初始化、基本代碼塊斷點設(shè)置和異常處理函數(shù)設(shè)置這兩個功能,其具體實現(xiàn)是通過DLL注入的方式對目標(biāo)程序的執(zhí)行進程進行監(jiān)控。
(3) 代碼覆蓋率檢測
在對基本代碼塊進行斷點設(shè)置時,根據(jù)BBL_INFO結(jié)構(gòu)中的isexecute字段判斷基本代碼塊是否執(zhí)行。對于已經(jīng)執(zhí)行的基本代碼塊,將其記錄在已測試基本代碼塊結(jié)構(gòu)中,然后在程序執(zhí)行完后,將記錄中的代碼塊與模塊中的所有代碼塊進行比對,算出該模塊中的基本代碼塊代碼覆蓋率。
4 系統(tǒng)測試與分析
4.1 功能測試
(1) 測試方法
針對IE10,初始測試用例大小為21 824 B,指令記錄文件大小為53 323 MB, 共生成了625 369個測試用例,發(fā)現(xiàn)了24個異常。針對IE8,初始測試用例大小為21 824 B,指令記錄文件大小為23 954 MB,共生成了405 712個測試用例,發(fā)現(xiàn)異常數(shù)為31個。通過上述異常分析可以看到,IE8中的異常2和IE10中的異常2信息基本一致,都屬于訪問不可訪問內(nèi)存錯誤,而其他異常信息也屬于此類錯誤。為測試Fast Fuzzing系統(tǒng)的代碼覆蓋率情況,本測試中對比分析FileFuzz工具對IE8軟件的測試代碼覆蓋率情況,結(jié)果如表3所示。
通過上述結(jié)果的對比,可以發(fā)現(xiàn)Fast Fuzzing相對于傳統(tǒng)的模糊測試工具而言,其在測試時覆蓋的代碼面更廣,能夠?qū)浖M行更為全面的安全測試。
5 結(jié) 論
針對傳統(tǒng)模糊測試方法的不足,本文設(shè)計并實現(xiàn)了一種基于軟件體系結(jié)構(gòu)的漏洞挖掘工具,并且結(jié)合了混合符號執(zhí)行技術(shù)和細粒度污點分析技術(shù),通過對這兩方法的反饋信息進行深入分析,生成新的測試用例驅(qū)動測試流程,從而大大地提高了測試時代碼的覆蓋率和測試效率。
參考文獻
[1] 楊世德,梁光明,余凱.基于ARM嵌入式系統(tǒng)底層漏洞挖掘技術(shù)研究[J].現(xiàn)代電子技術(shù),2015,38(18):94?96.
[2] 蒲石,陳周國,祝世雄.震網(wǎng)病毒分析與防范[J].信息網(wǎng)絡(luò)安全,2012(2):40?43.
[3] 王鐵磊.面向二進制程序的漏洞挖掘關(guān)鍵技術(shù)研究[D].北京:北京大學(xué),2011.
[4] 陳寶國.美國國家網(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) 無線電系統(tǒng) 軟件定義
中圖分類號:TP319 文獻標(biāo)識碼:A
在現(xiàn)實生活中,軟件定義無線電技術(shù)在軍事方面的應(yīng)用不斷地發(fā)展研究,各國為了早日實現(xiàn)軍事化的軟件定義無線電技術(shù),加大了對軟件定義無線電的研究。目前,軟件定義無線電技術(shù)已成為未來軍事通信發(fā)展的趨勢。①
1 軟件通信體系結(jié)構(gòu)
1.1 硬件體系結(jié)構(gòu)
軟件通信體系中硬件體系結(jié)構(gòu)采用了面向?qū)ο蠹夹g(shù),通過面向面向?qū)ο蠹夹g(shù)的概念對系統(tǒng)內(nèi)部的典型模塊進行劃分,要求實際系統(tǒng)一旦實現(xiàn),必須將其詳細的、完整的接口進行公開。軟件開發(fā)人員可以通過公開的接口,對硬件的性能和容量以加載特定的波形,第三方則通過公開的接口,提供系統(tǒng)內(nèi)部模塊,方便了新技術(shù)的插入。
硬件體系結(jié)構(gòu)除了要對所有無線設(shè)備系統(tǒng)內(nèi)部硬件模塊的組成進行定義,還要給出所有無線設(shè)備內(nèi)部硬件的物理屬性。當(dāng)無線設(shè)備系統(tǒng)內(nèi)部硬件物理屬性符合條件時,這些硬件設(shè)備就可以應(yīng)用到實際平臺硬件模塊,具有統(tǒng)一性,針對所有的通信設(shè)備來說都是通用的,實現(xiàn)了硬件模塊設(shè)計的實用性與通用性,節(jié)約了系統(tǒng)成本。未來無線通信系統(tǒng)發(fā)展主要以軟件為主,而現(xiàn)代無線通信系統(tǒng)是由軟件與硬件相結(jié)合來實現(xiàn)無線通信的功能。因此,為滿足無線通信系統(tǒng)未來發(fā)展的需求,硬件模塊要具有一定的可擴展性,這可以確保在原有硬件模塊基礎(chǔ)上,通過增加新的功能或者在已有的硬件模塊中增加新的硬件模塊來實現(xiàn)新的技術(shù),既保證了硬件模塊統(tǒng)一性,又增加了硬件模塊內(nèi)在的靈活性,滿足軟件無線電發(fā)展的需求。②
1.2 軟件體系結(jié)構(gòu)
在軟件通信體系中軟件與硬件所承擔(dān)的功能不同,根據(jù)軟件在通信體系中所承擔(dān)的功能,可將軟件體系結(jié)構(gòu)由上到下分為應(yīng)用程序、核心框架、公共對象請求體系中間件和嵌入式實時操作系統(tǒng)四部分。其中核心框架、公共對象請求體系中間件以及嵌入式實時操作系統(tǒng)三部分共同構(gòu)成了軟件體系結(jié)構(gòu)中的核心內(nèi)容,也是軟件體系結(jié)構(gòu)中一個通用的軟件平臺。軟件平臺的構(gòu)成給開發(fā)人員和波形的設(shè)計帶來了新的要求與限制,有利于實現(xiàn)波形從一個無線通信系統(tǒng)到另一個無線通信系統(tǒng)的移植。
1.3 安全體系結(jié)構(gòu)
軟件通信體系中安全體系結(jié)構(gòu),為了保證在不同的無線通信系統(tǒng)能夠相互通連與相互操作,是為了確保用戶的信息在傳輸、發(fā)送、處理以及存儲過程中的完整性與機密性。在安合體系結(jié)構(gòu)中,整個系統(tǒng)的安全功能是由一個通信保密模塊、紅邊處理器以及黑邊處理器三部分共同來完成的,而非一個邊界分明的安全模塊來單獨完成。③
2 軟件定義無線電系統(tǒng)
軟件定義無線電系統(tǒng)又稱為軟件無線電系統(tǒng),是一種可以通過軟件進行編輯,實現(xiàn)全部功能的無線電,具有較高的靈活性與通用性。用戶通過軟件無線電系統(tǒng),對動態(tài)修改配置對系統(tǒng)中的網(wǎng)絡(luò)裝備與軟件更新設(shè)備進行修改,從而獲得更好的服務(wù)與性能。軟件定義無線電系統(tǒng)是通過一個簡單的終端設(shè)備,運用軟件重配置功能來支持各種不同種類的無線系統(tǒng)與服務(wù)的新技術(shù)。固定或者移動的軟件定義無線電設(shè)備,都能讓用戶通過改變軟件改變接收與發(fā)送的特征。移動無線電系統(tǒng)與改變運行模式的軟件定義無線電設(shè)備相互通聯(lián),并且能夠同時在多種公共安全頻帶中工作。
軟件定義無線電系統(tǒng)不僅具備基本的無線通信功能,還具有以下三個方面的功能:一是通過軟件定義無線電系統(tǒng)能夠升級系統(tǒng)所裝載的軟件,以此來達到對系統(tǒng)的升級與功能的更新。④二是軟件定義無線電系統(tǒng)可以支持不同電臺系統(tǒng)的相互通聯(lián),達到不同獨立運行的電臺系統(tǒng)能夠互傳信息。三是軟件定義無線電系統(tǒng)主要以軟件為主,解放了硬件通信業(yè)務(wù)傳輸方式,通過軟件定義無線電系統(tǒng)所裝載不同軟件實現(xiàn)動態(tài)配置系統(tǒng)功能。
3 軟件定義無線電的發(fā)展
軟件定義無線電技術(shù)采用現(xiàn)代化高端軟件進行操縱與控制,具有高自動化程度與較強的擴展能力,打破傳統(tǒng)依賴于硬件發(fā)展的通信體系。軟件定義無線電體系的發(fā)展是通信領(lǐng)域的第三次革命,經(jīng)歷了從固定通信到移運通信,模擬通信到數(shù)字通信的改革。
軟件定義無線電技術(shù)作為現(xiàn)代通信行業(yè)新技術(shù),在未來的無線電通信應(yīng)用中有良好的發(fā)展前景,可能成為未來無線電通信技術(shù)的支柱。軟件定義無線電技術(shù)可以多頻段多模式的手機、衛(wèi)星通信、智能天線以及蜂窩移動通信系統(tǒng)、無線局域網(wǎng)等各個相關(guān)的應(yīng)用領(lǐng)域。
4 總結(jié)
隨著科學(xué)技術(shù)的不斷發(fā)展,軟件定義無線電系統(tǒng)在各個領(lǐng)域中得到了廣泛的應(yīng)用,無線通信體系朝著通信數(shù)字化、智能一體化的發(fā)展。由于我國目前無線通信體系硬件水平的有限,導(dǎo)致軟件無線電通信還達不到理想的要求。針對軟件通信體系與軟件定義無線電系統(tǒng)的研究,可以預(yù)見,軟件定義無線電技術(shù)可能成為未來通信行業(yè)發(fā)展的核心內(nèi)容。⑤
注釋
① 范建華,王曉波,李云洲.基于軟件通信體系結(jié)構(gòu)的軟件定義無線電系統(tǒng)[J].通信技術(shù),2011,51(8):1031-1037.
② 劉獻,張棟嶺,陳涵生.軟件定義無線電及軟件通信體系結(jié)構(gòu)的規(guī)范[J].計算機工程,2009,30(1):95-98.
③ 邱永紅,朱勤.基于軟件通信系統(tǒng)的無線通信系統(tǒng)研究[J].系統(tǒng)工程與電子技術(shù),2009,26(5)621-625.
篇7
關(guān)鍵詞:軟件;抽取;需求
信息化產(chǎn)業(yè)經(jīng)過幾十年的發(fā)展和建設(shè),正逐步從最初的用于解決局部問題的小型或簡單軟件,向復(fù)雜、成體系、網(wǎng)絡(luò)化的企業(yè)級系統(tǒng)擴展。軟件系統(tǒng)的構(gòu)成不再只是模塊,越來越多的是功能構(gòu)件和子系統(tǒng),使軟件系統(tǒng)成為“系統(tǒng)的系統(tǒng)”,或叫復(fù)雜系統(tǒng)。如何構(gòu)建可擴充、可裁剪、可生長的滿足企業(yè)應(yīng)用的大型軟件系統(tǒng),已成為軟件業(yè)研究的重要課題之一。其中,復(fù)雜系統(tǒng)的結(jié)構(gòu)設(shè)計是人們最關(guān)注的核心問題。
1 軟件設(shè)計的需求分析
軟件通常是因需求才進行設(shè)計開發(fā),由用戶方從解決業(yè)務(wù)問題的角度提出,均以專業(yè)的術(shù)語或事務(wù)性的語言描述。高質(zhì)量、清晰準(zhǔn)確的需求描述,可有效約束軟件系統(tǒng)的結(jié)構(gòu)設(shè)計和功能定位。邊緣清晰、描述規(guī)范的要求,會在一定程度上降低軟件設(shè)計和開發(fā)的成本,提高軟件質(zhì)量和開發(fā)效率。但是,需求的成長和變化,往往伴隨軟件的整個開發(fā)過程,這種現(xiàn)狀使得軟件設(shè)計的難度不斷增加,程序開發(fā)也從傳統(tǒng)的開發(fā)方法向敏捷編程轉(zhuǎn)化。
用戶基于一定的業(yè)務(wù)需要提出需求,通常不能直接指導(dǎo)軟件的開發(fā),只有經(jīng)過軟件設(shè)計者的分析提取,通過規(guī)范的技術(shù)語言描述,形成面向軟件開發(fā)者的需求規(guī)格說明,才能指導(dǎo)軟件的研制。抽取需求是軟件設(shè)計師必須完成的工作,傳統(tǒng)的需求抽取方法一般包括面談、問卷、觀察和業(yè)務(wù)文檔研究等,這些方法簡單、成本低,對業(yè)務(wù)邏輯清晰、封閉性較好的需求比較適合,而對復(fù)雜且很難封閉的需求,采用傳統(tǒng)的抽取方法,則風(fēng)險很大。在軟件開發(fā)領(lǐng)域,需求抽取方法有原型法、聯(lián)合應(yīng)用開發(fā)法和快速應(yīng)用開發(fā)法三種。
1.1 原型法
通過構(gòu)造軟件演示系統(tǒng),即根據(jù)理解的需求,建立一個快速而粗糙的工作模型,由可視化方法獲得用戶的反饋。
1.2 聯(lián)合應(yīng)用開發(fā)法
是將領(lǐng)導(dǎo)、用戶、開發(fā)人員、系統(tǒng)設(shè)計師等召集起來通過會議的方式,集中所有人的智慧,對要求進行分析抽取。
1.3 快速應(yīng)用開發(fā)法
就是集前兩種方法,加上最優(yōu)方案的系統(tǒng)研制而進行的一種需求抽取方法,是一種快速軟件開發(fā)方法。
以上是目前常被采用的需要抽取方法,但對于系統(tǒng)分析員或系統(tǒng)設(shè)計師來說,無論采用哪種方法,都必須面臨提取關(guān)鍵需求、判斷需求增長點和發(fā)展方向的問題。
2 需求分析對系統(tǒng)體系結(jié)構(gòu)設(shè)計的影響
2.1 抽取影響軟件結(jié)構(gòu)的需求,是需求分析的核心
關(guān)鍵需求是軟件結(jié)構(gòu)設(shè)計的核心,而提取關(guān)鍵需求是軟件結(jié)構(gòu)設(shè)計師必備的技能。以一個數(shù)據(jù)錄入軟件為例,一般需要提供一個交互式界面,由用戶鍵入所需數(shù)據(jù),提交存儲到文件或數(shù)據(jù)庫里即可。但用戶要求錄入的數(shù)據(jù)項,應(yīng)能隨著業(yè)務(wù)的不斷變化而進行增加或刪減,可多人同時進行錄入。同時,要求對存儲的數(shù)據(jù)按照需要的方式進行查詢調(diào)閱,甚至進行一定的復(fù)合計算或評估分析等。對于這樣的需求,錄入項不斷變化、多人同時操作、存儲要求等都是核心元素,這些元素將直接影響軟件結(jié)構(gòu)的設(shè)計。軟件設(shè)計應(yīng)考慮分布式并發(fā)機制和大量的數(shù)據(jù)存儲訪問要求。這些需求均與功能無關(guān),但會影響軟件結(jié)構(gòu)的設(shè)計。數(shù)據(jù)庫訪問相關(guān)的軟件,一般采用傳統(tǒng)的C/S結(jié)構(gòu)。當(dāng)用戶增加到一定量時,該結(jié)構(gòu)會導(dǎo)致數(shù)據(jù)庫服務(wù)器負載加重,甚至系統(tǒng)崩潰。為了適應(yīng)這種變化,應(yīng)采用多層結(jié)構(gòu),將用戶操作與數(shù)據(jù)存儲進行分離。采用多層結(jié)構(gòu),不僅可以緩解數(shù)據(jù)庫服務(wù)訪問壓力,還能降低數(shù)據(jù)庫變化給用戶操作帶來的影響。錄入項的變化需求,潛在地存在著數(shù)據(jù)項擴充、界面調(diào)整等功能要求。一般情況下,完全適應(yīng)這種變化的軟件很難設(shè)計。為此,可把錄入項作為配置要素,界面設(shè)計和數(shù)據(jù)存儲項根據(jù)配置項進行定制,應(yīng)用服務(wù)層要在接口設(shè)計上考慮數(shù)據(jù)項的擴充能力。具有這類需求的軟件,一般由界面構(gòu)造工具、錄入界面、應(yīng)用服務(wù)軟件和數(shù)據(jù)庫服務(wù)器構(gòu)成。
在抽取關(guān)鍵需求的過程中,抽取與業(yè)務(wù)無關(guān)的需求非常重要?!芭c業(yè)務(wù)無關(guān)”指支撐業(yè)務(wù)功能運行且與業(yè)務(wù)處理邏輯無關(guān)的功能。傳輸服務(wù)是典型的與業(yè)務(wù)無關(guān)的功能,在任意基于網(wǎng)絡(luò)運行的軟件中,不可避免的需要信息傳輸功能的支持。抽取與業(yè)務(wù)無關(guān)的需求,需要分析人員有豐富的軟件設(shè)計經(jīng)驗,這種公共需求的抽取,有利于開發(fā)過程中軟件的重用,可降低開發(fā)成本。
2.2 關(guān)注需求中與規(guī)模發(fā)展相關(guān)的因素
軟件設(shè)計應(yīng)用規(guī)模的發(fā)展速度,是軟件結(jié)構(gòu)設(shè)計時應(yīng)考慮的主要需求之一。規(guī)模是考驗軟件支撐能力的主要因素。規(guī)模的發(fā)展可能是用戶量的膨脹,也可能是數(shù)據(jù)量的迅猛增長,或兩者都有。軟件能力的成長性設(shè)計,通常會使開發(fā)付出代價,這是由于一方面在設(shè)計初期沒有考慮這種成長性,導(dǎo)致設(shè)計失敗;另一方面,雖然考慮了成長性,但由于軟件復(fù)雜度的增大,增加了開發(fā)成本和風(fēng)險。因此,對并發(fā)和負載的設(shè)計,應(yīng)在設(shè)計之前就要給予充分考慮。
2.3 捕捉需求的變化方向
確定需求的增長點是考驗軟件適應(yīng)能力的關(guān)鍵。需求的變化和調(diào)整是客觀存在的,軟件設(shè)計者分析需求時,應(yīng)考慮到需求中可能存在的變化點或變化趨勢,以提高軟件的適應(yīng)能力和成長能力。需求的增長點通常隱含在企業(yè)發(fā)展和技術(shù)發(fā)展中,一類是業(yè)務(wù)發(fā)展引起的工作流變化或增長。這種軟件結(jié)構(gòu)應(yīng)具備新業(yè)務(wù)處理軟件的集成能力;一類是業(yè)務(wù)轉(zhuǎn)向。原有的業(yè)務(wù)處理軟件不能滿足轉(zhuǎn)向后的業(yè)務(wù)處理要求,存在改造、裁剪、新增能力等潛在需求。軟件結(jié)構(gòu)還應(yīng)具備可裁剪、可擴充的能力,否則將會造成巨大的經(jīng)濟損失。
抓住需求的變化點,設(shè)計合適的體系結(jié)構(gòu),可增強軟件的生命力。面對需求多變的現(xiàn)實,降低結(jié)構(gòu)的耦合度是有效緩解軟件適應(yīng)能力的方法之一。但是,降低耦合度一般會帶來效率或系統(tǒng)復(fù)雜度的上升。因此,小型軟件選擇這種方法應(yīng)慎重。(下轉(zhuǎn)第16頁)(上接第13頁)
綜上所述,設(shè)計滿足需求的軟件結(jié)構(gòu),重點關(guān)注的是功能,而設(shè)計適應(yīng)需求變化的軟件結(jié)構(gòu),關(guān)注的往往是非功能性需求,這需要系統(tǒng)設(shè)計師除了具備豐富的經(jīng)驗和敏銳的洞察力外,還應(yīng)花大量的時間和精力同用戶不斷溝通與交流,從中獲取最需要的需求,以支持軟件整體結(jié)構(gòu)的設(shè)計。
參考文獻:
篇8
【關(guān)鍵詞】計算機體系 結(jié)構(gòu)軟件模擬技術(shù) 分析
雖然軟件模擬技術(shù)在計算機體系結(jié)構(gòu)上的應(yīng)用起步較晚,但是已經(jīng)取得了一定的成就,在現(xiàn)代處理器或計算機系統(tǒng)設(shè)計中,體系結(jié)構(gòu)軟件模擬技術(shù)已成為一個不可缺少的環(huán)節(jié)。盡管如此,軟件模擬技術(shù)仍然存在著許多的問題,由于軟件模擬技術(shù)的開發(fā)工藝比較復(fù)雜,還需要花費大量的時間對其進行標(biāo)準(zhǔn)測試,所以為了能夠讓它在計算機體系結(jié)構(gòu)方面的應(yīng)用能夠達到人們對計算機能力日益增長的需求,需要對計算機體系機構(gòu)軟件模擬技術(shù)進行分析。
1 計算機體系結(jié)構(gòu)軟件模擬技術(shù)存在的問題
1.1 軟件模擬技術(shù)的開發(fā)難度比較大
由于計算機的機構(gòu)極其復(fù)雜,當(dāng)前如果要將計算機里邊的晶體管和電路全部通過模擬技術(shù)實現(xiàn)是不太現(xiàn)實的操作,所以只能采取結(jié)構(gòu)簡化措施,按照一定的層次分配對計算機的體系結(jié)構(gòu)進行簡化。但是在同等情況下,計算機體系結(jié)構(gòu)在簡化之后依舊相當(dāng)?shù)膹?fù)雜,不利于軟件模擬技術(shù)的開發(fā)。所以,為了能夠解決計算機體系結(jié)構(gòu)軟件模擬技術(shù)在應(yīng)用過程中的這一難題,編程人員經(jīng)過研究發(fā)現(xiàn)可以使用C語言當(dāng)中的功能語言來開發(fā)相對應(yīng)的模擬軟件。這種方式下開發(fā)出來的軟件和其它方式開發(fā)的軟件相比,具有明顯的優(yōu)勢,比如在使用過程更不容易出錯,還可以減少對能源資源以及時間的消耗。當(dāng)前我國在軟件模擬技術(shù)開發(fā)方面的工作,基本上都是在原本的模擬器基礎(chǔ)上開始的,并沒有嚴(yán)格遵守從最開始的步驟出發(fā)的要求,由于軟件模擬技術(shù)的復(fù)雜性,讓許多開發(fā)出來的軟件在推廣使用之前受到廣大用戶的質(zhì)疑。因此在軟件模擬技術(shù)的開展工作上,需要加大對軟件設(shè)計的力度,以提高軟件運行的準(zhǔn)確性。
1.2 模擬器的設(shè)計時間長
計算機主機上的一大重要運行程序就是模擬器,在模擬運行系統(tǒng)運行過程的時候,記錄處理器運行的狀態(tài)一般都是利用時鐘級別以上的記錄器。在這種狀態(tài)下包含大量的數(shù)據(jù)在當(dāng)中,在模擬運行速度方面產(chǎn)生了直接的影響。目前我國最快的模擬器運行速度遠遠慢于計算機主機的硬件運行速度,通過軟件模擬技術(shù)讓處理器的運行速度不斷提高,為能夠同時提高軟件模擬技術(shù)的測試運行性能,相關(guān)組織也相應(yīng)的了測試標(biāo)準(zhǔn)程序,解決因測試耗費的時間過長而引起的低工作效率問題。
1.3 軟件模擬技術(shù)中模擬器的運行結(jié)果有待提高
當(dāng)前我們主要把計算機體系結(jié)構(gòu)模擬器開發(fā)的主要過程分為三個階段,其一是目標(biāo)體系的構(gòu)建,其二是模擬器結(jié)構(gòu)的設(shè)計,其三是模擬器的實現(xiàn)。這三個階段中目標(biāo)體系的構(gòu)建主要是針對迷你軟件的開發(fā),是它開發(fā)過程中的一個重要環(huán)節(jié),但是在運行結(jié)果方面存在很大的缺陷。第二個階段出現(xiàn)的問題主要體現(xiàn)在它的細節(jié)方面,雖然這個過程中能夠?qū)τ嬎銠C的體系結(jié)構(gòu)目標(biāo)具有比較明確的理解,但是容易出現(xiàn)細節(jié)性的錯誤。綜上所述,軟件模擬技術(shù)在測試運行結(jié)果的時候需要特別注意一些運行方面的錯誤,避免給模擬器運行的結(jié)果帶來嚴(yán)重的影響。
2 提高計算機體系結(jié)構(gòu)軟件模擬技術(shù)的有效措施
2.1 相應(yīng)的減少模擬器運行的參數(shù)
為了能夠提高計算機的運行速度,可以針對計算機的運行過程是用一些具有代表性的測試參數(shù),并適當(dāng)對一些模擬器的測試程序進行修改,以減少模擬器運行的參數(shù),提高模擬器運行的測試效果,節(jié)約程序測試的使用時間??梢噪S意選去一些模擬器的運行參數(shù),將它們設(shè)置在模擬器設(shè)置中,執(zhí)行的結(jié)果為最終結(jié)果,如果參數(shù)的訊息可以在模擬器中找到對應(yīng)的結(jié)果,則可以將其參數(shù)保存,反之則可以進行刪減。通過減少運行參數(shù)的方式,不僅提高了運行的速度,還可以減少測試過程的誤差,降低錯誤率,提高軟件模擬技術(shù)在計算機體系結(jié)構(gòu)方面的運用。
2.2 減少模擬器運行指令的數(shù)量
計算機作為當(dāng)代社會信息傳播的主要方式之一,在運行過程中需要消耗大量的數(shù)據(jù),所以如果要對其運行過程進行全面的模擬,需要在程序中添加大量的運行指令來滿足要求,而這些指令也正是運行耗費大量時間的關(guān)鍵所在。所以,為了能夠很好的解決這一弊端,隨著我國科學(xué)技術(shù)的不斷進步,以及對軟件模擬技術(shù)的深入研究,發(fā)現(xiàn)如果采用全部的指令來完成軟件的模擬工作是行不通的,但是如果只是采用其中的部分指令,讓這部分指令的運行過程來代替全部指令的運行過程,將讓模擬效果大幅度提高。因此同時也面臨著一個重要難題,在眾多的指令中應(yīng)該如何取舍才能完美的取代全部指令的運行過程。在做出指令選擇的時候需要了解各指令之間的差異,對它的運行效果有所了解,然后進行篩選,在保證不直接影響模擬效果的前提下,選出具有代表性的指令。當(dāng)前主要的指令選擇方式有兩種,一個是直接選擇指令,另一個是通過統(tǒng)計學(xué)的方式對指令進行選擇。
3 結(jié)語
隨著我國信息的傳輸量大幅度提高,對計算機體系結(jié)構(gòu)要求的提出的更高要求,軟件模擬技術(shù)被大量的推廣和應(yīng)用,在計算機的發(fā)展過程中起到重要作用,對這項技術(shù)進行分析就是為了能夠促進這項技術(shù)更好的發(fā)展。
參考文獻
[1]李明樹,楊秋松,翟健.軟件過程建模方法研究[J].軟件學(xué)報,2009(03).
[2]許建衛(wèi),陳明宇,楊偉,潘曉雷,鄭規(guī),趙健博,孫凝暉.計算機體系結(jié)構(gòu)模擬器技術(shù)和發(fā)展[J].系統(tǒng)仿真學(xué)報, 2009(20).
[3]王杰生,李舟軍,李夢君.用描述邏輯進行語義Web服務(wù)組合[J].軟件學(xué)報, 2008(04).
篇9
中圖分類號:G642
摘要:分析軟件工程專業(yè)的崗位需求和知識結(jié)構(gòu),提出適合地方性應(yīng)用型高校的軟件工程專業(yè)核心課程設(shè)置方案和體系結(jié)構(gòu)。關(guān)鍵詞:地方高校;軟件工程;課程體系
0 引言
進入21世紀(jì),以互聯(lián)網(wǎng)為核心的網(wǎng)絡(luò)與應(yīng)用得到快速發(fā)展,信息技術(shù)的應(yīng)用模式發(fā)生了巨大變化。在開放、動態(tài)、復(fù)雜的網(wǎng)絡(luò)環(huán)境下,靈活、可信、協(xié)同的計算資源、數(shù)據(jù)資源、軟件資源、服務(wù)資源等各種信息資源的共享和利用、無處不在的普適計算、主動可信的服務(wù)計算,均對軟件工程提出了巨大挑戰(zhàn)。
黃淮學(xué)院軟件工程專業(yè)是河南省省級特色專業(yè),近年來緊緊圍繞培養(yǎng)“就業(yè)能稱職、創(chuàng)業(yè)有能力、深造有基礎(chǔ)、發(fā)展有后勁”的高素質(zhì)技術(shù)技能型人才的目標(biāo)定位,積極推進應(yīng)用型人才培養(yǎng)模式改革,緊扣產(chǎn)業(yè)辦專業(yè),牽手企業(yè)促學(xué)業(yè),強化職業(yè)促就業(yè),不斷提升專業(yè)價值,全面提高應(yīng)用型人才培養(yǎng)質(zhì)量。作為本科層次教育,重視較寬厚的基礎(chǔ)知識的傳授;作為應(yīng)用型人才的培養(yǎng)定位,重視面向生產(chǎn)、經(jīng)營、管理實際,面向經(jīng)濟社會活動實際,培養(yǎng)運用所學(xué)知識分析問題、解決問題的能力,同時也要培養(yǎng)學(xué)生適應(yīng)社會的能力、創(chuàng)業(yè)發(fā)展能力。應(yīng)用型本科院校課程體系的設(shè)計應(yīng)有其內(nèi)在的規(guī)律與特定的模式?;诖?,筆者以黃淮學(xué)院為例,對這一問題做如下探討。
1 軟件工程課程體系建設(shè)原則
原則1:構(gòu)建課程體系的重要原則是核心課程體系的構(gòu)建。核心課程體系的構(gòu)建不是計算機科學(xué)專業(yè)課程和軟件工程類課程的簡單堆砌,而是對計算機學(xué)科課程進行有效的裁減和調(diào)整。對比軟件工程學(xué)科和計算機科學(xué)技術(shù)學(xué)科可以看出,計算機科學(xué)的主要目標(biāo)是為解決計算問題尋找有效的、能產(chǎn)生更好性能的途徑;軟件工程的主要目標(biāo)更注重具體方法和技術(shù)的應(yīng)用,軟件工程除了關(guān)注解決軟件問題的理論、原則、方法和技術(shù),還關(guān)注軟件質(zhì)量、軟件過程、項目管理、團隊合作、與用戶/客戶相關(guān)的問題,研究的對象是軟件開發(fā)過程中的所有活動。軟件工程專業(yè)的培養(yǎng)目標(biāo)是合格的軟件工程師,具有更明確的職業(yè)特性。
原則2:應(yīng)用型本科高校軟件工程專業(yè)不是簡單復(fù)制211或985高校的課程體系,而要根據(jù)培養(yǎng)“就業(yè)能稱職、創(chuàng)業(yè)有能力、深造有基礎(chǔ)、發(fā)展有后勁”的目標(biāo),結(jié)合實際工作崗位職業(yè)需求,基于傳統(tǒng)本科教育與職業(yè)教育相互滲透的培養(yǎng)理念,在通才與專才之間尋找平衡點,專業(yè)知識體系夠用為主,“軟、硬并重”,以第一課堂為核心,以行業(yè)、企業(yè)和管理服務(wù)崗位對人才知識、能力、素質(zhì)的具體要求構(gòu)建課程體系。
原則3:權(quán)衡軟件工程專業(yè)本科畢業(yè)生所應(yīng)具備知識的深度、廣度和適應(yīng)性。在大學(xué)教育期間,學(xué)生應(yīng)學(xué)習(xí)的知識大致可以劃分為4個.方面:人文社會科學(xué)知識,這是做人之根本;數(shù)學(xué)知識,這是軟件工程專業(yè)的底層基礎(chǔ);專業(yè)知識,是軟件工程學(xué)科之特色;相關(guān)領(lǐng)域知識,是學(xué)生就業(yè)之砝碼。知識是基礎(chǔ),能力是知識的綜合體現(xiàn)。對于軟件工程專業(yè)的學(xué)生應(yīng)該著力培養(yǎng)以下能力:專業(yè)必備的開發(fā)、設(shè)計能力,能終身受用的學(xué)習(xí)能力,培養(yǎng)領(lǐng)導(dǎo)力的處事能力和積累財富的創(chuàng)新能力。在注重學(xué)科知識的系統(tǒng)性和嚴(yán)謹(jǐn)性基礎(chǔ)上強調(diào)實際能力培養(yǎng)的重要性。
2 軟件工程專業(yè)課程體系基本構(gòu)架
黃淮學(xué)院軟件工程專業(yè)知識體系如圖1所示,該知識體系以人文外語知識和科學(xué)基礎(chǔ)知識為基本,軟件工程專業(yè)基礎(chǔ)知識為中堅,軟件工程與軟件管理專業(yè)知識為塔頂,輔以實踐和頂崗實訓(xùn)構(gòu)成軟件工程專業(yè)知識體系金字塔。
人文與外語知識包含由教育部統(tǒng)一要求的思想政治類課程、大學(xué)英語、專業(yè)外語以及創(chuàng)新創(chuàng)意和職業(yè)規(guī)劃方面的拓展課程;學(xué)科基礎(chǔ)知識則涉及數(shù)學(xué)系列課程、電子基礎(chǔ)課程和計算機科學(xué)基礎(chǔ)課程;專業(yè)基礎(chǔ)知識和專業(yè)技能知識包含程序設(shè)計基礎(chǔ)、軟件工程和軟件管理等,具體教學(xué)過程中可以涉及部分軟件工具和軟件產(chǎn)品作教學(xué)載體。針對軟件行業(yè)普遍反映的畢業(yè)生獨立解決問題能力不強、責(zé)任心差、對問題進行抽象和分析的能力差的問題,設(shè)計了如圖2所示的實踐能力漸進培養(yǎng)模式,該模式貫穿在課程教學(xué)、實驗、實訓(xùn)和畢業(yè)設(shè)計等教學(xué)過程中。
3 軟件工程課程系列的設(shè)計
黃淮學(xué)院軟件工程專業(yè)的課程體系既考慮了工程性、技術(shù)性、實用性、系統(tǒng)性、綜合性和復(fù)合型,又注意到強化基礎(chǔ)在有效解決復(fù)雜軟件的構(gòu)造和應(yīng)用方面能起到關(guān)鍵性作用,采取了根據(jù)就業(yè)崗位的能力需求進行知識分解,由課程模塊構(gòu)建系列課程,分階段互動式的課程設(shè)置方法。具體安排如圖3所示。
從圖3可以看到基礎(chǔ)知識教學(xué)階段共2學(xué)年,這樣設(shè)計是為了強化學(xué)生基礎(chǔ)知識,實現(xiàn)“基礎(chǔ)扎實、學(xué)科認知和專業(yè)融入”的目標(biāo)。公共基礎(chǔ)系列課程針對人文與外語知識,學(xué)科基礎(chǔ)理論系列課程的啟動從數(shù)學(xué)基礎(chǔ)課程系列和計算機導(dǎo)論開始,內(nèi)容貫穿軟件工程所涉及的計算機系統(tǒng)、程序設(shè)計語言、軟件工程、網(wǎng)絡(luò)技術(shù)等專業(yè)基礎(chǔ)知識的知識點以及與信息技術(shù)有關(guān)的社會人文等知識,力求使學(xué)生對所學(xué)專業(yè)有比較深入的了解,樹立專業(yè)學(xué)習(xí)的責(zé)任感和自豪感。其中包括高級語言程序設(shè)計、程序設(shè)計基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)和面向?qū)ο蟪绦蛟O(shè)計,旨在引導(dǎo)學(xué)生領(lǐng)會計算思維的同時訓(xùn)練其編程能力;硬件與網(wǎng)絡(luò)系列課程包含數(shù)字邏輯、計算機組成原理和計算機網(wǎng)絡(luò),軟件工程系列基礎(chǔ)課程包括操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)原理和WEB程序設(shè)計,這樣安排力求達到“編程、網(wǎng)絡(luò)和應(yīng)用開發(fā)”三位一體的教學(xué)目標(biāo)。
專業(yè)技能教學(xué)階段共設(shè)36周,設(shè)計思路是強調(diào)對學(xué)生工程性、技術(shù)性、實用性、系統(tǒng)性、綜合性和復(fù)合型能力的培養(yǎng),實現(xiàn)“熟悉軟件工程技能、樹立系統(tǒng)概念和掌握軟件設(shè)計開發(fā)技術(shù)”3個目標(biāo)。在這一階段中,綜合考慮主干專業(yè)課程和特色課程的設(shè)置,基于辦學(xué)特色設(shè)置若干動態(tài)可擴充的課程模塊,全面考慮課程之間的關(guān)聯(lián),強調(diào)統(tǒng)一設(shè)計、統(tǒng)一規(guī)劃。所有方向以系統(tǒng)分析與建模、軟件工程、軟件測試技術(shù)和嵌入式系統(tǒng)為基礎(chǔ),學(xué)生必須選修WEB程序開發(fā)和嵌入式軟件兩個專業(yè)方向中的一個課程模塊,WEB程序開發(fā)方向設(shè)置網(wǎng)站前臺開發(fā)技術(shù)、數(shù)據(jù)庫應(yīng)用技術(shù)、軟件框架技術(shù)、軟件需求工程和現(xiàn)代軟件開發(fā)技術(shù);嵌入式軟件專業(yè)方向開設(shè)單片機與接口技術(shù)、嵌入式Linux程序設(shè)計、移動編程技術(shù)、手持設(shè)備軟件開發(fā)和嵌入式系統(tǒng)開發(fā)綜合實踐,同時要求至少選修4門任選課以拓展專業(yè)知識。
工程實習(xí)教學(xué)階段開設(shè)在第4學(xué)年,設(shè)計思路是通過具體項目參與真刀真槍的項目訓(xùn)練,通過畢業(yè)設(shè)計與論文培養(yǎng)總結(jié)概括能力,實現(xiàn)理論與實際結(jié)合、技能與職業(yè)素質(zhì)結(jié)合的目標(biāo)。
在軟件工程專業(yè)的課程體系設(shè)計中還應(yīng)充分考慮課程間的銜接性、系統(tǒng)性和創(chuàng)新能力培養(yǎng)。教學(xué)計劃中通過設(shè)置10門設(shè)計類課程,加強課內(nèi)實踐教學(xué),常設(shè)性的學(xué)生軟件設(shè)計比賽如ACM競賽和軟件設(shè)計大賽也被引入教學(xué)過程中。上述思路形成的課程體系更細化的結(jié)構(gòu)如圖4所示。
4 結(jié)語
一個好的軟件工程課程體系應(yīng)該在一個或若干個應(yīng)用領(lǐng)域方面體現(xiàn)出自己的特色,為了幫助學(xué)生在適當(dāng)?shù)纳疃壬蠈W(xué)習(xí)其他應(yīng)用領(lǐng)域的知識,軟件工程課程體系應(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è)綜合改革試點專業(yè),每年畢業(yè)學(xué)生到各大公司進行項目實踐,并推薦部分優(yōu)秀學(xué)生到IBM等業(yè)界著名企業(yè)實習(xí),獲得各公司的一致好評。這幾年的實踐表明,教學(xué)計劃的設(shè)計是確保培養(yǎng)目標(biāo)實現(xiàn)的保障,課程體系的設(shè)計是合理安排教學(xué)過程的關(guān)鍵。學(xué)院軟件工程專業(yè)的每一位老師在這幾年的教學(xué)改革中付出了辛勤的勞動,但回首軟件工程專業(yè)取得的進步,大家都感到心情舒暢。高等院校的教學(xué)改革是永恒的主題,作為應(yīng)用型本科院校軟件工程專業(yè)的課程體系更應(yīng)與時俱進,我們一定會在現(xiàn)有基礎(chǔ)上進一步優(yōu)化軟件工程專業(yè)的課程體系,以期獲得更好的結(jié)果。
參考文獻:
[1]楊青,劉洪星.軟件工程學(xué)科的特征及其課程體系設(shè)計原則[J].武漢理工大學(xué)學(xué)報,2005,27(2):183-186.
[2]曾永衛(wèi),林志剛,楊堯彪.應(yīng)用型本科院校課程體系頂層設(shè)計的探討[J].湖南工程學(xué)院學(xué)報,2007,17(3):65-67.
[3]祁文青,紀(jì)鵬,馮運仿,等.計算機類應(yīng)用型本科的人才定位和課程體系[J].黃石理工學(xué)院學(xué)報,2012,28(1):60-63.
篇10
關(guān)鍵詞:明挖車站;SAP2000;車站結(jié)構(gòu);板單元;殼單元;風(fēng)道;
中圖分類號:U231文獻標(biāo)識碼: A
一.概述
明挖地鐵車站的計算通常采用平面剛架結(jié)構(gòu)模型[1],在與線路垂直方向截取尺寸,荷載條件不同的截面進行車站橫斷面計算,再沿線路走向截取縱斷面,計算梁柱受力。這種計算方式有著計算模型受力機理清晰,建模簡便,設(shè)計保守的優(yōu)點,但相對于車站三維整體建模,二維模型也有其弊端:首先二維模型對于車站斷面形式變化較少的車站相對簡便,但如果車站斷面形式多樣,尤其是縱斷面需要不止計算一種的情況下,其計算量會非常大,因為其縱斷面,每段梁的荷載需用板帶法進行手動計算再進行進行施加,如果柱跨不均勻,車站寬度變化多,會大大增加建模工作量,而三維整體建模只需建模一次,并且無需手動計算梁單元荷載,所以相對于三維維整體建模,二維模型計算并不一定能做到簡便省時;從受力考慮,二維模型計算沒有考慮板的縱向剛度,即板不能與梁共同承受彎矩,這顯然不合理,會造成梁單元彎矩比實際大,造成經(jīng)濟浪費;另外由于平面模型自身的局限性,無法模擬側(cè)墻風(fēng)道出入口開洞,盾構(gòu)開孔,中板開孔等細部計算。因此需要適時考慮應(yīng)用三維模型計算,減少工作量,提高結(jié)構(gòu)設(shè)計的可靠性和經(jīng)濟性。
二.明挖地鐵車站結(jié)構(gòu)
明挖車站結(jié)構(gòu)不同于地上混凝土框架結(jié)構(gòu),其頂,中,底板極少采用雙向板肋梁樓蓋與無梁樓蓋結(jié)構(gòu),但也不同于單向板肋梁樓蓋,通常,延線路方向梁為主梁,在垂直于線路方向的位置,只有設(shè)置扶梯吊鉤與車站高度寬度變化等位置才設(shè)置次梁,一般只有單方向的主梁;明挖車站沒有基礎(chǔ),其底板結(jié)構(gòu)即是基礎(chǔ)結(jié)構(gòu),以溫克爾彈簧的連接方式作用于地基土體;側(cè)墻是車站結(jié)構(gòu)的主要承重結(jié)構(gòu),車站側(cè)向土體土壓力作用在側(cè)墻上,平衡于頂、中、底板的軸力。車站頂板,底板與側(cè)墻連接處通過腋角增強剛度。在整個受力體系中,墻、板結(jié)構(gòu)發(fā)揮了重要的作用,這與以梁柱結(jié)構(gòu)為主的地上混凝土框架結(jié)構(gòu)形成了鮮明的對比。在這種情況下,板結(jié)構(gòu)不能簡單的歸為單向板還是雙向板,而是在SAP2000軟件中,通過單元網(wǎng)格劃分,與梁柱體系協(xié)同受力。
在SAP2000軟件中可以實現(xiàn)面單元的網(wǎng)絡(luò)劃分,通過網(wǎng)絡(luò)劃分后的板單元,其邊緣處的梁單元也自動進行劃分并于劃分后的板單元共用節(jié)點。根據(jù)車站結(jié)構(gòu)體系的特點,面荷載需施加“均布荷載”而不是“均勻分布到框架”,實際計算中,如果采用“均勻分布到框架”的方式施加荷載則結(jié)算結(jié)構(gòu)明顯比實際偏小。
三.明挖車站結(jié)構(gòu)在SAP2000有限元軟件在有限元軟件中的實現(xiàn)
3.1 工程概況
本次分析選取蘭州市城市軌道交通1號線一期工程拱星墩站,位于城關(guān)區(qū)現(xiàn)狀道路東崗東路與焦家灣路丁字路口處,車站沿東崗東路東西方向鋪設(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。
拱星墩站所處場地地基土自上而下為:地表一般分布有人工填土;其下為全新統(tǒng)的沖積黃土狀土、卵石,底部為下更新統(tǒng)卵石。
3.2主要構(gòu)件材料及尺寸
1) 材料的選擇須滿足結(jié)構(gòu)強度及耐久性要求,按照《混凝土結(jié)構(gòu)設(shè)計規(guī)范》[2](GB50010--2010)及《混凝土結(jié)構(gòu)耐久性設(shè)計規(guī)范》[3]((GB/T50476--2008)要求,主要受力構(gòu)件材料選取如下:
混凝土:頂、底板和側(cè)墻混凝土強度等級為C50,抗?jié)B等級為P12,中板為C35,柱為C50,素混凝土墊層為C20;主筋采用HRB400
2)主要構(gòu)件尺寸
標(biāo)準(zhǔn)段:頂板厚800mm,中板厚400mm,底板厚900mm。頂、中、底板與內(nèi)襯墻支座處均設(shè)斜托局部加厚
3.2 模型實現(xiàn)
SAP2000是獨立的基于有限元的結(jié)構(gòu)分析和設(shè)計程序。它提供了功能強大的交互式用戶界面,帶有很多工具幫助快速和精確創(chuàng)建模型,同時具有分析最復(fù)雜工程所需的分析技術(shù)[4]。 SAP2000默認情況下有兩個操作窗口,可以在這兩個操作窗口中可以分別設(shè)置顯示模式,顯示對象和結(jié)構(gòu)激活、鈍化情況,非常方便,另外與Midas軟件不同,SAP2000可以在劃分單元網(wǎng)絡(luò)之后,可對劃分后的單元進行整體指定操作,例如施加荷載,定義截面、邊界條件等,它還可以將劃分精細程度不同的相鄰板單元或?qū)嶓w單元實現(xiàn)變形協(xié)調(diào)。但在施加漸變荷載方面,SAP2000只能通過定義節(jié)點樣式來進行施加,不如Midas操作靈活。
在SAP2000中,板殼對象按照受力特點可以分為三類:膜單元、板單元和殼單元。膜單元只具有平面內(nèi)的剛度;板單元與膜單元相反,只具有平面外的剛度,承受彎曲力,模擬薄梁或者地基梁等;殼單元的力學(xué)行為是膜單元與板單元之和,是真正意義上的殼單元。 墻板結(jié)構(gòu)是明挖車站的受力主體。模型實現(xiàn)過程中的每一個細節(jié),決定模型質(zhì)量與受力分析的準(zhǔn)確性。本次車站所有墻,板結(jié)構(gòu)均采用殼單元進行模擬,并應(yīng)選擇厚殼。其中,參數(shù)“Thickness of Membrane” 用于計算殼元或膜元的面內(nèi)剛度和用于計算自重和質(zhì)量(動力);Thickness of Bending 用于計算板或殼單元的面外剛度,所以本次建模應(yīng)將這兩個參數(shù)應(yīng)與實際板單元厚度一致[5]。
3.3計算結(jié)果
圖3.1 車站整體框架體系基本組合彎矩圖
圖3.2 車站側(cè)墻基本組合彎矩圖
圖3.3 車站底板基本組合彎矩圖
圖3.4 車站中板基本組合彎矩圖
圖3.5 車站頂板基本組合彎矩圖
圖3.6 車站盾構(gòu)端端墻基本組合彎矩圖
表3.1 二維三維模型計算結(jié)果對比
構(gòu)件位置 二維平面計算基本組合彎矩(KN?m) 三維整體計算基本組合彎矩
(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é)論
通過本次三維模型計算,得出如下結(jié)論:
1)通過三維建??梢酝茢?,墻、板結(jié)構(gòu)在明挖車站受力體系中發(fā)揮著重要作用,與梁、柱體系協(xié)同承擔(dān)荷載,三維計算結(jié)果表明真實情況下墻,板實際受力略大于二維平面計算結(jié)果,各主梁的實際彎矩小于二維平面計算結(jié)果。
2)車站與風(fēng)道連接處,應(yīng)確保變形縫量測梁的剛度和柱跨的合理性,減小頂板變形。
3)車站盾構(gòu)擴大段與標(biāo)準(zhǔn)段連接處的底橫梁,跨中位置基本組合彎矩達到8000KN?m以上,應(yīng)增強底橫梁截面上部配筋。
4)盾構(gòu)端墻抗震柱兩側(cè)和第一層抗震柱之間的區(qū)域彎矩很小,建議盾構(gòu)端墻采取在此類區(qū)域減少配筋。
5)車站各側(cè)梁,彎矩都處于較低水平,尤其是中板盾構(gòu)端邊梁與平面計算出入較大。其梁的尺寸和配筋還有優(yōu)化余地
參考文獻:[1]李興高,張彌.地鐵車站結(jié)構(gòu)內(nèi)力計算中的問題[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] 中華人民共和國住房和城鄉(xiāng)建設(shè)部.GB50010--2010混凝土結(jié)
構(gòu)設(shè)計規(guī)范[s].北京:中國建筑工業(yè)出版社。2010.
[3] 中華人民共和國住房和城鄉(xiāng)建設(shè)部.GB/T50476--2008混凝土
結(jié)構(gòu)耐久性設(shè)計規(guī)范[S].北京:中國建筑工業(yè)出版社.2008.
熱門標(biāo)簽
軟件工程論文 軟件技術(shù)論文 軟件測試 軟件技術(shù)方案 軟件畢業(yè)論文 軟件設(shè)計 軟件年終總結(jié) 軟件開發(fā)論文 軟件設(shè)計大賽 軟件實訓(xùn)總結(jié) 心理培訓(xùn) 人文科學(xué)概論