201671030125 曾佳+《英文文本统计分析》结对项目报告
项目 | 内容 |
---|---|
这个作业属于哪个课程? | 2016级计算机科学与工程学院软件工程(西北师范大学) |
这个作业的要求在哪里? | 实验四 软件工程结对项目 |
我在这个课程的目标是? | 熟悉软件开发整体流程,提升自身能力 |
本次作业在哪个具体方面帮助我们实现目标 | 第一次体验一个完整的工程 |
本次项目代码 | GitHub链接 |
任务一:两两自由结对,对结对方的《实验二 软件工程个人项目》的项目成果进行评价
点评博客链接
GitHub链接
点评内容:
在阅读了你的博文后,我学到了很多,下面时我的一些想法:
1.博文结构排版布局层次分明,排版合理,认真学习了Markdown编辑器语法使用,是我该学习的地方。
2.博文内容按照老师的要求以需求分析、功能设计、设计实现、测试运行、关键代码、总结、PSP展示的步骤分别书写,字体大小适宜,让阅读的人可以方便快捷、清楚明了地找到自己想看的部分。
3.在PSP表中“计划共完成需要的时间”与“实际完成需要的时间”两列数据差别较大的是开发和具体编码两个阶段,并且都是实际完成需要的时间相比更多,我也有这个问题,分析原因可能是对JAVA编程不熟练,或是在编码运行过程中遇到了困难和阻碍。
4.运行代码时了解到你的代码习惯是主函数一个类,其余功能为一个类。个人觉得将每个功能单独为一个类,这样后续如果想对单个功能的代码进行优化,或者添加删除功能的时候,可以方便直接更改。这点也是我需要改进的地方。代码编写符合基本的代码规范,可以继续优化。
5.功能中的柱状图是用符号的长短代替了,如果能使用可视化界面显示会更好。符号代替在词频相差不多的时候符号长度一样,就不能显示出来哪个单词词频更多。
点评心得:
通过这次点评,我认识到自己的很多不足。排版不够美观大方,需要继续学习。编写代码时对类的划分不明确,很多功能都是在Main()函数中完成的,这样编写在后面有错误或者进行复审的时候找代码要前后滑动会很麻烦,我的代码编写不是很规范,这是我需要改进的一个很重要的点。实验二中还是有很多功能做的太简单,柱状图也没有用可视化界面做出来,这点我们会在实验四的结对项目中改进完善。
任务二:采用两人合作方式,设计开发一个英文文本统计分析软件
1. 需求分析
通过对项目要求的分析,本次结对项目的需求为:
(1)实验2要求的功能;
(2)绘制单词频数可视化柱状图;
(3)统计该文本行数及字符数;
(4)各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
(5)可处理任意用户导入的任意英文文本;
(6)人机交互界面要求GUI界面(WEB页面、APP页面都可);
(7)附加分功能:统计文本中除冠词、代词、介词之外的高频词。
2. 软件设计:
3. 核心功能代码展示:展示核心功能代码
计算查询单词词频的时间
long time=System.currentTimeMillis() - start;
JOptionPane.showConfirmDialog(null,print+"\n"+"所用时间为:"+(System.currentTimeMillis() - start)+"ms","结果",JOptionPane.DEFAULT_OPTION); Histogram histogram=new Histogram(map1,input.length);
统计文本行数、字符数、大小写字母、汉字、数字、字节数等功能
while ((str = in.readLine())!= null) {//readLine()方法, 用于读取一行,只要读取内容不为空就一直执行i++;//每循环一次就进行一次自增,用于统计文本行数c += str.length();//用于统计总字符数byte[] bytes=str.getBytes();//求出该行的字节数组d += bytes.length;//用于统计总字节数for (int j = 0; j < str.length(); j++) {//for循环的条件,当j小于该行长度时就一直循环并自增b = Character.toString(str.charAt(j));//返回一个字符串对象if (b.matches("[\\u4e00-\\u9fa5]")) {//if语句的条件,判断是否为汉字c1++;//若为汉字则c1自增} else if(b.matches("[A-Z]")){//if语句的条件,判断是否为大写字母c2++;//若为大写字母则c2自增} else if(b.matches("[a-z]")){//if语句的条件,判断是否为小写字母c3++;//若为小写字母则c3自增} else if(b.matches("[0-9]")){//if语句的条件,判断是否为数字c4++;//若为数字则c4自增} else {//否则可判断为其他字符c5++;//若为其他字符则c5自增}}
词频柱状图部分代码
public void paint(Graphics g) { int Width = getWidth(); int Height = getHeight(); int leftMargin = 50;//柱形图左边界 int topMargin = 50;//柱形图上边界 Graphics2D g2 = (Graphics2D) g; int ruler = Height-topMargin; int rulerStep = ruler/20;//将当前的高度平分为20个单位 g2.setColor(Color.WHITE);//绘制白色背景 g2.fillRect(0, 0, Width, Height);//绘制矩形图 g2.setColor(Color.BLACK); for(int i=0;i<rulerStep;i++){ g2.drawString((30000-1500*i)+"个", 8, topMargin+rulerStep*i);//绘制Y轴上的数据 } g2.setColor(Color.YELLOW); int m=0; for (Entry<String, Integer> entry : map.entrySet()) { int value =entry.getValue(); int step = (m+1)*40;//设置每隔柱形图的水平间隔为40 g2.fillRoundRect(leftMargin+step*2,Height-value/50-5, 40, value, 40, 10);//绘制每个柱状条 g2.drawString(entry.getKey(), leftMargin+step*2, Height-value/50-5); //标识每个柱状条 m++; } }
4. 程序运行:程序运行时每个功能界面截图
主界面
输入要查询词频的单词,用“,”隔开
点击输出词频和柱状图,显示单词及词频数,以及运行时间
点击确定后弹出柱状图界面
输入要查询的高频词个数
点击输出前N个高频词,弹出单词及词频个数,以及运行时间
点击词频导出到文件,弹出运行时间
点击确定后弹出“写入文件成功...”
点击各项统计,弹出统计的文本行数、字符数、大小写字母、汉字、数字、字节数及运行时间等
将单词及词频按字典顺序输出到文件中
5. 结对的过程
1.在实验二的基础上,分析了还需添加的功能。
2.分别实现统计文本行数、字符数、大小写字母、汉字、数字、字节数、运行时间、柱状图等功能。
3.完成附加功能1。
4.最后的GUI界面由我们两人共同编写。
6. 结对作业的PSP
PSP2.1 | 任务内容 | 计划完成时间(min) | 实际完成时间(min) |
---|---|---|---|
Planning | 计划 | 15 | 10 |
Estimate | 规划工作步骤 | 8 | 10 |
Development | 开发 | 130 | 150 |
Analysis | 需求分析 | 18 | 20 |
Design Spec | 生成文档 | 10 | 12 |
Design Review | 设计复审 | 15 | 10 |
Coding Standard | 代码规范 | 20 | 15 |
Design | 具体设计 | 15 | 20 |
Coding | 具体编码 | 250 | 280 |
Code Review | 代码复审 | 20 | 20 |
Test | 测试 | 25 | 30 |
Reporting | 报告 | 20 | 20 |
Test Report | 测试报告 | 10 | 15 |
Size Measurement | 计算工作量 | 12 | 15 |
Postmortem & Process Improvement Plan | 事后总结 | 20 | 20 |
7.总结
本次实验是第一次结对项目,相比之前的个人项目,这次实验的方法步骤都有很大改变。两个人一起编程时,需要在方法、数据结构甚至是变量和函数名上达成一致。这减少了其中一方随意编写代码的可能性,结对编程时也选择了更加标准的语法、格式。每个人独自进行设计、实现软件的过程中难免要犯这样那样的错误。如果是结对编程的话,解决问题的能力就提高了,程序中的错误就会少很多,设计质量和代码质量也会高很多,还会省下很多以后修改、测试的时间。因为有随时的复审和交流,而且程序各方面的质量都会因为实力较强的同伴而变得更高。还有就是两个人一起合作一件事的时候,精神力更能集中、更专注,从而更能快速高效的完成任务。结对编程时我了解到了不同的解决问题的思路和算法,知道了一些还未接触到的键盘快捷键和调试技巧。和同伴在一起工作让我更好地相互了解对方,从而更加理解她,增强了团队凝聚力。一个成功的软件团队需要很多合作,有效地交流、相互学习和传递经验是很有必要的。
转载于:https://www.cnblogs.com/zj-0408/p/10576338.html
201671030125 曾佳+《英文文本统计分析》结对项目报告相关推荐
- 201673020127 郁文曦 《英文文本统计分析》结对项目报告
作业点评 201671030104 邓海祥-词频统计软件项目 相信自己 结对项目 英文文本统计分析 需求分析 从给定文本中得出单词频数的统计数据,对之前的设计进行优化. 软件设计 以之前的设计为原型. ...
- 201671010412 郭佳 英文文本统计分析
项目 内容 项目名称 实验四 英文文本统计分析 Github的仓库主页 https://github.com/HaiYou667/WordCount_Analysis 所属课程 http://www. ...
- 小学四则运算结对项目报告(GUI)
小学四则运算结对项目报告(GUI) 一.Coding.Net项目地址: https://git.coding.net/wsshr/Calculation.git 二.PSP表格(完成前): PSP 任 ...
- 201571030121《小学四则运算练习软件软件需求说明》结对项目报告
201571030107/201571030121<小学四则运算练习软件软件需求说明>结对项目报告 结对小伙伴:冯晓(201571030107) 任务一 首先,我们进行了实例体验,把我们已 ...
- 201671030129 周婷 《英文文本统计分析》结对项目报告
项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 软件工程结对项目 课程学习目标 熟悉软件开发整体流程及结对编程,提升自身能力 本次作业在哪个具体方面帮助我们实现目标 体验组队编程,体 ...
- 201671010436 王雪刚 实验四 《英文文本统计分析》结对项目报告
一:实验名称:软件工程结对项目 二:实验目的与要求 (1)体验软件项目开发中的两人合作,练习结对编程(Pair programming). (2)掌握Github上增量发布软件的操作方法. 三:实验步 ...
- 201671010406 丁家辉《英文文本统计分析》结对项目报告
实验四 软件工程界对项目 博文简要信息: 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 课程学习目标 熟悉软件开发整体流程,提升自身能力 本次作业在哪 ...
- 201671010457 朱石景 实验四《英文文本词频统计分析》 结对项目报告
项目 内容 这个作业属于哪个课程 西北师范大学软件工程 作业要求 实验四 软件工程结对项目 本次实验我的GitHub地址 点击进入 课程学习目标 熟悉软件开发整体流程,提升自身能力 任务一 点评信息 ...
- 201671030109 韩艳艳 《英文文本统计分析》结对项目报告
项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 课程学习目标 熟悉软件开发整体流程,提升自身能力 本次作业在哪个具体方面帮助我们实现目标 第一次体验一个完整 ...
最新文章
- Moodle网络课程上如何添加视频文件
- Spring AOP 源码初窥(二) 从注解开始
- 配置 Oracle 11gR2 在 CentOS6 上开机自启动
- (进阶)LeetCode(119)——杨辉三角 II(JavaScript)
- 【java笔记】缓冲流
- python窗口大小动态变化_python – 如何让tkinter画布动态调整窗口宽度?
- 【正点原子STM32连载】第一章 本书学习方法 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
- clickhouse创建外部字典表
- 沪上各区免费停车场大全
- PC文件在线互传网站推荐
- vue Root file specified for compilation
- h5禁用浏览器下载视频_【HTML5】video 标签禁用自带的下载按钮
- oracle求累积收益率,解决报表sql中的累计收益率问题?换个姿势,再来一次~
- EAAccessory iphone与经过苹果MFI授权认证的硬件通讯
- linux系统深度评测,真国产,深度linux系统评测第二集
- pip安装三方库不成功的解决方法
- 操作系统精选习题——第二章
- xctf攻防世界 CRYPTO高手进阶区 告诉你个秘密
- atmega16应用之TWI(IIC) PCF8574T转接LCD1602
- Java进阶之路~Set集合
热门文章
- java applet类开始博饼_中秋博饼demo
- 比赛现场气氛营造问题II
- Problem F: 凹凸四边形
- zabbix监控nginx状态,显示状态active,accepts,handled,requests
- mysql errorcode 1366_mysql插入emoji表情报 error code [1366]
- MYSQL 1366报错如何解决
- “笨办法”学Python3,Zed A. Shaw,习题29+30
- CTF论剑场学习——杂项
- 坦克对战游戏 AI 设计
- 第二证券|小鹏持续萎靡,理想蔚来逆势反弹破月销记录