团队作业3--需求改进&系统设计
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/CSGrade22-12 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/CSGrade22-12/homework/13224 |
这个作业的目标 | 需求&原型改进、系统设计、Alpha任务分配计划、测试计划 |
一、需求&原型改进
1. 针对课堂讨论环节老师和其他组的问题及建议,对修改选题及需求进行修改
1.1 问题与修改
问题:检测到人跌倒后,最好能够及时地反馈给家人,而不是等家人登陆系统查看是否摔倒。
修改:我们会增加实时报警机制,系统在检测到跌倒事件后,应立即通过多种方式发出报警通知。这包括声音警报、短信通知、APP推送等,确保相关人员能够在第一时间知晓并采取措施。目标任务群体更新为老人和小孩的家属。
1.2 给目标用户展现原型,与目标用户进一步沟通理解需求。他们的痛是什么?场景是什么?(用产品之前/之后,有照片或视频显示用户调查的过程,使用了各种调查手段的)
(1)目标用户的痛点
安全监控需求:目标用户可能包括老年人、残障人士或其家属,他们关心的是跌倒事件的实时监控和快速响应,以减少跌倒带来的伤害。
隐私保护:用户对于监控系统可能存在隐私泄露的担忧,尤其是在室内环境中使用视频监控设备时。
误报问题:用户希望减少误报,提高检测的准确性,避免不必要的恐慌和资源浪费。
实时性和响应速度:用户需要系统能够快速准确地识别跌倒事件,并及时通知相关人员。
(2)使用场景
家庭环境:用户可能在家中使用该系统,尤其是在老年人居住的环境中,用于实时监测和预警。
公共区域:在公共场所,如养老院、医院等,系统可以用于监控和预防跌倒事件。
(3)用户调查过程
问卷调查:通过设计问卷,收集用户对于跌倒检测系统的需求和期望,了解他们在使用过程中遇到的问题。
面对面访谈:与用户进行深入的访谈,了解他们对于系统的具体需求,以及在实际使用中的感受和建议。
视频或照片记录:在用户同意的情况下,记录用户使用系统的过程,包括跌倒检测的实时视频和照片,用于分析和改进系统。
用户反馈收集:通过用户反馈,收集对于系统性能的评价,以及对于报警机制、用户界面等方面的改进建议。
(4)调查手段
用户测试:邀请用户参与系统的测试,观察他们在实际使用中的行为和反应,收集反馈。
数据分析:分析用户在使用系统过程中产生的数据,如跌倒事件的频率、时间、地点等,以优化系统性能。
原型迭代:根据用户反馈和测试结果,不断迭代和改进系统原型,直至满足用户需求。
2. 修改完善上周提交的需求规格说明书
2.1 上周的《需求规格说明书》初稿有哪些不足?特别是:功能考虑不全或需求文档描述缺少的地方
(1)不足之处
功能考虑不全,例如缺少对用户反馈机制的描述,例如用户如何报告误报或漏报。缺少对系统维护和升级的描述,包括数据备份和恢复流程。缺少对用户隐私保护和数据安全的详细说明。需求文档缺少对系统性能的具体指标,如响应时间、并发用户数等。还有缺少对异常处理和错误恢复机制的描述。
(2)具体改进内容(功能性需求)
- 实时报警机制:
系统在检测到跌倒事件后,应立即通过多种方式发出报警通知。这包括声音警报、短信通知、APP推送等,确保相关人员能够在第一时间知晓并采取措施。 - 通信管理模块:
引入一个CommunicationManager类,负责通过预定的通讯渠道(如短信、邮件或应用推送)发送警报给相关人员。当FallDetector检测到跌倒事件时,将检测结果传递给AlertGenerator类生成警报信息,然后由CommunicationManager类负责发送。 - 多级联动响应:
系统支持与其他智能设备的联动,如自动呼叫紧急联系人,触发医疗设备等,形成完整的应急响应体系,进一步提升安全保障水平。 - 家庭感知反馈系统:
参考「ThingX」家庭感知反馈系统,采用边缘大模型+小模型联合路线,全场景分析理解,基于大模型打造边缘运营系统,连接多个端侧子设备,例如Wi-Fi、手表、血糖仪等。通过维持对人体各项生理指标的实时监测和数据采集,进而将数据反馈给大模型进行分析和解读,以实现在慢性病症的早期阶段及突发情况时,该系统能及时发出警示。 - 用户界面优化:
设计一个用户友好的界面,允许家人远程查看实时监控视频,随时掌握现场情况。这一功能特别适用于养老院、医院等需要远程管理的场所。 - 数据统计与历史回放:
系统自动记录每次跌倒事件的详细信息,包括时间、地点、发生过程等。通过数据分析,管理者可以掌握跌倒事件的规律和特点,为制定防护措施提供科学依据。同时,系统支持视频历史记录的回放功能,管理者可以回看过去的监控视频,了解事件的具体情况,进行事故复盘,找出潜在隐患。
2.2 用一个场景,像讲故事那样,描述用户怎么使用几个相联系的功能,解决了用户的问题
- 用户故事:紧急跌倒检测与通知
- 角色:李奶奶,70岁,独居老人
- 场景:李奶奶在家中不慎跌倒,无法自行起身
- 故事:李奶奶在家中走动时不慎跌倒,跌倒检测系统通过摄像头捕捉到这一情况,并立即触发跌倒检测算法。算法确认这是一次真实的跌倒事件,而非误报。系统随即激活报警与通知模块,通过APP推送和短信通知李奶奶的家人。李奶奶的儿子收到通知后,立即通过系统内置的紧急联系人呼叫接口,拨打了李奶奶的电话,确认情况并指导她如何安全起身。同时,系统自动记录了跌倒事件的详细信息,包括时间、地点和跌倒过程的视频记录。这些数据被安全存储,并在李奶奶的家人登录系统时提供给他们,以便他们了解事件的具体情况,并采取相应的预防措施。
3. 参考《构建之法》5节功能的定位和优先级,给出功能分析的四个象限
第一象限:重要且紧急
时报警和跌倒检测算法的准确性。
第二象限:重要但不紧急
用户健康数据分析、历史跌倒事件统计等功能。
第三象限:不重要但紧急
一些非核心的界面美化或临时的报告功能。
第四象限:不重要且不紧急
一些非核心的娱乐功能或者与主要目标不相关的附加功能。
4. 根据修改后的需求,调整任务分解WBS及相应的项目进度计划
周次 | 任务组 | 详细内容 | 进度 |
---|---|---|---|
9 | 项目启动 | 项目规划、需求分析、资源分配 | 100% |
10 | 系统设计与开发 | 系统架构设计、功能模块开发 | 100% |
10 | 数据库设计与实现 | 数据库设计、实现 | 100% |
11 | 通信接口开发 | 短信、APP推送、紧急联系人呼叫接口开发 | 100% |
12 | 系统维护和升级模块开发 | 开发系统维护和升级模块 | |
13 | 用户隐私保护和数据安全模块开发 | 开发用户隐私保护和数据安全模块 | |
14 | 系统集成与测试 | 模块集成、系统测试(单元测试、集成测试、性能测试、用户验收测试)及测试反馈整合 | |
15 | 部署与培训 | 系统部署、用户培训、文档编写 | |
15 | 项目收尾 | 项目评估、经验总结、资源释放 |
二、系统设计
1. 系统架构设计
接口层 | 功能 |
---|---|
用户界面层 | (1) 负责与用户的交互,包括信息输入和结果展示。(2) 提供实时监控界面,展示视频流和检测结果。 |
应用层 | (1) 处理用户请求,调用相应的服务。 (2) 包含业务逻辑,如事件通知、数据存储等。 |
服务层 | (1) 处理用户请求,调用相应的服务。 (2) 包含业务逻辑,如事件通知、数据存储等。 |
深度学习层 | (1) 包含预训练的深度学习模型,用于行人检测和跌倒判断。 (2) 负责处理输入数据(如视频帧),输出检测结果。 |
数据层 | (1) 负责存储和管理数据,包括用户信息、检测记录、视频流等。 (2) 提供接口供其他层访问数据。 |
外部接口层 | (1) 提供与其他系统(如监控系统、报警系统)的接口。 (2) 负责数据的接入和输出。 |
2. 数据库
2.1 数据库设计
表 | 功能 |
---|---|
Users表 | 存储用户信息,包括用户ID、用户名、密码和电子邮件。 |
Videos表 | 存储上传的视频信息,包括视频ID、用户ID、视频路径和上传时间。 |
Detection表 | 存储检测结果,包括检测ID、用户ID、视频ID、检测结果和时间戳。 |
2.2 实体关系图(ER图)
- 每个实体(Users、Videos、Detection)都由一个矩形表示。
- 主键(PK)字段用下划线表示,外键(FK)字段没有特别的标记,但在实际的数据库设计中,外键通常是指那些引用另一个表主键的字段。
- 实线箭头表示实体之间的关系。例如,一个用户(Users)可以有多个检测记录(Detection),这由一个从Users指向Detection的箭头表示,并且在Detection旁边有一个“has”标记,表示“一个用户可以有多个检测记录”。
- 一个视频(Videos)可以对应多个检测记录(Detection),这由一个从Videos指向Detection的箭头表示,并且在Detection旁边有一个“contains”标记,表示“一个视频可以包含多个检测结果”。
三、Alpha任务分配计划
1. 根据项目组能提供的总时间,评估可完成的工作量。根据功能模块的优先级以及模块之间的依赖关系,从Product Backlog中选取待实现的功能项。选择与Alpha阶段目标紧密相关的功能项,确保所选功能项可以支持项目目标,并满足用户需求
1.1 项目组能提供的总时间
项目周期为7周,第九周-第十五周。
1.2 功能模块的优先级
功能编号 | 功能描述 | 优先级 |
---|---|---|
1 | 深度学习框架 | ★★★★★ |
2 | 模型实现(YOLOv8) | ★★★★★ |
3 | 实时视频流检测 | ★★★★★ |
4 | 图片和视频文件检测 | ★★★★★ |
5 | 用户界面交互 | ★★★★★ |
9 | 测试(包括单元测试、集成测试等) | ★★★★★ |
6 | 结果展示与导出 | ★★★★ |
7 | 参数调整 | ★★★★ |
8 | 数据记录与分析 | ★★★★ |
1.3 模块之间的依赖关系
- 实时视频流检测依赖于深度学习框架和模型实现
- 图片和视频文件检测同样依赖于 深度学习框架和模型实现
- 用户界面交互依赖于Web应用开发
- 结果展示与导出依赖于用户界面交互
- 参数调整依赖于模型实现和用户界面交互
- 数据记录与分析依赖于所有检测功能的结果数据
1.4 选定功能项
- 实时视频流检测
- 图片和视频文件检测
- 用户界面交互
- 深度学习框架
- 模型实现
2 对已选择的功能项进行进一步分解,分解为1-10小时左右的具体任务,确保每个任务都是具体的、可度量的、可实现的、相关的、时限的(SMART原则)。将分解后的任务构成Sprint Backlog。成员进行任务认领,确保任务分配平衡,避免个别成员工作量过大
Sprint Backlog:
-
深度学习框架和模型实现
预计时间:8小时
包括YOLOv8模型的加载、训练和预测功能的实现。PyTorch框架的安装与配置,YOLOv8模型研究与选择,模型加载与初步测试。
负责成员:许莹柔 -
实时视频流检测
预计时间:8小时
包括视频流接口设计与实现,跌倒检测算法集成,图片和视频处理算法集成和文件上传检测功能的开发,检测结果反馈机制。
负责成员:梁晓君 -
用户界面交互
预计时间:7小时
包括Streamlit框架的Web界面开发,界面开发与前端逻辑实现,界面样式调整与优化。
负责成员:肖晓霞 -
测试
预计时间:7小时
包括实时视频流检测,图片和视频文件检测的功能测试,环境测试与优化。
负责成员:阿丽娅
3.拟定迭代冲刺计划
使用甘特图的方式拟定迭代冲刺计划,明确每个任务的开始和结束时间,以及依赖关系。(本次迭代计划只关注Alpha阶段)使用leangoo作为敏捷项目协作工具,跟踪任务进度和团队协作。
Sprint计划示例(甘特图)
任务ID | 任务描述 | 开始日期 | 结束日期 | 负责人 |
---|---|---|---|---|
1 | 深度学习框架和模型实现 | 第11周 | 第13周 | 许莹柔 |
2 | 界面开发 | 第12周 | 第14周 | 梁晓君 |
3 | 界面美化 | 第13周 | 第15周 | 肖晓霞 |
4 | 测试 | 第13周 | 第16周 | 阿丽娅-阿力木 |
四、测试计划
1.主要产品
本系统是一个基于深度学习的行人跌倒检测系统,旨在实时监控并检测跌倒事件,及时通知相关人员。系统包括用户界面层、应用层、服务层、深度学习层、数据层和外部接口层。本系统是一个基于深度学习的行人跌倒检测系统,旨在实时监控并检测跌倒事件,及时通知相关人员。系统包括用户界面层、应用层、服务层、深度学习层、数据层和外部接口层。
2.测试范围
(1) 功能测试
- 用户注册和登录功能
- 视频流的实时显示和处理
- 跌倒检测算法的准确性和响应时间
- 通知系统(短信、邮件)的及时性和准确性
- 用户界面的易用性和响应性
(2) 性能测试
- 系统在不同负载下的性能表现
- 检测算法的处理速度和准确性
- 系统的稳定性和可靠性
(3) 安全性测试
- 数据传输和存储的安全性
- 用户认证和授权机制的有效性
(4) 兼容性测试
- 系统在不同浏览器和设备上的兼容性
- 与第三方服务(如监控系统、通知服务)的兼容性
3.测试时间表
3.1 测试准备阶段
完成日期:[第13周]
- 测试环境搭建
- 测试数据准备
- 测试工具配置
3.2 测试执行阶段
(1) 功能测试:[第13周]
- 用户界面测试
- 功能模块测试
(2) 性能测试:[第13周]
- 压力测试
- 稳定性测试
(3) 安全性测试:[第14周]
- 认证和授权测试
- 数据安全测试
(4) 兼容性测试:[第15周]
- 跨浏览器测试
- 第三方服务兼容性测试
3.3 测试总结阶段
完成日期:[第16周]
- 测试报告编写
- 问题修复跟踪
- 测试总结会议
4. 资源分配
(1)人力资源
- 模型训练:许莹柔
- 测试:阿丽娅
- 界面开发:梁晓君
- 界面美化:肖晓霞
(2) 技术资源
- 开发工具:如免费的集成开发环境(IDE)和版本控制系统,例如Visual Studio Code、Git。
- 技术平台:利用学校提供的软件或开源软件,如Linux操作系统、Apache服务器。
- 硬件资源:使用学校实验室的计算机或个人电脑进行开发和测试。
- 软件资源:使用开源数据库如MySQL,以及免费的中间件和开发框架,如Node.js或Django。
(3) 物质资源
- 办公设施:利用学校提供的教室或图书馆作为工作和会议场所。
- 用品:使用学校提供的打印服务或共享文具。