201671030114 马秀丽 实验四 软件工程结对项目
源代码
项目 | 内容 |
---|---|
课程名称: | 2016级计算机科学与工程学院软件工程(西北师范大学) |
课程要求: | 实验四 软件工程结对项目 |
课程目的: | 熟悉软件开发整体流程,提升自身能力 |
作业意义: | 第一次体验一个完整的工程 |
任务一:
两两自由结对,对结对方的《实验二 软件工程个人项目》的项目成果进行评价。
评价同学
源代码
评价:整体排版清晰,基本上实现了要求功能,但是所画柱状图不能看出效果,没有输出到文本的结果显示,代码写的还可以,命名挺规范,在java方面要在多熟悉、练习,那么应用起来结果会好很多。
结对同学
任务2:
采用两人合作方式,设计开发一个英文文本统计分析软件。
功能设计
1.实验2要求的功能;
2.单词频数可视化柱状图要求是以下样式:
3.统计该文本行数及字符数;
4.各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
5.可处理任意用户导入的任意英文文本;
6.人机交互界面要求GUI界面(WEB页面、APP页面都可);
7.附加分功能:统计文本中除冠词、代词、介词之外的高频词;
设计实现
1.StatisticalWord()函数,统计指定单词词频个数且显示柱状图;
2.WordList()函数,统计词频个数并输出到文本;
3.Figure()函数,查询K个出现频次最高的单词;
4.Test()函数,统计文本的行数和字符统计数;
5.WordList1()函数,统计文本中除冠词、代词、介词之外的单词输出到文本
6.Main()函数,调用各个功能。
结果展示
1.按按钮调用相应功能
2统计指定单词词频个数且显示柱状图
3.统计词频个数并输出到文本
4.查询K个出现频次最高的单词
5.统计文本的行数和字符统计数
6.统计文本中除冠词、代词、介词之外的单词输出到文本
合作中
代码展示
监听按钮调用相应函数
{
Button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
StatisticalWord frame = new StatisticalWord();
//frame.setBounds(200,300,500,800);
frame.setTitle("统计指定单词词频个数且显示柱状图");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
optStatisticalWord();
}
});
add(Panel,BorderLayout.CENTER);
pack();
}
统计各功能时间
{
long startTime=System.currentTimeMillis();
long lines = Files.lines(Paths.get(new File("src\DATA.txt").getPath())).count();
// System.out.println("行数: " + lines);
long endTime=System.currentTimeMillis();
result.append("字符统计结果为:" + n+"\n行数: " + lines+"\n所消耗时间为:"+ (endTime-startTime)+"ms" );
//System.out.println("所消耗时间为:"+ (endTime-startTime)+"ms" );
}
统计数字或者字符出现的次数
public static int Pross(String str) {
char[] charArray = str.toCharArray();
int all = 0;
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
for (int x = 0; x < charArray.length; x++)
{
if (!tm.containsKey(charArray[x]))
{
tm.put(charArray[x], 1);
}
else
{
int count = tm.get(charArray[x]) + 1;
tm.put(charArray[x], count);
all=all+count;
}
}
return all;
}
总结:
这次作业是在实验二的基础上进行的,首先我们根据实验二的个人PSP做了分析并在开发和编写代码上增加了时间,在开始开发设计之前我们读了对方的代码并选择了这次作业以对方的代码为基础,因为她的代码命名比较规范,完成过程中会遇到各种各样的问题,双方之间的调解和适当的妥协是很有必要的。
psp
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 15 | 20 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 18 | 15 |
Development | 开发 | 480 | 620 |
Analysis | 需求分析 (包括学习新技术 | 20 | 18 |
Design Spec | 生成设计文档 | 20 | 35 |
Design Review | 设计复审 (和同事审核设计文档 | 10 | 25 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 8 |
Design | 具体设计 | 15 | 19 |
Coding | 具体编码 | 400 | 600 |
Code Review | 代码复审 | 20 | 25 |
Test | 测试(自我测试,修改代码,提交修改 | 20 | 47 |
Reporting | 报告 | 15 | 27 |
Test Report | 测试报告 | 10 | 12 |
Size Measurement | 计算工作量 | 4 | 5 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 5 | 8 |