• 如果有一天我变得很有钱——项目系统设计与数据库设计


    这个作业属于哪个课程 2020春|S班 (福州大学)
    这个作业要求在哪里 团队作业第四次—项目系统设计与数据库设计
    团队名称 如果有一天我变得很有钱
    这个作业的目标 1、问题改进 2、系统设计 3、数据库设计
    作业正文 本文
    其他参考文献 数据库设计说明书(GB8567——88)

    1、开发计划时间安排

    周数 安排 具体时间
    第7周 全体:参与系统/概要设计,数据库设计;进行知识储备;
    后端:了解springboot框架基础,学习处理文件上传、用户登录状态等的知识;
    app端:学习安卓开发基础,根据提前划分的大致分工,提前学习注册/图表/同步等模块所需的知识
    3.30-4.5
    第8周 同上 4.6-4.12
    第9周 (根据分工,在约定好接口后,前后端同步进行开发)
    1、 (app/服务器)完成注册、登录功能
    2、(app端)完成手动记账模块(简易版本)。
    3、(app端)完成账单明细查看功能
    4、(app端)完成报表功能(简易版本)
    5、(app端/服务器)同步模块的编写
    6、(web端)设计基本布局,完成登录/注册界面、账单详细查看界面、账单文件上传界面
    4.13-4.19
    第10周 1、(app端)完善手动记账、报表模块
    2、(app端)复用代码进行账目修改/删除,周期记账等相似功能的编写。
    3、(app/服务器)完成修改/找回密码功能
    4、(app端)完成记住我,支出预警,上传账单自动记账等次要/附加功能的编写。
    5、(web端)完成报表等剩余部分页面
    6、其他前面未完成的功能
    7、开始进行前后端整合及测试。
    4.20-4.26
    第11周 1、功能最后完善。
    2、继续前后端整合、整体测试、bug修复
    3、发布alpha版本(1.0)
    4.27-5.3
    第12周 1、寻找、反思上一个版本存在的问题。
    2、讨论要修改/增加/删除的功能(包括bug如何修复),对系统进行必要的重新设计。
    5.4-5.10
    第13周 根据上一周的结果编写代码 5.11-5.17
    第14周 编写/完善代码,进行测试 5.18-5.24
    第15周 编写/完善代码,进行测试 5.25-5.31
    第16周 1、整体测试、bug修复 ,beta版本上线。
    2、事后总结。
    6.1-6.7

    项目开发时间线:

    • 7-10周
      在这里插入图片描述
    • 10-16周:
      在这里插入图片描述

    2、开发计划分工安排

    组员 学号 开发分工
    陈启元 221701225 服务器端:负责项目基本结构搭建,数据库访问,HTTP请求处理
    安卓端:负责同步模块
    李明磊 051602129 ios端:所有工作
    刘星雨 221701106 服务器及安卓端:实现用户模块功能
    张家榜 221701125 安卓端:
    1、数据库的创建及底层访问
    2、实现对来自文件的账单进行确认/修改/合并的功能
    3、“记住我”功能的实现
    4、支出预警功能的实现
    叶尤澎 221701208 安卓端:
    1、账目分类明细查看、账目修改/删除、周期记账的增删查改功能的实现
    2、app设置相关页面的编写
    戴怡宁 221701307 安卓端:实现报表部分的功能
    徐哲宇 221701322 服务器端
    1、业务层代码编写
    2、账单下载指南编写
    3、请求处理(具体视到时候工作量而定)
    张钰婷 221701406 安卓端:手动记账部分功能的实现功能(包括添加/编辑类别等功能)
    刘昭玮 221701427 web端所有工作

    3、系统&数据库设计

    3.1总体结构设计

    软件总体采用分层的结构,总体的软件结构如下图:
    在这里插入图片描述

    3.2功能模块层次

    功能模块包括账号管理模块、手动记账模块、自动记账模块、图表账单模块、账单明细/编辑模块、同步功能模块、Web端功能模块共七个功能模块,通过绘制各功能模块思维导图、功能模块描述等对系统的功能模块进行具体设计(关于七个功能模块的具体设计可查看文末给出的系统设计说明书相关部分)
    在这里插入图片描述

    3.3系统类图(较上次有所改进)

    在这里插入图片描述

    3.4系统ER图

    在这里插入图片描述

    3.5表结构设计

    1. 用户表结构在这里插入图片描述
    2. 消费类别表结构在这里插入图片描述
    3. 账户表结构在这里插入图片描述
    4. 账单表结构在这里插入图片描述
    5. 周期事件表结构在这里插入图片描述

    3.6系统安全设计

    3.6.1 关于系统的安全性主要从以下几个方面进行设计分析:

    1. 用户密码的安全性处理。
    2. 在非正常的情况下保证数据的丢失减少到最低限度,数据库便于数据备份、恢复,从而提高系统的安全性。
    3. 防止信息传输过程中被泄露、篡改。

    3.6.2 具体设计:

    1. 用户注册
    • 得到用户传过来的密码后,首先在计算机中获取一个随机数。
    • 获取到随机数后,设计一个任意算法,对随机数与用户密码进行拼接处理,比如最简单的(用户密码+随机数),将得到一个全新的字符串。
    • 再对这个新的字符串进行哈希算法处理,得到一个新的密码,由于哈希算法的特殊性,该算法是不可逆的。
    • 将用户id,新密码和随机数保存到数据库中。用户注册成功。
    1. 用户登录
    • 服务端获取到用户的id和密码后,根据用户id从数据库中取出该用户的新密码和随机数。
    • 把用户传过来的旧密码和随机数交给用户注册第2步中的随机数和密码拼接算法,拼接后,得到一个新的字符串(和用户注册第2步得到的全新字符串是一模一样的)。
    • 将新字符串交给哈希算法处理将得到一个处理结果。
    • 如果处理后的结果和数据库中存储的新密码相同,那么,该用户传过来的密码是正确的,登录成功,否则,登录失败。

    3.6.3 提供数据备份与恢复机制

    • 为避免用户因手机丢失,将自己记账成果丢失的情况出现,我们设计了数据同步功能。用户可以在自己想同步数据的时候,通过将数据储存在服务器端。在用户手机丢失的时候可登录相应账号从服务器端同步自己的记账数据。

    3.6.4 信息传输安全性问题

    • 网络传输的安全性问题将使用Spring框架中的Spring Security来解决。若用户不将数据上传到Web服务器端的话,数据只存储在自己的手机中,用SQLite数据库作为数据的存储的容器。

    3.7系统权限设计

    由于我们的记账系统是为已注册登录的用户提供服务,故用户对应的角色即为用户本身,只要有登录到我们的系统,就能使用我们软件所包含的所有服务,即能行使用户角色本身所对应到的所有权限. 权限是用户可以访问的资源,包括:

    • 页面权限

    即用户登录系统可以看到的页面。
    对于本系统,用户只要登陆就可以看见本系统的所有页面,包括手动记账页面及其包含的子页面、自动记账页面及其包含的子页面、图表统计页面及相应的子页面、Web端相应界面等。

    • 操作权限

    即页面的功能按钮,包括查看、新增、修改、删除等。用户点击删除按钮时,后台会校验用户角色下的所有权限是否包含该删除权限,如果是,就可以进行下一步操作,反之提示无权限。

    • 数据权限

    数据权限就是不同用户在同一页面看到的数据是不同的。对于本系统,用户可以查看所登录账号的所有数据记录

    3.8系统设计思路

    • 系统运行环境:
      在这里插入图片描述
    • 系统运行平台配置:
    1. 服务器端在这里插入图片描述

    2. 安卓端在这里插入图片描述

    3. IOS端在这里插入图片描述

    • 系统使用的框架:
      在这里插入图片描述

    • 系统总体框架
      在这里插入图片描述

    4、问答&改进

    • 问答
      Q: 能否再简化记账流程?
      A:根据我们的调查问卷数据显示,很多人不记账的原因就在于记账是个麻烦的事情,我们通过选择标签代替手动输入、自动统计等功能等简化了用户记账的流程和数据统计的繁琐等问题。
      Q:是否有市面上大部分记账软件所没有的功能?
      A:我们认为市面上成熟的同类软件普遍功能众多且复杂并植入相关理财广告,这会使得原本麻烦的记账更加令人提不起兴趣,而我们的应用致力于简化记账的流程。

    • 改进

    1. 针对上次类图不够详细,不够美观的问题,这次作业对类图进行了细化和改进。
    2. 针对界面比较单调的问题,考虑到时间和技术水平问题我们先按照现有原型进行开发,若时间盈余则会对见面进行下一步的美化。

    5、工作流程&组员分工&贡献度

    工作流程:

    • 首先由组长浏览作业要求,将分工安排通知给组内各位同学,同时搜集往届的系统设计说明书/数据库设计说明书的样例供组员参考。
    • 然后组员按照分工根据往届样例或自行查找到的资料,完成自己的任务。
    • 最后经过汇总、讨论和修改,以及排版人员的排版,完成系统设计/数据库设计说明书的编写。

    此次作业各组员分工&贡献度如下:

    组员 学号 工作内容 贡献度
    陈启元 221701225 1、博客(分工及开发计划安排、贡献度、工作流程等)
    2、系统设计说明书编写(同步模块、系统运行/开发环境设计)及部分调整
    12
    李明磊 051602129 1.、系统设计说明书(手动记账模块、功能需求设计)
    2、系统设计答辩ppt制作及主讲
    12
    刘星雨 221701106 1、系统设计说明书(用户模块) 10
    张家榜 221701125 1、系统设计说明书(类图、ER图、包图等)
    2、数据库设计说明书(数据流图、表结构设计)3. 数据库设计答辩主讲
    17
    叶尤澎 221701208 1、系统设计说明书(账单明细/编辑、周期记账部分)
    2、博客(问题改进、说明书图片等)
    10
    戴怡宁 221701307 1、系统设计说明书(报表模块)
    2、两次答辩评分
    8
    徐哲宇 221701322 1、系统设计说明书(自动记账模块) 10
    张钰婷 221701406 1、系统设计说明书编写(引言、安全性健壮性、权限设计)及部分调整
    2、整体排版
    12
    刘昭玮 221701427 1、系统设计说明书(web模块) 9

    6、其他文件&链接

    1. github团队仓库链接
    2. 如果有一天我变得很有钱_系统设计说明书
    3. 如果有一天我变得很有钱_数据库设计说明书
    4. 如果有一天我变得很有钱_系统设计和数据库设计答辩
  • 相关阅读:
    一个木桶的容积取决于最短的那块木板——木桶定律
    碰到系统故障了该怎么处理?
    我心中的程序员技术飞升之路
    编程名言(有些趣味性)
    haproxy部署配置
    安装mongodb插件
    安装redis扩展
    安装memcached扩展
    编译安装PHP7
    负载均衡
  • 原文地址:https://www.cnblogs.com/money6/p/12663106.html
Copyright © 2020-2023  润新知