英语词频统计器分词器基于Java

需要代码请留言

	 综合实训报告

题 目 英语词频分析器

中国·武汉
2019年 7月

目录
需求分析文档 6
一、引言 6
1.编写目的 6
2.项目背景 6
二、任务概述 6
1.系统定义 7
2.运行环境 7
3.条件限制 8
三.数据描述 9
四.其他需求 10
五.功能描述 10
1.系统组成 10
2.功能划分 11
2.1用户管理子系统 11
2.2统计查询子系统 15
2.3翻译分析子系统 20
概要设计文档 22
1.编写目的及背景 22
2总体设计 22
3.接口设计 25
3.1用户接口 25
3.2外部接口 25
3.3内部接口 25
4.运行设计 25
4.1运行模块组合 26
4.2运行控制 26
4.3运行时间 26
5.系统数据结构设计 26
5.1逻辑结构设计要点 26
5.2物理结构设计要点 26
5.3数据结构与程序的关系 26
6系统出错处理设计 26
6.1出错信息 26
6.2补救措施 27
6.3系统维护设计 27
详细设计说明书 28
1 .引言 28
1.1编写目的 28
1.2背景 28
1.3定义 28
1.4参考资料 29
2.程序系统的结构 29
整体类图 30
3. UI模块设计说明 30
4.词汇分频排序比对模块设计说明 32
4.1模块描述 32
4.2功能 32
4.3交互的模块 32
4.4 模块设计 32
4.词义分析单词还原模块设计说明 34
4.1模块描述 34
4.2功能 34
4.3交互的模块 34
4.4 模块设计 34
5.翻译模块设计说明 35
5.1模块描述 35
5.2功能 35
5.3交互的模块 36
5.4 模块设计 36
软件测试说明书 38
1.软件测试部分 38
1.1软件测试计划 38
2.任务概述 38
2.1目标 38
2.2测试环境 39
2.3需求概述 39
2.4条件与限制 39
3.计划 39
3.1测试方案 40
3.2测试项目 40
3.3测试准备 41
4.测试项目说明 41
4.1测试项目名称及测试内容 41
4.2测试用例 41
4.3进度 49
4.4条件 49
4.5测试资料 49
5.评价 49
5.1准则 49
5.2结束标准 50
6.测试结果 50
6.1 登陆注册测试 50
集成测试 57
1.简介 57
1.1目的 57
1.2背景 57
1.3范围 57
1.4参考文档 57
2.测试约束 58
2.1测试进出条件 58
2.2测试通过和失败准则 58
2.3测试启动/结束/暂停/再启动准则 58
3.测试需求 59
4.测试风险 59
5.集成策略 59
6.集成计划 59
7测试策略 59
8.策略描述 60
项目开发总结报告 61
1.引言 61
1.1编写目的 61
1.2背景 61
1.3定义 61
1.4参考资料 61
2.实际开发结果 61
2.1产品 62
2.2主要功能和性能 62
2.3 总流程图 63
2.4进度 63
3.开发工作评价 63
3.1对技术方法的评价 64
3.2出错原因的分析 64
4.经验与教训 64
2019软件与理论综合实训日志 64
2019软件与理论综合实训日志 66
2019软件与理论综合实训日志 66
2019软件与理论综合实训日志 67
2019软件与理论综合实训日志 68

需求分析文档
一、引言
1.编写目的
本文档首先给出了完成此次词频统计器项目的整个具体流程,为接下来的概要设计、 详细设计及编码阶段提供依据和指导,对该项目最后完成的效果、产品功能需求、性能需求 和非功能需求作出详尽的说明与描述。
2.项目背景
2.1项目名称
英文词频统计器
2.2项目开发者
张赵玥,廖子逸,王愿
3.参考资料
[1]需求规格说明书标准[S].GB 856D-1988.
[2]窦万峰.软件工程方法与实践[M].北京:机械工业出版社,2009.
4.版本信息

5.术语
本系统只是一个简易版词频统计器,对于正常接受英语教育的使用者来说无特殊术语。

二、任务概述
1.系统定义
1.1项目来源及背景
随着现如今大家学习英语的热情的不断高涨,人们迫切想要知道自己写的英文作文用了多少高级词汇以及想知道各项衡量文档的指标,所以这个项目应运而生。
1.2项目要达到的目标
本项目是一个用于英语文档词频统计与词法分析的软件。 具有简单的界面,用户通过注册登陆功能,进入页面。用户通过输入文档的地址即可进行统计一个文档中出现过的所有单词及词频数,统计一个文档中各种词的变化形式的数目,提取某个长度的词、提取词头与词尾含有指定字符串的词,统计数目,适当进行语义分析。
1.3系统各部分组成、与其他部分的关系、各部分的接口等

2.运行环境
2.1 设备环境
普通PC即可
2.2硬件环境
无特殊要求
2.3 软件环境
IJ Idea,Mysql,eclipse
2.4 网络环境
无。
2.5 操作环境
Window7及Window7以上版本。
2.6应用环境
系统结构如下图所示:

图1 系统总流程图

3.条件限制
3.1列出进行本软件开发工作的假定和约束,如经费限制、开发期限等
有可能对于较长的文章来说,查找时间较长;所以要不断的提高算法,并没有经费限制。
3.2列出本软件的最终用户、用户的教育水平和技术专长
本系统由于重点是英语方面的查询,所以最终用户为正在学英语的人或者判卷子的老师,对 于用户的教育水平没限制,只要是跟英语相关的人就可以。
3.3 列出本软件的预期使用频度等
一次需支持用户2~3小时的使用。

三.数据描述
1.静态数据
本系统需要的静态数据是从网络上下载的四六级词汇以及语义匹配的相关内容。
2.动态数据
文档里的内容以及需要进行的内容
3.数据库描述:数据库名称、版本
无。
4.数据字典
字段名称 字段含义 数据类型 宽度 NULL: 注
name 用户名字 Char 20 NO
psd 用户密码 Char 40 NO
score 用户积分(登录次数) intr 5 NO 初始化为0,每次登录成功+1
word 单词 Char 30 NO
meaning 单词含义 Char 60 NO
Liu 六级词库 表 33405 NO
Si 四级词库 表 3
3403 NO
zhuce 用户注册信息表 表 3*var NO 动态添加

5.数据采集
英语词库下载
四.其他需求
1.检测或验收标准:列出故障率、出错率性能要求等验收标准
1.1性能需求:
(1)响应时间:在90%的情况下,一般时段响应时间不超过2秒,高峰时段不超过4秒。在推荐配置环境下:登录响应时间在2秒内。
(2)查询、识别效果良好,可以实现在一定时间内返回用户查询结果。
1.2 故障率:
后续的实际运行中故障率低于20%。
1.3 出错率:
后续的实际运行中出错率低于20%。
2.可用性、可维护性、可靠性、可转换型、可移植性要求
保证在一定允许范围内,可用、可维护及可靠,达到其他功能拓展的目的。
3.安全保密性要求
用户在经过身份认证后,只能访问其权限范围内的数据,只能进行其权限范围内的操作。需要在用户身份真实可信的前提下,提供可信的授权管理服务。
4.开发要求:支持软件,包括操作系统、编译系统、测试软件等
支持Windows系统
5.易用性
界面美观,功能明确,用户可以很容易的辨别功能,熟悉使用。

五.功能描述
1.系统组成
英语词频统计器包括以下子系统:
用户登陆注册子系统:支持用户的注册、登陆。
用户查询统计子系统:用户对自己的文档进行选择查询,统计单词数,并进行升序降序排序,以及统计超纲词汇,提取某个长度的词、提取词头与词尾含有指定字符串的词,统计数目。以及两篇文章的内容比对。
用户翻译分析系统:完成对指定文档单词的词性分析、还原、句子翻译。
2.功能划分

系统功能用例图
2.1用户管理子系统
2.1.1外部用户:
游客身份的用户和登陆用户
2.1.2功能:
注册:注册账号
登陆:登陆系统
更改:更改用户个人信息
注销:注销账号
2.1.3用例图

图2.2 登录用例图细化2
2.1.4活动图

图3 注册活动图

              图4登陆活动图                                                                     

2.1.5场景描述
(1)用例名称:注册
范围:用户管理子系统
级别:中等重要
主要参与者:用户
涉众及其关注点:无
前置条件:昵称、密码符合要求
成功保证:成功注册账号
主要成功场景:
(a)出现登陆界面,右下方有注册选项,选择“注册”
(b)输入用户信息(姓名,密码),提交
©系统检查(查重,查合法性等)
(d)成功注册
扩展:
(2a)若用户申请的昵称已存在,则提示用户“用户名已存在,请重新输入”
(2b)若密码、账号不合法,则提示重置
(2c)账号、密码要求只能有数字、字母(区分大小写)和可打印符号组成
特殊需求:无
技术和数据变元素:用户数据既可以用数据库存储,又可以用文件存储
发生频率:一般

(2)用例名称:登陆
范围:用户管理子系统
级别:重要
主要参与者:已注册的用户
涉众及其关注点:无
前置条件:昵称(账号)存在,密码正确(密码登陆)
成功保证:成功登陆
主要成功场景:
(a)出现登陆界面
(b)选择登陆方式,选择密码登陆则输入昵称,密码,提交
©系统验证
(d)成功登陆
扩展:
(2a)若用户申请的昵称不存在,则提示用户“用户名不存在,请先注册”
(2b)若账号存在,密码错误,则提示重置
(2c)一次登陆密码错误10次以上,则强制退出或者封号1小时
特殊需求:无
技术和数据变元素:用户数据可以用数据库管理
发生频率:经常
2.2统计查询子系统
2.2.1外部用户
用户:系统的合法用户
2.2.2功能
统计:统计单词数,并进行升序降序排序,以及统计超纲词汇,提取某个长度的词、提取词头与词尾含有指定字符串的词,统计数目、词频返回,并写入指定文档。
查询:用户指定文档进行选择查询,统计单词数、词频、超纲词汇及指定字符串的数目,以及两篇文章的内容比对。

2.2.3用例模型视图

图7 统计查询用例图

2.2.4活动图或泳道图
信息统计的活动图

图 8 信息统计的活动图

查询活动图

图9 查询活动图

统计词频词数的活动图

     			 图 10 统计词频词数活动图

指定字符串统计活动图

图 11 指定字符串统计活动图
2.2.5 场景描述
1)用例名称:词频降序
范围:词频统计系统
级别:重要
主要参与者:已注册登陆成功的用户
涉众及其关注点:无
前置条件:登陆成功
成功保证:
主要成功场景:
成功登陆
选择文件
点击“词频降序”按钮,输出结果,并将结果写入文档
特殊需求:无
技术和数据变元素:map,set,list等Java数据结构
发生频率:一般
扩展:相似功能:词频升序、按字母降序、字母升序

用例名称:词头统计
范围:字符串匹配
级别:重要
主要参与者:已注册登陆成功的用户
涉众及其关注点:无
前置条件:登陆成功
成功保证:
主要成功场景:
登录成功
选择文件,输入词头字符串
在文档中查询词头与输入字符串相同的单词,结果框输出文件,并写入指定文件。
特殊需求:无
技术和数据变元素:map,set,list等Java数据结构
发生频率:一般
扩展:相似功能:词尾统计
用例名称:四级比对
范围:字符串匹配
级别:重要
主要参与者:已注册登陆成功的用户
涉众及其关注点:无
前置条件:登陆成功
成功保证:
主要成功场景:
登录成功
选择文件,选择“四级比对”按钮
查询文档中的六级词汇,结果框输出结果,并写入指定文件。
特殊需求:无
技术和数据变元素:用户数据可以用数据库管理
发生频率:一般
扩展:相似功能:六级比对
用例名称:文章比对
范围:字符串匹配
级别:重要
主要参与者:已注册登陆成功的用户
涉众及其关注点:无
前置条件:登陆成功
成功保证:
主要成功场景:
登录成功
在选择框中分别选择两篇文档,选择“文档比对”按钮
查询两篇文档中的相同词汇,结果框输出结果,并写入指定文件。
特殊需求:无
技术和数据变元素:map,set,list等Java数据结构
发生频率:一般
2.3翻译分析子系统
2.3.1外部用户
用户:系统的合法用户
2.3.2功能
词性分析:分析单词词性,并可以完成变形单词(比较级、最高级、复数、动词过去式、动词进行时、过去分词)的还原。
翻译:用户指定文档进行翻译
2.3.3用例
(1)用例名称:文章比对
范围:字符串匹配
级别:重要
主要参与者:已注册登陆成功的用户
涉众及其关注点:无
前置条件:登陆成功
成功保证:
主要成功场景:
(a) 登录成功
(b) 在选择框中分别选择两篇文档,选择“文档比对”按钮
© 查询两篇文档中的相同词汇,结果框输出结果,并写入指定文件。
特殊需求:无
技术和数据变元素:map,set,list等Java数据结构
发生频率:一般
(2) 用例名称:翻译
范围:翻译分析
级别:重要
主要参与者:可运行TranslateTool的用户
涉众及其关注点:无
前置条件:连接网络
成功保证:
主要成功场景:
(a) 运行TranslateTool.java
(b) 在选择框中内容,选择勾选为汉译英,不勾选为英译汉
© 输出结果
特殊需求:无
技术和数据变元素:百度API接口,网络
发生频率:一般

概要设计文档
1.编写目的及背景
1.1编写目的
项目开发总结报告的编制是为了研究本项目的总体需求,背景,对开发结果、开发技术进行分析,总结本项目开发工作的经验,说明实际取得的开发结果以及对整个开发工作的各个方面的评价。
在词频统计、单词分析的过程中,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中在实地调研中获得,并在需求分析说明书中得到详尽的叙述及阐明。
在下一阶段的详细设计中,小组人员可参考此概要设计报告,在概要设计对单词分析、词频统计所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各种模块设计结构,或在修改时找出在本阶段设计的不足或错误。
1.2背景
工程的名称:英语词频分析器
工程产品名称:英语词频分析器
工程组织者:综合实训项目组
产品用户:教师和学生
产品设计者:综合实训项目组
产品生产者:综合实训项目组
产品所有权:综合实训项目组
2总体设计
2.1需求规定
对功能的规定:
英语词频统计器包括以下三个功能:
用户登录子系统:支持用户的注册、登陆
用户查询统计子系统:用户对自己的文档进行选择查询,统计单词数,并进行升序降序排序,以及统计超纲词汇,提取某个长度的词、提取词头与词尾含有指定字符串的词,统计数目。以及两篇文章的内容比对。
用户翻译分析系统:完成对指定文档单词的词性分析、还原、句子翻译。

对性能的规定:
系统的性能需求一般是指相互消息传递顺利,协议分析正确,界面友好,运行时间满足使用需要,安全性得到完全保证等。就实际情况而言,我们最需要考虑的性能需求就是系统的界面问题。本系统在设计的时候,性能需求主要从一下几方面进行考虑:
稳定性:由于系统面对的大量数据的排序,在对大量数据的处理中,一旦服务器发生阻塞而崩溃,将给演示带来很大的麻烦。因此,系统服务器要能及时响应。
可扩展性:系统要保证可持续增长,满足用户需求和业务复杂性要求,系统要能随着用户的需求和技术的不断发展而改进。
易于管理:用户可以很方便地对本系统进行管理,确保系统运行正常。
2.2运行环境
硬件环境:PIV以上处理器,256M以上内存。
软件环境:windows10,Mysql,Eclipse
使用人员:有单词词频、排序、分析、翻译需求的人
2.3基本设计概念和数据结构
2.3.1基本框架图

图12 整体包图
2.3.2数据结构
涉及的主要数据结构如下:
用户信息:账号,密码形成的二元列表。
词库:两张二元表:四级单词,六级单词
查找表:用Java数据结构Map存储<单词,词频>键值对,用Set,List遍历,将文档中分词和申请访问的数据库单词都存到Map中,可以达到快速查找词频和单词比对,也方便调用库函数进行排序。
文件和数据库:描述文件的数据结构或者数据库表的结构。包括文件的逻辑结构、逻辑记录描述、访问方法。数据库中建立B+树索引。

外部文件结构:背景图片;用户指定文档(获取文档绝对路径,在调用FileWordUtil类方法打开文档)
全局数据:无
2.4尚未问决的问题
中英文翻译(不通过网络)
3.接口设计
3.1用户接口
包括UI界面、数据库、文件处理,其中数据库负责词库信息存储,文件处理模块负责文件的操作(包括打开文件、关闭文件和保存文件)和主要功能实现(单词分频统计、分析、比对、翻译)。UI界面负责提供用户需要的友好界面,包括用户注册登录界面、主功能页面(单词分频、排序、比对)、扩展功能界面(翻译界面))。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出重要以及出错信息。
3.2外部接口
3.2.1软件接口
服务器程序可使用Eclipse提供的对MySql的接口,进行对数据库的信息访问。
服务器程序可使用自然语言处理开源包NPL,调用百度接口实现翻译。
3.2.2硬件接口
在输入方面,对于键盘、鼠标的标准输入和文件输入,可用Eclipse的标准I/0,对输入进行处理;
在输出方面,屏幕、文件输出,可用Eclipse的标准I/O进行处理。
3.3内部接口
各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。接口传递的信息将是以数据结构封装了的数据。
4.运行设计
4.1运行模块组合
Main函数调用注册登录界面,登录成功后自动跳转到主功能页面,其中,选择文档是弹出文档选择框,选择功能后,调用功能模块实现所选功能,返回结果并写入文档。扩展功能页面可单独运行。
4.2运行控制
在页面上,通过鼠标点击触发相应的操作。
4.3运行时间
视操作系统而定。
5.系统数据结构设计
5.1逻辑结构设计要点

5.2物理结构设计要点

5.3数据结构与程序的关系
Map、Set、List等Java自带数据结构和MySql中的B+树索引有效提高了检索、比对的速度。
6系统出错处理设计
6.1出错信息
本系统将出错信息分为两种:操作错误和系统错误
操作错误是指用户在本系统的使用过程中进行的错误操作,例如输入格式不规范、输入数据超出范围等。
系统错误是指数据库连接失败、系统以外停机等不可避免的以外事故。
6.2补救措施
当用户操作出错时,显示提示信息,并重新操作。
系统出错时只要重启本软件就可以了。

6.3系统维护设计
定期重启服务器。保证服务器每周重新启动一次,重启之后进行复查。服务器优化,包括整理系统空间和性能优化。

详细设计说明书
1 .引言
1.1编写目的
根据《需求规格说明书》、《概要设计说明书》,在仔细考虑讨论之后,我们对《排序算法的动态可视化系统》软件的功能划分、数据结构、软件总体结构的实现有了进一步的想法。我们将这些想法记录下来,作为详细设计说明书,为进一步设计软件、编写代码打下基础。
在前一阶段《概要设计说明书》中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。
在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的 程序语言书写的程序。主要的工作有:根据在《需求分析说明书》中所描述的数据、功能、运行、性能需求,并依照《概要设计说明书》所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等)
1.2背景
本项目的名称:英语词频分析器
本项目的提出者:综合实训指导老师——赵良
本项目的开发者:廖子逸、张赵玥、王愿
本项目的使用者:有单词分频统计需求、分析翻译需求的人
1.3定义
J2SE : Java2 Standard Edition
NPL : 自然语言处理开源包NPL
英语词频分析器:
数据库中存储四级、六级词汇, 用户通过界面选择功能,后台接收数据,将数据库中的单词存入到Map、Set、List等数据结构,按需求进行数据的排序比较,将结果返回给用户并将结果存入指定文件。可以实现的功能:对指定文档进行选择查询,统计单词数,并进行升序降序排序,以及统计超纲词汇,提取某个长度的词、提取词头与词尾含有指定字符串的词,统计数目。以及两篇文章的内容比对;完成对指定文档单词的词性分析、还原、句子翻译。

1.4参考资料
[1] James Rumbaugh Ivar Jacobson Grady Booch,《UML 参考手册》,机械工业出版社.
[2]袁绍欣,安毅生,赵祥模,葛玮,《java面向对象程序设计》,清华大学出版社
[3]窦万峰,《软件工程方法与实践》,机械工业出版社
[4]《需求规格说明书》
[5]《概要设计说明书》
2.程序系统的结构

整体类图

  1. UI模块设计说明
    3.1模块描述
    实现文件的输入和功能的选择及结果的返回。
    3.2功能
    实现文件的输入和功能的选择及结果的返回。
    3.3交互的模块
    读取文件模块、功能实现模块
    3.4模块设计
    主要的类的对象:

主类:调用Window(),显示登录界面

Window:登录页面负责绘制登录界面和判断登录逻辑及连接数据库;判断代码逻辑,实现登录页面到功能页面的跳转

MyWindow:主功能页面:实现主功能界面的绘制,功能选择,文件选择,参数传递等
类间关系:

主要方法:
Swing绘制页面,连接数据库,事件委托模型获取事件源以接受文档、参数及完成功能选择。
Window.show(),
Window.mouseClicked(), Window.mouseEntered(), Window.mouseClosed()
myDB =New MyDBConnection(Driver,DBURK,DBUser,DBPass)
myOpr=new(DBOperation(myDB)
MyWindow()//初始化界面
Mywindow.actionPerformed()

4.词汇分频排序比对模块设计说明
4.1模块描述
完成主要功能中除词性分析的全部功能。
4.2功能
分频排序:统计单词数,并进行升序降序排序,以及统计超纲词汇,统计数目、词频返回,并写入指定文档。
比对,用户指定文档进行选择查询,与数据库词库比对得到文档中四,六级词汇的数目,以及两篇文章的内容比对得到相同词汇数。
提取,提取某个长度的词、提取词头与词尾含有指定字符串的词,返回结果并写入指定文档。
4.3交互的模块
UI界面模块,数据库模块
4.4 模块设计
主要的类模型:

工具文件:完成从文章中读取单词存入Map,再与数据库得到单词(或者另一篇文章中提取单词)比对,实现词频统计,再将Map中的单词存入Set、List方便遍历、比对、排序、输出。
getWordGroupCountBuffered1 实现将文件中的单词提取到Map
getWordGroupCountBuffered
getSortedWordGroupCountBuffered (String filename,int i) 实现排序
i=1 字母升序
i=2 字母降序
i=3 频数升序
i==4 词频降序
getSortedWordGroupCountBuffered 实现将文件中的单词提取到Map
void printSortedWordGroupCountToFileBuffered(String filename, String destinationFilename,int i)
printtouzichuan 输出结果并保存到文档
printtwo(String filename1,String filename2) 统计相等字符串
gernerateWordList 自动生成英文文件

数据库访问:从数据库中调取四级(六级)单词,与所给文件进行比对,输出结果并写入文件。
主要方法:
Select4()
Select6()
类间关系:

4.词义分析单词还原模块设计说明
4.1模块描述
完成词性分析、单词还原
4.2功能
词性分析:分析单词词性,返回结果并写入文档。其中,JJR 比较级 JJS 最高级 NNS 复数
VBD 动词过去式 VBG 动词进行时 VBN 过去分词

单词还原:将单词变形还原
4.3交互的模块
UI界面模块,数据库模块,NPL包
4.4 模块设计
主要的类模型:

单词还原、词性分析
主要函数:
Npl() 分析得到词性
输入:filename
输出 :void
功能:分析词型

Npl1(String word)
输入:一个单词
输出单词原型
功能:获取对应上面word的词元信息,即我所需要的词形还原后的单词

5.翻译模块设计说明
5.1模块描述
调用百度API,实现翻译功能
5.2功能
可以实现英汉互译;手动输入和粘贴板输入。
5.3交互的模块
UI界面模块,百度
5.4 模块设计
主要的类模型:

类似主函数,负责调用MainFrame(),弹出界面

该线程不断检查输入框中内容是否变化,如有变化,则立即调用调用百度API,输出翻译结果。
主要参数:
private JTextField srcContentTextField; // 记录剪切板的内容
private JTextArea resContentTextField; // 记录翻译的内容
private JCheckBox translateFlag; //标记单词的获取来源
//选中:手动输入 未选中:剪切板获取
private Container topContainer;
主要函数:setMinWindowLayout()
insertUpdate()
public void run()

主要参数:
private final static String PreUrl=“http://www.baidu.com/s?wd=”; //百度搜索URL
private final static String TransResultStartFlag="<span class=“op_dict_text2”>"; //翻译开始标签
private final static String TransResultEndFlag=""; //翻译结束标签
主要函数:
getTranslateResult()
输入:要搜索的单词
输出 :网页爬取的内容
功能:英汉翻译
思路:开启一个线程,将JTextField里面的值不断设置为剪切板里面的值
如果JTextField里面的值改变了(剪切板的值改变了,也就是选中复制了新的单词),调用GetHtmlContentUtils 里面的方法获取翻译的结果,并显示

主要函数:getClipboardText()
功能:得到剪切板的内容。静态函数方便作为一个工具类使用
类间关系

软件测试说明书
1.软件测试部分
1.1软件测试计划
1引言
本部分介绍测试基本情况和要求,包括编写目的、项目背景和术语等。
1.1编写目的
为英语词频分析器测试建立计划,供英语词频分析器测试人员作为网页测试实施时的参考。
1.2专案背景
介绍项目的背景和范围等。
本项目由华中农业大学软件工程学习小组提出,由华中农业大学信息学院2017级计算 机科学与技术专业学生完成。
1.3术语定义
包括软件和测试方面的基本术语。
白盒测试:白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。
1.4参考数据
相关参考文献资料。
[1]窦万峰.软件工程方法与实践[M].北京:机械工业出版社,2018
2.任务概述
本部分描述测试的目标、测试环境、软件的基本需求,以及测试的条件与限制等。
2.1目标
给出本次测试的主要目标、覆盖范围和验收标准等。
本次测试主要目标是对各个子系统的各个子模块进行测试,确保其实现相应功能,且出错率在10%以下。
本次单元测试覆盖整个系统的各个子模块。
2.2测试环境
包括硬件环境、软件环境等。
硬件环境:
对计算机配置要求不高,只要可以正常运行当前主流的浏览器,即可正常运行该网站。
软件环境:
该软件适用于目前主流的操作系统,所以支持Windows10、Windows7、Windows XP三种系统。目前无法提供MAC OS环境进行测试。
2.3需求概述
简要描述系统的需求,尤其是数据需求和事物需求等。
2.3.1数据需求
包括系统涉及的内部数据和外部数据要求,如外部存储格式、访问格式,以及内部数据结构和类型等。
2.3.2事物需求
包括完成测试需要哪些事物需求,如每组测试的过程和处理要求、需要准备哪些工作等。
2.4条件与限制
测试过程需要具备的条件,如各硬设备、软件系统保证、人员齐备、各方面互相配合、内部协调等。限制包括资金限制、时间限制、环境限制等。
2.4.1测试条件
测试需要负责人与各个子系统负责成员在场,在软件系统整体实现程度较高时,方可开始测试。在测试过程中,还要做到小组内各成员间相互配合,及时沟通交流以解决出现的问题。
2.4.2测试限制
主要限制是时间限制,前期开发花去过多时间,以至于后期测试所剩时间不够多,不过还是能够如期完成测试。
3.计划
本部分描述测试方案、测试的项目、测试前的准备工作和人员配备等。
3.1测试方案
测试方案包括测试策略、测试过程、测试内容、要采用的测试技术,以及技术标准等。
3.1.1用户登录注册
3.1.1.1 测试策略:对不同功能进行测试
3.1.1.2 测试过程:测试用例设计,测试用例编写,测试,测试结果分析,误差改进;
3.1.1.3 测试内容:对各个子功能进行测试
3.1.1.4 测试技术:白盒测试
3.1.2用户使用
测试计划:使用多个用户重复地对各个按钮进行测试
测试过程:测试用例设计,测试用例编写,测试,测试结果分析,误差改进;
测试内容:用户修改个人信息,登陆成功,进行四六级对比,统计超纲词汇, 对文章词汇进行升序降序排序等;
测试技术:白盒测试;
3.2测试项目
包括功能测试、回归测试、接口测试和文件测试等项目。
3.2.1功能测试:依据需求规格说明书中描述的所有功能,根据项目实际情况和约束,选择全部或部分功能进行测试。
3.2.2回归测试:在测试的过程中对发现系统缺陷,应及时修正,每天对系统进行一次回归测试,在修正的程序中对发现的缺陷进行验证,以确保其得以改正。在系统交付前做一次完整的系统回归测试。
3.2.3接口测试:对接口的正确性、操作性和友好性等进行测试。
3.2.4文档测试:主要包括对需求文档、设计文件、用户文件的测试,测试重点在文档内容的正确性、准确性。主要采用走查的方式进行。
3.3测试准备
在测试前,要做到:
与各模块的主要负责人共同协商讨论;
阅读软件规格说明书、概要设计说明书、详细设计说明书,并以此作为总的提纲;
选择合适的输入数据;
编写测试用例等。
3.4测试机构及人员
测试机构的组建和人员组成、每个人员的职责和任务等。
测试机构由开发人员组成,负责开发各子系统的人员同时负责测试该部分主要功能。
4.测试项目说明
4.1测试项目名称及测试内容
对每个测试用例,包括用例编号、输入数据、预期的输出结果等。
每个测试用例会测试子系统中不同模块的不同功能,会有正确的输入与错误的输入。
4.2测试用例
编写测试用例的输入数据格式、顺序和输出方式等。
测试用例范本
测试用例编号
测试项目
测试内容
预设条件
输入
操作步骤
预期输出

4.2.1登录注册
4.2.1.1 用户账号测试
测试1
测试用例编号 001
测试项目 用户账号测试
测试内容 用户注册测试
预设条件 无
输入 点击注册按钮
操作步骤 点击
预期输出 弹出注册界面

测试2
测试用例编号 002
测试项目 用户账号测试
测试内容 用户注册成功
预设条件 无
输入 输入账号和密码
操作步骤 在账号输入框输入账号和密码
预期输出 账号输入框提示“注册成功”,

测试3
测试用例编号 003
测试项目 用户账号测试
测试内容 用户注册失败
预设条件 用户名已经存在
输入 输入已有的用户名
操作步骤 输入
预期输出 无法正确注册,注册失败

测试4
测试用例编号 004
测试项目 用户账号测试
测试内容 注册成功,数据库出现信息。
预设条件 正确连接数据库
输入 输入要注册的账号密码
操作步骤 在注测页面输入正确合理信息,并查看数据库
预期输出 数据库中出现信息。

测试5
测试用例编号 005
测试项目 用户账号测试
测试内容 用户账户测试
预设条件 密码为小于等于45字节字符串
输入 超过45位字符串
操作步骤 输入未按照要求的密码
预期输出 密码设置失败

测试6
测试用例编号 006
测试项目 用户账号测试
测试内容 用户登录测试,测试账户
预设条件 账户位数限制
输入 账户输入超出限制
操作步骤 输入一个很长的字符串
预期输出 注册失败

4.2.1.2 统计查询测试

						测试7

测试用例编号 007
测试项目 统计单词数
测试内容 词频升序
预设条件 输入正确的文章地址或选择正确地址
输入 无
操作步骤 点击
预期输出 框架上方会出现结果

测试8
测试用例编号 008
测试项目 统计单词数
测试内容 词频降序
预设条件 输入正确的文章地址或选择正确地址
输入 点击词频降序
操作步骤 点击
预期输出 框架上方会出现结果

测试9
测试用例编号 009
测试项目 统计单词数
测试内容 字母降序
预设条件 输入正确的文章地址或选择正确地址
输入 点击字母降序
操作步骤 点击
预期输出 框架上方会出现结果

测试10
测试用例编号 010
测试项目 统计单词数
测试内容 字母升序
预设条件 输入正确的文章地址或选择正确地址
输入 点击字母升序
操作步骤 点击
预期输出 框架上方会出现结果

测试11
测试用例编号 011
测试项目 提取某个长度的词
测试内容 提取具体长度的词
预设条件 正确地址
输入 输入要提取的长度
操作步骤 输入长度
预期输出 结果输出在屏幕上

测试12
测试用例编号 012
测试项目 提取词头含有指定字符串
测试内容 提取字符串
预设条件 文章地址正确
输入 输入词头字母
操作步骤 输入词头
预期输出 结果输入在屏幕上

测试13
测试用例编号 013
测试项目 提取词尾含有指定字符串
测试内容 提取字符串
预设条件 文章地址正确
输入 输入词尾字母
操作步骤 输入词尾
预期输出 结果输入在屏幕上

测试14
测试用例编号 014
测试项目 与词库比对
测试内容 四级词汇比对
预设条件 文章地址正确
输入 无
操作步骤 点击按钮
预期输出 统计内部词及超纲词

测试15
测试用例编号 015
测试项目 与词库比对
测试内容 六级词汇比对
预设条件 文章地址正确
输入 无
操作步骤 点击按钮
预期输出 统计内部词及超纲词

测试16
测试用例编号 016
测试项目 两篇文章比对
测试内容 比对两篇文章相同的词
预设条件 文章地址正确
输入 无
操作步骤 点击按钮
预期输出 统计两篇文章的相同词汇

测试17
测试用例编号 017
测试项目 翻译
测试内容 翻译单词
预设条件 无
输入 翻译单词输入
操作步骤 输入翻译单词
预期输出 显示结果

测试18
测试用例编号 018
测试项目 用户浏览功能
测试内容 用户点击热门话题
预设条件 无
输入 点击话题
操作步骤 点击
预期输出 可以跳转用户界面

4.3进度
制定每个测试项目的进度安排和人员安排。
4.3.1模拟用户注册账号并使用新帐号进行登记,开始点击各个按钮,测试各个功能。
4.4条件
针对每个测试项目,确定需要的硬件条件、软件条件和人员条件等。
硬件条件:有可以正常工作的键盘与鼠标,可以进行标准输入输出,因为本系统对硬件要求不高。
软件条件:要求整体软件系统可以工作,即基本完成子系统的基本功能。
人员条件:要求所有参与需求分析、开发设计的组员都加入,分别对各小组负责的子系统进行测试。
4.5测试资料
测试需要参考的相关数据、文件及规范等。
[1]窦万峰.软件工程方法与实践[M].北京:机械工业出版社,2018.
5.评价
给出测试评价准则和结束标准。
5.1准则
包括质量准则,如错误率、效率、可靠性等,以及覆盖准则,如用例的覆盖度等。
5.1.1注册登录子系统
用户注册用户名重复概率控制在0.1%。;
用户登录接口出错概率 0.1% ,出错后要及时处理,包括数据库技术和接口的提示;管理员基本信息的检测出错率 0.1%。
5.1.2用户使用子系统
用户昵称重复时通过率低于0.1%,使用时模块崩溃率低于0.01%,出错后要及时处理,包括数据库技术和接口的提示。
5.2结束标准
以错误率为基准。
三个子系统的单元测试均以错误率为基准。
目标为测试错误率均低于5%。
6.测试结果
6.1 登陆注册测试
点击运行按钮

点击注册按钮

成功注册后进行登陆

登陆成功后,可进入词频统计器主页面

选择文件

进行六级比对(内有超纲词)

文章词汇输出
词频升序

词频降序

字母升序

字母降序

词尾统计

词头统计

提取固定长度的词

两篇文章比对

翻译

查询速度:
情况1未建立索引
最好:
最坏:
平均:
异常值:
情况2:建立主键索引(主键为id_num)
最好:
最坏:
平均:
情况3:建立主键索引+单词索引(B+树索引)
最好:

最坏:
平均:

异常值:
情况4:建立单词索引
最好:
最坏:
平均:
由上可见: 建立主键索引+单词索引(B+树索引)
为速度和稳定性最好的方案.
91万单词的词频统计和排序(0.21s左右)

91万单词统计六级词汇数量和超纲词(3.2s左右)
数据库数据和NPL包进行词还原,速度较慢

单词的词性分析
时间长

集成测试
软件集成测试文件制定集成测试的过程与策略、测试需求、测试工具等,具体如下。
1.简介
1.1目的
描述集成测试计划的编写目的及本次集成测试的主要目的。
编写目的:
本文档用于描述集成测试所要遵循的规范以及确定测试方法、测试环境、测试用例的编写和测试整体进度的计划安排、人力资源安排等。
1.2背景
描述项目或产品的背景。
项目名称: 词频统计器
项目提出者: 小组成员
开发单位: 华中农业大学信息学院。
用户: 对英语学习热情高涨的人。
项目实施单位: 华中农业大学。
与其他系统关系:本系统独立运行。
1.3范围
描述集成测试在项目的整体范围。
集成测试范围覆盖登各个系统
并会联动地测试各个子系统中的各个子功能。
1.4参考文档
[1]窦万峰.软件工程方法与实践[M].北京:机械工业出版社,2018.
2.测试约束
描述本次集成测试所要遵循的准则及条件约束等。
2.1测试进出条件
2.1.1进入条件
基本软件已经完成,而且在之前的单元测试中,各部分子系统都通过了,且无致命性问题,在各部分连接完成之后,可以进入系统的集成测试。
2.1.2退出条件
致命和严重级别的缺陷清除率达到100%,致命和严重级别的缺陷修复率达到100%,一般缺陷的修复率达到80%且遗留缺陷数小于2个。而且,每次系统测试发现的缺陷数量呈现收敛趋势。
2.2测试通过和失败准则
2.2.1通过准则
各子系统间可以完成基本的信息交互,而且在某些功能的互动上可以达到良好的水平。
2.2.2失败准则
各子系统间无法完成基本信息交互,或是子系统间完成信息交互的测试过程中,错误率超过20%,均会视为失败。
2.3测试启动/结束/暂停/再启动准则
2.3.1测试启动准则
每次测试员在测试环境通过的条件下,收到测试模块列表且检验过测试样例的合理性后,可以开始测试。
2.3.2测试结束准则
测试案例全部执行完毕,而且大部分输出符合输入,整体出错率在预期范围之内,测试结果证明系统符合需求,遗留的问题在质量标准允许范围之内,即可结束测试。
2.3.3测试暂停/再启动准则
当被测模块出现致命性错误,如插入数据不成功反而导致整个系统崩溃,让测试案例无法继续执行。此时,测试工作需要被暂停,将整个系统分为几个非关联模块,在各个非关联模块中完成相关测试排错,当各自的模块调试成功后,方能再启动测试。
3.测试需求
该测试系统已大体完成,其各部分子系统已经可以完成需求设计时的相应功能,且在预先的单元测试中已可以实现初步联动。
4.测试风险
此处描述测试任务可能遇到的风险,以及规避的方法。
1.人力资源不足:解决方案:保证稳定的人员安排。
2.测试时间不足:解决方案:动员测试人员完成测试任务。
3.硬件资源不足:解决方案:事先分析测试所需硬件资源,及时申请,保证测试工作顺利进行。
4.质量需求或产品的特性理解不准确,造成测试范围分析的误差,结果某些地方始终测试不到或验证的标准不对;解决方案:小组讨论尽力统一标准。
5.集成策略
准备以核心系统先行的集成测试策略。
6.集成计划
对核心系统中的每个模块进行单独、充分的测试,必要时使用驱动模块和桩模块。
对于核心系统中的所有子系统,将其一次性集合到被测系统中,解决集成中出现的各种问题。
按照各外围软件部件的重要程度以及模块间的相互制约关系,拟定外围软件部件集成到核心系统中的顺序方案。经评审过后,即可进行外围软件的集成。
在外围软件部件添加到核心系统以前,外围软件部件的模块级集成测试。
按顺序不断加入外围软件部件,排除外围软件部件集成中出现的问题,形成最终的系统。
7测试策略
测试策略提供了对以上测试对象实施测试的方法。对每一个工作版本将进行以下3种类型的测试:
接口测试:即测试接口调用。
功能测试:即测试工作版本应该实现的功能。
回归测试:即在新版本中执行以前的测试用例。
8.策略描述
此处描述了根据项目的具体特征所确定的集成测试策略。
顺序一般是深度优先,自下而上,自上而下等。深度优先即 为关键(主控路径上的)业务流程涉及的模块先集成在一起,然后再集成辅助业务模块。自下而上:即已实现的较低层的功能优先集成,然后逐层上升,形成整个系统;自上而下:即事先存在一个稳定的架构,不断地向下细化,最后实现所有具体的功能细节。

项目开发总结报告
1.引言
1.1编写目的
编写本报告的目的是研究本系统的总体需求、背景。对开发结果、开发评价进行分析,得出经验与教训。
1.2背景
本项目的名称:英语词频统计器
本项目的提出者:综合实训指导老师——赵良
本项目的开发者: 张赵玥,廖子逸,王愿
本项目的使用者:需要学习英语的人
1.3定义

1.4参考资料
[1] https://www.cnblogs.com/ios9/p/9651770.html#_label2
[2]需求规格说明书标准[S].GB 856D-1988.
[3]窦万峰.软件工程方法与实践[M].北京:机械工业出版社,2009.
[4] https://www.cnblogs.com/tec-vegetables/p/4153144.html
[5] https://stanfordnlp.github.io/CoreNLP/api.html
[6] https://blog.csdn.net/weixin_34613450/article/details/84317158

2.实际开发结果
2.1产品
此程序系统包括三大程序系统,它们分别是:用户登陆注册子系统、用户查询子系统、用户翻译分析系统。其中每个大模块下还有若干个子模块。
用户登陆注册子系统:支持用户的注册、登陆。
用户查询统计子系统:用户对自己的文档进行选择查询,统计单词数,并进行升序降序排序,以及统计超纲词汇,提取某个长度的词、提取词头与词尾含有指定字符串的词,统计数目。以及两篇文章的内容比对。
用户翻译分析系统:完成对指定文档单词的词性分析、还原、句子翻译。
2.2主要功能和性能
系统的主要功能如下:
用户通过注册登陆进入子系统。
用户通过输入正确的文章地址或选择文章进行查询。
用户通过按钮进行选择自己想要完成的功能。
2.3 总流程图

2.4进度
需求分析 需求分析文档 2019.6.15
设计阶段 概要设计文档和详细设计文档 2019.7.9
测试阶段 测试分析报告 2019.7.9
项目完成 项目开发总结报告 2019.7.9

3.开发工作评价
3.1对技术方法的评价
在开发过程中开发工具是用eclipse平台,JAVA 是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,这也是我们用JAVA编写的主要原因。
算法比较简单,但为了减少查询时间,我们对算法进行优化,一开始我们都是用数组进行搜索,时间较长;所以我们改用了List和map映射进行,降低时间复杂度。而且我们还对数据库建立索引,减少时间。三天时间里,我们实现了基本功能,之后时间里对功能进行扩充。
3.2出错原因的分析
一开始对四,六级词汇查询的时候没有恢复原型,使得结果出错。还有就是语法树运行时间过长,使得结果出错。
4.经验与教训
在本项目开发的过程中,我们的团队遇到了一些困难,但最终都被我们的团队一一克服。
这些都得益于团队成员明确的分工、成员之间良好的交流与合作,一旦需求提出改变,我们的程序就要做出相应的变动。
不能以实现为目的,要以优化为目的,要不断的优化自己的实现。
在接下来的学习中,想要把中英文翻译功能加入,并加入中文统计功能。
我相信我们的团队会在下一个项目中取得更好的成绩。

2019软件与理论综合实训日志
组长:张赵玥 组员:廖子逸,王愿
日期:2019年7月5号 星期五(第一天)
个人日志表:
姓名 工作记录 工作总结

张赵玥
连接数据库
下载六级词汇
将六级词汇转化为excel
出现问题:并未见过去式,过去分词
将文件的内容按次数降序排列
将文件内容按降序升序排序

在这之前已经装好了软件,并开始着手做词频统计器的数据库准备。

廖子逸
连接数据库
下载六级词汇
将六级词汇转化为excel
出现问题:并未见过去式,过去分词
将文件的内容按次数降序排列
将文件内容按降序升序排序

在这之前已经装好了软件,并开始着手做词频统计器的数据库准备。

王愿
连接数据库
下载六级词汇
将六级词汇转化为excel
出现问题:并未见过去式,过去分词
将文件的内容按次数降序排列
将文件内容按降序升序排序

在这之前已经装好了软件,并开始着手做词频统计器的数据库准备。

2019软件与理论综合实训日志

组长:张赵玥 组员:廖子逸,王愿
日期:2019年7月6号 星期六(第二天)
姓名 工作记录 工作总结

   张赵玥	   

将文件的内容按次数降序排列,升序排列,按字母升序降序排列。提取固定长度。
对存储结构进行优化,使得时间效率更高

廖子逸
提取某个长度的词、提取词头与词尾含有指定字符串的词,统计数目。以及对数据库进行查询

学会对数据库里的内容用Java进行查询,搜索

王愿
做登陆注册功能及词频统计器的界面。
做好了登陆注册简单界面。

2019软件与理论综合实训日志
组长:张赵玥 组员:廖子逸,王愿
日期:2019年7月7号 星期天(第三天)

   姓名	    工作记录	    工作总结

   张赵玥	   

完成文章比对;
及对组员的代码进行整合
此时已经能实现大致的整体功能。

廖子逸
完成对四六级单词分类。统计超纲词,完成词性分析功能。
对jar包进行学习

王愿
优化登陆注册界面及词频统计器的界面
使界面更加美观。

2019软件与理论综合实训日志
组长:张赵玥 组员:廖子逸 王愿
日期:2014年7月8号 星期日(第四天)
姓名 工作记录 工作总结

    张赵玥	

对整体的细节进行测试与改动,使其效果更好。加入翻译功能。
注重一些特殊情况,使其效果更佳。

廖子逸 调入npl包,建立语法树,准备做好翻译功能。并对汉语句子进行划分,为英汉互译做准备。

因为语法树执行时间过长,并未能实现功能。

王愿
调入百度翻译的接口实现翻译功能,能够实现汉译英,英译汉的互译。

要清楚函数关系,并想要更好的显示,实现功能。努力寻找jar包

2019软件与理论综合实训日志
组长:张赵玥 组员: 廖子逸,王愿
日期:2019年7月9号 星期二(第五天)
姓名 工作记录 工作总结

   张赵玥	   

写测试报告及项目总结
对每个功能进行严密测试。

廖子逸
更改需求分析及继续做中文分词

完善需求分析的图并接着进行中文分词。

王愿
写详细设计和概要设计 对类图进行精化,并进行文档整理。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值