[發(fā)明專利]一種編程友好型的敏捷代碼自動(dòng)生成系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201710378087.X | 申請(qǐng)日: | 2017-05-25 |
| 公開(公告)號(hào): | CN107273117B | 公開(公告)日: | 2021-04-09 |
| 發(fā)明(設(shè)計(jì))人: | 徐志宏;鄧志強(qiáng);吳澳;李克萊;張華杰;王國(guó)彬 | 申請(qǐng)(專利權(quán))人: | 土巴兔集團(tuán)股份有限公司 |
| 主分類號(hào): | G06F8/30 | 分類號(hào): | G06F8/30;G06F8/35 |
| 代理公司: | 深圳眾鼎專利商標(biāo)代理事務(wù)所(普通合伙) 44325 | 代理人: | 吳英銘 |
| 地址: | 518000 廣東省深圳市南山西麗街道*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 編程 友好 敏捷 代碼 自動(dòng) 生成 系統(tǒng) | ||
1.一種編程友好型的敏捷代碼自動(dòng)生成系統(tǒng),其特征在于,所述系統(tǒng)包括:
數(shù)據(jù)描述文本,用于建立待生成的代碼的數(shù)據(jù)描述;所述數(shù)據(jù)描述文本為XML文本;所述數(shù)據(jù)描述包括按照預(yù)設(shè)規(guī)則語(yǔ)法進(jìn)行定義的關(guān)鍵字和業(yè)務(wù)邏輯;每一個(gè)關(guān)鍵字均為XML文檔中的一個(gè)元素;所述元素為節(jié)點(diǎn)或?qū)傩裕辉揦ML文檔
代碼模板,用于接受填入至數(shù)據(jù)描述文本解析出的參數(shù),以生成與所述業(yè)務(wù)邏輯對(duì)應(yīng)的功能模塊的初始代碼;
代碼生成器,包括描述解析器和代碼生成引擎,所述描述解析器用于將數(shù)據(jù)描述文本中的數(shù)據(jù)描述進(jìn)行解析;所述代碼生成引擎通過掃描相應(yīng)的代碼模板的占位符,找到所述描述解析器解析出的相應(yīng)的數(shù)據(jù)進(jìn)行填充,組裝出對(duì)應(yīng)功能模塊的初始代碼;所述描述解析器對(duì)所述XML文檔進(jìn)行解析的過程包括:
獲取根節(jié)點(diǎn),通過庫(kù)函數(shù)ElementDocument.getRootElement()獲取所述XML文檔的根節(jié)點(diǎn);
獲取子節(jié)點(diǎn)元素,在獲得根節(jié)點(diǎn)之后,利用遞歸下降法從根節(jié)點(diǎn)尋找其子節(jié)點(diǎn),構(gòu)造語(yǔ)法樹;
獲得命令參數(shù),通過遍歷整個(gè)XML文檔結(jié)構(gòu),提取出所有的屬性,再按照非參數(shù)屬性識(shí)別規(guī)則排除整個(gè)XML文檔結(jié)構(gòu)中的非參數(shù),生成命令文本模板,成對(duì)所述XML文檔的解析;
所述的非參數(shù)識(shí)別規(guī)則包括兩個(gè)規(guī)則項(xiàng):屬性名識(shí)別規(guī)則和屬性值識(shí)別;判斷某屬性為非參數(shù)屬性的判斷規(guī)則為:當(dāng)某個(gè)屬性同時(shí)滿足兩個(gè)規(guī)則項(xiàng)時(shí),則該屬性被視為非參數(shù)屬性,若一個(gè)規(guī)則項(xiàng)為空則只要滿足另一個(gè)規(guī)則項(xiàng),該屬性被視為非參數(shù)屬性;
合并組裝模塊,由代碼驗(yàn)證器對(duì)生成的初始代碼進(jìn)行驗(yàn)證,驗(yàn)證通過后將每個(gè)功能模塊對(duì)應(yīng)的初始代碼按照邏輯結(jié)構(gòu)進(jìn)行合并組裝,同時(shí)單獨(dú)存儲(chǔ)每個(gè)功能模塊對(duì)應(yīng)的初始代碼;對(duì)應(yīng)功能模塊的初始代碼的組裝過程包括:
檢查所述描述解析器解析出的描述文件的文檔語(yǔ)法、組織結(jié)構(gòu)是否無(wú)誤,驗(yàn)證錄入的解析數(shù)據(jù)類型是否正確,如查出描述文檔的內(nèi)容不符合文檔規(guī)定,則拋出異常信息;
讀取所述描述解析器解析出的描述文件,并抽取其中的解析數(shù)據(jù)并加載到內(nèi)存中以待訪問;
讀取所述描述解析器解析出的描述文件的具體過程為:
以命令行為單位,每讀入一行進(jìn)行分析,當(dāng)遇到一個(gè)標(biāo)題行時(shí)表示一個(gè)命令說明的開始,循環(huán)匹配直到出現(xiàn)另一個(gè)標(biāo)題行時(shí),表示結(jié)束對(duì)這個(gè)命令的說明;對(duì)命令行的分析采用表驅(qū)動(dòng)的方式進(jìn)行分析,該表為一個(gè)三維表,其中,第一維表示當(dāng)前的分析狀態(tài),第二維表示當(dāng)前輸入行,第三維的值為“0”或“1”,其中“0”元素表示動(dòng)作,“1”元素表示下一個(gè)狀態(tài),通過執(zhí)行指定的動(dòng)作并轉(zhuǎn)到下一個(gè)狀態(tài),循環(huán)對(duì)每一行進(jìn)行分析;
將分析出的所有命令的結(jié)構(gòu)化數(shù)據(jù)作為解析數(shù)據(jù)存放在列表容器中,供代碼模板對(duì)參數(shù)的提取以及代碼的生成;
將解析數(shù)據(jù)填入相應(yīng)的初始代碼中;解析數(shù)據(jù)按照規(guī)定格式進(jìn)行套取,加載到對(duì)應(yīng)的結(jié)點(diǎn)和常量替換,從而生成初步的代碼規(guī)范,并對(duì)應(yīng)的生成包含映射類、實(shí)體類、接口類、業(yè)務(wù)邏輯類四個(gè)文件;根據(jù)設(shè)置的屬性,添加包結(jié)構(gòu)和路徑,以及引用、備注、版本信息,生成對(duì)應(yīng)的業(yè)務(wù)層代碼;
分發(fā)模塊,將單個(gè)功能模塊與合并組裝后的初始代碼進(jìn)行一對(duì)一關(guān)聯(lián)映射,并賦予每個(gè)功能模塊指向該對(duì)應(yīng)功能模塊開發(fā)組的代碼接收容器的指針,用于在相應(yīng)的功能模塊的初始代碼生成后被分發(fā)至對(duì)應(yīng)的模塊開發(fā)組的代碼接收容器。
2.根據(jù)權(quán)利要求1所述的編程友好型的敏捷代碼自動(dòng)生成系統(tǒng),其特征在于,從根節(jié)點(diǎn)尋找其子節(jié)點(diǎn)以構(gòu)造語(yǔ)法樹的過程通過函數(shù)ElementElement.getChild(Stringname)和函數(shù)ListElement.getChildren(Stringname)完成,包括步驟:
函數(shù)ElementElement.getChild(Stringname)從父節(jié)點(diǎn)得到名稱為name的單一子節(jié)點(diǎn),函數(shù)返回值為空表示有0個(gè)元素;函數(shù)Element.getChildren(Stringname)用于獲取多個(gè)子元素,對(duì)于List中的每一個(gè)元素,通過List的迭代器獲取,List中的元素個(gè)數(shù)通過List的size()方法確定。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于土巴兔集團(tuán)股份有限公司,未經(jīng)土巴兔集團(tuán)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710378087.X/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 敏捷訓(xùn)練儀
- 用于異構(gòu)敏捷信息技術(shù)環(huán)境的協(xié)調(diào)治理系統(tǒng)
- 一種敏捷衛(wèi)星調(diào)度方法
- 敏捷衛(wèi)星在軌圖像質(zhì)量調(diào)整方法及通用裝置
- 敏捷開發(fā)管理系統(tǒng)及方法
- 一種敏捷模型的建立方法、系統(tǒng)及存儲(chǔ)介質(zhì)
- CNN-LSTM開發(fā)者項(xiàng)目推薦方法
- 敏捷開發(fā)需求受理方法及系統(tǒng)
- 敏捷軟件開發(fā)的度量方法,度量數(shù)據(jù)輸出方法以及裝置
- 一種基于DEVS的構(gòu)件化敏捷仿真框架構(gòu)建方法
- 遙控器代碼格式結(jié)構(gòu)及其收發(fā)信方法及裝置
- 在虛擬機(jī)中驗(yàn)證代碼模塊的方法及裝置
- 一種用于代碼的管理方法及裝置
- 虛擬代碼提供系統(tǒng)、生成裝置、驗(yàn)證裝置、提供方法
- 一種自動(dòng)化代碼質(zhì)量檢查方法及系統(tǒng)
- 代碼掃描方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于更新代碼的方法和裝置
- 前端代碼打包方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種代碼審查服務(wù)同步方法、裝置及計(jì)算機(jī)設(shè)備
- 一種高效智能源代碼安全管理平臺(tái)





