999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2021-04-09 06:35:18鐘仁毅
計算機研究與發展 2021年4期
關鍵詞:分類

鐘仁毅 王 翀 梁 鵬 羅 忠

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

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

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

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

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

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

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

1 相關工作

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

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

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

2 研究設計

2.1 研究問題

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

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

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

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

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

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

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

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

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

2.2 數據采集

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

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

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

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

2.3 數據集劃分

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

2.4 數據標注

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

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

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

本文采用的分類標準ISO 25010定義了8種類型的NFR:功能適用性(Functional Suitability)、性能效率(Performance Efficiency)、兼容性(Compati-bility)、可用性(Usability)、可靠性(Reliability)、安全性(Security)、可維護性(Maintainability)和可移植性(Portability).在對3 034條版本更新條目進行人工標注時,未發現提及“功能適用性”和“可維護性”這2類非功能需求的更新條目.因此,本文僅考慮ISO 25010中定義的其余6種NFR類型和FR共7種與需求類型相關的類別.此外,本文還定義了類別“其他”以歸類不能分為以上7種類型的更新條目.例如,對用戶支持的感謝以及與需求無關的更新條目(“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 數據預處理

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

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

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

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

(1)

(2)

(3)

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

2.7 熱詞熱度計算

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

(4)

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

3 實驗與結果

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

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

3.1.1 實驗準備

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

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

本節實驗的實驗環境配置如下:CPU為Intel 9100f,GPU為AMD RX580,內存為16 GB的便攜計算機,操作系統版本為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種算法的分類結果對比

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

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

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

Continued (Table 2)

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

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

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

3.1.3 版本更新條目的自動分類結果

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

從表3中可以發現,總體上,FR相關(47.0%)的版本更新日志多于與NFR相關(44.4%).但對于閱讀類移動應用而言,其版本更新記錄中與FR相關(43.6%)的更新條目數略少于與NFR相關(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中占據主要地位.其次,“可用性”和“可靠性”的占比與3.1.1節中人工分類結果中的占比近似(前者為82%,后者為77%).再者,在社交類移動應用的發布的版本更新記錄中,“可靠性”相關版本更新條目的占比明顯少于旅行類和閱讀類,而“性能效率”相關版本更新日志占比則略多于其他2個移動應用類別.

問題1結論:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

問題2.1結論:

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

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

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

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

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

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

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

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

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

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

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

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

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

問題2.2結論:

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

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

4 實驗結果分析

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

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

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

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

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

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

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

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

5 局限性

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

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

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

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

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

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

6 總結和展望

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

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

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

猜你喜歡
分類
2021年本刊分類總目錄
分類算一算
垃圾分類的困惑你有嗎
大眾健康(2021年6期)2021-06-08 19:30:06
星星的分類
我給資源分分類
垃圾分類,你準備好了嗎
學生天地(2019年32期)2019-08-25 08:55:22
分類討論求坐標
數據分析中的分類討論
按需分類
教你一招:數的分類
主站蜘蛛池模板: 久久大香香蕉国产免费网站| 欧美国产日本高清不卡| 日韩免费毛片| 国产亚洲一区二区三区在线| 亚洲天堂免费在线视频| 国产成人区在线观看视频| 在线日韩一区二区| 亚洲精品视频免费看| 无码又爽又刺激的高潮视频| 美女被躁出白浆视频播放| 欧美日韩资源| 99久久人妻精品免费二区| 精品久久久久无码| 日本精品αv中文字幕| 又爽又大又光又色的午夜视频| 真人免费一级毛片一区二区| 五月天久久婷婷| 四虎永久免费地址| 呦女亚洲一区精品| 19国产精品麻豆免费观看| 91成人在线免费视频| 激情综合图区| 久青草网站| 国产办公室秘书无码精品| 亚洲欧美日韩另类| 国产在线一区视频| 9久久伊人精品综合| 少妇精品网站| 国产乱码精品一区二区三区中文| 91探花在线观看国产最新| 国产欧美在线观看一区| 亚洲人成网站在线播放2019| 青青热久免费精品视频6| 亚洲国产理论片在线播放| 性欧美久久| 国产后式a一视频| 日本道综合一本久久久88| 欧美不卡在线视频| 高清码无在线看| 国产一区二区三区在线精品专区| 亚洲成人高清在线观看| 美女啪啪无遮挡| 制服丝袜一区| 亚洲乱伦视频| 国产乱子伦无码精品小说| 国产91小视频在线观看| 无码AV日韩一二三区| 91精品国产91久久久久久三级| 中文字幕在线不卡视频| 国产自产视频一区二区三区| 99re热精品视频中文字幕不卡| 国产激情影院| 国产视频自拍一区| 久久精品国产精品一区二区| 乱码国产乱码精品精在线播放| 欧美第二区| 在线观看av永久| 亚洲精品视频在线观看视频| 色香蕉网站| 亚洲中文字幕日产无码2021| 欧美日韩国产在线观看一区二区三区 | 亚洲国产理论片在线播放| 成人在线不卡| 午夜精品国产自在| 久久综合成人| 国产爽歪歪免费视频在线观看| 日韩高清一区 | 色国产视频| 国产精品久线在线观看| 国产欧美高清| 成人小视频网| 综1合AV在线播放| 亚洲精品视频免费| 亚洲AⅤ波多系列中文字幕| 国产精品第一区在线观看| 亚洲国模精品一区| 国产呦精品一区二区三区网站| 中文字幕无码中文字幕有码在线| а∨天堂一区中文字幕| 国产成+人+综合+亚洲欧美 | 在线无码av一区二区三区| 欧美成人二区|