团队作业2-《需求规格说明书》
团队作业2-《需求规格说明书》
所属课程 | 软件工程2024 |
---|---|
作业要求 | 团队作业2-《需求规格说明书》 |
作业目标 | 制定需求规格说明书;确定团队具体规划;制定时间安排表 |
一、需求规格说明书
1、项目背景和目标
(1)项目背景:
校园内失物情况时有发生,传统的招领方式效率低下,信息传播范围有限。因此,需要搭建一个校园失物招领平台,提高失物招领的效率,方便师生快速找回失物或找到失主。
(2)项目目标:
-
提供一个用户友好的界面,方便用户注册、登录和发布失物招领信息。
-
实现高效的搜索功能,帮助用户快速找到相关的失物招领帖子。
-
支持用户之间的互动,包括评论等,提高信息的传播和匹配效率。
2、面向用户分析
(1)用户群体概述
校园失物招领平台的主要用户群体为在校学生,包括本科生、研究生等。他们日常生活中可能会遇到物品遗失或捡到他人物品的情况,需要一个方便、快捷的平台来发布招领信息或寻找失物。此外,平台也适用于校园内的教职工及部分校外人员,他们同样有发布或查看失物招领信息的需求。预期的用户数量:1000。
(2)用户需求分析
a.用户注册与登录
- 方便快捷的注册流程,支持用邮箱方式注册。
b.安全的登录机制
-
包括密码加密存储、登录失败次数限制等。
-
如忘记密码,提供重新设置密码功能,确保用户账号安全。
c.发布招领帖子
-
提供简洁明了的帖子发布界面,方便用户快速填写失物或招领信息。
-
支持上传图片或视频作为附件,以便更直观地展示失物或招领物品。
-
提供分类选择功能,便于用户根据物品类型发布帖子。
d.搜索帖子功能
-
提供关键字搜索功能,支持模糊匹配和精确匹配。
-
支持按时间、地点、物品类型等条件进行筛选搜索。
-
提供搜索结果排序功能,如按发布时间排序。
e.评论功能
-
允许用户在帖子下发表评论,提供交流互动的平台。
-
支持回复评论,形成讨论氛围。
(3)用户体验优化建议
-
界面设计简洁明了,符合用户操作习惯,降低学习成本。
-
提供友好的错误提示和帮助文档,方便用户在使用过程中解决问题。
-
优化搜索算法,提高搜索准确率和速度,提升用户体验。
-
加强平台安全性,保护用户隐私和数据安全。
-
定期收集用户反馈,根据用户需求调整平台功能和界面设计。
通过以上面向用户分析,我们可以更好地了解校园失物招领平台用户的需求和期望,为平台的开发和优化提供有力支持。
3、功能需求
(1)登陆与注册
a. 用户可以通过邮箱进行注册,并设置密码。
b. 用户可以使用邮箱进行登录。
c. 提供密码重置功能,可通过验证重置密码。
(2)个人信息设置
a.支持用户设置和修改昵称。
b.支持修改密码。
(3)发布帖子
a. 用户可以发布失物招领帖子,包括失物描述、失物时间、失物地点、联系方式等信息。
b. 用户可以发布寻物帖子,包括物品描述、遗失时间、遗失地点、联系方式等信息。
c. 发布帖子时,支持上传图片作为附件,以便更直观地展示失物或寻物信息。
(4)排序与搜索
a. 搜索帖子提供关键字搜索功能,用户可以根据失物名称、遗失地点等关键字搜索相关帖子。
b.支持按时间、地点、物品类型等条件进行筛选搜索。
c. 支持按照发布时间对帖子进行排序。
(5)互动
a. 用户可以在帖子下方发表评论,与其他用户交流失物招领信息。
b. 提供回复功能,增强用户互动。
4、性能需求
-
平台应具备良好的响应速度,确保用户在使用过程中的流畅体验。
-
平台应支持高并发访问,确保在高峰时段能够稳定运行。
-
数据存储应安全可靠,确保用户信息不被泄露或损坏。
5、技术需求
(1)项目概述
本项目旨在构建一个基于Web的应用系统,涉及前端和后端的技术栈。前端将采用Vue.js框架,结合Vite构建工具和Axios进行网络请求,并使用ElementPlus组件库提升开发效率与用户体验。后端则使用Java语言,依托JavaWeb技术栈,包括SSM(Spring+SpringMVC+MyBatis)和Spring Boot框架,数据库选择MySQL,同时引入Redis作为缓存层。
(2)前端技术需求分析
-
Vue.js
Vue.js是一个构建用户界面的JavaScript框架,具有轻量级、组件化和响应式的特点。本项目将利用Vue.js进行前端页面的开发,实现数据的动态绑定、组件化开发和交互功能。 -
Vite
Vite是一个面向现代浏览器和Node.js的原生ES模块构建工具和开发服务器。它将极大地提升项目的开发体验,减少冷启动时间,提供快速的HMR(热模块替换)能力。 -
Axios
Axios是一个基于Promise的HTTP客户端,用于浏览器和Node.js。项目将使用Axios进行前后端之间的数据交互,实现API请求与响应处理。 -
ElementPlus
ElementPlus是一套为开发者、设计师和产品经理准备的基于Vue 3.0的桌面端组件库。它将帮助项目快速构建出风格统一、功能丰富的Web界面,减少重复性的开发工作。
(3)后端技术需求分析
-
Java
Java是一种广泛使用的编程语言,具有跨平台、面向对象和安全性高等特点。本项目将使用Java作为后端开发的主要语言,实现业务逻辑处理和数据处理功能。 -
JavaWeb
JavaWeb是指使用Java技术栈开发的Web应用。项目将依托JavaWeb技术栈,构建稳定、可扩展的Web服务。 -
SSM(Spring+SpringMVC+MyBatis)
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
SpringMVC是一个基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。
项目将整合SSM框架,实现业务逻辑、数据访问和Web请求的分离,提高代码的可维护性和可扩展性。 -
Spring Boot
Spring Boot是一个开源的Java-based框架,用于创建独立的、生产级别的基于Spring的应用程序,具有简化配置、快速开发的特点。项目将使用Spring Boot简化后端开发流程,提高开发效率。 -
MySQL
MySQL是一个关系型数据库管理系统,具有高性能、稳定性和易用性。项目将使用MySQL作为数据存储解决方案,存储和管理项目所需的数据。 -
Redis
Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。项目将引入Redis作为缓存层,提高数据访问速度,减轻数据库压力。
(4)总结
本项目技术需求分析主要围绕前端和后端的技术栈展开,前端采用Vue.js、Vite、Axios和ElementPlus,后端采用Java、JavaWeb、SSM、Spring Boot、MySQL和Redis。这些技术的选择旨在提高项目的开发效率、性能和可维护性,确保项目能够按时、高质量地完成。
6、安全需求
-
用户注册、登录等敏感操作应使用HTTPS协议进行加密传输,确保用户数据的安全。
-
对用户输入进行严格的验证和过滤,防止SQL注入、跨站脚本攻击等安全问题。
-
对用户密码进行加密存储,确保密码安全。
7、非功能性需求
-
平台界面应简洁明了,易于操作,符合校园用户的审美习惯。
-
提供友好的错误提示和帮助文档,方便用户解决问题。
8、系统的真实性、可用性以及价值所在
(1)真实性
-
用户信息真实:
平台要求用户注册时提供真实有效的信息,并通过手机号或邮箱验证,确保用户身份的真实性。这有助于减少虚假信息的发布,提高信息的可信度。 -
失物信息真实:
用户发布的失物招领信息需经过平台审核,确保信息的真实性。对于恶意发布虚假信息的用户,平台将采取相应的惩罚措施,维护信息的真实性。 -
互动内容真实:
平台上的评论、点赞等互动内容均来自真实用户,通过用户之间的交流和互动,进一步验证信息的真实性。
通过严格的用户认证和信息审核机制,校园失物招领平台能够确保信息的真实性,为用户提供可靠的服务。
(2)可用性
-
界面友好易用:
平台界面设计简洁明了,符合校园用户的审美习惯。操作流程清晰易懂,用户无需复杂的操作即可轻松发布失物招领信息、搜索帖子以及进行互动。 -
功能完善实用:
平台提供了用户注册登录、发布帖子、搜索帖子、评论互动等功能,满足了用户在失物招领方面的基本需求。同时,平台还支持图片上传、模糊搜索等实用功能,提升了用户体验。 -
响应速度快:
平台具备良好的响应速度,无论是页面加载还是搜索查询,都能在短时间内完成,确保用户在使用过程中的流畅体验。
通过友好的界面设计、完善的功能以及快速的响应速度,校园失物招领平台为用户提供了便捷、高效的服务,提高了平台的可用性。
(3)价值所在
-
提高失物招领效率:
平台为用户提供了一个集中发布和搜索失物招领信息的场所,使得失主能够更快地找到失物,同时也方便捡到物品的同学及时归还。这大大提高了失物招领的效率,减少了失物的流失。 -
促进校园文明建设:
通过平台的推广和使用,可以引导师生养成诚实守信、互帮互助的良好习惯,促进校园文明建设。同时,平台还可以作为校园文化的展示窗口,增强师生对校园文化的认同感和归属感。 -
提升用户体验:
平台通过优化功能和界面设计,提升了用户体验。用户可以轻松地在平台上发布信息、查找失物、与他人互动,享受便捷、高效的服务。这种良好的用户体验有助于增强用户对平台的信任度和依赖度。
9、团队项目GitHub
github链接
二、团队计划
1、Github团队项目issues截图
2、项目时间安排表的修改及完成情况
原有安排
时间 | 任务 |
---|---|
第七周 | 1、组队 |
2、选题确定、成员展示、角色分配 | |
3、制定团队计划安排,团队贡献分的规定 | |
第八周 | 1、需求分析,完成需求规格说明书 |
2、原型设计,队员估计任务难度并学习新的技术 | |
3、 完成编码规范、平台环境搭建、初步架构搭建 | |
第九周 | 1、 原型改进(给目标用户展现原型,并进一步理解需求) |
2、架构设计,WBS,团队成员估计各自任务所需时间 | |
3、测试计划 | |
第十周 | 团队项目Alpha任务分配计划 |
第十一周 | 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 |
第十二周 | 1、用户反馈+测试计划改进 |
2、 团队Alpha阶段个人总结 | |
3、团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 | |
第十三周 | 团队项目Alpha博客:事后分析 |
校正后的安排以及完成情况
时间 | 任务 | 完成情况 |
---|---|---|
第七周 | 1、组队 | 已完成 |
2、选题确定、成员展示、角色分配 | 已完成 | |
3、制定团队计划安排,团队贡献分的规定 | 已完成 | |
第八周 | 1、需求分析,完成需求规格说明书 | 已完成 |
2、原型设计,队员估计任务难度并学习新的技术 | 已完成 | |
3、 完成编码规范、平台环境搭建、初步架构搭建 | 已完成 | |
第九周 | 1、 原型改进(给目标用户展现原型,并进一步理解需求) | 未完成 |
2、架构设计,WBS,团队成员估计各自任务所需时间 | 未完成 | |
3、测试计划 | 未完成 | |
第十周 | 1、综合考虑队员对新技术的学习能力和任务的难度,调整任务分工 | 未完成 |
2、团队项目Alpha任务分配计划 | 未完成 | |
第十一周 | 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 | 未完成 |
第十二周 | 1、用户反馈+测试计划改进 | 未完成 |
2、 团队Alpha阶段个人总结 | 未完成 | |
3、团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 | 未完成 | |
第十三周 | 团队项目Alpha博客:事后分析 | 未完成 |
矫正内容
- 第九周根据课堂讨论提出的问题进行改进后,新增加设计复审的任务,以确保修改后的设计没有问题。第十周增加的内容是根据队员的学习能力与难度进行分工的调整。
3、团队分工
队员 | 任务 |
---|---|
廖莹 | 前端开发+PM |
梁丽贤 | 前端开发 |
姚佳如 | UI+需求分析 |
李慧娣 | 需求分析+博客排版 |
肖杨 | 前端开发 |
黄诃华 | 后端开发 +测试 |
欧文杰 | 后端开发 +测试 |
4、成员完成情况及感想
队员 | 完成情况 | 感想 |
---|---|---|
廖莹 | 分配任务,协调队员开展工作 | 合理的任务分配是合作的关键 |
梁丽贤 | 分析目前设想的需求的合理性以及实现难度、大致的实现思路 | 需求的分析需要多方面考虑 |
姚佳如 | 剖析项目,进行需求分析,参与完成需求规格说明书 | 需求分析需要综合各方面进行考虑 |
李慧娣 | 分析项目,进行初步需求分析,参与完成需求规格说明书,完成博客排版。 | 需求分析是项目成功的基石。 |
肖杨 | 评估当前预想需求的可行性以及执行复杂度,以及基本的执行策略 | 需求分析需要全面思考 |
黄诃华 | 评估当前预想需求的可行性以及执行复杂度,以及基本的执行策略 | 需求分析需要全面思考 |
欧文杰 | 根据需求简单分析编写所需技术栈并进行技术选型 | 软件工程没有银弹,在开放过程中需要不断交流学习,不断改进完善 |