一種基于知識(shí)社群的在線源碼協(xié)同分析和分享方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明涉及一種基于知識(shí)社群的在線源碼協(xié)同分析和分享方法及裝置,該方法的步驟包括:1)知識(shí)社群認(rèn)證和源碼協(xié)同分析平臺(tái)建設(shè):通過(guò)知識(shí)社群認(rèn)證接口綁定現(xiàn)有開(kāi)源社區(qū)的用戶并初始化社區(qū)成員權(quán)限,構(gòu)建包含現(xiàn)有熱門(mén)開(kāi)源軟件的源碼上下文環(huán)境,解析其中文件所包含的編程要素并創(chuàng)建相應(yīng)的知識(shí)庫(kù)詞條入口,提供源碼和詞條關(guān)聯(lián)機(jī)制;2)在線源碼協(xié)同分析:社群成員利用在線協(xié)同分析環(huán)境進(jìn)行相關(guān)源碼上下文環(huán)境中的源碼分析和多歷史版本的詞條編輯;3)知識(shí)集成與分享:社群成員按照貢獻(xiàn)程度有差別的分享和利用知識(shí)。本發(fā)明充分利用知識(shí)社群集中了開(kāi)源軟件開(kāi)發(fā)者和愛(ài)好者,滿足了社群成員便捷的知識(shí)創(chuàng)建、知識(shí)創(chuàng)新、快速查詢(xún)、分享和利用的需求。
【專(zhuān)利說(shuō)明】—種基于知識(shí)社群的在線源碼協(xié)同分析和分享方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及在線源碼協(xié)同分析環(huán)境的建設(shè)和使用技術(shù),特別涉及基于知識(shí)社群和知識(shí)庫(kù)的源碼協(xié)同分析和分享方法,提出了一種實(shí)用的社交網(wǎng)絡(luò)下基于知識(shí)社群的源代碼協(xié)同分析和分享方法,以及采用該方法的裝置。
【背景技術(shù)】
[0002]知識(shí)社群是指員工自發(fā)組成的知識(shí)創(chuàng)新和分享的團(tuán)體,其凝聚的力量是人與人之間的信任或者共同的興趣。社群成員可自行決定是否要積極參與活動(dòng)、樂(lè)于分享經(jīng)驗(yàn)和知識(shí)、自發(fā)地交換意見(jiàn)與觀念、互相教導(dǎo)和學(xué)習(xí)、分享外部的新知、并從知識(shí)的傳播中得到知識(shí)積累和自我提升。知識(shí)社群最能發(fā)揮內(nèi)隱知識(shí)的傳遞和知識(shí)的創(chuàng)新,最終形成了人脈關(guān)系、人力資源、知識(shí)資源的寶貴積累。
[0003]隨著社交網(wǎng)絡(luò)的發(fā)展,新型社交網(wǎng)絡(luò)所產(chǎn)生的隱性知識(shí)社群為特定領(lǐng)域的知識(shí)創(chuàng)建、知識(shí)傳播和知識(shí)管理提供了核心運(yùn)作機(jī)制?!懊嫦蛑R(shí)社群的協(xié)作式知識(shí)交流”和“波特蘭模式知識(shí)庫(kù)”等理念也被廣泛應(yīng)用于實(shí)踐。例如著名的知識(shí)性站點(diǎn)維基百科、百度百科、互動(dòng)百科等。其中維基百科上的英文詞條積累到了三千多萬(wàn)個(gè),內(nèi)容涉及自然,科學(xué),人文地理等等領(lǐng)域,包羅萬(wàn)象。這種知識(shí)性站點(diǎn)絕對(duì)是百科全書(shū)式知識(shí)庫(kù)領(lǐng)域的佼佼者,但是在開(kāi)源軟件源碼系統(tǒng)性、全面的分析和安全、性能評(píng)估等方面的知識(shí),現(xiàn)有的社區(qū)和站點(diǎn)都很難達(dá)到。
[0004]源碼是構(gòu)建計(jì)算機(jī)科學(xué)的血肉之軀,其數(shù)量在持續(xù)呈現(xiàn)爆炸式的增長(zhǎng),其代碼行中蘊(yùn)藏著大量的隱性知識(shí)。如何把其中的隱性知識(shí)外化,將精華提取出來(lái)并實(shí)現(xiàn)知識(shí)的創(chuàng)新和分享一直是開(kāi)源軟件的魅力所在,同時(shí)也是難點(diǎn)所在。在開(kāi)源軟件領(lǐng)域,Iinux社區(qū)、android社區(qū)、開(kāi)源中國(guó)社區(qū)、cnopenlinux開(kāi)源社區(qū),以及一些問(wèn)答型社區(qū)Stack0verflOW、LKML等都聚集了很多開(kāi)源軟件的開(kāi)發(fā)者和愛(ài)好者。也集中了不同程度源碼分析的討論,成果的表現(xiàn)形式包括技術(shù)報(bào)告和問(wèn)題討論等,都是比較零散的。這些社區(qū)因?yàn)槿狈ο到y(tǒng)化的支撐工具,不能全面、深入的針對(duì)特定開(kāi)源軟件(例如linux、android、hadoop等)做分析注釋?zhuān)膊荒苄纬上到y(tǒng)的知識(shí)生成、創(chuàng)新和共享。
[0005]就像學(xué)習(xí)語(yǔ)言需要語(yǔ)言環(huán)境一樣,分析源碼需要源碼上下文環(huán)境。源碼是一個(gè)有邏輯的整體,單個(gè)的算法和函數(shù)只有在具體的上下文中才有實(shí)際的意義。描述和分析源碼不能脫離源碼,要真正吃透源碼需要做到深入源碼、逐行分析、持續(xù)積累。本發(fā)明提出的基于知識(shí)社群的在線源碼協(xié)同分析和分享方法彌補(bǔ)了這一空缺。本發(fā)明提供了一種實(shí)用的社交網(wǎng)絡(luò)下基于知識(shí)社群的開(kāi)源軟件分析和分享方法。在知識(shí)社群的引導(dǎo)下可以很好的聚集共同興趣點(diǎn)的社區(qū)成員,成員之間通過(guò)在線協(xié)同的方式進(jìn)行源碼分析,對(duì)分析成果進(jìn)行分享,傳播和再創(chuàng)造。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于提供一種基于知識(shí)社群的在線源碼協(xié)同分析和分享方法,以及相應(yīng)的裝置,利用協(xié)同環(huán)境提供的源碼和詞條關(guān)聯(lián)機(jī)制,進(jìn)行相關(guān)源碼上下文環(huán)境中的源碼分析和多歷史版本的詞條知識(shí)創(chuàng)建、知識(shí)創(chuàng)新和知識(shí)管理,最終形成熱門(mén)開(kāi)源軟件源碼功能描述、性能描述、安全描述等相關(guān)知識(shí)的知識(shí)庫(kù)。
[0007]本發(fā)明的基于知識(shí)社群的在線源碼協(xié)同分析和分享方法,其步驟包括:
[0008]I)知識(shí)社群認(rèn)證和源碼協(xié)同分析平臺(tái)建設(shè):通過(guò)知識(shí)社群認(rèn)證接口綁定現(xiàn)有開(kāi)源社區(qū)的用戶并初始化社區(qū)成員權(quán)限,通過(guò)源碼解析引擎構(gòu)建包含現(xiàn)有熱門(mén)開(kāi)源軟件的源碼上下文環(huán)境,進(jìn)而通過(guò)解析源代碼文件及其上下文所包含的編程要素并創(chuàng)建相應(yīng)的知識(shí)庫(kù)詞條入口,形成在線協(xié)同分析環(huán)境,并提供源碼和詞條關(guān)聯(lián)機(jī)制;
[0009]2)在線源碼協(xié)同分析:利用所述在線協(xié)同分析環(huán)境,社群成員進(jìn)行相關(guān)源碼上下文環(huán)境中的源碼分析和多歷史版本的詞條編輯,通過(guò)持續(xù)創(chuàng)建詞條不斷擴(kuò)大知識(shí)庫(kù);
[0010]3)知識(shí)集成與分享:通過(guò)保留每個(gè)詞條的所有歷史版本,將成熟詞條進(jìn)行集成和鎖定,社群成員按照貢獻(xiàn)程度有差別地分享和利用知識(shí)。
[0011]進(jìn)一步地,步驟I)中知識(shí)社群認(rèn)證和源碼協(xié)同分析平臺(tái)建設(shè)的具體步驟包括:
[0012]Ia)用戶利用社群認(rèn)證接口注冊(cè)會(huì)員或綁定其他社區(qū)已有賬號(hào),系統(tǒng)將初始化成員權(quán)限,驗(yàn)證通過(guò)后,用戶進(jìn)入在線源碼協(xié)同分析環(huán)境;
[0013]Ib)查看是否存在待分析源碼及所需版本,如果存在則跳轉(zhuǎn)到Id),否則跳轉(zhuǎn)到Ic);
[0014]Ic)不存在待分析源碼及所需版本時(shí),用戶加入對(duì)應(yīng)的源碼,協(xié)同環(huán)境解析該源碼包含的標(biāo)識(shí)符并自動(dòng)創(chuàng)建對(duì)應(yīng)的詞條入口 ;
[0015]Id)在協(xié)同環(huán)境中進(jìn)行源碼分析或詞條查看。
[0016]進(jìn)一步地,步驟2)使用協(xié)同環(huán)境進(jìn)行在線源碼協(xié)同分析的具體步驟包括:
[0017]2a)社群成員根據(jù)興趣點(diǎn)分析特定源碼及版本;
[0018]2b)利用協(xié)同環(huán)境提供的上下文具體分析標(biāo)識(shí)符;
[0019]2c)查看對(duì)應(yīng)的詞條是否已經(jīng)存在,如果不存在則跳轉(zhuǎn)到2d),存在則跳轉(zhuǎn)到2e);
[0020]2d)創(chuàng)建該詞條的內(nèi)容,完成該步驟后跳轉(zhuǎn)到2g);
[0021]2e)如果該詞條已經(jīng)存在,則判斷該詞條是否已經(jīng)成熟被鎖定,是否有權(quán)限更新,如果可更新則跳轉(zhuǎn)到2f),否則跳轉(zhuǎn)到2b)繼續(xù)分析和完善其他詞條;
[0022]2f)更新該詞條內(nèi)容,完成該步驟后跳轉(zhuǎn)到2g);
[0023]2g)將創(chuàng)建或更新后的詞條加入到知識(shí)庫(kù)。
[0024]進(jìn)一步地,步驟3)進(jìn)行知識(shí)集成與分享的具體步驟包括:
[0025]3a)社群成員利用協(xié)同上下文環(huán)境選擇需要分享的詞條;
[0026]3b)查看系統(tǒng)提供的該詞條是否存在,如果存在則跳轉(zhuǎn)至3c),否則跳轉(zhuǎn)到3a)選擇其他詞條;
[0027]3c)系統(tǒng)判斷該用戶等級(jí)是否具有分享該詞條的權(quán)限,是則跳轉(zhuǎn)至3d),否則跳轉(zhuǎn)到3a)選擇其他詞條;
[0028]3d)成員判定該詞條是否為成熟詞條,如果是則跳轉(zhuǎn)至3e),否則跳轉(zhuǎn)到3a)選擇其他詞條;
[0029]3e)成員集成并鎖定該詞條,然后執(zhí)行3f);
[0030]3f)成員設(shè)定該詞條的分享級(jí)別,整個(gè)流程結(jié)束。[0031]基于同一發(fā)明構(gòu)思,本發(fā)明還提供實(shí)現(xiàn)上述方法的裝置,該裝置包括客戶端設(shè)備和協(xié)同分析系統(tǒng),其間通過(guò)網(wǎng)絡(luò)建立通信連接;
[0032]所述客戶端設(shè)備包含用于訪問(wèn)所述協(xié)同分析系統(tǒng)的應(yīng)用程序;
[0033]所述協(xié)同分析系統(tǒng)包含:
[0034]因特網(wǎng)服務(wù)器,用于進(jìn)行網(wǎng)絡(luò)通信;
[0035]數(shù)據(jù)庫(kù),用于存儲(chǔ)協(xié)同分析環(huán)境所需的源碼信息、相應(yīng)的詞條信息以及用戶信息;
[0036]協(xié)同分析環(huán)境服務(wù)器,用于生成基于知識(shí)社群的在線源碼協(xié)同分析環(huán)境的Web頁(yè)面,并提供用戶協(xié)同分析服務(wù)和分享服務(wù)。
[0037]具體來(lái)說(shuō),所述協(xié)同分析環(huán)境服務(wù)器搭載基于知識(shí)社群的在線源碼協(xié)同分析和分享主體環(huán)境,具體而言,其提供的知識(shí)社群認(rèn)證接口服務(wù)、源碼解析服務(wù)支撐上述步驟I)知識(shí)社群認(rèn)證和源碼協(xié)同分析平臺(tái)建設(shè);協(xié)同分析環(huán)境服務(wù)器連同數(shù)據(jù)庫(kù)服務(wù)器和因特網(wǎng)服務(wù)器將頁(yè)面和服務(wù)傳遞給客戶端供用戶進(jìn)行步驟2)在線源碼協(xié)同分析和步驟3)知識(shí)集成與分享。
[0038]進(jìn)一步地,所述客戶端設(shè)備包括處理器、存儲(chǔ)器、網(wǎng)絡(luò)接口、顯示設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)、輸入設(shè)備以及可選外圍設(shè)備,可以是任何類(lèi)型的基于處理器的設(shè)備,如個(gè)人計(jì)算機(jī)、智能手機(jī)和平板電腦等。所述客戶端中用于訪問(wèn)協(xié)同分析系統(tǒng)的應(yīng)用程序是瀏覽器,或者其它類(lèi)似應(yīng)用程序。
[0039]進(jìn)一步地,所述協(xié)同分析系統(tǒng)中的數(shù)據(jù)庫(kù)可以實(shí)現(xiàn)為一個(gè)或者多個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)、輕量級(jí)數(shù)據(jù)庫(kù)訪問(wèn)協(xié)議(LDAP)、或其他數(shù)據(jù)庫(kù),或者是使用其他數(shù)據(jù)庫(kù)架構(gòu)來(lái)實(shí)現(xiàn)。數(shù)據(jù)庫(kù)主要用于存儲(chǔ)協(xié)同分析環(huán)境所需的源碼信息、相應(yīng)的詞條信息、用戶信
肩、O
[0040]進(jìn)一步地,所述協(xié)同分析環(huán)境服務(wù)器提供HTML(超文本標(biāo)記語(yǔ)言)、圖像、腳本語(yǔ)言(例如,JavaScript、Perl)供客戶端設(shè)備上的瀏覽器解釋執(zhí)行。
[0041]本發(fā)明包括知識(shí)社群認(rèn)證和源碼協(xié)同分析環(huán)境建設(shè)、在線源碼協(xié)同分析、知識(shí)集成與分享三個(gè)主要階段。通過(guò)知識(shí)社群認(rèn)證,聚集開(kāi)源軟件的開(kāi)發(fā)者和愛(ài)好者,搭建開(kāi)源軟件源碼上下文環(huán)境和詞條關(guān)聯(lián)機(jī)制。通過(guò)在線源碼協(xié)同分析階段,社群成員進(jìn)行多歷史版本的詞條知識(shí)創(chuàng)建,知識(shí)庫(kù)得到了積累和豐富。通過(guò)知識(shí)集成與分享階段,成熟知識(shí)被鎖定和固化,知識(shí)庫(kù)得到核心積累和沉淀。社群成員根據(jù)權(quán)限分享現(xiàn)有的知識(shí)并不斷進(jìn)行知識(shí)創(chuàng)新和再豐富,形成知識(shí)庫(kù)的螺旋型增長(zhǎng)。
[0042]本發(fā)明可將開(kāi)源軟件領(lǐng)域個(gè)人和源代碼中的隱性知識(shí)外化,完成知識(shí)生成、知識(shí)創(chuàng)新和分享利用的過(guò)程。本發(fā)明克服了現(xiàn)有開(kāi)源社區(qū)源碼分析相關(guān)知識(shí)零散、脫離源碼上下文環(huán)境、不易檢索查詢(xún)和分享利用等困難,充分利用知識(shí)社群集中了開(kāi)源軟件開(kāi)發(fā)者和愛(ài)好者,滿足了社群成員便捷的知識(shí)創(chuàng)建、知識(shí)創(chuàng)新、快速查詢(xún)、分享和利用的需求。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0043]圖1是基于知識(shí)社群的在線源碼協(xié)同分析和分享方法的實(shí)現(xiàn)裝置架構(gòu)圖。
[0044]圖2是基于知識(shí)社群的在線源碼協(xié)同分析和分享方法的模型圖。
[0045]圖3是知識(shí)社群認(rèn)證和源碼協(xié)同分析環(huán)境搭建流程圖。[0046]圖4是在線協(xié)同分析流程圖。
[0047]圖5是知識(shí)庫(kù)集成與分享流程圖。
[0048]圖6是實(shí)施示例圖。
[0049]圖7是實(shí)施例中的函數(shù)調(diào)用圖。
【具體實(shí)施方式】
[0050]下面通過(guò)實(shí)施例和附圖,對(duì)本發(fā)明作進(jìn)一步的說(shuō)明,但不以任何方式限制本發(fā)明的范圍。
[0051]圖1是本發(fā)明的基于知識(shí)社群的在線源碼協(xié)同分析和分享方法的實(shí)現(xiàn)裝置圖。該裝置包括客戶端和協(xié)同分析系統(tǒng),其間通過(guò)網(wǎng)絡(luò)連接。其中:
[0052]客戶端用于訪問(wèn)協(xié)同分析系統(tǒng),包含瀏覽器或者用于訪問(wèn)協(xié)同分析系統(tǒng)的類(lèi)似應(yīng)用程序??蛻舳嗽O(shè)備包括處理器、存儲(chǔ)器、網(wǎng)絡(luò)接口、顯示設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)、輸入設(shè)備以及可選外圍設(shè)備,可以是任何類(lèi)型的基于處理器的設(shè)備(如個(gè)人計(jì)算、智能手機(jī)和平板電腦)。
[0053]協(xié)同分析系統(tǒng)包含支持網(wǎng)絡(luò)通信的因特網(wǎng)服務(wù)器、用于數(shù)據(jù)存貯的數(shù)據(jù)庫(kù)和協(xié)同分析環(huán)境服務(wù)器。協(xié)同分析環(huán)境服務(wù)器生成基于知識(shí)社群的在線源碼協(xié)同分析環(huán)境,生成并且服務(wù)于分析平臺(tái)web頁(yè)面。其提供HTML(超文本標(biāo)記語(yǔ)言)、圖像、腳本語(yǔ)言(例如,JavaScript, Perl)供客戶端設(shè)備上的瀏覽器解釋執(zhí)行。數(shù)據(jù)庫(kù)可以實(shí)現(xiàn)為一個(gè)或者多個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)、輕量級(jí)數(shù)據(jù)庫(kù)訪問(wèn)協(xié)議(LDAP)、或其他數(shù)據(jù)庫(kù),或者是使用其他數(shù)據(jù)庫(kù)架構(gòu)來(lái)實(shí)現(xiàn)。數(shù)據(jù)庫(kù)主要用于存儲(chǔ)協(xié)同分析環(huán)境所需的源碼信息、相應(yīng)的詞條信息、用戶信息。
[0054]通過(guò)網(wǎng)絡(luò)支持圖1中所示的實(shí)體之間的數(shù)據(jù)通信。網(wǎng)絡(luò)通常包括與因特網(wǎng)通信的局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)的某些組合,其使用標(biāo)準(zhǔn)通信技術(shù)或協(xié)議。這些網(wǎng)絡(luò)中任何網(wǎng)絡(luò)的部分可以是有線的或者無(wú)線的,其使用相關(guān)聯(lián)的技術(shù)(例如,以太網(wǎng)、802.11)和協(xié)議(例如,TCP/IP、HTTP、和FTP)。通過(guò)網(wǎng)絡(luò)交換的數(shù)據(jù)可以使用包括超文本標(biāo)記語(yǔ)言(HTML)、可擴(kuò)展標(biāo)記語(yǔ)言(XML)、簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)和/或其他格式的技術(shù)和/或格式來(lái)表示。另外,所有或者某些鏈接可以使用諸如安全套接字層(SSL)、因特網(wǎng)協(xié)議安全(IPsec)、安全HTTP和/或虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)的傳統(tǒng)加密技術(shù)來(lái)進(jìn)行加密。
[0055]圖2是本發(fā)明的基于知識(shí)社群的在線源碼協(xié)同分析和分享方法的模型圖,主要包括知識(shí)社群認(rèn)證和源碼協(xié)同分析環(huán)境建設(shè)、在線源碼協(xié)同分析、知識(shí)集成與分享三個(gè)主要階段。通過(guò)知識(shí)社群認(rèn)證,聚集開(kāi)源軟件的開(kāi)發(fā)者和愛(ài)好者,搭建開(kāi)源軟件源碼上下文環(huán)境和詞條關(guān)聯(lián)機(jī)制。通過(guò)在線源碼協(xié)同分析階段,社群成員進(jìn)行多歷史版本的詞條知識(shí)創(chuàng)建,知識(shí)庫(kù)得到了積累和豐富。通過(guò)知識(shí)集成與分享階段,成熟知識(shí)被鎖定和固化,知識(shí)庫(kù)得到核心積累和沉淀。社群成員根據(jù)權(quán)限分享現(xiàn)有的知識(shí)并不斷進(jìn)行知識(shí)創(chuàng)新和再豐富,形成知識(shí)庫(kù)的螺旋型增長(zhǎng)。
[0056]1.知識(shí)社群認(rèn)證和源碼協(xié)同分析環(huán)境建設(shè)階段
[0057]通過(guò)知識(shí)社群認(rèn)證接口綁定其他開(kāi)源社區(qū)用戶并初始化社區(qū)成員權(quán)限。用戶可選擇游客或注冊(cè)會(huì)員綁定其他社區(qū)已有賬號(hào)的方式進(jìn)入知識(shí)社群。知識(shí)社群將用戶權(quán)限分為5級(jí),詞條分享級(jí)別也設(shè)為5級(jí)。用戶權(quán)限從I?5級(jí)遞增。詞條分享級(jí)別從I?5級(jí)遞增。在其它實(shí)施例中也可以設(shè)置其它數(shù)量的級(jí)別。
[0058]I級(jí)用戶為游客,擁有讀I級(jí)詞條的權(quán)限。無(wú)編輯權(quán)限。
[0059]2級(jí)用戶為初級(jí)會(huì)員,擁有讀寫(xiě)I~2級(jí)詞條的權(quán)限。
[0060]3級(jí)用戶為中級(jí)會(huì)員,擁有讀寫(xiě)I~3級(jí)詞條的權(quán)限,鎖定I~3級(jí)詞條和設(shè)置詞條分孚級(jí)別的權(quán)限。
[0061]4級(jí)用戶為高級(jí)會(huì)員,擁有讀寫(xiě)I~4級(jí)詞條的權(quán)限,鎖定I~4級(jí)詞條和設(shè)置詞條分孚級(jí)別的權(quán)限。
[0062]5級(jí)用戶為領(lǐng)域?qū)<?,可讀寫(xiě)所有詞條和修改詞條分享級(jí)別等所有操作。
[0063]另設(shè)一類(lèi)用戶為系統(tǒng)管理員,可進(jìn)行會(huì)員行為監(jiān)測(cè)和用戶權(quán)限管理等系統(tǒng)維護(hù)工作。
[0064]初始注冊(cè)會(huì)員為2級(jí)用戶,擁有社區(qū)積分20分。通過(guò)創(chuàng)建有效詞條和在線時(shí)間積累積分,當(dāng)用戶積分超過(guò)1000分,可升級(jí)為3級(jí)用戶。當(dāng)用戶積分超過(guò)10000分可升級(jí)為4級(jí)用戶,當(dāng)用戶積分超過(guò)100000分可升級(jí)為5級(jí)用戶。新建的詞條分享級(jí)別為I級(jí),只有3級(jí)及以上用戶能修改詞條分享級(jí)別。
[0065]構(gòu)建包含現(xiàn)有熱門(mén)開(kāi)源軟件,例如涵蓋linux、android、hadoop等軟件的源碼上下文環(huán)境,解析其中文件所包含的編程要素并創(chuàng)建相應(yīng)的知識(shí)庫(kù)詞條入口,提供源碼和詞條關(guān)聯(lián)機(jī)制。
[0066]圖3是知識(shí)社群認(rèn)證和源碼協(xié)同分析環(huán)境建設(shè)的流程圖,具體說(shuō)明如下:
[0067]Ia)用戶注冊(cè)會(huì)員或通過(guò)特定接口綁定其他社區(qū)已有賬號(hào)。系統(tǒng)將初始化成員權(quán)限,初始注冊(cè)會(huì)員的用戶權(quán)限為2級(jí)。
`[0068]Ib)用戶提供驗(yàn)證信息(用戶名,密碼)登陸知識(shí)社群網(wǎng)站。
[0069]Ic)驗(yàn)證通過(guò),用戶進(jìn)入在線源碼協(xié)同分析環(huán)境進(jìn)行源碼分析。
[0070]Id)是否存在待分析源碼及所需版本?如果存在跳轉(zhuǎn)到Ig),否則跳轉(zhuǎn)到Ie)。
[0071]Ie)源碼不存在。用戶加入對(duì)應(yīng)源碼。
[0072]If)系統(tǒng)針對(duì)該源碼建立源碼協(xié)同分析環(huán)境,包括以下步驟:
[0073]i解析該源碼中包含的標(biāo)識(shí)符,解析出類(lèi)型主要包括:函數(shù)、類(lèi)、結(jié)構(gòu)體、宏定義、全局變量等。
[0074]?為每個(gè)標(biāo)識(shí)符創(chuàng)建對(duì)應(yīng)的詞條入口。
[0075]Ig)源碼存在。用戶進(jìn)行源碼分析或者詞條查看。
[0076]2.在線源碼協(xié)同分析階段
[0077]用戶可選擇感興趣的開(kāi)源軟件特定版本進(jìn)行源碼分析注釋?zhuān)芍R(shí)庫(kù)中的詞條,每個(gè)詞條對(duì)應(yīng)特定版本源代碼中的一個(gè)標(biāo)識(shí)符(例如類(lèi),函數(shù),變量,宏等等)。
[0078]多個(gè)用戶可以協(xié)同對(duì)詞條進(jìn)行新建,修改,補(bǔ)充等操作,從而產(chǎn)生多個(gè)分析歷史版本,每個(gè)成熟的詞條都會(huì)被鎖定為一個(gè)基準(zhǔn)版并設(shè)置分享級(jí)別。知識(shí)庫(kù)是所有詞條的集合,核心是成熟詞條的集合,它保留每個(gè)詞條的所有歷史版本,記錄了每個(gè)用戶的貢獻(xiàn)。通過(guò)這個(gè)互動(dòng)的方式,知識(shí)庫(kù)不斷擴(kuò)大,詞條不斷創(chuàng)建、成熟完善,整體開(kāi)源軟件分析知識(shí)得以系統(tǒng)性積累。
[0079]圖4是在線源碼協(xié)同分析的流程圖,具體說(shuō)明如下:
[0080]2a)用戶查閱特定源碼及所需版本,找到興趣點(diǎn)。[0081]2b)用戶閱讀源代碼文件所涵蓋的標(biāo)識(shí)符,并選擇特定標(biāo)識(shí)符進(jìn)行分析。系統(tǒng)將自動(dòng)創(chuàng)建對(duì)應(yīng)的詞條鏈接。
[0082]2c)該源碼標(biāo)識(shí)符對(duì)應(yīng)詞條是否存在?如果已經(jīng)存在跳轉(zhuǎn)到2e),否則跳轉(zhuǎn)到2d)。
[0083]2d)該詞條不存在。系統(tǒng)將注釋內(nèi)容生成新的詞條錄入知識(shí)庫(kù),形成該詞條的第一版,初始化詞條分享級(jí)別為I。需要編輯的詞條內(nèi)容有源碼名稱(chēng)、源碼版本、標(biāo)識(shí)符全路徑、標(biāo)識(shí)符名稱(chēng)、標(biāo)識(shí)符類(lèi)型、所在行號(hào)、功能描述、性能描述、安全描述等。
[0084]2e)該詞條存在。該詞條是否被鎖定,并且用戶是否有權(quán)限更新?如果能更新跳轉(zhuǎn)到2g),否則跳轉(zhuǎn)到2f)。
[0085]2f)該詞條已經(jīng)被鎖定或者用戶無(wú)權(quán)限。無(wú)法編輯詞條。跳回2a)重新選擇。
[0086]2g)該詞條未被鎖定且用戶有權(quán)限。用戶修改全部或者部分詞條中的內(nèi)容。系統(tǒng)將修改后的詞條內(nèi)容錄入知識(shí)庫(kù)中,生成詞條的最新版本,并保留歷史版本。
[0087]3.知識(shí)集成和分享階段
[0088]秉承知識(shí)由用戶創(chuàng)建,也由用戶按照貢獻(xiàn)程度有差別的分享和利用,全部知識(shí)由全體用戶所有的理念。在線源碼協(xié)同分析階段產(chǎn)生的各種成熟詞條是分享和利用的主體,只有3級(jí)用戶及其以上才擁有鎖定一個(gè)成熟詞條并設(shè)置其分享級(jí)別的權(quán)限。詞條鎖定后,在未被解鎖之前將只能被瀏覽,不能再被修改。
[0089]圖5是知識(shí)集成與分享的流程圖,具體說(shuō)明如下:
[0090]3a)用戶從源碼協(xié)同環(huán)境分析源碼,選擇知識(shí)庫(kù)中待分享詞條。
[0091]3b)該詞條是否存在?如果詞條存在跳轉(zhuǎn)到3d),否則跳轉(zhuǎn)到3c)。
[0092]3c)詞條不存在。跳回3a)重新選擇。
[0093]3d)詞條存在。判斷用戶是否有權(quán)限鎖定該詞條,如果有權(quán)限跳轉(zhuǎn)到3f),否則跳轉(zhuǎn)到3e)。
[0094]3e)用戶沒(méi)有相應(yīng)權(quán)限。跳回3a)重新選擇。
[0095]3f)用戶有相應(yīng)權(quán)限。詞條是否成熟?如果已經(jīng)成熟跳轉(zhuǎn)到3h)。否則跳轉(zhuǎn)到3g)。
[0096]3g)詞條尚不成熟。不進(jìn)行鎖定,繼續(xù)開(kāi)放詞條編輯權(quán)限。跳回3a)重新選擇。
[0097]3h)詞條已經(jīng)成熟。集成并鎖定詞條,關(guān)閉詞條編輯權(quán)限。
[0098]3i)判斷詞條重要性,為詞條設(shè)置分享級(jí)別。
[0099]下面結(jié)合圖6的實(shí)施示例圖和具體實(shí)例對(duì)上述方法做進(jìn)一步說(shuō)明。
[0100]設(shè)定如下用戶信息和使用場(chǎng)景:用戶userl具有2級(jí)權(quán)限,欲閱讀和分析已有詞條/mm/slub.c/cmpxchg_double_slab (0405) (linux-3.5.4)。用戶 user2 具有 4 級(jí)權(quán)限,欲鎖定已有詞條/mm/slub.c/cmpxchg_double_slab (0405) (linux-3.5.4)。實(shí)施步驟如下:
[0101]I)知識(shí)社群認(rèn)證和在線源碼協(xié)同分析環(huán)境搭建:
[0102]首先用戶userl和用戶userf分別通過(guò)社群認(rèn)證接口進(jìn)入源碼協(xié)同分析環(huán)境,用戶userl查找linux-3.5.4,發(fā)現(xiàn)平臺(tái)中沒(méi)有該源碼版本。該用戶上傳源碼Linux-3.5.4,協(xié)同環(huán)境根據(jù)用戶上傳的源碼自動(dòng)進(jìn)行標(biāo)識(shí)符(函數(shù)、類(lèi)、結(jié)構(gòu)體、宏定義、全局變量等)解析并創(chuàng)建對(duì)應(yīng)詞條的入口。用戶userl,user2可以繼續(xù)分析linux-3.5.4源碼或者查看其它源碼的已有詞條。
[0103]2)在線源碼協(xié)同分析:[0104]userl檢索Linux源碼目錄樹(shù),在目錄/mm/下找到slub.c文件。通過(guò)閱讀源碼文件選擇標(biāo)識(shí)符cmpxchg_double_slab經(jīng)行分析。該標(biāo)識(shí)符對(duì)應(yīng)詞條已經(jīng)存在,系統(tǒng)從知識(shí)庫(kù)中調(diào)出該詞條的最新版本。系統(tǒng)驗(yàn)證userl有權(quán)限讀寫(xiě)該詞條。userl閱讀已有的詞條 /mm/slub.c/cmpxchg_double_slab (0405) (linux-3.5.4),并根據(jù)自己的分析結(jié)果編輯/修改詞條。詞條主要內(nèi)容示例見(jiàn)表I。系統(tǒng)將userl對(duì)詞條的修改存入知識(shí)庫(kù),形成詞條的新版本。
[0105]表1.詞條/mm/slub.c/cmpxchg_double_slab (0405) (linux-3.5.4)的內(nèi)容
[0106]
源碼名稱(chēng)/mm/sliib.c/cmpxchg double slab(0405)(lini3x-3.5.4)
源碼版本linux-3.5.4
標(biāo)識(shí)符全路徑/mm/slub-c標(biāo)識(shí)符名稱(chēng) empxehg double slab
標(biāo)識(shí)符類(lèi)型 al
[0107]
【權(quán)利要求】
1.一種基于知識(shí)社群的在線源碼協(xié)同分析和分享方法,包括以下步驟: 1)通過(guò)知識(shí)社群認(rèn)證接口綁定現(xiàn)有開(kāi)源社區(qū)的用戶并初始化社區(qū)成員權(quán)限,通過(guò)源碼解析引擎構(gòu)建包含現(xiàn)有開(kāi)源軟件的源碼上下文環(huán)境,進(jìn)而通過(guò)解析源代碼文件及其上下文所包含的編程要素并創(chuàng)建相應(yīng)的知識(shí)庫(kù)詞條入口,形成在線協(xié)同分析環(huán)境,并提供源碼和詞條關(guān)聯(lián)機(jī)制; 2)利用在線協(xié)同分析環(huán)境,社群成員進(jìn)行相關(guān)源碼上下文環(huán)境中的源碼分析和多歷史版本的詞條編輯,通過(guò)持續(xù)創(chuàng)建詞條不斷擴(kuò)大知識(shí)庫(kù); 3)通過(guò)保留每個(gè)詞條的所有歷史版本,將成熟詞條進(jìn)行集成和鎖定,社群成員按照貢獻(xiàn)程度有差別地分享和利用知識(shí)。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟I)的具體步驟包括: Ia)用戶利用社群認(rèn)證接口注冊(cè)會(huì)員或綁定其他社區(qū)已有賬號(hào),系統(tǒng)將初始化成員權(quán)限,驗(yàn)證通過(guò)后,用戶進(jìn)入在線源碼協(xié)同分析環(huán)境; Ib)查看是否存在待分析源碼及所需版本,如果存在則跳轉(zhuǎn)到Id),否則跳轉(zhuǎn)到Ic);Ic)不存在待分析源碼及所需版本時(shí),用戶加入對(duì)應(yīng)的源碼,協(xié)同環(huán)境解析該源碼包含的標(biāo)識(shí)符并自動(dòng)創(chuàng)建對(duì)應(yīng)的詞條入口 ; Id)在協(xié)同環(huán)境中進(jìn)行源碼分析或詞條查看。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟2)的具體步驟包括: 2a)社群成員根據(jù)興趣點(diǎn)分析特定源碼及版本; 2b)利用協(xié)同環(huán)境提供的 上下文具體分析標(biāo)識(shí)符; 2c)查看對(duì)應(yīng)的詞條是否已經(jīng)存在,如果不存在則跳轉(zhuǎn)到2d),存在則跳轉(zhuǎn)到2e); 2d)創(chuàng)建該詞條的內(nèi)容,完成該步驟后跳轉(zhuǎn)到2g); 2e)如果該詞條已經(jīng)存在,則判斷該詞條是否已經(jīng)成熟被鎖定,是否有權(quán)限更新,如果可更新則跳轉(zhuǎn)到2f),否則跳轉(zhuǎn)到2b)繼續(xù)分析和完善其他詞條; 2f)更新該詞條內(nèi)容,完成該步驟后跳轉(zhuǎn)到2g); 2g)將創(chuàng)建或更新后的詞條加入到知識(shí)庫(kù)。
4.如權(quán)利要求3所述的方法,其特征在于:步驟2d)所述創(chuàng)建詞條的內(nèi)容,是創(chuàng)建詞條格式要求的部分內(nèi)容,或者創(chuàng)建全部?jī)?nèi)容;步驟2f)所述更新該詞條內(nèi)容,是更新已有部分的內(nèi)容,或者編輯和補(bǔ)充空白部分的內(nèi)容。
5.如權(quán)利要求4所述的方法,其特征在于,所述詞條內(nèi)容包括:源碼名稱(chēng)、源碼版本、標(biāo)識(shí)符全路徑、標(biāo)識(shí)符名稱(chēng)、標(biāo)識(shí)符類(lèi)型、所在行號(hào)、功能描述、性能描述、安全描述。
6.如權(quán)利要求1所述的方法,其特征在于,所述步驟3)的具體步驟包括: 3a)社群成員利用協(xié)同上下文環(huán)境選擇需要分享的詞條; 3b)查看系統(tǒng)提供的該詞條是否存在,如果存在則跳轉(zhuǎn)至3c),否則跳轉(zhuǎn)到3a)選擇其他詞條; 3c)系統(tǒng)判斷該用戶等級(jí)是否具有分享該詞條的權(quán)限,是則跳轉(zhuǎn)至3d),否則跳轉(zhuǎn)到3a)選擇其他詞條; 3d)成員判定該詞條是否為成熟詞條,如果是則跳轉(zhuǎn)至3e),否則跳轉(zhuǎn)到3a)選擇其他詞條; 3e)成員集成并鎖定該詞條,然后執(zhí)行3f);3f)成員設(shè)定該詞條的分享級(jí)別,整個(gè)流程結(jié)束。
7.如權(quán)利要求1所述的方法,其特征在于,步驟I)所述現(xiàn)有熱門(mén)開(kāi)源軟件包括=Linux軟件、Android軟件、Hadoop軟件;所述編程要素包括:函數(shù)、類(lèi)、結(jié)構(gòu)體、宏定義、全局變量。
8.如權(quán)利要求1所述的方法,其特征在于,步驟I)中知識(shí)社群將用戶權(quán)限分為5級(jí),用戶權(quán)限從I~5級(jí)遞增;詞條分享級(jí)別也設(shè)為5級(jí),詞條分享級(jí)別從I~5級(jí)遞增;具體包括: I級(jí)用戶為游客,擁有讀I級(jí)詞條的權(quán)限,無(wú)編輯權(quán)限; 2級(jí)用戶為初級(jí)會(huì)員,擁有讀寫(xiě)I~2級(jí)詞條的權(quán)限; 3級(jí)用戶為中級(jí)會(huì)員,擁有讀寫(xiě)I~3級(jí)詞條的權(quán)限,鎖定I~3級(jí)詞條和設(shè)置詞條分孚級(jí)別的權(quán)限; 4級(jí)用戶為高級(jí)會(huì)員,擁有讀寫(xiě)I~4級(jí)詞條的權(quán)限,鎖定I~4級(jí)詞條和設(shè)置詞條分孚級(jí)別的權(quán)限; 5級(jí)用戶為領(lǐng)域?qū)<遥勺x寫(xiě)所有詞條和修改詞條分享級(jí)別等所有操作; 另設(shè)一類(lèi)用戶為系統(tǒng)管理員,進(jìn)行會(huì)員行為監(jiān)測(cè)和用戶權(quán)限管理等系統(tǒng)維護(hù)工作。
9.一種實(shí)現(xiàn)權(quán)利要求1所述基于知識(shí)社群的在線源碼協(xié)同分析和分享方法的裝置,其特征在于,包括客戶端設(shè)備和協(xié)同分析系統(tǒng),其間通過(guò)網(wǎng)絡(luò)建立通信連接; 所述客戶端設(shè)備包含用于訪問(wèn)所述協(xié)同分析系統(tǒng)的應(yīng)用程序; 所述協(xié)同分析系統(tǒng)包含:因特網(wǎng)服務(wù)器,用于進(jìn)行網(wǎng)絡(luò)通信;數(shù)據(jù)庫(kù),用于存儲(chǔ)協(xié)同分析環(huán)境所需的源碼信息、相應(yīng)的詞條信息以及用戶信息;協(xié)同分析環(huán)境服務(wù)器,用于生成基于知識(shí)社群的在線源碼協(xié)同分析`環(huán)境的Web頁(yè)面,并提供用戶協(xié)同分析服務(wù)和分享服務(wù)。
10.如權(quán)利要求9所述的裝置,其特征在于:所述客戶端中用于訪問(wèn)協(xié)同分析系統(tǒng)的應(yīng)用程序是瀏覽器;所述協(xié)同分析系統(tǒng)中的數(shù)據(jù)庫(kù)通過(guò)一個(gè)或者多個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)或者輕量級(jí)數(shù)據(jù)庫(kù)訪問(wèn)協(xié)議實(shí)現(xiàn);所述協(xié)同分析系統(tǒng)中的協(xié)同分析環(huán)境服務(wù)器提供HTML、圖像、腳本語(yǔ)言供客戶端設(shè)備上的瀏覽器解釋執(zhí)行。
【文檔編號(hào)】G06F9/44GK103761092SQ201410025189
【公開(kāi)日】2014年4月30日 申請(qǐng)日期:2014年1月20日 優(yōu)先權(quán)日:2014年1月20日
【發(fā)明者】于佳耕, 李斌, 劉雪花, 武延軍 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所