代码复查管理系统的质量保证策略研究_第1页
代码复查管理系统的质量保证策略研究_第2页
代码复查管理系统的质量保证策略研究_第3页
代码复查管理系统的质量保证策略研究_第4页
代码复查管理系统的质量保证策略研究_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编号:哈尔滨工业大学大学生创新性实验计划项目申请书项目名称:代码复查管理系统的质量保证策略研究申请级别:国家级(国家级、校级、院系级)执行时间:2 0 1 0年 9 月至 2 0 11 年9 月负责人:<£> <£> <£> <£> <£> <?> rxw rtw rtw rtw rtw rtw rtwa".ii仝仝仝仝仝仝仝仝仝仝仝仝于 有 :联系电话:*电子由 e 箱. *院系及专业:士 士 士 士 士 士 士 士 士 士 士 士 士 士 士 士 士 士 士

2、士 士 士 士 士 士 士 士 士 士 士 士 士 士rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj> rj>指导教师:*联系电话:*电子邮箱:院系及专业:<1> !> !>

3、; !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> !> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <

4、z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z> <z>哈尔滨工业大学教务处制表填表日期:2010年9月1日项目名称:代码复查管理系统的质量保证策略研究申请经费: 一、课题组成员:(包括项目负责人、按顺序)姓名性别所在院年级学号身份证号本人签字二、指导教师意见:该项

5、目属于源代码级质量保证项目的子课题,具有理论及应丿ij研究价值。项目组成员阅读了人量文献, 并已开发出代码复查管理系统,能够按进度独立完成本项目计划的任务。同意该组同学参加哈尔滨工业大学大学生创新性实验计划项kl申请。签 名:年 月 日三、院(系)专家组意见:组长签名:(盖章)年 月 口四、学校专家组意见:批准经费:组长签名:(盖章)年 月 h五、立项报告1 项目简介如今的信息产业迫切要求高等院校培养出能编写高质量代码的软件工程师。代码复查是 公认的理想方法,能最人限度的提高学生编写代码的质量。代码复查和代码编写是一样重要 的,在代码复查过程中复查者将发现的问题反馈给编写者不仅可以提高编写者的

6、编程能力, 同时也可以提高自己的编程水平山。在用此方法的学习过程屮,学生的技能得到提高,同时 科学合理的管理方案能减少指导老师的额外负担(如检查每个学生编写的程序)。代码复查管理信息系统已经被应用在哈尔滨工业大学管理学院信息管理与信息系统专业 大学一年级同学的而向对彖程序设计课程学习屮。学生们通过帮助修改其他的同学的代 码来提高自己,数据分析显示在此过程中学生是最人的受益者同吋教员减轻了压力,因此代 码复查过程被认为具有较高的可操作性,同时学生也取得了良好的学习效果。然而,这个理念在实行过程中也岀现了一些问题,主要体现在检查被捉交的文档以及与 同学的交流上,例如某些有质量问题的程序表现出一些学

7、生不具备编写质量可靠的程序的能 力或不具备很强的修改程序的能力。这些和学生素质息息相关的问题可以通过对编程能力的 训练和复查技术被解决。这篇文章主要关注于过程改进和科学管理来做好质量保证。我们就代码复查管理系统的质量保证策略进行研究分析,就是让它更好的为学生和老师 服务,为教育事业做出一定的贡献。2申请理由从当前在积极学习和i才i队合作引起的教育界的关注可以看出,许多计算机科学教育家都 对把代码复查引入他们的教学课程中产生了极大的兴趣r铁有很多引人注目的原因来把一个 正式的代码复查活动和一门课程合并起来。不论学生所追求的是学术还是产业生涯,他们都 需要由别人來评价他们的工作,他们必须学会怎样处

8、理批评及怎样为别人提供建设性意见。 代码复查被认为是一种可以有效提升学生的认知能力的技术,学生们既可以运用他们的知 识和技巧来理解,也可以通过分析和评价别人的工作来阐明和更正它。代码复查在团队学习和合作学习中已经被证明是一种冇效的方法,8-,0j,o代码复查管理系 统的实施大大促进了学生的高效学习。我们从中得到了很多。然而如何做好质量保证使其更 加科学有效是一个值得探索的问题。我们就代码复查过程的质量保证策略进行研究分析,旨 在使代码复杳管理系统逐渐完善成为一个更科学,更高质量的教学工具,从而使其在教学中 发挥更大的价值。从代码复查管理系统的建设实施到不断完善,我们团队的每个成员都做出了很多努

9、力, 可以说,我们见证了它的成长,因此我们对代码复查管理系统冇着全而的了解和理性的认识。 冃前为止,我们己经做了许多有关的研究分析并取得了一些成果,并在国内外期刊发表。例 如改善复查过程,分析参与者行为等。这些成果为我们将要做的研究打下了一定的基础。针对我们的代码复查管理系统,在质量保证发面仍存在许多问题,我们希槊通过我们的 努力能不断的改进它,完善它,使它更好的在教学中发挥积极地作用。另外,我们的团队成员是管理学院的优秀人才,有较强的思辨能力和发现问题解决问题 的能力。我们既損长于抽象思维,乂有较强的实践动手能力。我们坚信,凭我们的兴趣和毅 力,我们有能力做好这项工作,让我们也能为教育事业做

10、出一份贡献。3立项背景3.1研究现状代码复查已经被认为是软件质量保证的一种冇效手段,很多教育专家都希累在他们的课 上引进代码复,2-,4,o目前为止,代码复查的研究包扌舌(i)具体的代码复查过程或方法2叫 (ii)行为改进或质量保证】,(hi)捉高代码复查学习效呆的支持工具。通常,代码复查应 用分为3类“叫自我复查i、对等复查和教师复查,其中对等代码复查被认为是最有效的手 段。在代码复查管理系统方向上,国内外的研究述比较少,究其原因主要还是费用成本比较 多,所投入的人力,财力等成本还不够。1996年,belli和crisan提出了代码复查的自动操作 ll7jo后来,jun-suk oh和ho-

11、jin choi证实了代码复查的自动操作要优于手动操作拠。同时, 一个静态分析工具在java屮的运用也减轻了核实程序和检查代码缺陷上的难度。目前可考 证的2家单位的产品如2(1) smart bear (美国)公司的产品code collaborator (代码合作者)。它替代传统正式 检查和束手无策的围绕评语的电子邮件来强制执行检查规则,处理不同的工作流程,自动化 的审计跟踪和度量收集,生成报表,并且通过第三方工具集成工具综合化节省开发时间。用 户在他们的键盘上同时可以查看一个类似聊天的功能的检验代码界面,用户可区分新闻组及 互动式界面"61。代码合作者与scm系统整合,问题跟踪,

12、并通过自定义脚本工具插件和一 个公共的wed服务集成的apl评论者可以验证修补程序是否在正确的开发做岀代码允许z 前要嵌入到版本控制中去的。(2) atlassian (澳大利亚)公司的产品crucible (堆竭)。它给你的团队提供了一条受益于 不断代码审查的权利的冇效途径,包括内敛评论,简单的工作流程,异步审查,jira (jira 是集项口计划、任务分配、需求管理、错误跟踪于-体的商业软件)集成等等。上述两种产品已经被许多公司和软件组织使用来改善他们的代码审查过程,这种方法已 经被证实可以提高软件产业的质量和生产效率。合理的使用这些系统可以使复查更加规范, 排除人为因素而产生的复查漏洞【

13、2叭 然而,这些产品价格昂贵,无法在高校教学屮大规模普 及。而且它们的设计生产是为了提高软件公司的生产质量和生产效率,在质量保证方面并不 适合应用于教育。基于这种现状,木课题针对教育中的代码复杳管理系统进行质量保证策略 研究。3.2研究内容代码复查管理系统由我们的导师所率领的团队经多年努力研发实现。该系统在实施一个 学期之后,达到了良好的学习效果。整个代码复查流程(如图1)包含6个阶段,分别描述 如下。阶段1:书写(write)。一个学生(作者)完成自己的作业程序(手稿程序),r可能已 经对程序进行了自复查,并通过编译和运行测试,以求得通过复查(图1中的w);阶段2:提交(submit)o作者

14、将手稿程序尽早提交至代码复查系统(图1中的q.1);阶段3:复查(review)。收到手稿程序的复查者尽早找时间对程序源代码进行复查, 并将在复查过程中发现的各种问题以及提供的修改意见仔细填入源程序后的复查结果单;阶段4:反馈(feedback)。复查者提交填好的复查结果单;阶段5:修订(revise)o收到复查结果单后,修订者(作者)根据复查者的评论和建议 修订手稿程序,并将完成后的修改版程序再次上传;阶段6:质量保证(quality assurance)o有了经q1发來的手稿程序、经q.2发來的复 查结果单、经q.3发来的修订版程序,教师便可根据自己的吋间是否充裕,或者木次复查过 程是否存

15、在必须检査的必要,选择对此次对等代码复查过程的过程检查或者不检查。根据教 师的能力,很容易判断出作者和复查者是否认真完成了各自的任务,有无贪图省力的应付了 事的行为。经过教师的检查,根据事先设定好的给分规则,教师可为各同学(包括作者和复 查者)进行打分或者处罚,教师对整个过程进行总结,记录相关数据保存于事先建好的数据 库中。该系统在很大程度上帮助学生提高了编程水平,也减轻了教师的负担。然而,在实行过 程中存在着一些问题:(1) 抄袭现象。一些同学缺乏编程能力或态度不认真,复制其他同学的部分甚至全部代码, 却也能得到较高分数,使评分不科学,不可信;(2) 侥幸心理。有些同学在完成作业时存在侥幸心

16、理,随便提交一些代码应付了事,却可 以得到一个较为平均的分数。同样,某些复查者也不够负责,期望每次都不会被老师抽查到;(3) 个人感情因素。在代码复查过程中,如果作者语与查者相互了解,或是长期固定的分 组模式,会使复查过程中掺杂一些个人感情因素,使学生修改源程序时态度不够端止,导致 给出的复查意见不够客观;(4) 能力差异。由于一个班学生的编程水平参差不齐,有时编程能力强的同学被分配复查 能力差同学写的程序,而编程能力差的同学可能收到包含较复杂算法的程序,使该同学很难 理解。在上述情况下,复查学习效果就会受到一定程度的影响;(5) 教师工作量大。由于教师或助教要在审查每个同学的程序之后依据程序

17、质量才能给出 不同档次的分数,从而使其依然工作量很大,负担很重。我们就本系统的质量保证策略上进行研究,旨在解决上述问题,优化代码复查过程并实 现在系统中,使其更加科学高效地服务于教育。3.3研究意义一般来说,代码复查方式有三种:口我代码检验、监督代码检验和对等代码检验。自我 代码检验对软件质量有一定影响,但这种方式有一些限制,因为大多数人都有一个短处 难以找到自己的错误。监督代码检验是由一些具冇丰富的系统设计、编码和测试经验的专家 來完成,但是邀请这样的人付出的成木是昂贵的。相比z下,对等代码复查有合适的花费和 复杂性。每个人的编程能力与编程认知不同,对等代码复查可以让同学z间交换在编码方而

18、的观念,提高自己在代码编写方面的技巧能力01。通过这种方法,每个同学都在帮助别人的 同时得到口助,它既提高了学生的评佔技能,也提高了他们后來工作的质量。通过代码复查技术,可以在源代码一级进行对等代码复查,可以冇效地进行软件质量保 证。软件缺陷管理理论讲,开发软件的周期屮,越早发现和排除软件缺陷,软件开发就越经 济,软件质量也会越高。因为编码阶段是软件生命周期较靠前的阶段,所以在编码阶段进行 对等代码复查至关重要,主要表现为:(1) 统一程序员编程风格。口前的软件产品大都通过合作完成的。通过代码复查,有利 于不同程序员的统一编程风格,培养良好的编程习惯。统一的代码风格有利于软件后期的测 试、维护

19、,对提高软件产品的质量有深远的意义;(2) 提高程序员编程水平。不同编程水平的程序员进行代码复查,水平较低的程序员通 过查看水平较高程序员的代码用于口我提高;水平较高的程序员通过查看水平较低程序员的 程序,可以找出错误不足,知道其对代码进行优化。这样通过合作学习共同提高编程水平;(3) 提高软件质量。源代码级别的对等复查可以看作一种静态测试,能够冇效地发现软 件源代码中的错误,尤其是一些循环嵌套语句,无限循环语句的不规范使用。随着软件规模的h益增大,软件复杂性的提高,软件质量保证逐步受到产业界和学术界 的高度重视。尤其是在互联网经济时代,一个国家的信息技术竞争力在很大程度上直接决定 该国的科技

20、竞争力,能够在软件产业中获得较高的国际竞争力的国家止在成为互联网时代的 主角。而无论在技术发展方而述是从经济效益提高方而,软件质量直接影响着软件产业的发 展。质量好的软件产业的进步,质量较差的软件制约着软件产业的发展。由此可见,软件质 量保证是软件产业发展的关键所在,也是一个国家信息技术竞争力提高的关键所在。针对代码复查及其质量保证的重要性,对代码复查管理系统的质量保证策略进行研究, 我们旨在对该系统进行不断的优化,希望它能帮助教师高效地培养信息人才,在教育领域发 挥其应有的作用。参考文献:1. alice leslie jacob and s. k. pillai. statistical

21、process control to improve coding and code review. ieeesoftware. may-june 2003, pages 50-55.2. ef. gehringer, d.d. chin, m.a. perez-quinones, m.a. ardis. 2005. panel: using peer review in teachingcomputing. proceedings of the 36th sigcse technical symposium on computer science education. feb 2005. v

22、.37 ml.3. j sitlhiworachart, m joy. 2004. on-line feedback and assessment: effective peer assement for learningcomputer programming. proceedings of the 9th annual sigcse conference on innovation and technology in computer science education. june 20044. d. trytten. 2005. a design for team peer code r

23、eview. proceedings of the 36th sigcse technicalsymposium on computer science education. feb 2005. v.37 rul.5. e. silva, d. moriera. 2003. webcom: a tool to use peer review techniques to improve student interactionjournal on eucational resources in computing march 20036. fallows, s,and chandramohan,

24、b., "multiple approaches toassessment: reflections on use of tutor, peer andself asscssmcnl", teaching in higher education, 6(2), 229-246, 20017. ballantyne, r,hughes, k,and mylonas, a,"developing procedures for implementing peer assessment inlarge classes using and action research pr

25、ocess'; assessment & evaluation in higher education, 27(5), 427-441,20028. d.trytten. ua design for team peer codereview.proceedings of the 36th sigcse technical symposium oncomputer science education. feb2005. v.37 n.l.9. j.sitthiworachart, m joy. 2004 “ornline feedback and assessment:effec

26、tive peer assement for learningcomputer programming,proceedings of the 9th annual sigcse conference on innovation and technology in computer science education. june 200410. e.silva, d. moriera. webcom: a tool to use peer review techniques to improve student interaction journal on educational resourc

27、es in computing. march 2003.11. alessandra devito da cunha and david greathead. does personality matter? an analysis of code-review ability. communications of the acm. volume 50, number 5 (2007), pages 109-112.12. e.f.gehringer,d.d.chin,m.a.perez-quinones,m.a.ardis.2005.panekusing peer review in tea

28、ching computing proceedings of the 36th sigcse technical symposium on computer science education. feb2005. v.37n.l.13. j.sitthiworachart, m. joy.2004.on-line feedback and assessment: effective peer assement for learning computer programming proceedings of the 9th annual sigcse conference on innovati

29、on and technology in computer science education. june 200414. d.trytten. 2005. a design for team peer code review. proceedings of the 36th sigcse technical symposium on computer science education. feb2005 v.37 n.l.15. fallows, s and chandramohan, b., multiple approaches to assessment: reflections on

30、 use of tutor, peer and self assessment, teaching in higher education, 6(2), 229-246, 2001 association for learning technology journal(alt-j), 9(1), 26-37, 200116. watts s humphrey. introduction to the personal software process. addison-wesley, pearson education, inc. 2002:159-16317. belli, f., cris

31、an, r. towards automation of checklist-based code-reviews proceedings of seventhinternational symposium on software reliability engineering. 30 oct.-2 nov. 1996 page(s):24 一 33.18. jun-suk oh, ho-jin choi. a reflective practice of automated and manual code reviews for a studio project.proceedings of

32、 the fourth annual acis international conference on computer and informationscience(icis'05). 2005, pp37-42.19. emmanuel geay, eran yahav, and stephen fink continuous code-quality assurance with safe pepm ,06january 9-10, charleston, south carolina, usa. 2006、ppi45-14920. jason remillard.source

33、code review systems. ieee software. january-february 2005, pages 74-77.21 josq c maldonado, jeffrey carver, forrest shull, sandra fabbri, emerson daria, liciana marimiano,manoel mendonca, victor basili perspective-based reading: a replicated experiment focused on individual reviewer effectiveness. e

34、mpir software eng. nov (2006). pages: 119-142.4项目方案4.1研究方法为了做好定量研究,了解学生使用了代码复查管理系统的情况,我们将用到以研究方法:(1) 问卷调查。问卷题目主要是根据对代码复查系统的使用情况进行设计。内容包括对 该系统的整体满意度,该系统对提高口己能力的帮助程度,对评分标准的满意度,对网上测 评成绩的可信度,系统的质量保证问题等方面;(2) 访谈。对个别有代表性的学生进行访谈,可以了解他们对该系统的使用情况和使用 过程屮遇到的问题,还能得到一些关于如何改进代码复查系统的建议;(3) 博弈建模。为了减轻教师工作量,提高学生的学习质量

35、,采用博弈建模的方法进行 研究,以找出更科学,更高效的解决方案;(4) 案例分析。我们将会对学生在使用该系统的过程中的一些具体案例进行分析,发现 一些相关的问题,并找出解决方案。同学们在使用代码复查系统完成了一门课的学习z后,对该系统有了一定的了解,在学 习过程中也有许多自己的体会。用上述方法可以全而、实际地了解到该系统在质量保证方而 的可取和不足之处,同时也可以得到许多好的建议。4.2质量保证的策略具体设计基于前期对代码复查管理系统流程屮存在问题的初步研究,拟代码复查管理系统质量保 证策略分为五个方面:(1) 分组策略。该系统采用班内分层次随机分组方式。该策略可以解决以下两个问题: 随机分组

36、可有效杜绝由同定分组引起的学生因长期复查固定同学的程序i佃引起的心理厌倦, 因个人感情不客观复查,因长期复查同一风格的程序而能力无法全面提高的现象,(ii)分层次 可以让每个同学复查到和自己编程水平相差不人的同学的程序,这样能更有效地提高不同层 次学生的编程水平。运用怎样的算法使分层次随机分组这种方式更科学高效,是我们将要研 究的问题;(2) 双向匿名。双向匿名即复查过程实行手稿程序对复查者匿名,复查意见对修改者匿名。 当学生看到这样的匿名程序和复查意见,他们会以客观的态度复查源程序或是认真参照修改 意见修改自己的手稿程序,不会把对作者或复查者的偏见或感情因素强加到复查过程屮 用这种方法可以使

37、学生客观的对待源程序和复查意见,从而增强学习效果;(3) 博弈建模。为了节约教师的时间,教师评分方式采用抽查评分。如何让抽查评分更 科学,使每个同学的得分都较为客观可信,我们构建下列博弈模型:教师按照15-20%的概率 抽查每次作业程序,奖励认真的作者、负责的复查者,重罚不认真的作者和不负责的复查者。 博弈模型将达到下列效果:如某门课使用代码复查管理系统,一共包括i次作业,若某同学 不认真或不负责一次,就较难得到成绩“优秀”,两次就较难“良好”,并且全班同学分数能 拉开距离。运用这样的方法可以达到“激励”积极学习的效果,可以在很大程度上减轻教师 负担;(4) 参与者互评。在代码复查流程中,复查

38、者给作者打分,作者给复查者打分。这样能 督促学生对程序进行深刻理解,提高学生复查程序的认真程度,还能给教师打分提供参考, 有效地节约了教师的吋间,提高了效率。然而,如何减少评分屮学生的态度和感情差异、怎 样制定评分标准、采用什么样的策略、能让评分更客观,让学生得到更大程度的提高,我们 将会做进一步研究;(5) 计算机自动评分。在让算机自动评分流程中,拟采用下列技术支持:a. web services技术。学生在完成作业时因遇到困难不愿口己解决或态度不端止,就会 出现“抄袭”现象,系统采用了开源电子教学平台moodle平台“反抄袭”插件,若两个程序 冇雷同,则双方均会降低得分。这种方法可以减少学生之间的抄袭现象,督促学生自己动手 编写程序;b. 我们团队自主研发的csd (编码规范评测网),用于检查编码的规范程度。在教师审 查作业程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论