大语言模型时代需求自动追踪技术
匡宏宇南京大学;
南京大学软件学院助理研究员,软件研发效能实验室核心成员,十余年来
持续研究软件可追踪性、代码库挖掘、程序理解等软件开发相关方向,曾获ACM南京分会优秀博士论文、AIIDE2019BestPaper、教育部-华为“智能基座”栋梁之师等奖项,《开发运维一体化成熟度模型》国家标准的主要起草人之一(产品与需求部分),共发表论文20余篇,其中一作/通讯作者论文11篇(包含ICSE、FSE、ASE等顶尖软工会议论文),应邀担任过SANER2024程序委员,JSEP、JSS、SoSyM期刊审稿人,EASE2024PublicityLead(China)等学术兼职,主持南京大学软件学院需求课程体系建设与教学工作,主持并结题国自然青年基金一项,参与并完成多项重点企业技术合作。;
软件研发效能@南京大学
oDevOps/研发效能全?位科研
oDevOps教材及课程建设
oDevOps知识体系构建
oDevOps能?成熟度国家标准制定
oDevOps/研发效能全流程产业合作研究
oDevOps/研发效能中国·年度调查
oDevOps/研发效能中国社区建设
oDevOps/研发效能国内/国际学术论坛
oDevOps/研发效能学术论?(260+)及专利(80+)
oCCF-华为胡杨林基?成?以来唯?连续3年持续获得资助的科研团队;
实验室科研框架;
1.需求自动追踪技术背景与发展
2.LLM时代需求追踪的重要价值
3.基于LLM的需求追踪技术初探
4.本人代表研究简介(请多指正)
5.总结与展望;
PART01
需求自动追踪技术背景与发展;
?项目管理者视角:如何治理、盘活已有项目资产?
?知名网游IP《魔兽世界》:“原汁原味”的怀旧服vs.“锐意创新”的私服
?掌握全部项目资产的官方–直接上线包含所有缺点的经典版本
?自行破解还原的“同人”–推出多个广受好评的改版(官方对此类明确侵权行为态度暧昧)
?为何?-项目代码复杂冗余,开发团队人员流失,项目退化为遗产代码(只能运行,无法维护更新)
?旁证:永远16格的初始背包容量,官方解释“相关代码在整个游戏最底层,无法精准定位,贸然修改将导致无数BUG”
?2018年7.3.5版本尝试升级为20格,结果导致该版本在地图、进度、角色、装备等各个方面均涌现出严重错误;
?软件可追踪性是软件系统所能具有的一种特性:
[CoEST,theCenterofExcellenceforSoftwareandSystemsTraceability,]
?系统中任意一个可被唯一标识出的软件制品(softwareartifact,如需求、设计、代码、测试等)与其它制品之间的关联关系
?这些关联关系能够随时间的变化而得到维护
?由这些关联关系组成的网络可以解答与一个软件系统及其开发流程相关的各类问题
?最早以需求可追踪性的方式提出[Gotel@RE1994]
?重点关注需求(功能期望)到代码(实际运行)可追踪性;
Gotel等?正式定义了需求
可追踪性,提出需求可追踪性应该在软件系统中“普遍存在”[Gotel@RE1994];
?诱因:“ThePatriotMissileFailure”…的快速修复
?爱国者导弹拦截失败导致的海湾战争中美军单次最大损失
?原因:战时长期开机积累的时钟漂移(使用的浮点数精度不足)
?1991.2.25日袭击发生,2.26日制造商雷神发布修正软件
?结果:可追踪性引发热议并在90年代成为软件开发规范
?“Youcannotmanagewhatyoucannottrace”
[Watkins@IEEESoftware1994]
?需求可追踪性应该在软件系统中“普遍存在”[Gotel@RE1994]
?软件团队能力成熟度CMMI3级以上“要求实现”可追踪性
?仍是当前诸多关键领域软件的强制要求,如DoD、FAA、FDA、NASA等机构、核心网络设备、金融企业的safe-critical软件;
需求可追踪性走入日常开发的价值、困难与挑战
?价值:有效提升(敏捷)软件开发的质量与效率
?(普通新手)开发者通过软件可追踪性可获取(至少)以下关键信息:代码库中需更改的代码元素,受影响的userstory与测试用例,以及可咨询的项目组内开发者[Cleland-