通过本课程的学习,我们需要了解有哪些软件工程数据,这些数据有什么特征?从这些软件数据中可挖掘哪些有用的知识?其次,可以有哪些数据分析技术可用(不仅有现在大家常用的深度学习技术,还有传统的软件工程本身的静态分析动态分析等技术),然后基于这些数据分析如何实现智能化的软件开发和维护。
课程目标主要包括三个:(1)了解现有可用的各种软件数据,以及相关数据分析方法和技术;(2)综合考虑软件数据分析相关的问题、技术、场景、实践等方面的因素,掌握如何使用软件数据分析,知道软件数据质量对于数据分析的作用等;(3)能够具备软件数据收集的能力、软件数据分析的能力、以及软件数据应用和效果评价的能力。我们不是简单的利用数据分析技术来分析软件数据,取得一些结果,而是要了解哪些技术适合于什么场景,什么技术更有效?
课程特色主要包括如下四个方面:(1)学习主线:从软件开发与演化过程中产生的多源数据入手,以软件数据的收集、分析及应用为主线。(2)学习方法:技术结合示例,介绍各类软件数据、软件数据分析方法和软件数据分析技术。(3)应用实践:详细介绍软件数据分析在程序理解、API代码推荐、缺陷分析、缺陷预测、开发者推荐等场景的应用。(4)自研技术:相关的应用实践主要结合团队多年来的研究成果,吸收了本领域的研究进展,研学结合,培养大家保持终身学习的素养和解决复杂问题的综合能力。