[2019BUAA软工助教]结对编程 - 小结

一、评分规则

  1. 博客

    博客共五十分

    1在文章开头给出Github项目地址1
    2在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的开发上耗费的时间0.5
    3看教科书和其它资料中关于Information Hiding, Interface Design, Loose Coupling的章节,说明你们在结对编程中是如何利用这些方法对接口进行设计的5
    4计算模块接口的设计与实现过程。 设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?说明你的算法的关键(不必列出源代码),以及独到之处7
    5阅读有关UML的内容:https://en.wikipedia.org/wiki/Unified_Modeling_Language。画出UML图显示计算模块部分各个实体之间的关系(画一个图即可)。2
    6计算模块接口部分的性能改进。 记录在改进计算模块性能上所花费的时间,描述你改进的思路,并展示一张性能分析图(由VS 2015/2017的性能分析工具自动生成),并展示你程序中消耗最大的函数3
    7看Design by Contract, Code Contract的内容:
    http://en.wikipedia.org/wiki/Design_by_contract
    http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx
    描述这些做法的优缺点, 说明你是如何把它们融入结对作业中的
    5
    8计算模块部分单元测试展示。 展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路。并将单元测试得到的测试覆盖率截图,发表在博客中。要求总体覆盖率到90%以上,否则单元测试部分视作无效。6
    9计算模块部分异常处理说明。 在博客中详细介绍每种异常的设计目标。每种异常都要选择一个单元测试样例发布在博客中,并指明错误对应的场景。5
    10界面模块(如果没有实现GUI,则可以描述命令行模块)的详细设计过程。 在博客中详细介绍界面模块是如何设计的,并写一些必要的代码说明解释实现过程。5
    11界面模块(GUI或命令行模块)与计算模块的对接。 详细地描述UI模块的设计与两个模块的对接,并在博客中截图实现的功能。4
    12描述结对的过程,提供非摆拍的两人在讨论的结对照片。1
    13看教科书和其它参考书,网站中关于结对编程的章节,例如:
    http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html
    说明结对编程的优点和缺点。
    结对的每一个人的优点和缺点在哪里 (要列出至少三个优点和一个缺点)。
    5
    14在你实现完程序之后,在附录提供的PSP表格记录下你在程序的各个模块上实际花费的时间。0.5
  2. 程序,详见博客[BUAA-SE-2019]结对作业测试报告

    程序共六十分

    源代码管理评分(5'):
    该评分主要通过源代码管理中的commit注释信息,增量修改的内容,是否有运行说明,每个阶段是否打上了标签等内容给分。(5')

    第一阶段(20'):

    该评分将进行这-c -w -h -t -r五个参数的正确性测试,对于前四个参数,输入的单词数量范围为0-10000;对于-r参数,输入单词数量的范围为0-100,要求程序在 300 s 内给出结果,超时则认定运行结果无效

    第二、三阶段(20'):

    将针对上述六个参数进行鲁棒性测试,可能测试的内容包括且不限于:
    错误的命令、错误的参数、大小写、错误的参数组合、错误的文件格式等。
    要求必须正常结束,崩溃不得分。
    错误无任何提示,不得分。
    错误种类较多,提示合理,得正分。

    性能评分(15')

    当第一阶段评分等于20分时才可以参与性能评分环节,所以请各位同学务必保证自己程序的正确性,该阶段没有时间的最小要求限制。
    性能评分将采取档级评分制度,助教将根据同学们的程序跑同一数据耗费的时间长度将程序分为若干档,每一档的同学得到的分数为 15/档级数。

  3. 附加题

    附加需求:GUI(10')
    该评分将进行用户交互界面的测试

    第四阶段:模块松耦合(10')
    在结对项目博客中按照阶段四的博客要求添加相应内容(5') 最终的对接效果(5')

二、得分图表

  1. 得分表格

    251167周二11zy11562356554154921146117
    251170周二11zy11562356554154921146117
    161093周二11cyj11472345454154631146115
    161155周二11cyj11472345454154631146115
    51011周四11cyj11462338554154841137109
    101109周二11lc11462356554154831138109
    111160周二11syq11572356554054931137109
    141175周二11syq11452356544154631145114
    211200周二11zy11542356454154631145114
    41103周四11cyj11572256554154951134108
    51152周四11cyj11362348554144741137108
    101097周二11lc11462346554154731138108
    141156周二11syq11352336544154331145111
    211076周二11zy11532246354154231145110
    221173周二11zy11462336554154631140109
    41192周四11cyj11472206554144251134101
    341137周二11xcd11342336554144221052106
    241125周二11zy11552355443154431043100
    341144周二11xcd11332336554144121052105
    221135周二11zy11462333554134131140104
    301118周二11lqx11462335554154540145104
    301061周二11lqx11462335554154540145104
    231007周四11zy1145235455415453103997
    231059周四11zy1155234455415453103997
    121161周四11syq1146235644214433113096
    121112周四11syq1156234643213413113094
    71049周二11lc1146234445314423013792
    71057周二11lc1146233454314413013791
    241145周二11zy1134223422315333104389
    311104周二11xcd1125224304213304104892
    91030周四11lc1156234455014413004286
    181247周四11cyj1136224545415433111985
    331159周二11xcd1125233555205392004485
    331051周二11xcd1135133555204382004484
    181030周四11cyj1136224545413413111983
    311082周二11xcd1122222324212264104888
    31010周四11cyj1157223652213403003881
    31022周四11cyj1147223652214403003881
    91031周四11lc1146133355013363004281
    171048周四11cyj1124223533214333112278
    171023周四11cyj1124223433213313112276
    201197周二11cyj1143214224314323103176
    11101周二11cyj1144224532114344003775
    11107周二11cyj1134224532113324003773
    291119周二11lqx1126234544415422002468
    201110周二11cyj1132211224314273103171
    21201周二11cyj1156213332213333002864
    21201周二11cyj1136213332214323002863
    291106周二11lqx1126134333415372002463
    151168周二11syq1123223443214322002862
    151182周二11syq1123223443214322002862
    111078周二NULLsyq000000000000003113760
    271113周二11lqx1124224454315383001758
    271114周二11lqx1124224454315383001758
    81050周二11lc1124210232014232002853
    81165周二11lc1124210232014232002853
    321027周二11xcd1135123034314312002053
    265012周二11lqx1124223354314351001652
    261100周二11lqx1124223354314351001551
    321014周二11xcd1124013034215272002049
    281153周四11lqx113523464431542200347
    281203周四11lqx112523464431541200346
    61008周二11lc1034000000003112001528
    61026周二11lc1034000000003112001528
    191120周四11cyj112422202221223200126
    131114周二11syq114400000000010100011
    191061周四NULLcyj0000000000000020013
    131190周二NULLsyq0000000000000010001
    351096周二NULLxcd0000000000000000000
    351186周二NULLxcd0000000000000000000
  2. 累计得分图

    [2019BUAA软工助教]结对编程 - 小结-LMLPHP

三、小结

  1. 推荐作业:

  2. 作业迭代建议:
    • 给出具体可用的覆盖率插件,与教程链接
    • 给出作业模板
    • 测试须知中添加(?)要求:文件名参数位置可变
    • 明确GUI模块与附加题的界限
    • 在作业中给出具体的评分规则
    • 将博客作业中的公共部分移动到代码作业中,作为github项目的readme,个人发布博客时仅发布与个人相关的内容即可
  3. 结对黄衫:

    节选自:现代软件工程 怎么教好课 (读书笔记)

    • 周二班:167-bsh、170-szy
    • 周四班:011-nyh、103-zzy
    • 另外周四班 152-zyn 与 nyh 一组,分数跟 zzy 相同,也获得黄衫一件

    祝贺这些同学!

04-18 20:15