项目 | 内容 |
---|---|
这个作业属于哪个课程 | 软件工程 |
这个作业的要求在哪里 | 软件工程结对项目 |
课程学习目标 | 熟悉软件开发整体流程及结对编程,提升自身能力 |
本次作业在哪个具体方面帮助我们实现目标 | 体验组队编程,体验一个完整的工程 |
任务一:
作业 |
---|
所点评博客 |
GetHub |
1.点评内容:
本篇博文结构比较完整,符合老师题目中的要求,博文内容书写较为规范,但缺少了最终字典顺序输出单词及词频数的文件result.txt的内容截图;总结内容中应该也要包含在本次试验中你出现的问题及最终是否解决、如何解决,及本次试验带给你的收获;PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据差异最大的是具体编码部分,实际完成需要的时间较计划共完成需要时间多出来30分钟,可能是自身编码能力过着外部坏境影响等众多因素造成的。编码方面,从软件结构和代码规范来看,你的软件结构和代码整体还算规范,功能是现中柱状图还需要优化,其他功能基本实现。
2.点评心得:
这位同学在上一次的词频统计项目中,除了柱状图还需要优化以外,其他功能基本实现,代码中在必要的部分也有注解;博文部分的排版较我更加用心一点,但缺少了最终字典顺序输出单词及词频数的文件result.txt的内容截图。
任务二:
1.需求分析:
a.在第二次实验的基础上,完善单词频数可视化柱状图要;
b.统计该文本行数及字符数;
c.各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
d.可处理任意用户导入的任意英文文本;
f.人机交互界面要求GUI界面;
g.附加分功能:统计文本中除冠词、代词、介词之外的高频词;
h.统计前10个两个单词组成的词组频率。
2.软件设计:
Main类中主要是实现主界面和从文本中读入单词并统计词频,统计总行数和总单词数的功能,WCS实现查询指定单词词频的界面和功能;PTF实现向文字典顺序写入词频单词的功能,HFW实现输出除介词、代词、冠词的用户指定查看的前N个高频词,WCH实现单词词频柱状图显示。
3.核心功能代码展示:展示核心功能代码:
-
柱状图代码
-
查看文本行数和单词数
4. 程序运行:程序运行时每个功能界面截图:
-
添加文件及功能:
-
选择输出前n个词频最高的单词
-
统计单词的词频
-
词频写入文件
-
统计文本行数及字符数
5. 结对过程及结对照片:
了解学习结对编程,双方进行沟通,首先对双方的编程能力进行评估。然后结合自身能力对实验内容进行分析,划分各自需要负责的模块。在遇到分歧时,交流解决,在达成一致后进行实施。一起讨论并填写PSP时计划花费在具体编码阶段的时间较多。在自己的模块工作完成以后,对方进行复审,发现错误并解决错误。最终填写实际PSP。
6. 此次结对作业的PSP:
psp | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 20 | 15 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 20 | 20 |
Development | 开发 | 200 | 230 |
Analysis | 需求分析 | 15 | 10 |
Design Spec | 生成设计文档 | 30 | 25 |
Design Review | 设计复审 | 10 | 10 |
Coding Standard | 代码规范 | 20 | 15 |
Design | 具体设计 | 20 | 15 |
Coding | 具体编码 | 150 | 200 |
Code Review | 代码复审 | 20 | 15 |
Test | 测试 | 10 | 15 |
Reporting | 报告 | 30 | 25 |
Size Measurement | 计算工作量 | 5 | 3 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 10 | 10 |
总结:
本次结对项目中,在了解了结对项的基础上体会了结对项目,它和个人项目的差别很大。结对项目在最开始进行的时候,需要结对双方对彼此的编码能力及编码习惯有一定的了解,需求分析时,双方会产生分歧,增加项目完成的难度,我们会探讨解决,经过磨合,统一意见。代码复审也提高编程效率,在双方的监督下,代码书写较为规范。达到了一加一大于二的效果。由PSP得知,编程所占的时间比例最大,而实际编程所用的时间也比计划用时要多,所以也需要在编程方面下功夫。
源代码 |
---|
GitHub |