571
社区成员
发帖
与我相关
我的任务
分享Windows/MacOS平台上,可以借助知云文献阅读器等软件实现英文文献的翻译、阅读和批注,Linux平台却缺乏该类软件,因此通过Qt框架,调用百度翻译接口,实现一个围绕翻译功能展开的PDF阅读工具
用户通过打开此阅读软件,进行文档的浏览,标注以及外文文献翻译;用户还可选择注册,登录账号,将文档上传至远程云端,可随时随地查看当前文档和历史文档
从需求表示中找出用例,通常为动名词短语表示的抽象用例
描述用例的开始和结束状态,用TUCBW和TUCEW表示高层用例
对用例进行分类,描述用例之间,用例和参与者之间的上下文,并画出用例图
对用例进行扩展,将整个过程做成扩展用例
参与者:用户
需求中的动词短语:注册、登录、标注、翻译、上传、查看历史版本
通过对用例的边界进行界定,区分开始和结束位置;使用TUCBW和TUCEW表示高层用例
TUCBW
参与者向系统提交的业务请求,用例的起始位置
TUCEW
参与者受到业务请求处理后的结果,用例的结束位置
| TUCBW | TUCEW | |
|---|---|---|
| 注册 | 用户点击注册按钮 | 注册成功返回登录页面 |
| 登录 | 用户点击登录按钮 | 登录成功返回主页 |
| 翻译 | 用户点击翻译按钮 | 返回翻译后的文档 |
| 上传 | 用户点击上传按钮 | 将用户的文档保存至云端 |
| 查看历史版本 | 用户点击历史版本按钮 | 恢复/删除历史版本 |
通过以上的分析,我们可以如下的用例图

文档翻译
| 用户 | 系统 |
|---|---|
| TUCBW:点击翻译按钮 | 告诉用户正在生成翻译文档 |
| 等待 | 返回翻译文档 |
| TUCEW:获得翻译后的外文文献 |
历史版本
| 用户 | 系统 |
|---|---|
| TUCBW:点击历史版本按钮 | 返回历史文档列表 |
| 选择想要恢复的历史文档 | 返回历史文档 |
| TUCEW:获得历史文档 |
收集业务领域的相关信息,主要关注功能需求的层面
头脑风暴,列出重要的业务领域概念,给出概念的属性以及概念之间的关系
对应用业务领域概念进行分类。列出哪些是类,哪些是属性
画UML类图
文档包括创建时间,大小等信息,用户可以上传文档至云端
文档是一个名词,可以独立存在,因此文档是一个类
创建时间是一个名词,不可以独立存在,因此是一个属性,是文档的属性
大小是一个名词,不可以独立存在,因此是一个属性,是文档的属性
上传是及物动词,表示文档和用户之间的关联关系
用户可以查看历史版本,可以恢复/删除历史版本
历史版本是一个名词,不可以独立存在,因此是一个属性,是文档的属性
恢复/删除是及物动词,表示文档和用户之间的关联关系
用户可以选择本地保存或者云端保存
保存是及物动词,表示文档和用户之间的关联关系
用户可以使用不同的语言进行翻译
翻译是及物动词,表示文档和用户之间的关联关系

数据建模指的是对现实世界各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等直至转化成现实的数据库
user表
file表
fileControl表
User表
| 字段名称 | 字段类型 | 描述 |
|---|---|---|
| UserId | varchar | 用户id,主键 |
| Username | varchar | 用户姓名 |
File表
| 字段名称 | 字段类型 | 描述 |
|---|---|---|
| FileID | varchar | 文件id,主键 |
| FileName | varchar | 文件名 |
| CreateDate | datetime | 创建时间 |
| Size | double | 文件大小 |
| Version | int | 文件版本 |
FileControl表
| 字段名称 | 字段类型 | 描述 |
|---|---|---|
| UserId | varchar | 用户id,主键 |
| FileID | varchar | 文件id,主键 |
| Is_trans | boolean | 是否翻译成功 |
| Is_upload | boolean | 是否上传成功 |
| Is_ver | boolean | 版本是否切换成功 |
| Is_del | boolean | 是否删除成功 |
概念原型是一种虚拟的、理想化的软件产品形式

在本项目中,用户可以离线进行文档的浏览,标注以及外文文献翻译;同时也可选择登录账号,将文档上传至远程云端,随时随地查看当前文档和历史文档
设计模式使用模块化封装的方法,用模块化来包容变化,利用多态、闭包、lamda函数、回调函数等特殊的机制方法,将变化的部分和不变的部分进行适当隔离
本项目涉及到了设计模式如下所示
单例模式
中介者模式
单例模式
本项目中数据库连接池的设计采用单例模式
数据库连接是一种数据库资源。数据库软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损耗,这种效率上的损耗还是非常昂贵的,用单例模式来维护,就可以大大降低这种损耗
中介者模式
使用户页面尽可能的和业务代码分离

| Model | 代表一个存取数据的对象及其数据模型 |
| View | 代表模型包含的数据的表达方式,一般表达为可视化的界面接口 |
| Controller | 作用于模型和视图上,控制数据流向模型对象,并在数据变化时更新视图 控制器可以使视图与模型分离开解耦合 |
本项目作为电脑PC客户端软件,采用三层架构进行项目的构建
使用三层架构,可以使软件结构更加清晰,在后期维护时极大的降低了维护成本和维护时间;降低了耦合度,可以很容易的用新的实现来替换原有层次的实现,利于标准化

作者:343