劉文沛,崔 強(qiáng),楊 達(dá)
(中國科學(xué)院軟件研究所 互聯(lián)網(wǎng)軟件技術(shù)實驗室,北京100190)
隨著軟件規(guī)模和用戶規(guī)模的不斷變大,軟件之間依賴程度的增加,軟件工程方法也在不斷的變化?,F(xiàn)在的軟件不再是相互獨立的個體,而是相互關(guān)聯(lián)、相互依賴的整體。絕大多數(shù)的軟件依賴已經(jīng)建立好的組件、服務(wù)、平臺和其它的應(yīng)用開發(fā)商。這些軟件依賴一個共同的環(huán)境,包括用戶群、信息,資源以及功能。研究界把這樣的軟件系統(tǒng)定義為軟件生態(tài)系統(tǒng)(SECO)。比如iPhone軟件系統(tǒng)是基于平臺的軟件生態(tài)系統(tǒng),iPhone上的應(yīng)用基于iPhone設(shè)備和Mac操作系統(tǒng)。軟件生態(tài)系統(tǒng)給軟件工程研究帶來了新的挑戰(zhàn)。軟件工程參與者需要使用新的方法來應(yīng)用于軟件生態(tài)系統(tǒng)環(huán)境下的軟件開發(fā),管理和維護(hù)。
最近幾年,越來越多的軟件公司開放自己的功能接口,鼓勵第三方開發(fā)者在其產(chǎn)品上添加新的功能。第三方開發(fā)者從成功的軟件平臺上獲得商業(yè)機(jī)會和市場。在線軟件通過吸引優(yōu)秀的第三方開發(fā)者提升本身的競爭力。這種軟件與其上的第三方開發(fā)者共同組成一個軟件生態(tài)系統(tǒng)。其中以開放平臺為代表的在線軟件生態(tài)系統(tǒng)在過去5年發(fā)展迅速。以facebook為代表的大型互聯(lián)網(wǎng)公司紛紛建立開放平臺,引進(jìn)第三方app。在線開放平臺及平臺上的app組成一個在線軟件生態(tài)系統(tǒng)。到現(xiàn)在為止,這種在線生態(tài)系統(tǒng)擁有數(shù)以千萬計的用戶和數(shù)以萬計的應(yīng)用。
在線軟件生態(tài)系統(tǒng)的關(guān)系圖如圖1所示。首先,獲得大量用戶是在線軟件生態(tài)系統(tǒng)的目標(biāo),在線軟件生態(tài)系統(tǒng)平臺的收入是用戶在使用軟件的過程中消費金額。大量的用戶還可以給在線軟件生態(tài)系統(tǒng)帶來投資和廣告收益。其次,第三方開發(fā)者主要目的是從平臺獲得用戶流量。最后,平臺向第三方軟件開發(fā)者提供API,一方面使第三方取得用戶信息,一方面提供給第三方各種方便組裝的功能部件,降低開發(fā)成本。
圖1 軟件生態(tài)系統(tǒng)關(guān)系
從圖中可以看出,在線軟件生態(tài)系統(tǒng)的質(zhì)量優(yōu)劣是一個軟件生態(tài)系統(tǒng)生存發(fā)展的關(guān)鍵,軟件質(zhì)量決定了用戶是否活躍、是否能留住用戶等等。軟件質(zhì)量通常定義為軟件滿足用戶需求的程度,在軟件生態(tài)系統(tǒng)的環(huán)境下,單個軟件已經(jīng)不是關(guān)注和優(yōu)化的最終目標(biāo),整個系統(tǒng)中所有軟件的管理和優(yōu)化才是我們面臨的問題。所以軟件生態(tài)系統(tǒng)中用戶滿意度評測指標(biāo)體系應(yīng)該是層級結(jié)構(gòu),利用該層級結(jié)構(gòu)的指標(biāo)體系可以在不同的層面和尺度上對用戶滿意度進(jìn)行研究。該研究著眼于系統(tǒng)層面的軟件使用行為的度量。
目前,在線軟件生態(tài)系統(tǒng)平臺運營商通過活躍用戶量來度量軟件生態(tài)系統(tǒng)的使用質(zhì)量。但是活躍用戶量無法反映用戶使用質(zhì)量的細(xì)節(jié)信息。
軟件生態(tài)系統(tǒng)的環(huán)境給軟件生態(tài)系統(tǒng)平臺的軟件度量提出了很多挑戰(zhàn)。首先,軟件生態(tài)系統(tǒng)不再是單一軟件,它是由許多不同開發(fā)商開發(fā)的軟件組成的,這些軟件應(yīng)該被作為一個整體來度量。其次,軟件生態(tài)系統(tǒng)用戶的數(shù)量和應(yīng)用的數(shù)量十分巨大,傳統(tǒng)的調(diào)查方法像見面會、問卷很難實現(xiàn)。而在線軟件生態(tài)系統(tǒng)通過用戶使用日志記錄了用戶使用應(yīng)用的行為信息。應(yīng)用使用日志可以被用來度量軟件生態(tài)系統(tǒng)的用戶活躍度。
在這篇文章中,我們提出了在線軟件生態(tài)系統(tǒng)使用質(zhì)量中用戶活躍度的度量方法。我們的度量方法基于應(yīng)用使用記錄,因為用戶使用記錄直接反映了軟件生態(tài)系統(tǒng)的使用質(zhì)量。傳統(tǒng)的用戶會談和問卷的方式在大量用戶和應(yīng)用的環(huán)境中難以實現(xiàn)。我們設(shè)計了4個度量指標(biāo)反映在線軟件生態(tài)系統(tǒng)用戶使用的3個不同方面。我們在一個國內(nèi)在線軟件生態(tài)系統(tǒng)的真實數(shù)據(jù)上使用了我們的度量方法。結(jié)果顯示我們的方法是有效的。
前面提到由于用戶數(shù)量的多,軟件系統(tǒng)更新快的因素,傳統(tǒng)的使用質(zhì)量度量無法實行,我們提出了一種新的基于用戶使用記錄的在線軟件生態(tài)系統(tǒng)的使用質(zhì)量的度量方法。
MySQL/PHP軟件系統(tǒng)來源于開發(fā)者,軟件系統(tǒng)中的軟件主要依賴于軟件開發(fā)者的使用習(xí)慣。也有很多軟件開放功能接口,吸引第三方開發(fā)者在軟件上添加新的功能。這些彼此依賴的軟件組織起來作為一個有機(jī)的整體面向一個公共的市場提供服務(wù)。這些軟件之間的關(guān)系基于他們的開放接口或者共享市場。
用戶的使用記錄是用戶體驗的反饋,可以反映用戶的滿意度。用戶在使用在線應(yīng)用的同時,用戶ID和應(yīng)用ID將被記錄下來,同時記錄的還有用戶的停留時間,用戶使用習(xí)慣等等。和問卷調(diào)查不同,用戶使用記錄是可以由在線軟件生態(tài)系統(tǒng)每天生成的,不需要額外的花費和時間。而且這樣的使用記錄可以是每一個用戶的,那么大量用戶的使用記錄可以更好的反映該應(yīng)用的使用質(zhì)量。
從單個軟件來看,吸引更多用戶和改善程序的功能是質(zhì)量優(yōu)化的目的。但對于整個軟件生態(tài)系統(tǒng)來說,新的軟件吸引更多的新用戶,同時許多老的軟件失去用戶。只是針對單一軟件進(jìn)行優(yōu)化是遠(yuǎn)遠(yuǎn)不夠的,系統(tǒng)整體的優(yōu)化才是最終的目標(biāo)。
本文研究的是從整個軟件生態(tài)系統(tǒng)層面上得到的用戶活躍度,所以我們把整個生態(tài)系統(tǒng)的所用應(yīng)用當(dāng)成一個整體,從以下3個方面度量:①應(yīng)用吸引力:對新用戶的吸引力。吸引新用戶使用軟件生態(tài)系統(tǒng)上應(yīng)用的能力。②用戶忠誠度:用戶對于在線應(yīng)用的使用程度,即整個在線軟件生態(tài)系統(tǒng)的用戶粘度。③用戶流動性:用戶對不同應(yīng)用之間的流動,即應(yīng)用之間的用戶轉(zhuǎn)移。
應(yīng)用對于新用戶的吸引力是新用戶開始使用軟件生態(tài)系統(tǒng)的原因,由于在線應(yīng)用更新較快,整個系統(tǒng)的用戶群有很大一部分是由新用戶組成的。應(yīng)用的質(zhì)量和所在生態(tài)系統(tǒng)原有使用人群的大小等因素決定了對新用戶的吸引力。
我們使用新用戶進(jìn)入量作為度量應(yīng)用吸引力的指標(biāo)。新用戶進(jìn)入量被定義為:開始使用軟件生態(tài)系統(tǒng)不到一周的用戶量。整個系統(tǒng)應(yīng)用集合表示為App={a1,a2,…,an}使用,單個應(yīng)用ai的新用戶集合為Nai,則整個系統(tǒng)的新用戶集合為S,新用戶進(jìn)入量為NU
用戶對在線應(yīng)用的使用程度反映了用戶的忠誠度。用戶使用的應(yīng)用越頻繁,花費的時間越多,就說明平臺給用戶帶來的功能性的作用和娛樂的效果就越大,用戶的忠誠度也就越高。所以我們定義用戶使用應(yīng)用的時間來表示用戶忠誠度。對總數(shù)為m用戶群,每一個用戶Ui,其使用的應(yīng)用的時長為Ti,則用戶忠誠度UL可以用用戶在線總時間(TT)和用戶在線平均時間(AT)來表示
在線軟件生態(tài)系統(tǒng)中,app之間的用戶轉(zhuǎn)移現(xiàn)象有兩個原因:①隨著新應(yīng)用的上線,相當(dāng)于軟件生態(tài)系統(tǒng)增加了新的功能,用戶出于好奇心會試用新應(yīng)用;②能夠滿足用戶需要的應(yīng)用相比不能滿足用戶需要的應(yīng)用,用戶更喜歡使用前者,而放棄后者。我們將從以上兩個方面來度量app之間用戶的流動,驗證這種流動性是否對軟件生態(tài)系統(tǒng)有好處。應(yīng)用之間的用戶轉(zhuǎn)移和多個應(yīng)用共享用戶這兩個方面不是相互獨立的。例如用戶從最初使用一個應(yīng)用到后來使用多個應(yīng)用,這種情況就會同時產(chǎn)生用戶轉(zhuǎn)移和應(yīng)用用戶重疊。
隨著平臺上應(yīng)用的不斷上線推出,平臺用戶的選擇也越來越多。用戶在接觸到新的,感興趣的應(yīng)用時,選擇使用新應(yīng)用,慢慢拋棄老應(yīng)用這個過程就是用戶的流動。在平臺上,這中用戶流動。的情況隨處可見,有時是用戶的自主發(fā)現(xiàn)新應(yīng)用,有時是平臺或者第三方公司使用的營銷和推廣手段。我們設(shè)定時間上相鄰的兩個采樣點:T1、T2,在[T1,T2]這段時間由其它應(yīng)用流入每個應(yīng)用Ai的用戶量為Di,這段時間平臺的流動性指標(biāo)可以定義為
我們與中國的一個社會網(wǎng)絡(luò)服務(wù)平臺建立了合作關(guān)系。我們使用該公司的用戶行為分析數(shù)據(jù)進(jìn)行研究。這個社交網(wǎng)站平臺具有一千萬注冊用戶,來自第三方軟件開發(fā)供應(yīng)商的在線應(yīng)用超過1000個。
我們從平臺的用戶訪問日志中提取關(guān)于app的使用記錄。即每天用戶使用app的情況,如果一個用戶在使用過某個app,那么就產(chǎn)生一條格式為<userid,appid,time>的記錄。其中userid表示唯一標(biāo)志的用戶ID,appid是應(yīng)用的ID,而time則是當(dāng)天用戶使用該app的時間。我們使用了近3個月的77609585條記錄作為我們的研究數(shù)據(jù)。使用這些數(shù)據(jù)我們對開放平臺的app進(jìn)行了質(zhì)量評估和監(jiān)控。
我們使用I-MR控制圖對數(shù)據(jù)進(jìn)行監(jiān)測。通過統(tǒng)計上均值μ和標(biāo)準(zhǔn)差σ的狀況來衡量指標(biāo)是否在穩(wěn)定狀態(tài),同時選擇3σ來確定一個正常波動的上下限范圍(根據(jù)正態(tài)分布的結(jié)論,指標(biāo)的特征值落在μ±3σ之間的概率是99.73%)。
我們?nèi)〕鲈摴緫?yīng)用平臺的74天的數(shù)據(jù)作為我們的研究數(shù)據(jù),觀察這段時間應(yīng)用平臺的變化。出于對公司真實數(shù)據(jù)的保密考慮,后面圖中的指標(biāo)數(shù)值全部是經(jīng)過歸一化處理之后的值。我們的分析步驟是:①首先對于公司的現(xiàn)有指標(biāo)——活躍用戶數(shù)(daily active user,DAU)進(jìn)行分析,得到穩(wěn)定值和變動的情況,區(qū)分是數(shù)據(jù)正常波動還是異常變化。②對于產(chǎn)生異常變化的區(qū)間,從用戶活躍的方面分析其變化規(guī)律,得出3個指標(biāo)。③通過詢問公司人員驗證得出信息的可靠性,并找出變化的原因以便改進(jìn)生態(tài)系統(tǒng)的質(zhì)量。
我們對DAU做單值—移動極差控制圖如圖2所示。
圖2 活躍用戶數(shù)(DAU)控制
從圖中可以看出,首先單值控制圖中[59,68]區(qū)間超出平均水平3σ范圍,發(fā)生了異常變化——DAU出現(xiàn)了一個波峰,很快DAU又回到正常的水平。在移動極差控制圖上也可以看出[59,68]區(qū)間的MR值變化較大。其次,單值控制圖中18,19出現(xiàn)了兩個異常點,從MR值中看出是因為16,17兩天的異常增長。除此之外,[48,52]一系列異常點有可能是因為DAU在[59,68]的異常值導(dǎo)致(X偏大,而出現(xiàn)的假異常信號。
因為軟件平臺每天都有新的app上線,所以有可能是新上線的app使DAU發(fā)生了這種變化。圖3給出觀察的時間段內(nèi)軟件生態(tài)系統(tǒng)app數(shù)量。
圖3 軟件平臺app數(shù)量趨勢
線上app數(shù)量持續(xù)增長,但僅從數(shù)量上也不能看出DAU波動的原因。下面我們使用前面定義的指標(biāo)來度量這段時間內(nèi)生態(tài)系統(tǒng)的變化。
從應(yīng)用吸引力的質(zhì)量控制圖4中看出,[58,68]這個區(qū)間內(nèi)超出了3σ正常波動范圍,說明這段時間生態(tài)系統(tǒng)吸引了大量系統(tǒng)外部的用戶來使用線上app,軟件生態(tài)系統(tǒng)的新用戶量顯著增加。用戶回落表明這階段上線的app對用戶的持續(xù)吸引力不足,解釋了DAU回落的原因。我們從移動極差圖看出17天處也有一個異常的變動,之后的幾天單值圖中的數(shù)據(jù)也一直在平均值以上,說明17天開始幾天內(nèi),新用戶的數(shù)據(jù)較平時有一個不小的提高。
圖4 應(yīng)用吸引力控制
從用戶忠誠度上看,用戶在線總時間(TT)先增后降,用戶的平均時間(AT)在[59,69]區(qū)間內(nèi)卻是下降的趨勢,說明新的app所吸引的用戶的忠誠度并不如生態(tài)系統(tǒng)的原有用戶,這些用戶的使用app時間很短。另外可以看到18天處AT和TT都有一個異常點,說明這一天用戶使用時間有明顯提高,可能是某個app的新上線,讓多數(shù)用戶使用了新的功能,所以導(dǎo)致了使用時間的增長,用戶忠誠度控制圖如圖5所示。
圖5 用戶忠誠度控制
從用戶流動性來看,UD在[51,71]區(qū)間變化很大,超出平均水平3σ以上的異常點較多,說明這段時間用戶的流動性有明顯增大。在這段時間內(nèi)UD的波動較大,說明在除了新app的引入,還有生態(tài)系統(tǒng)內(nèi)部因素使得用戶流動性變大,用戶流動性控制如圖6所示。
圖6 用戶流動性控制
因為我們得知生態(tài)系統(tǒng)所在的社交網(wǎng)站人數(shù)并沒有發(fā)生突變,所以引發(fā)這種改變最有可能的原因就是新的app的引入。新應(yīng)用的上線相當(dāng)于給整個系統(tǒng)添加了新的功能,使整個系統(tǒng)更大程度上滿足用戶的需要。進(jìn)一步分析發(fā)現(xiàn)[59,68]這段時間NU的變化和DAU變化基本吻合,DAU隨著DU的下降而下降,說明引入的新用戶又很快流失了,并沒有持續(xù)的使用app,吸引來的用戶保留下來的數(shù)量很少。又可以推測出引發(fā)這個變化的app跟生態(tài)系統(tǒng)原有的app不相同,無法讓用戶可以長時間使用。所以盡管在[59,68]這段時間內(nèi)很流行,但持續(xù)的時間卻很短,是一個生命周期較短的應(yīng)用。
我們把這些結(jié)論報告給公司的產(chǎn)品經(jīng)理,通過產(chǎn)品經(jīng)理我們了解到在57天平臺上線了一款可以和社交網(wǎng)站好友互動的給好友排名app,由于之前沒有這種類型的app,對于社交網(wǎng)站用戶很有吸引力。NU的下降是由于該app的吸引系統(tǒng)外用戶的量已經(jīng)飽和,使用過該app的用戶越來越多,新用戶越來越少。而該app的功能相對于平臺其它應(yīng)用來說比較簡單,不是一個游戲類應(yīng)用,所以用戶在線使用時間不會很長。
關(guān)于UD在51天左右的異常變化,我們通過公司員工證實,在51天左右,有兩個用戶量較大的app分別在自己的應(yīng)用互相推薦,很多用戶同時使用了這兩款app,使得這幾天的用戶流動性大幅增加。
這個案例研究說明我們的方法可以幫助公司監(jiān)測軟件平臺的運營情況,并能找到產(chǎn)生數(shù)據(jù)異常的原因。
軟件生態(tài)系統(tǒng)是一個相對較新的研究問題。軟件生態(tài)系統(tǒng)的發(fā)展趨勢給軟件工程帶來許多新的挑戰(zhàn),包括軟件體系架構(gòu)、軟件提供商策略和軟件質(zhì)量度量。越來越多的研究者關(guān)注軟件生態(tài)系統(tǒng)。Jansen提出軟件生態(tài)系統(tǒng)上關(guān)于技術(shù)和商業(yè)方面研究問題的研究計劃和關(guān)鍵問題。從軟件生態(tài)系統(tǒng)層、軟件供應(yīng)網(wǎng)絡(luò)層軟件提供商3個層次提出軟件生態(tài)系統(tǒng)的10個研究挑戰(zhàn)[1]。JanBosch提出軟件生態(tài)系統(tǒng)的趨勢,并提出適應(yīng)軟件生態(tài)系統(tǒng)的關(guān)鍵概念和影響。他指出一旦公司決定引入第三方開發(fā)者,公司就由組織內(nèi)部的軟件開發(fā)轉(zhuǎn)為軟件生態(tài)系統(tǒng)[2]。JanBosch還提出軟件生態(tài)系統(tǒng)的架構(gòu)挑戰(zhàn),包括接口穩(wěn)定性、整合層次、安全性、可靠性和平臺演化[3]。Mircela等開發(fā)了一個工具用于生態(tài)系統(tǒng)軟件項目的依賴恢復(fù)[4]。
ISO/IEC9126定義軟件質(zhì)量為軟件滿足用戶顯式和隱式需求的所有特征。軟件質(zhì)量被建模為內(nèi)部質(zhì)量(軟件代碼的靜態(tài)特征)、外部質(zhì)量(軟件代碼執(zhí)行時的動態(tài)特征)和軟件使用質(zhì)量(軟件滿足用戶需求的程度)[5]。
用戶滿意程度和市場期望被認(rèn)為是軟件質(zhì)量的前提,現(xiàn)有的使用度量方法多是問卷調(diào)查的形式,記錄少量用戶的滿意度,使用效果等[6]。Bevan提出軟件使用質(zhì)量度量的框架[5]。軟件質(zhì)量的度量是為了進(jìn)行質(zhì)量改進(jìn),王青等使用統(tǒng)計的方法來進(jìn)行軟件過程控制和過程質(zhì)量改進(jìn)[7]
在線應(yīng)用的用戶使用記錄比如用戶的使用時間、用戶的關(guān)系、用戶的行為模式,已經(jīng)在一些度量研究中被廣泛使用。度量的結(jié)果也對在線應(yīng)用的改進(jìn)提供了參考和指導(dǎo)[8-9]。我們在之前的研究也把用戶的使用記錄作為訓(xùn)練數(shù)據(jù)對活躍用戶量進(jìn)行了預(yù)測[10]。
這篇文章指出了用戶活躍傳統(tǒng)度量的缺陷,提出了一種新的用戶使用日志的度量方法,來衡量在線軟件生態(tài)系統(tǒng)整體層面的用戶活躍。該研究分析了在線軟件生態(tài)系統(tǒng)的用戶相關(guān)的三方面特征并設(shè)計指標(biāo)來衡量這些特征。并使用所提出的測量方法和指標(biāo)來度量一個真實的在線軟件生態(tài)系統(tǒng)。證明了我們的方法和標(biāo)準(zhǔn)可以為公司的提供合理的建議來改進(jìn)在線生態(tài)系統(tǒng)的使用質(zhì)量。在未來的工作中,我們將進(jìn)一步調(diào)查更有效的使用質(zhì)量指標(biāo),并研究軟件生態(tài)系統(tǒng)質(zhì)量改進(jìn)的問題。
[1]Jansen S,F(xiàn)inkelstein 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.