利用信息检索模型处理非结构化软件仓库数据
在软件开发过程中,非结构化数据的处理对于解决许多软件工程任务具有重要意义。信息检索(IR)模型为处理这些非结构化数据提供了有效的方法,下面将详细介绍其在不同软件工程任务中的应用。
1. 概念/特性定位与面向方面编程(AOP)
概念定位(或特性定位)旨在识别实现软件系统特定特性的源代码部分。例如,若文件打印功能存在 bug,概念定位技术会尝试找出实现文件打印的源代码部分。
概念定位是 IR 模型在源代码上的直接应用,一般步骤如下:
1. 对源代码进行预处理。
2. 在预处理后的源代码上构建 IR 模型。
3. 接受开发者的查询,如“文件打印”。
4. 使用 IR 模型返回相关源代码文档列表。
许多 IR 模型都被应用于概念定位,包括向量空间模型(VSM)、潜在语义索引(LSI)、潜在狄利克雷分配(LDA)及其组合。目前,对于哪种 IR 模型在所有情况下表现最佳尚无定论。
与概念定位相关的是面向方面编程(AOP),它旨在为开发者提供轻松实现跨多个源代码文档的功能方面的工具。最近有理论提出,软件关注点等同于统计主题模型(特别是 LDA)发现的潜在主题,方面正是那些具有相对高分散度量值的主题。经过在大量开源系统上的测试,该理论大多时候成立。
2. 可追溯性恢复与错误定位
在软件开发中,常问的问题是“哪个源代码文档实现了需求 X?”可追溯性恢复旨在自动揭示软件工件对之间的链接,如源代码文档和需求文档之间的链接。这有助于项目涉众追踪需求的实现情况。错误定位是可追溯性恢复的特殊情况,开发者通过寻找错误报告和源代码之间的可追溯性链接
超级会员免费看
订阅专栏 解锁全文
1441

被折叠的 条评论
为什么被折叠?



