项目 内容
这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健)
这个作业的要求在哪里 技术规格说明书
我们在这个课程的目标是 远程协同工作,采用最新技术开发软件
这个作业在哪个具体方面帮助我们实现目标 确定项目技术,制定技术规格

目前的最新版可以trace我们的石墨文档链接

技术栈

我们的任务有模式识别(OCR),数据云服务等多个技术需求,总体上采取了前后端分离的设计,应对可能产生的发布在多平台的场景.

后端框架

Django,考虑到手机用户的跨平台性,以及开发效率与成员的技术栈,我们选择了Django.

数据库

由于后端框架选择的是Django,经过初步调研,我们选择了适宜于与Django配套使用的Postgresql作为主数据库。在后续开发过程中,如有必要,我们可能会加入如MySQL之类的数据库作为辅助。

前端框架

可能会选择React或者是vue.js,这一块可以考量一些表格显示方面比较优秀的框架。

移动端开发

为了尽可能地与前端开发共享技术栈,降低开发难度,我们选择ReactNative作为移动端开发的框架

web引擎

如果有必要,可以选择使用nginx.

云环境

当前的云环境:学校的华为云环境

可能需要的云环境:

  1. 内容分发网络服务CDN: 用户资源相关
  2. 云Postgresql数据库

技术如何体现设计原则

抽象原则

  1. 底层数据抽象化

    • 把底层数据表单数据抽象化,原始图片(origin)和JSON格式的格式化数据(json)、以及Excel格式数据(excel)是这个表单数据的多个层次。
    • 考虑到可能一个用户有针对单一表单的OCR需求,和多个表单联合的OCR需求,我们要开发不同层次的接口应对不同粒度的需求
  2. 数据行为模块化
    • 考虑不同的行为,基于需求类型进行分类
    • 不同行为的需求划分在不同的区域内
    • 定义一些数据的预处理、后期处理操作

内聚与解耦合

采用前后端分离,采用Restful API就已经很好地体现了这一点。

信息隐藏和封装

我们认为信息隐藏需要做到:

  1. 前后端信息分离

  2. 用户无法直接访问与修改核心数据

我们应该通过接口与规格的约束,使得类和成员的可访问性最小。各种语言中提供了包、protect、private等等来限制访问权限,一些开源框架也有类似的作用。

目前,我们打算前后端通过Restful API进行交互,从而实现信息隐藏。

界面和实现分离

  1. 后端实现提供Restful API,前端通过访问特定的API完成相应的操作
  2. 前后端通过json进行交互,双方均可处理并具有可扩展性
  3. 前端进行同一化的视图层的管理, 易于更改. 不需要再去后端代码中分离.

错误处理

考虑到后端和前端的交互通过Restful API进行,我们选择使用HTTP状态码作为错误分类方式。

HTTP状态码 表述的含义
400 请求参数有误,调用存在语义错误
401 用户未登录,请求身份验证
403 权限不足
404 请求路径错误
405 请求方法错误
413 请求实体过大,超出服务器的处理能力。 如上传图片尺寸过大
500 服务器内部错误、后端遇到了无法处理或者未捕获的错误

除了HTTP状态码以外,我们还在Body中的json信息加入一项status_code,用于更详细地描述错误。

软件运行的一些相关性假设

  1. 用户提供的都是表格数据、对于非表格数据,可以后续做一些误识别处理
  2. 用户提供的可合并表格具有可合并性,不可合并的表格需要定义一下行为
  3. OCR后的数据不一定是完整的表格数据、需要支持用户对表格数据的快捷修改

如何灵活应对变化

  1. 后端处理相关的操作,将提供多个粒度的Restful API,将方便应对不同的应用需求
  2. 扁平化的设计策略,避免多个业务逻辑直接耦合

大量数据的处理能力

  1. 读写和数据库分离:考虑到我们这边的需求比较简单,很难产生疯狂的需求压力,我们会在测试后考虑是否需要做分离操作。
  2. 数据上云:
    • 前端资源可以考虑cdn分流静态资源、减轻服务器压力
    • 用户的数据将及时备份到远端数据库,便于用户在其他设备上访问数据

[no_code]OCR表格处理——技术规格说明书的更多相关文章

  1. [no_code]OCR表格处理——功能规格说明书

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 功能规格说明书 我们在这个课程的目标是 远程协同工作,采用最新技术开发软件 这个作业在哪个具体方面 ...

  2. (Alpha)Let's-技术文档(技术规格说明书)

    技术规格说明书 抽象 首先,对抽象原则的理解,“抽象”这一概念本身就很抽象.抽象体现的是一种概括能力.我们生活中遇到的很多客体,其在某些方面具备有一些相似甚至相同的性质,以这些特点而非事物本身来认识鉴 ...

  3. 【Alpha】技术规格说明书

    由于第1周已经写过技术规格说明书(设计文档),本周更新了上一版内容. Github地址:https://github.com/buaase/Phylab-Web/blob/master/docs/Ba ...

  4. [V1-Team] WEDO创意论坛技术规格说明书

    WEDO 创意论坛技术规格说明书 0x0 文档版本 版本号 说明 v1.0 初步确定技术路线 附Github仓库:WEDO 0x1 技术说明 1. 前端框架   在主流的前端框架中,我们调研了Vue. ...

  5. [软件工程基础]PhyLab 技术规格说明书

    由于暂不对后端有所改变,因此该部分技术规格说明书复用 Default 的技术规格说明书. 由于现阶段对于 Laravel 框架不熟悉,以及对于是否使用已有的轮子或者造轮子实现预想的功能还不清晰,因此暂 ...

  6. 【近取 key】技术规格说明书

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 技术规格说明书 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈开发流程 ...

  7. 【BUAA软工】技术规格说明书

    项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:技术规格说明书 技术规格说明书 宏观技术 后端 WEB服务器 WEB服务器选取的是Springboot,作为当下Java语言最主流的WE ...

  8. [no code][scrum meeting] Alpha 3

    项目 内容 会议时间 2020-04-07 会议主题 技术规格说明书review 会议时长 1h30min 参会人员 产品经理+后端技术组长(伦泽标)+OCR竞品调研成员(叶开辉)+架构文档负责(黎正 ...

  9. [no code][scrum meeting] Alpha 2

    项目 内容 会议时间 2020-04-07 会议主题 功能规格说明书review 会议时长 30min 参会人员 OCR组(肖思炀,赵涛)和产品经理 $( "#cnblogs_post_bo ...

随机推荐

  1. Linux高级之语句表达式

    表达式 表达式和语句是 C 语言中的基础概念.什么是表达式呢?表达式就是由一系列操作符和操作数构成的式子.操作符可以是 C 语言标准规定的各种算术运算符.逻辑运算符.赋值运算符.比较运算符等.操作数可 ...

  2. angularjs实现购物清单

    HTML: 1:要定义ng-app,在html上定义ng-app="App"; 2:在body上定义ng-controller="ToDoCtrl" 3: &l ...

  3. 优雅地创建未定义类PHP对象

    在PHP中,如果没有事先准备好类,需要创建一个未定义类的对象,我们可以采用下面三种方式: new stdClass() new class{} (object)[] 首先是stdClass,这个类是一 ...

  4. 学习PHP弱引用的知识

    之前的文章中,我们已经学习过引用和引用传值相关的知识.我们知道,PHP 中没有纯引用(指针),不管是对象,还是用引用符号 & 赋值的变量,都是对一个符号表的引用.而今天,我们要学习的是另一种引 ...

  5. 5ucms静态发布卡住解决办法

    找到admin/admin_createhtml.asp文件(admin目录为你的后台管理目录),讲下面这段代码删掉保存即可. <script language="JavaScript ...

  6. C# 将PPT转为OFD/DPT/DPS/ODP/POTX/UOP

    本文分享在C#代码程序中,如何将PPT幻灯片文档转换为多种文件格式,如:OFD.DPT.DPS.ODP.POTX.UOP等.只需在加载PPT幻灯片源文档后,调用ppt.SaveToFile(strin ...

  7. Shell系列(17)- 配置文件功能(待完善)

    配置文件功能 文件名 功能 相关联命令 /etc/profile USER变量 LOGNAME变量 MAIL变量 PATH变量 HOSTNAME变量 umask 调用/etc/profile.d/*. ...

  8. Linux服务器通用安全加固指南

    一.基本系统安全 1.保护引导过程(以Grub引导为例) 在 /etc/inittab 中添加 sp:S:respawn:/sbin/sulogin,以确保当切换到单用户模式时 运行级的配置要求输入  ...

  9. ssh 登录远程服务器--config配置

    一.config 配置案列 Host master HostName: 39.105.61.1 Port 22 User root IdentityFile <id_rsa> 二.配置讲解 ...

  10. P5163-WD与地图【tarjan,整体二分,线段树合并】

    正题 题目链接:https://www.luogu.com.cn/problem/P5163 题目大意 给出\(n\)个点\(m\)条有向边,点有权值,要求支持操作 删除一条边 修改一个点的权值 求一 ...