国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于版本更新日志的移動應用演化趨勢自動分析

2021-04-09 06:35鐘仁毅
計算機研究與發(fā)展 2021年4期
關(guān)鍵詞:熱詞日志類別

鐘仁毅 王 翀 梁 鵬 羅 忠

1(武漢大學計算機學院 武漢 430072)2(海軍工程大學艦船與海洋學院 武漢 430033)

近年來,移動應用程序數(shù)量的增長越來越快.截至2020年第1季度,Android應用商店Google Play為用戶提供的移動應用數(shù)量已達256萬個,蘋果應用商店Apple App Store也為iOS用戶提供了185萬個應用供其下載和使用[1].為了滿足用戶不斷變化的新需求并在激烈的市場競爭中保持優(yōu)勢,無論新開發(fā)的移動應用還是已有移動應用的新版本,其發(fā)布數(shù)量均在不斷增長,為開發(fā)者及時了解移動應用的重要更新、探索移動應用的演化趨勢以及把握移動應用的市場動態(tài)帶來了挑戰(zhàn).

移動應用的版本更新日志是由移動應用開發(fā)者在移動應用商店中以標準格式提供的短文本,其發(fā)布時間和周期與移動應用的新版本完全一致,描述了移動應用當前版本的主要或重要更新,表征了移動應用演化的部分特點.目前,許多研究者已將移動應用的用戶評論[2-4]或不同版本的移動應用源碼[5]用于移動應用的維護和演化分析.盡管用戶評論和版本更新記錄都是移動應用商店中公開可爬取的文本信息,但后者所包含的無用信息更少,使用的詞匯和術(shù)語相對規(guī)范且無二義性,更易于通過人工或自動的方式處理和分析.與移動應用歷史版本的安裝包或源碼相比,版本更新記錄中提供的更新內(nèi)容更加直觀且易于獲取,更便于開發(fā)人員快速了解移動應用的發(fā)展趨勢和市場動態(tài).因此,移動應用的版本更新記錄作為一種公開的數(shù)據(jù)源,可用于快速分析移動應用的演化特點,了解移動應用的發(fā)展趨勢.

目前,已有部分研究將移動應用的版本更新記錄用于移動應用的分析.例如,文獻[6]使用移動應用的版本更新日志來識別和確定應用評論中提出的問題.Hassan等人[7]對主流安卓應用的緊急更新(emergency updates)進行了實證研究,而該研究對版本更新記錄的分析僅用于確定它們是否為安卓應用的緊急更新提供了有用信息.與該研究的不同之處在于,本文的探索性研究僅將移動應用的版本更新記錄作為研究對象和實驗數(shù)據(jù),擬從需求工程的角度探索移動應用更新的特點和趨勢.本文的前期研究已對3 000條人工標注的版本更新條目進行了初步分析,從功能和非功能需求的角度探索了移動應用的演化特點[8].然而,前期研究僅基于有限數(shù)量的版本更新日志及其人工分類標簽.在前期研究基礎(chǔ)上,本文將從2個方面設(shè)計并完成基于版本更新日志的移動應用演化趨勢分析研究:1)探討使用監(jiān)督式機器學習算法從版本更新日志中自動識別不同類型的需求的可行性;2)使用規(guī)模更大的數(shù)據(jù)集對移動應用的演化趨勢進行分析.具體來說,本文的主要貢獻有3個方面:

1) 為了減少從版本更新日志中識別出不同類型需求所需的時間和人力成本,引入監(jiān)督式機器學習算法,用以在數(shù)量龐大的移動應用版本更新日志中自動預測特定類型的需求.

2) 選擇樸素貝葉斯(Na?ve Bayes, NB)、隨機森林(random forest, RF)和J48這3種監(jiān)督式機器學習算法作為候選的版本更新日志自動分類算法,并設(shè)計了一系列實驗對上述3種算法的性能進行評估,找出最適合對版本更新記錄進行自動分類的機器學習算法.

3) 使用最適合對版本更新記錄進行自動分類的監(jiān)督式機器學習算法,完成版本更新日志中特定需求類型的自動預測和版本更新條目的自動分類,并基于自動分類結(jié)果分析移動應用的演化趨勢.

1 相關(guān)工作

在發(fā)布工程(release engineering)領(lǐng)域,Web及桌面軟件的發(fā)布規(guī)劃研究和工程設(shè)計已較為成熟,而面向移動應用的發(fā)布工程研究則在近幾年才受到軟件工程和移動應用領(lǐng)域的關(guān)注[9-10].

目前,許多研究主要使用軟件的用戶評論和源碼作為實驗和分析的數(shù)據(jù)源.例如,通過對移動應用的用戶評論進行分析以探索其對需求獲取和軟件演化的重要性[3-4,11],或者對用戶評論進行語義分析進行項目推薦[12].特別是,在移動應用領(lǐng)域,僅有少量實證研究從開發(fā)人員的角度使用并分析軟件的版本更新日志.其中,Nayebi等人開展的調(diào)查研究探索了移動應用開發(fā)人員采用何種方法對版本進行組織,以及在此過程中應用了哪些發(fā)布策略[10].文獻[10]的作者發(fā)現(xiàn),50%參與該調(diào)查研究的開發(fā)人員為移動應用制定了明確的發(fā)布策略.Mcilroy等人[13]對30個移動應用類別中排名前10 713個移動應用的更新頻率進行了實證分析.其研究結(jié)果指出,14%更新頻繁的移動應用排名較高,但其中45%的移動應用未向用戶提供關(guān)于更新的任何有效信息.Hassan等人在文獻[7]中分析了Google Play中1 000個移動應用的緊急更新,用于確定應用的更新模式及其對用戶體驗的影響.研究結(jié)果表明,移動應用的大部分緊急更新都是由簡單錯誤造成的,開發(fā)人員應避免這類緊急更新以改善用戶體驗.Nayebi等人[14]在2018年進行的另一項實證研究對開發(fā)人員如何考慮在移動應用中刪除和添加功能進行了探索.這一研究主要基于Lehman的軟件演化定律,即:程序的功能必須隨時間的推移而增加,以保持用戶滿意度.然而,Nayebi的這項研究發(fā)現(xiàn),在移動應用領(lǐng)域中,開發(fā)人員認為“刪除已有功能與增加新功能同樣重要,或比增加新功能更加重要”[14].

在對從移動應用商店收集的數(shù)據(jù)進行自動分類方面,許多研究已經(jīng)成功地將監(jiān)督機器學習算法應用于應用評論中的需求識別和分類[7,15-18].特別是,文獻[15]和文獻[17]從需求工程的角度對用戶評論進行了處理,致力于將移動應用的評論自動分類為功能需求(functional requirements, FR)和特定類型的非功能需求(non-functional requirements, NFR).與移動應用的用戶評論相比,版本更新日志由開發(fā)人員提供,所包含的無用信息相對較少.這一差異使得在用戶評論自動分類上表現(xiàn)最優(yōu)的分類器[7-8]可能在版本更新記錄自動分類上無法表現(xiàn)出最優(yōu)的性能.因此,需要在移動應用版本更新日志的數(shù)據(jù)集上評估監(jiān)督式機器學習算法的分類效果,便于以半自動的方式為移動應用的演化趨勢分析提供服務.

2 研究設(shè)計

2.1 研究問題

本文設(shè)計了2個研究問題(research question, RQ),從移動應用版本更新日志所屬的需求類型這一角度,探索如何根據(jù)版本更新日志對移動應用的更新趨勢進行分析.

問題1.哪些技術(shù)或方法可有效用于移動應用版本更新日志的自動分類?

問題1原理.在文獻[15,19]中,多種監(jiān)督式機器學習算法已被有效用于對移動應用的用戶評論進行自動分類.故理論上,同屬于短文本的移動應用更新日志也可使用監(jiān)督式學習算法進行自動分類,以減少人工分類的時間開銷.該研究問題旨在對已有研究中分類效果較優(yōu)的機器學習算法進行性能評估,探索哪種算法能更準確地對移動應用的版本更新日志進行自動分類,進而為基于版本更新日志的移動應用演化趨勢自動分析提供具有優(yōu)勢的技術(shù)支持.

問題2.從需求類型的角度對移動應用的版本更新日志進行分析,其結(jié)果揭示了移動應用演化的哪些特點?

作為移動應用演化的表現(xiàn)形態(tài)之一,版本更新日志是由開發(fā)人員在移動應用庫中發(fā)布的一組短文本,通常描述了移動應用當前版本中最重要的變化.為了保持并進一步增大移動應用的市場占有率,開發(fā)人員往往對版本更新日志中的內(nèi)容進行了精挑細選,以有效表征該應用的重要和關(guān)鍵改進.本文將通過2個子研究問題對移動應用的演化特點進行分析:

問題2.1.根據(jù)版本更新日志,開發(fā)者在更新移動應用時著重考慮的是哪種類型的需求?

問題2.1原理.該研究問題有助于分析哪種需求類型(功能需求、非功能需求或某種特定的非功能需求)主導了移動應用的更新,進而探索這類需求類型在不同移動應用類別中的關(guān)注度差異及其隨時間的變化趨勢.

問題2.2.從版本更新日志所屬需求類型的角度來看,移動應用演化的熱點有哪些?這些更新熱點隨時間有何變化?

問題2.2原理.該研究問題進一步從不同需求類型的角度抽取移動應用更新的熱點,有助于分析移動應用更新熱點的變化趨勢.

2.2 數(shù)據(jù)采集

本文所使用的數(shù)據(jù)來源于本文作者在前期研究[8]中收集和使用的移動應用版本更新日志,數(shù)據(jù)采集時間為2019年3月.在數(shù)據(jù)采集任務正式開始前,作者對主流的移動應用商店中不同類別移動應用的版本更新記錄進行了預調(diào)研,并根據(jù)預調(diào)研的結(jié)果制定了2個數(shù)據(jù)采集策略:1)考慮移動應用版本更新記錄采集的便捷性與可行性,選擇蘋果App Store作為數(shù)據(jù)采集源;2)選擇社交(Social Networking)、旅游(Travel)和閱讀(Books)這3個類別移動應用的版本更新記錄作為待收集和分析的對象.第2個采集策略選擇3個移動應用的原因為:1)根據(jù)蘋果App Store應用市場中各類別應用數(shù)量排行[20],游戲類應用占比最多(21.86%),新聞類占比最少(1.83%).過高或過低的樣本占比可能對移動應用演化趨勢分析產(chǎn)生較大影響,故選擇移動應用數(shù)量占比在2%~6%這個區(qū)間范圍的應用類別較為合適.2)所選類別的移動應用版本更新頻次不能過低,版本更新日志的內(nèi)容應較為豐富且有價值,有助于基于版本更新日志對移動應用演化趨勢開展探索性分析.需要說明的是,匹配上述2個采集策略的移動應用類別較多,作者為開展本文的探索性研究隨機選擇出的3個類別為社交(Social Networking)、旅游(Travel)和閱讀(Books),樣本數(shù)據(jù)有一定的多樣性,但僅能用于部分探索移動應用演化的特點和趨勢,不能代表整個移動應用市場的發(fā)展動態(tài).

前期研究[8]在進行正式的數(shù)據(jù)采集時,首先瀏覽了蘋果App Store六個地區(qū)(亞洲、北美洲、歐洲、南美洲、非洲和大洋洲)的移動應用商店中社交、旅游和閱讀這3個類別移動應用的版本更新日志[8].其次,分別爬取了在每個地區(qū)3個類別中排名前10的免費移動應用的版本更新日志;接著,排除了重復、更新日志的數(shù)量低于30以及近3年無版本更新日志的移動應用;最終,保留了120個移動應用(社交類40個、旅游類50個、閱讀類30個)的8 647個版本更新日志.由于一個版本更新日志通常包含多條更新條目,上述120個移動應用發(fā)布的更新條目共計17 024條.

在已收集的版本更新日志中,“本次更新”和“近期更新”的內(nèi)容往往有較大程度的重復.為消除冗余,本文制定了篩選原則:若本次更新中的版本更新條目與“近期更新”中的更新條目相同,則保留“本次更新”中的更新條目.將這一篩選原則應用于120個移動應用的17 024條版本更新條目,可得到8 325條不重復的版本更新條目組成的初始數(shù)據(jù)集.

為了平衡不同類別移動應用所提供的版本更新條目的數(shù)量,作者從初始數(shù)據(jù)集中選擇了60個移動應用(在社交、旅游、閱讀類別中分別隨機選擇20個移動應用)的版本更新條目,構(gòu)建了本文研究所需的數(shù)據(jù)集.同時,考慮版本更新日志的稀疏性和部分缺失,剔除了2013年之前和2019年之后發(fā)布的版本更新條目.最終,得到的數(shù)據(jù)集由60個應用的6 527條版本更新條目組成,其發(fā)布時間區(qū)間為2014年至2018年.其中,旅游類的版本更新條目為2 782條,社交類的為2 666條,閱讀類的為1 079條.

2.3 數(shù)據(jù)集劃分

根據(jù)前期研究的經(jīng)驗,在有限的時間內(nèi)人工標記和分析6 527條版本更新條目是一項非常耗時的任務.因此,我們從6 527條版本更新條目中選擇了3 000條(社交、旅游、閱讀類分別隨機選擇1 000條)進行人工標注和分類,用以訓練和評估監(jiān)督式分類算法;而其余的3 527條將用評估結(jié)果中最有效的監(jiān)督式分類算法進行自動分類.

2.4 數(shù)據(jù)標注

為提高人工標注的準確性,本文采用了Kripp-endorff等人[21]提出的先驗編碼(priori coding)方法進行人工標注,使定性分析的結(jié)果更加豐富[22].本文的人工標注過程由2名計算機專業(yè)的本科生(含第1作者)完成;標注結(jié)果的一致性校驗由標注者與第2作者和第3作者共同完成,標注結(jié)果的正確性校驗由第2作者和第3作者共同完成.具體的標注過程如下:

首先,作者與2位標注者一起對擬采用的分類標準(ISO 25010[23])進行了解釋與討論.接著,2名標注者對120條(社交、旅游、閱讀類分別隨機選擇40條)版本更新條目進行了獨立的人工預標注,分別耗時30 min和35 min,2人標注結(jié)果的內(nèi)部一致性[17]為63%.2名標注者與第2作者和第3作者對37%不一致的標注結(jié)果進行了討論并達成一致后,制定了一個人工標注指南,以幫助標注者提高人工分類的準確性.之后,重新選擇了500條更新條目進行第2輪試標注.經(jīng)統(tǒng)計,第2輪試標注的內(nèi)部一致性為73.8%.2名標注者與第2作者和第3作者對第2輪中不一致的人工分類結(jié)果進行討論并達成一致后,對人工標注指南進行了更新.最終,2位標注者依據(jù)該指南對3 000條更新條目進行了標注并達成一致意見.為降低人工標注的準確性對后續(xù)版本更新日志自動分類結(jié)果準確性的影響,第2作者和第3作者分別從數(shù)據(jù)集中隨機抽取了5%進行標注結(jié)果的正確性校驗,以確保人工標注的質(zhì)量.

在人工標注的過程中,絕大多數(shù)移動應用的版本更新條目只提及1種需求類型,但仍有少量(343 000)更新條目的內(nèi)容涉及多種需求類型.為確保1條更新條目僅包含1種需求類型的標簽以便對監(jiān)督式分類器進行訓練,作者將這34條更新條目進行了手動拆分,故人工標注的數(shù)據(jù)集最終由3 034條移動應用的版本更新條目構(gòu)成.

本文采用的分類標準ISO 25010定義了8種類型的NFR:功能適用性(Functional Suitability)、性能效率(Performance Efficiency)、兼容性(Compati-bility)、可用性(Usability)、可靠性(Reliability)、安全性(Security)、可維護性(Maintainability)和可移植性(Portability).在對3 034條版本更新條目進行人工標注時,未發(fā)現(xiàn)提及“功能適用性”和“可維護性”這2類非功能需求的更新條目.因此,本文僅考慮ISO 25010中定義的其余6種NFR類型和FR共7種與需求類型相關(guān)的類別.此外,本文還定義了類別“其他”以歸類不能分為以上7種類型的更新條目.例如,對用戶支持的感謝以及與需求無關(guān)的更新條目(“keep the good work”或“please continue to pay attention”),或是未指明具體缺陷僅聲明“對部分問題進行了修復”(“Bug fixed”)的版本更新條目.表1列舉了本文考慮的8種類型(即“性能效率”“兼容性”“可用性”“可靠性”“安全性”“可移植性”“功能需求”和“其他”)及其相應示例.

Table 1 Exemplary App Changes of Eight Types表1 8種類型的更新記錄示例

2.5 數(shù)據(jù)預處理

本文使用Weka 3.7對原始數(shù)據(jù)進行預處理,具體流程為:首先,將人工標注的3 034條版本更新條目(.csv格式)導入Weka完成數(shù)據(jù)的規(guī)范化,使用Weka中的NominalToSting函數(shù)將初始文件數(shù)據(jù)類型從Nominal轉(zhuǎn)換為String.其次,使用Weka中的StringToWordVector函數(shù)進行文本向量化,生成詞向量.其中,使用Snowball進行詞干提取,使用MultiStopwords停用詞表進行去停用詞處理,選擇WordTokenizer作為分詞器.同時,將TFTransform和IDFTransform設(shè)置為True,使用TF-IDF進行特征詞提取.

2.6 分類器的選擇、訓練及評估

基于已有相關(guān)研究和前期研究的實驗結(jié)果,本文擬對比NB,RF和J48這3種監(jiān)督式機器學習算法在自動分類移動應用版本更新日志上的性能.3種分類器的選擇依據(jù)為:1)文獻[24]指出,NB是一種被廣泛應用的機器學習算法.同時,相關(guān)研究[15,19,25]的實驗結(jié)果顯示,在對移動應用用戶評論這類短文本進行自動分類時,采用NB算法可以得到更準確的分類結(jié)果.2)若在文本向量化時采用TF-IDF進行用戶評論特征詞的提取,使用J48對用戶評論進行自動分類的效果略優(yōu)于NB[15].3)在我們的前期研究中[8,26],應用RF對版本更新日志進行自動分類可得到最優(yōu)的分類效果.

為評估3種算法的性能,本文實驗采用十折交叉檢驗以減少分類器對版本更新條目中需求類型進行識別和分類的過擬合.此外,本文采用準確率(Precision)、召回率(Recall)和F值(F1)來評估上述3種分類算法的分類效果.各評估指標加權(quán)平均值為

(1)

(2)

(3)

其中,Precisioni,Recalli,F(xiàn)1i分別表示與需求類型i相關(guān)的版本更新條目自動分類的準確率、召回率、F值,Numberi表示隸屬于該類型的版本更新日志條目數(shù)量.

2.7 熱詞熱度計算

針對問題2.2,本文用版本更新條目中的熱詞表示版本更新的熱點,用熱詞熱度來表示版本更新記錄中熱點的受關(guān)注度.熱詞熱度的計算公式為

(4)

其中,DegreeOfConcernsi表示與需求類型i相關(guān)的版本更新記錄的熱詞熱度,OccurrenceWij表示需求類型為i的版本更新記錄中第j個特征詞Wij的出現(xiàn)次數(shù),j∈{1,2,…,n}(n為需求類型i的版本更新記錄中熱詞數(shù)目),Numberi表示與需求類型i相關(guān)的版本更新條目數(shù).

3 實驗與結(jié)果

3.1 版本更新日志自動分類的算法評估(問題1)

針對問題1,本節(jié)將根據(jù)應用3種監(jiān)督式機器學習算法得到的分類結(jié)果的F值,對不同分類算法在版本更新日志自動分類中的性能進行評估,以確定最適合對版本更新日志進行自動分類的算法,探索基于版本更新日志進行移動應用演化趨勢自動分析的可行性.

3.1.1 實驗準備

首先,根據(jù)2.4節(jié)定義的人工標注過程完成3 034條版本更新條目的人工標注,其標注結(jié)果如圖1所示.其中,1 170條(占比約為38.56%)涉及FR,1 519條(占比約為50.07%)涉及NFR,345條(占比約為11.37%)未涉及FR或NFR.進一步,在1 519條標記為NFR的更新條目中,提及“可用性”這一非功能屬性的版本更新條目最多(9531 519),占人工標記總條數(shù)的62.74%;提及“安全性”和“兼容性”的版本更新條目最少,分別為13條和40條,占人工標記總條數(shù)的0.40%和1.32%.

考慮監(jiān)督式自動分類方法,如果待分類樣本集的數(shù)量過小,無法對分類器進行有效和準確地訓練.鑒于標注需求類別為“兼容性”和“安全性”的版本更新條目數(shù)量較少,我們將上述2個類別的更新條目并入“其他”類別,以便更好地訓練分類器.也就是說,在本文的版本更新記錄自動分類實驗中,3種監(jiān)督式自動分類方法僅用于將移動應用的版本更新條目分為6種類型:“功能需求”“性能效率”“可用性”“可靠性”“可移植性”和“其他”.

本節(jié)實驗的實驗環(huán)境配置如下:CPU為Intel 9100f,GPU為AMD RX580,內(nèi)存為16 GB的便攜計算機,操作系統(tǒng)版本為Windows 10 1909,實驗軟件為Weka3.7.

Fig. 1 Summary of 3 034 manually labeled app changes over eight types of requirements圖1 3 034條人工標注更新條目在需求類型中的分布情況

3.1.2 3種算法的分類結(jié)果對比

本節(jié)將對比NB,RF和J48這3種分類算法在版本更新條目自動分類中的性能.實驗數(shù)據(jù)為3.1.1節(jié)中3 034條人工標注的版本更新條目.

表2展示了上述3種算法對3 034條版本更新條目分別進行二分類(binary classifier, BC)和多分類(multi classifier, MC)時的準確率、召回率和F值.綜合實驗結(jié)果表明,對任意一種需求類型而言,3種機器學習算法的二分類效果均明顯優(yōu)于多分類.同時,從分類算法的角度可得出結(jié)論:NB和RF分別在二分類和多分類任務中性能最優(yōu).

Table 2 Performance of the Three Evaluated Machine Learning Algorithms on App Changes表2 3種監(jiān)督式機器學習算法的算法性能對比表

Continued (Table 2)

此外,對版本更新日志中FR這一類型進行自動分類時,使用NB(BC)和RF(MC)得到的F值較為接近;而對“性能效率”“可移植性”和“其他”這3種類型而言,使用NB(BC)自動分類的結(jié)果明顯優(yōu)于RF(MC).

進一步,圖2展示了應用NB(BC)和RF(MC)對版本更新日志進行自動分類時,不同需求類型更新條目的占比對自動分類性能評估指標F值的影響.由圖2可知,與FR和“可用性”相比,“性能效率”“可靠性”“可移植性”和“其他”這4種類型的更新條目數(shù)占比較低,但使用NB(BC)進行自動分類得到的F值較高.

類似地,對類型為“性能效率”和“可靠性”這2類占比較低的版本更新條目來說,RF(MC)的分類正確率較高.不同的是,“可移植性”和“其他”這2類更新條目數(shù)量的低占比,其對應的RF(MC)分類正確性也隨之降低.

3.1.3 版本更新條目的自動分類結(jié)果

表3和表4展示了應用RF(MC)對數(shù)據(jù)集中6 527條版本更新條目進行自動分類的結(jié)果.

從表3中可以發(fā)現(xiàn),總體上,F(xiàn)R相關(guān)(47.0%)的版本更新日志多于與NFR相關(guān)(44.4%).但對于閱讀類移動應用而言,其版本更新記錄中與FR相關(guān)(43.6%)的更新條目數(shù)略少于與NFR相關(guān)(48.1%)的版本更新日志.

Table 3 Distribution of App Changelogs Over App Categories (FR vs NFR) Using RF(MC)

Table 4 Distribution of App Changelogs Over App Categories (4 NFR Types) Using RF(MC)

表4進一步展示了3類移動應用在4個NFR類型的詳細分布.其中,“可用性”在NFR中占據(jù)主要地位.其次,“可用性”和“可靠性”的占比與3.1.1節(jié)中人工分類結(jié)果中的占比近似(前者為82%,后者為77%).再者,在社交類移動應用的發(fā)布的版本更新記錄中,“可靠性”相關(guān)版本更新條目的占比明顯少于旅行類和閱讀類,而“性能效率”相關(guān)版本更新日志占比則略多于其他2個移動應用類別.

問題1結(jié)論:

1) NB,RF和J48這3種監(jiān)督式機器學習算法均可用來識別和預測版本更新日志的需求類型.

2) 應用上述3種算法預測版本更新條目的需求類型并進行自動分類時,BC比MC的結(jié)果更準確.

3) 在使用BC時,NB的性能優(yōu)于RF和J48;在使用MC時,RF的性能優(yōu)于NB和J48.因此,如果僅需對某一特定需求類型進行自動分類和分析,可采用NB(BC)算法,見3.2.2節(jié);否則,則可使用RF(MC),見3.2.1節(jié).

4) 對于某些需求類型(如“可靠性”),RF(MC)分類結(jié)果的F值與數(shù)據(jù)集中提及該類型的版本更新條目占比成反比;而對其他的需求類型(如FR)而言,RF(MC)分類結(jié)果的F值與數(shù)據(jù)集中提及該類型的版本更新條目占比成正比.

3.2 移動應用的演化特點(問題2)

3.2.1 需求類型視角下移動應用的演化特點(問題2.1)

基于3.1.3節(jié)中應用RF(MC)得到的6 527條移動應用版本更新條目的自動分類結(jié)果,本節(jié)從更新條目涉及的需求類型這一角度,對移動應用的演化趨勢展開如下分析:

從總體上看,6 527條更新條目中的289條發(fā)布于2014年,780條發(fā)布于2015年,1 305條發(fā)布于2016年,1 780條發(fā)布于2017年,2 373條發(fā)布于2018年.由此可見,近年來,移動應用版本更新日志中更新條目的數(shù)量持續(xù)增加.進一步,圖3展示了旅游、社交和閱讀類移動應用的版本更新條目數(shù)量隨時間的變化趨勢,即:旅游類移動應用的版本更新條目數(shù)量增長最快,社交類次之,閱讀類移動應用更新條目數(shù)量的增長則十分緩慢.

Fig. 3 Distribution of app changes over three app categories and years圖3 版本更新日志數(shù)量隨類別及年份的變化

圖4展示了FR和4種NFR需求類型相關(guān)的移動應用版本更新條目數(shù)隨時間變化的情況.近5年來,F(xiàn)R和“可用性”相關(guān)的更新條目數(shù)量增速較快,而“可靠性”“性能效率”和“可移植性”類型的更新條目數(shù)量則增速緩慢.

Fig. 4 Trends of different requirements types in app changelogs圖4 不同需求類型的版本更新日志數(shù)隨年份的變化

進一步,圖5顯示了旅游、社交和閱讀類移動應用中FR相關(guān)的版本更新條目數(shù)隨時間的變化情況.與閱讀類移動應用相比,旅游和社交類移動應用在演化更新時,涉及FR的版本更新條目數(shù)持續(xù)增長,且增速較快.這一現(xiàn)象說明,旅游和社交類移動應用在版本更新時更側(cè)重引入新的功能.

Fig. 5 Trends of FR over the three app categories圖5 FR類型版本更新日志數(shù)隨年份的變化

Fig. 6 Trends of performance requirements over the three app categories圖6 “性能效率”類型版本更新日志數(shù)隨年份的變化

圖6顯示了3個類別移動應用中與“性能效率”相關(guān)的版本更新條目數(shù)量隨時間的變化情況,即與其他2個類別的移動應用相比,社交類移動應用的版本更新記錄中此需求類型被提及的頻率更高;而除2016年和2018年外,閱讀類和旅游類頻率基本一致.

圖7顯示了3個類別移動應用中,與“可用性”相關(guān)的版本更新條目數(shù)量隨時間的變化情況.與閱讀類移動應用中收集到的更新日志相比,旅游類和社交類的移動應用均對“可用性”給予了更為持續(xù)的關(guān)注.

Fig. 7 Trends of usability requirements over the three app categories圖7 “可用性”類型版本更新日志數(shù)隨年份的變化

圖8顯示,近5年,這3類移動應用的版本更新日志對“可靠性”的關(guān)注度均有所提升.而與其他2個應用類別相比,旅游類應用更注重與可靠性相關(guān)的改進.

Fig. 8 Trends of reliability requirements over the three app categories圖8 “可靠性”類型版本更新日志數(shù)隨年份的變化

圖9展示了移動應用中“可移植性”類型的版本更新條目數(shù)量隨時間的變化趨勢.自2016年以來,該需求類型在社交類應用中被頻繁提及.而在過去3年,旅游類應用在更新時對“可移植性”的關(guān)注度基本保持不變.

Fig. 9 Trends of portability requirements over the three app categories圖9 “可移植性”類型版本更新數(shù)日志隨年份的變化

問題2.1結(jié)論:

1) 近5年來,移動應用的更新日志數(shù)目在不斷增加.相較于其他2類應用,閱讀類應用更新日志數(shù)目增長速度較慢.

2) FR和“可用性”是移動應用版本更新日志中增長最快的2個需求類別.不同類型需求相關(guān)的版本更新日志數(shù)量在不同應用類別上的增長情況并不相同.例如,對于“可靠性”而言,3個類別移動應用的演化趨勢相似;而對于FR和“可用性”來說,旅游和社交類移動應用發(fā)布的相關(guān)版本更新條目數(shù)的增速遠快于閱讀類.

3.2.2 熱詞視角下移動應用的演化特點(問題2.2)

從熱詞的角度對移動應用的演化特點進行分析,需要針對不同的需求類型分別提取出對應版本更新記錄中的熱詞.基于3.1.2節(jié)的結(jié)論,本節(jié)將使用NB(BC)對移動應用的版本更新記錄進行自動分類,并基于分類結(jié)果對移動應用演化熱詞的特點進行分析.

表5中比較了FR和4種NFR類型的熱詞.其中第2列中的特征詞包含在2.4節(jié)中提及的標注指南中,第3列的熱詞則是在5類版本更新日志中分別應用Weka中TF-IDF自動生成的特征詞的子集,本文抽取了排名前10的特征詞并去除部分無意義的詞后組成了熱詞集合.5種需求類型對應的熱詞之間無重復,即5種需求類型對應的5組熱詞集合之間沒有交集.然而,對任一種需求類型而言,表5第2列中的特征詞和第3列中熱詞集合存在交集,即人工標注指南中75.8%(2533)的特征詞與自動分類結(jié)果中54.3%(2546)的熱詞重合.

Table 5 Hot Words for FR and Four Types of NFRs表5 FR和4種NFR相關(guān)的熱詞

接下來,將進一步分析不同需求類型的版本更新記錄中所包含熱詞隨時間的變化情況.根據(jù)3.1.1節(jié)中不同需求類型的版本更新條目在數(shù)據(jù)集中的占比,本文將以FR和NFR中的“可用性”這2個占比較高的需求類型為例,展示移動應用版本更新記錄中熱詞及其熱度的變化,從熱詞的角度對移動應用的演化特點進行分析.

基于NB(BC)的自動分類結(jié)果,2014~2018年,與FR相關(guān)的版本更新條目數(shù)為2 312條,與“可用性”相關(guān)的版本更新條目數(shù)為1 249條.據(jù)統(tǒng)計,表5行1列3中列出的10個FR相關(guān)熱詞在2 312條FR類型更新條目中出現(xiàn)的總頻次為2 889次,F(xiàn)R相關(guān)熱詞的綜合熱度為1.250,其計算公式見式(2).圖10進一步展示了這10個FR相關(guān)熱詞在2 312條FR類型更新條目中的出現(xiàn)頻次及其隨時間的變化趨勢.可以看出,在提及FR的版本更新日志中,出現(xiàn)次數(shù)最多的3個熱詞是“now”(799次)、“can”(672次)和“new”(536次),且其出現(xiàn)次數(shù)逐年增多;而“theme”“enable”和“ability”等熱詞在版本更新日志中出現(xiàn)次數(shù)較少,在某些年份的出現(xiàn)次數(shù)甚至為0,故這幾個熱詞隨時間的變化趨勢無明顯規(guī)律.

Fig. 10 Occurrence of hot words in app changes over years (FR)圖10 FR相關(guān)熱詞的頻次隨年份的變化

類似地,表5行3列3中列出的9個“可用性”相關(guān)熱詞在1 249條版本更新條目中出現(xiàn)的總頻次為1 609次,依據(jù)式(2)計算得到的相關(guān)熱詞綜合熱度為1.288.圖11展示了這9個“可用性”相關(guān)熱詞在1 938條“可用性”類型更新條目中的出現(xiàn)頻次及其隨時間的變化趨勢.可以看出,在與“可用性”相關(guān)的版本更新記錄中,出現(xiàn)總次數(shù)最多的3個熱詞是“improve”(515次)、“more”(296次)和“update”(221次).然而,從熱詞出現(xiàn)次數(shù)的增速來看,在2017至2018年間,“improve”和“easier”的增幅較快,而“better”和“update”的增幅較緩.

Fig. 11 Occurrence of hot words in app changes over years (Usability)圖11 “可用性”相關(guān)熱詞的頻次隨年份的變化

圖12展示了FR和“可用性”相關(guān)熱詞的綜合熱度隨時間的變化情況.在移動應用的版本更新日志中,與FR相關(guān)熱詞的綜合熱度在2016年達到峰值后開始下降;相反,與“可用性”相關(guān)熱詞的綜合熱度在2016年后呈現(xiàn)出上升趨勢.

Fig. 12 The degree of concerns of hot words (FR and Usability)圖12 FR與“可用性”相關(guān)熱詞的綜合熱度變化趨勢

問題2.2結(jié)論:

1) 標注指南中人工定義的特征詞與自動提取的特征詞重復率較高,且在標注指南中所指定的特征詞大部分都包含在采用TF-IDF提取的特征詞中.

2) 考慮采用TF-IDF從FR和“可用性”相關(guān)更新條目中提取出的熱詞,其出現(xiàn)頻次均逐年增多.此外,不同需求類別的版本更新日志所包含熱詞的綜合熱度隨時間的變化趨勢不盡相同.

4 實驗結(jié)果分析

4.1 3種監(jiān)督式分類算法的性能分析(問題1)

3.1節(jié)中的問題1的結(jié)論1)~3)表明,對版本更新記錄的自動分類而言,使用RF(MC)的分類結(jié)果最優(yōu).這一結(jié)論與文獻[15,19]中的實驗結(jié)果并不一致,即對用戶評論進行自動分類的最優(yōu)分類器并不適用于對移動應用版本的更新日志進行自動分類.可能的原因是,用戶評論和版本更新記錄這2類移動應用數(shù)據(jù)的數(shù)據(jù)質(zhì)量不同,而某些分類器的性能會部分受到數(shù)據(jù)集質(zhì)量的影響.此外,在自動分類版本更新日志時,BC明顯優(yōu)于MC,而此結(jié)論與文獻[15]的結(jié)論完全一致.

3.1節(jié)的問題1的結(jié)論4)表明,不同需求類型在版本更新日志中的百分比并不總是與RF(MC)的F值成正比.例如,“性能效率”類型的版本更新日志在數(shù)據(jù)集中占比較低,但對該需求類型的更新日志進行自動分類時分類的正確性卻較高.究其原因,可能是對“性能效率”這一需求類型來說,分類器從訓練集中提取的文本特征詞對識別該需求類型的版本更新日志更加敏感.

4.2 移動應用的演化特點及趨勢分析(問題2)

移動應用版本更新條目的數(shù)量變化揭示,隨時間的推移,版本更新條目的數(shù)目持續(xù)增多.原因可能是,移動應用的用戶數(shù)量在增加,用戶的個性化需求也越來越多,移動應用需要通過更頻繁的更新、更豐富的更新內(nèi)容以快速滿足用戶需求,以達到維持現(xiàn)有用戶和吸引潛在用戶的目的.

從移動應用所屬類別的角度來探索移動應用的演化趨勢時,作者發(fā)現(xiàn):相對于社交和閱讀類移動應用,旅游類應用發(fā)布的版本更新條目更多.原因可能是旅游類應用通常與其他類別的移動應用關(guān)系有更緊密的關(guān)聯(lián),故需要發(fā)布更多數(shù)量的版本更新條目以與其他應用進行協(xié)調(diào).

根據(jù)與各需求類型相關(guān)的版本更新條目數(shù)量的占比和變化情況可以發(fā)現(xiàn):從整體上看,F(xiàn)R相關(guān)的版本更新條目數(shù)量比NFR相關(guān)的增長更快,原因可能是用戶不斷地期望有新功能對應用進行擴展.然而,該結(jié)論因移動應用的類型不同而有所差異:對于閱讀類移動應用而言,NFR類型更新的數(shù)量大于FR類型的更新數(shù)量;而對于社交類和旅游類移動應用而言,F(xiàn)R類型的版本更新數(shù)量略大于NFR類型的更新數(shù)量.原因可能是,閱讀類應用的功能相對專一,與其他類別應用的交互較少,故更側(cè)重于改善用戶體驗.

根據(jù)不同需求類型版本更新日志中的熱詞及其出現(xiàn)次數(shù)的變換情況可以發(fā)現(xiàn):首先,由于在標注指南中指定的特征詞大部分都包含在采用TF-IDF提取的特征詞中,基于NB(BC)的半自動方法可極大地減少制定人工標注指南的時間和人力成本.其次,不同類型(如3.3.2節(jié)中的FR和“可用性”)的版本更新日志所包含熱詞的出現(xiàn)頻次隨時間的變化趨勢不同.一方面,同一類型版本更新日志中不同熱詞出現(xiàn)次數(shù)隨時間的變化趨勢表明了開發(fā)者在描述移動應用版本更新內(nèi)容時的用詞偏好,可用于指導版本更新日志內(nèi)容的撰寫以最大程度吸引用戶的關(guān)注.另一方面,考慮不同類型熱詞的綜合熱度,“可用性”類熱詞熱度的攀升以及FR類熱詞熱度的降低說明質(zhì)量屬性正逐漸成為開發(fā)者發(fā)布版本更新日志的重要關(guān)注點.

5 局限性

本文的研究結(jié)果由于5個方面的原因存在一定的局限性.

1) 數(shù)據(jù)集所涉及的移動應用類別僅有3類.作為探索性研究,這3種移動應用類別的選擇策略(見2.2節(jié))在一定程度上保證了樣本的均衡性,但3.3節(jié)的實驗結(jié)果和結(jié)論僅能展現(xiàn)移動應用市場中部分類別的移動應用的演化趨勢,不能完整準確地代表移動應用市場的整體特點和變化.文獻[16]曾指出,如果選擇和收集蘋果App Store中其他類別應用的版本更新記錄進行實驗,其結(jié)果或許有所不同,故擴大移動應用數(shù)據(jù)集的類別將是本文下一步的研究工作之一.此外,所有的版本更新日志均來源于蘋果App Store.從其他移動應用市場(如Google Play)中收集移動應用的版本更新記錄進行處理和分析,會極大增強本文結(jié)論的通用性.

2) 本研究中作為監(jiān)督式機器學習算法訓練集的3 034條版本更新條目是由2位計算機專業(yè)本科生分析和標注.為了得到高質(zhì)量的標注并以此為基礎(chǔ)進行分析,作者采取的措施有:在人工標注之前,2位標注者從本科的專業(yè)課程中學習了需求工程和軟件工程的知識體系.考慮標注的過程,本文進行了2輪預標注,以幫助2位標注者對不同類型需求(特別是NFR)的含義和理解達成共識.如2.4節(jié)所述,兩輪預標注的一致性分別為第1輪63%,第2輪73%.該過程可以幫助確定并完善人工標注指南,以便進一步對其他版本更新日志進行標注.同時,第2作者和第3作者不僅參與了2輪預標注過程中不一致意見的討論和決策,還通過隨機抽取少量樣本的方式對3 034條版本更新條目的人工標注結(jié)果進行了正確性檢驗,以保證分析過程和結(jié)論的質(zhì)量.

3) 本文3.1節(jié)的所有實驗均在Weka中完成.Weka是用Java語言編寫的機器學習工具套件.如果用不同的語言(如Python)對3種分類算法進行實現(xiàn),則版本更新日志的自動分類結(jié)果可能有所不同.因此,如何保證不同語言的算法實現(xiàn)所得到分類結(jié)果的一致性還有待進一步研究與分析.

4) 版本更新記錄是一種易獲取且數(shù)據(jù)質(zhì)量較高的公開數(shù)據(jù)源,從開發(fā)者的角度展示了移動應用更新的主要特點.理論上,可以為研究和分析移動應用的演化趨勢提供高質(zhì)量的數(shù)據(jù)支持.然而在實驗數(shù)據(jù)的收集和分析過程中,作者發(fā)現(xiàn),部分趨于成熟的移動應用在一定時間段內(nèi)發(fā)布的多個版本更新記錄不僅具有相同的內(nèi)容,且其內(nèi)容多為無意義的信息,這對基于版本更新記錄的移動應用演化趨勢分析提出了挑戰(zhàn).而對于版本更新記錄詳盡的移動應用而言,使用本文提供的方法能夠在較短時間內(nèi)了解和掌握其演化的特點和趨勢.鑒于此,作者擬進一步研究,在基于版本更新記錄分析移動應用演化趨勢中移動應用類型、應用綜合評分等因素對分析結(jié)果的影響.

5) 本文3.2節(jié)中對移動應用演化特點的分析和研究分別基于應用RF(MC)和NB(BC)對版本更新條目進行自動分類的結(jié)果.鑒于上述人工標注過程存在的問題以及上述2種分類算法準確率(詳見表2),基于該自動分類結(jié)果得到的移動應用演化趨勢未必能反映出移動應用的真實更新趨勢.如果改進分類器以得到更好的分類效果,或?qū)F(MC)NB(BC)生成的需求類型進行人工復核,移動應用演化趨勢分析的準確性將得到進一步提高.

6 總結(jié)和展望

本文從需求工程的角度,研究和分析了蘋果App Store中3個類別60個移動應用的版本更新日志及其內(nèi)容,發(fā)現(xiàn)與功能需求和非功能需求相關(guān)的更新條目數(shù)量接近.

本研究涉及旅游、社交和閱讀這3個類別的移動應用,探討了如何利用監(jiān)督式機器學習算法促進版本更新日志的自動分類,以降低人工標注的成本,幫助移動應用開發(fā)者快速了解和分析特定類別的移動應用更新的趨勢.

下一步計劃擴大研究范圍,引入其他類別的移動應用(如蘋果App Store和Google Play中健康和教育類應用)并考慮中國移動應用市場(如華為應用市場和小米應用市場),以提高對整個移動應用市場整體特點和演化趨勢分析的準確性以及研究結(jié)果的普適性.同時,還計劃向本文所分析的移動應用的開發(fā)人員進行調(diào)研,以探索本研究結(jié)果的正確性和有效性及其對移動應用發(fā)布工程的影響.再者,除了采用有監(jiān)督的分類方法外,還將基于人工標注數(shù)據(jù)所得到的標注指南,探索相應的啟發(fā)式分類算法,以提高版本更新日志的自動分類效果.

猜你喜歡
熱詞日志類別
一名老黨員的工作日志
熱詞
論陶瓷刻劃花藝術(shù)類別與特征
熱詞
一起去圖書館吧
扶貧日志
雅皮的心情日志
雅皮的心情日志
“兩會”聚焦的姐妹熱詞
歲末"熱詞""熱"媒體
射阳县| 绥滨县| 通州区| 东丽区| 汨罗市| 望都县| 夏津县| 离岛区| 新乡市| 比如县| 金平| 甘南县| 盐津县| 雅江县| 彭州市| 四川省| 广南县| 文山县| 洱源县| 虞城县| 葫芦岛市| 河间市| 壤塘县| 汶上县| 出国| 漯河市| 威宁| 东阿县| 昭苏县| 招远市| 库伦旗| 金乡县| 凉山| 广昌县| 平塘县| 西和县| 新沂市| 龙口市| 明光市| 承德县| 临桂县|