团队作业二——《需求规格说明书》
软件工程团队作业-需求规格说明书
一、规格需求说明书
1.1 引言
1.1.1 编写目的
本文详细叙述了表白墙的需求以及系统分析。根据团队成员的理解,大众需求以及部分使用人员的建议,以此整理出详细的需求清单,为以后的工作提供指导方向。
1.1.2 开发目的及意义
本软件的开发目的是再微信小程序平台上搭建一个具有社交意义的软件,目标使用者为广工的各年级同学;小程序通过表白墙的互动,拓展同学们的交际圈,为线下找不到机会的同学创造更多的机会。
1.2 需求概述
1.2.1 概述
💛 iGDUT表白墙是一款基于用户表白信息分享、传播以及交流的通过关注机制分享表白信息的广播式表白平台,通过文字、图片等形式实现表白信息的即时分享和传播互动。其面向的用户主要为广东工业大学的所有在校师生,主要功能有查看校内表白动态、发表个人表白动态等。
1.2.2 功能性需求
1)“表白墙”模块
表白墙模块是 iGDUT表白墙
的主模块,是用户的主要活动区域。该模块将提供如下四个功能:展示校内表白动态、用户发表表白动态、用户可以分享、评论以及点赞表白动态、用户可以互相关注。
功能模块 | 实现功能 |
---|---|
表白墙 | 展示校内表白动态 |
用户可以发表表白动态 | |
用户可以分享、评论以及点赞表白动态 | |
用户可以互相关注 |
- 展示校内表白动态
在表白墙页面需要显示校内最新的表白动态(即按照时间的先后顺序),能够提供用户下拉刷新获取最新的表白动态和下滑加载更多的表白动态。另外,需要提供搜索框供用户通过文字内容对表白动态进行模糊搜索。🔍
- 用户可以发表表白动态
在表白墙页面将提供发表表白动态的按钮(以悬浮球的形式显示按钮),用户可以通过此功能发表动态,动态内容会经过百度云人工智能API进行筛选过滤,且该表白动态将对于所有的 iGDUT表白墙
用户可见,并将推送予该发表用户的粉丝。
- 用户可以分享、评论以及点赞表白动态
表白墙中的每一条表白动态均有 分享
、 评论
和 点赞
的按钮。
分享功能为用户提供分享动态到微信好友列表的渠道,评论按钮点击后应该跳转至动态详情页面,并滑动至评论区,可供用户查看该动态所有的评论。用户进入动态详情页面之后也可点击页面中的 评论
按钮来进行评论。用户可以通过点击 点赞
将该条动态添加至用户 我赞过的
的列表中(用户可在“我的”模块中查看)。
- 用户可以互相关注
在表白墙的动态列表中,用户可以直接在动态的 关注
按钮点击关注,也可以通过点击动态发表者的头像进入该发表者的个人主页查看,再进行关注。
2)“消息”模块
“消息”模块是用户接收和查看来自服务端的推送模块,推送消息包括我关注的人的动态以及与我相关的动态。(点赞、评论、关注和分享)
功能模块 | 实现功能 |
---|---|
消息 | 查看我关注的用户动态推送 |
查看关于我的互动推送 |
- 查看我关注的用户动态推送
该模块推送的信息包括我关注的人发送的动态。🍳
- 查看关于我的互动推送
该模块推送的信息包括别人与我的互动。(评论、点赞、关注和分享)💫
3)“我的”模块
“我的”模块是用户查看个人活动记录、开发者信息以及个性设置的模块。实现功能具体如下:
功能模块 | 实现功能 |
---|---|
我的 | 查看个人主页 |
提供查看“我”赞过的表白记录 | |
提供查看“我”关注的用户 | |
提供查看“我”的粉丝 | |
更换主题 | |
关于我们 | |
意见反馈功能 |
- 查看个人主页
用户在我的模块点击个人主页查看个人主页界面,用户的所有表白动态将会被记录存储于数据库在此页面可以查看个人的表白记录,可以通过点击编辑资料进入用户信息编辑页面编辑自己的昵称、个性签名等信息。
- 提供查看“我”赞过的表白记录
用户在浏览表白墙时点击 点赞
过的表白动态将会被记录于数据库,并且可以通过该页面查询获取进行查看。
- 提供查看“我”关注的用户
用户可以通过此功能查看所有已经关注的用户,并可以通过点击用户进入其个人主页。
- 提供产看“我”的粉丝的功能
用户可以通过此功能查看所有关注“我”的用户,并可以通过点击用户进入其个人主页。
- 更换主题
此功能为用户提供主题颜色的修改个性化的设置
- 关于我们
用户可以通过此功能查看“非专业团队”的相关信息。
- 意见反馈功能
该功能为用户提供反馈的功能,用户可以将对本小程序的看法和建议进行反馈。提供反馈的功能,用户可以将对本小程序的看法和建议提出反馈。
1.2.3 技术需求
后台:
- 代码语言:
java
(SpringBoot框架) - 数据库:
MySQL
- 二级缓存工具:
Redis
- 测试工具:
Postman
- 性能测试:
Jprofile、JMeter、Junit
前端:
- 代码语言:
HTML
、CSS
、JavaScript
- 使用框架: 使用基于
Vue.js
的前端应用框架uni-app
进行小程序前端开发 - 辅助性工具:
Webpack
项目打包工具、npm
包管理工具 - 开发平台:微信小程序开发平台、HBuilderX
1.2.4 界面需求
《表白墙》小程序拟定三个通过底部按钮切换的主界面,分别为表白墙、消息、我的,以下是各板块细分:
1、表白墙:
主要包含了首页、热门、关注板块,详细如下:
①首页板块:每个用户发布的信息将显示在上面,每个信息占一块区域(以下简称表白块,2中详细介绍);
②热门板块:用户的表白块将按照发布时间、浏览数、喜欢数以及评论数在上面依次展示;
③关注板块:用户关注的人发布的表白块将在上方展示;
④悬浮球:点击后进入发布界面,可选择表白块标签,可选择匿名发布;
⑤顶部搜索栏:输入用户名搜索用户;
⑥表白块:
表白块上显示有用户信息、表白块标签、文字、配图、浏览数,用户信息包含头像、性别、昵称;点击点赞按钮进行点赞,评论按钮进入评论界面,分析按钮进行分享
2、消息:
包含我关注的和关于我的;
①我关注的:该用户关注的用户发表表白块后,会在该模块提醒用户
②关于我的:用户发布表白块后,其表白块的回复、点赞、关注以及评论将在这里显示;
3、我的:
包含个人主页、我赞过的、我的主题、意见反馈、关于我们,详细如下:
①个人主页:包含个人信息、我的表白、编辑资料
-我的表白:显示我发布过的表白块列表;
-编辑个人资料:点击跳转到个人资料编辑界面;
②我赞过的:点击后显示用户点赞过的表白块;
③我的关注:用户关注的其他用户的列表;
④我的粉丝:显示关注了用户的人
⑤关于我们:项目组信息。
⑥意见反馈:给项目组提供改进意见;
⑦个性设置:设置小程序主题;
1.2.5 运行环境
① 客户
② 开发人员
③服务端
- 远程服务器:阿里云服务器(已进行域名解析与SSL认证)
- 应用服务器:SpringBoot 内嵌式 Tomcat 服务器
④第三方
- 微信端
- 百度云
- 阿里云
1.2.6 拓展需求
iGDUT表白墙小程序主要面向用户,没有面向管理员的设计。因此后续大概率需要搭建表白墙后台管理系统,对所有的表白动态进行管理,包括删除功能。另外,由于小程序具备意见反馈的功能,亦需要通过后台管理系统来进行对反馈的回复。
1.3 系统分析
1.3.1 面向用户分析
- 用户量分析: 由于此项目是面向广东工业大学的,每个年级大概
9K
位同学,因此预计最终用户量为8k
。 - 面向用户分析功能:
- 表白墙:在表白墙页面,用户可以查看他人的表白动态,并进行点赞、转,并且发、评论等操作。用户可以在这个页面发表动态,并且对自己的动态拥有删除”权限。若用户对另一个用户感兴趣,可以关注对方。
- 消息:在消息页面,用户可以查看关注用户的消息推送,也可以收到与自己相关的通知(如别人点赞、评论自己的动态等)。
- 我的:在我的页面,用户可以编辑自己的个人信息,可以查看自己的表白记录、喜欢的表白记录以及关注的用户,可以进入设置功能和查看“关于我们”。
1.3.2 系统价值分析
- 真实性:本小程序对注册的个人用户资料、动态信息都要严格按照实际情况存档。
- 可用性:
- 平台的适用面很广。面向广工全体学生,支持各种类型的表白。
- 平台使用方便。相对其他表白方式,通过小程序自主发布更加便利。
- 平台界面简便美观。
- 价值:
二、代码管理
前端码云仓库:https://gitee.com/Non-professional-Team/ConfessionWall-frontend
后台码云仓库:https://gitee.com/Non-professional-Team/ConfessionWall-backend
三、issues截图
前端:
后台:
四、计划
第 8 周 | 1. 团队组队、团队博客(√) |
---|---|
2. 团队介绍、成员展示、角色分配、选题确定(√) |
|
3. 制定团队计划安排,团队贡献分的规定(√) |
|
第 9 周 | 1. 需求规格说明书(√) |
2. 原型设计,队员估计任务难度并学习必要的技术(√) |
|
3. 编码规范完成、平台环境搭建完成、初步架构搭建(√) |
|
第 10 周 | 1. 原型改进(给目标用户展现原型,并进一步理解需求)(√) |
2. 架构设计,WBS, 团队成员估计各自任务所需时间 |
|
3. 测试计划 |
|
第 11、12 周 | 1. 团队项目Alpha任务分配计划 |
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 |
|
第 13 周 | 1. 用户反馈+测试计划改进 |
2. 团队Alpha阶段个人总结 |
|
3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 |
|
第 14 周 | 1. 团队项目Alpha博客:事后分析 |
五、时间安排
后台时间安排表:
周数 | 完成事项 |
---|---|
第10周 |
①数据库设计 ②基本框架的搭建 ③登录功能 ④辅助性工具的添加和实体类的设计 |
第11周 |
①发表模块、评论模块、点赞模块和推送模块多模块一起开工,提供前端基础的接口 ②进一步改进项目的基本框架 |
第12周 |
①进一步完善各模块的接口 ②改进逻辑和事务 ③做一些简单的性能测试 |
第13周 |
①各模块的基本竣工,压缩时间,挤时间给前端对接接口 ②进一步提高性能 |
前端时间安排表:
周数 | 完成事项 |
---|---|
第10周 | ①根据功能模块进行页面分工 ②封装 request 请求函数③根据项目原型图完成主要页面的基本布局 |
第11周 | ① 完成剩余页面的基本布局 ②分别完成页面的具体功能模块 |
第12周 | ①进一步细化页面功能 ②与后端功能接口对接进行对接 |
第13周 | ①从头到尾进行功能测试 ②性能优化 |
矫正方法:根据实际情况修改计划,将任务的时间安排得更加合理,并且细化了任务。
六、分工
后台分工:
任务 | 人员 |
---|---|
1、与第三方服务器的交互 | 罗艺明 |
1、数据库设计和基本框架搭建与改进 2、辅助型工具的添加和实体类的设计 3、做一些简单的性能测试 4、进一步完善各模块的接口 5、进行性能测试 6、发表模块、评论模块、点赞模块和推送模块 |
罗艺明 林跃玲 向宇 |
前端分工:
任务 | 人员 |
---|---|
1. 封装 request 请求函数 |
陈锐基 |
2. 功能测试 |
郑秀欢 |
1. 根据项目原型图完成页面部分布局 2. 组件化开发 3. 细化页面功能并完成 4. 与后台接口对接 5. 进一步优化代码之力那个,提高维护性 |
陈锐基 郑秀欢 |
UI设计:
任务 | 人员 |
---|---|
1. 对原型图的进一步完善 |
向宇 |
七、 个人完成的情况和感想
陈锐基
罗艺明
向宇
林跃玲
郑秀欢
- 完成情况:小程序相关技术基本学习完成
- 感想:时间过得真快啊