元素瓶软件代码智能审查系统

数媒竞赛获奖作品信息及简介
作品名称元素瓶软件代码智能审查系统
参赛院校金陵科技学院
指导老师洪蕾、董如婵
团队成员夏金伟、施瑞昭、苏宁
奖项等级国赛一等奖
竞赛年份2023

本作品软件代码智能审查系统致力于推动我国信息化改革进程,本系统通过对软件需求文档和软件源码的分析,向政府机关和事业单位提供软件成本估计和软件合规行安全性分析,同时提供一系列相应的应对方法。提供软件成本估算、知识产权合规性分析、安全漏洞分析和代码溯源等服务。它旨在帮助政府单位、企业和其他相关部门确保软件开发投资的经济可行性、系统可用性、网络安全性与合法性,促进信息技术投资管理和绩效评估,并为监管机构和第三方咨询公司提供技术支持。 以下是作品的创意描述: 1.自动迭代构建的开源代码库:自动维护旧有代码,每日拉取热门项目,建立版本索引树,归并类似代码为相关主支; 2.项目依赖漏洞检索器:依据项目Maven、Gradle配置文件检索依赖漏洞,生成依赖引用树和风险评估报告,并尝试提供解决方案; 3.多维度成本计算模型:适用于不同体量,不同行业(或者单独设立成本计算异常的特殊行业:比如涉密行业),不同客户倾向,不同区域(不同地区的开发成本不同:开发人员地区平均工资)多种造价计算模型-对全行业、全地区、全种类、全体量的软件开发成本进行评估; 4.分布式服务架构:保证需求检测、造价分析、代码合规性分析与代码溯源等模块相互独立,互不影响; 5.需求检测:根据字典规则对需求书内容的合规性进行检测,生成检测报告并提供解决方案; 6.多线程查重:对目标检测集切片分段,分布在超融合服务端上,多机多线程,附加集成并发锁控制,在保证高效查重的同时也保证了事务的一致性; 7.私有化部署:为政府单位、企业等高密保与稳定性需求客户提供私有化部署服务,保证所有数据不出环、不外泄,并可根据用户需要弹性设计硬件系统。 以下是项目功能介绍: 1.软件功能点提取:基于NLP传统工程对需求分档加权分析, 遵守荷兰软件度量协会所发行的NESMA功能点估算方法,准确提取目标文档中面向工作流的可适用功能点。 2.代码查重:本功能采用多元组与贪婪字符串匹配结合的方式,对用户上传的目标检测代码进行高效查重。并将结果使用图表进行展示,如大规模数据分布图、代码多维度分类饼状图以及特定的分析图等。 3.托管地址溯源:根据工作流前置查重结果,溯源出其所使用开源代码的托管地址。 4.漏洞检索:根据开源代码部分的版本号以及分支依赖来检索相关漏洞,根据权威机构所发行的数据制表比对,生成模板报告。 5.版权检索:检索开源代码中开源协议所声明的商用许可、二次开发、开源延展性等版权要求,给出评估结论与模板报告。 6.自动构建查重代码库:系统根据用户设置的策略进行查重目标库分类建立索引,并定期爬取热门项目,保证查重代码库的时效性与有效性。 7.工作流与报表集成:本系统高度解耦合,各工件互不干扰,且内部逻辑性强,通过工作流设计串联各模块。同时报表模块也依赖于此,保证接口外引高可用。 以下是项目的特色综述: 1.本系统采用零信任授权模式,“持续验证,永不信任”是零信任授权模式的核心理念。该模式不会默认信任机构或企业网络内外的任何人、设备和系统,而是基于身份认证和授权重新构建访问控制的信任基础,从而确保身份、设备、应用和链路的可信性。政府机关对于网络安全的特殊要求可以通过零信任原则高度保障终端安全、链路安全和访问控制安全,有效杜绝重大网络安全事故。 2.系统业务部署于高速内存缓存,为了保证智能代码分析系统的高效运行,主体业务部分采用了超融合服务器内存盘持久化的方式,从而实现了超高速的读写操作,极大地提升了业务性能,保障了用户的良好体验。 3.服务集群采用冗余备份,除了主体超融合集群外,本系统还在两台金属裸机上部署了备份,注册中心进行监控和控制。当监测到业务主体集群下线时,系统会自动切换至备用服务器并完成会话转移,同时高速完成数据库主主同步,实现容灾切换无感知。此外,系统还定期备份重要数据,以防止意外数据丢失或系统崩溃,并且可以快速恢复系统。