轻氧七号——概要设计和数据库设计

轻氧七号 2024-10-22 23:22:24
这个作业属于哪个课程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、睡眠质量等,并跟踪目标的完成情况。
亲属模块:允许用户管理亲属信息,通过绑定亲属账户,共享健康数据,方便家庭健康管理。
资源模块:为用户提供与健康相关的资源,如音乐、教程等,帮助改善运动和睡眠质量。

img

1.2ER分析+表结构设计:

img

1.2.1BMI指标表

列名数据类型约束备注
身高(m)floatNOT NULL存储用户身高
体重(kg)intNOT NULL存储用户体重
结果floatNOT NULL存储BMI计算结果

1.2.2个人目标表

列名数据类型约束备注
BMI指标floatNOT NULL目标BMI值
步数intNOT NULL目标步数
里程数(km)intNOT NULL目标行走距离,单位为公里
睡眠质量nchar(10)NOT NULL存储睡眠质量描述

1.2.3健康指数表

列名数据类型约束备注
得分intNOT NULL健康评分
建议nchar(50)NULL健康建议,允许为空

1.2.4亲属表

列名数据类型约束备注
亲属关系intNOT NULL亲属关系,以整数表示
亲属账号nchar(10)NOT NULL存储亲属的账号

1.2.5设备信息表

列名数据类型约束备注
设备名称nchar(10)NULL设备名称,允许为空
设备状态intNOT NULL设备状态标识
联机状态bitNOT NULL是否在线的标识

1.2.6时间计划表

列名数据类型约束备注
时间dateNOT NULL事件日期
事件nchar(20)NOT NULL事件描述
地点nchar(20)NOT NULL事件地点
提醒时间time(7)NOT NULL提醒时间

1.2.7睡眠质量表

列名数据类型约束备注
睡眠时长(h)floatNOT NULL以小时为单位记录睡眠时长
睡眠深浅intNOT 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用户名
头像intNOT NULL头像ID
性别bitNOT NULL性别,1表示男性,0表示女性
身高(m)floatNOT NULL用户身高
体重(kg)intNOT NULL用户体重
年龄intNOT NULL用户年龄
是否怀孕(女性)bitNULL是否怀孕,仅适用于女性

1.2.10运动记录表

列名数据类型约束备注
运动类型nchar(10)NOT NULL记录运动类型
运动日期dateNOT NULL记录运动发生的日期
运动时长(h)floatNOT NULL记录运动时长
卡路里消耗(cal)intNOT NULL记录运动期间消耗的卡路里
开始时间time(7)NOT NULL运动开始时间
结束时间time(7)NOT NULL运动结束时间

1.2.11运动健康表

列名数据类型约束备注
步数intNOT NULL运动时的步数
里程数(km)intNOT NULL运动的距离,以公里为单位
运动记录(田径)nchar(10)NULL与田径相关的运动类型,允许为空
卡路里消耗(cal)intNOT NULL运动期间消耗的卡路里

1.2.12资源表

列名数据类型约束备注
音乐(链接)nchar(10)NULL存储音乐链接,允许为空
教程(链接)nchar(10)NULL存储教程链接,允许为空

1.3设计思路;

体系结构设计思路
用户模块
负责用户的身份管理,包括登录、注册及个人信息的修改。
提供社交平台的绑定功能,以增强用户体验。
应考虑安全性,如密码加密、验证机制等。

设备模块
管理用户健康设备的信息,确保实时连接和数据上传。
需要处理不同设备的兼容性和数据格式。
可以引入状态监控机制,提示用户设备连接问题。

健康数据模块
负责数据的采集和分析,提供用户可视化的健康信息。
设计数据汇总算法,支持多种数据分析方式。
应确保数据的准确性和实时性。

目标管理模块
允许用户根据个人需求设定健康目标,并跟踪进度。
可以添加提醒功能,帮助用户更好地实现目标。
提供数据反馈和建议,提升用户粘性。

亲属模块
允许用户与亲属共享健康数据,便于家庭管理。
实现亲属之间的数据访问权限控制,保护用户隐私。
提供家族健康报告,增强家庭成员的健康意识。

资源模块
汇集健康相关资源,提供多样化的内容。
支持用户反馈和资源评价机制,提升资源的实用性。
可考虑引入社交功能,鼓励用户分享和交流。

2.类图、系统安全和权限设计

2.1类图:

img

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%

img


img


img

5.开发计划安排

5.1团队项目的预期开发计划时间安排

周数日期工作产出
110月23日 - 10月29日开发用户、设备模块用户和设备模块初步实现及测试
210月30日 - 11月5日开发健康数据、目标管理模块健康数据和目标管理模块初步实现及测试
311月6日 - 11月12日开发亲属、资源模块亲属和资源模块初步实现及测试
411月13日 - 11月19日集成各模块整体系统集成测试报告
511月20日 - 11月26日开展系统测试系统测试报告及bug修复
611月27日 - 12月3日项目最终完善最终产品发布版本及相关文档
712月4日 - 12月10日项目总结与评估项目总结报告及经验教训分享
具体时间安排看具体要求进行调整

5.2团队项目的预期开发计划分工安排

学号小组成员分工
222200106叶海轩协调项目进度与团队沟通, 撰写博客
062100143郑恩琦负责需求分析与文档编写
222200115吴俊斌负责界面设计与用户体验优化
222200126祝铭负责测试用例编写与系统测试
222200123林继庭技术支持,负责核心模块开发
222200228曹伟负责代码仓库管理与版本控制
222200330徐林熙负责演讲与用户培训,提升沟通能力
...全文
58 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

239

社区成员

发帖
与我相关
我的任务
社区管理员
  • FZU_SE_teacherW
  • 助教赖晋松
  • D's Honey
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧