• 【二食堂】技术规格说明书


    项目 内容
    这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健)
    这个作业的要求在哪里 技术规格说明书
    我们在这个课程的目标是 学习敏捷开发之道
    这个作业在哪个具体方面帮助我们实现目标 项目技术规格说明

    技术规格说明书

    技术栈

    我们团队的产品时在线文本标注系统,主要实现文本中专业术语的标注和生成知识图谱功能。

    前端

    前端暂时没有过多的需求,所以使用原生的js+css+html完成,以后根据需求的增加可能会使用其他前端框架进行开发,以增加可维护性。

    为了绘制关系图,我们使用ECharts ,这是一个使用 JavaScript 实现的开源可视化库,提供了丰富的可视化类型。

    后端框架

    后端框架使用 Python 下的 Web 框架 Django。优点是免费开源,可以快速搭建高性能、优雅的网站,学习曲线较缓。Django在一定程度上借鉴了 mvc (Model, View, Controller) 的架构模式,可以基本满足我们前后端交互的需求。

    数据库

    数据库使用最常用的MySQL,优点是易于上手,用户基数大所以相关技术解答都比较成熟,而且与 Django 的连接也比较简单。

    产品设计

    接口规格(暂定)

    # 请求方式 路径 参数 描述
    1 POST /user/login user_id, user_password 用户登录
    2 POST /user/register user_id, user_name, user_password 用户注册
    3 POST /user/info_update user_id, user_password 用户信息更改
    4 GET /user/info 查看用户信息
    5 GET /project/info 查看所有项目信息
    6 POST /project/new project_name 创建项目
    7 POST /project/enter project_id 进入项目
    8 POST /project/invite user_id 邀请他人进入项目
    9 GET /project/file_info 获取项目下所有文件信息
    10 POST /project/import_file file_path 导入文件
    11 GET /project/generate 生成知识图谱
    12 POST /project/export file_path 导出知识图谱
    13 POST /project/add_entity entity_name 添加实体
    14 POST /project/delete_entity entity_name 删除实体
    14 POST /project/entity/add_relation relation, entity_name 添加与其他实体的关系
    15 POST /project/entity/delete_relation entity_name 删除与某个实体的关系

    错误处理

    • 前端
      前端的错误信息主要来源于用户的注册、登录信息以及用户邀请。可能的错误类型有:

      • 密码错误
      • 用户已存在
      • 用户名不合法
      • 密码不合法
      • 确认密码与密码不同
      • 未找到该用户
      • 该用户不在线/已在其他编辑任务中

      这些错误都可以通过Django的ORM去查询数据库中的用户信息进行处理。

    • 后端
      后端的错误主要来源于:

      • 未找到改实体
      • 实体已经存在,无法再次添加

      这样的错误信息可以在预留的接口中处理。我们就错误处理的错误信息形式还没有一个完备的设计。在后续的开发工程中我们会逐步完善错误信息的处理。

    设计原则

    • 内聚与耦合

      Django采用了MVC的框架模式,而这种框架模式的优点就在于其高内聚,低耦合。视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

    • 抽象和模块化

      通过Django的ORM框架,将实体封装成面向对象的形态。类名对应数据库中的表名,类属性对应数据库里的字段,类实例对应数据库表里的一行数据(实体)。Django的orm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句。

    • 信息隐藏和封装

      我们留了若干接口来实现前后端的分离。关于实体和知识图谱的相关数据全部存储在数据库中,只能通过接口来进行增删查改。前端只负责从接口读取数据信息,进行图形化界面的渲染。界面设计见功能规格说明书

    • 应对变化的灵活性

      所有使用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、sqlite....,如果数据库迁移,只需要更换Django的数据库引擎即可。

    • 对大量数据的处理能力

      优化数据库的结构时提高大量数据的最佳途径。而在多用户的并发处理上,通过优化sql语句,事务锁等多种方式优化处理过程。

  • 相关阅读:
    K8S常用命令
    【Python小随笔】输入字符串,检测出中文
    【Python】输入城市,输出省份
    【Python小随笔】词云
    【前端】中国地图资源与实现
    TCP和UDP及一些常见问题
    TCP实现可靠传输的相关机制
    三次握手和四次挥手过程及常见问题
    Docker网络
    数据安全管理总体要求
  • 原文地址:https://www.cnblogs.com/esthnpd/p/12662820.html
Copyright © 2020-2023  润新知