项目 | 内容 |
---|---|
这个作业属于哪个课程 | >>2016级计算机科学与工程学院软件工程(西北师范大学) |
这个作业的要求在哪里 | >>实验二 软件工程个人项目 |
课程学习目标 | 1.体验软件项目开发中的两人合作,练习结对编程(Pair programming)。 2.掌握Github上增量发布软件的操作方法。 |
本次作业在哪个具体方面帮助我们实现目标 | 第一次体验完整的工程 |
任务一:
项目 | 内容 |
---|---|
点评博客 | >>201671030119词频统计软件项目报告 |
GitHub | >>结对方实验二GitHub链接地址 |
点评内容 | 仔细看了你的词频统计的博文,总体设计实现的还不错,也实现了大部分功能。但是同时呢,也存在一些问题。比如在你的博文中就缺了一部分内容——设计实现,不知道在撰写博文的时候是遇到了什么问题呢?其次,这个项目没有扩展功能,这个也是相对于老师的要求来说没有完成的一个点;另外,我也发现你的博文中有错别字,这个希望你可以改正。 |
点评心得 | 我看完唐盖强同学实验二个人项目的博文以及代码,我觉得总的来说,功能实现地还不错。但是在点评的时候我也说了,还存在一些问题。这些问题其实也是我所存在的,功能是实现了,但是实现地还不够完整,所以这些地方是需要我们共同去进步的。就希望在本次实验的结对项目中我们能够很好地配合,共同完成这个项目。 |
任务二:
a.需求分析###
(1)程序可输出文本单词及对应的词频数;
(2)可查看并输出指定单词的单词及词频数;
(3)可将单词及词频存入文件result.txt中
(4)单词频数可视化柱状图要求是以下样式:
(5)统计该文本行数及字符数;
(6)各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
(7)可处理任意用户导入的任意英文文本;
(8)人机交互界面要求GUI界面(WEB页面、APP页面都可);
(9)附加分功能:统计文本中除冠词、代词、介词之外的高频词;
(10)附加分功能:统计前10个两个单词组成的词组频率。
b.软件设计###
类之间的关系:
c.核心功能代码展示###
- 统计文本中除介词的高频词:
for(Entry<String,Integer> entry : aMap2.entrySet())
{
F=0;
for(int s=0;s<Preposition.length;s++) /* 数组Preposition中存放介词*/
{
if(Preposition[s].equals(entry.getKey()))
{
F=1;
}
}
if(F==0)
{
text.append("单词: " +entry.getKey() + " 次数 :" + entry.getValue()+"
");
count=count+1;
}
if(count==Integer.parseInt(num.getText()))
break;
}
- 统计文本行数与字符数:
StringBuffer sb1= new StringBuffer();
try {
String file1 =file_.getText();
BufferedReader in = new BufferedReader(new FileReader(file1));
while ((str = in.readLine())!= null)
{
str = str.toLowerCase();
sb1.append(str);
line++;
}
text.append("文件行数 : "+line +"
");
in.close();
String str2 = sb1.toString();
String[] wordsArr1 = str2.split("[^a-zA-Z]"); //过滤出只含有字母的
for (String word : wordsArr1)
{
wordCount++;
}
text.append("字符数 :"+ wordCount + "
");
} catch (IOException e1)
{
e1.printStackTrace();//printStackTrace()方法是打印异常信息在程序中出错的位置及原因
}
d.程序运行结果###
- 登陆界面:
- 菜单界面:
- 统计该文本行数及字符数:
- 将单词及词频存入文件result.txt中
- 查看并输出指定单词的单词及词频数:
- 统计文本中除冠词、代词、介词之外的高频词:
e.结对照片###
f.PSP###
PSP展示
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 10 | 20 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 20 | 30 |
Development | 开发 | 300 | 420 |
Analysis | 需求分析(包括学习新技术) | 120 | 100 |
Design Spec | 生成设计文档 | 120 | 120 |
Design Review | 设计复审 | 30 | 20 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 10 | 8 |
Design | 具体设计 | 90 | 120 |
Coding | 具体编码 | 120 | 180 |
Code Review | 代码复审 | 30 | 35 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 40 |
Reporting | 报告 | 60 | 70 |
Test Report | 测试报告 | 20 | 25 |
Size Measurement | 计算工作量 | 20 | 20 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 20 | 30 |
总结:这次结对项目给我最大的感受就是合作真的很重要,两个人分工明确的话,一起做项目效率真的很高。这次的项目可能没有做得很成功,比如扩展功能只实现了一个,还有那个柱状图由于时间和技术等原因没有完成,但是在我看来这已经是一个不错的经历不错的体验,相信以后的更多的机会会让我更加适应合作带来的好处。
点此查看源码