越來(lái)越多的企業(yè)意識(shí)到軟件質(zhì)量的重要性,軟件的安全性與效率成為一個(gè)公司成功運(yùn)轉(zhuǎn)的關(guān)鍵因素。對(duì)企業(yè)而言資金不僅要投資到技術(shù)創(chuàng)新,大筆資金還應(yīng)流向?qū)υ邢到y(tǒng)和原有軟件產(chǎn)品的更新與維護(hù)中。隨著物聯(lián)網(wǎng)到智慧城市等顛覆性技術(shù)的出現(xiàn),頂尖的開(kāi)發(fā)人才也不僅僅要專注于技術(shù)創(chuàng)新,還需在重構(gòu)舊軟件上消耗精力與時(shí)間,如果軟件的自愈能力提高,這將將使開(kāi)發(fā)團(tuán)隊(duì)效率提高至少30%。
十年前的軟件技術(shù)水平已達(dá)到可以使用先進(jìn)邏輯識(shí)別自己的故障,進(jìn)行自我修復(fù);如今將自我修復(fù)應(yīng)用于當(dāng)今世界,依賴技術(shù)來(lái)簡(jiǎn)化軟件,已不是難點(diǎn)。軟件自愈/自我修復(fù)概念已經(jīng)在基礎(chǔ)設(shè)施領(lǐng)域取得了實(shí)質(zhì)性的進(jìn)展,它能夠防止網(wǎng)絡(luò)攻擊或者大面積系統(tǒng)中斷導(dǎo)致的客戶服務(wù)中斷等問(wèn)題。數(shù)據(jù)中心配備故障切換指令,能夠自動(dòng)保持系統(tǒng)正常運(yùn)行;一般企業(yè)網(wǎng)絡(luò)安裝足夠敏感的防火墻以檢測(cè)不遵常規(guī)協(xié)議的惡意攻擊。容器和云服務(wù)的應(yīng)用將更進(jìn)一步防止應(yīng)用程序和服務(wù)失敗,以及應(yīng)對(duì)峰值交易數(shù)量的突然增加。將自我修復(fù)技術(shù)直接應(yīng)用于源代碼,將有助于軟件的開(kāi)發(fā)與改進(jìn)。
以2010年IBM在以色列實(shí)施SHADOW項(xiàng)目為例,該項(xiàng)目提出了建立消除現(xiàn)代化和修復(fù)舊軟件的故障模型。過(guò)去,工程師需要花費(fèi)大量時(shí)間與精力手動(dòng)篩選舊代碼,只有檢測(cè)到代碼質(zhì)量問(wèn)題才予以修復(fù),SHADOW項(xiàng)目提出模仿工程師的行為,將人工智能原理應(yīng)用于軟件,但該項(xiàng)目“從外部”工作,沒(méi)有修改源代碼,只有將工程師修改填寫(xiě)代碼內(nèi)容的行為導(dǎo)入到SHADOW項(xiàng)目,才能研發(fā)出自愈軟件系統(tǒng)。
IBM的想法相當(dāng)有潛力,但由于市場(chǎng)成本過(guò)高,該項(xiàng)目在當(dāng)時(shí)的情況下,實(shí)施落地為時(shí)過(guò)早。,主要原因是當(dāng)時(shí)離岸外包處于高峰,維護(hù)舊軟件的工作多轉(zhuǎn)向低勞動(dòng)力成本地區(qū)。如今,離岸外包的成本優(yōu)勢(shì)不像過(guò)去那樣明顯,商業(yè)世界變得更加敏捷,企業(yè)更習(xí)慣于在IT系統(tǒng)的各個(gè)層級(jí)上自主快速地處理變化,而非依賴維護(hù)外包服務(wù)�,F(xiàn)今再談軟件自愈,時(shí)機(jī)已成熟。
識(shí)別源代碼層的BUG
自我修復(fù)過(guò)程中的第一步是識(shí)別不安全程序或存在潛在風(fēng)險(xiǎn)的程序,但這些問(wèn)題缺陷難以在前端識(shí)別,只有當(dāng)應(yīng)用程序處于運(yùn)行中并發(fā)生問(wèn)題的情況下才會(huì)被識(shí)別。MITRE的CWE和CISQ(IT軟件質(zhì)量聯(lián)盟)已發(fā)布通用的軟件質(zhì)量標(biāo)準(zhǔn),幫助企業(yè)對(duì)軟件質(zhì)量進(jìn)行測(cè)試評(píng)估。系統(tǒng)效率、彈性、可維護(hù)性和安全性是構(gòu)建自愈軟件的基礎(chǔ)。采用軟件質(zhì)量標(biāo)準(zhǔn)對(duì)應(yīng)用程序進(jìn)行檢測(cè),使研發(fā)人員可以從系統(tǒng)的視角進(jìn)行趨勢(shì)分析,找出應(yīng)用程序故障及服務(wù)中斷的常見(jiàn)原因,建立一個(gè)精確的、增長(zhǎng)的缺陷代碼數(shù)據(jù)庫(kù),也為機(jī)器學(xué)習(xí)進(jìn)一步自動(dòng)化分析和預(yù)測(cè)系統(tǒng)故障建立了基礎(chǔ)。
應(yīng)用結(jié)構(gòu)離散、分拆的同時(shí)需要有系統(tǒng)架構(gòu)藍(lán)圖
已經(jīng)開(kāi)始實(shí)施微服務(wù)(Microservices)的團(tuán)隊(duì)(包括將應(yīng)用程序分解成更小、更容易變化的組件)將更容易實(shí)現(xiàn)非侵入式的自修復(fù)過(guò)程。但是,在某些時(shí)候,這些組件必須重新組合起來(lái)才能形成一個(gè)功能齊全的應(yīng)用程序。將系統(tǒng)級(jí)分析作為一個(gè)質(zhì)量檢驗(yàn)關(guān),然后將一個(gè)自修復(fù)的系統(tǒng)重新投入到生產(chǎn)中,將有效防止新的軟件缺陷或問(wèn)題代碼重新回到系統(tǒng)中。另外,應(yīng)用系統(tǒng)級(jí)分析工具在應(yīng)用程序重新投入生產(chǎn)之前創(chuàng)建一個(gè)架構(gòu)藍(lán)圖將更加有利于應(yīng)用的系統(tǒng)化管理。CAST AIP(應(yīng)用智能平臺(tái))的自動(dòng)化檢測(cè)、分析以及生成架構(gòu)藍(lán)圖的能力,使得這些步驟的實(shí)現(xiàn)變得輕而易舉。
軟件自愈—科技創(chuàng)新的跳板
結(jié)合自修復(fù)的自動(dòng)化特性為企業(yè)創(chuàng)新打下良好的基礎(chǔ)。例如,編寫(xiě)軟件以自我檢測(cè)報(bào)告不規(guī)律行為和不遵循規(guī)則的活動(dòng)可以簡(jiǎn)化應(yīng)用向云遷移的工作。目前,將軟件應(yīng)用程序遷移到云環(huán)境中,同時(shí)應(yīng)用程序能夠正確地在云中運(yùn)行,需要對(duì)代碼進(jìn)行單獨(dú)的分析和返工。如果這些云應(yīng)用程序可以自行分析并主動(dòng)報(bào)告在遷移之前需要修復(fù)哪些內(nèi)容,能省時(shí)省力的同時(shí)也能及時(shí)預(yù)防在云轉(zhuǎn)換過(guò)程中出現(xiàn)的業(yè)務(wù)中斷。CAST Highlight的代碼級(jí)自動(dòng)化分析能力可以幫助快速分析和發(fā)現(xiàn)應(yīng)用的云遷移可行性指標(biāo),定位應(yīng)用進(jìn)行云遷移所需要的代碼修復(fù)內(nèi)容。
榜單收錄、高管收錄、融資收錄、活動(dòng)收錄可發(fā)送郵件至news#citmt.cn(把#換成@)。
海報(bào)生成中...