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