本课题隶属实证软件工程 Evidence-based Software Engineering (EBSE),又称Empirical Software Engineering,它对软件开发过程中留下来的数据集中在软件仓库中,进行分析和挖掘,找出其中隐藏的有关软件开发的信息,达到对软件开发的规律发现、过程改进、估量与预测、项目监控的目的,例如:
- 项目的开发过程是否和原先计划的一致?软件的实际架构是否和原先设计的一致?
- 如何根据以前项目的数据,对一个新项目进行更精确的进度、成本和缺陷的估算和预测?根据当前的测试情况,软件在下一版本或运行期间会有多少缺陷?
- 开发人员的生产率、开发质量和贡献度与哪些因素密切相关?
- 软件演化和变更的规律是什么?
- 等等。
软件仓库中的数据包括输入(不限于):
1) 版本管理系统(如SVN等)中的日志信息;
2) 缺陷跟踪系统(如Bugzilla等)中的缺陷提出和修复信息;
3) 项目管理系统中的项目计划、资源分配、过程执行等信息;
4) 项目开发人员的交流历史信息,如Mail List、twitter等;
5) 软件系统运行时的日志和系统信息;
6) 用户使用软件的使用轨迹和反馈数据等。
软件仓库挖掘技术,以缺陷预测为例,它将基于开源软件提供的软件仓库,识别和提取预测指标,包括源代码指标、变更指标、缺陷指标、社会网络指标等;然后针对指标数据特点和指标跟缺陷的关联度来改进机器学习模型;最后利用改进的机器学习模型,将这些指标作为输入,得到缺陷预测数据。
--以上研究得到985经费的资助 2011年~2014年
|