鐘仁毅 王 翀 梁 鵬 羅 忠
1(武漢大學(xué)計(jì)算機(jī)學(xué)院 武漢 430072)2(海軍工程大學(xué)艦船與海洋學(xué)院 武漢 430033)
近年來(lái),移動(dòng)應(yīng)用程序數(shù)量的增長(zhǎng)越來(lái)越快.截至2020年第1季度,Android應(yīng)用商店Google Play為用戶(hù)提供的移動(dòng)應(yīng)用數(shù)量已達(dá)256萬(wàn)個(gè),蘋(píng)果應(yīng)用商店Apple App Store也為iOS用戶(hù)提供了185萬(wàn)個(gè)應(yīng)用供其下載和使用[1].為了滿足用戶(hù)不斷變化的新需求并在激烈的市場(chǎng)競(jìng)爭(zhēng)中保持優(yōu)勢(shì),無(wú)論新開(kāi)發(fā)的移動(dòng)應(yīng)用還是已有移動(dòng)應(yīng)用的新版本,其發(fā)布數(shù)量均在不斷增長(zhǎng),為開(kāi)發(fā)者及時(shí)了解移動(dòng)應(yīng)用的重要更新、探索移動(dòng)應(yīng)用的演化趨勢(shì)以及把握移動(dòng)應(yīng)用的市場(chǎng)動(dòng)態(tài)帶來(lái)了挑戰(zhàn).
移動(dòng)應(yīng)用的版本更新日志是由移動(dòng)應(yīng)用開(kāi)發(fā)者在移動(dòng)應(yīng)用商店中以標(biāo)準(zhǔn)格式提供的短文本,其發(fā)布時(shí)間和周期與移動(dòng)應(yīng)用的新版本完全一致,描述了移動(dòng)應(yīng)用當(dāng)前版本的主要或重要更新,表征了移動(dòng)應(yīng)用演化的部分特點(diǎn).目前,許多研究者已將移動(dòng)應(yīng)用的用戶(hù)評(píng)論[2-4]或不同版本的移動(dòng)應(yīng)用源碼[5]用于移動(dòng)應(yīng)用的維護(hù)和演化分析.盡管用戶(hù)評(píng)論和版本更新記錄都是移動(dòng)應(yīng)用商店中公開(kāi)可爬取的文本信息,但后者所包含的無(wú)用信息更少,使用的詞匯和術(shù)語(yǔ)相對(duì)規(guī)范且無(wú)二義性,更易于通過(guò)人工或自動(dòng)的方式處理和分析.與移動(dòng)應(yīng)用歷史版本的安裝包或源碼相比,版本更新記錄中提供的更新內(nèi)容更加直觀且易于獲取,更便于開(kāi)發(fā)人員快速了解移動(dòng)應(yīng)用的發(fā)展趨勢(shì)和市場(chǎng)動(dòng)態(tài).因此,移動(dòng)應(yīng)用的版本更新記錄作為一種公開(kāi)的數(shù)據(jù)源,可用于快速分析移動(dòng)應(yīng)用的演化特點(diǎn),了解移動(dòng)應(yīng)用的發(fā)展趨勢(shì).
目前,已有部分研究將移動(dòng)應(yīng)用的版本更新記錄用于移動(dòng)應(yīng)用的分析.例如,文獻(xiàn)[6]使用移動(dòng)應(yīng)用的版本更新日志來(lái)識(shí)別和確定應(yīng)用評(píng)論中提出的問(wèn)題.Hassan等人[7]對(duì)主流安卓應(yīng)用的緊急更新(emergency updates)進(jìn)行了實(shí)證研究,而該研究對(duì)版本更新記錄的分析僅用于確定它們是否為安卓應(yīng)用的緊急更新提供了有用信息.與該研究的不同之處在于,本文的探索性研究?jī)H將移動(dòng)應(yīng)用的版本更新記錄作為研究對(duì)象和實(shí)驗(yàn)數(shù)據(jù),擬從需求工程的角度探索移動(dòng)應(yīng)用更新的特點(diǎn)和趨勢(shì).本文的前期研究已對(duì)3 000條人工標(biāo)注的版本更新條目進(jìn)行了初步分析,從功能和非功能需求的角度探索了移動(dòng)應(yīng)用的演化特點(diǎn)[8].然而,前期研究?jī)H基于有限數(shù)量的版本更新日志及其人工分類(lèi)標(biāo)簽.在前期研究基礎(chǔ)上,本文將從2個(gè)方面設(shè)計(jì)并完成基于版本更新日志的移動(dòng)應(yīng)用演化趨勢(shì)分析研究:1)探討使用監(jiān)督式機(jī)器學(xué)習(xí)算法從版本更新日志中自動(dòng)識(shí)別不同類(lèi)型的需求的可行性;2)使用規(guī)模更大的數(shù)據(jù)集對(duì)移動(dòng)應(yīng)用的演化趨勢(shì)進(jìn)行分析.具體來(lái)說(shuō),本文的主要貢獻(xiàn)有3個(gè)方面:
1) 為了減少?gòu)陌姹靖氯罩局凶R(shí)別出不同類(lèi)型需求所需的時(shí)間和人力成本,引入監(jiān)督式機(jī)器學(xué)習(xí)算法,用以在數(shù)量龐大的移動(dòng)應(yīng)用版本更新日志中自動(dòng)預(yù)測(cè)特定類(lèi)型的需求.
2) 選擇樸素貝葉斯(Na?ve Bayes, NB)、隨機(jī)森林(random forest, RF)和J48這3種監(jiān)督式機(jī)器學(xué)習(xí)算法作為候選的版本更新日志自動(dòng)分類(lèi)算法,并設(shè)計(jì)了一系列實(shí)驗(yàn)對(duì)上述3種算法的性能進(jìn)行評(píng)估,找出最適合對(duì)版本更新記錄進(jìn)行自動(dòng)分類(lèi)的機(jī)器學(xué)習(xí)算法.
3) 使用最適合對(duì)版本更新記錄進(jìn)行自動(dòng)分類(lèi)的監(jiān)督式機(jī)器學(xué)習(xí)算法,完成版本更新日志中特定需求類(lèi)型的自動(dòng)預(yù)測(cè)和版本更新條目的自動(dòng)分類(lèi),并基于自動(dòng)分類(lèi)結(jié)果分析移動(dòng)應(yīng)用的演化趨勢(shì).
在發(fā)布工程(release engineering)領(lǐng)域,Web及桌面軟件的發(fā)布規(guī)劃研究和工程設(shè)計(jì)已較為成熟,而面向移動(dòng)應(yīng)用的發(fā)布工程研究則在近幾年才受到軟件工程和移動(dòng)應(yīng)用領(lǐng)域的關(guān)注[9-10].
目前,許多研究主要使用軟件的用戶(hù)評(píng)論和源碼作為實(shí)驗(yàn)和分析的數(shù)據(jù)源.例如,通過(guò)對(duì)移動(dòng)應(yīng)用的用戶(hù)評(píng)論進(jìn)行分析以探索其對(duì)需求獲取和軟件演化的重要性[3-4,11],或者對(duì)用戶(hù)評(píng)論進(jìn)行語(yǔ)義分析進(jìn)行項(xiàng)目推薦[12].特別是,在移動(dòng)應(yīng)用領(lǐng)域,僅有少量實(shí)證研究從開(kāi)發(fā)人員的角度使用并分析軟件的版本更新日志.其中,Nayebi等人開(kāi)展的調(diào)查研究探索了移動(dòng)應(yīng)用開(kāi)發(fā)人員采用何種方法對(duì)版本進(jìn)行組織,以及在此過(guò)程中應(yīng)用了哪些發(fā)布策略[10].文獻(xiàn)[10]的作者發(fā)現(xiàn),50%參與該調(diào)查研究的開(kāi)發(fā)人員為移動(dòng)應(yīng)用制定了明確的發(fā)布策略.Mcilroy等人[13]對(duì)30個(gè)移動(dòng)應(yīng)用類(lèi)別中排名前10 713個(gè)移動(dòng)應(yīng)用的更新頻率進(jìn)行了實(shí)證分析.其研究結(jié)果指出,14%更新頻繁的移動(dòng)應(yīng)用排名較高,但其中45%的移動(dòng)應(yīng)用未向用戶(hù)提供關(guān)于更新的任何有效信息.Hassan等人在文獻(xiàn)[7]中分析了Google Play中1 000個(gè)移動(dòng)應(yīng)用的緊急更新,用于確定應(yīng)用的更新模式及其對(duì)用戶(hù)體驗(yàn)的影響.研究結(jié)果表明,移動(dòng)應(yīng)用的大部分緊急更新都是由簡(jiǎn)單錯(cuò)誤造成的,開(kāi)發(fā)人員應(yīng)避免這類(lèi)緊急更新以改善用戶(hù)體驗(yàn).Nayebi等人[14]在2018年進(jìn)行的另一項(xiàng)實(shí)證研究對(duì)開(kāi)發(fā)人員如何考慮在移動(dòng)應(yīng)用中刪除和添加功能進(jìn)行了探索.這一研究主要基于Lehman的軟件演化定律,即:程序的功能必須隨時(shí)間的推移而增加,以保持用戶(hù)滿意度.然而,Nayebi的這項(xiàng)研究發(fā)現(xiàn),在移動(dòng)應(yīng)用領(lǐng)域中,開(kāi)發(fā)人員認(rèn)為“刪除已有功能與增加新功能同樣重要,或比增加新功能更加重要”[14].
在對(duì)從移動(dòng)應(yīng)用商店收集的數(shù)據(jù)進(jìn)行自動(dòng)分類(lèi)方面,許多研究已經(jīng)成功地將監(jiān)督機(jī)器學(xué)習(xí)算法應(yīng)用于應(yīng)用評(píng)論中的需求識(shí)別和分類(lèi)[7,15-18].特別是,文獻(xiàn)[15]和文獻(xiàn)[17]從需求工程的角度對(duì)用戶(hù)評(píng)論進(jìn)行了處理,致力于將移動(dòng)應(yīng)用的評(píng)論自動(dòng)分類(lèi)為功能需求(functional requirements, FR)和特定類(lèi)型的非功能需求(non-functional requirements, NFR).與移動(dòng)應(yīng)用的用戶(hù)評(píng)論相比,版本更新日志由開(kāi)發(fā)人員提供,所包含的無(wú)用信息相對(duì)較少.這一差異使得在用戶(hù)評(píng)論自動(dòng)分類(lèi)上表現(xiàn)最優(yōu)的分類(lèi)器[7-8]可能在版本更新記錄自動(dòng)分類(lèi)上無(wú)法表現(xiàn)出最優(yōu)的性能.因此,需要在移動(dòng)應(yīng)用版本更新日志的數(shù)據(jù)集上評(píng)估監(jiān)督式機(jī)器學(xué)習(xí)算法的分類(lèi)效果,便于以半自動(dòng)的方式為移動(dòng)應(yīng)用的演化趨勢(shì)分析提供服務(wù).
本文設(shè)計(jì)了2個(gè)研究問(wèn)題(research question, RQ),從移動(dòng)應(yīng)用版本更新日志所屬的需求類(lèi)型這一角度,探索如何根據(jù)版本更新日志對(duì)移動(dòng)應(yīng)用的更新趨勢(shì)進(jìn)行分析.
問(wèn)題1.哪些技術(shù)或方法可有效用于移動(dòng)應(yīng)用版本更新日志的自動(dòng)分類(lèi)?
問(wèn)題1原理.在文獻(xiàn)[15,19]中,多種監(jiān)督式機(jī)器學(xué)習(xí)算法已被有效用于對(duì)移動(dòng)應(yīng)用的用戶(hù)評(píng)論進(jìn)行自動(dòng)分類(lèi).故理論上,同屬于短文本的移動(dòng)應(yīng)用更新日志也可使用監(jiān)督式學(xué)習(xí)算法進(jìn)行自動(dòng)分類(lèi),以減少人工分類(lèi)的時(shí)間開(kāi)銷(xiāo).該研究問(wèn)題旨在對(duì)已有研究中分類(lèi)效果較優(yōu)的機(jī)器學(xué)習(xí)算法進(jìn)行性能評(píng)估,探索哪種算法能更準(zhǔn)確地對(duì)移動(dòng)應(yīng)用的版本更新日志進(jìn)行自動(dòng)分類(lèi),進(jìn)而為基于版本更新日志的移動(dòng)應(yīng)用演化趨勢(shì)自動(dòng)分析提供具有優(yōu)勢(shì)的技術(shù)支持.
問(wèn)題2.從需求類(lèi)型的角度對(duì)移動(dòng)應(yīng)用的版本更新日志進(jìn)行分析,其結(jié)果揭示了移動(dòng)應(yīng)用演化的哪些特點(diǎn)?
作為移動(dòng)應(yīng)用演化的表現(xiàn)形態(tài)之一,版本更新日志是由開(kāi)發(fā)人員在移動(dòng)應(yīng)用庫(kù)中發(fā)布的一組短文本,通常描述了移動(dòng)應(yīng)用當(dāng)前版本中最重要的變化.為了保持并進(jìn)一步增大移動(dòng)應(yīng)用的市場(chǎng)占有率,開(kāi)發(fā)人員往往對(duì)版本更新日志中的內(nèi)容進(jìn)行了精挑細(xì)選,以有效表征該應(yīng)用的重要和關(guān)鍵改進(jìn).本文將通過(guò)2個(gè)子研究問(wèn)題對(duì)移動(dòng)應(yīng)用的演化特點(diǎn)進(jìn)行分析:
問(wèn)題2.1.根據(jù)版本更新日志,開(kāi)發(fā)者在更新移動(dòng)應(yīng)用時(shí)著重考慮的是哪種類(lèi)型的需求?
問(wèn)題2.1原理.該研究問(wèn)題有助于分析哪種需求類(lèi)型(功能需求、非功能需求或某種特定的非功能需求)主導(dǎo)了移動(dòng)應(yīng)用的更新,進(jìn)而探索這類(lèi)需求類(lèi)型在不同移動(dòng)應(yīng)用類(lèi)別中的關(guān)注度差異及其隨時(shí)間的變化趨勢(shì).
問(wèn)題2.2.從版本更新日志所屬需求類(lèi)型的角度來(lái)看,移動(dòng)應(yīng)用演化的熱點(diǎn)有哪些?這些更新熱點(diǎn)隨時(shí)間有何變化?
問(wèn)題2.2原理.該研究問(wèn)題進(jìn)一步從不同需求類(lèi)型的角度抽取移動(dòng)應(yīng)用更新的熱點(diǎn),有助于分析移動(dòng)應(yīng)用更新熱點(diǎn)的變化趨勢(shì).
本文所使用的數(shù)據(jù)來(lái)源于本文作者在前期研究[8]中收集和使用的移動(dòng)應(yīng)用版本更新日志,數(shù)據(jù)采集時(shí)間為2019年3月.在數(shù)據(jù)采集任務(wù)正式開(kāi)始前,作者對(duì)主流的移動(dòng)應(yīng)用商店中不同類(lèi)別移動(dòng)應(yīng)用的版本更新記錄進(jìn)行了預(yù)調(diào)研,并根據(jù)預(yù)調(diào)研的結(jié)果制定了2個(gè)數(shù)據(jù)采集策略:1)考慮移動(dòng)應(yīng)用版本更新記錄采集的便捷性與可行性,選擇蘋(píng)果App Store作為數(shù)據(jù)采集源;2)選擇社交(Social Networking)、旅游(Travel)和閱讀(Books)這3個(gè)類(lèi)別移動(dòng)應(yīng)用的版本更新記錄作為待收集和分析的對(duì)象.第2個(gè)采集策略選擇3個(gè)移動(dòng)應(yīng)用的原因?yàn)椋?)根據(jù)蘋(píng)果App Store應(yīng)用市場(chǎng)中各類(lèi)別應(yīng)用數(shù)量排行[20],游戲類(lèi)應(yīng)用占比最多(21.86%),新聞?lì)愓急茸钌?1.83%).過(guò)高或過(guò)低的樣本占比可能對(duì)移動(dòng)應(yīng)用演化趨勢(shì)分析產(chǎn)生較大影響,故選擇移動(dòng)應(yīng)用數(shù)量占比在2%~6%這個(gè)區(qū)間范圍的應(yīng)用類(lèi)別較為合適.2)所選類(lèi)別的移動(dòng)應(yīng)用版本更新頻次不能過(guò)低,版本更新日志的內(nèi)容應(yīng)較為豐富且有價(jià)值,有助于基于版本更新日志對(duì)移動(dòng)應(yīng)用演化趨勢(shì)開(kāi)展探索性分析.需要說(shuō)明的是,匹配上述2個(gè)采集策略的移動(dòng)應(yīng)用類(lèi)別較多,作者為開(kāi)展本文的探索性研究隨機(jī)選擇出的3個(gè)類(lèi)別為社交(Social Networking)、旅游(Travel)和閱讀(Books),樣本數(shù)據(jù)有一定的多樣性,但僅能用于部分探索移動(dòng)應(yīng)用演化的特點(diǎn)和趨勢(shì),不能代表整個(gè)移動(dòng)應(yīng)用市場(chǎng)的發(fā)展動(dòng)態(tài).
前期研究[8]在進(jìn)行正式的數(shù)據(jù)采集時(shí),首先瀏覽了蘋(píng)果App Store六個(gè)地區(qū)(亞洲、北美洲、歐洲、南美洲、非洲和大洋洲)的移動(dòng)應(yīng)用商店中社交、旅游和閱讀這3個(gè)類(lèi)別移動(dòng)應(yīng)用的版本更新日志[8].其次,分別爬取了在每個(gè)地區(qū)3個(gè)類(lèi)別中排名前10的免費(fèi)移動(dòng)應(yīng)用的版本更新日志;接著,排除了重復(fù)、更新日志的數(shù)量低于30以及近3年無(wú)版本更新日志的移動(dòng)應(yīng)用;最終,保留了120個(gè)移動(dòng)應(yīng)用(社交類(lèi)40個(gè)、旅游類(lèi)50個(gè)、閱讀類(lèi)30個(gè))的8 647個(gè)版本更新日志.由于一個(gè)版本更新日志通常包含多條更新條目,上述120個(gè)移動(dòng)應(yīng)用發(fā)布的更新條目共計(jì)17 024條.
在已收集的版本更新日志中,“本次更新”和“近期更新”的內(nèi)容往往有較大程度的重復(fù).為消除冗余,本文制定了篩選原則:若本次更新中的版本更新條目與“近期更新”中的更新條目相同,則保留“本次更新”中的更新條目.將這一篩選原則應(yīng)用于120個(gè)移動(dòng)應(yīng)用的17 024條版本更新條目,可得到8 325條不重復(fù)的版本更新條目組成的初始數(shù)據(jù)集.
為了平衡不同類(lèi)別移動(dòng)應(yīng)用所提供的版本更新條目的數(shù)量,作者從初始數(shù)據(jù)集中選擇了60個(gè)移動(dòng)應(yīng)用(在社交、旅游、閱讀類(lèi)別中分別隨機(jī)選擇20個(gè)移動(dòng)應(yīng)用)的版本更新條目,構(gòu)建了本文研究所需的數(shù)據(jù)集.同時(shí),考慮版本更新日志的稀疏性和部分缺失,剔除了2013年之前和2019年之后發(fā)布的版本更新條目.最終,得到的數(shù)據(jù)集由60個(gè)應(yīng)用的6 527條版本更新條目組成,其發(fā)布時(shí)間區(qū)間為2014年至2018年.其中,旅游類(lèi)的版本更新條目為2 782條,社交類(lèi)的為2 666條,閱讀類(lèi)的為1 079條.
根據(jù)前期研究的經(jīng)驗(yàn),在有限的時(shí)間內(nèi)人工標(biāo)記和分析6 527條版本更新條目是一項(xiàng)非常耗時(shí)的任務(wù).因此,我們從6 527條版本更新條目中選擇了3 000條(社交、旅游、閱讀類(lèi)分別隨機(jī)選擇1 000條)進(jìn)行人工標(biāo)注和分類(lèi),用以訓(xùn)練和評(píng)估監(jiān)督式分類(lèi)算法;而其余的3 527條將用評(píng)估結(jié)果中最有效的監(jiān)督式分類(lèi)算法進(jìn)行自動(dòng)分類(lèi).
為提高人工標(biāo)注的準(zhǔn)確性,本文采用了Kripp-endorff等人[21]提出的先驗(yàn)編碼(priori coding)方法進(jìn)行人工標(biāo)注,使定性分析的結(jié)果更加豐富[22].本文的人工標(biāo)注過(guò)程由2名計(jì)算機(jī)專(zhuān)業(yè)的本科生(含第1作者)完成;標(biāo)注結(jié)果的一致性校驗(yàn)由標(biāo)注者與第2作者和第3作者共同完成,標(biāo)注結(jié)果的正確性校驗(yàn)由第2作者和第3作者共同完成.具體的標(biāo)注過(guò)程如下:
首先,作者與2位標(biāo)注者一起對(duì)擬采用的分類(lèi)標(biāo)準(zhǔn)(ISO 25010[23])進(jìn)行了解釋與討論.接著,2名標(biāo)注者對(duì)120條(社交、旅游、閱讀類(lèi)分別隨機(jī)選擇40條)版本更新條目進(jìn)行了獨(dú)立的人工預(yù)標(biāo)注,分別耗時(shí)30 min和35 min,2人標(biāo)注結(jié)果的內(nèi)部一致性[17]為63%.2名標(biāo)注者與第2作者和第3作者對(duì)37%不一致的標(biāo)注結(jié)果進(jìn)行了討論并達(dá)成一致后,制定了一個(gè)人工標(biāo)注指南,以幫助標(biāo)注者提高人工分類(lèi)的準(zhǔn)確性.之后,重新選擇了500條更新條目進(jìn)行第2輪試標(biāo)注.經(jīng)統(tǒng)計(jì),第2輪試標(biāo)注的內(nèi)部一致性為73.8%.2名標(biāo)注者與第2作者和第3作者對(duì)第2輪中不一致的人工分類(lèi)結(jié)果進(jìn)行討論并達(dá)成一致后,對(duì)人工標(biāo)注指南進(jìn)行了更新.最終,2位標(biāo)注者依據(jù)該指南對(duì)3 000條更新條目進(jìn)行了標(biāo)注并達(dá)成一致意見(jiàn).為降低人工標(biāo)注的準(zhǔn)確性對(duì)后續(xù)版本更新日志自動(dòng)分類(lèi)結(jié)果準(zhǔn)確性的影響,第2作者和第3作者分別從數(shù)據(jù)集中隨機(jī)抽取了5%進(jìn)行標(biāo)注結(jié)果的正確性校驗(yàn),以確保人工標(biāo)注的質(zhì)量.
在人工標(biāo)注的過(guò)程中,絕大多數(shù)移動(dòng)應(yīng)用的版本更新條目只提及1種需求類(lèi)型,但仍有少量(343 000)更新條目的內(nèi)容涉及多種需求類(lèi)型.為確保1條更新條目?jī)H包含1種需求類(lèi)型的標(biāo)簽以便對(duì)監(jiān)督式分類(lèi)器進(jìn)行訓(xùn)練,作者將這34條更新條目進(jìn)行了手動(dòng)拆分,故人工標(biāo)注的數(shù)據(jù)集最終由3 034條移動(dòng)應(yīng)用的版本更新條目構(gòu)成.
本文采用的分類(lèi)標(biāo)準(zhǔn)ISO 25010定義了8種類(lèi)型的NFR:功能適用性(Functional Suitability)、性能效率(Performance Efficiency)、兼容性(Compati-bility)、可用性(Usability)、可靠性(Reliability)、安全性(Security)、可維護(hù)性(Maintainability)和可移植性(Portability).在對(duì)3 034條版本更新條目進(jìn)行人工標(biāo)注時(shí),未發(fā)現(xiàn)提及“功能適用性”和“可維護(hù)性”這2類(lèi)非功能需求的更新條目.因此,本文僅考慮ISO 25010中定義的其余6種NFR類(lèi)型和FR共7種與需求類(lèi)型相關(guān)的類(lèi)別.此外,本文還定義了類(lèi)別“其他”以歸類(lèi)不能分為以上7種類(lèi)型的更新條目.例如,對(duì)用戶(hù)支持的感謝以及與需求無(wú)關(guān)的更新條目(“keep the good work”或“please continue to pay attention”),或是未指明具體缺陷僅聲明“對(duì)部分問(wèn)題進(jìn)行了修復(fù)”(“Bug fixed”)的版本更新條目.表1列舉了本文考慮的8種類(lèi)型(即“性能效率”“兼容性”“可用性”“可靠性”“安全性”“可移植性”“功能需求”和“其他”)及其相應(yīng)示例.
Table 1 Exemplary App Changes of Eight Types表1 8種類(lèi)型的更新記錄示例
本文使用Weka 3.7對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理,具體流程為:首先,將人工標(biāo)注的3 034條版本更新條目(.csv格式)導(dǎo)入Weka完成數(shù)據(jù)的規(guī)范化,使用Weka中的NominalToSting函數(shù)將初始文件數(shù)據(jù)類(lèi)型從Nominal轉(zhuǎn)換為String.其次,使用Weka中的StringToWordVector函數(shù)進(jìn)行文本向量化,生成詞向量.其中,使用Snowball進(jìn)行詞干提取,使用MultiStopwords停用詞表進(jìn)行去停用詞處理,選擇WordTokenizer作為分詞器.同時(shí),將TFTransform和IDFTransform設(shè)置為T(mén)rue,使用TF-IDF進(jìn)行特征詞提取.
基于已有相關(guān)研究和前期研究的實(shí)驗(yàn)結(jié)果,本文擬對(duì)比NB,RF和J48這3種監(jiān)督式機(jī)器學(xué)習(xí)算法在自動(dòng)分類(lèi)移動(dòng)應(yīng)用版本更新日志上的性能.3種分類(lèi)器的選擇依據(jù)為:1)文獻(xiàn)[24]指出,NB是一種被廣泛應(yīng)用的機(jī)器學(xué)習(xí)算法.同時(shí),相關(guān)研究[15,19,25]的實(shí)驗(yàn)結(jié)果顯示,在對(duì)移動(dòng)應(yīng)用用戶(hù)評(píng)論這類(lèi)短文本進(jìn)行自動(dòng)分類(lèi)時(shí),采用NB算法可以得到更準(zhǔn)確的分類(lèi)結(jié)果.2)若在文本向量化時(shí)采用TF-IDF進(jìn)行用戶(hù)評(píng)論特征詞的提取,使用J48對(duì)用戶(hù)評(píng)論進(jìn)行自動(dòng)分類(lèi)的效果略?xún)?yōu)于NB[15].3)在我們的前期研究中[8,26],應(yīng)用RF對(duì)版本更新日志進(jìn)行自動(dòng)分類(lèi)可得到最優(yōu)的分類(lèi)效果.
為評(píng)估3種算法的性能,本文實(shí)驗(yàn)采用十折交叉檢驗(yàn)以減少分類(lèi)器對(duì)版本更新條目中需求類(lèi)型進(jìn)行識(shí)別和分類(lèi)的過(guò)擬合.此外,本文采用準(zhǔn)確率(Precision)、召回率(Recall)和F值(F1)來(lái)評(píng)估上述3種分類(lèi)算法的分類(lèi)效果.各評(píng)估指標(biāo)加權(quán)平均值為
(1)
(2)
(3)
其中,Precisioni,Recalli,F(xiàn)1i分別表示與需求類(lèi)型i相關(guān)的版本更新條目自動(dòng)分類(lèi)的準(zhǔn)確率、召回率、F值,Numberi表示隸屬于該類(lèi)型的版本更新日志條目數(shù)量.
針對(duì)問(wèn)題2.2,本文用版本更新條目中的熱詞表示版本更新的熱點(diǎn),用熱詞熱度來(lái)表示版本更新記錄中熱點(diǎn)的受關(guān)注度.熱詞熱度的計(jì)算公式為
(4)
其中,DegreeOfConcernsi表示與需求類(lèi)型i相關(guān)的版本更新記錄的熱詞熱度,OccurrenceWij表示需求類(lèi)型為i的版本更新記錄中第j個(gè)特征詞Wij的出現(xiàn)次數(shù),j∈{1,2,…,n}(n為需求類(lèi)型i的版本更新記錄中熱詞數(shù)目),Numberi表示與需求類(lèi)型i相關(guān)的版本更新條目數(shù).
針對(duì)問(wèn)題1,本節(jié)將根據(jù)應(yīng)用3種監(jiān)督式機(jī)器學(xué)習(xí)算法得到的分類(lèi)結(jié)果的F值,對(duì)不同分類(lèi)算法在版本更新日志自動(dòng)分類(lèi)中的性能進(jìn)行評(píng)估,以確定最適合對(duì)版本更新日志進(jìn)行自動(dòng)分類(lèi)的算法,探索基于版本更新日志進(jìn)行移動(dòng)應(yīng)用演化趨勢(shì)自動(dòng)分析的可行性.
3.1.1 實(shí)驗(yàn)準(zhǔn)備
首先,根據(jù)2.4節(jié)定義的人工標(biāo)注過(guò)程完成3 034條版本更新條目的人工標(biāo)注,其標(biāo)注結(jié)果如圖1所示.其中,1 170條(占比約為38.56%)涉及FR,1 519條(占比約為50.07%)涉及NFR,345條(占比約為11.37%)未涉及FR或NFR.進(jìn)一步,在1 519條標(biāo)記為NFR的更新條目中,提及“可用性”這一非功能屬性的版本更新條目最多(9531 519),占人工標(biāo)記總條數(shù)的62.74%;提及“安全性”和“兼容性”的版本更新條目最少,分別為13條和40條,占人工標(biāo)記總條數(shù)的0.40%和1.32%.
考慮監(jiān)督式自動(dòng)分類(lèi)方法,如果待分類(lèi)樣本集的數(shù)量過(guò)小,無(wú)法對(duì)分類(lèi)器進(jìn)行有效和準(zhǔn)確地訓(xùn)練.鑒于標(biāo)注需求類(lèi)別為“兼容性”和“安全性”的版本更新條目數(shù)量較少,我們將上述2個(gè)類(lèi)別的更新條目并入“其他”類(lèi)別,以便更好地訓(xùn)練分類(lèi)器.也就是說(shuō),在本文的版本更新記錄自動(dòng)分類(lèi)實(shí)驗(yàn)中,3種監(jiān)督式自動(dòng)分類(lèi)方法僅用于將移動(dòng)應(yīng)用的版本更新條目分為6種類(lèi)型:“功能需求”“性能效率”“可用性”“可靠性”“可移植性”和“其他”.
本節(jié)實(shí)驗(yàn)的實(shí)驗(yàn)環(huán)境配置如下:CPU為Intel 9100f,GPU為AMD RX580,內(nèi)存為16 GB的便攜計(jì)算機(jī),操作系統(tǒng)版本為Windows 10 1909,實(shí)驗(yàn)軟件為Weka3.7.
Fig. 1 Summary of 3 034 manually labeled app changes over eight types of requirements圖1 3 034條人工標(biāo)注更新條目在需求類(lèi)型中的分布情況
3.1.2 3種算法的分類(lèi)結(jié)果對(duì)比
本節(jié)將對(duì)比NB,RF和J48這3種分類(lèi)算法在版本更新條目自動(dòng)分類(lèi)中的性能.實(shí)驗(yàn)數(shù)據(jù)為3.1.1節(jié)中3 034條人工標(biāo)注的版本更新條目.
表2展示了上述3種算法對(duì)3 034條版本更新條目分別進(jìn)行二分類(lèi)(binary classifier, BC)和多分類(lèi)(multi classifier, MC)時(shí)的準(zhǔn)確率、召回率和F值.綜合實(shí)驗(yàn)結(jié)果表明,對(duì)任意一種需求類(lèi)型而言,3種機(jī)器學(xué)習(xí)算法的二分類(lèi)效果均明顯優(yōu)于多分類(lèi).同時(shí),從分類(lèi)算法的角度可得出結(jié)論:NB和RF分別在二分類(lèi)和多分類(lèi)任務(wù)中性能最優(yōu).
Table 2 Performance of the Three Evaluated Machine Learning Algorithms on App Changes表2 3種監(jiān)督式機(jī)器學(xué)習(xí)算法的算法性能對(duì)比表
Continued (Table 2)
此外,對(duì)版本更新日志中FR這一類(lèi)型進(jìn)行自動(dòng)分類(lèi)時(shí),使用NB(BC)和RF(MC)得到的F值較為接近;而對(duì)“性能效率”“可移植性”和“其他”這3種類(lèi)型而言,使用NB(BC)自動(dòng)分類(lèi)的結(jié)果明顯優(yōu)于RF(MC).
進(jìn)一步,圖2展示了應(yīng)用NB(BC)和RF(MC)對(duì)版本更新日志進(jìn)行自動(dòng)分類(lèi)時(shí),不同需求類(lèi)型更新條目的占比對(duì)自動(dòng)分類(lèi)性能評(píng)估指標(biāo)F值的影響.由圖2可知,與FR和“可用性”相比,“性能效率”“可靠性”“可移植性”和“其他”這4種類(lèi)型的更新條目數(shù)占比較低,但使用NB(BC)進(jìn)行自動(dòng)分類(lèi)得到的F值較高.
類(lèi)似地,對(duì)類(lèi)型為“性能效率”和“可靠性”這2類(lèi)占比較低的版本更新條目來(lái)說(shuō),RF(MC)的分類(lèi)正確率較高.不同的是,“可移植性”和“其他”這2類(lèi)更新條目數(shù)量的低占比,其對(duì)應(yīng)的RF(MC)分類(lèi)正確性也隨之降低.
3.1.3 版本更新條目的自動(dòng)分類(lèi)結(jié)果
表3和表4展示了應(yīng)用RF(MC)對(duì)數(shù)據(jù)集中6 527條版本更新條目進(jìn)行自動(dòng)分類(lèi)的結(jié)果.
從表3中可以發(fā)現(xiàn),總體上,F(xiàn)R相關(guān)(47.0%)的版本更新日志多于與NFR相關(guān)(44.4%).但對(duì)于閱讀類(lèi)移動(dòng)應(yīng)用而言,其版本更新記錄中與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進(jìn)一步展示了3類(lèi)移動(dòng)應(yīng)用在4個(gè)NFR類(lèi)型的詳細(xì)分布.其中,“可用性”在NFR中占據(jù)主要地位.其次,“可用性”和“可靠性”的占比與3.1.1節(jié)中人工分類(lèi)結(jié)果中的占比近似(前者為82%,后者為77%).再者,在社交類(lèi)移動(dòng)應(yīng)用的發(fā)布的版本更新記錄中,“可靠性”相關(guān)版本更新條目的占比明顯少于旅行類(lèi)和閱讀類(lèi),而“性能效率”相關(guān)版本更新日志占比則略多于其他2個(gè)移動(dòng)應(yīng)用類(lèi)別.
問(wèn)題1結(jié)論:
1) NB,RF和J48這3種監(jiān)督式機(jī)器學(xué)習(xí)算法均可用來(lái)識(shí)別和預(yù)測(cè)版本更新日志的需求類(lèi)型.
2) 應(yīng)用上述3種算法預(yù)測(cè)版本更新條目的需求類(lèi)型并進(jìn)行自動(dòng)分類(lèi)時(shí),BC比MC的結(jié)果更準(zhǔn)確.
3) 在使用BC時(shí),NB的性能優(yōu)于RF和J48;在使用MC時(shí),RF的性能優(yōu)于NB和J48.因此,如果僅需對(duì)某一特定需求類(lèi)型進(jìn)行自動(dòng)分類(lèi)和分析,可采用NB(BC)算法,見(jiàn)3.2.2節(jié);否則,則可使用RF(MC),見(jiàn)3.2.1節(jié).
4) 對(duì)于某些需求類(lèi)型(如“可靠性”),RF(MC)分類(lèi)結(jié)果的F值與數(shù)據(jù)集中提及該類(lèi)型的版本更新條目占比成反比;而對(duì)其他的需求類(lèi)型(如FR)而言,RF(MC)分類(lèi)結(jié)果的F值與數(shù)據(jù)集中提及該類(lèi)型的版本更新條目占比成正比.
3.2.1 需求類(lèi)型視角下移動(dòng)應(yīng)用的演化特點(diǎn)(問(wèn)題2.1)
基于3.1.3節(jié)中應(yīng)用RF(MC)得到的6 527條移動(dòng)應(yīng)用版本更新條目的自動(dòng)分類(lèi)結(jié)果,本節(jié)從更新條目涉及的需求類(lèi)型這一角度,對(duì)移動(dòng)應(yīng)用的演化趨勢(shì)展開(kāi)如下分析:
從總體上看,6 527條更新條目中的289條發(fā)布于2014年,780條發(fā)布于2015年,1 305條發(fā)布于2016年,1 780條發(fā)布于2017年,2 373條發(fā)布于2018年.由此可見(jiàn),近年來(lái),移動(dòng)應(yīng)用版本更新日志中更新條目的數(shù)量持續(xù)增加.進(jìn)一步,圖3展示了旅游、社交和閱讀類(lèi)移動(dòng)應(yīng)用的版本更新條目數(shù)量隨時(shí)間的變化趨勢(shì),即:旅游類(lèi)移動(dòng)應(yīng)用的版本更新條目數(shù)量增長(zhǎng)最快,社交類(lèi)次之,閱讀類(lèi)移動(dòng)應(yīng)用更新條目數(shù)量的增長(zhǎng)則十分緩慢.
Fig. 3 Distribution of app changes over three app categories and years圖3 版本更新日志數(shù)量隨類(lèi)別及年份的變化
圖4展示了FR和4種NFR需求類(lèi)型相關(guān)的移動(dòng)應(yīng)用版本更新條目數(shù)隨時(shí)間變化的情況.近5年來(lái),F(xiàn)R和“可用性”相關(guān)的更新條目數(shù)量增速較快,而“可靠性”“性能效率”和“可移植性”類(lèi)型的更新條目數(shù)量則增速緩慢.
Fig. 4 Trends of different requirements types in app changelogs圖4 不同需求類(lèi)型的版本更新日志數(shù)隨年份的變化
進(jìn)一步,圖5顯示了旅游、社交和閱讀類(lèi)移動(dòng)應(yīng)用中FR相關(guān)的版本更新條目數(shù)隨時(shí)間的變化情況.與閱讀類(lèi)移動(dòng)應(yīng)用相比,旅游和社交類(lèi)移動(dòng)應(yīng)用在演化更新時(shí),涉及FR的版本更新條目數(shù)持續(xù)增長(zhǎng),且增速較快.這一現(xiàn)象說(shuō)明,旅游和社交類(lèi)移動(dòng)應(yīng)用在版本更新時(shí)更側(cè)重引入新的功能.
Fig. 5 Trends of FR over the three app categories圖5 FR類(lèi)型版本更新日志數(shù)隨年份的變化
Fig. 6 Trends of performance requirements over the three app categories圖6 “性能效率”類(lèi)型版本更新日志數(shù)隨年份的變化
圖6顯示了3個(gè)類(lèi)別移動(dòng)應(yīng)用中與“性能效率”相關(guān)的版本更新條目數(shù)量隨時(shí)間的變化情況,即與其他2個(gè)類(lèi)別的移動(dòng)應(yīng)用相比,社交類(lèi)移動(dòng)應(yīng)用的版本更新記錄中此需求類(lèi)型被提及的頻率更高;而除2016年和2018年外,閱讀類(lèi)和旅游類(lèi)頻率基本一致.
圖7顯示了3個(gè)類(lèi)別移動(dòng)應(yīng)用中,與“可用性”相關(guān)的版本更新條目數(shù)量隨時(shí)間的變化情況.與閱讀類(lèi)移動(dòng)應(yīng)用中收集到的更新日志相比,旅游類(lèi)和社交類(lèi)的移動(dòng)應(yīng)用均對(duì)“可用性”給予了更為持續(xù)的關(guān)注.
Fig. 7 Trends of usability requirements over the three app categories圖7 “可用性”類(lèi)型版本更新日志數(shù)隨年份的變化
圖8顯示,近5年,這3類(lèi)移動(dòng)應(yīng)用的版本更新日志對(duì)“可靠性”的關(guān)注度均有所提升.而與其他2個(gè)應(yīng)用類(lèi)別相比,旅游類(lèi)應(yīng)用更注重與可靠性相關(guān)的改進(jìn).
Fig. 8 Trends of reliability requirements over the three app categories圖8 “可靠性”類(lèi)型版本更新日志數(shù)隨年份的變化
圖9展示了移動(dòng)應(yīng)用中“可移植性”類(lèi)型的版本更新條目數(shù)量隨時(shí)間的變化趨勢(shì).自2016年以來(lái),該需求類(lèi)型在社交類(lèi)應(yīng)用中被頻繁提及.而在過(guò)去3年,旅游類(lèi)應(yīng)用在更新時(shí)對(duì)“可移植性”的關(guān)注度基本保持不變.
Fig. 9 Trends of portability requirements over the three app categories圖9 “可移植性”類(lèi)型版本更新數(shù)日志隨年份的變化
問(wèn)題2.1結(jié)論:
1) 近5年來(lái),移動(dòng)應(yīng)用的更新日志數(shù)目在不斷增加.相較于其他2類(lèi)應(yīng)用,閱讀類(lèi)應(yīng)用更新日志數(shù)目增長(zhǎng)速度較慢.
2) FR和“可用性”是移動(dòng)應(yīng)用版本更新日志中增長(zhǎng)最快的2個(gè)需求類(lèi)別.不同類(lèi)型需求相關(guān)的版本更新日志數(shù)量在不同應(yīng)用類(lèi)別上的增長(zhǎng)情況并不相同.例如,對(duì)于“可靠性”而言,3個(gè)類(lèi)別移動(dòng)應(yīng)用的演化趨勢(shì)相似;而對(duì)于FR和“可用性”來(lái)說(shuō),旅游和社交類(lèi)移動(dòng)應(yīng)用發(fā)布的相關(guān)版本更新條目數(shù)的增速遠(yuǎn)快于閱讀類(lèi).
3.2.2 熱詞視角下移動(dòng)應(yīng)用的演化特點(diǎn)(問(wèn)題2.2)
從熱詞的角度對(duì)移動(dòng)應(yīng)用的演化特點(diǎn)進(jìn)行分析,需要針對(duì)不同的需求類(lèi)型分別提取出對(duì)應(yīng)版本更新記錄中的熱詞.基于3.1.2節(jié)的結(jié)論,本節(jié)將使用NB(BC)對(duì)移動(dòng)應(yīng)用的版本更新記錄進(jìn)行自動(dòng)分類(lèi),并基于分類(lèi)結(jié)果對(duì)移動(dòng)應(yīng)用演化熱詞的特點(diǎn)進(jìn)行分析.
表5中比較了FR和4種NFR類(lèi)型的熱詞.其中第2列中的特征詞包含在2.4節(jié)中提及的標(biāo)注指南中,第3列的熱詞則是在5類(lèi)版本更新日志中分別應(yīng)用Weka中TF-IDF自動(dòng)生成的特征詞的子集,本文抽取了排名前10的特征詞并去除部分無(wú)意義的詞后組成了熱詞集合.5種需求類(lèi)型對(duì)應(yīng)的熱詞之間無(wú)重復(fù),即5種需求類(lèi)型對(duì)應(yīng)的5組熱詞集合之間沒(méi)有交集.然而,對(duì)任一種需求類(lèi)型而言,表5第2列中的特征詞和第3列中熱詞集合存在交集,即人工標(biāo)注指南中75.8%(2533)的特征詞與自動(dòng)分類(lèi)結(jié)果中54.3%(2546)的熱詞重合.
Table 5 Hot Words for FR and Four Types of NFRs表5 FR和4種NFR相關(guān)的熱詞
接下來(lái),將進(jìn)一步分析不同需求類(lèi)型的版本更新記錄中所包含熱詞隨時(shí)間的變化情況.根據(jù)3.1.1節(jié)中不同需求類(lèi)型的版本更新條目在數(shù)據(jù)集中的占比,本文將以FR和NFR中的“可用性”這2個(gè)占比較高的需求類(lèi)型為例,展示移動(dòng)應(yīng)用版本更新記錄中熱詞及其熱度的變化,從熱詞的角度對(duì)移動(dòng)應(yīng)用的演化特點(diǎn)進(jìn)行分析.
基于NB(BC)的自動(dòng)分類(lèi)結(jié)果,2014~2018年,與FR相關(guān)的版本更新條目數(shù)為2 312條,與“可用性”相關(guān)的版本更新條目數(shù)為1 249條.據(jù)統(tǒng)計(jì),表5行1列3中列出的10個(gè)FR相關(guān)熱詞在2 312條FR類(lèi)型更新條目中出現(xiàn)的總頻次為2 889次,F(xiàn)R相關(guān)熱詞的綜合熱度為1.250,其計(jì)算公式見(jiàn)式(2).圖10進(jìn)一步展示了這10個(gè)FR相關(guān)熱詞在2 312條FR類(lèi)型更新條目中的出現(xiàn)頻次及其隨時(shí)間的變化趨勢(shì).可以看出,在提及FR的版本更新日志中,出現(xiàn)次數(shù)最多的3個(gè)熱詞是“now”(799次)、“can”(672次)和“new”(536次),且其出現(xiàn)次數(shù)逐年增多;而“theme”“enable”和“ability”等熱詞在版本更新日志中出現(xiàn)次數(shù)較少,在某些年份的出現(xiàn)次數(shù)甚至為0,故這幾個(gè)熱詞隨時(shí)間的變化趨勢(shì)無(wú)明顯規(guī)律.
Fig. 10 Occurrence of hot words in app changes over years (FR)圖10 FR相關(guān)熱詞的頻次隨年份的變化
類(lèi)似地,表5行3列3中列出的9個(gè)“可用性”相關(guān)熱詞在1 249條版本更新條目中出現(xiàn)的總頻次為1 609次,依據(jù)式(2)計(jì)算得到的相關(guān)熱詞綜合熱度為1.288.圖11展示了這9個(gè)“可用性”相關(guān)熱詞在1 938條“可用性”類(lèi)型更新條目中的出現(xiàn)頻次及其隨時(shí)間的變化趨勢(shì).可以看出,在與“可用性”相關(guān)的版本更新記錄中,出現(xiàn)總次數(shù)最多的3個(gè)熱詞是“improve”(515次)、“more”(296次)和“update”(221次).然而,從熱詞出現(xiàn)次數(shù)的增速來(lái)看,在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)熱詞的綜合熱度隨時(shí)間的變化情況.在移動(dòng)應(yīng)用的版本更新日志中,與FR相關(guān)熱詞的綜合熱度在2016年達(dá)到峰值后開(kāi)始下降;相反,與“可用性”相關(guān)熱詞的綜合熱度在2016年后呈現(xiàn)出上升趨勢(shì).
Fig. 12 The degree of concerns of hot words (FR and Usability)圖12 FR與“可用性”相關(guān)熱詞的綜合熱度變化趨勢(shì)
問(wèn)題2.2結(jié)論:
1) 標(biāo)注指南中人工定義的特征詞與自動(dòng)提取的特征詞重復(fù)率較高,且在標(biāo)注指南中所指定的特征詞大部分都包含在采用TF-IDF提取的特征詞中.
2) 考慮采用TF-IDF從FR和“可用性”相關(guān)更新條目中提取出的熱詞,其出現(xiàn)頻次均逐年增多.此外,不同需求類(lèi)別的版本更新日志所包含熱詞的綜合熱度隨時(shí)間的變化趨勢(shì)不盡相同.
3.1節(jié)中的問(wèn)題1的結(jié)論1)~3)表明,對(duì)版本更新記錄的自動(dòng)分類(lèi)而言,使用RF(MC)的分類(lèi)結(jié)果最優(yōu).這一結(jié)論與文獻(xiàn)[15,19]中的實(shí)驗(yàn)結(jié)果并不一致,即對(duì)用戶(hù)評(píng)論進(jìn)行自動(dòng)分類(lèi)的最優(yōu)分類(lèi)器并不適用于對(duì)移動(dòng)應(yīng)用版本的更新日志進(jìn)行自動(dòng)分類(lèi).可能的原因是,用戶(hù)評(píng)論和版本更新記錄這2類(lèi)移動(dòng)應(yīng)用數(shù)據(jù)的數(shù)據(jù)質(zhì)量不同,而某些分類(lèi)器的性能會(huì)部分受到數(shù)據(jù)集質(zhì)量的影響.此外,在自動(dòng)分類(lèi)版本更新日志時(shí),BC明顯優(yōu)于MC,而此結(jié)論與文獻(xiàn)[15]的結(jié)論完全一致.
3.1節(jié)的問(wèn)題1的結(jié)論4)表明,不同需求類(lèi)型在版本更新日志中的百分比并不總是與RF(MC)的F值成正比.例如,“性能效率”類(lèi)型的版本更新日志在數(shù)據(jù)集中占比較低,但對(duì)該需求類(lèi)型的更新日志進(jìn)行自動(dòng)分類(lèi)時(shí)分類(lèi)的正確性卻較高.究其原因,可能是對(duì)“性能效率”這一需求類(lèi)型來(lái)說(shuō),分類(lèi)器從訓(xùn)練集中提取的文本特征詞對(duì)識(shí)別該需求類(lèi)型的版本更新日志更加敏感.
移動(dòng)應(yīng)用版本更新條目的數(shù)量變化揭示,隨時(shí)間的推移,版本更新條目的數(shù)目持續(xù)增多.原因可能是,移動(dòng)應(yīng)用的用戶(hù)數(shù)量在增加,用戶(hù)的個(gè)性化需求也越來(lái)越多,移動(dòng)應(yīng)用需要通過(guò)更頻繁的更新、更豐富的更新內(nèi)容以快速滿足用戶(hù)需求,以達(dá)到維持現(xiàn)有用戶(hù)和吸引潛在用戶(hù)的目的.
從移動(dòng)應(yīng)用所屬類(lèi)別的角度來(lái)探索移動(dòng)應(yīng)用的演化趨勢(shì)時(shí),作者發(fā)現(xiàn):相對(duì)于社交和閱讀類(lèi)移動(dòng)應(yīng)用,旅游類(lèi)應(yīng)用發(fā)布的版本更新條目更多.原因可能是旅游類(lèi)應(yīng)用通常與其他類(lèi)別的移動(dòng)應(yīng)用關(guān)系有更緊密的關(guān)聯(lián),故需要發(fā)布更多數(shù)量的版本更新條目以與其他應(yīng)用進(jìn)行協(xié)調(diào).
根據(jù)與各需求類(lèi)型相關(guān)的版本更新條目數(shù)量的占比和變化情況可以發(fā)現(xiàn):從整體上看,F(xiàn)R相關(guān)的版本更新條目數(shù)量比NFR相關(guān)的增長(zhǎng)更快,原因可能是用戶(hù)不斷地期望有新功能對(duì)應(yīng)用進(jìn)行擴(kuò)展.然而,該結(jié)論因移動(dòng)應(yīng)用的類(lèi)型不同而有所差異:對(duì)于閱讀類(lèi)移動(dòng)應(yīng)用而言,NFR類(lèi)型更新的數(shù)量大于FR類(lèi)型的更新數(shù)量;而對(duì)于社交類(lèi)和旅游類(lèi)移動(dòng)應(yīng)用而言,F(xiàn)R類(lèi)型的版本更新數(shù)量略大于NFR類(lèi)型的更新數(shù)量.原因可能是,閱讀類(lèi)應(yīng)用的功能相對(duì)專(zhuān)一,與其他類(lèi)別應(yīng)用的交互較少,故更側(cè)重于改善用戶(hù)體驗(yàn).
根據(jù)不同需求類(lèi)型版本更新日志中的熱詞及其出現(xiàn)次數(shù)的變換情況可以發(fā)現(xiàn):首先,由于在標(biāo)注指南中指定的特征詞大部分都包含在采用TF-IDF提取的特征詞中,基于NB(BC)的半自動(dòng)方法可極大地減少制定人工標(biāo)注指南的時(shí)間和人力成本.其次,不同類(lèi)型(如3.3.2節(jié)中的FR和“可用性”)的版本更新日志所包含熱詞的出現(xiàn)頻次隨時(shí)間的變化趨勢(shì)不同.一方面,同一類(lèi)型版本更新日志中不同熱詞出現(xiàn)次數(shù)隨時(shí)間的變化趨勢(shì)表明了開(kāi)發(fā)者在描述移動(dòng)應(yīng)用版本更新內(nèi)容時(shí)的用詞偏好,可用于指導(dǎo)版本更新日志內(nèi)容的撰寫(xiě)以最大程度吸引用戶(hù)的關(guān)注.另一方面,考慮不同類(lèi)型熱詞的綜合熱度,“可用性”類(lèi)熱詞熱度的攀升以及FR類(lèi)熱詞熱度的降低說(shuō)明質(zhì)量屬性正逐漸成為開(kāi)發(fā)者發(fā)布版本更新日志的重要關(guān)注點(diǎn).
本文的研究結(jié)果由于5個(gè)方面的原因存在一定的局限性.
1) 數(shù)據(jù)集所涉及的移動(dòng)應(yīng)用類(lèi)別僅有3類(lèi).作為探索性研究,這3種移動(dòng)應(yīng)用類(lèi)別的選擇策略(見(jiàn)2.2節(jié))在一定程度上保證了樣本的均衡性,但3.3節(jié)的實(shí)驗(yàn)結(jié)果和結(jié)論僅能展現(xiàn)移動(dòng)應(yīng)用市場(chǎng)中部分類(lèi)別的移動(dòng)應(yīng)用的演化趨勢(shì),不能完整準(zhǔn)確地代表移動(dòng)應(yīng)用市場(chǎng)的整體特點(diǎn)和變化.文獻(xiàn)[16]曾指出,如果選擇和收集蘋(píng)果App Store中其他類(lèi)別應(yīng)用的版本更新記錄進(jìn)行實(shí)驗(yàn),其結(jié)果或許有所不同,故擴(kuò)大移動(dòng)應(yīng)用數(shù)據(jù)集的類(lèi)別將是本文下一步的研究工作之一.此外,所有的版本更新日志均來(lái)源于蘋(píng)果App Store.從其他移動(dòng)應(yīng)用市場(chǎng)(如Google Play)中收集移動(dòng)應(yīng)用的版本更新記錄進(jìn)行處理和分析,會(huì)極大增強(qiáng)本文結(jié)論的通用性.
2) 本研究中作為監(jiān)督式機(jī)器學(xué)習(xí)算法訓(xùn)練集的3 034條版本更新條目是由2位計(jì)算機(jī)專(zhuān)業(yè)本科生分析和標(biāo)注.為了得到高質(zhì)量的標(biāo)注并以此為基礎(chǔ)進(jìn)行分析,作者采取的措施有:在人工標(biāo)注之前,2位標(biāo)注者從本科的專(zhuān)業(yè)課程中學(xué)習(xí)了需求工程和軟件工程的知識(shí)體系.考慮標(biāo)注的過(guò)程,本文進(jìn)行了2輪預(yù)標(biāo)注,以幫助2位標(biāo)注者對(duì)不同類(lèi)型需求(特別是NFR)的含義和理解達(dá)成共識(shí).如2.4節(jié)所述,兩輪預(yù)標(biāo)注的一致性分別為第1輪63%,第2輪73%.該過(guò)程可以幫助確定并完善人工標(biāo)注指南,以便進(jìn)一步對(duì)其他版本更新日志進(jìn)行標(biāo)注.同時(shí),第2作者和第3作者不僅參與了2輪預(yù)標(biāo)注過(guò)程中不一致意見(jiàn)的討論和決策,還通過(guò)隨機(jī)抽取少量樣本的方式對(duì)3 034條版本更新條目的人工標(biāo)注結(jié)果進(jìn)行了正確性檢驗(yàn),以保證分析過(guò)程和結(jié)論的質(zhì)量.
3) 本文3.1節(jié)的所有實(shí)驗(yàn)均在Weka中完成.Weka是用Java語(yǔ)言編寫(xiě)的機(jī)器學(xué)習(xí)工具套件.如果用不同的語(yǔ)言(如Python)對(duì)3種分類(lèi)算法進(jìn)行實(shí)現(xiàn),則版本更新日志的自動(dòng)分類(lèi)結(jié)果可能有所不同.因此,如何保證不同語(yǔ)言的算法實(shí)現(xiàn)所得到分類(lèi)結(jié)果的一致性還有待進(jìn)一步研究與分析.
4) 版本更新記錄是一種易獲取且數(shù)據(jù)質(zhì)量較高的公開(kāi)數(shù)據(jù)源,從開(kāi)發(fā)者的角度展示了移動(dòng)應(yīng)用更新的主要特點(diǎn).理論上,可以為研究和分析移動(dòng)應(yīng)用的演化趨勢(shì)提供高質(zhì)量的數(shù)據(jù)支持.然而在實(shí)驗(yàn)數(shù)據(jù)的收集和分析過(guò)程中,作者發(fā)現(xiàn),部分趨于成熟的移動(dòng)應(yīng)用在一定時(shí)間段內(nèi)發(fā)布的多個(gè)版本更新記錄不僅具有相同的內(nèi)容,且其內(nèi)容多為無(wú)意義的信息,這對(duì)基于版本更新記錄的移動(dòng)應(yīng)用演化趨勢(shì)分析提出了挑戰(zhàn).而對(duì)于版本更新記錄詳盡的移動(dòng)應(yīng)用而言,使用本文提供的方法能夠在較短時(shí)間內(nèi)了解和掌握其演化的特點(diǎn)和趨勢(shì).鑒于此,作者擬進(jìn)一步研究,在基于版本更新記錄分析移動(dòng)應(yīng)用演化趨勢(shì)中移動(dòng)應(yīng)用類(lèi)型、應(yīng)用綜合評(píng)分等因素對(duì)分析結(jié)果的影響.
5) 本文3.2節(jié)中對(duì)移動(dòng)應(yīng)用演化特點(diǎn)的分析和研究分別基于應(yīng)用RF(MC)和NB(BC)對(duì)版本更新條目進(jìn)行自動(dòng)分類(lèi)的結(jié)果.鑒于上述人工標(biāo)注過(guò)程存在的問(wèn)題以及上述2種分類(lèi)算法準(zhǔn)確率(詳見(jiàn)表2),基于該自動(dòng)分類(lèi)結(jié)果得到的移動(dòng)應(yīng)用演化趨勢(shì)未必能反映出移動(dòng)應(yīng)用的真實(shí)更新趨勢(shì).如果改進(jìn)分類(lèi)器以得到更好的分類(lèi)效果,或?qū)F(MC)NB(BC)生成的需求類(lèi)型進(jìn)行人工復(fù)核,移動(dòng)應(yīng)用演化趨勢(shì)分析的準(zhǔn)確性將得到進(jìn)一步提高.
本文從需求工程的角度,研究和分析了蘋(píng)果App Store中3個(gè)類(lèi)別60個(gè)移動(dòng)應(yīng)用的版本更新日志及其內(nèi)容,發(fā)現(xiàn)與功能需求和非功能需求相關(guān)的更新條目數(shù)量接近.
本研究涉及旅游、社交和閱讀這3個(gè)類(lèi)別的移動(dòng)應(yīng)用,探討了如何利用監(jiān)督式機(jī)器學(xué)習(xí)算法促進(jìn)版本更新日志的自動(dòng)分類(lèi),以降低人工標(biāo)注的成本,幫助移動(dòng)應(yīng)用開(kāi)發(fā)者快速了解和分析特定類(lèi)別的移動(dòng)應(yīng)用更新的趨勢(shì).
下一步計(jì)劃擴(kuò)大研究范圍,引入其他類(lèi)別的移動(dòng)應(yīng)用(如蘋(píng)果App Store和Google Play中健康和教育類(lèi)應(yīng)用)并考慮中國(guó)移動(dòng)應(yīng)用市場(chǎng)(如華為應(yīng)用市場(chǎng)和小米應(yīng)用市場(chǎng)),以提高對(duì)整個(gè)移動(dòng)應(yīng)用市場(chǎng)整體特點(diǎn)和演化趨勢(shì)分析的準(zhǔn)確性以及研究結(jié)果的普適性.同時(shí),還計(jì)劃向本文所分析的移動(dòng)應(yīng)用的開(kāi)發(fā)人員進(jìn)行調(diào)研,以探索本研究結(jié)果的正確性和有效性及其對(duì)移動(dòng)應(yīng)用發(fā)布工程的影響.再者,除了采用有監(jiān)督的分類(lèi)方法外,還將基于人工標(biāo)注數(shù)據(jù)所得到的標(biāo)注指南,探索相應(yīng)的啟發(fā)式分類(lèi)算法,以提高版本更新日志的自動(dòng)分類(lèi)效果.