- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用程式码相似度辅助学生程式作业分群之实作淡江大学资讯管理学系
Chen et al. (2002)提出一種利用壓縮找尋程式相似片段的作法。基本上,和YAP和JPlag類似,可分成兩階段。第一階段將程式轉換成符號字串,第二階段則改用壓縮器(compressor)找出兩程式的相似片段。 ID方法可避免受大量插入無意義敘述,如int x=1等之騙術干擾。對MOSS或JPlag,這些干擾可能會造成偵測不出相似性,但SID可以解決此問題。 * SIM系統(Gitchell, 1999)乃利用DNA比對上常用的序列排比(alignment)方式,來計算兩程式間的相似性。由於兩序列的排比方式非常多,因此仿DNA比對定義每種序列排比的得分,再由動態規畫找出其中分數最高者而得最佳排比方式。利用最佳排比得分,可以比較兩程式相似性。 * 隨機挑選一程式做為第一群,對每一個新程式i,計算與群集合C中每一群c之所有程式的群相似度 。找出和程式i的群相似度大於相似門檻值THS的群集合 ,取其中群相似度最大的群 ,視為程式i的歸屬群,將程式i加入群 中。若無法找出大於相似門檻值的群集合 ,則程式i另成一群。 * 針對程式教學的評分一致性需求,本文利用程式相似度,做為學生作業程式的分群依據,分群之後的程式可以方便老師或助教就相近程式進行一致性的評分。本文以實際作業程式作測試,結果顯示採用本作法,其分群正確性與人工分群結果非常接近。 未來研究方面,可以找更多其他學生作業程式集做測試,進一步驗證基於YAP相似度做為程式分群指標的普遍可行性。另外就分群方法上,本文只採用單次無階層分群方法,未來也可以嘗試使用其他分群方法作測試。 * 淡江大學資訊管理學系 淡江大學資訊管理學系 淡江大學資訊管理學系 淡江大學資訊管理學系 淡江大學資訊管理學系 淡江大學資訊管理學系 淡江大學資訊管理學系 淡江大學資訊管理學系 魏世杰 林世唐 淡江大學資訊管理學系 淡江大學資訊管理學系 seke@mail.im.tku.edu.tw 淡江大學資訊管理學系 * 利用程式碼相似度輔助學生程式作業分群之實作 淡江大學資訊管理學系 程式碼比對可以分為語彙層及語法層兩種比對技術。 語彙層比對:以符號為單位,依兩程式之間的相同符號之多寡,決定兩者相似度 語法層比對:必須將程式碼轉換成結構圖或流程圖,再將圖形依節點互相比對,找出最相似的兩個節點,決定程式相似度 程式碼比對的應用方向包括 協助查詢相似範例程式,加速開發速度 偵測重複程式,有利程式精簡及合併 偵測抄襲,利於版權維護 本文將程式碼比對應用於協助程式教學。在班級眾多學生程式中,如何偵測相似寫法給予一致分數,一直是批改程式作業之困擾。本文將利用程式相似度,對學生程式作業進行分群,以輔助作業批改之給分一致性。 本文將實作此程式分群系統,並評估其分群正確性。 淡江大學資訊管理學系 * Whale (1990) 綜合各種語彙及語法層的程式碼比對技術,將其大致區分為兩類: 屬性比對 結構比對 淡江大學資訊管理學系 * 六個數值維度比對程式相似度 (Sallis et al., 1996) 容積(Volume) (Halstead, 1997) 結構(Structure) 資料相依(Data Dependency) 迴圈深度(Nesting Depth) 控制結構(Control Structure) 控制流程(Control Flow) 淡江大學資訊管理學系 * 結構比對: 以如下幾個實際系統為例 MOSS(Measure Of Software Similarity) YAP(Yet Another Plague) JPlag SID(Software Integrity Diagnosis system) SIM(software SIMilarity tester) 淡江大學資訊管理學系 * MOSS (Measure Of Software Similarity) (Schleimer et al., 2003) 將程式的符號字串(token string),每相鄰k個符號合併成一個長度k片段(k-gram),計算其雜湊值。 程式有n個符號,將可計算出n-1個片段的雜湊值 這些雜湊值集合選擇其部分子集合可形成程式的指紋(fingerprint) 依照雜湊原理,不相同子串得到相同雜湊值的碰撞機率很小,因此若兩程式有一個或更多個雜湊值相同,則表示其有相同的長度k片段 淡江大學資訊管理學系 * YAP (Yet Another Plague) (Wise, 1992) 可以偵測程式中相似片段 使用Running-Karp-Rabin Greedy-String-Tiling (RKR-GST)演算法 分為兩個階段 前處理階段 比對階段 淡江大學資訊管理學系 *
您可能关注的文档
- AK381绝缘油介电强度测试仪-保定奥科电气.DOC
- 02297电力拖动自动控制系统考纲.DOC
- 2019陕西重点研发计划项目申报-节能报告.DOC
- AMPPRS1PRS3磷酸核糖焦磷酸氨基转移酶催化反应P-Ribose.PPT
- 2103实际电压表的负载效应.PPT
- Alexendra整理2007-15生化核酸部分复习提纲核酸的组成和分类.DOC
- AIDS病痴呆综合征可伴广泛的中枢和周围神经系统受损以神经认知.DOC
- ARBURG阿博格的目标是无论对于单件还是大批量生产客户都.DOC
- ATP和酶第1课时生命活动的能量通货——ATP教学目标.DOC
- ATP的分子结构细胞的能量通货ATP腺嘌呤.PPT
文档评论(0)