项目 | 内容 |
---|---|
软件工程 | 任课教师博客主页链接:https://home.cnblogs.com/u/nwnu-daizh/ |
作业要求: (1)体验软件项目开发中的两人合作,练习结对编程。 (2)掌握Github上增量发布软件的操作方法。 |
作业链接地址:https://www.cnblogs.com/nwnu-daizh/p/10569690.html |
课程学习目标: 掌握Github上增量发布软件的操作方法。 |
熟悉软件开发整体流程,提升自身能力 |
往Github上上传代码,让我们学习到了Github的基本操作方法。 | 第一次体验一个完整的工程 |
任务一《实验二 软件工程个人项目》的项目成果进行评价
评价对象:https://www.cnblogs.com/dxd123/p/10528310.html
GitHub地址:https://github.com/daxd123/mygit/blob/master/词频统计代码.java
博文结构:
此文结构完整,要求中所需要的内容齐全,包括需求分析,功能设计,设计实现,测试运行,代码,总结,PSP等
博文内容:
博文内容充实,文档清晰,内容合格有结构,就是在总结的时候不够完善。
博文结构与PSP中“任务内容”列的关系:
博文结构与PSP中的“任务内容”列的联系比较紧密,基本按照PSP“任务内容”完成,但是总用时比计划用时多很多。
PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因:
完成时间与计划时间差距较大,主要原因是对结构的规划不够完善,导致在实际操作过程中对不可知因素的预知不够,两个时间差距较大。
任务二:
需要给出结对项目源码在Github的仓库主页链接地址:
博文作为结对项目实施过程的文字资料,请完整包含下面7个部分:
1、需求分析:
①在实验二的基础上实现以下功能;
②统计该文本行数及字符数;
③各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
④可处理任意用户导入的任意英文文本;
⑤人机交互界面要求GUI界面(WEB页面、APP页面都可);
⑥附加分功能:统计文本中除冠词、代词、介词之外的高频词;
⑦附加分功能:统计前10个两个单词组成的词组频率。
2、软件设计:
3、核心功能代码展示:
while ((thechar = isr.read()) != -1) {
char letter = (char) thechar;
if ((letter >= 'a' && letter <= 'z')
|| (letter >= 'A' && letter <= 'Z')) {
sb.append(letter);
} else if (sb.length() != 0) {
String theword = new String(sb);
if (wordList.containsKey(theword)) {
wordList.put(theword, wordList.get(theword) + 1);
} else {
wordList.put(theword, 1);
}
sb.delete(0, sb.length());
}
}
4、程序运行:
5、描述结对的过程,提供两人在讨论、细化和编程时的结对照片(非摆拍):
6、 提供此次结对作业的PSP:
任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|
计划 | 20 | 25 |
估计这个任务需要多少时间,并规划大致工作步骤 | 10 | 28 |
开发 | 240 | 310 |
需求分析 (包括学习新技术) | 20 | 25 |
生成设计文档 | 20 | 25 |
设计复审 (和同事审核设计文档) | 6 | 9 |
代码规范 (为目前的开发制定合适的规范) | 10 | 12 |
具体设计 | 25 | 26 |
具体编码 | 130 | 160 |
代码复审 | 20 | 40 |
测试(自我测试,修改代码,提交修改) | 40 | 80 |
报告 | 90 | 110 |
测试报告 | 20 | 20 |
计算工作量 | 30 | 40 |
事后总结 ,并提出过程改进计划 | 40 | 60 |
7、小结感受:
实际过程中,我与结对伙伴划分各自的工作,但却并非各做各的,在过程中的"领航者"与“驾驶员”身份时常互换,相互帮助。一开始困惑很多,完成基础部分的时候,本不打算继续完善进阶甚至做附加任务,因为时间安排不合理,觉得做不来也无法做好,不过两人还是互相搀扶着完成结对任务,我想这也是结对编程带来的。
值得学习的地方:我的队友认真负责,处理任务目标明确、条理清晰,学习能力强
值得改进的地方:实际工作时效率有待提高
源码地址:https://github.com/lzh2540330731/-/blob/master/main.java