201671010448 杨巧丽 《英文文本统计分析》结对项目报告 实验四 软件工程结对项目

博文简要信息表:

||||
|:--|:--|
|项目|内容|
|这个作业属于哪个课程|(https://www.cnblogs.com/nwnu-daizh/)|
|这个作业的要求在哪里|(https://www.cnblogs.com/nwnu-daizh/p/10569690.html)|
|课程学习目标|熟悉软件开发整体流程,提升自身能力|
|本次作业在哪个具体方面帮助我们实现目标|第一次体验一个完整的工程|

点评信息

点评博客:(https://www.cnblogs.com/sixinjie/p/10562250.html)
Github链接地址:(https://github.com/1615087343/cipin/find/master)
点评内容:博主你好,阅读完你的博文后,博文结构很完善。博文内容方面较为完善,基本上实现了实验要求所达到的目标。对于词频统计方面没有实现柱状图这一点,相信博主在之后的开发过程中加以改进,最后实现。从PSH展示环节可以看出,博主的计划明确,时间分配合理,可以顺利地开发出软件,从PSP“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化可以看出,实际所用时间总是超出计划时间,对开发的不熟练和对程序语言的差异化导致实际时间总是超过计划时间。在以后的学习中继续努力共同进步。
点评心得:通过点评,我发现,我存在很多不足。互评这种方式,可以让我们彼此之间相互学习,共同进步,也可以发现对方的优点自己的不足,取长补短,节省时间,最后开发之后的结对软件。

源码地址:(https://github.com/healer-devil/ydm)

结对项目实施过程

需求分析

1.可处理用户任意输入的英文文本
2.统计该文本的行数及字符数功能
3.指定单词词频统计功能
4.前k个高频词的输出
5.统计该文本的单词数,然后输出到result.txt文件。
6.统计功能耗时
7.GUI人机交互界面
8.统计文本除冠词、代词、介词之外的高频词
  • 核心功能代码展示
		setLayout(null);
		setBackground(Color.cyan);
		setSize(600, 300);
		setVisible(true);
		btn1 = new Button("打开");
		btn2 = new Button("保存");
		btn3 = new Button("关闭");
		tarea = new TextArea("");
		add(btn1);
		add(btn2);
		add(btn3);
		add(tarea);
		tarea.setBounds(30, 50, 460, 220);
		btn1.setBounds(520, 60, 50, 30);
		btn2.setBounds(520, 120, 50, 30);
		btn3.setBounds(520, 180, 50, 30);
		op = new FileDialog(this, "打开", FileDialog.LOAD);
		sv = new FileDialog(this, "保存", FileDialog.SAVE);
		btn1.addActionListener(this);
		btn2.addActionListener(this);
		btn3.addActionListener(this);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				setVisible(false);
				System.exit(0);
			}
		});

//统计该文本行数及字符数
	public int[] allCount(String fileName) throws IOException {
		long a =System.currentTimeMillis();//初始化开始时间
		String line = fileName;
		File file = new File(line);
		InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
		BufferedReader br = new BufferedReader(isr);
		int charNum = 0;// 字符数
		int wordsNum = 0;// 数字数
		int lineNum = 0;// 行数
		// 以流的形式读入文件
		while (br.read() != -1) {
			String s = br.readLine();
			charNum += s.length();
			wordsNum += s.split(" ").length;
			lineNum++;
		}
		isr.close();// 关闭
		int[] linenum = { charNum, wordsNum, lineNum, };
		for (int i = 0; i < linenum.length; i++) {
			System.out.println(linenum[i]);
		}
		System.out.println("字符数:"+charNum+"
单词数:"+wordsNum+"
行数:"+lineNum);
		System.out.println("
执行耗时:"+(System.currentTimeMillis()-a+"ms"));//输出耗时时间
		return linenum;
	}	

程序运行

201671010448 杨巧丽 《英文文本统计分析》结对项目报告
实验四 软件工程结对项目
201671010448 杨巧丽 《英文文本统计分析》结对项目报告
实验四 软件工程结对项目
201671010448 杨巧丽 《英文文本统计分析》结对项目报告
实验四 软件工程结对项目

柱状图

201671010448 杨巧丽 《英文文本统计分析》结对项目报告
实验四 软件工程结对项目

显示程序耗时

201671010448 杨巧丽 《英文文本统计分析》结对项目报告
实验四 软件工程结对项目

读入文件及人机交互

201671010448 杨巧丽 《英文文本统计分析》结对项目报告
实验四 软件工程结对项目

附加功能无能为力啊啊啊啊啊啊啊啊啊啊

结对照片

201671010448 杨巧丽 《英文文本统计分析》结对项目报告
实验四 软件工程结对项目

PSP展示

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 55 60
· Esitimate 估计这个任务需要多少时间,并规划大致工作步骤 350 400
· Development 开发 500 600
· Analysis 需求分析(包括学习新技术) 60 50
· Design Spec 生成设计文档 20 15
· Design Review 设计复审(和同事审核设计文档) 30 30
· Coing Standard 代码规范(为目前开发制定合适的规范) 20 20
· Design 具体设计 40 35
· Coding 具体编码 500 600
· Code Review 代码复审 7 9
· Test 测试(自我测试,修改代码,提交修改) 17 25
· Reporting 报告 10 15
· Test Report 测试报告 15 22
· Size Measurement 计算工作量 5 5
· Postmortem&Process Improvement Plan 事后总结,并提出过程改进计划 10 10
小结感受:需求分析方面,因为是老师所给要求,只是理解含义即可,在开发和代码编写上花费大量时间,错误频繁出现,一直报错,一直修改,很崩溃。修改完最后一处错误时很欣喜。在结对中我们相互促进,共同寻找实现的方法,由于技术方面的不足,附加功能没有实现。PSP展示了我们的开发过程,计划赶不上变化,实际操作的时间远远大于计划时间,程序语言方面存在很大问题,开发过程的经验也很欠缺,还需要多多练习。嘻嘻,最后了感觉作业难度真的好大,好难,下次是不是更难了?