论文部分内容阅读
存储过程作为一种安全、高效的数据库技术已经被广泛的运用在各应用开发过程中,它能够封装应用领域的业务逻辑使软件更加模块化。藉此,将程序自动评估方法引进到这种数据库技术的学习中。该方法能够准确、高效地评估学习者的练习程序,实时地提供学习情况的反馈信息,有效的提高存储过程的编程能力。 程序自动评估技术是学习者通过网络提交程序后,计算机自动评估学习者的编程题目并给出相应的反馈信息。该技术通过分析程序的动态执行结果或静态特征给出量化的评估结果。在对自动评估相关理论及技术进行深入研究和对存储过程的自身特点析缕分条的基础上提出了一种基于相似性匹配的自动评估方法,所做的主要工作如下: 1.分析和对比了动态分析和静态检查两种程序自动评估的方法,着重研究静态检查方法中的结构度量法和属性技术法,在此基础上提出以静态检查为主、动态分析为辅的两者相结合的评估机制。 2.在结构度量法的理论基础上提出了基于Zhang-ShaSha算法的语法相似性匹配方法和基于最大共同子图的语义相似性匹配方法。前者采用词法分析和语法分析把存储过程转换成语法树,再转换成有序二叉树。通过分析转换所得的二叉树属于RB型树,Zhang-ShaSha-R算法在计算此类型树的距离和相似度时具有较高的效率。后者先抽取存储过程的语义信息获得程序依赖图,再采用基于最大共同子图的相似性度量方法度量程序依赖图的相似性,进而获得语义相似性。 3.鉴于对属性计数法的研究,提出基于模糊聚类的程序分类方法,将提交的代码和标准答案的模板程序进行归类。系统不需再把提交代码和每个模板程序都进行匹配,只要和划分为同类的模板程序进行相似性匹配。 4.为验证上述所提方法的正确性,设计并实现了实验平台原型系统并选取有代表性的实验数据进行了实验。最后,将实验所得评分结果和人工评分结果进行对比,分析影响实验结果的各种因素。