• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2014-05-18 07:25:50嚴(yán)宇平王學(xué)文
      信息通信技術(shù) 2014年1期
      關(guān)鍵詞:源代碼自動軟件

      嚴(yán)宇平 王學(xué)文 陸 璐

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

      介紹

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      1.2 構(gòu)建持續(xù)集成

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

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

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

      1.3 自動生成版本更新說明

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      3 結(jié)束語

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

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

      參考文獻(xiàn)

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

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

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

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

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

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

      猜你喜歡
      源代碼自動軟件
      人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
      禪宗軟件
      英語文摘(2021年10期)2021-11-22 08:02:26
      基于TXL的源代碼插樁技術(shù)研究
      自動捕盜機(jī)
      軟件對對碰
      軟件源代碼非公知性司法鑒定方法探析
      基于STM32的自動喂養(yǎng)機(jī)控制系統(tǒng)
      電子測試(2018年10期)2018-06-26 05:53:36
      關(guān)于自動駕駛
      汽車博覽(2016年9期)2016-10-18 13:05:41
      揭秘龍湖產(chǎn)品“源代碼”
      Stefan Greiner:我們?yōu)槭裁葱枰詣玉{駛?
      新干县| 兰溪市| 高阳县| 渭源县| 容城县| 连平县| 女性| 陈巴尔虎旗| 赤壁市| 南宁市| 成都市| 敦煌市| 安溪县| 土默特右旗| 措勤县| 囊谦县| 克东县| 方正县| 田东县| 佛学| 关岭| 石狮市| 彭泽县| 宁津县| 镇坪县| 三门县| 日土县| 威海市| 康平县| 阿拉尔市| 华阴市| 汨罗市| 武城县| 张家港市| 仁寿县| 盐山县| 三河市| 时尚| 彭阳县| 云龙县| 仁怀市|