团队作业二
团队成员:张雁博 张玉 王常辉 祝良海 赫智明
文档如下:
1.概述
1.1 开发背景
二十世纪后半叶,以电子计算机为代表的现代科学获得了突飞猛进的发展并迅速和人们的日常生活结合在一起。计算机技术的发展和进步也使电子语言词典的诞生成为可能。虽然只有十来年的历史,电子词典却已经迅速发展壮大,成为词典家族中具有旺盛生命力的一员。尽管目前它尚不足以取代传统词典,但在英语学习和教学中,由于它实用、快捷、准确、经济等特点,已经成为传统英汉词典的有力竞争者,并对传统的词典提出了挑战。
电子词典是指存储在磁盘、光盘、半导体只读存储器等介质中的计算机(器)可读词典,是随着电子计算机技术应运而生的具有革命性意义的词典形式。它突破了传统词典在结构、载体、容量、编纂方式、查询方式、扩展空间等方面的限制,拓展了词典的使用空间和使用对象,打破了传统印刷词典一统天下的局面,更好地满足了词典及计算机用户的需求。
对于电子词典,其实已经有很多特别好的软件了,比如常用的有道词典,金山词霸等等。然而,由于我们组的成员包括我在内对于英语学习都有这样或者那样的困难,对英语的学习积极性不高,所以,我们决定自己动手做一个英汉词典,提高一下对英语学习的积极性,以便更好地学习英语这门语言。
1.2 开发目标
我们通过认真的调查才确定了此次的开发目标,我们会根据用户的需求,对传统的电子词典进行改进,更大程度的满足用户的需求。所以我们会以服务用户为根本,以方便快捷为目的,以贴近实际为基础,以增进学习为目标,以让用户满意为终极成果。
1.3 参考资料
《JAVA从入门到精通》
《JAVA程序设计与开发案例》
《JAVA核心技术》
1.4 设计原则
该系统支持多数据库,可拓展性和错误提示和解决。
2 需求分析
2.1 需求陈述
该系统拥有最基本的翻译功能,能够英汉互译,和近义词显示,方便比较推敲,然后就是拥有用户登录和管理员登录系统,没有登录过的用户需要注册。用户登录的话会有个人笔记本功能,记录一些不会的、易混淆的单词以及自己对单词的理解或者应用,比如有关该单词的短语、谚语或者帮助记忆的有深意的例句。管理员登录的话,就是对该系统进行的维护工作,可以进行对词库的修改、删除和添加,还可以对注册的用户进行管理,对于长时间不用的,比如超过半年或者更久的用户进行删除等工作。
2.2 操作用例
界面可以进行单词查询,然后单词本功能需要用户登录,新用户需要注册账号。比如:输入账号XXXXXX,密码00000,密保000000.
2.3 功能分析划分
2.3.1 系统登录
系统登录分为两种:一是用户登录,二是管理员登录。
用户登录可能出现忘记密码的情况,这样的话可以利用密保进行密码修改,为忘记密码提供一层保障,如果密保也忘记了,只能重新注册。
管理员登录是设计者在需要时登录,对内部词库等进行修改删除添加等一系列功能操作。
2.3.2 用户管理
用户的添加需要新用户注册,用户的修改功能仅限于修改密码和密保问题;而用户的显示和删除需要管理员进行操作,对于很长时间没有用这个系统的账号进行删除。
2.3.3 单词查询
单词的查询可以英汉互译,还有近义词的显示功能。
2.3.4 单词本功能
用户根据自己的需要和对单词的理解,对单词本进行编辑。
2.4 出错处理
- 查单词没有找到的时候,可以点击返回按钮返回主界。
- 当用户登录账号密码不匹配时,可以返回继续输入,也可以点击忘记密码按钮进行修改密码操作。
- 修改密码有两种情况,一知道密码用密码修改;二是用密保问题修改密码。如果密码和密保问题都忘记了,那么请重新注册账号。
- 当数据库用户过多,信息量过大时会出现卡顿情况,数据库会定时清理很长时间未登录的用户信息。
2.5 安全保密设计
1.密码输入时会用“*”,符号覆盖密码。
2.申请账号时需要绑定手机号,一手机号只能绑定一个账户,避免某些人没登录一次就申请一个账号。
3 总体设计
3.1 系统建模
3.1.1 层次方框图
图1 层次方框图
3.1.2 ER图(实体-联系图)
图2 E-R图
3.1.3 类图设计
图3 类图
3.2 数据库结构设计
3.2.1 数据库E-R图
图4 数据库E-R图
3.2.2 数据库逻辑设计
序号 |
字段名 |
类型 |
长度 |
默认值 |
允许空 |
主键 |
备注 |
1 |
account |
String |
5~15 |
|
N |
|
|
2 |
password |
string |
6~18 |
|
N |
|
|
3 |
Secret |
String |
任意 |
0000 |
Y |
1 |
|
4 |
notebook |
String |
任意 |
|
Y |
|
|
表1 数据逻辑设计表
4 详细设计
4.1 程序流程图
4.1.1 用户登录
图5 用户登录流程图
4.1.2 管理员登录
图6 管理员登录流程图
4.1.3 单词本
图7 单词本流程图
4.1.4 对词库的操作
图8 词库操作流程图
4.2 伪代码编写
4.2.1 用户登录
用户的数据需要用数据库来管理,在数据库中可以建立一个表格,包括用户的账号密码及密保等信息,在用户第一次使用此软件时可以注册一个账号,关于用户的信息输入可以用java中相关函数添加在数据库的表格中,这样随着用户的不断增加,数据库的内容会不断增加,增加到一定程度服务器可能会崩溃,这时可以选用容量更大的数据库,有些数据库是可以相互转化的。在用户注册完事后,登录时只要让其输入的信息与后台的数据库的数据进行核对就行了,这也是可以用java实现的。当输入的数据核对不符时就登录不了账号。当用户忘记密码时,可以回答密保的问题,如果密保的问题与数据库的信息相符时,则可以让其修改数据库里他的账号的密码用户数据的维护。当用户在很长时间没有登录使用时,数据库可以自动删除这个账号及相关的数据。
4.2.2 管理员登录
管理员在必要时登录系统,首先进行输入账号密码,若匹配成功则能够对系统进行操作,否则无权限操作,重新输入或者选择退出。成功后,管理员可以选择对数据库进行一系列操作,包括对单词的修改删除和添加,还包括对用户数据的显示等。
4.2.3 单词本
首先判定用户是否能够成功登录,如果成功的话,用户可以对先前记录的内容进行查看和修改,也可以增加新的内容;如果登录不成功的话,会返回,选择重新登陆或者直接退出即可。
4.2.4 词库的操作
对词库的操作是管理员的权限,因此需要管理员事先登录获得权限,然后就可以根据社会趋势和潮流对此词库进行管理,包括修改删除和增加等;如果登录失败,需要重新登录或者直接退出。
5 实现
5.1 编码
5.1.1 代码约定
- 标记和注释代码的标准化格式。
- 代码间隔、格式和缩进的原则。
- 对象、变量和过程的命名约定。
5.1.2 代码编写原则
(1)函数最短原则(不多于30行)。
(2)变量单一职能原则(一个变量只允许承担一个责任,针对每次赋值,创建一个独立。对应的临时变量。循环变量和收集结果变量除外)。
(3)函数单一职能原则(一个函数只做一件事情)。
(4)for循环单一职能原则(一个for循环只做一件事情,也许你会考虑效率问题,但不经过测试是没有发言权的)。
(5)三次原则(事不过三,三则重构)。
5.2 测试要点
5.2.1 登录测试要点
注册账号时,账号是string类型的,字长5~15个字节,密码也是string类型的字长6~18个字节,密保是string类型,字长任意。
登录时只需要账号和密码同时匹配即可,密保是为那些忘记密码的用户提供一层保障。
5.2.2 主界面测试要点
1.输入英文单词或者汉语意思,显示单词及意义。
2.用户登陆后可进行单词本的记录和编辑功能。
3.管理员登录可以进行对词库的编辑操作,也可以对用户进行管理。
5.3 测试结果和总结
总结:
通过这次软件工程作业,我们收获颇丰,我们不走寻常路,自学了java这门语言,虽然还处在入门的水平,但是我们坚持不放弃,经过我们的努力学习,实现了词典的部分主要功能,学习了前端界面的设计,但是还不是很明白,只要努力过,就有收获,想要做成一个成品软件还有待进一步学习。
此次作业也是我们首次体验团队编程的模式,我们各自分工,完成自己的任务,最后整合成一份作业,大家荣辱与共,同甘共苦,让我们感受到了团队合作的魅力,这是一次大胆的尝试,也是我们将来工作的宝贵经验。
部分功能测试:
部分代码网址:
https://coding.net/u/zhangyanbo/p/Work2/git/blame/master/%E5%9B%A2%E9%98%9F%E4%BD%9C%E4%B8%9A%E4%BA%8C
1.界面
2.英汉互译
6 维护
6.1 维护方法
1.根据用户需求和社会趋势发展对词库进行一系列的添加修改和删除工作。
2.根据用户的使用反馈,定期修复bug以及根据用户的需求添加功能。
3.由专业人员定期对软件进行测试,然后定时更新软件,修复bug。
6.2 功能拓展方法
根据用户的反馈以及专业人员的测试结果,添加新功能或修改原有的功能,而此部分的实现需要维护以及开发人员编写以及修改代码,必要时候还需要其他行业的人员的帮助,如界面的美化等。