張亞旭
【摘 要】軟件建模是現(xiàn)代化的產(chǎn)物,是伴隨電腦的發(fā)明、軟件的應(yīng)用而生發(fā)的一種設(shè)計術(shù)語。隨著軟件工程理論研究的深入和軟件技術(shù)的不斷發(fā)展,軟件分析建模也日益完善。盡管不同的軟件分析建模平臺的建模工作存在差異,但大體可以把軟件分析建模分成三類,即業(yè)務(wù)建模、數(shù)據(jù)建模和應(yīng)用程序建模。本文軟件建模分析是基于源代碼語義分析結(jié)果。源代碼是相對目標(biāo)代碼和可執(zhí)行代碼而言的,是用匯編語言和高級語言寫出來的地代碼;目標(biāo)代碼是指源代碼經(jīng)過編譯程序產(chǎn)生的能被CPU直接識別二進(jìn)制代碼;可執(zhí)行代碼就是將目標(biāo)代碼連接后形成的可執(zhí)行文件,當(dāng)然也是二進(jìn)制的。
【關(guān)鍵詞】軟件工程;目標(biāo)代碼;執(zhí)行代碼;CPU
1 研究背景與意義
軟件產(chǎn)業(yè)作為拉動信息時代發(fā)展的動力引擎,是經(jīng)濟(jì)社會發(fā)展的基礎(chǔ)性、戰(zhàn)略性和先導(dǎo)性產(chǎn)業(yè),在推動信息化和產(chǎn)業(yè)化融合、促進(jìn)產(chǎn)業(yè)結(jié)構(gòu)調(diào)整和維護(hù)國家安全等方面發(fā)揮著重要作用。
語義分析是編譯過程的一個邏輯階段,語義分析的任務(wù)是對結(jié)構(gòu)上正確的源程序進(jìn)行上下文有關(guān)性質(zhì)的審查,即進(jìn)行類型審查。語義分析是審查源程序有無語義錯誤,為代碼生成階段收集類型信息。軟件質(zhì)量評估技術(shù)是軟件工程中非常重要的研究領(lǐng)域,由于軟件本身的復(fù)雜性和軟件技術(shù)發(fā)展迅速等原因,軟件質(zhì)量評估技術(shù)在理論上和技術(shù)上都很不成熟。若能對軟件進(jìn)行質(zhì)量更科學(xué)、更客觀的評估,便可促使得到更加可靠、高效的軟件。
伴隨著軟件產(chǎn)業(yè)的高速發(fā)展,軟件倉庫中源代碼的數(shù)量和復(fù)雜性也隨之迅速增長,致使源代碼質(zhì)量面臨著重大挑戰(zhàn),其中所隱藏的問題也日益凸顯。在開發(fā)過程中,雖然可以通過代碼檢測技術(shù)診斷出許多代碼問題,但是隨著技術(shù)的進(jìn)步及對軟件質(zhì)量要求的提高,軟件質(zhì)量管理不僅要求要檢測出代碼問題,而且要求綜合評估出軟件的綜合質(zhì)量。
近幾年,隨著主題模型在軟件工程領(lǐng)域的應(yīng)用的快速發(fā)展,以及軟件源代碼具有自然語言的部分特征的關(guān)鍵性質(zhì),諸多學(xué)者開始使用主題模型在代碼語義特征方面進(jìn)行大量開創(chuàng)性工作,如源代碼中的語義定位和捕捉源代碼中潛在主題和類之間的關(guān)系等。通過主題模型技術(shù)計算得到度量元在質(zhì)量特征中的條件概率分布以及質(zhì)量特征在代碼源文件中的條件概率分布,并基于計算得到的條件概率分布建立代碼質(zhì)量評估模型,以克服現(xiàn)有質(zhì)量模型存在映射關(guān)系由專家知識得到的局限性,也即通過主題模型客觀地刻畫代碼質(zhì)量與度量元之間復(fù)雜的映射關(guān)系。
2 國內(nèi)外研究現(xiàn)狀
軟件的行為是指軟件運行表現(xiàn)形態(tài)和狀態(tài)演變的過程,因此很多學(xué)者在軟件正常運行時收集運行過程信息建立行為模型,然后根據(jù)待測行為與模型的偏離程度檢測異常。
隨著可信計算的發(fā)展,軟件行為可信性模型被很多學(xué)者深入研究,軟件行為建模又迎來了新的發(fā)展。新的建模方法向著多元分析的方向發(fā)展,所采集的行為信息不再局限于系統(tǒng)調(diào)用、參數(shù)及上下文。諸如引入行為軌跡、檢查點場景、時間戳和主觀邏輯拓展等概念,綜合分析軟件行為。同時,基于行為語義的建模分析也成為當(dāng)前研究的熱點。付成功的從系統(tǒng)調(diào)用參數(shù)中解析出系統(tǒng)對象,賦予了狀態(tài)語義的含義。由于語義本身有其內(nèi)在的邏輯,且更貼近用戶的實際操作,可以發(fā)現(xiàn)較為隱蔽的應(yīng)用層攻擊,所以語義分析逐漸成為當(dāng)前軟件行為和網(wǎng)絡(luò)行為研究者關(guān)注的熱點。
3 主題建模在軟件源代碼中的應(yīng)用
建模方法根據(jù)建模時獲取行為信息方式的不同可以分為:
(1)動態(tài)建模:利用動態(tài)訓(xùn)練的方法來建立軟件行為模型。大量運行軟件并記錄執(zhí)行情況下的行為信息,構(gòu)建軟件行為模型
(2)靜態(tài)建模:靜態(tài)模型直接對程序的源代碼或二進(jìn)制代碼進(jìn)行分析,提取出相關(guān)行為信息,建立相應(yīng)的行為模型,不需要運行軟件。
(3)混合建模:混合模型是以靜態(tài)為主,動態(tài)為輔的建模方式,首先通過靜態(tài)分析的方法建立行為模型,然后利用動態(tài)分析方法對已建立的模型進(jìn)行輔助修正。
主題模型是一種可以從文本預(yù)料庫中自動發(fā)現(xiàn)主題結(jié)構(gòu)的算法。主題模型最早是由自然語言處理和信息檢索領(lǐng)域提出,作為自動檢索、查詢、聚類和結(jié)構(gòu)化大型非結(jié)構(gòu)化語料庫和非標(biāo)記文檔的一種手段。主題模型使得人們可以以相對于原來更低維的方式表示文檔,這樣做可以發(fā)現(xiàn)潛在語義關(guān)系,更快速的分析文本。在主題模型中有三個重要的概念,即文檔、主題和單詞,其中主題表現(xiàn)為一系列相關(guān)單詞的組合。在主題模型發(fā)展過程中,有三個最為經(jīng)典的模型,分別為潛在語義分析(Latent Semantic Analysis,LSA)模型、概率潛在語義分析(Probabilistic Latent Semantic Analysis,PLSA)模型和潛在狄利克雷分布(Latent Dirichlet Allocation,LDA)模型,它們在提出之后被廣泛應(yīng)用。
潛在語義分析模型作為最早被提出的主題模型,其是在向量空間模型的基礎(chǔ)上發(fā)展而來,在一定程度上克服了向量空間模型未考慮文檔的深層次語義特征的缺點,較空間向量模型而言,潛在語義分析模型較好的處理了同義詞的情況。潛在語義分析模型的核心是利用了線性代數(shù)中的奇異值分解方法(Singular ValueDecomposition,SVD)將高維的文檔單詞矩陣(Ducument-Term矩陣)映射到低維向量空間中,即潛在語義空間。在映射過程中,語義相關(guān)的單詞就會被聚集在同個主題中,即表示同一個主題中的單詞與單詞之間存在潛在語義關(guān)系,之后便可以使用這些語義結(jié)構(gòu)來表示文檔。
4 軟件質(zhì)量評估
縱觀以往的軟件質(zhì)量模型,大部分模型的建模過程分為兩步:首先將軟件質(zhì)量進(jìn)行分解,分解可直接進(jìn)行度量的軟件度量元;其次利用根據(jù)專家知識得到的映射權(quán)重向上聚集計算得到軟件質(zhì)量。仔細(xì)分析建模步驟可發(fā)現(xiàn),大多模型的映射關(guān)系刻畫存在較大主觀性,從而可能導(dǎo)致映射權(quán)重的不確定性和映射關(guān)系刻畫不完全等問題。軟件質(zhì)量是指軟件產(chǎn)品滿足客戶或用戶的需求或預(yù)期的程度,更進(jìn)一步說是軟件產(chǎn)品滿足人們需求所規(guī)定和隱含的各種特征或特性的總和。早在上個世紀(jì)70年代中后期,Boehm和 Mccabe分別提出的 Boehm模型和 McCall模型成為軟件質(zhì)量研究領(lǐng)域最早的質(zhì)量模型,同時也為之后的軟件質(zhì)量模型研究奠定了基礎(chǔ)。國內(nèi)關(guān)于軟件質(zhì)量的研究開始相對較晚,且主要集中于軟件可信方面。軟件可信性是軟件質(zhì)量的一種特殊表現(xiàn)形式,它更關(guān)注的是使用層面的綜合化的質(zhì)量屬性及其保障。雖然國內(nèi)目前提出可信軟件評估模型也是使用“層次”法建立評估體系,并且能有效的應(yīng)用于實際項目,但對于克服評估體系中的映射關(guān)系的復(fù)雜性與不確定性卻鮮有人涉及。
參考文獻(xiàn):
[1]申夢圓.基于語義模式的源代碼跨過程分析研究與實現(xiàn)[D].西安電子科技大學(xué),2018.
[2]顧逸圣,曾國蓀.基于語法和語義結(jié)合的源代碼精確搜索方法[J].計算機(jī)應(yīng)用,2017,37(10):2958-2963.
[3]傅穎.基于主題建模的軟件可維護(hù)性評估模型研究[D].重慶大學(xué),2016.
[4]方文淵.面向?qū)ο箢愒创a的編程邏輯建模與應(yīng)用[D].戰(zhàn)略支援部隊信息工程大學(xué),2018.
[5]羅楊洋.源代碼結(jié)構(gòu)質(zhì)量評估子系統(tǒng)的研究與實現(xiàn)[D].重慶大學(xué),2014.
[6]余海,李斌,王培霞,賈荻,王永吉.基于組合分類算法的源代碼注釋質(zhì)量評估方法[J].計算機(jī)應(yīng)用,2016,36(12):3448-3453+3467.
(作者單位:博智安全科技股份有限公司)