Open source reuse has important significances in shortening product development time, reducing R & D cost and improving software quality. Code infringement detection, quality evaluation and synchronous update are three important aspects in reusing open source software. All these aspects require efficient analysis methods of open source code. The existing analysis methods mainly identify complete grammatical structures, which lack the ability of multilingual and incremental analysis, and cannot meet the analysis requirements of large-scale open source code efficiently. Aiming at the above problems, this project carries out the theory and method research in multilingual, lightweight and incremental analysis of open source code. The main research contents include the theory of multilingual meta model and grammar modularization and combination analysis, the lightweight analysis method based on lexical and syntactic patterns, and the efficient incremental analysis method of code repository snapshots. A prototype for open source reuse will be built to verify the above theories and methods. This research is expected to promote the efficient reuse of world-wide open source software and has important theoretical & practical value not only in the field of open source software reuse, but also in other fields such as software refactoring, defect repairing, clone detecting, etc.
复用开源软件对缩短产品研发时间、降低研发成本、提高软件质量具有重要意义。代码侵权检测、质量评价及同步更新是开源软件复用过程中的三个重要环节,三者均依赖于高效的程序分析方法支撑。现有的程序分析方法主要识别完整的语法结构,欠缺多语言识别能力和增量分析能力,难以满足海量开源代码的高效分析需求。针对上述问题,本项目拟开展多语言分析、轻量分析和增量分析方面的理论和方法研究,主要内容包括多语言元模型及模块化组合分析理论、词/语法特征兴趣点驱动的轻量分析方法、开源代码快照的高效增量分析方法,同时构建面向开源软件复用的程序分析应用示范原型系统。本项目的研究成果有望实现对国内外开源软件的高效复用,不仅在开源代码复用领域有重要的研究价值,在软件重构、缺陷修复、克隆检测等其它领域也有广泛的应用前景。
开源代码复用面临开源许可证检测困难、代码质量难以评价、代码缺陷难以修复等问题。针对上述挑战,开展了多语言模型及组合分析、代码快照高效增量分析、词/语法特征兴趣点驱动的轻量分析等研究,完成了既定研究目标,并构建了开源代码复用分析原型系统。.在经费执行方面,直接经费62万,已执行53.63万,结余8.37万;间接经费11.60万,已执行完毕。.在成果产出方面,发表论文22篇;申请发明专利7项;培养博士生5名、硕士生16名。出版了《鸿蒙操作系统组件库应用实践及进阶》、《麒麟操作系统应用与实践教程》等教材。. 具体研究进展如下:. (1)研究了开源代码仓库的高效增量分析方法,大幅降低了重复分析的代码量,满足了大规模开源代码的高效分析需求,已在《清华大学学报》发表。设计了开源代码许可证检测方法,减少了检测时间,提高了检测效率。. (2)设计了海量开源代码相似度比对方法,设计了基于n-gram和Simhash的函数指纹算法,设计了以函数为基本单元的相似度计算方法,加快了代码比对速度,已在《计算机工程》发表。. (3)设计了基于元模型的多语言分析方法和分析器自动生成机制,构建了Java语言分析器。研究了实体关系抽取方法,已在《计算机研究与发展》发表。提出了命名实体消歧方法,提高了消歧性能和准确率,已在《CHINESE JOURNAL OF ELECTRONICS》发表。提出了基于改进TextRank簇过滤的文本关键信息抽取方法,已在《农业机械学报》发表。. (4)设计了基于词/语法模式的轻量级分析方法,忽略与函数无关片段,提取函数名、参数、返回值等信息,并在Java语言分析中得到应用。. (5)构建了原型支持系统,并在鸿蒙、麒麟等多个大型开源系统中示范应用。研究了信息安全和防护机制,已在《信息安全学报》等期刊以及RAID 2020等会议上发表。.
{{i.achievement_title}}
数据更新时间:2023-05-31
玉米叶向值的全基因组关联分析
正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究
硬件木马:关键问题研究进展及新动向
基于SSVEP 直接脑控机器人方向和速度研究
小跨高比钢板- 混凝土组合连梁抗剪承载力计算方法研究
面向代码提交的开源软件演化微过程研究
众包需求工程中面向软件复用的需求管理与分析技术研究
基于开源生态知识图谱的软件舆情分析研究
面向软件再(逆向)工程的程序分析理论与关键技术研究