System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及編程領域,更具體地涉及機器人輔助編程方法及系統。
技術介紹
1、機器人輔助編程是指利用人工智能和機器學習技術,通過智能工具和平臺來支持開發人員編寫、優化和維護代碼,以提高開發效率和代碼質量。這些工具可以提供智能代碼補全、錯誤檢測、自動代碼生成、單元測試生成、文檔生成、代碼重構和優化等功能,減少開發人員的重復勞動,快速定位和修復問題,提高代碼的可讀性和可維護性,并促進團隊協作。這種方法使開發人員能夠專注于更具創造性的編程任務,提升整體開發效率和軟件質量。
2、現有的機器人輔助編程方法是通過對機器人代碼進行檢測,當發現代碼不合理時立即發出預警并提示編程人員進行修改,但是這種輔助方法會導致當出現不影響運行的問題出現時,也會進行預警并重新進行代碼優化,從而延長項目研發周期。
3、針對上述問題,本專利技術提出一種解決方案。
技術實現思路
1、為了克服現有技術的上述缺陷,本專利技術提供了機器人輔助編程方法及系統,以解決上述
技術介紹
中存在的問題。
2、為實現上述目的,本專利技術提供如下技術方案:
3、機器人輔助編程方法,包括以下步驟:
4、使用解析器將代碼轉換成抽象語法樹,遍歷ast節點,記錄各個節點的嵌套層數,找到所有節點中的最大嵌套層數,作為代碼的嵌套層數,并計算嵌套復雜度,其計算公式為其中cnest表示為嵌套復雜度,lmax為假設的最大嵌套層數,l為代碼的嵌套層數;
5、將代碼分割成固定行數的片段,對這些
6、將嵌套復雜度與代碼的重復度進行幾何平均計算得到代碼不簡潔系數,其計算公式為其中nc表示為代碼不簡潔系數,cnest表示為嵌套復雜度,cdup表示為代碼的重復度;
7、遍歷ast節點,識別出算法所在的算法,檢測每個算法的效率,并計算得到綜合效率系數;
8、通過代碼分析工具獲取單元測試檢測到代碼中的錯誤,并定位其具體位置,根據該位置的信息,計算得到該位置中錯誤的重要性,并對檢測出的錯誤的重要性進行均值計算得到代碼錯誤系數,其計算公式為其中dc表示為代碼錯誤系數,iti表示為第i個錯誤的重要性,n為代碼中錯誤的個數;
9、將代碼不簡潔系數、綜合效率系數以及代碼錯誤系數進行加權求和計算得到編程質量指數,其計算公式為其中pq表示為編程質量指數,nc表示為代碼不簡潔系數,ce表示為綜合效率系數,dc表示為代碼錯誤系數,a1、a2、a3表示為代碼不簡潔系數、綜合效率系數以及代碼錯誤系數的權重系數;
10、根據編程質量指數進行預警提示。
11、優選的,所述對這些片段計算哈希值,找出重復的片段步驟為:
12、將代碼按照固定行數進行分割;
13、對代碼片段進行標準化處理;
14、對每個代碼片段計算哈希值;
15、通過哈希值比較來檢測重復的代碼片段,篩選出相同哈希值的代碼片段,作為重復片段。
16、優選的,所述檢測每個算法的效率,并計算得到綜合效率系數步驟為:
17、通過理論分析確定每個算法的時間復雜度和空間復雜度,在不同輸入規模下實際測量每個算法的運行時間,測量每個算法的內存使用情況;
18、計算算法時間復雜度,其表達式為t(n)=o(f(n)),其中t(n)表示為時間復雜度,即算法的運行時間,o(*)為復雜度算法,f(n)表示為輸入規模;
19、計算算法空間復雜度,其表達式為s(n)=o(g(n)),其中s(n)表示為空間復雜度,即算法的內存使用量,g(n)表示為輸入規模,即為一個關于n的函數;
20、選擇一個基準算法的時間復雜度,標準化每個算法的時間復雜度,計算算法的時間復雜度系數,其計算公式為其中表示為算法i的時間復雜系數,tbase(n)為基準算法的時間復雜度,ti(n)為算法i的時間復雜度;
21、選擇一個基準算法的空間復雜度,標準化每個算法的空間復雜度,計算算法的空間復雜度系數,其計算公式為其中表示為算法i的空間復雜系數,sbase(n)為基準算法的空間復雜度,si(n)為算法i的空間復雜度;
22、通過幾何平均數計算綜合效率系數,其計算公式為其中ce表示為綜合效率系數,表示為算法i的時間復雜系數,表示為算法i的空間復雜系數。
23、優選的,所述根據該位置的信息,計算得到該位置中錯誤的重要性步驟為:
24、定義錯誤類型、錯誤頻率、代碼模塊、影響范圍以及修改成本;
25、為每個代碼位置定義一個多維重要性向量其中ei為第i個錯誤位置的錯誤類型,fi為第i個錯誤位置的錯誤頻率,mi為第i個錯誤位置所在的代碼模塊的重要性,ii為第i個錯誤位置的影響范圍,ci為第i個錯誤位置的修改成本;
26、使用最小-最大歸一化方法,將各參數值轉換到0到1的范圍內,其表達式為其中x’為歸一化后的參數值,x為原始參數值,xmin為參數在數據集中的最小值,xmax為參數在數據集中的最大值;
27、使用曼哈頓范數將多維向量轉化為單一的標量值,記為錯誤的重要性。
28、優選的,所述使用曼哈頓范數將多維向量轉化為單一的標量值步驟為:
29、對向量x中的每個元素取絕對值,將所有絕對值相加,得到一個標量值。
30、優選的,所述根據編程質量指數進行預警提示步驟為:
31、將編程質量指數與預設閾值進行對比,若編程質量指數大于預設閾值,則判定當前代碼質量好,則不進行預警,若編程質量指數小于預設閾值,則判定當前代碼質量差,則進行預警,提醒編程人員進行代碼優化。
32、優選的,機器人輔助編程系統,所述系統包括:
33、代碼數據采集模塊,用于采集機器人編程代碼中的相關數據,所述相關數據包括代碼嵌套層數、重復代碼、內存使用情況以及錯誤代碼的位置信息,并將相關數據傳輸至代碼數據分析模塊;
34、代碼數據分析模塊,用于接收代碼數據采集模塊傳輸的相關數據,并分析得到代碼相關系數,所述代碼相關系數包括代碼不簡潔系數、綜合效率系數以及代碼錯誤系數,并將代碼相關系數傳輸至代碼數據評估模塊;
35、代碼數據評估模塊,用于接收代碼數據分析模塊傳輸的代碼相關系數,并綜合評估得到編程質量指數,將編程質量指數傳輸至預警模塊;
36、預警模塊,用于接收代碼數據評估模塊傳輸的編程質量指數,并根據編程質量指數進行預警。
37、本專利技術的技術效果和優點:
38、找到所有節點中的最大嵌套層數,并計算嵌套復雜度,通過計算哈希值,找出重復的片段,并計算代碼的重復度,根據嵌套復雜度與代碼的重復度計算得到代碼不簡潔系數,檢測代碼中算法的綜合效率系數,獲取單元測試檢測到代碼中的錯誤,根據該位置的信息,計算得到該本文檔來自技高網...
【技術保護點】
1.機器人輔助編程方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的機器人輔助編程方法,其特征在于:所述對這些片段計算哈希值,找出重復的片段步驟為:
3.根據權利要求1所述的機器人輔助編程方法,其特征在于:所述檢測每個算法的效率,并計算得到綜合效率系數步驟為:
4.根據權利要求1所述的機器人輔助編程方法,其特征在于:所述根據該位置的信息,計算得到該位置中錯誤的重要性步驟為:
5.根據權利要求4所述的機器人輔助編程方法,其特征在于:所述使用曼哈頓范數將多維向量轉化為單一的標量值步驟為:
6.根據權利要求1所述的機器人輔助編程方法,其特征在于:所述根據編程質量指數進行預警提示步驟為:
7.機器人輔助編程系統,其特征在于:所述系統包括:
【技術特征摘要】
1.機器人輔助編程方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的機器人輔助編程方法,其特征在于:所述對這些片段計算哈希值,找出重復的片段步驟為:
3.根據權利要求1所述的機器人輔助編程方法,其特征在于:所述檢測每個算法的效率,并計算得到綜合效率系數步驟為:
4.根據權利要求1所述的機器人輔助編程方法,其特征在于...
【專利技術屬性】
技術研發人員:費旭鋒,韓超,
申請(專利權)人:上海鯨魚機器人科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。