跳到主要內容

臺灣博碩士論文加值系統

(3.237.38.244) 您好!臺灣時間:2021/07/26 10:51
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

我願授權國圖
: 
twitterline
研究生:楊泓展
研究生(外文):Hong-Zhan Yang
論文名稱:物件導向程式抄襲偵測系統之設計與實作
論文名稱(外文):The Design and Implement of Plagiarism Detection System for Object-oriented Programming Language
指導教授:郭忠義郭忠義引用關係
口試委員:薛念林陳偉凱李允中
口試日期:2012-07-05
學位類別:碩士
校院名稱:國立臺北科技大學
系所名稱:資訊工程系研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2012
畢業學年度:100
語文別:中文
論文頁數:101
中文關鍵詞:程式碼抄襲抄襲偵測程式相似度
外文關鍵詞:Programming plagiarismPlagiarism detectionProgramming similarity
相關次數:
  • 被引用被引用:0
  • 點閱點閱:236
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
本論文針對C++程式碼提出結合了結構分析、變數分析及文字分析三種方式的抄襲偵測方法,並利用此方法發展出CPD(C++ Plagiarism Detection)系統。組合多種方法的原因在於我們希望從各種不同的角度客觀地判斷抄襲的情形。另外,近幾年物件導向概念蓬勃發展,利用此概念撰寫出來的程式數量也漸趨增加,故本論文額外提出物件導向特性分析的新方法,並將其加入結構分析中,期望能夠增加偵測物件導向程式碼的準確度。最後,為了證明本論文所提出方法的有效性,將CPD系統與其他現有的系統作比較。而實驗的結果也顯示CPD系統能夠偵測出比其他現有的抄襲偵測系統更多種的抄襲行為。此外我們也將組合多種方法與採用單一方法做偵測的結果互相比較,比較的結果顯示組合多種方法可以避免單一方法其本身的缺失。最後,針對本論文額外提出的物件導向特性分析方法執行實驗,結果顯示對於物件導向程式碼來說,物件導向特性分析的確能夠增加抄襲偵測的準確率。

The purpose of this thesis is to propose the plagiarism detection approach aiming at C++ programs. The proposed approach combines three detection methods including structural analysis, variable analysis, and text analysis to construct a CPD (C++ Plagiarism Detection) system, an on-line application. The reason using a combining approach is that we hope to objectively judge plagiarism from a variety of perspective. To deserve to be mentioned, a new analysis method, object-oriented analysis, is proposed in this paper and added to structural analysis. For proving the effectiveness of the proposed approach, the CPD system was compared with other existing systems including one proprietary software and one academic research. The experimental result showed the CPD system can detect more kinds of plagiarism patterns than other existing systems. Moreover, the combining approach was also compared with every single method. Also, the result proved the proposed approach was strongly avoiding many weaknesses which are inherently possessed in every single method. Finally, object-oriented analysis is presented by an experiment.

摘 要 i
ABSTRACT ii
致謝 iii
目錄 iv
表目錄 vi
圖目錄 vii
第一章 緒論 1
1.1 前言 1
1.2 研究動機與目的 1
1.3 研究貢獻 3
1.4 章節編排 3
第二章 文獻探討 4
2.1 物件導向特性 4
2.2 F(p) algebraic expression 5
2.3 DCS Tree 8
2.4 Winnowing演算法 9
2.5 程式碼統計分析及結構表示式 10
2.6 相似度計算方法 13
2.7 JPlag系統介紹 14
2.8 AntiCutAndPaste系統介紹 16
第三章 C++抄襲偵測方法 17
3.1 結構分析 17
3.1.1 物件導向特性相似度 17
3.1.2 DCS Tree 25
3.1.3 結構相似度 26
3.2 變數分析 27
3.2.1 資料收集 27
3.2.2 資料分析 28
3.3 文字分析 29
第四章 案例研究 33
4.1 問題描述 33
4.2 系統設計 33
4.2.1 系統流程 34
4.2.2 系統架構 35
4.3 系統實作 37
4.4 實驗結果 43
4.4.1 實驗一 44
4.4.2 實驗二 46
4.4.3 實驗三 48
4.4.4 實驗四 50
4.5 相關研究比較 51
第五章 結論與未來展望 54
5.1 結論 54
5.2 未來展望 54
參考文獻 56
附錄 A 典型抄襲實驗樣本程式碼 61
附錄 B 物件導向特性實驗樣本程式碼 75

[1]B. S. Baker and U. Manber, “Deducing Similarities in Java Sources from Bytecodes,” in Proceeding of Usenix Annual Technical Conference, pp. 179-190, 1998.
[2]E. Kodhai, S. Kanmani, A. Kamatchi, R. Radhika and B. Vijaya Saranya, “CloneManager: a Tool for Detection of Type1 and Type2 Code Clones,” in Proceedings of Information Processing and Management Communications in Computer and Information Science, vol.70, pp.568-570, 2010.
[3]G. Malpohl, “JPlag: Detecting Software Plagiarism” [Online] Available: http://www.ipd.uka.de:2222/index.html.
[4]G. Cosma and M. Joy, “An Approach to Source-Code Plagiarism Detection and Investigation Using Latent Semantic Analysis,” IEEE Transactions on Computers, vol. 61, no. 3, pp. 379-394, 2012.
[5]Huiqing Li and Simon Thompson, “Similar Code Detection and Elimination for Erlang Programs,” in Proceedings of the 12th international conference on Practical Aspects of Declarative Languages, vol.5937, pp.104-118, 2010.
[6]Jong Yih Kuo and L. Chu, “Intelligent Code Analyzer for Online Course Management System,” in Proceedings of the 3rd ACIS International Conference on Software Engineering Research, Management & Applications, pp. 228-234, 2005.
[7]Jong Yih Kuo and Fu Chu Huang, “Code Analyzer for an Online Course Management System,” Journal of Systems and Software, vol. 83, pp. 2478-2486, 2010.
[8]M. Joy and M. Luck, “Plagiarism in Programming Assignment,” IEEE Transaction on Education, vol. 42, pp. 129-133, 1999.
[9]S. Schleimer, D.S. Wilkerson, and A. Aiken, “Winnowing:Local Algorithms for Document Fingerprinter,” in Proceedings of ACM SIGMOD Conference, pp. 76-85, 2003.
[10]S. Yang, X. Wang, “A Visual Domain Recognition Method Based on Function Mode for Source Code Plagiarism,” in Proceedings of Intelligent Information Technology and Security Informatics, pp. 580-584, 2010.
[11]Xin. Chen, Brent. Francia and Ming. Li, “Shared Information and Program Plagiarism Detection,” IEEE Transactions on Information Theory, vol. 50, pp. 1545-1551, 2004.
[12]J.H. Ji, G. Woo, H.G. Cho, “A Plagiarism Detection Technique for Java Program Using Bytecode Analysis,” Convergence and Hybrid Information Technology, vol. 1, pp. 1092-1098, 2008.
[13]S.M. Alzahrani, N. Salim and A. Abraham, “Understanding Plagiarism Linguistic Patterns, Textual Features, and Detection Methods,” IEEE Transactions on Systems, Man, and Cybernetics-Part C: Applications and Reviews, vol.42, no. 2, 2012.
[14]Wei Qu, Yuanyuan Jia, Michael Jiang, “Pattern Mining of Cloned Codes in Software Systems,” Information Sciences, 2010.
[15]Hao Jiang and Zhemin Jiang, “The Study of Plagiarism Detection for Program Code,“ in Proceedings of Advances In Computer Science And Education Applications Communications in Computer and Information Science, vol. 202, pp. 128-133, 2011.
[16]Enrique Flores, Alberto Barron-Cedeno, Paolo Rosso and Lidia Moreno, “Towards the Detection of Cross-Language Source Code Reuse,” Natural language processing and information systems lecture notes in computer science, vol. 6716, pp. 250-253, 2011.
[17]J. Ziv and A. Lempel, “A Universal Algorithm for Sequential Data Compression,” IEEE Transactions on Information Theory, vol. 23, pp. 337-343, 1997.
[18]M. Li and P. Vitanyi, “An Introduction to Kolmogorov Complexity and Its Applications,” New York: Springer-Verlag, 1997.
[19]Daniela Chuda and Pavol Navrat, “Support for Checking Plagiarism in E-Learning,” Procedia - Social and Behavioral Sciences, vol. 2, pp. 3140-3144, 2010.
[20]Z.A. Al-Khanjari, J.A. Fiaidhi, R.A. Al-Hinai and N.S. Kutt, “PlagDetect: a Java Programming Plagiarism Detection Tool,” ACM Inroads, vol. 1, pp.66-71, 2010.
[21]A. Register, “The Object is Integration,” IEEE Potentials, vol. 13, no. 2, pp. 37-40, 1994.
[22]A. A. R. Cockburn, “The Impact of Object-Orientation on Application Development,” IBM Systems Journal, vol. 32, no. 3, pp. 420-444, 1993.
[23]G. Suganya and S. Neduncheliyan, “A Study of Object Oriented Testing Techniques Survey and Challenges,” in Proceedings of International Conference on Innovative Computing Technologies, pp. 1-5, 2010.
[24]D. Erricolo, “C++, a Better Language for Engineering Applications,” IEEE Antennas and Propagation Magazine, vol. 42, no. 4, pp. 95-101, 2000.
[25]E.H. Khan, M. Al-A''ali and M.R. Girgis, “Object-Oriented Programming for Structured Procedural Programmers,” Computer, vol. 28, no. 10, pp. 48-57, 1995.
[26]W. Wolf, “A Practical Comparison of Two Object-Oriented Languages,” IEEE Software, vol. 6, no.5, pp. 61-68, 1989.
[27]D. Harel and O. Kupferman, “On Object Systems and Behavioral Inheritance,” IEEE Transactions on Software Engineering, vol. 28, no. 9, pp. 889-903, 2002.
[28]P. Wegner, “Dimensions of Object-Oriented Modeling,” Computer, vol. 25, no. 10, pp. 12-20, 1992.
[29]C.P. Willis, “Analysis of Inheritance and Multiple Inheritance,” Software Engineering Journal, vol. 11, no. 4, pp. 215-224, 1996.
[30]S. Prata, C++ Primer Plus, 5th ed. USA: Sams Indianapolis, 2004.
[31]G. Canfora, A. Cimitile, U. De Carlini and A. De Lucia, “An Extensible System for Source Code Analysis,” IEEE Transactions on Software Engineering, vol. 24, pp.721-740, 1998.
[32]A. Cimitile and U. De Carlini, “Reverse Eng. Algorithms for Program Graph Production,” Software Practice and Experience, pp. 519-537, 1991.
[33]A. Z. Broder, “On the Resemblance and Containment of Documents,” in Proceedings of the Compression and Complexity of Sequences, pp. 21-29, 1997.
[34]Andrei Broder, Steven Glassman, Mark Manasse and Geoffrey Zweig, “Syntactic Clustering of the Web,” in Proceedings of the Sixth International World Wide Web Conference, pp. 391-404, 1997.
[35]N. Shivakumar and H. Garc’ıa-Molina, “SCAM: a Copy Detection Mechanism for Digital Documents,” in Proceedings of the Second Annual Conference on the Theory and Practice of Digital Libraries, 1995.
[36]Richard M. Karp and Michael O. Rabin, “Efficient Randomized Pattern-Matching Algorithms,” IBM Journal of Research and Development, vol.31, pp. 249-260, 1987.
[37]Udi Manber, “Finding Similar Files in a Large File System,” in Proceedings of the USENIX Winter 1994 Technical Conference, pp. 1-10, 1994.
[38]N. Heintze, “Scalable Document Fingerprinting,” USENIX Workshop on Electronic Commerce, 1996.
[39]J. L. Donaldson, A. Lancaster and P. H. Sposato, “A Plagiarism Detection System,” in Proceedings of the 12th SIGCSE technical symposium on Computer science education, vol. 13, issue 1, pp. 21-25, 1981.
[40]http://www.winsite.com
[41]http://www.anticutandpaste.com/
[42]J. Ji, S. Park, G. Woo, H. Cho, “Understanding the Evolution Process of Program Source for Investigating Software Authorship and Plagiarism,” in Proceedings of International Conference on Digital Information Management, vol. 1, pp. 98-103, 2007.
[43]Hong Yang, Li-na Hong, Rong Chen and Ya-qing Liu, “A Method of Detecting Program Plagiarism Based on Variable Dependence,” in Proceedings of International Conference on Computational Intelligence and Software Engineering, pp. 1-4, 2009.
[44]V. Mateljan, V. Juricic and K. Peter, “Analysis of programming code similarity by using intermediate language,” in Proceedings of the 34th International Convention MIPRO, pp. 1235-1240, 2011.

電子全文 電子全文(本篇電子全文限研究生所屬學校校內系統及IP範圍內開放)
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top