虚拟团队的领导角色与成员互动之社会网路分析-淡江大学.doc

上传人:rrsccc 文档编号:11046377 上传时间:2021-06-21 格式:DOC 页数:68 大小:1.06MB
返回 下载 相关 举报
虚拟团队的领导角色与成员互动之社会网路分析-淡江大学.doc_第1页
第1页 / 共68页
虚拟团队的领导角色与成员互动之社会网路分析-淡江大学.doc_第2页
第2页 / 共68页
虚拟团队的领导角色与成员互动之社会网路分析-淡江大学.doc_第3页
第3页 / 共68页
虚拟团队的领导角色与成员互动之社会网路分析-淡江大学.doc_第4页
第4页 / 共68页
虚拟团队的领导角色与成员互动之社会网路分析-淡江大学.doc_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《虚拟团队的领导角色与成员互动之社会网路分析-淡江大学.doc》由会员分享,可在线阅读,更多相关《虚拟团队的领导角色与成员互动之社会网路分析-淡江大学.doc(68页珍藏版)》请在三一文库上搜索。

1、淡江大學資訊管理學系碩士班 碩士論文 指導教授:魏世杰 博士 學 生 程 式 碼 相 似 度 之 研 究 以 抄 襲 偵 測 之 應 用 為 例 Research on Detection of Similarity in Student Programs with Application to Detection of Plagiarism 研究生: 林世唐 撰 中華民國 94 年 6 月 誌謝 本文順完成,最重要的是要感謝我的指導教授魏世杰 師這給 予我的指導,不辭辛苦的跟我討論論文的研究,並給予我很多寶貴的 意見和指正。也非常感謝三位口試委員陳安斌 老師、陳彥良老師和 梁恩輝老師提供我論

2、文上的指正和改進,讓我的論文能夠更加完整。 再者,要感謝714的同學和淡江學弟妹們,謝謝大家一起陪我熬夜做 研究,讓我們渡過了最堅難的日子。 另外,感謝陶笛界的朋友,包括山莊的朋友和國北師的學生,謝謝你 們用音樂替我打氣,讓我能專心一致的研究論文。 最後要感謝我親愛的家人,爸爸、媽媽和妹妹,謝謝你們一直支持我 走我想走的路和做我想做的事。 林世唐 謹於 私立淡江大學 中華民國九十四月二十日 I 論文名稱論文名稱 : 學生程式碼相似度之研究學生程式碼相似度之研究以抄襲偵測之應用為例以抄襲偵測之應用為例 頁數頁數 : 57 校系所組別校系所組別 : 淡江大學資訊管理學系碩士班 畢業時間及提要別畢業

3、時間及提要別 : 九十三學年度第二學期碩士學位論文提要 研究生研究生 : 林世唐 指導教授指導教授 : 魏世杰 博士 論文提要論文提要內內容容: 程式的相似判斷不像文字那麼複雜,比起文字的語法來說,程式的文法更有 規則性。程式相似判斷的應用上有很多方面,在實際教學應用上,最常用來作抄 襲的檢測。但我們發現在可以參考範例的考試或作業下,可能因為修改自相同的 範例程式,因此雖然找出大量相似片段組,但有很多相似是因為參考範例本身而 相似,不具抄襲意義。另一方面,在資訊檢索領域有 IDF (Inverse Document Frequency, 反轉文件頻率法)的概念,發生頻率高的片段較不具意義,發生

4、頻率低 的片段較具意義。因此我們提出以 IDF 為主的新方法,幫助我們找出發生頻率低 的相似片段組,視為較有抄襲可能性之片段。並用開放式(open book)的一次考試 和一次作業程式來作驗證。 關鍵字:程式比對、結構度量、抄襲偵測、反轉文件頻率法 II Title of Thesis: Research on Detection of Similarity in Student Programs with Application to Detection of Plagiarism Keywords: Program Compare,Structure Metric, Plagiarism

5、Detection, Inverse Document Frequency Total Page:57 Name of Institute: Graduate Institute of Information Management Tamkang University Graduate Date: June, 2005 Degree Conferred: Master Name of Student: Lin Shih-Tang 林 世 唐 Advisor: Dr. Wei Shih-Chieh 魏 世 杰 博 士 Abstract: Similarity detection on progr

6、ams is simpler than on text documents. Compared to text documents, the grammar used in program languages is easier to define. As a result, more and more applications are developed to detect program similarity. One practical use of these appications is to detect plagiarism for educational purposes. I

7、n particular, when students have test or homework on programs where they can open books to consult the examples, they may copy from the example programs without much thinking and rewriting. In this case, we will find many similar code tiles that are copied from the same example but of little value i

8、n plagiarism detection. So in this paper based on the IDF (Inverse Document Frequency) concept from information retrieval ,we propose a new method to reduce the influence of high frequency code tiles, and compare with traditional non-IDF result using the datasets from an open- book program test and

9、a homework. III 目錄目錄 第一章第一章 緒論緒論.1 第一節 動機與目的.1 第二節 論文貢獻.2 第三節 論文章節概要.2 第二章第二章 文獻探討文獻探討.4 第一節 屬性比對.4 第二節 結構度量(STRUCTURE METRIC).5 第三章第三章 相似度與抄襲的定義相似度與抄襲的定義.11 第一節 程式碼相似度的比對.11 第二節 程式相似度的應用.11 第三節 程式相似度在抄襲的運用.12 第四章第四章 問題定義與實驗限制問題定義與實驗限制.15 第一節 程式相似範圍定義.15 第二節 YAP 在可參考範例下的誤判.15 第三節 引入 IDF 的概念.15 第四節 引

10、入曾氏演算法.16 第五節 實驗限制.16 第六節 利用相似度來做抄襲判斷.17 第五章第五章 系統架構系統架構.18 第一節 系統模組圖.19 第二節 參數設定.20 第三節 前處理:程式轉為符號序列.21 第四節 比對過程:曾氏演算法.21 第五節 評分公式.22 第六章第六章 實驗結果分析與討論實驗結果分析與討論.25 第一節 能力分析.25 第二節 抄襲片段排名分析.28 第三節 召回率和準確率計算.32 第七章第七章 結論與未來研究方向結論與未來研究方向.33 IV 表格目錄表格目錄 表格 一 結構度量常用系統方法之比較 .9 表格 二 結構度量常用系統能力之比較 .9 表格 三 不

11、同最小比對長度值下本系統與 YAP 的比較 .27 表格 四 兩系統與人工的排名差異量 .29 表格 五 考試程式用本系統和 YAP 做出的前 40 名片段 .29 表格 六 作業程式用本系統和 YAP 做出的前 40 名片段 .31 表格 七 召回率和準確率計算結果 .32 V 圖形目錄圖形目錄 圖一:FAIDHI的六個等級程式改寫 .14 圖二:系統模組圖.19 圖三:相似門檻值和有效相似門檻值區間.20 圖四:最小比對長度=7 下,與第 1 支程式的相似度.27 圖五:最小比對長度=7 下,與第 8 支程式的相似度.28 圖六:最小比對長度=7 下,與第 15 支程式的相似度.28 1

12、一一一 緒論緒論 一一一 動機與目的動機與目的 抄襲一直是學校電腦教育中,很重要的議題,尤其在程式語言課程上,抄襲 的行為更為嚴重。過去有很多的研究文獻,討論如何去預防和檢測學生的考試和 作業,避免學生有抄襲的行為。預防通常是著重在管理面上,透過事先告知學生 什麼是抄襲的行為,並花時間宣導討論,最好能展示抄襲的例子,讓學生可以加 以避免觸犯。 而在檢測上,通常是比較困難的部份,尤其是當一個班級人數多時,每次要 比對 50 幾份至 100 多份的程式,單純靠人工的比對,往往會發生混亂的,而且是 相當累人的一件工作。因此這個檢測的工作可以交由程式來完成,而學生的程式 或作業通常會出現的抄襲範圍只包

13、含到語法上的相近,對於語義上的抄襲,應被 視為一種已學習的成果。所以對於程式的語法上比對,用簡單的工具就可以來完 成了。 目前程式比對的工具相當多,他們利用各種文字比對的方法,將程式視為兩 段文字序列,來判斷兩隻程式的相似度,如果兩隻程式的相似度過高,則可以判 斷他們之間具有較高的抄襲可能性。比對工具會回報給使用者,再讓使用者去判 斷兩隻程式之間是否有抄襲的行為。有些工具經過前處理後,對於做了註解或變 數命名等的簡單改寫的程式,仍可以檢測。 然而,雖然已經有這麼方便的工具,可以幫助做抄襲的檢測,但我們在實際 教學時仍然遇到難題。因為大部分的程式寫作需要參考書本上的資料,或網路上 的文件。因此程

14、式課程的考試,常常是採開放方式(open book)。程式課程的作業, 也大部分是跟課本範例類似的習題。在這樣的環境下,學生可以去參考課本範例, 或是網路上的範例,而在我們無法掌握這些範例程式來源,使用一般的比對工具, 所找出來的大量相似程式,事實上可能是因為他們都參考了同一個範例,因此有 很高度的相似性。但這樣的參考是我們所允許的,所以不能算是抄襲。而目前的 工具都無法有效區別實際抄襲和這些假抄襲的不同。因此在本論文中利用抄襲 2 具有少部分特有相似的特性,排除因大量被參考的範例造成的高相似度的誤判。 幫助我們在檢測抄襲時,能更加準確且有效。 一一一 論文貢獻論文貢獻 一般來說,學生程式的抄

15、襲比對工具,是利用程式之間的相似度去做判斷。 但在有參考範例之下的作業或考試,對參考同一來源的程式,相似度都相當高, 容易收集到無用的資訊。我們利用關鍵字粹取的方法,取得每一種片段被多少隻 程式所共同擁有。利用抄襲的特性,我們找出現頻率低,但長度長的片段,作為 具有高可能性的抄襲片段。 一一一 論文章節概要論文章節概要 本篇文主要可以分成下幾個章節,內容大綱如下: 第一章: 緒論 介紹本論文解決的問題和貢獻 第二章: 文獻探討 探討目前常見的比對方法和抄襲檢測工具,並分析各種工具的能力和優缺 點。 第三章: 相似度與抄襲定義 分別對我們論文的相似度和抄襲範圍做定義。 第四章: 問題定義與實驗限

16、制 詳細解我們要解決的問題,以及我們系統的實驗限制和解決問題的範圍。 第五章: 系統架構與參數設定 明系統的架構以及所用到的參數設定和評估值的計算。 第章: 實驗結果分析與討論 3 分析我們系統與對照系統的實驗結果,並討論系統的效應。 第七章: 結論與未來研究方向 對本文實驗結果下結以及未系統可以改進的目標。 4 一一一透過網路溝通管道的虛擬團隊領導、信任和團隊 效能之相關性研究-以學習任務導向之虛擬團隊為例 一一一 The Effects of Leadership and Trust on the Performance of Virtual Learning Teams 一一一 一一一效

17、果(Is the trust a moderating or independent factor on the team effectiveness? No need to mention leadership for now.)。 一一一Jarvenpaa and Leidner (1999)歸納團隊發展時期 有哪些溝通行為和成員活動可以促進 一一一快速信任(swift trust)建立和持續維護信任關係, 正面領導就是其一要素,團隊領導者必須能夠整合團 隊與網路資源,督促並鼓勵團隊成員。Zaccaro(2002) 也認為虛擬團隊領導人是團隊信任的滋潤劑。在虛擬 團隊裡領導者是核心,促進溝

18、通並建立團隊歷程,背 負著任務完成的責任(Duarte and Tennant-Snyder,1999)。 David(2003/2004)用行動學習方法歸納虛擬團隊領導 人與成員關係建立模型,領導人是關係中介者,進 行任務前要建立關係,對成員更多了解、親近、信任、 動機,才有較佳的工作關係,對未來再度合作也有助 益。所以本研究欲進一步探討領導效能對團隊信任的 影響(need to make a stronger case by stating early work 5 has not addressed leadership style as the antecedents of trust

19、 and their effects on performance in virtual teams.) Try to be specific! 一一一 David(2001)於網路和傳統(電話)溝通管道幫助 虛擬團隊建立關係研究中指出,不同的溝通管道有不 同的效果,溝通管道的選擇與使用跟環境、擁有的資 源和關係的欲達程度有關,因此本研究將探討網路溝 通管道對領導效能及信任關係的影響(Virtual teams can be operated via different media. Yet, it is unclear if the choice of media has any effec

20、t on the leadership, trust or both.) 一一一領導效能如何影響團隊信任 一一一領導效能、團隊信任與團隊效能之相關性 一一一網路溝通管道是否會影響領導效能與團隊信任 一一一 文獻探討文獻探討 Clough1曾在他的文章中提過,比對程式比起比對自然語言的文件簡單多 了,因為程式的文法書可以完全的定義出來,但自然語言則複雜多了。Clough 的 文章也提及到數個當時已存在的程式比對方法20,大致可以區分為兩類:一是 屬性比對3481017,一是結構度量261315162122,亦有綜合兩種 的7 1118。 一一一 屬性比對屬性比對 Sallis 等人將 Cloug

21、h 所提到的屬性比對的方法縮小範圍,用六個維度來代表 6 出程式相似的程度。這六個值很清楚的刻晝出程式的特性,僅管是一佪長程式可 能有很多的屬性值,都可以用這六個元素表達出來,因此極具有代表性。 一、取一、取值值(Volume) 用 Halstead9的 sofeware science matrics 可以量化演算法,並且所得到的值 可以用來代表此演算法的大小。因此,我們要先求出底下六個值: n1(單獨或唯一的運算子個數) n2(單獨或唯一的運算元個數) N1(全部使用到的運算子個數) N2(全部使用到的運算元個數) n=n1+n2(字詞數) N=N1+N2(執行長度) 接著就可以求出一個

22、V 值: V = N log2 n 而這個 V 值就可以用來代表一隻程式的屬性。 二、結構二、結構(Structure) 這個元素利用某些指標表示出模組間相聯的程度,這可以提供程式的資料 和控制轉變的表象。 三、資料相依三、資料相依(Data Dependency) 藉由程式流程圖的描繪出來,資料之間的相依性可以用敘述或變數定義的 方式,記錄在節點內。記錄的方式可以採用 Bieman 和 Debanth 的 Generalised Program Graph(GPG)的格式。 四、迴圈深度四、迴圈深度(Nesting Depth) 計算程式的平均迴圈深度只需統計每一行程式碼的深度,再把這些總數

23、除 7 以程式的總行數即可。 五、控制結構五、控制結構(Control Structure) 將程式中所有發生的控制結構給予一個比重,然後對所有的程式都可以計 數出一個比重值,這個值就可以用來代表程式的複雜度。 六、控制流程六、控制流程(Control Flow) 控制流程可以採用 McCabes Cyclomatic Complexity 來計算,此演算法需先 把程式碼轉換成單一進單一出的程式結構圖,因此他是與程式語言相關的。 屬性比對的方法具有簡單且可快速比對的特性,對於兩隻程式的整體比較 相當的方便,可惜他所得的資訊是屬於整體的,對於實際那一段落有相似,並無 法顯示出來,所以我們可以改用

24、結構度量的方式來比對。 一一一也就是透過網路溝通管道(科技子系統)的虛擬團 隊領導、信任(社會子系統)和團隊效能(團隊績效與合作滿意 度)之相關性研究。 一一一 結構度量結構度量(Structure Metric) 字串結構的方式,是從本文比對的方法延用過來的。底下是幾個過去使用過 的方法: 一、一、DotPlot DotPlot 可以用視覺化的方式呈現兩個片段程式的比對狀況。因為他不受限 於特定的程式,因此並不需要去了解程式語言本身的語法和語義。DotPlot 最大 的功用在於幫助使用者去利用視覺化系統去找出成對的部分。雖然如此,但此系 統也只能幫助找出相似的部分,卻無法對結果做量化,這也造

25、成他的缺點。 二、二、MOSS(Measure Of Software Similarity) moss16是一種將程式的符號字串(token string),每相鄰的 k 個符號合併計 8 算一個雜湊值,也就是如果有 n 個符號,就可以計算出 n-1 個雜湊值,每一個雜 湊值都隱藏著一些資訊,包括他在程式的位置和他的內容等,從這些雜湊值集合 選擇他的部分子集合做為指紋(fingerprinter),例如,取雜湊值可以被 4 整除的。 依照雜湊的原理,不相同的子串得到相同的雜湊值的碰撞機率是很小的。因此, 如果兩隻程式有一個或更多個雜湊值相同,那他就有 k-gram 的相同性。 三、三、YAP

26、(Yet Another Plague) YAP72122是一套可以偵測程式中可能抄襲的片段,目前最新版本是 YAP3。此系統背後的演算法可以幫助我們找出程式中相似的部份。最新的 YAP3 所使用的演算法是 Running-Karp-Rabin Greedy-String-Tiling(RKR-GST),而 RKR 是用來最佳化 GST 的演算法的速度,使其執行的複雜度為 O3。GST 則是實際比 對出兩隻程式相似部分的演算法。 GST 的演算法分為兩個階段,一個是前處理階段,負責把來源和目標程式碼 做轉換以下的工作: 移除註解和固定字串 轉換大寫字母為小寫字母 將同義字對應到一般格式(如 f

27、unction 轉換為 procedure) 依照呼叫的順序重新排列 function 的次序。並把第一次呼叫到的 function 展開,之後的呼叫則以 FUN 替代。 移除非程式語言字彙的字 第二個階段則是對來源和目標程式做比對。正式引用 GST 演算法的地方, 他有幾個基本概念: 片段(tile)是來自來源和目標的程式一對一成對的子字串。 當一個符號成為片段的一部份,我們稱他被標記(marked)了 Maximal Match(MaxM)類似片段,但是他只是從來源和目標程式得來的 一個暫時成對子字串。 Minimal Match Length(MinML)定義為搜尋出最小片段長度,而比

28、9 MinML 小的片段都將被乎略。 GST 演算法所要做的工作,就是找出來源和目標程式的最大片段。首先找出 來源和目標程式中相同而不重疊,且大於 MinML 的子字串,接著再將片段能覆 蓋到的符號擴到最大數量。 四、四、JPlag JPlag1315與 YAP 的方法相似,核心都採用了 GST 演算法的方式,但在 符號化(tokenizer)的部分,JPlag 不像 YAP 單純的只保留下關鍵字(keyword)和運 算子,他還對符號上做了一些集合的處理。 前處理: 前處理的部分是跟要比對的語言相關的,目前能處理的只有三種語言,包括 Java 和 Scheme 可以做”full”的的集合轉換

29、。而 C 和 C+可以做到” scanner- based”的集合轉換(只有做符號取代)。 在符號選擇上,JPlag 排除了空白,註解,和變數命名。並將語義的概念放入 符號中,舉例來說,他用 BEGIN_METHOD 的符號來代替函式開頭的大括號,這 樣子可以避免潛在的假相似造成的誤判。 比對: JPlag 的比對方式是使用 GST 的演算法,找出兩個符號文字序列中最長的相 似片段。可以分成兩個步驟: 步驟 1:在這個步驟裡,要找出兩個字串最長的連續片段。他做了三次的迴圈, 第一次對 A 程式做掃瞄,並記錄所有的片段,第二次對 B 做掃瞄並找出出相同 的片段,當找到相同的片段,則進入內迴圈去延

30、伸片段到最大的相同長度。 步驟 2:第二步,把第一步找到的片段標記起來,並重複第一步比對,而標記 起來的部分,就不會再第一步時再使用到,這樣可以確保所找到的片段不會重複 使用到。 JPlag 是一套線上使用的系統,所有的程式必須上傳至 JPlag 的主機去比對, JPlag 再透過網頁的方式顯現出來。 10 五、五、SID(Software Integrity Diagnosis system) 由 Chen2等人所提出的,一種利用壓縮方式,來找出程式相似片段的方法。 基本上他與 YAP 和 JPlag 一樣,都可以分成兩階段,第一階段也是將程式轉換成 符號字串,第二階段則不是像 YAP 用

31、GST 演算法做文字的比對,而是利用壓縮 器(compressor)找出兩隻程式相似的片段。他的演算法如下: Input:一個符號字串 s Output:Comp(s)及相同的片段組 i=0; 一個空的 buffer B; while(i 0) EncodeRepeatPair(p, compFile); i=i+p.length; OutputRepeatPair(p, repFile); else AppendCharToBuffer(si,B); i+; EncodeLiteralZone(B, compFile); return Comp(s)=compFile.filesize 及在

32、 repFile 的相同片段組 SID 的方法可以避免因大量插入無意義的敘述,如 int x=1 等。對 MOSS 或 JPlag,可能都會造成偵測不出來,但 SID 可以解決這樣的問題。 六、六、SIM(software SIMilarity tester) SIM6的系統是由 Gitchel 等人所提出的,他利用 DNA 比對上常用的序列 排比(alignment)方式,來計算兩隻程式之間的相似性。序列排比2324的方法有 11 很多種,例如”masters”和”stars”兩個字串的排比可以為 masters 或 masters sta rs stars 分別給每個成對的字元分數,相同為

33、 m,不同為 d,空白為 g,最佳的排比是 能找出所得的分數最高的,利用得到的分數,可以比較兩隻程式的相似性。 七、各系統比較七、各系統比較 表格 結構度量常用系統方法之比較 DotPlotMossSIMJPlagSIDYAP本系統 前處理斷字詞斷字詞 取關鍵字 和運算子 結構標記 替換 取關鍵字 和運算子 取關鍵字 和運算子 分類關鍵字 和運算子 比對法 人工比對g-gram edit- distance GST壓縮法GST曾氏19 分析文 法程度 無低低高低低低 表格 結構度量常用系統能力之比較 DotPlotMossSIMJPlagSIDYAP本系統 改寫註解XXOOOOO 變數命名XX

34、OOOOO 更改順序XOX部分O部分部分 更換型別XXXOXXO 插入無用敘 述 XXO部分O部分部分 更改迴圈寫 法 XXXXXXX 更改選擇結 構寫法 XXXXXXX 12 表格 和表格 為現行常用的結構度量的程式比對工具之比較。在比對方法 上,DotPlot 和 MOSS 的前處理,都只是單純的將程式做斷字詞,而 SID,SIM 和 YAP 會對斷出來的字詞做篩選,只保留程式的關鍵特性字。而 JPlag 則會對斷出 來的字詞依內容做文法上的改寫。而分析文法程度這項,則是看前處理對符號化 的過程是否有考慮到程式語法的結構性,程度高在能力上會比較精準,但在運用 到不同語言上,也相對的較不方便

35、。在能力的比較部分,YAP 和 JPlag 在某些狀 況下更改順序和插入無用敘述會破壞比對的結果。 以屬性方法去判斷相似程度,雖然速度較快,通用性較高,但他只能對兩隻 程式做相似性,並無法確切找出可能相似的地方在那裡。而利用結構度量則可以 找出實際可能相似的片段,對我們在檢視程式上更加有用。以上結構度量的工具 適用在簡單的程式寫法上的比對,最常被用來做為學生程式的抄襲偵測之用。 13 一一一 相似度與抄襲的定義相似度與抄襲的定義 一一一 程式碼相似度的比對程式碼相似度的比對 在程式碼比對的研究文獻上,比文字比對還要來得多。主要的原因是程式的 比對比自然語言來得容易。程式語言的複雜文法可以被定義

36、出來,而自然語言的 文法,則複雜且不確定多了,因此在比對上有比較高的難度。 與文字比對一樣,我們對程式碼的比對,也可以區分在只是語彙上的比對, 或是文義上的比對。程式語彙上的比對與文字的語彙比對相近,是以字詞為單位, 找出來源程式與比對程式之間相同的部分。而單純的使用程式的語彙來做比對, 會受到更改註解或更改變數名稱的影響。因此許多比對的工具,會選擇有用的字 詞來做比對,最常見的是使用程式特有的保留字和運算元等。對註解或變數名稱 則在前處理時,將其捨棄或做一致性的改寫,再將處理後的字串序列送到文字比 對器去比對。如此可以避免一些等級低的程式改寫。 另一種以結構去分析的程式碼相似度,必須將程式碼轉換成結構圖或流程 圖,再將來源程式和比對程式的流程圖,依節點互相比對,找出最接近的兩個節 點。利用流程圖,比單純用語彙的比對來得精確多了,對於程式的控制流程或是 迴圈被改寫,也能判斷出他們具有相似性。利用節點的比對,可以知道每個節點 所做的工作,並且比對兩個節點的工作內容是否有相同,因此有對程式功能性的 相似做判斷。然而結構上的比對程序上比較複雜,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1