System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及測(cè)試,更具體地說,涉及一種命名沖突識(shí)別方法、裝置、設(shè)備及可讀存儲(chǔ)介質(zhì)。
技術(shù)介紹
1、隨著應(yīng)用軟件的復(fù)雜度不斷提高,軟件開發(fā)項(xiàng)目通常被拆分為多個(gè)模塊開發(fā)任務(wù)。這些模塊開發(fā)任務(wù)可能由不同的開發(fā)者或組織開發(fā),各自遵循不同的命名規(guī)范和設(shè)計(jì)理念,容易出現(xiàn)同一名稱算法具備不同功能的情況。由于名稱相同但功能不同,在應(yīng)用軟件運(yùn)行過程中,容易導(dǎo)致類加載器錯(cuò)誤地加載了不是預(yù)期的那個(gè)類,由此導(dǎo)致算法運(yùn)行失敗或算法運(yùn)行故障。
2、基于此,在應(yīng)用軟件開發(fā)過程中,需要及時(shí)解決命名沖突問題,以提高應(yīng)用軟件的穩(wěn)定性和可靠性,但解決命名沖突問題的前提是能夠及時(shí)發(fā)現(xiàn)命名沖突問題,因而,如何識(shí)別命名沖突成為了本領(lǐng)域人員關(guān)注的重點(diǎn)。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本申請(qǐng)?zhí)峁┝艘环N命名沖突識(shí)別方法、裝置、設(shè)備及可讀存儲(chǔ)介質(zhì),用于進(jìn)行命名沖突識(shí)別。
2、為了實(shí)現(xiàn)上述目的,現(xiàn)提出的方案如下:
3、一種命名沖突識(shí)別方法,包括:
4、掃描待識(shí)別應(yīng)用的所有jar包,分析不同jar包中是否存在簽名相同的編程實(shí)體;
5、若不存在,則確定所述待識(shí)別應(yīng)用中不存在命名沖突;
6、若存在,則提取對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令,并識(shí)別對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令是否相同;
7、若不相同,則確定對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體間存在沖突;
8、若相同,則進(jìn)入執(zhí)行確定所述待識(shí)別應(yīng)用中不存在命名沖突的步驟。
9、可選的,所
10、提取每個(gè)jar包的所有字節(jié)碼文件;
11、對(duì)不同jar包的字節(jié)碼文件進(jìn)行解析,分析不同jar包中是否存在簽名相同的編程實(shí)體。
12、可選的,所述對(duì)不同jar包的字節(jié)碼文件進(jìn)行解析,分析不同jar包中是否存在簽名相同的編程實(shí)體,包括:
13、對(duì)不同jar包的各個(gè)字節(jié)碼文件進(jìn)行比對(duì),判斷不同jar包中是否存在構(gòu)成相同的字節(jié)碼文件;
14、若是,則確定同一構(gòu)成的字節(jié)碼文件中是否存在簽名相同的編程實(shí)體。
15、可選的,所述對(duì)不同jar包的各個(gè)字節(jié)碼文件進(jìn)行比對(duì),判斷不同jar包中是否存在構(gòu)成相同的字節(jié)碼文件,包括:
16、確定每個(gè)字節(jié)碼文件中編程實(shí)體的定義類型以及修飾符;
17、判斷不同jar包中是否存在編程實(shí)體的定義類型以及修飾符皆一致的字節(jié)碼文件。
18、可選的,所述提取每個(gè)jar包的所有字節(jié)碼文件,包括:
19、利用命令行工具,從每個(gè)jar包中提取class文件。
20、可選的,所述提取對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令,并識(shí)別對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令是否相同,包括:
21、提取對(duì)應(yīng)于同一簽名的各個(gè)方法的操作指令集合,并識(shí)別對(duì)應(yīng)于同一簽名的各個(gè)方法的操作指令集合是否相同。
22、可選的,在所述掃描待識(shí)別應(yīng)用中所有jar包,分析不同jar包中是否存在簽名相同的編程實(shí)體之前,還包括:
23、通過協(xié)議ssh遠(yuǎn)程登錄服務(wù)端,并下載所述待識(shí)別應(yīng)用的所有jar包。
24、一種命名沖突識(shí)別裝置,包括:
25、掃描模塊,用于掃描待識(shí)別應(yīng)用的所有jar包,分析不同jar包中是否存在簽名相同的編程實(shí)體;若不存在,則調(diào)用確定模塊;若存在,則調(diào)用提取模塊;
26、確定模塊,用于確定所述待識(shí)別應(yīng)用中不存在命名沖突;
27、提取模塊,用于提取對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令,并識(shí)別對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令是否相同;若不相同,則確定對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體間存在沖突;若相同,則調(diào)用確定模塊。
28、一種命名沖突識(shí)別設(shè)備,包括存儲(chǔ)器和處理器;
29、所述存儲(chǔ)器,用于存儲(chǔ)程序;
30、所述處理器,用于執(zhí)行所述程序,實(shí)現(xiàn)上述的命名沖突識(shí)別方法的各個(gè)步驟。
31、一種可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)上述的命名沖突識(shí)別方法的各個(gè)步驟。
32、從上述的技術(shù)方案可以看出,本申請(qǐng)?zhí)峁┑拿麤_突識(shí)別方法,考慮到同一jar包中同一簽名的編程實(shí)體的功能相同,不會(huì)存在命名沖突,因而,該方法可以先掃描待識(shí)別應(yīng)用的所有jar包,分析不同jar包中是否存在簽名相同的編程實(shí)體;若不存在,則確定所述待識(shí)別應(yīng)用中不存在命名沖突;基于此,去除同一jar包的簽名對(duì)比流程,提高識(shí)別效率;而在確定不同jar包中存在簽名相同的編程實(shí)體后,可以提取對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令,并識(shí)別對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令是否相同;若不相同,則確定對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體間存在沖突;若相同,則進(jìn)入執(zhí)行確定所述待識(shí)別應(yīng)用中不存在命名沖突的步驟。基于此,本申請(qǐng)可以通過識(shí)別編程實(shí)體中的指令,確定不同jar包中同一簽名的編程實(shí)體是否為功能相同,將功能識(shí)別過程轉(zhuǎn)化為指令提取過程及指令比對(duì)過程。而指令是算法的具體執(zhí)行步驟,相同執(zhí)行步驟下的算法功能相同,通過指令比對(duì),可以準(zhǔn)確地判斷算法功能的匹配性。同時(shí),指令提取較為簡單,因而,將功能識(shí)別過程轉(zhuǎn)換為指令比對(duì)過程,能夠在確保識(shí)別準(zhǔn)確度的情況下,盡可能簡化識(shí)別難度,提高識(shí)別效率。可見,本申請(qǐng)可以在保證識(shí)別效率的情況下,判斷待識(shí)別應(yīng)用是否存在命名沖突,從而,加速命名沖突解決進(jìn)程,提高應(yīng)用軟件的穩(wěn)定性和可靠性。
本文檔來自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.一種命名沖突識(shí)別方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的命名沖突識(shí)別方法,其特征在于,所述掃描待識(shí)別應(yīng)用的所有jar包,分析不同jar包中是否存在簽名相同的編程實(shí)體,包括:
3.根據(jù)權(quán)利要求2所述的命名沖突識(shí)別方法,其特征在于,所述對(duì)不同jar包的字節(jié)碼文件進(jìn)行解析,分析不同jar包中是否存在簽名相同的編程實(shí)體,包括:
4.根據(jù)權(quán)利要求3所述的命名沖突識(shí)別方法,其特征在于,所述對(duì)不同jar包的各個(gè)字節(jié)碼文件進(jìn)行比對(duì),判斷不同jar包中是否存在構(gòu)成相同的字節(jié)碼文件,包括:
5.根據(jù)權(quán)利要求2所述的命名沖突識(shí)別方法,其特征在于,所述提取每個(gè)jar包的所有字節(jié)碼文件,包括:
6.根據(jù)權(quán)利要求1所述的命名沖突識(shí)別方法,其特征在于,所述提取對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令,并識(shí)別對(duì)應(yīng)于同一簽名的各個(gè)編程實(shí)體的操作指令是否相同,包括:
7.根據(jù)權(quán)利要求1所述的命名沖突識(shí)別方法,其特征在于,在所述掃描待識(shí)別應(yīng)用的所有jar包,分析不同jar包中是否存在簽名相同的編程實(shí)體之前,還包括:
8.一
9.一種命名沖突識(shí)別設(shè)備,其特征在于,包括存儲(chǔ)器和處理器;
10.一種可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)如權(quán)利要求1-7中任一項(xiàng)所述的命名沖突識(shí)別方法的各個(gè)步驟。
...【技術(shù)特征摘要】
1.一種命名沖突識(shí)別方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的命名沖突識(shí)別方法,其特征在于,所述掃描待識(shí)別應(yīng)用的所有jar包,分析不同jar包中是否存在簽名相同的編程實(shí)體,包括:
3.根據(jù)權(quán)利要求2所述的命名沖突識(shí)別方法,其特征在于,所述對(duì)不同jar包的字節(jié)碼文件進(jìn)行解析,分析不同jar包中是否存在簽名相同的編程實(shí)體,包括:
4.根據(jù)權(quán)利要求3所述的命名沖突識(shí)別方法,其特征在于,所述對(duì)不同jar包的各個(gè)字節(jié)碼文件進(jìn)行比對(duì),判斷不同jar包中是否存在構(gòu)成相同的字節(jié)碼文件,包括:
5.根據(jù)權(quán)利要求2所述的命名沖突識(shí)別方法,其特征在于,所述提取每個(gè)jar包的所有字節(jié)碼文件,包括...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:陳海潮,
申請(qǐng)(專利權(quán))人:廣州品唯軟件有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。