欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于fog數(shù)據(jù)的源代碼導入及解析的方法和裝置的制造方法

文檔序號:10665675閱讀:182來源:國知局
基于fog數(shù)據(jù)的源代碼導入及解析的方法和裝置的制造方法
【專利摘要】本發(fā)明提供一種基于FOG數(shù)據(jù)的源代碼導入及解析的方法及裝置,首先配置源代碼解析的選項,導入源代碼并將源代碼轉(zhuǎn)化為FOG數(shù)據(jù),與軟件需求等軟件研制生命周期中產(chǎn)生的其它數(shù)據(jù)置于同一工具平臺下統(tǒng)一維護,然后提取源代碼中的數(shù)據(jù)元素,并以此為基礎(chǔ)自動建立源代碼與低層需求的追蹤關(guān)系,以解決現(xiàn)有的源代碼維護技術(shù)中存在的追蹤粒度粗、需純手動關(guān)聯(lián)、源代碼與軟件需求的維護分離等缺點。實現(xiàn)了追蹤粒度較細、支持自動關(guān)聯(lián)、源代碼與軟件需求統(tǒng)一維護等技術(shù)效果,使得追蹤關(guān)系更加精確、合理,減少了由人為因素引入錯誤。
【專利說明】
基于FOG數(shù)據(jù)的源代碼導入及解析的方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機軟件程序開發(fā)的技術(shù)領(lǐng)域,特別涉及一種源代碼導入及解析的方法和裝置。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中,源代碼一般使用匯編語言或高級語言編寫,基于軟件架構(gòu)和低層需求編制的代碼。在民用機載軟件研制領(lǐng)域,權(quán)威的安全標準對于安全等級為A/B/C級的機載軟件的源代碼的指導意見明確指出:源代碼應(yīng)可追蹤至低層需求。其目的是確保所有低層需求都已開發(fā)成源代碼,并且不存在任何非預(yù)期的源代碼。
[0003]在現(xiàn)有的軟件研制環(huán)境中,軟件需求的開發(fā)維護工具不支持(或有限支持)源代碼數(shù)據(jù)的導入,即,軟件需求的維護與源代碼的維護是分別使用不同工具或方法實現(xiàn)的。
[0004]現(xiàn)有的使用需求開發(fā)工具在已建立低層需求數(shù)據(jù)庫的前提下,使用工具導入源代碼文件,并記錄文件名,而源代碼內(nèi)容只以文本形式存儲,并不對其進行解析;用戶手動為每個源代碼文件與工具數(shù)據(jù)庫內(nèi)的低層需求之間建立追蹤關(guān)系。更常見的方法是由用戶手動維護一個源代碼與低層需求之間的追蹤關(guān)系矩陣,這種方法由純?nèi)斯ぞ帉懽粉欔P(guān)系矩陣,因此一般不將其視為一種技術(shù)。
[0005]現(xiàn)有的源代碼維護技術(shù),存在以下缺點:
[0006]I)追蹤粒度較粗。現(xiàn)有技術(shù)以源代碼文件作為與低層需求的基本追蹤粒度。這樣建立的追蹤矩陣由于追蹤粒度過粗,追蹤關(guān)系不明確、可讀性較差,使得源代碼與低層需求之間的追蹤關(guān)系流于形式,無法真正達到確保所有低層需求都已開發(fā)成源代碼,并且不存在任何非預(yù)期的源代碼的目的。
[0007]2)需純手動關(guān)聯(lián)?,F(xiàn)有技術(shù)不解析源代碼文件,無法自動識別源代碼內(nèi)容,若需要建立更精確的(如以函數(shù)級為追蹤粒度)追蹤關(guān)系,只能依靠開發(fā)人員以純手動形式比對源代碼維護工具與需求維護工具的內(nèi)容,然后將函數(shù)、變量等源代碼元素與低層需求一一關(guān)聯(lián)。由于源代碼與需求的數(shù)量龐大,這樣的方法效率很低,也非常容易引入錯誤,為后續(xù)的驗證工作帶來不必要的麻煩。
[0008]3)源代碼與軟件需求的維護分離。源代碼與軟件需求等其它軟件研制生命周期數(shù)據(jù)的維護工具是互相獨立的。這樣的分離可能帶來不一致的問題,降低項目對軟件生命周期數(shù)據(jù)的維護能力,影響項目工作質(zhì)量和效率。

【發(fā)明內(nèi)容】

[0009]本發(fā)明提供一種基于FOG數(shù)據(jù)的源代碼導入及解析的方法和裝置,以解決現(xiàn)有的源代碼維護技術(shù)中存在的追蹤粒度粗、需純手動關(guān)聯(lián)、源代碼與軟件需求的維護分離等缺點。
[0010]為解決上述技術(shù)問題,本發(fā)明提供的基于FOG數(shù)據(jù)的源代碼導入及解析的方法和裝置是這樣實現(xiàn)的:
[0011]—種基于FOG數(shù)據(jù)的源代碼導入及解析裝置,用于源代碼與低層需求之間建立追蹤關(guān)系,包括:
[0012]源代碼導入模塊,將導入的源代碼轉(zhuǎn)化為FOG數(shù)據(jù);
[0013]解析選項配置模塊,用于配置源代碼解析的選項;
[0014]源代碼解析模塊,提取源代碼中的解析元素;
[0015]自動關(guān)聯(lián)低層需求模塊,通過識別的低層需求標識符自動建立解析元素與低層需求的追蹤關(guān)系。
[0016]還包括:靜態(tài)分析模塊,對導入的所述源代碼進行靜態(tài)分析,并為解析元素提供靜態(tài)分析報告。
[0017]還包括:源代碼版本管理模塊,用于為導入成功的源代碼文件進行版本設(shè)置。
[0018]解析選項配置模塊中所述源代碼解析選項內(nèi)容包括自定義庫文件路徑、設(shè)置條件編譯參數(shù)、規(guī)定作者標識符和低層需求標識符。
[0019]—種基于FOG數(shù)據(jù)的源代碼導入及解析方法,用于源代碼與低層需求之間建立追蹤關(guān)系,包括:
[0020]源代碼導入步驟,將導入的源代碼轉(zhuǎn)化為FOG數(shù)據(jù);
[0021]解析選項配置步驟,用于配置源代碼解析的選項;
[0022]源代碼解析步驟,提取源代碼中的解析元素;
[0023]自動關(guān)聯(lián)低層需求步驟,通過識別的低層需求標識符自動建立解析元素與低層需求的追蹤關(guān)系;
[0024]靜態(tài)分析步驟,對導入的源代碼進行靜態(tài)分析,并為解析元素提供靜態(tài)分析報告。
[0025]還包括:靜態(tài)分析步驟,對導入的所述源代碼進行靜態(tài)分析,并為所述解析元素提供靜態(tài)分析報告。
[0026]還包括:源代碼版本管理步驟,用于為導入成功的源代碼文件進行版本設(shè)置。
[0027]解析選項配置步驟中源代碼解析選項內(nèi)容包括自定義庫文件路徑、設(shè)置條件編譯參數(shù)、規(guī)定作者標識符和低層需求標識符。
[0028]解析元素包括函數(shù)、變量和類型,解析元素和低層需求均以FOG數(shù)據(jù)為單位。
[0029]本發(fā)明的積極效果在于:
[0030]I)追蹤粒度較細。本發(fā)明以從源代碼提取的解析元素(函數(shù)、變量、類型)為與低層需求建立追蹤關(guān)系的基本粒度,使得追蹤關(guān)系更加精確、合理。
[0031]2)支持自動關(guān)聯(lián)。使用預(yù)定義的低層需求標識符,只需在編寫源代碼時依照規(guī)則在注釋中添加相關(guān)的低層需求信息,該裝置就可以在解析完成后自動將解析元素關(guān)聯(lián)至低層需求。這樣就等同于在編寫源代碼的同時自動建立追蹤關(guān)系,無需再額外耗費人力維護追蹤矩陣,減少由人為因素引入錯誤的可能。
[0032]3)源代碼與軟件需求統(tǒng)一管理。源代碼經(jīng)導入、解析后,提取的解析元素被該裝置視為FOG數(shù)據(jù),與其它同為FOG數(shù)據(jù)的軟件生命周期數(shù)據(jù)基于相同的管理粒度,實現(xiàn)了所有數(shù)據(jù)一致、統(tǒng)一的版本控制和配置處理。
【附圖說明】
[0033]圖1為基于FOG數(shù)據(jù)的源代碼導入及解析的裝置框圖;
[0034]圖2為基于FOG數(shù)據(jù)的源代碼導入及解析的方法流程圖。
具體實施例
[0035]本發(fā)明所稱FOG數(shù)據(jù)是指具有獨立語義的最小數(shù)據(jù)單位。本發(fā)明提供一種源代碼導入及解析的方法和裝置,將源代碼數(shù)據(jù)與軟件需求等軟件研制生命周期中產(chǎn)生的其它數(shù)據(jù)都視為FOG數(shù)據(jù),并置于同一工具平臺下統(tǒng)一維護,提取源代碼中的數(shù)據(jù)元素,并以此為基礎(chǔ)建立源代碼與低層需求的追蹤關(guān)系。
[0036]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和實施方式(以C語言源代碼為例)對本發(fā)明作進一步的詳細說明。
[0037]如圖1,源代碼導入模塊11中,源代碼導入支持zip,rar等格式的壓縮包,壓縮包支持多層文件夾結(jié)構(gòu),例如可包含使用C語言編寫的.c代碼文件和.h頭文件。壓縮包內(nèi)包含的其它無關(guān)文件(非.c或.h文件)在導入時將被自動忽略。
[0038]解析選項配置模塊12在導入源代碼之前,支持用戶配置源代碼解析的選項,內(nèi)容包括:
[0039]I)頭文件庫路徑。如果源代碼的編譯環(huán)境包含一些非標準庫頭文件,并且這些頭文件不包含在導入的源代碼包中,可設(shè)置這些頭文件的所在目錄路徑,以便在解析時也將這些庫文件包含進來;
[0040]2)程序條件編譯宏定義。如果源代碼中包含一些條件編譯的宏定義,并且在解析時需要使得條件編譯通過,可在此設(shè)置。具體地,例如,源代碼中包含:
[0041]Sifdef WIN32
[0042]#include “abc.h”
[0043]#endif
[0044]可以添加參數(shù)“WIN32”,使#include “abc.h” 生效;
[0045]3)低層需求標識符??稍O(shè)置約定字符串,用于在源代碼注釋中標識低層需求信息。具體地,如定義“LLR: ”為低層需求標識符,若函數(shù)注釋中出現(xiàn)“LLR:XXX_LLR_001”,則“XXX_LLR_001”將被自動識別為該函數(shù)應(yīng)關(guān)聯(lián)的低層需求,該設(shè)置僅對“函數(shù)”有效。
[0046]4)作者標識符??稍O(shè)置約定字符串,用于在源代碼注釋中標識作者信息。具體地,如定義“Author: ”為作者標識符,則函數(shù)注釋中出現(xiàn)“Author:XYZ”,則“ΧΥΖ”將被自動識別為該函數(shù)的作者;該設(shè)置僅對“函數(shù)”有效。
[0047]源代碼解析模塊13中解析的目的是提取源代碼中的解析元素,每個解析元素都將被裝置作為FOG數(shù)據(jù)。其原理是識別源代碼文件中的所有函數(shù)定義、全局變量聲明和類型定義相關(guān)代碼及信息,解析元素包括三種:
[0048]I)函數(shù)。包含函數(shù)前首行注釋開始至函數(shù)體結(jié)束行為止的所有代碼,識別為該函數(shù)的相關(guān)代碼;
[0049]2)變量。包含全局變量聲明所在行,識別為該變量的相關(guān)代碼;
[0050]3)類型。包含自定義類型(typedef)前首行注釋開始至類型定義結(jié)束行為止的所有代碼,識別為該自定義類型的相關(guān)代碼。
[0051]若注釋中存在與作者標識符及低層需求標識符匹配的內(nèi)容,這些信息也會被識別為該解析元素的相關(guān)信息。解析成功后,所有被識別的解析元素按其所在源代碼文件分組:用戶可查看每個文件內(nèi)所包含的解析元素的信息,包括:名稱、相關(guān)代碼、作者、關(guān)聯(lián)的低層需求和解析元素類型。若解析不成功,則給出錯誤信息,輔助用戶進行修改源代碼后重新導入。
[0052]自動關(guān)聯(lián)低層需求模塊14有兩種關(guān)聯(lián)內(nèi)容:
[0053]I)滿足以下條件的解析元素,在解析完成后自動關(guān)聯(lián)低層需求:
[0054]解析過程中,采集到了該元素追蹤到的低層需求信息;并且,采集到的低層需求名稱與該裝置數(shù)據(jù)庫中某條低層需求(F0G數(shù)據(jù))完全匹配。解析元素追蹤到的低層需求可能存在多條,則每條符合以上規(guī)則的低層需求都將被自動關(guān)聯(lián)。所有不符合以上規(guī)則的解析元素,不自動關(guān)聯(lián)任何低層需求。
[0055]2)滿足以下條件的解析元素,在解析完成后自動關(guān)聯(lián)作者:
[0056]解析過程中,采集到了該元素的作者信息;并且,采集到的作者名稱與該裝置數(shù)據(jù)庫中某位用戶名稱完全匹配。所有不符合以上規(guī)則的解析元素,則其作者自動設(shè)定為導入源代碼的用戶名。
[0057]手動關(guān)聯(lián)低層需求模塊15支持用戶為所有解析元素即FOG數(shù)據(jù)手動關(guān)聯(lián)低層需求,建立源代碼與低層需求之間的追蹤關(guān)系。
[0058]靜態(tài)分析模塊I6支持用戶對所有解析成功的源代碼文件進行靜態(tài)分析。該裝置通過靜態(tài)分析可檢測的問題包括:
[0059]未使用的變量聲明;類型不一致;定義前使用;不可達代碼;被忽略的返回值;無法返回的執(zhí)行路徑;可能存在的無限循環(huán);可能的空指針;違反信息隱藏;內(nèi)存泄露;緩存溢出。
[0060]靜態(tài)分析完成后,該裝置以圖標形式標識出每個存在以上問題的解析元素。選擇某個解析元素后,將顯示與其相關(guān)的所有問題,即靜態(tài)分析報告。
[0061]源代碼版本管理模塊17為已導入的每個源代碼文件(.c文件和.h文件)都分別維護一個版本號。支持從上傳的源代碼包(zip或rar文件)中自動識別過去已導入的源代碼文件,并對再次導入的文件進行內(nèi)容比對,根據(jù)比對結(jié)果可自動進行以下操作:
[0062]a)新建。若導入的源代碼文件為首次導入,則設(shè)置文件版本號為1.0 (也可為其它值,支持用戶自定義),并將該版本的操作狀態(tài)置為“新建”;
[0063]b)無改變。若新導入的源代碼文件與已導入文件完全匹配,即無任何修改,則不做任何處理;
[0064]c)升版本。若新導入的源代碼文件與已導入文件存在差異,則使用新導入內(nèi)容覆蓋原有內(nèi)容,文件版本號升級,并將該版本的操作狀態(tài)置為“修改”。
[0065]如圖2所示,zip,rar等格式的源代碼壓縮包通過源代碼導入步驟21導入本發(fā)明裝置,壓縮包支持多層文件夾結(jié)構(gòu),例如可包含使用C語言編寫的.c代碼文件和.h頭文件,并將導入的源代碼轉(zhuǎn)化為FOG數(shù)據(jù)。
[0066]在導入源代碼之前,解析選項配置步驟22可以用來配置源代碼解析的選項,包括自定義庫文件路徑、設(shè)置條件編譯參數(shù)、規(guī)定作者標識符和低層需求標識符。
[0067]源代碼解析步驟23提取源代碼中的解析元素,每個解析元素都將被裝置作為FOG數(shù)據(jù)管理。識別源代碼文件中的所有函數(shù)定義、全局變量聲明和類型定義相關(guān)代碼及信息。
[0068]自動關(guān)聯(lián)低層需求步驟24通過識別的低層需求標識符自動建立解析元素與低層需求的追蹤關(guān)系。
[0069]此外本發(fā)明還支持通過手動關(guān)聯(lián)低層需求步驟25手動建立源代碼與低層需求之間的追蹤關(guān)系。源代碼與低層需求之間建立追蹤關(guān)系后可選擇對所有解析成功的源代碼文件進行靜態(tài)分析步驟26,選擇某個解析元素后,將顯示與其相關(guān)的所有問題,即靜態(tài)分析報生口 ο
[0070]源代碼版本管理步驟27為已導入的每個源代碼文件(.c文件和.h文件)都分別維護一個版本號。
[0071]本發(fā)明不僅僅針對“C語言源代碼”,也支持其他高級編程語言或匯編語言的源代碼導入及解析。源代碼解析選項配置內(nèi)容、解析元素類型以及靜態(tài)分析內(nèi)容將根據(jù)源代碼語言的不同而作相應(yīng)改變。
[0072]由以上實施例可見,本發(fā)明將源代碼轉(zhuǎn)化為FOG數(shù)據(jù),與軟件需求等軟件研制生命周期中產(chǎn)生的其它數(shù)據(jù)置于同一工具平臺下統(tǒng)一維護,然后提取源代碼中的數(shù)據(jù)元素,并以此為基礎(chǔ)建立源代碼與低層需求的追蹤關(guān)系,以解決現(xiàn)有的源代碼維護技術(shù)中存在的追蹤粒度粗、需純手動關(guān)聯(lián)、源代碼與軟件需求的維護分離等缺點。
[0073]雖然通過實施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明并不局限于上述特定的實施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實質(zhì)內(nèi)容。
【主權(quán)項】
1.一種基于FOG數(shù)據(jù)的源代碼導入及解析的裝置,用于源代碼與低層需求之間建立追蹤關(guān)系,其特征在于,包括: 源代碼導入模塊,將導入的源代碼轉(zhuǎn)化為FOG數(shù)據(jù); 解析選項配置模塊,用于配置所述源代碼解析的選項; 源代碼解析模塊,提取所述源代碼中的解析元素; 自動關(guān)聯(lián)低層需求模塊,通過識別的低層需求標識符自動建立所述解析元素與所述低層需求的追蹤關(guān)系。2.根據(jù)權(quán)利要求1所述的基于FOG數(shù)據(jù)的源代碼導入及解析的裝置,其特征在于,還包括:靜態(tài)分析模塊,對導入的所述源代碼進行靜態(tài)分析,并為所述解析元素提供靜態(tài)分析報生口 ο3.根據(jù)權(quán)利要求1所述的基于FOG數(shù)據(jù)的源代碼導入及解析的裝置,其特征在于,還包括:源代碼版本管理模塊,用于為導入成功的所述源代碼文件進行版本設(shè)置。4.根據(jù)權(quán)利要求1所述的基于FOG數(shù)據(jù)的源代碼導入及解析的裝置,其特征在于:所述解析選項配置模塊中所述源代碼解析選項內(nèi)容包括自定義庫文件路徑、設(shè)置條件編譯參數(shù)、規(guī)定作者標識符和低層需求標識符。5.根據(jù)權(quán)利要求1所述的基于FOG數(shù)據(jù)的源代碼導入及解析的裝置,其特征在于:所述解析元素包括函數(shù)、變量和類型,所述解析元素和所述低層需求均以FOG數(shù)據(jù)為單位。6.一種基于FOG數(shù)據(jù)的源代碼導入及解析的方法,用于源代碼與低層需求之間建立追蹤關(guān)系,其特征在于,包括: 源代碼導入步驟,將導入的源代碼轉(zhuǎn)化為FOG數(shù)據(jù); 解析選項配置步驟,用于配置所述源代碼解析的選項; 源代碼解析步驟,提取所述源代碼中的解析元素; 自動關(guān)聯(lián)低層需求步驟,通過識別的低層需求標識符自動建立所述解析元素與所述低層需求的追蹤關(guān)系; 靜態(tài)分析步驟,對導入的所述源代碼進行靜態(tài)分析,并為所述解析元素提供靜態(tài)分析?艮胃。7.根據(jù)權(quán)利要求5所述的基于FOG數(shù)據(jù)的源代碼導入及解析的方法,其特征在于,還包括:靜態(tài)分析步驟,對導入的所述源代碼進行靜態(tài)分析,并為所述解析元素提供靜態(tài)分析報生口 ο8.根據(jù)權(quán)利要求5所述的基于FOG數(shù)據(jù)的源代碼導入及解析的方法,其特征在于,還包括:源代碼版本管理步驟,用于為導入成功的所述源代碼文件進行版本設(shè)置。9.根據(jù)權(quán)利要求5所述的基于FOG數(shù)據(jù)的源代碼導入及解析的方法,其特征在于:所述解析選項配置步驟中所述源代碼解析選項內(nèi)容包括自定義庫文件路徑、設(shè)置條件編譯參數(shù)、規(guī)定作者標識符和低層需求標識符。10.根據(jù)權(quán)利要求5所述的基于FOG數(shù)據(jù)的源代碼導入及解析的方法,其特征在于:所述解析元素包括函數(shù)、變量和類型,所述解析元素和所述低層需求均以FOG數(shù)據(jù)為單位。
【文檔編號】G06F9/44GK106033338SQ201510111701
【公開日】2016年10月19日
【申請日】2015年3月13日
【發(fā)明人】王云明
【申請人】上海愛韋訊信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宁南县| 军事| 社旗县| 波密县| 新乡县| 阜阳市| 兴安县| 卢湾区| 塔河县| 西丰县| 建湖县| 成武县| 磴口县| 察隅县| 山阳县| 洮南市| 汝南县| 准格尔旗| 西林县| 金坛市| 耿马| 花垣县| 乐平市| 芮城县| 分宜县| 浦城县| 郴州市| 南溪县| 城口县| 南宫市| 昌平区| 滕州市| 搜索| 霍州市| 清水河县| 钦州市| 内乡县| 漳浦县| 连云港市| 湘潭县| 基隆市|