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

[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. 得分表格

    注:点击每列标题可按标题排序

    编号 学号 班级 博客 github 助教 链接 PSP IH\ID\LC 计算模块 UML 性能 契约 测试 异常 界面 对接 结对 伙伴 博客总分 源码管理 GUI 松耦合 程序测试得分 结对总分
    25 1167 周二 1 1 zy 1 1 5 6 2 3 5 6 5 5 4 1 5 49 2 1 1 46 117
    25 1170 周二 1 1 zy 1 1 5 6 2 3 5 6 5 5 4 1 5 49 2 1 1 46 117
    16 1093 周二 1 1 cyj 1 1 4 7 2 3 4 5 4 5 4 1 5 46 3 1 1 46 115
    16 1155 周二 1 1 cyj 1 1 4 7 2 3 4 5 4 5 4 1 5 46 3 1 1 46 115
    5 1011 周四 1 1 cyj 1 1 4 6 2 3 3 8 5 5 4 1 5 48 4 1 1 37 109
    10 1109 周二 1 1 lc 1 1 4 6 2 3 5 6 5 5 4 1 5 48 3 1 1 38 109
    11 1160 周二 1 1 syq 1 1 5 7 2 3 5 6 5 5 4 0 5 49 3 1 1 37 109
    14 1175 周二 1 1 syq 1 1 4 5 2 3 5 6 5 4 4 1 5 46 3 1 1 45 114
    21 1200 周二 1 1 zy 1 1 5 4 2 3 5 6 4 5 4 1 5 46 3 1 1 45 114
    4 1103 周四 1 1 cyj 1 1 5 7 2 2 5 6 5 5 4 1 5 49 5 1 1 34 108
    5 1152 周四 1 1 cyj 1 1 3 6 2 3 4 8 5 5 4 1 4 47 4 1 1 37 108
    10 1097 周二 1 1 lc 1 1 4 6 2 3 4 6 5 5 4 1 5 47 3 1 1 38 108
    14 1156 周二 1 1 syq 1 1 3 5 2 3 3 6 5 4 4 1 5 43 3 1 1 45 111
    21 1076 周二 1 1 zy 1 1 5 3 2 2 4 6 3 5 4 1 5 42 3 1 1 45 110
    22 1173 周二 1 1 zy 1 1 4 6 2 3 3 6 5 5 4 1 5 46 3 1 1 40 109
    4 1192 周四 1 1 cyj 1 1 4 7 2 2 0 6 5 5 4 1 4 42 5 1 1 34 101
    34 1137 周二 1 1 xcd 1 1 3 4 2 3 3 6 5 5 4 1 4 42 2 1 0 52 106
    24 1125 周二 1 1 zy 1 1 5 5 2 3 5 5 4 4 3 1 5 44 3 1 0 43 100
    34 1144 周二 1 1 xcd 1 1 3 3 2 3 3 6 5 5 4 1 4 41 2 1 0 52 105
    22 1135 周二 1 1 zy 1 1 4 6 2 3 3 3 5 5 4 1 3 41 3 1 1 40 104
    30 1118 周二 1 1 lqx 1 1 4 6 2 3 3 5 5 5 4 1 5 45 4 0 1 45 104
    30 1061 周二 1 1 lqx 1 1 4 6 2 3 3 5 5 5 4 1 5 45 4 0 1 45 104
    23 1007 周四 1 1 zy 1 1 4 5 2 3 5 4 5 5 4 1 5 45 3 1 0 39 97
    23 1059 周四 1 1 zy 1 1 5 5 2 3 4 4 5 5 4 1 5 45 3 1 0 39 97
    12 1161 周四 1 1 syq 1 1 4 6 2 3 5 6 4 4 2 1 4 43 3 1 1 30 96
    12 1112 周四 1 1 syq 1 1 5 6 2 3 4 6 4 3 2 1 3 41 3 1 1 30 94
    7 1049 周二 1 1 lc 1 1 4 6 2 3 4 4 4 5 3 1 4 42 3 0 1 37 92
    7 1057 周二 1 1 lc 1 1 4 6 2 3 3 4 5 4 3 1 4 41 3 0 1 37 91
    24 1145 周二 1 1 zy 1 1 3 4 2 2 3 4 2 2 3 1 5 33 3 1 0 43 89
    31 1104 周二 1 1 xcd 1 1 2 5 2 2 4 3 0 4 2 1 3 30 4 1 0 48 92
    9 1030 周四 1 1 lc 1 1 5 6 2 3 4 4 5 5 0 1 4 41 3 0 0 42 86
    18 1247 周四 1 1 cyj 1 1 3 6 2 2 4 5 4 5 4 1 5 43 3 1 1 19 85
    33 1159 周二 1 1 xcd 1 1 2 5 2 3 3 5 5 5 2 0 5 39 2 0 0 44 85
    33 1051 周二 1 1 xcd 1 1 3 5 1 3 3 5 5 5 2 0 4 38 2 0 0 44 84
    18 1030 周四 1 1 cyj 1 1 3 6 2 2 4 5 4 5 4 1 3 41 3 1 1 19 83
    31 1082 周二 1 1 xcd 1 1 2 2 2 2 2 3 2 4 2 1 2 26 4 1 0 48 88
    3 1010 周四 1 1 cyj 1 1 5 7 2 2 3 6 5 2 2 1 3 40 3 0 0 38 81
    3 1022 周四 1 1 cyj 1 1 4 7 2 2 3 6 5 2 2 1 4 40 3 0 0 38 81
    9 1031 周四 1 1 lc 1 1 4 6 1 3 3 3 5 5 0 1 3 36 3 0 0 42 81
    17 1048 周四 1 1 cyj 1 1 2 4 2 2 3 5 3 3 2 1 4 33 3 1 1 22 78
    17 1023 周四 1 1 cyj 1 1 2 4 2 2 3 4 3 3 2 1 3 31 3 1 1 22 76
    20 1197 周二 1 1 cyj 1 1 4 3 2 1 4 2 2 4 3 1 4 32 3 1 0 31 76
    1 1101 周二 1 1 cyj 1 1 4 4 2 2 4 5 3 2 1 1 4 34 4 0 0 37 75
    1 1107 周二 1 1 cyj 1 1 3 4 2 2 4 5 3 2 1 1 3 32 4 0 0 37 73
    29 1119 周二 1 1 lqx 1 1 2 6 2 3 4 5 4 4 4 1 5 42 2 0 0 24 68
    20 1110 周二 1 1 cyj 1 1 3 2 2 1 1 2 2 4 3 1 4 27 3 1 0 31 71
    2 1201 周二 1 1 cyj 1 1 5 6 2 1 3 3 3 2 2 1 3 33 3 0 0 28 64
    2 1201 周二 1 1 cyj 1 1 3 6 2 1 3 3 3 2 2 1 4 32 3 0 0 28 63
    29 1106 周二 1 1 lqx 1 1 2 6 1 3 4 3 3 3 4 1 5 37 2 0 0 24 63
    15 1168 周二 1 1 syq 1 1 2 3 2 2 3 4 4 3 2 1 4 32 2 0 0 28 62
    15 1182 周二 1 1 syq 1 1 2 3 2 2 3 4 4 3 2 1 4 32 2 0 0 28 62
    11 1078 周二 NULL syq 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 1 37 60
    27 1113 周二 1 1 lqx 1 1 2 4 2 2 4 4 5 4 3 1 5 38 3 0 0 17 58
    27 1114 周二 1 1 lqx 1 1 2 4 2 2 4 4 5 4 3 1 5 38 3 0 0 17 58
    8 1050 周二 1 1 lc 1 1 2 4 2 1 0 2 3 2 0 1 4 23 2 0 0 28 53
    8 1165 周二 1 1 lc 1 1 2 4 2 1 0 2 3 2 0 1 4 23 2 0 0 28 53
    32 1027 周二 1 1 xcd 1 1 3 5 1 2 3 0 3 4 3 1 4 31 2 0 0 20 53
    26 5012 周二 1 1 lqx 1 1 2 4 2 2 3 3 5 4 3 1 4 35 1 0 0 16 52
    26 1100 周二 1 1 lqx 1 1 2 4 2 2 3 3 5 4 3 1 4 35 1 0 0 15 51
    32 1014 周二 1 1 xcd 1 1 2 4 0 1 3 0 3 4 2 1 5 27 2 0 0 20 49
    28 1153 周四 1 1 lqx 1 1 3 5 2 3 4 6 4 4 3 1 5 42 2 0 0 3 47
    28 1203 周四 1 1 lqx 1 1 2 5 2 3 4 6 4 4 3 1 5 41 2 0 0 3 46
    6 1008 周二 1 1 lc 1 0 3 4 0 0 0 0 0 0 0 0 3 11 2 0 0 15 28
    6 1026 周二 1 1 lc 1 0 3 4 0 0 0 0 0 0 0 0 3 11 2 0 0 15 28
    19 1120 周四 1 1 cyj 1 1 2 4 2 2 2 0 2 2 2 1 2 23 2 0 0 1 26
    13 1114 周二 1 1 syq 1 1 4 4 0 0 0 0 0 0 0 0 0 10 1 0 0 0 11
    19 1061 周四 NULL cyj 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 1 3
    13 1190 周二 NULL syq 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
    35 1096 周二 NULL xcd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    35 1186 周二 NULL xcd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  2. 累计得分图

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

三、小结

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

    • Peak Experiences 

      “在一些事情上做到最好,用这样的体验来鼓励自己”

      把一件事情做到最好,怎么做?

      当然我们很难做到全世界最好, 但是可以做到全班最好, 或者 ”这个题目的这个子问题,我做到了最好” , 体会一下你做到最好的时刻。 这样的时刻越多,学生就越有自信;老师也要在合适的时机表扬那些在某个局部做到最好的同学。 有些老师在开学之初让学生讲述自己超过别人的地方, 描述自己如何做到这个地步,很多同学描述自己通过持续锻炼在体育, 文艺方面达到的 Peak Experience, 这对他们的学习是一种鼓舞, 《构建之法》在学期中段会给优秀学生发领骑黄衫, 这就是让他们体验到 Peak Experiences.

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

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

    祝贺这些同学!

上一篇:【文档】五、Mysql Binlog事件结构


下一篇:第六篇、WebSphere8.5 (商业级服务器)大规模集群