论文部分内容阅读
软件演化是软件生命周期中的一个重要活动。软件演化的目的是为了满足用户不断提出的新需求或修改软件现有缺陷。在软件演化过程中,新需求是导致软件系统不断演化的根本动力之一。而在当前网络的日益普及的环境下,网络化软件的大量出现,用户日志成为网络化软件新需求产生的重要来源。这一新特点为网络化软件的软件演化和需求演化带来新的挑战,其中一个重要的表现就是出现以海量用户体验及偏好驱动为主导的需求演化。
网络化软件表现出的新的需求演化模式,主要是因为用户与网络化软件的软件单元之间的交互作用与传统软件相比更加频繁。一个大规模的、复杂的网络化软件的形成,是一个持续交互的演化过程。通过用户需求与网络软件组件之间的多次反复交互作用,使得软件的概貌和具体特性逐步清晰,也促使网络化软件朝着满足用户需求的方向不断演化。然而,由于网络化软件是迭代演化的模式,如果不能准确了解用户需求而持续演化,可能对软件的持续发展带来不利影响。在网络化软件的环境中,由于面对的是大规模用户,无法进行一对一的需求获取,而用户的软件使用行为隐含着演化信息,这些用户与软件之间交互的行为信息记录在用户日志数据中。因此,利用用户日志数据准确地获取用户偏好,进而更好地了解用户对软件的隐式反馈信息,从而为网络化软件的演化提供新的用户需求,促使网络化软件的持续健康演化。
本文以淘宝网的广告系统作为案例研究对象,主要研究如何利用海量日志数据挖掘用户行为偏好,进而为软件的需求演化提供辅助支持。本文介绍了软件演化的历史及现状,重点讨论了现有的网络化软件的软件演化相关研究,并总结了常见的用户行为分析方法及日志处理的相关技术。接着选择有代表性的社区软件(淘宝网),挖掘软件用户行为偏好,分析影响用户偏好的四个因素(类目、位置、价格、图片),进而为软件的进一步演化提供了预测的需求;然后进一步分析影响用户偏好的位置因素,提出了一种新的用于处理位置因素的贝叶斯点击模型BCM(BayesianClickModel),该方法通过分析日志数据中的用户行为模式,提出一种新的用户查看页面假设,然后利用贝叶斯推理方法快速的消除日志数据中的位置偏差问题,分析用户偏好并对需求演化预测进行辅助支持。最后利用真实海量的日志数据进行了实验,与其他的算法进行比较,验证了方法的效果。同时,基于提出的方法实现了并行版本的基于用户日志的偏好分析及需求演化预测辅助工具,此工具支持BCM,以及用于对比的BBM和CCM等其他方法。