基于Linux平台上的外文文献阅读软件

RIb_123 2021-12-26 18:55:13

目录

  • 1 项目背景
  • 2 需求概述
  • 3 用例建模
  • 3.1 抽象用例
  • 3.2 高层用例
  • 3.3 扩展用例
  • 4 业务领域建模
  • 4.1 业务领域概念分类
  • 4.2 类图
  • 5 数据模型
  • 6 概念原型
  • 7 设计模式
  • 8 软件架构

1 项目背景

Windows/MacOS平台上,可以借助知云文献阅读器等软件实现英文文献的翻译、阅读和批注,Linux平台却缺乏该类软件,因此通过Qt框架,调用百度翻译接口,实现一个围绕翻译功能展开的PDF阅读工具

2 需求概述

用户通过打开此阅读软件,进行文档的浏览标注以及外文文献翻译;用户还可选择注册,登录账号,将文档上传至远程云端,可随时随地查看当前文档和历史文档

3 用例建模

从需求表示中找出用例,通常为动名词短语表示的抽象用例
描述用例的开始和结束状态,用TUCBW和TUCEW表示高层用例
对用例进行分类,描述用例之间,用例和参与者之间的上下文,并画出用例图
对用例进行扩展,将整个过程做成扩展用例

3.1 抽象用例

参与者:用户

需求中的动词短语:注册、登录、标注、翻译、上传、查看历史版本

3.2 高层用例

通过对用例的边界进行界定,区分开始结束位置;使用TUCBWTUCEW表示高层用例

  • TUCBW

    参与者向系统提交的业务请求,用例的起始位置

  • TUCEW

    参与者受到业务请求处理后的结果,用例的结束位置

TUCBWTUCEW
注册用户点击注册按钮注册成功返回登录页面
登录用户点击登录按钮登录成功返回主页
翻译用户点击翻译按钮返回翻译后的文档
上传用户点击上传按钮将用户的文档保存至云端
查看历史版本用户点击历史版本按钮恢复/删除历史版本

通过以上的分析,我们可以如下的用例图

img

3.3 扩展用例

文档翻译

用户系统
TUCBW:点击翻译按钮告诉用户正在生成翻译文档
等待返回翻译文档
TUCEW:获得翻译后的外文文献

历史版本

用户系统
TUCBW:点击历史版本按钮返回历史文档列表
选择想要恢复的历史文档返回历史文档
TUCEW:获得历史文档

4 业务领域建模

收集业务领域的相关信息,主要关注功能需求的层面
头脑风暴,列出重要的业务领域概念,给出概念的属性以及概念之间的关系
对应用业务领域概念进行分类。列出哪些是类,哪些是属性
画UML类图

4.1 业务领域概念分类

  • 文档包括创建时间,大小等信息,用户可以上传文档至云端

    文档是一个名词,可以独立存在,因此文档是一个类

    创建时间是一个名词,不可以独立存在,因此是一个属性,是文档的属性

    大小是一个名词,不可以独立存在,因此是一个属性,是文档的属性

    上传是及物动词,表示文档和用户之间的关联关系

  • 用户可以查看历史版本,可以恢复/删除历史版本

    历史版本是一个名词,不可以独立存在,因此是一个属性,是文档的属性

    恢复/删除是及物动词,表示文档和用户之间的关联关系

  • 用户可以选择本地保存或者云端保存

    保存是及物动词,表示文档和用户之间的关联关系

  • 用户可以使用不同的语言进行翻译

    翻译是及物动词,表示文档和用户之间的关联关系

4.2 类图

img

5 数据模型

数据建模指的是对现实世界各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等直至转化成现实的数据库

user表
file表
fileControl表

User表

字段名称字段类型描述
UserIdvarchar用户id,主键
Usernamevarchar用户姓名

File表

字段名称字段类型描述
FileIDvarchar文件id,主键
FileNamevarchar文件名
CreateDatedatetime创建时间
Sizedouble文件大小
Versionint文件版本

FileControl表

字段名称字段类型描述
UserIdvarchar用户id,主键
FileIDvarchar文件id,主键
Is_transboolean是否翻译成功
Is_uploadboolean是否上传成功
Is_verboolean版本是否切换成功
Is_delboolean是否删除成功

6 概念原型

概念原型是一种虚拟的、理想化的软件产品形式

img

在本项目中,用户可以离线进行文档的浏览标注以及外文文献翻译;同时也可选择登录账号,将文档上传至远程云端,随时随地查看当前文档和历史文档

7 设计模式

设计模式使用模块化封装的方法,用模块化来包容变化,利用多态闭包lamda函数回调函数等特殊的机制方法,将变化的部分和不变的部分进行适当隔离

本项目涉及到了设计模式如下所示

单例模式
中介者模式

单例模式

本项目中数据库连接池的设计采用单例模式

数据库连接是一种数据库资源。数据库软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损耗,这种效率上的损耗还是非常昂贵的,用单例模式来维护,就可以大大降低这种损耗

中介者模式

使用户页面尽可能的和业务代码分离

img

Model代表一个存取数据的对象及其数据模型
View代表模型包含的数据的表达方式,一般表达为可视化的界面接口
Controller作用于模型和视图上,控制数据流向模型对象,并在数据变化时更新视图
控制器可以使视图与模型分离开解耦合

8 软件架构

本项目作为电脑PC客户端软件,采用三层架构进行项目的构建

使用三层架构,可以使软件结构更加清晰,在后期维护时极大的降低了维护成本和维护时间;降低了耦合度,可以很容易的用新的实现来替换原有层次的实现,利于标准化

img


​ 作者:343

...全文
303 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧