软件工程网络15结对编程作业
小组成员
姓名 | 学号 | 个人博客链接 |
---|---|---|
姚佳希 | 201521123042 | http://www.cnblogs.com/ballonbaby/ |
吴慧婷 | 201521123094 | http://www.cnblogs.com/whting/p/8569603.html |
1.分析现有代码
我们选择的网络14现有的代码:
个人博客地址:http://www.cnblogs.com/NianQiFeng ,源代码:https://git.coding.net/qwx_hh/java-szys.git
(1)clone 所选项目,并在博客中给出结对项目码云链接
(2)检查所选项目的类之间的关系,画出类图
(3)浏览所有代码考虑代码质量和测试覆盖率
- 单元测试[感觉没有掌握该项目测试的方法,将进行修改(有空)]
- 覆盖率测试
(4)找出原项目中的逻辑泥球
- “复习”功能不够完善
(后面不知道为什么都出不来复习界面了) - 计时功能不够完善(虽然我们没有改进)
2.功能改进与扩展
(1)需求分析
随着课余娱乐项目的增加,现在的小孩子在学习上变得越来越不自觉,需要老师、家长在背后催着才会做作业,因此需要实现一个计时功能,以时间的流逝来给孩子一些紧迫感。另外,在经过长期的运算训练之后,如何才知道学生的运算水平是否有显著提高呢?将做题过程进行计时可以解决这个问题,从花费时间的长短就可以看出是否取得进步。同时,老师、家长也可以利用计时功能设立奖励机制。例如,规定在二十秒内完成十道题目的学生可以得到一个大大的奖励,激励学生一次又一次地挑战这个时间。
为了让这个四则运算自动生成器的使用人群跨越国界,就需要我们实现语言切换功能。不仅让中国大陆的小孩可以简单上手这个小程序,同时还能让中国台湾以及外国的小孩同样可以使用。实现这样一个小小的功能,就可以让我们这个自动生成器的受众面遍布世界各地,不受语言的障碍,何乐而不为呢?
大多数的时候我们都不能要求这些小孩子在一个时间段内持续不断地做计算题,而是让他们分次来完成。举个例子,当老师布置小孩子一周之内要完成200道的四则运算,并记录做对多少题,做错多少题时,绝大部分学生肯定会选择一天做几次,一次做几题,极少同学会选择一次性把这200道题做完。这样子就存在一个问题,如果分次做的话那每一次做对多少题做错多少题都要登记下来吗?这也太麻烦了。因此就需要我们能够记录用户做题的总数,即使在用户退出又再次启动时,可以做到把以前的对错数量保存并在此基础上进行增量计算。
——引用于原项目作者的博客(链接)
我们在这个需求分析的基础上进一步完善四则运算的功能,具体功能见设计分析,功能展示见截图。
(2)设计分析
- 增加括号操作符
- 增加乘方运算符
- 增加“重新开始”功能
(3)展示每个功能的核心代码
运算功能:
① 整数简单运算
② 分数简单运算
③ 整数混合运算(有括号)
“重新开始”功能:
优化语言切换功能:
优化复习功能:
(4)程序运行及每个功能的使用截图
初始界面
简体中文
繁体中文
English
运算功能
(5)思维导图
(6)类图
(7)覆盖率
覆盖率分析:界面的覆盖率降低,运算的覆盖率升高,总体覆盖率相对升高。
(8)给出效能分析工具的分析结果
(待续——软件安装有问题)
3.其它
(1)博客开头给出两人的学号(见博客开头)
(2)结对编程的感受和体会
- 首先,两个人合作确实能完成的快一些(1+1>2),但是总会遇到价值观相左或者意见不同的时候,但都能很愉快的解决,因为我们的目标就是完成项目需求。 。
- 最大的体会就是改别人的项目比自己写项目难得多,你要理解他们做这个项目时的想法(居然忘了问学长),理解他们为什么要用这样的算法,从他们的角度看待这个项目,并在这个基础上做出扩展;自己写项目的时候,就可以根据自己的想法逐步进行,比较好理解。
- 然后非常感谢队友的体谅(毕竟我做的工作不多),我们可以一起分析项目,向他人请教,并做出自己的改变,还是值得开心滴。
- 对于项目,我们想过很多修改的方法,但是改起来又觉得有问题,讨论用的时间还是蛮多的。
- 我们又一次的合作比之前更加融合。
(3)两人在讨论、细化和编程时的结对照片
(不在一个宿舍,总是相约图书馆的我们)
(4)完成PSP表格
PSP2.1 | 个人开发流程 | 预估耗费时间(分钟) | 实际耗费时间(分钟) |
---|---|---|---|
· Planning | 计划 | 15 | 40 |
· Estimate | 明确需求和其他相关因素,估计每个阶段的时间成本 | 15 | 20 |
· Development | 开发 | 60 | 80 |
· Analysis | 需求分析 (包括学习新技术) | 10 | 20 |
· Design Spec | 生成设计文档 | 20 | 20 |
· Design Review | 设计复审 | 10 | 10 |
· Coding Standard | 代码规范 | 10 | 10 |
· Design | 具体设计 | 30 | 30 |
· Coding | 具体编码 | 60 | 120 |
· Code Review | 代码复审 | 10 | 20 |
· Test | 测试(自我测试,修改代码,提交修改) | 15 | 30 |
· Reporting | 报告 | 30 | 40 |
· | 测试报告 | 10 | 10 |
· | 计算工作量 | 10 | 5 |
· | 并提出过程改进计划 | 10 | 15 |
(5)码云上的代码记录
(6)码云上的编码规范文档
(因为没有大量修改就使用了原项目的编码规范)