陳家文
為了研究面向服務的軟件構建化開發(fā)技術。基于當前應用軟件開發(fā)中存在的問題,在面向服務軟件開發(fā)技術支持下提出了以構件技術為代表的軟件復用手段,有效提高了軟件利用率。為同行提供建設性意見。
【關鍵詞】軟件開發(fā) 構建技術 SOA技術 方法
隨著社會的進步與科技的發(fā)展,計算機技術突飛猛進,而軟件的功能也不斷強大。計算機軟件無論在系統(tǒng)規(guī)模上還是用戶需求上都具有復雜多變性。如何在快速滿足用戶需求,提高工作效率是評定軟件好壞的一項重要指標,而作為軟件開發(fā)者也不斷在思考怎樣提高大型軟件系統(tǒng)的開發(fā)效率和開發(fā)質量。
當前應用軟件涉及多個領域,需求變化快,市場競爭激烈。而每款軟件的開發(fā)都需耗費大量時間,且單位時間工作量巨大。而且很多軟件之間相互獨立運行,缺乏有效的銜接,資源共享困難,普遍出現(xiàn)“信息孤島”現(xiàn)象。這就使得開發(fā)完成的軟件功能有限且維護成本較高。
本文針對當前存在問題,在面向服務軟件開發(fā)技術支持下提出了以構件技術為代表的軟件復用手段,有效提高了軟件利用率。為同行提供建設性意見。
1 構件技術與服務構件
1.1 構件技術
構件即為軟件結構中可以獨立運行的具有高度兼容通用性的標準化代碼模塊,具有松耦合易調用等優(yōu)點。其形式也可以多樣化,例如:功能性服務包、資源封裝化數(shù)據(jù)庫、函數(shù)算法工具等。可以單獨運行也可以多個組合運行,但前提是需要一定的兼容性架構條件。構件技術主要包括構件模型、構件組裝與可用性等相關技術。
構件模型:構件模型可理解為一種標準化的計算機語言寫作模板。其受一定的語義(指任務目的)與語法(指任務表述方法)約束,旨在讓計算機和程序人員更好的理解與運用,并定義簡潔易懂的集成化組裝機制。提高構件模型可用性,為軟件開發(fā)提供便利。
構件組裝:構件組裝可理解為標準構件搭建完成后為實現(xiàn)任務功能而使用計算機構件組裝方法進行的特定關聯(lián)性組裝連接,在構件標準的基礎上搭建功能更為強大的構件群。使成品構件群處理任務時高效而迅速。其具體工作流程:
(1)設置最終任務目標,在任務前提下確立軟件整體結構框架并根據(jù)不同構件的功能、屬性與結構框架進行合理的構件模型選擇。
(2)定義各構件與構件之間、構件與構件框架之間的相互協(xié)同性關系,進行構件選擇調控,優(yōu)化選擇提高兼容性。
(3)分解任務目標系統(tǒng)結構,弄清邏輯性功能,確立各功能與構件間服務性關系,驗證是否能接受服務請求并及時解決功能性問題。然后將其按照功能定義區(qū)分為松耦合或者強內聚的功能性構件,
(4)按照定義區(qū)分類別處理對待服務請求及其何種情況下調用何種構件。依此進行構件間的接口確立。在構件庫中進行人工或者半人工的構件篩選,在任務完成率的標準下選擇出高效集成的可復用構件。若有必要也可以進行精簡與開發(fā)構件。
(5)確立并獲取最終優(yōu)選構件,做初步篩選-修改-標準化處理。最終在合適的框架下將高度標準化后的構件依次進行接口對接和封裝,驗證后方可上線使用。
1.2 SOA技術
軟件開發(fā)的最終目的就是更好的服務用戶,使用在離散軟件模塊結構化集合的前提下應選用面向服務的體系結構,使其軟件更具備人機協(xié)同性,更具市場青睞。在服務設定與建立上應依據(jù)高度數(shù)學化的函數(shù)集模式去定義服務目的與對象,然后進行代碼的編寫,使其具備通用與重用性,方便調用。例如可以簡單去用一個服務替換另外一個服務而無須關心其底層的實現(xiàn)技術。
其結構如圖1所示從需求上講為服務請求者、服務提供者與服務注冊中心的高度集成化統(tǒng)一。其本質是提供對服務的注冊、發(fā)現(xiàn)和執(zhí)行的支持性,在明確定義的服務契約下進行封裝性、可復用性、互操作性的工作。
2 面向服務的應用軟件構件化開發(fā)方法
自上而下的統(tǒng)籌分析與自下而上的系統(tǒng)構造是面向服務的應用軟件構件化幵發(fā)兩大主要過程。自上而下的統(tǒng)籌分析是節(jié)省軟件開發(fā)工作量的決定性過程,其主要工作為收集軟件功能領域功能性通用需求與高概率需求模型,在根據(jù)客戶單個應用軟件的功能性定制需求進行修改和完善,在最省的情況下進行代碼重寫,節(jié)約工作量。待模型標準后對軟件整體體系構建進行構造。然后根據(jù)功能需求模型與處理優(yōu)化后的體系模型進行構件的高度識別并優(yōu)選提取。自下而上的系統(tǒng)構造主要針對于軟件運用與功能實現(xiàn)階段,去設計并實現(xiàn)服務構件然后進行合理組合。最終根據(jù)客戶需求進行應用軟件的功能化優(yōu)化和服務編排,完善系統(tǒng)。具體細則如下:
(1)根據(jù)領域知識和現(xiàn)有系統(tǒng)以及需要幵發(fā)系統(tǒng)的個性需求建立需求模型,主要包括功能需求,數(shù)據(jù)需求,性能需求以及構建需求。
(2)確定應用軟件的體系結構,并對服務構件進行識別和抽取。
(3)服務構件的設計和開發(fā),首先要對服務構件進行劃分,可以分為數(shù)據(jù)服務構件和功能服務構件,其中功能服務構件還分為專用構件和通用構件,通用構件是一般應用軟件中都會有的服務模塊,比如說用戶管理、報表等,專用構件主要服務于該系統(tǒng)的特定業(yè)務需求。
(3)對服務構件進行測試,保證其可靠性,然后將符合要求的構件加入構件庫。若不符合則對構件進行重新修改。
(5)對構件進行組裝形成服務,然后根據(jù)系統(tǒng)需求對服務進行編排,最后運行系統(tǒng)。
3 結語
軟件復用是在軟件開發(fā)中提高軟件利用率的重要手段。在應用軟件的開發(fā)集成領域不同行業(yè)和客戶的任務和目的各部相同,而服務構件技術降低了不一致性。高度集成開發(fā)了構件模塊,增強了各行業(yè)信息化競爭力。下步應大規(guī)模進行推廣。
參考文獻
[1]杜彥斌.面向服務軟件體系架構原理與范例研究[D].首都經濟貿易大學,2005.
[2]劉益.面向服務的應用軟件構件化開發(fā)方法研究[D].武漢理工大學,2013.
[3]程文迪,楚威.基于網(wǎng)絡中心化與面向服務的作戰(zhàn)仿真軟件架構[J].系統(tǒng)仿真學報,2016,28(01):77-82.
作者單位
廣州天源信息科技有限公司 廣東省廣州市 510520