轻氧七号——概要设计和数据库设计
| 这个作业属于哪个课程 | FZU_SE_teacherW_4 |
|---|---|
| 这个作业要求在哪里 | 团队作业 概要设计和数据库设计 |
| 这个作业的目标 | 概要设计和数据库设计 |
| 其他参考文献 | UML之类图、UML类图详解、详解设计模式六大原则、数据库表结构设计的几条准则 、数据库表设计(一对多、多对多、常见web攻击方法及防御手段总结、用户密码加密、JavaWeb项目前后端分离、RBAC用户、角色、权限、组设计方案 |
目录
- 1.系统和数据库设计
- 1.1给出体系结构设计+功能模块层次图:
- 1.2ER分析+表结构设计:
- 1.2.1BMI指标表
- 1.2.2个人目标表
- 1.2.3健康指数表
- 1.2.4亲属表
- 1.2.5设备信息表
- 1.2.6时间计划表
- 1.2.7睡眠质量表
- 1.2.8用户登录信息表
- 1.2.9用户基本信息表
- 1.2.10运动记录表
- 1.2.11运动健康表
- 1.2.12资源表
- 1.3设计思路;
- 2.类图、系统安全和权限设计
- 2.1类图:
- 2.2系统安全和权限设计:
- 2.2.1身份验证与授权
- 2.2.2数据加密
- 2.2.3权限管理
- 2.2.4输入验证与防注入
- 2.2.5日志记录与审计
- 2.2.6安全配置
- 2.2.7客户端安全
- 2.2.8敏感数据处理
- 2.2.9安全培训与意识
- 2.2.10应急响应计划
- 2.3设计思路:
- 2.3.1身份验证与授权
- 2.3.2数据加密
- 2.3.3权限管理
- 2.3.4输入验证与防注入
- 2.3.5日志记录与审计
- 2.3.6安全配置
- 2.3.7客户端安全
- 2.3.8敏感数据处理
- 2.3.9安全培训与意识
- 2.3.10应急响应计划
- 3.改进分析
- 3.1回答上次需求分析作业中老师助教和其他队伍在评审中给项目提出的问题:
- 3.2给出针对上次需求分析作业的改进部分和改进过程(详细描述):
- 3.2.1. 完善需求分析模型
- 3.2.2. 创建类图
- 3.2.3. 制作用例图
- 3.2.4. 迭代反馈与优化
- 3.2.5. 文档化改进过程
- 4.团队绩效
- 5.开发计划安排
- 5.1团队项目的预期开发计划时间安排
- 5.2团队项目的预期开发计划分工安排
华为云项目相关链接
轻氧七号_华为云仓库首地址
轻氧七号_系统设计说明书.pdf
轻氧七号_数据库设计说明书.pdf
轻氧七号_系统设计和数据库设计答辩PPT.pdf
1.系统和数据库设计
1.1给出体系结构设计+功能模块层次图:
用户模块:处理用户的登录、注册、账号管理和个人信息的修改,包括与第三方平台(微信、微博、QQ)的绑定。
设备模块:处理用户的健康设备信息,如设备的连接状态、设备名称等,确保设备能正确上传数据。
健康数据模块:采集用户的运动、睡眠、BMI等数据,提供汇总与分析,并以可视化形式展示给用户。
目标管理模块:用户可以设置个性化的健康目标,包括步数、BMI、睡眠质量等,并跟踪目标的完成情况。
亲属模块:允许用户管理亲属信息,通过绑定亲属账户,共享健康数据,方便家庭健康管理。
资源模块:为用户提供与健康相关的资源,如音乐、教程等,帮助改善运动和睡眠质量。

1.2ER分析+表结构设计:

1.2.1BMI指标表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 身高(m) | float | NOT NULL | 存储用户身高 |
| 体重(kg) | int | NOT NULL | 存储用户体重 |
| 结果 | float | NOT NULL | 存储BMI计算结果 |
1.2.2个人目标表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| BMI指标 | float | NOT NULL | 目标BMI值 |
| 步数 | int | NOT NULL | 目标步数 |
| 里程数(km) | int | NOT NULL | 目标行走距离,单位为公里 |
| 睡眠质量 | nchar(10) | NOT NULL | 存储睡眠质量描述 |
1.2.3健康指数表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 得分 | int | NOT NULL | 健康评分 |
| 建议 | nchar(50) | NULL | 健康建议,允许为空 |
1.2.4亲属表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 亲属关系 | int | NOT NULL | 亲属关系,以整数表示 |
| 亲属账号 | nchar(10) | NOT NULL | 存储亲属的账号 |
1.2.5设备信息表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 设备名称 | nchar(10) | NULL | 设备名称,允许为空 |
| 设备状态 | int | NOT NULL | 设备状态标识 |
| 联机状态 | bit | NOT NULL | 是否在线的标识 |
1.2.6时间计划表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 时间 | date | NOT NULL | 事件日期 |
| 事件 | nchar(20) | NOT NULL | 事件描述 |
| 地点 | nchar(20) | NOT NULL | 事件地点 |
| 提醒时间 | time(7) | NOT NULL | 提醒时间 |
1.2.7睡眠质量表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 睡眠时长(h) | float | NOT NULL | 以小时为单位记录睡眠时长 |
| 睡眠深浅 | int | NOT NULL | 睡眠深浅程度 |
| 开始睡眠时间 | time(7) | NOT NULL | 入睡时间 |
| 结束睡眠时间 | time(7) | NOT NULL | 醒来时间 |
1.2.8用户登录信息表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 账号 | nchar(10) | NOT NULL | 用户账号 |
| 密码 | nchar(10) | NOT NULL | 用户密码 |
| 绑定手机号 | nchar(20) | NOT NULL | 绑定的手机号 |
| 绑定邮箱号 | nchar(20) | NULL | 绑定的邮箱,允许为空 |
| 绑定微信号 | nchar(20) | NULL | 绑定的微信号,允许为空 |
| 绑定QQ号 | nchar(20) | NULL | 绑定的QQ号,允许为空 |
| 绑定微博号 | nchar(20) | NULL | 绑定的微博号,允许为空 |
1.2.9用户基本信息表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 用户名 | nchar(10) | NOT NULL | 用户名 |
| 头像 | int | NOT NULL | 头像ID |
| 性别 | bit | NOT NULL | 性别,1表示男性,0表示女性 |
| 身高(m) | float | NOT NULL | 用户身高 |
| 体重(kg) | int | NOT NULL | 用户体重 |
| 年龄 | int | NOT NULL | 用户年龄 |
| 是否怀孕(女性) | bit | NULL | 是否怀孕,仅适用于女性 |
1.2.10运动记录表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 运动类型 | nchar(10) | NOT NULL | 记录运动类型 |
| 运动日期 | date | NOT NULL | 记录运动发生的日期 |
| 运动时长(h) | float | NOT NULL | 记录运动时长 |
| 卡路里消耗(cal) | int | NOT NULL | 记录运动期间消耗的卡路里 |
| 开始时间 | time(7) | NOT NULL | 运动开始时间 |
| 结束时间 | time(7) | NOT NULL | 运动结束时间 |
1.2.11运动健康表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 步数 | int | NOT NULL | 运动时的步数 |
| 里程数(km) | int | NOT NULL | 运动的距离,以公里为单位 |
| 运动记录(田径) | nchar(10) | NULL | 与田径相关的运动类型,允许为空 |
| 卡路里消耗(cal) | int | NOT NULL | 运动期间消耗的卡路里 |
1.2.12资源表
| 列名 | 数据类型 | 约束 | 备注 |
|---|---|---|---|
| 音乐(链接) | nchar(10) | NULL | 存储音乐链接,允许为空 |
| 教程(链接) | nchar(10) | NULL | 存储教程链接,允许为空 |
1.3设计思路;
体系结构设计思路
用户模块:
负责用户的身份管理,包括登录、注册及个人信息的修改。
提供社交平台的绑定功能,以增强用户体验。
应考虑安全性,如密码加密、验证机制等。
设备模块:
管理用户健康设备的信息,确保实时连接和数据上传。
需要处理不同设备的兼容性和数据格式。
可以引入状态监控机制,提示用户设备连接问题。
健康数据模块:
负责数据的采集和分析,提供用户可视化的健康信息。
设计数据汇总算法,支持多种数据分析方式。
应确保数据的准确性和实时性。
目标管理模块:
允许用户根据个人需求设定健康目标,并跟踪进度。
可以添加提醒功能,帮助用户更好地实现目标。
提供数据反馈和建议,提升用户粘性。
亲属模块:
允许用户与亲属共享健康数据,便于家庭管理。
实现亲属之间的数据访问权限控制,保护用户隐私。
提供家族健康报告,增强家庭成员的健康意识。
资源模块:
汇集健康相关资源,提供多样化的内容。
支持用户反馈和资源评价机制,提升资源的实用性。
可考虑引入社交功能,鼓励用户分享和交流。
2.类图、系统安全和权限设计
2.1类图:

2.2系统安全和权限设计:
系统安全和权限设计是保障个人健康管理系统的用户数据隐私和系统稳定运行的关键。以下是在上述功能基础上的安全和权限设计方案:
2.2.1身份验证与授权
- 认证机制:
- JWT (JSON Web Tokens): 使用JWT进行用户身份验证。用户登录后,服务器生成一个包含用户信息的JWT,并将其返回给客户端。客户端在后续请求中携带该JWT,服务器通过验证JWT来确认用户的身份。
- OAuth 2.0: 对于第三方社交账号(如微信、QQ)登录,使用OAuth 2.0协议进行认证。
- 密码存储:
- 使用强哈希算法(如bcrypt或scrypt)对用户密码进行加密存储,以防止密码泄露时被轻易破解。
- 多因素认证:
- 提供可选的多因素认证(MFA),例如短信验证码或身份验证器应用,增加账户安全性。
2.2.2数据加密
- 传输层加密:
- 使用HTTPS协议(TLS/SSL)确保所有通信都经过加密,防止中间人攻击。
- 数据存储加密:
- 对敏感数据(如用户密码、健康数据等)进行加密存储,即使数据库被非法访问,也无法直接读取原始数据。
2.2.3权限管理
- 基于角色的访问控制(RBAC):
- 定义不同的用户角色(如普通用户、管理员),并为每个角色分配相应的权限。
- 普通用户只能访问自己的数据和功能。
- 管理员可以查看和管理所有用户的数据,但应限制其对某些敏感操作的权限。
- 定义不同的用户角色(如普通用户、管理员),并为每个角色分配相应的权限。
- 细粒度权限控制:
- 对于特定的功能(如修改密码、绑定社交账号等),设置详细的权限规则,确保只有授权用户才能执行这些操作。
2.2.4输入验证与防注入
- 输入验证:
- 对所有用户输入进行严格的验证,防止SQL注入、XSS(跨站脚本攻击)等常见安全漏洞。使用正则表达式或其他验证库来检查输入格式是否符合预期。
- 参数化查询:
- 在数据库查询中使用参数化查询,避免SQL注入攻击。
2.2.5日志记录与审计
- 日志记录:
- 记录所有重要操作的日志,包括登录、注册、数据修改等。日志应包含时间戳、用户ID、IP地址、操作类型等信息。
- 审计:
- 定期审查日志,检测异常行为和潜在的安全威胁。设置警报机制,当检测到可疑活动时,及时通知管理员。
2.2.6安全配置
- 防火墙与WAF:
- 配置网络防火墙和Web应用防火墙(WAF),阻止恶意流量和攻击。
- 安全更新:
- 及时更新操作系统、框架、库和依赖项,修补已知的安全漏洞。
- 最小权限原则:
- 服务和应用程序只授予必要的最低权限,减少潜在的攻击面。
2.2.7客户端安全
- 客户端验证:
- 在客户端也进行输入验证,提高用户体验的同时增强安全性。
- 安全编码实践:
- 遵循安全编码最佳实践,避免常见的前端安全问题,如XSS、CSRF(跨站请求伪造)等。
- 移动设备安全:
- 对于移动应用,实施额外的安全措施,如代码混淆、反调试技术等,保护应用不被逆向工程。
2.2.8敏感数据处理
- 数据脱敏:
- 在展示敏感数据(如手机号码、身份证号等)时,进行部分脱敏处理,仅显示必要部分。
- 数据生命周期管理:
- 设定数据保留期限,定期清理不再需要的数据,减少数据泄露风险。
2.2.9安全培训与意识
- 员工培训:
- 定期对开发人员和运维人员进行安全培训,提高安全意识和技能。
- 用户教育:
- 向用户提供安全使用指南,教育他们如何保护自己的账户和数据。
2.2.10应急响应计划
- 应急预案:
- 制定详细的安全事件应急响应计划,包括数据泄露、系统故障等情况的应对措施。
- 备份与恢复:
- 定期备份数据,并测试恢复流程,确保在发生灾难性事件时能够快速恢复服务。
2.3设计思路:
2.3.1身份验证与授权
- 认证机制:
- 选择JWT和OAuth 2.0结合使用,既可以支持标准登录,也能通过社交账号登录,提升用户便利性和安全性。
- 密码存储:
- 应用强哈希算法,确保即使数据泄露,密码也无法轻易被破解,增强用户安全感。
- 多因素认证:
- 提供可选的多因素认证,增强账户安全,降低被攻击风险。
2.3.2数据加密
- 传输层加密:
- 使用HTTPS加密所有传输数据,确保用户数据在传输过程中不被截取。
- 数据存储加密:
- 敏感数据加密存储,即使数据库被入侵,也能保护用户隐私。
2.3.3权限管理
- 基于角色的访问控制(RBAC):
- 通过角色定义访问权限,确保用户只能访问自己的数据,管理员权限受控,降低误操作风险。
- 细粒度权限控制:
- 为敏感操作设置严格的权限控制,防止未授权访问。
2.3.4输入验证与防注入
- 输入验证:
- 对所有输入进行严格验证,使用正则表达式等工具防止注入攻击,确保系统安全。
- 参数化查询:
- 采用参数化查询,避免SQL注入,增强数据库安全。
2.3.5日志记录与审计
- 日志记录:
- 记录所有重要操作的详细日志,便于后续审计和异常行为分析。
- 审计:
- 定期检查日志,及时发现潜在的安全威胁并采取措施。
2.3.6安全配置
- 防火墙与WAF:
- 配置防火墙和Web应用防火墙,保护系统免受恶意攻击。
- 安全更新:
- 定期更新系统和软件,修补安全漏洞,保持系统安全性。
- 最小权限原则:
- 只授予必要权限,降低攻击面,确保系统安全。
2.3.7客户端安全
- 客户端验证:
- 在客户端进行输入验证,增强用户体验和安全性。
- 安全编码实践:
- 遵循最佳实践,避免前端安全问题,提升整体安全性。
- 移动设备安全:
- 对移动应用实施额外安全措施,防止逆向工程和代码泄露。
2.3.8敏感数据处理
- 数据脱敏:
- 对敏感数据进行脱敏处理,保护用户隐私。
- 数据生命周期管理:
- 定期清理不必要的数据,减少数据泄露风险,确保数据管理的有效性。
2.3.9安全培训与意识
- 员工培训:
- 定期开展安全培训,提升团队安全意识和技能,构建安全文化。
- 用户教育:
- 提供用户安全指南,增强用户自我保护意识。
2.3.10应急响应计划
- 应急预案:
- 制定详细的应急响应计划,确保在发生安全事件时能够迅速反应。
- 备份与恢复:
- 定期备份数据,测试恢复流程,确保在灾难性事件中能够快速恢复服务。
3.改进分析
3.1回答上次需求分析作业中老师助教和其他队伍在评审中给项目提出的问题:
问题:
缺少类图,没有深入分析功能类和交互关系,仅仅是展示用户场景和原型,不能够展示技术细节,只能是给投资人看的选题报告,而对于整个项目的设计与实现,没有明确的指导作用。
回答:
需要建立准确的需求分析模型,完成类图以及用例图,告诉设计人员,有哪些功能相关的类,具有哪些属性与方法,以及类之间存在的关系(关联 依赖关系 聚合关系 一对多关系等),以此消除用户与系统交互过程中可能存在的矛盾。
3.2给出针对上次需求分析作业的改进部分和改进过程(详细描述):
针对上次需求分析作业的改进部分和改进过程
3.2.1. 完善需求分析模型
- 目标:建立更清晰的需求分析模型,以指导后续设计与实现。
- 措施:
- 进行需求梳理,明确系统功能模块及其需求。
- 采用UML(统一建模语言)工具,绘制用例图和类图,以全面展示系统功能及其交互关系。
3.2.2. 创建类图
- 目标:展示系统中的主要类及其属性和方法。
- 措施:
- 确定主要功能模块对应的类,例如用户管理、健康数据管理、目标管理等。
- 为每个类定义属性(如用户名、密码、步数、BMI等)和方法(如登录、注册、数据分析等)。
- 绘制类之间的关系,包括关联、依赖、聚合等,明确各类的交互方式。
3.2.3. 制作用例图
- 目标:明确系统的使用场景及用户交互。
- 措施:
- 确定各类用户(如普通用户、管理员)及其主要用例(如注册、查看健康数据、设置目标等)。
- 通过用例图展示用户与系统的交互,明确每个用例的功能需求。
3.2.4. 迭代反馈与优化
- 目标:根据评审反馈不断优化模型。
- 措施:
- 定期与团队成员和指导老师讨论,收集意见,及时调整类图和用例图。
- 在每次迭代中,更新图表,确保其能够真实反映系统设计和功能需求。
3.2.5. 文档化改进过程
- 目标:记录改进过程,以便后续参考。
- 措施:
- 编写改进报告,详细描述每一步的改进内容和实现方法。
- 保存各版本的类图和用例图,以便追踪设计演变和决策过程。
4.团队绩效
描述为完成这次作业的工作流程、组员分工、组员贡献度比例:(将用于小组分数到个人分数的映射,请一起讨论、妥善安排比重)
| 学号 | 小组成员 | 工作 | 贡献度 |
|---|---|---|---|
| 222200106 | 叶海轩 | 1篇博客随笔,发表在团队博客的博客中,博客标题设置为“XXX(团队名称)项目系统设计与数据库设计“,并提交作业1份《系统设计和数据库设计评审表》 | 15% |
| 062100143 | 郑恩琦 | 1份《系统设计说明书》 | 14% |
| 222200115 | 吴俊斌 | 课堂答辩 | 15% |
| 222200126 | 祝铭 | 1份《数据库设计说明书》 | 14% |
| 222200123 | 林继庭 | 负责上次原型设计与这次设计对接,与郑恩琦同学合作 | 14% |
| 222200228 | 曹伟 | 建立华为云团队仓库,将《系统设计说明书》《数据库设计说明书》《系统设计和数据库设计答辩PPT》等团队文档提交到团队仓库;(后面的华为云仓库工作都由曹伟同学负责) | 14% |
| 222200330 | 徐林熙 | 1份《系统设计和数据库设计答辩PPT》 | 14% |



5.开发计划安排
5.1团队项目的预期开发计划时间安排
| 周数 | 日期 | 工作 | 产出 |
|---|---|---|---|
| 1 | 10月23日 - 10月29日 | 开发用户、设备模块 | 用户和设备模块初步实现及测试 |
| 2 | 10月30日 - 11月5日 | 开发健康数据、目标管理模块 | 健康数据和目标管理模块初步实现及测试 |
| 3 | 11月6日 - 11月12日 | 开发亲属、资源模块 | 亲属和资源模块初步实现及测试 |
| 4 | 11月13日 - 11月19日 | 集成各模块 | 整体系统集成测试报告 |
| 5 | 11月20日 - 11月26日 | 开展系统测试 | 系统测试报告及bug修复 |
| 6 | 11月27日 - 12月3日 | 项目最终完善 | 最终产品发布版本及相关文档 |
| 7 | 12月4日 - 12月10日 | 项目总结与评估 | 项目总结报告及经验教训分享 |
| 具体时间安排看具体要求进行调整 |
5.2团队项目的预期开发计划分工安排
| 学号 | 小组成员 | 分工 |
|---|---|---|
| 222200106 | 叶海轩 | 协调项目进度与团队沟通, 撰写博客 |
| 062100143 | 郑恩琦 | 负责需求分析与文档编写 |
| 222200115 | 吴俊斌 | 负责界面设计与用户体验优化 |
| 222200126 | 祝铭 | 负责测试用例编写与系统测试 |
| 222200123 | 林继庭 | 技术支持,负责核心模块开发 |
| 222200228 | 曹伟 | 负责代码仓库管理与版本控制 |
| 222200330 | 徐林熙 | 负责演讲与用户培训,提升沟通能力 |
相关推荐
七号信令集中监测系统数据管理系统
"七号信令集中监测系统数据管理系统"七号信令集中监测系统数据管理系统是电信网络管理和维护的关键组成部分,其主要任务是对电信网中的七号信令数据进行高效、可靠的管理和分析。七号信令网是电信网的三大支柱
华为七号信令系统中文内部资料全解析
七号信令系统(SS7)是现代电信网络的核心控制体系,采用共路信令方式,将信令通路与语音通路分离,显著提升信令传输效率与网络智能化水平。其分层协议结构包括MTP、SCCP、TCAP、MAP等模块,分别实现消息传递、寻址路由、事务处理与移动性管理功能。相比传统随路信令,SS7支持高速数据传输、集中式数据库访问及跨网元协同控制,广泛应用于呼叫建立、HLR查询、短消息路由等关键业务场景。
七号信令集中监测系统中的数据管理系统* (2003年)
七号信令网是电信网的重要组成部分。其运行质量直接影响到电信网及其各种业务的运行稳定性和实际效益。为了保证七号信令网的正常高效运行,七号信令集中监测系统已成为七信号进行集中监测和管理的重要工具,文章在分
高分七号卫星图像压缩FPGA设计与实现技术.pdf
高分七号卫星的设计允许其从不同角度观测同一地区,从而获得更多的地物属性信息。这对星载遥感图像压缩编码设计提出了更高的要求。卫星上装载的载荷较多,包括前视相机和后视相机。
七号信令原理和信令流程解释
七号信令原理和信令流程解释七号信令是一种广泛应用于现代电信网络的信令系统,主要用于控制和管理通信网络中的呼叫建立、维护和释放。它的设计目标是提供高效、可靠且灵活的通信控制机制。


