国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于云平臺的軟件自動持續(xù)集成研究

2014-05-18 07:25:50嚴宇平王學文
信息通信技術 2014年1期
關鍵詞:源代碼自動軟件

嚴宇平 王學文 陸 璐

1 廣東電網(wǎng)公司 廣州 510006 2 華南理工大學 廣州 510006

介紹

軟件集成是一個軟件開發(fā)過程,它將經(jīng)過編碼和測試形成的軟件組件或代碼單元組合成完整的軟件產(chǎn)品,然后對該新產(chǎn)品再次進行測試和驗證,確保新產(chǎn)品能夠滿足用戶的需求,通常也稱其為系統(tǒng)集成或集成測試[1]。企業(yè)信息系統(tǒng)通常都是非常大而復雜的,系統(tǒng)建設、開發(fā)、測試和集成過程需要的成本非常高,而且在系統(tǒng)集成階段,經(jīng)常會出現(xiàn)不可預見的情況。這更加使得集成成為整個項目中最重要的一個階段。傳統(tǒng)的軟件集成方法有以下幾類[2]。

1)“Big-Bang”集成方法。即一次性非增量式集成。要求軟件開發(fā)人員首先測試每一個單元模塊,然后將所有的已經(jīng)測試通過的單元模塊全部進行集成,然而無法在集成過程中確定缺陷的真正位置。小型系統(tǒng)的單元模塊較少時,“Big-Bang”集成方式可能是較好的方法,但是針對如企業(yè)信息系統(tǒng)這樣大而復雜的項目,開發(fā)、集成復雜度提高,需要更好的集成方法。

2)“自頂向下”和“自底向上”集成方法。隨著增量式軟件開發(fā)模型的逐漸成熟,誕生了這兩種集成方法?!白皂斚蛳隆奔煞椒茌^早檢驗各功能的可行性,但是由于采用的是從上到下的方式,在集成過程中會出現(xiàn)一些替代模塊,可能最終出現(xiàn)問題從而引起過多的回歸測試,導致整個測試不充分?!白缘紫蛏稀边@種逆向集成方式可以把最容易出問題的部分盡早解決,同時能夠?qū)⒍鄠€模塊并行集成測試,提高效率。缺點是整個項目一直不能形成一個完整實體,直到最終系統(tǒng)的實現(xiàn)。

3)“迭代遞增”集成方法。伴隨著迭代式軟件開發(fā)模式的出現(xiàn),并以實現(xiàn)功能為目標?!暗f增式”集成在集成過程中更容易確定故障的位置,利用遞增式集成有利于盡快發(fā)現(xiàn)缺陷,逐步積累、解決問題,提高排查和改正錯誤的效率。軟件一邊開發(fā)一邊集成,然后再進行測試,所以測試也更加充分全面。但是真正的實踐中也出現(xiàn)了一些問題:時間間隔不能確定;只迭代而不遞增;只遞增而不迭代。

4) 持續(xù)集成方法。持續(xù)集成是一種軟件開發(fā)實踐,開發(fā)團隊成員經(jīng)常集成工作,集成使用自動化的構建進行驗證,構建過程中運行回歸測試,以盡快檢測集成錯誤。這種方法可以使集成問題大幅減少,更快地實現(xiàn)有凝聚力的軟件開發(fā)。持續(xù)集成方法的使用有如下優(yōu)勢。①降低風險[3],不斷地進行集成、自動化測試,能幫助檢查缺陷,越早發(fā)現(xiàn)問題,越容易解決缺陷。②減少重復過程,節(jié)省時間、費用和工作量。③降低部署難度[4],持續(xù)集成不斷頻繁的集成部署,將部署難度降到最低,能隨時隨地進行部署,讓客戶隨時得到反饋。④增強項目的可見性,持續(xù)集成能發(fā)現(xiàn)趨勢并進行有效的決策。經(jīng)常集成可以暴露一些趨勢,為構建狀態(tài)和品質(zhì)指標提供了及時的信息,甚至提供報告功能完成度和缺陷率。⑤減少集成問題,實現(xiàn)快速交付。

傳統(tǒng)的信息化建設的開發(fā)、測試和集成過程是不斷將各小模塊集成為大模塊,通過人工的功能測試后,再部署到生產(chǎn)環(huán)境。這種傳統(tǒng)的方法在大型企業(yè)信息化系統(tǒng)建設過程中存在較多的問題。1)無法驗證系統(tǒng)在準實時仿真的生產(chǎn)環(huán)境的情況;2)新模塊導致舊模塊不能正常運行;3)舊模塊的重復測試,重復的工作降低工作效率;4)人工編譯、構建、測試、發(fā)布部署帶來更多不確定性因素。

持續(xù)集成實踐的應用能極大地降低集成風險,逐步明確開發(fā)狀態(tài),及時改進軟件開發(fā)過程。與傳統(tǒng)的方法相比,持續(xù)集成技術的引用能夠更好地適應需求的變化,調(diào)動開發(fā)人員之間交流和合作的積極性,發(fā)揮軟件開發(fā)人員的能動性和自主創(chuàng)造力,提高軟件代碼的質(zhì)量,降低開發(fā)成本,提高產(chǎn)品交付能力。

1 一種軟件自動持續(xù)集成方法

隨著信息化建設步伐的逐漸加快,信息化在各行業(yè)的應用也越來越廣泛,與行業(yè)相關的業(yè)務支撐系統(tǒng)及平臺呈規(guī)?;碗s化的發(fā)展趨勢,隨著軟件復雜度的不斷增加、軟件交付周期的不斷縮短和交付頻率的提高,傳統(tǒng)集成方式面臨的問題日益嚴重。軟件自動持續(xù)集成方法的研究是為了解決以下問題。1)傳統(tǒng)的集成采用人工手動執(zhí)行構建、狀態(tài)監(jiān)控及出錯檢查,該方法工作量大,容易出錯,進而影響產(chǎn)品的質(zhì)量和交付進度;2)傳統(tǒng)的集成方法每構建一個項目皆需重新構建,無現(xiàn)成模板可用,且對現(xiàn)有軟件進行更新時,也需手動進行新構建部分的集成。

持續(xù)集成的要素[5]有9個。單一的代碼庫;自動構建;自動測試;代碼提交頻繁;快速構建;模擬生產(chǎn)環(huán)境的自動測試;每個人都可以很容易地獲取最新可執(zhí)行的應用程序;每個人都清楚正在發(fā)生的狀況;自動化的部署?;谝陨蠈Τ掷m(xù)集成要素的研究,在企業(yè)中實踐持續(xù)集成主要從源代碼管理、自動構建、自動測試等方面進行。本文主要圍繞這部分進行軟件自動持續(xù)集成方法的研究。

1.1 軟件自動持續(xù)集成

軟件自動持續(xù)集成方法的具體實施方案如圖1所示。

S400對軟件開發(fā)流程進行了結構化和規(guī)范化;S401有利于軟件開發(fā)項目的管理,以促進軟件開發(fā)工作的進行。本方法預定義了多個軟件開發(fā)中常用的xml配置文件模板,以便需要時,自由選擇添加使用,大大提高了開發(fā)效率,縮短了軟件交付周期,降低了開發(fā)成本。S405~S408可降低出錯率,提高產(chǎn)品質(zhì)量及開發(fā)效率,且掃描自動化及構建發(fā)布測試自動化,可減少工作量,進一步縮短軟件交付周期,提高開發(fā)效率。

圖1 軟件自動持續(xù)集成方法的實施流程示意圖

1.2 構建持續(xù)集成

構建持續(xù)集成方法的研究目標有如下幾點。1)可根據(jù)實際需要預設各步驟的執(zhí)行順序及執(zhí)行方式,使各步驟流程能自啟動;2)可將測試結果自動發(fā)送給開發(fā)用戶;3)可對版本控制庫進行實時監(jiān)控,當發(fā)現(xiàn)版本控制庫有變化時,即可自動或手動啟動相應的構建步驟,及時發(fā)現(xiàn)軟件缺陷并修復,便于進一步提高開發(fā)效率。本文的軟件構建持續(xù)集成方法的具體實施方案如圖2所示。

圖2 軟件構建持續(xù)集成方法的實施流程示意圖

軟件構建持續(xù)集成可幫助建立整個構建所運行的環(huán)境,這里構建所運行的環(huán)境包括添加初始化模板、設置各步驟的執(zhí)行順序及執(zhí)行方式,開發(fā)用戶可根據(jù)實際需要預設各步驟的執(zhí)行順序及執(zhí)行方式,使各步驟流程能自啟動運行,按照預設的執(zhí)行順序自動運行,其減少了工作量,降低了開發(fā)成本,提高了開發(fā)效率;同時,此技術方法可將所述測試結果生成一個入口html文件,并對所述html文件進行壓縮打包,通過郵件的方式自動發(fā)送給開發(fā)用戶,所述測試結果包括各步驟的運行時長、運行狀態(tài)、運行結果及運行日志,開發(fā)用戶可全面了解掌握各步驟的相關信息,及時發(fā)現(xiàn)缺陷并進行修復,避免錯誤缺陷一直延續(xù)至后期,給后期的工作帶來更嚴重錯誤,因此,其可降低錯誤率并大大提高開發(fā)效率;另外,此方法還可對版本控制庫進行實時監(jiān)控,當發(fā)現(xiàn)版本控制庫有變化時,可自動或手動啟動相應的構建步驟,及時發(fā)現(xiàn)軟件缺陷并修復,便于進一步提高開發(fā)效率。

1.3 自動生成版本更新說明

企業(yè)的大型系統(tǒng)總是不斷優(yōu)化升級,使軟件版本更新越來越頻繁;而每次版本發(fā)布,都需要編寫版本說明,描述修改的內(nèi)容。傳統(tǒng)的方法是在更新版本發(fā)布之前,由開發(fā)團隊收集整理版本說明,其缺點是無法客觀地和代碼文件的修改對應起來,容易發(fā)生錯漏;而且,提供的版本說明,很多是為了應付敷衍了事,質(zhì)量檢查難以逐次分辨。因此,軟件版本更新說明存在不完整、不準確,且不能客觀地將軟件版本更新說明與實際修改的源代碼文件一一對應的缺陷。

自動生成版本更新說明方法研究目標:提供一種自動生成軟件集成版本更新說明方法,可自動生成版本更新說明,并與實際修改的源代碼文件一一對應起來,能減少開發(fā)團隊的工作量,降低軟件更新發(fā)布的成本,加快發(fā)布時間。此方法的技術點如下。1)逐行讀取當前版本的文件,獲取注釋塊;2)篩選出所述注釋塊中特定格式的注釋,所述特定格式為包含SOA字段;3)讀取當前版本與前一版本所述注釋塊中特定格式的最新注釋;4)將當前版本與前一版本所述注釋塊中特定格式的最新注釋進行比對,判斷是否一樣,當判斷為否時,提取當前版本注釋塊中的最新注釋,并顯示出來;將當前版本中所有被提取出來的最新注釋進行匯總,形成版本更新說明。自動生成版本更新的具體實施方案如圖3所示。

圖3 自動生成軟件集成版本更新說明方法的實施流程示意圖

2 基于云的持續(xù)集成平臺

2.1 自動持續(xù)集成系統(tǒng)功能架構

通過對持續(xù)集成相關技術的理論研究和具體實踐的探索,本文實現(xiàn)的自動持續(xù)集成系統(tǒng)的功能架構如圖4所示。此系統(tǒng)囊括了源代碼控制管理、構建、代碼檢查、測試、發(fā)布等軟件建設流程,從而實現(xiàn)了軟件開發(fā)過程的自動化、一體化,能有效幫助企業(yè)信息化建設提高開發(fā)、管理效率,保證軟件質(zhì)量,降低交付風險。下面主要介紹與本文提出的理論方法密切相關的三部分。

1) 源代碼控制模塊應用了自動生成版本更新說明方法,并通過結合代碼管理軟件,可允許用戶自定義版本更新說明的生成需求。同時,借助代碼檢查輔助源代碼管理,提供自定義的代碼設計需求檢測,提高整體代碼質(zhì)量。

2) 產(chǎn)品構建則是在構建持續(xù)集成理論方法的研究基礎上結合構建工具軟件,實現(xiàn)軟件快速自動構建,從而節(jié)省大量的人工成本。甚至能允許各個開發(fā)者進行每日構建,并結合自動化測試工具進行回歸測試,確保每次修改必然能快速驗證其準確性,從而確保最終的軟件質(zhì)量。

3) 發(fā)布工具的融合允許有效快速地進行真實環(huán)境的測試。通過發(fā)布模塊將成功通過自動構建、自動回歸測試的軟件發(fā)布到已部署于服務器端的真實運行環(huán)境中進行實時測試,從而進一步降低軟件交付的風險。

圖4 持續(xù)集成系統(tǒng)功能架構圖

軟件自動持續(xù)集成平臺通過經(jīng)常反復地構建軟件、代碼檢查和測試,可以大大提高在早期發(fā)現(xiàn)缺陷的可能性,而缺陷在早期還不復雜,容易解決。由此可見,盡早、盡可能地在信息化建設過程中使用持續(xù)集成技術便可以盡可能早的發(fā)現(xiàn)缺陷,于此同時,缺陷也更可能得以解決,從而確保了最終系統(tǒng)的正確性和精確性,降低交付風險。

2.2 基于云的自動持續(xù)集成系統(tǒng)架構

本文通過研究軟件自動持續(xù)集成方法,明確了相應系統(tǒng)的功能架構,同時,結合電網(wǎng)企業(yè)在當前信息化建設過程中顯現(xiàn)的突出現(xiàn)象——大量的軟件項目仍采用傳統(tǒng)的集成方式,迫切需要借助持續(xù)集成平臺來提高項目建設的質(zhì)量和效率,提出了采用云計算技術[6]搭建基于云的軟件自動持續(xù)集成平臺,提供隨時隨地的持續(xù)集成服務。該云平臺通過有效利用電網(wǎng)內(nèi)部現(xiàn)有軟硬件資源,提供按需的資源配置和服務,來實現(xiàn)“即需即取”的資源管理模式,降低整體的部署成本?;谠频能浖詣映掷m(xù)集成平臺的整體架構如圖5所示。

圖5 基于云的軟件自動持續(xù)集成平臺的架構圖

基于云的自動持續(xù)集成平臺的主要結構包括以下三個部分。

1) 應用層。提供內(nèi)部人員持續(xù)集成服務,可以隨時隨地通過基于云的持續(xù)集成平臺進行持續(xù)集成實施、過程管理、維護和最終報告日志的查看等操作。方便內(nèi)部人員隨時隨地管理多項目的持續(xù)集成情況。

2) 平臺層。是該云計算體系結構的核心組成部分。它負責對資源的統(tǒng)一分配與調(diào)度,使得類型繁多的服務能夠在復雜底層環(huán)境上穩(wěn)定運行。該平臺融合了持續(xù)集成過程中各個階段所需要的軟硬件資源、工具等,主要包括如源代碼控制工具(SVN)、構建工具(maven)、代碼檢查(Checkstyle)、測試工具(JUnit)、發(fā)布工具(WebSphere)。主要目標是實現(xiàn)集成環(huán)境的虛擬化,根據(jù)集成項目需求,按需分配虛擬化的持續(xù)集成環(huán)境。

3) 資源層。為項目提供虛擬化的計算資源、存儲資源和網(wǎng)絡資源,根據(jù)項目需求進行動態(tài)分配與調(diào)整。資源層又分為物理資源層和虛擬化平臺層,其中物理資源層主要是指物理的計算資源、存儲資源和網(wǎng)絡資源,虛擬化平臺層包括虛擬服務器、虛擬存儲和虛擬網(wǎng)絡。

應用層為云平臺提供了更多的應用和內(nèi)容,滿足多種需求、支持更多的應用,平臺層與資源層能夠為應用層提供運營的平臺和更多更靈活的硬件資源,提供按需的資源配置和部署,實現(xiàn)“即需即取”服務模式。

3 結束語

持續(xù)集成技術的概念提出已久,軟件開發(fā)人員也逐漸認識到它的價值,但是真正在系統(tǒng)開發(fā)建設過程中實現(xiàn)了持續(xù)集成實踐的情況并不多見,如何在企業(yè)信息化建設過程中充分發(fā)揮持續(xù)集成的優(yōu)勢顯得越來越重要,本文在結合電網(wǎng)公司的信息化建設需求的基礎上,提出了一種軟件自動持續(xù)集成方法。同時,基于該軟件自動持續(xù)集成方法,運用云計算技術搭建了相應的云平臺,來驗證該研究的正確性和有效性。該平臺采用“按需服務”的管理模式,合理并充分地利用現(xiàn)有的軟硬件資源,提供虛擬化的持續(xù)集成環(huán)境,從整體上降低持續(xù)集成系統(tǒng)的部署成本。

基于云平臺的軟件自動持續(xù)集成方法的研究和實現(xiàn)能有效幫助企業(yè)在實施信息化建設過程中,提高效率,降低開發(fā)、管理、交付等的成本和風險?;诒疚难芯繉崿F(xiàn)的基于云平臺的自動持續(xù)集成系統(tǒng)已經(jīng)投入使用,從使用效果反饋可以明確,該系統(tǒng)能確保信息系統(tǒng)建設、開發(fā)和集成全過程(包括功能模塊的編譯、構建,各功能模塊集成和組裝,單元測試、組裝測試和回歸測試)的自動化,并能通過多種形式及時反饋期間的信息,以便于需求提出人員、系統(tǒng)分析人員、項目管理人員、系統(tǒng)設計人員、系統(tǒng)開發(fā)人員和系統(tǒng)測試人員及時了解系統(tǒng)建設過程中出現(xiàn)的情況和問題,能及時進行處理。

參考文獻

[1]張湘輝.軟件開發(fā)的過程與管理[M].北京:清華大學出版社,2005

[2]任玉雙.持續(xù)集成在項目構件化開發(fā)中的應用研究[D].山東師范大學,2012

[3]Duvall P M,Matyas S,Glover A.Continuous integration:improving software quality and reducing risk[M].Pearson Education,2007

[4]戴建國,趙慶展,郭理,等.持續(xù)集成在項目開發(fā)中的應用研究[J].計算機工程與設計,2009,30(10):2573-2576

[5]Continuous Integration[EB/OL].[2013-12-21].http://www.martinfowler.com/articles/continunusIntegration.html

[6]吳朱華.云計算核心技術剖析[M].北京:人民郵電出版社,2011

猜你喜歡
源代碼自動軟件
人工智能下復雜軟件源代碼缺陷精準校正
計算機仿真(2023年8期)2023-09-20 11:23:42
禪宗軟件
英語文摘(2021年10期)2021-11-22 08:02:26
基于TXL的源代碼插樁技術研究
自動捕盜機
學生天地(2020年5期)2020-08-25 09:09:08
軟件對對碰
軟件源代碼非公知性司法鑒定方法探析
基于STM32的自動喂養(yǎng)機控制系統(tǒng)
電子測試(2018年10期)2018-06-26 05:53:36
關于自動駕駛
汽車博覽(2016年9期)2016-10-18 13:05:41
揭秘龍湖產(chǎn)品“源代碼”
Stefan Greiner:我們?yōu)槭裁葱枰詣玉{駛?
涟源市| 曲水县| 历史| 石景山区| 贵南县| 屯留县| 金堂县| 林西县| 长顺县| 额尔古纳市| 安宁市| 太保市| 讷河市| 安溪县| 新乡市| 长寿区| 荔波县| 威远县| 枣阳市| 浮梁县| 阜南县| 南安市| 鸡西市| 庆城县| 洛阳市| 香港| 岳池县| 班戈县| 闸北区| 麻栗坡县| 牡丹江市| 满洲里市| 白朗县| 常州市| 资溪县| 砚山县| 乌鲁木齐县| 连云港市| 宁化县| 义乌市| 临夏县|