第三次作业
作业地址:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2879
伙伴博客地址:http://www.cnblogs.com/wpghys/
一:结对过程
这是我跑到结对伙伴王派寝室一起商讨代码的照片,由他的另一位室友在我们讨论过程中所拍摄
二:PSP表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
10 |
20 |
· Estimate |
· 估计这个任务需要多少时间 |
120 |
200 |
Development |
开发 |
100 |
130 |
· Analysis |
· 需求分析 (包括学习新技术) |
60 |
30 |
· Design Spec |
· 生成设计文档 |
60 |
45 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
30 |
20 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
30 |
· Design |
· 具体设计 |
10 |
15 |
· Coding |
· 具体编码 |
45 |
50 |
· Code Review |
· 代码复审 |
40 |
10 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
20 |
30 |
Reporting |
报告 |
60 |
50 |
· Test Report |
· 测试报告 |
10 |
5 |
· Size Measurement |
· 计算工作量 |
10 |
5 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
5 |
10 |
|
合计 |
590 |
620 |
三:解题思路描述
首先去除非字母数字,再分割成字符串数组,对字符串数组中每个元素进行判断是否为单词,统计单词个数,然后定义一个字典类,存单词个数和单词;对字典进行按照字典的Value排序
从而输出出现频率最高的10个单词.这次主要我来规划代码思路,搭档动手设计完善代码,但仍然感觉到我们的代码还需要完善。
四:设计过程图
五:操作流程及部分代码图
有了上一次的经验,这一次关于github的操作就较容易上手了
六:运行结果截图
六:单元测试
七:效能分析
可见在函数调用上还需进行处理
八:代码提交上传至git
九:总结
结对编程有利也有弊,但总的来说利大于弊,两人一旦商量好对策就可以高效率去完成,各有各的分工,目标明确,有分歧可以快速协商出再进行优化
以下是我归结出来的优点:
- 程序员互相帮助,互相教对方,可以得到能力上的互补。
- 可以让编程环境有效地贯彻Design。
- 增强代码和产品质量,并有效的减少BUG。
- 降低学习成本。一边编程,一边共享知识和经验,有效地在实践中进行学习。
- 在编程中,相互讨论,可能更快更有效地解决问题。