第十七届全国软件与应用学术会议(NASAC 2018)于2018年11月23日至25日在深圳大学召开。在大会举办的首届“违反编码规范的缺陷检测”命题型软件原型系统竞赛的现场决赛中,我校计算机科学与技术学院张昱副教授指导的、由该院一年级硕士研究生张宇翔(队长)和三年级本科生邓胜亮组成的参赛队伍在进入决赛的5支队伍中脱颖而出,夺得亚军。该项赛事要求参赛人员熟悉程序语言的编译原理和技术、了解程序分析技术,设计和实现相关程序分析算法来识别程序代码中违反所给编码规范的缺陷。
本次竞赛评选出冠亚军作品各一个、季军作品两个。北京轩宇信息技术有限公司的6人队伍在其公司软件产品上按竞赛需求实现的“C/C++静态代码检查工具SpecChecker”获得冠军;我校代表队基于开源编译器Clang 7.0研制的“违反编码规范的缺陷检测工具”获得亚军;陆军工程大学9名研究生和指导老师团队研制的“LGDNASAC工具”和中山大学4名研究生和指导老师团队研制的“函数头注释缺陷检测工具”并列获得季军。
NASAC会议是由中国计算机学会(CCF)主办,CCF软件工程专委会、CCF系统软件专委会承办的年度会议,本届大会由深圳大学计算机与软件学院参与承办。“软件研究成果原型系统竞赛”从2013年起由CCF软件工程专委和CCF系统软件专委联合举办,竞赛评审委员会由来自国内知名企业和顶尖科研机构的软件工程领域专家组成。今年的竞赛分为“自由型”和“命题型”,其中“命题型”包括“违反编码规范的缺陷检测”和“源代码漏洞检测”两种。命题型赛事旨在同时邀请和鼓励企业界的软件系统或工具参与,更广泛地凝聚领域内研究与技术人员形成合力,催化“学”、“研”、“产”、“用”生态的进一步发展,促进有关技术的关键突破、持续改进以及在实践中的使用与推广。
“违反编码规范的缺陷检测”命题型原型系统赛事是今年首次举办,多家单位受邀参赛。赛题于10月22日发布,要求各参赛队伍针对C语言代码中违反项目编码规范的六种需求进行自动化检测。六项检测涵盖头文件规范检测、函数参数检查规范检测、函数头注释规范检测、命名规范检测、错误处理规范检测和按需初始化规范检测,重点关注自动检测工具的技术实现与实用价值。竞赛组委会于11月15日完成对初赛队伍的遴选,11月22日发布测试集,11月23日下午进行现场决赛。10月22日赛题发布至11月10日工具提交仅20个比赛日,时间紧、难度大、任务重,极大地考验参赛队伍的技术积累、团队合作和工程能力。
我校计算机科学与技术学院参赛队基于开源编译器前端框架Clang 7.0研制“违反编码规范的缺陷检测工具”,该工具在竞赛组委会11月22日发布的62个测试程序集上,五项规范检测的平均查全率和查准率分别为84.09%和80.43%。中国科大队伍出色的工作得到了大赛评委和与会同行专家的高度认可,显示出我校学生快速学习和驾驭复杂开源编译工具、快速应变以及基础扎实的实力。