在线软件生态系统用户活跃度的经验研究

2013-11-30 05:01刘文沛
计算机工程与设计 2013年1期
关键词:用户量开发者度量

刘文沛,崔 强,杨 达

(中国科学院软件研究所 互联网软件技术实验室,北京100190)

0 引 言

随着软件规模和用户规模的不断变大,软件之间依赖程度的增加,软件工程方法也在不断的变化。现在的软件不再是相互独立的个体,而是相互关联、相互依赖的整体。绝大多数的软件依赖已经建立好的组件、服务、平台和其它的应用开发商。这些软件依赖一个共同的环境,包括用户群、信息,资源以及功能。研究界把这样的软件系统定义为软件生态系统(SECO)。比如iPhone软件系统是基于平台的软件生态系统,iPhone上的应用基于iPhone设备和Mac操作系统。软件生态系统给软件工程研究带来了新的挑战。软件工程参与者需要使用新的方法来应用于软件生态系统环境下的软件开发,管理和维护。

1 软件生态系统和软件质量

最近几年,越来越多的软件公司开放自己的功能接口,鼓励第三方开发者在其产品上添加新的功能。第三方开发者从成功的软件平台上获得商业机会和市场。在线软件通过吸引优秀的第三方开发者提升本身的竞争力。这种软件与其上的第三方开发者共同组成一个软件生态系统。其中以开放平台为代表的在线软件生态系统在过去5年发展迅速。以facebook为代表的大型互联网公司纷纷建立开放平台,引进第三方app。在线开放平台及平台上的app组成一个在线软件生态系统。到现在为止,这种在线生态系统拥有数以千万计的用户和数以万计的应用。

在线软件生态系统的关系图如图1所示。首先,获得大量用户是在线软件生态系统的目标,在线软件生态系统平台的收入是用户在使用软件的过程中消费金额。大量的用户还可以给在线软件生态系统带来投资和广告收益。其次,第三方开发者主要目的是从平台获得用户流量。最后,平台向第三方软件开发者提供API,一方面使第三方取得用户信息,一方面提供给第三方各种方便组装的功能部件,降低开发成本。

图1 软件生态系统关系

从图中可以看出,在线软件生态系统的质量优劣是一个软件生态系统生存发展的关键,软件质量决定了用户是否活跃、是否能留住用户等等。软件质量通常定义为软件满足用户需求的程度,在软件生态系统的环境下,单个软件已经不是关注和优化的最终目标,整个系统中所有软件的管理和优化才是我们面临的问题。所以软件生态系统中用户满意度评测指标体系应该是层级结构,利用该层级结构的指标体系可以在不同的层面和尺度上对用户满意度进行研究。该研究着眼于系统层面的软件使用行为的度量。

目前,在线软件生态系统平台运营商通过活跃用户量来度量软件生态系统的使用质量。但是活跃用户量无法反映用户使用质量的细节信息。

软件生态系统的环境给软件生态系统平台的软件度量提出了很多挑战。首先,软件生态系统不再是单一软件,它是由许多不同开发商开发的软件组成的,这些软件应该被作为一个整体来度量。其次,软件生态系统用户的数量和应用的数量十分巨大,传统的调查方法像见面会、问卷很难实现。而在线软件生态系统通过用户使用日志记录了用户使用应用的行为信息。应用使用日志可以被用来度量软件生态系统的用户活跃度。

在这篇文章中,我们提出了在线软件生态系统使用质量中用户活跃度的度量方法。我们的度量方法基于应用使用记录,因为用户使用记录直接反映了软件生态系统的使用质量。传统的用户会谈和问卷的方式在大量用户和应用的环境中难以实现。我们设计了4个度量指标反映在线软件生态系统用户使用的3个不同方面。我们在一个国内在线软件生态系统的真实数据上使用了我们的度量方法。结果显示我们的方法是有效的。

2 软件生态系统用户活跃度度量方法

前面提到由于用户数量的多,软件系统更新快的因素,传统的使用质量度量无法实行,我们提出了一种新的基于用户使用记录的在线软件生态系统的使用质量的度量方法。

MySQL/PHP软件系统来源于开发者,软件系统中的软件主要依赖于软件开发者的使用习惯。也有很多软件开放功能接口,吸引第三方开发者在软件上添加新的功能。这些彼此依赖的软件组织起来作为一个有机的整体面向一个公共的市场提供服务。这些软件之间的关系基于他们的开放接口或者共享市场。

用户的使用记录是用户体验的反馈,可以反映用户的满意度。用户在使用在线应用的同时,用户ID和应用ID将被记录下来,同时记录的还有用户的停留时间,用户使用习惯等等。和问卷调查不同,用户使用记录是可以由在线软件生态系统每天生成的,不需要额外的花费和时间。而且这样的使用记录可以是每一个用户的,那么大量用户的使用记录可以更好的反映该应用的使用质量。

从单个软件来看,吸引更多用户和改善程序的功能是质量优化的目的。但对于整个软件生态系统来说,新的软件吸引更多的新用户,同时许多老的软件失去用户。只是针对单一软件进行优化是远远不够的,系统整体的优化才是最终的目标。

本文研究的是从整个软件生态系统层面上得到的用户活跃度,所以我们把整个生态系统的所用应用当成一个整体,从以下3个方面度量:①应用吸引力:对新用户的吸引力。吸引新用户使用软件生态系统上应用的能力。②用户忠诚度:用户对于在线应用的使用程度,即整个在线软件生态系统的用户粘度。③用户流动性:用户对不同应用之间的流动,即应用之间的用户转移。

2.1 应用吸引力

应用对于新用户的吸引力是新用户开始使用软件生态系统的原因,由于在线应用更新较快,整个系统的用户群有很大一部分是由新用户组成的。应用的质量和所在生态系统原有使用人群的大小等因素决定了对新用户的吸引力。

我们使用新用户进入量作为度量应用吸引力的指标。新用户进入量被定义为:开始使用软件生态系统不到一周的用户量。整个系统应用集合表示为App={a1,a2,…,an}使用,单个应用ai的新用户集合为Nai,则整个系统的新用户集合为S,新用户进入量为NU

2.2 用户忠诚度

用户对在线应用的使用程度反映了用户的忠诚度。用户使用的应用越频繁,花费的时间越多,就说明平台给用户带来的功能性的作用和娱乐的效果就越大,用户的忠诚度也就越高。所以我们定义用户使用应用的时间来表示用户忠诚度。对总数为m用户群,每一个用户Ui,其使用的应用的时长为Ti,则用户忠诚度UL可以用用户在线总时间(TT)和用户在线平均时间(AT)来表示

2.3 用户流动性

在线软件生态系统中,app之间的用户转移现象有两个原因:①随着新应用的上线,相当于软件生态系统增加了新的功能,用户出于好奇心会试用新应用;②能够满足用户需要的应用相比不能满足用户需要的应用,用户更喜欢使用前者,而放弃后者。我们将从以上两个方面来度量app之间用户的流动,验证这种流动性是否对软件生态系统有好处。应用之间的用户转移和多个应用共享用户这两个方面不是相互独立的。例如用户从最初使用一个应用到后来使用多个应用,这种情况就会同时产生用户转移和应用用户重叠。

随着平台上应用的不断上线推出,平台用户的选择也越来越多。用户在接触到新的,感兴趣的应用时,选择使用新应用,慢慢抛弃老应用这个过程就是用户的流动。在平台上,这中用户流动。的情况随处可见,有时是用户的自主发现新应用,有时是平台或者第三方公司使用的营销和推广手段。我们设定时间上相邻的两个采样点:T1、T2,在[T1,T2]这段时间由其它应用流入每个应用Ai的用户量为Di,这段时间平台的流动性指标可以定义为

3 应用案例

我们与中国的一个社会网络服务平台建立了合作关系。我们使用该公司的用户行为分析数据进行研究。这个社交网站平台具有一千万注册用户,来自第三方软件开发供应商的在线应用超过1000个。

我们从平台的用户访问日志中提取关于app的使用记录。即每天用户使用app的情况,如果一个用户在使用过某个app,那么就产生一条格式为<userid,appid,time>的记录。其中userid表示唯一标志的用户ID,appid是应用的ID,而time则是当天用户使用该app的时间。我们使用了近3个月的77609585条记录作为我们的研究数据。使用这些数据我们对开放平台的app进行了质量评估和监控。

我们使用I-MR控制图对数据进行监测。通过统计上均值μ和标准差σ的状况来衡量指标是否在稳定状态,同时选择3σ来确定一个正常波动的上下限范围(根据正态分布的结论,指标的特征值落在μ±3σ之间的概率是99.73%)。

3.1 度量实例

我们取出该公司应用平台的74天的数据作为我们的研究数据,观察这段时间应用平台的变化。出于对公司真实数据的保密考虑,后面图中的指标数值全部是经过归一化处理之后的值。我们的分析步骤是:①首先对于公司的现有指标——活跃用户数(daily active user,DAU)进行分析,得到稳定值和变动的情况,区分是数据正常波动还是异常变化。②对于产生异常变化的区间,从用户活跃的方面分析其变化规律,得出3个指标。③通过询问公司人员验证得出信息的可靠性,并找出变化的原因以便改进生态系统的质量。

我们对DAU做单值—移动极差控制图如图2所示。

图2 活跃用户数(DAU)控制

从图中可以看出,首先单值控制图中[59,68]区间超出平均水平3σ范围,发生了异常变化——DAU出现了一个波峰,很快DAU又回到正常的水平。在移动极差控制图上也可以看出[59,68]区间的MR值变化较大。其次,单值控制图中18,19出现了两个异常点,从MR值中看出是因为16,17两天的异常增长。除此之外,[48,52]一系列异常点有可能是因为DAU在[59,68]的异常值导致(X偏大,而出现的假异常信号。

因为软件平台每天都有新的app上线,所以有可能是新上线的app使DAU发生了这种变化。图3给出观察的时间段内软件生态系统app数量。

图3 软件平台app数量趋势

线上app数量持续增长,但仅从数量上也不能看出DAU波动的原因。下面我们使用前面定义的指标来度量这段时间内生态系统的变化。

3.2 度量过程

从应用吸引力的质量控制图4中看出,[58,68]这个区间内超出了3σ正常波动范围,说明这段时间生态系统吸引了大量系统外部的用户来使用线上app,软件生态系统的新用户量显著增加。用户回落表明这阶段上线的app对用户的持续吸引力不足,解释了DAU回落的原因。我们从移动极差图看出17天处也有一个异常的变动,之后的几天单值图中的数据也一直在平均值以上,说明17天开始几天内,新用户的数据较平时有一个不小的提高。

图4 应用吸引力控制

从用户忠诚度上看,用户在线总时间(TT)先增后降,用户的平均时间(AT)在[59,69]区间内却是下降的趋势,说明新的app所吸引的用户的忠诚度并不如生态系统的原有用户,这些用户的使用app时间很短。另外可以看到18天处AT和TT都有一个异常点,说明这一天用户使用时间有明显提高,可能是某个app的新上线,让多数用户使用了新的功能,所以导致了使用时间的增长,用户忠诚度控制图如图5所示。

图5 用户忠诚度控制

从用户流动性来看,UD在[51,71]区间变化很大,超出平均水平3σ以上的异常点较多,说明这段时间用户的流动性有明显增大。在这段时间内UD的波动较大,说明在除了新app的引入,还有生态系统内部因素使得用户流动性变大,用户流动性控制如图6所示。

图6 用户流动性控制

因为我们得知生态系统所在的社交网站人数并没有发生突变,所以引发这种改变最有可能的原因就是新的app的引入。新应用的上线相当于给整个系统添加了新的功能,使整个系统更大程度上满足用户的需要。进一步分析发现[59,68]这段时间NU的变化和DAU变化基本吻合,DAU随着DU的下降而下降,说明引入的新用户又很快流失了,并没有持续的使用app,吸引来的用户保留下来的数量很少。又可以推测出引发这个变化的app跟生态系统原有的app不相同,无法让用户可以长时间使用。所以尽管在[59,68]这段时间内很流行,但持续的时间却很短,是一个生命周期较短的应用。

我们把这些结论报告给公司的产品经理,通过产品经理我们了解到在57天平台上线了一款可以和社交网站好友互动的给好友排名app,由于之前没有这种类型的app,对于社交网站用户很有吸引力。NU的下降是由于该app的吸引系统外用户的量已经饱和,使用过该app的用户越来越多,新用户越来越少。而该app的功能相对于平台其它应用来说比较简单,不是一个游戏类应用,所以用户在线使用时间不会很长。

关于UD在51天左右的异常变化,我们通过公司员工证实,在51天左右,有两个用户量较大的app分别在自己的应用互相推荐,很多用户同时使用了这两款app,使得这几天的用户流动性大幅增加。

这个案例研究说明我们的方法可以帮助公司监测软件平台的运营情况,并能找到产生数据异常的原因。

4 软件生态系统相关研究

软件生态系统是一个相对较新的研究问题。软件生态系统的发展趋势给软件工程带来许多新的挑战,包括软件体系架构、软件提供商策略和软件质量度量。越来越多的研究者关注软件生态系统。Jansen提出软件生态系统上关于技术和商业方面研究问题的研究计划和关键问题。从软件生态系统层、软件供应网络层软件提供商3个层次提出软件生态系统的10个研究挑战[1]。JanBosch提出软件生态系统的趋势,并提出适应软件生态系统的关键概念和影响。他指出一旦公司决定引入第三方开发者,公司就由组织内部的软件开发转为软件生态系统[2]。JanBosch还提出软件生态系统的架构挑战,包括接口稳定性、整合层次、安全性、可靠性和平台演化[3]。Mircela等开发了一个工具用于生态系统软件项目的依赖恢复[4]。

ISO/IEC9126定义软件质量为软件满足用户显式和隐式需求的所有特征。软件质量被建模为内部质量(软件代码的静态特征)、外部质量(软件代码执行时的动态特征)和软件使用质量(软件满足用户需求的程度)[5]。

用户满意程度和市场期望被认为是软件质量的前提,现有的使用度量方法多是问卷调查的形式,记录少量用户的满意度,使用效果等[6]。Bevan提出软件使用质量度量的框架[5]。软件质量的度量是为了进行质量改进,王青等使用统计的方法来进行软件过程控制和过程质量改进[7]

在线应用的用户使用记录比如用户的使用时间、用户的关系、用户的行为模式,已经在一些度量研究中被广泛使用。度量的结果也对在线应用的改进提供了参考和指导[8-9]。我们在之前的研究也把用户的使用记录作为训练数据对活跃用户量进行了预测[10]。

5 结束语

这篇文章指出了用户活跃传统度量的缺陷,提出了一种新的用户使用日志的度量方法,来衡量在线软件生态系统整体层面的用户活跃。该研究分析了在线软件生态系统的用户相关的三方面特征并设计指标来衡量这些特征。并使用所提出的测量方法和指标来度量一个真实的在线软件生态系统。证明了我们的方法和标准可以为公司的提供合理的建议来改进在线生态系统的使用质量。在未来的工作中,我们将进一步调查更有效的使用质量指标,并研究软件生态系统质量改进的问题。

[1]Jansen S,Finkelstein A,Brinkkemper S.A sense of community:A research agenda for software ecosystems[C]//31st International Conference on Software Engineering Companion.IEEE Computer Society,2009:187-190.

[2]Bosch J.From software product lines to software ecosystems[C]//San Francisco,California:Procee-dings of the 13th International Software Product Line Conference.Carnegie Mellon University,2009:111-119.

[3]Bosch J.Architecture challenges for software ecosystems[C]//Proceedings of the Fourth European Conference on Software Architecture:Companion.Copenhagen,Denmark:ACM,2010:93-95.

[4]Lungu M,Robbes R,Lanza M.Recovering inter-project dependencies in software ecosystems[C]//Proceedings of the IEEE/ACM International Conference on Automated Software Engineering.Antwerp,Belgium:ACM,2010:309-312.

[5]Bevan N.Extending quality in use to provide a framework for usability mea-surement[C]//Proceedings of the 1st International Conference on Human Centered Design:Held as Part of HCI International.San Diego,CA:Springer-Verlag,2009:13-22.

[6]Seffah A.Usability measurement and metrics:A consolidated model[J].Software Quality Journal,2006,14(2):159-178.

[7]Wang Q.BSR:A statistic-based approach for establishing and refining software process performance baseline[C]//Proceedings of the 28th International Conference on Software Engineering.Shanghai,China:ACM,2006:585-594.

[8]Nazir A,Raza S,Chuah C-N.Unveiling facebook:A measurement study of social network based applications[C]//Proceedings of the 8th ACM SIGCOMM Conference on Internet Measurement.Vouliagmeni,Greece:ACM,2008:43-56.

[9]Nazir A.Network level footprints of facebook applications[C]//Proceedings of the 9th ACM SIGCOMM Conference on Internet Measurement Conference.Chicago,Illinois,USA:ACM,2009:63-75.

[10]Yang D.Modeling the number of active software users[C]//Proceedings of the International Symposium on Empirical Software Engineering and Measurement.IEEE Computer Society,2011:376-379.

猜你喜欢
用户量开发者度量
鲍文慧《度量空间之一》
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
为什么手机号是11位?到底该怎么读?
美国付费电视市场第一季度流失61.2万用户
“85后”高学历男性成为APP开发新生主力军
16%游戏开发者看好VR
地质异常的奇异性度量与隐伏源致矿异常识别
MySpace宣布裁员30%