发际线和我作队——项目系统设计与数据库设计
作业基本信息
这个作业属于哪个课程 | 2021春软件工程实践|W班(福州大学) |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 编写《系统设计说明书》《数据库设计说明书》,完成答辩撰写博客,包含团队项目的预期开发计划时间安排和分工安排。 |
其他参考文献 | 《构建之法第三版》《软件工程》《系统设计说明书》国标规范文本《数据库设计说明书》国标规范文本 《数据库系统概论》 本项目的《需求分析报告》 |
团队项目的预期开发计划时间安排
本周作业完成后,团队项目将进入冲刺阶段,以下是我们小组具体每周的计划安排
时间段 | 任务 | 备注 |
---|---|---|
第九周 | 实现小程序登陆界面及基本框架搭建 | |
4.26-5.2 | 后台管理系统界面基本框架搭建 | |
后端登录接口实现 | ||
学习使用echarts以及地图组件api | ||
再院楼架设定点摄像头收集数据 | 地点因实际情况确定 | |
设计识别模型,收集数据集 | ||
第十周 | 模型设计I | 准确率≥50% |
5.2-5.9 | 实现获取用户登录记录、小程序访问情况接口及图表 | |
实现停车查询功能 | ||
实现散点热力图初步展示停车情况 | ||
发布V1.0版本 | 发布日期根据alpha冲刺实践弹性浮动 | |
第十一周 | 思考V1.0版本所存在的不足之处并纠正 | 优先执行 |
5.10-5.16 | 队内反思会+团队互评 | 同上述任务优先级一致,及时处理开发过程中暴露的问题 |
后端实现公告模块、反馈模块接口 | ||
第十二周 | 小程序端完善个人中心及用户反馈模块 | |
5.17-5.23 | 优化UI交互 | |
训练模型II | 不断收集数据集,提升准确率至60% | |
第十三周 | 尝试实现路线导航 | |
5.24-5.30 | 服务器负载均衡优化 | |
模型训练III | 不断收集数据集,提升准确率至65% | |
第十四周 | 加强服务器安全性 | |
5.31-6.6 | 加强登录验证 | |
加强接口隐蔽性 | ||
第十五周 | 后台信息脱敏加密 | |
6.7-6.13 | 完善路线导航推荐 | |
发布V2.0版本 | 发布日期根据beta冲刺时间弹性浮动 | |
第十六周 | 结题 | |
6.14-6.20 | 队伍总结+个人总结 | |
大吃一顿 |
开发流程中可能有些周任务较为轻松,这是为了让队员有更多的弹性时间来充电,专心于考试或者自己的私事。过于平均的工作量可能会使得一段时间内压力得不到缓解,效果适得其反。
团队项目的预期开发计划分工安排
成员 | 方向 | 具体 |
---|---|---|
李宇琨 | 前/后端 | 图表数据结构设计 |
系统安全性实现 | ||
小程序端地图导航实现 | ||
张福荣 | 后端 | 数据集任务下发 |
模型设计、训练、优化 | ||
林浩然 | 后端 | 摄像头相关数据结构、接口设计 |
rtmp服务器搭建、redis服务器搭建 | ||
文件上传 | ||
服务器负载均衡 | ||
宋家锐 | 后端 | 图表数据接口实现 |
后台管理系统图表交互 | ||
系统安全性实现 | ||
梁达毅 | 后端 | 用户反馈接口实现 |
小程序端图表交互 | ||
武雍易 | 后端 | 后台管理系统接口实现 |
数据库维护 | ||
陈乐曦 | 前端 | 后台管理系统界面、交互实现 |
小程序端界面、交互优化 | ||
吕庆炜 | 前端 | 小程序端地图规划与应用 |
散点热力图实现 | ||
李耕 | 前端 | 小程序端界面、交互实现 |
小程序端图表实现 | ||
李荣臻 | 前端 | 小程序端界面、交互实现 |
小程序端图表实现 |
设计图与设计思路
体系结构设计
小程序架构设计思路
1.视图层和逻辑层分离,通过数据驱动,事件交互,不直接操作DOM。
2.逻辑层负责逻辑处理、数据请求、接口调用等。
3.视图层负责渲染页面结构。
4.JSBridge下架起上层开发与Native(系统层)的桥梁,使得小程序可通过API使用原生的功能,且部分组件为原生组件实现,从而有良好体验。
5.视图层与逻辑层通过数据和事件进行通信,逻辑层提供数据给视图层。
Web架构设计思路:web总体采用B/S架构。
技术架构设计:
功能模块层次
功能模块层次设计思路:大块分为两个模块,一个是后台管理员功能模块,另一个是小程序用户功能模块,两个大模块均是根据使用功能的类别进行划分,如图标相关数据查询则划分为数据可视化模块,具体划分见下图
ER分析
E-R设计思路:先局部后全局
1.首先对用户需求进行综合,归纳,抽象出实体及其属性,要注意能作为属性的尽量作为属性而不要划为实体;
2.找出实体间的联系(作为属性的数据项不能再用其他属性加以描述,也不能与其他实体或属性发生联系),形成局部E-R图;
3.将局部E-R图合并成全局E-R图,合并过程要取消冲突(属性冲突,命名冲突,和结构冲突),修改重构消除冗余。
表结构设计
表结构设计思路:
确定数据库实体及其构成,将E-R图转化为关系模型,这个过程要处理概念结构设计中实体间一对多(多对一)、多对多联系。同时为每个有需要的表都设计了外键,保证关联的那个表发生修改时,对应的表都能级联修改,最后映射为数据库。
- 管理员表(admin)
- 角色表(role)
- 权限表(authority)
- 公告表(notice)
- 反馈表(feedback)
- 状态表(status)
- 图片表(feedback_picture)
- 地点表(device)
- 地点拥挤情况表(crowd_situation)
- 管理员-反馈表(admin_feedback)
- 管理员-公告表(admin_notice)
- 管理员-角色表(admin_role)
- 权限-角色表(authortiy_role)
设计类图
设计思路:首先通过研究问题域发现了管理员、用户、公告和反馈类对象,再通过确定系统边界找出了公告列表和反馈列表类对象,然后深入需求分析,得到角色、权限、状态、反馈图片、地点、地点拥挤情况类对象,其次定义对象的属性和操作,最后建立对象间的关系,对于多对多关联关系应该通过增加中间类进行解决。
后端类图
前端类图
前台
后台
系统安全与权限设计
系统安全设计
为使系统数据安全得到保障,系统稳定可用,我们应当对系统进行全面保护。
后台安全设计
后台只能够管理员登录,我们使用SpringSecurity来进行管理员的权限管理。通过SpringSecurity来对用户进行区分、验证和授权,这样还保证了后台登录的安全性。
数据库安全设计
对数据库表进行数据备份。使用mybatis框架,由于mybatis启用了预编译,在sql执行前,会先将SQL语句发送给数据库进行编译;执行时,直接使用编译好的sql,替换占位符“?”。因为SQL注入只能对编译过程起作用,所以这样能够很好的避免sql注入问题。使用PBKDF2对密码进行哈希处理,它将伪随机函数与盐值一起应用于输入密码,并重复多次此过程以生成派生密码,然后可以将该密钥作用加密密钥后续操作中。这种 方式能够解决md5加密,简单密码被人截取后进行匹配,其他用户的密码被破译的问题。
小程序功能模块安全设计
对于普通用户来说,微信小程序是唯一的入口,所以我们设计只有用户通过微信登录授权后才能后使用所有的功能。
权限控制设计
权限控制设计思路
本系统后台的管理采用基于角色的访问控制,也就是将用户通过角色与权限进行关联。一个用户拥有若干角色,每个角色拥有若干权限,由此构成了“用户-角色-权限”的授权模型。
在本系统中,后台管理具有公告管理、数据监视、反馈管理等模块,对于每个模块又有不同的功能,每个功能可视为一个权限,角色可以理解为一定数量权限的集合、权限的载体。要给后台的管理员授予一定的权限,不需要直接将权限授予管理员,而是将角色赋予该管理员。
以下是本系统后台权限管理的示意图
以下是权限控制模块的类图设计
系统保护设计
数据库权限部分的设计表,我们将用户、角色、权限分离,然后通过用户角色对应表和角色权限对应表实现用户与角色对应,角色与权限对应,从而做到用户与权限间接对应。这样不仅保证了有好的拓展性,也保证了健壮性。
我们的产品为用户提供的功能主要是查看信息,用户需要进行的操作是非常少的,因此在高并发的情况下也不会出现重要数据丢失的情况,最坏的情况也就是用户加载信息缓慢或加载不出信息。我们打算通过使用更高带宽的服务器和使用多台服务器进行负载均衡来改善这个问题。
需求分析的改进部分和过程
问题
Q1:类图中用户类的操作不能直接用用例作为操作
A:需求分析的时候将类对象与参与者混淆,导致直接将用例作为类的操作。本阶段,通过复习uml相关知识,将两者区分开来,修改了对应类图。
Q2:分析类图不需要出现接口类
A:已在改进的类图中删除接口类并另外展示接口
改进部分与过程
改进后的类图已经在设计类图部分展示,根据老师的意见新增了地点和地点拥挤情况类图
设计的类图中删除了接口类,在本项目的《系统设计说明书》中有对接口的详细描述,可以在附件中查看。
工作流程、组员分工、组员贡献度比例
工作流程
点击查看GitHub文档上传记录
组员分工与贡献度比例
参照第一次团队作业时制定的绩效考核方案计算评分贡献,详见-->
学号 | 工作内容 | 贡献度 |
---|---|---|
221801329 | 设计数据流图和功能模块图,安排未来周计划与分工 | 10.4% |
221801312 | 硬件环境和开发环境整理,总体架构和技术架构设计,设计接口文档 | 10.4% |
221801315 | 泳道图和模型环境配置 | 10.4% |
221801316 | 后端类图,数据库设计,权限管理设计思路 | 9.9% |
221801123 | 后端类图,数据库设计,数据库设计说明书,ER+表结构设计思路 | 10.9% |
221801337 | 设计数据库,类图,接口文档 | 10.4% |
221801303 | 后端类图与系统安全设计 | 8.3% |
221801238 | 设计后台类图与小程序类图,设计接口文档 | 10.4% |
221801406 | 功能模块设计后台部分,PPT制作与博客撰写 | 9.4% |
221801427 | 功能模块设计前台部分,系统设计说明书整合、评审表 | 9.4% |