-
队名:专✌团队
-
队员信息:
3118004954 陈忠明——队长
3118004976 吴茂平—— PM
3118004988 郑靓
3118004981 杨锐龙
3118004977 吴尚谦
3118004961 黄海钊
1.需求规格说明书
一、 引言
1.1 定位与目标
音乐充实着我们的生活,在如今高速发展的社会中更充当着重要角色,可以给人听觉以愉悦,净化人的灵魂,使人们的精神得到高度的享受,能帮人排除忧愁和悲问伤,使人不在孤单,可以说音乐的重要性愈发明显。但是音乐歌曲风格迥异,数量繁多,在这音乐盛典下,由于总总原因使某些音乐资源缺失。基于此种现状,我们希望实现一款基于共享为主要宗旨的音乐共享网站,用户可在网站上上传,下载,在这里讨论,以共享为宗旨的美好情怀,是我们的最终愿望,不仅解决了某些歌曲哪找等问题,在共享的同时也提高了人们的情怀。
1.2 对象
本《软件需求规格说明书》的预期读者是:
- 项目组所有人员
- 测试组人员
- SQA 人员
- 团队授权调阅本文档的其他人员
二、 需求概述
2.1 项目背景
将要开发的项目名为《音乐在线共享》,基于web端实现。本项目的提出者及开发者是广东工业大学计算机学院18级软件工程1班学生团队,主要用户面向全体音乐爱好者。
2.2 需求概述
2.2.1 功能描述
用户在平台上可以在线播放,下载,上传音乐。同时开放评论功能,以提供交流,抒发想法的方式。
2.2.2 真实性
音乐充实着我们的生活,能帮人排除忧愁和悲问伤,共享可以解决的问题也具体真实存在。
2.2.3 可用性
平台面向所有爱好者免费开放,可方便人们找寻各种音乐资源。
2.2.4 价值所在
音乐歌曲风格迥异,数量繁多,在这音乐盛典下,由于总总原因使某些音乐资源缺失,此网站基于次原因让人们有机会共享出手中资源,实现互利共享。
2.2.5 预期用户量
结合实际,我们期望达到的用户数量为300+
2.2.6 需求分析
- 新用户可以基于有效邮箱注册以获得本平台账号,每个邮箱只允许绑定一个有效账号
- 用户凭个人账号进入平台,登录是进行各种操作的前提,平台不设游客模式
- 音乐资源应标明分享者,下载次数等
- 可以回复他人的评论,被回复者应有消息推送
- 应实现管理员端对各类音乐资源进行管理
2.3 系统结构
三、 系统功能需求
3.1 功能总览
模块 | 功能 | 细节描述 |
---|---|---|
登录注册 | 用户使用邮箱注册账号 用户凭借账号密码登录 选择忘记密码通过邮箱找回 |
注册时需要图片验证码 注册成功后邮箱需通过邮件激活以确保为有效邮箱 激活成功后可登陆 忘记密码通过邮件验证码验证身份 |
发现音乐 | 首页更新最新资源 首页显示下载排行榜 根据热门歌手发现 通过标签发现 自定义搜索 |
最新音乐及下载排行每次登陆或刷新时更新 热门歌手实现字母导航 标签包含但不限于语种/风格/场景/情感 输入框搜索对象包含歌手和歌曲名称,前者优先显示,搜索结果根据下载次数排序 |
上传分享 | 上传单首 修改上传音乐的信息 |
原则上歌曲的相关信息由后台自动识别 标签可由用户自行添加 用户可手动修改识别出的歌曲信息 批量上传形式为zip压缩包 |
下载 | 下载音乐 打开音乐所在地址 |
下载时进度条显示 完成后可打开下载的本地文件 可管理下载历史 |
设置 | 设置头像 设置用户名 修改邮箱 修改密码 设置下载地址 设置其他 |
邮箱修改后需新邮箱验证码确保邮箱有效 修改密码需要邮箱验证码 |
个人主页 | 显示收藏 删除收藏 显示我的分享 操作的分享 我的评论 操作我的评论 |
收到别人回复时头像显示小红点 操作分享包括修改歌曲信息,取消分享 评论可删除 |
播放 | 播放器 详情页面 评论 |
参考网易云 |
管理员 | 管理音乐资源 | 暂定 |
3.2 业务流程图
3.3 数据字典
- 用户信息表:users_table
字段名 | 字段类型 | 说明 |
---|---|---|
id | unsigned int | 主键(递增) |
name | varchar(22) | 用户名(唯一) |
password | varchar(22) | 密码 |
mailbox | varchar(22) | 用户邮箱 |
gender | bit | 性别(0:女,1:男) |
phone | varchar(22) | 手机号(默认为null) |
head_picture | varchar(50) | 头像图路径(可用可不用,暂定) |
create_date | datetime | 创建时间 |
enabled | bit | 用户状态(0:已经注销1:正常状态) |
song_number | int | 歌曲分享数 |
- 用户歌曲收藏表user_song_table
字段名 | 字段类型 | 说明 |
---|---|---|
user_id | unsigned int | 用户id |
song_id | unsigned int | 收藏的歌曲id |
- 用户主评论表comment_table(主评论)
字段名 | 字段类型 | 说明 |
---|---|---|
comment_id | unsigned int | 主键(自增) |
user_id | unsigned int | 用户id |
song_id | unsigned int | 歌曲id |
content | text | 评论内容 |
praise_number | unsigned int | 被电赞数 |
time | datetime | 评论时的时间 |
- 用户互相回复表(次表)replay_table
字段名 | 字段类型 | 说明 |
---|---|---|
comment_id | unsigned int | 被评论的主评论id |
passive_user_id | unsigned int | 被回复用户id(若为0则是直接对主评论的回复,否则是在该主评论下对其他用户的回复) |
user_id | unsigned int | 主评论用户id |
content | text | 评论内容 |
time | datetime | 评论时的时间 |
- 歌曲信息表:song_table
字段名 | 字段类型 | 说明 |
---|---|---|
song_id | unsigned int | 主键(递增) |
path | varchar(50) | 歌曲路径 |
name | varchar(22) | 歌曲名 |
author | varchar(22) | 歌曲作者 |
uploader_time | datetime | 上传日期 |
downloader_number | unsigned int | 下载数量 |
- 歌手信息表singer_table
字段名 | 字段类型 | 说明 |
---|---|---|
singer_id | unsigned int | 主键(递增) |
name | varchar(22) | 姓名 |
gender | bit | 性别(0:女,1:男) |
picture | varchar(50) | 歌手图路径(暂定) |
- 歌手歌曲关联表singer_song_table
字段名 | 字段类型 | 说明 |
---|---|---|
singer_id | unsigned int | 歌手id |
song_id | unsigned int | 歌曲id |
(注:插入前各id是否存在在程序里实现,一个singer_id对应多个song_id)
四、 软硬件及外部系统接口需求
4.1 用户界面
用户界面是程序中用户能看见并与之交互作用的部分,设计一个好的用户界面是非常重要的,本设计将为用户提供美观,大方,直观,操作简单的用户界面。
4.2 硬件需求
具有高的可靠性,可用性和安全性。
4.3 运行环境
- Web 浏览器:0+、Chrome、Opera、Safari、Firefox及任何支持HTML5标准的浏览器。
- 标准分辨率:1024*768、1920*1080、2K
五、 技术需求分析
5.1 性能需求
- 并发处理
按照实际情况的规划,系统至少能承载的最大并发用户数要求达到总用户数2/3 - 响应时间
用户最终得到结果的响应时间除了与系统响应速度有关外,还与网络状况有关,目标平均响应时间500ms内
5.2 技术选型
前端
技术项目 | 具体技术 |
---|---|
编程语言 | JavaScript |
脚手架 | vue cli 4.1.1 |
框架 | vue 2.6.11 |
页面路由 | vue-router 3.1.5 |
数据状态管理 | vuex 3.1.2 |
UI组件库 | element-ui 2.13.1 |
后台
技术项目 | 具体技术 |
---|---|
编程语言 | Java |
JDK | 1.8.0 |
开放框架 | springboot |
通讯协议 | HTTP |
数据库 | mysql Redis |
数据库连接 | JDBC |
代码版本控制 | git |
服务器系统 | Linux |
六、参考文献
[1] 《构建之法——现代软件工程》作者邹欣,2015年3月人民邮电出版社出版
[2] 软件需求规格说明书范例
2.团队计划安排
一、团队github仓库
1.1 项目github地址
1.2 issue截图
二、项目时间安排表
2.1 原安排表
序号 | 模块 | 功能 | 时间安排 |
---|---|---|---|
1 | 登录注册 | 用户使用邮箱注册账号 用户凭借账号密码登录 选择忘记密码通过邮箱找回 |
5.5 - 5.8 |
2 | 上传分享 | 上传单首 批量上传 修改上传音乐的信息 |
5.9 -5.10 |
3 | 下载 | 下载音乐 打开音乐所在地址 下载历史管理 |
5.11 |
4 | 发现音乐 | 首页更新最新资源 首页显示下载排行榜 根据热门歌手发现 通过标签发现 自定义搜索 |
5.12 -5.15 |
5 | 设置 | 设置头像 设置用户名 修改邮箱 修改密码 设置下载地址 设置其他 |
5.15-5.17 |
6 | 个人主页 | 显示收藏 删除收藏 显示我的分享 操作的分享 我的评论 操作我的评论 |
5.18-5.20 |
7 | 播放 | 播放器 详情页面 评论 |
5.21 - 5.22 |
8 | 管理员 | 管理音乐资源 | 5.23 -5.25 |
2.2 改进后安排表
序号 | 模块 | 功能 | 时间安排 | 负责人 |
---|---|---|---|---|
1 | 登录注册 | 用户使用邮箱注册账号 用户凭借账号密码登录 选择忘记密码通过邮箱找回 |
5.6 - 5.7 | 陈忠明 ,郑靓 |
2 | 上传分享 | 上传单首 批量上传 修改上传音乐的信息 |
5.6 -5.9 | 吴茂平,吴尚谦 |
3 | 下载 | 下载音乐 打开音乐所在地址 下载历史管理 |
5.8 - 5.9 | 杨锐龙,黄海钊 |
4 | 发现音乐 | 首页更新最新资源 首页显示下载排行榜 根据热门歌手发现 通过标签发现 自定义搜索 |
5.8 -5.12 | 陈忠明 ,郑靓 |
5 | 设置 | 设置头像 设置用户名 修改邮箱 修改密码 设置下载地址 设置其他 |
5.10-5.12 | 吴茂平,吴尚谦 |
6 | 个人主页 | 显示收藏 删除收藏 显示我的分享 操作的分享 我的评论 操作我的评论 |
5.12-5.14 | 陈忠明 ,郑靓 |
7 | 播放 | 播放器 详情页面 评论 |
5.13 - 5.14 | 吴茂平,吴尚谦 |
8 | Alpha 1.0 测试 | 生成测试文档 | 5.15 - 5.16 | 杨锐龙,黄海钊 |
9 | 管理员 | 管理音乐资源 | 5.17 -5.25 | 吴茂平,吴尚谦 |
10 | Alpha 2.0 | 在第一版测试结果上进行改进 | 5.17 -5.25 | 陈忠明 ,郑靓 |
11 | Alpha 2.0 测试 | 5.26 - 5.27 | 杨锐龙,黄海钊 |
2.3 矫正计算方法
- 根据任务量更正安排时间
- 将任务具体安排到负责人
- 分版本开发测试发布
三、团队分工
职责 | 负责人 |
---|---|
ui | 郑靓,吴尚谦 |
前端 | 郑靓,吴尚谦,杨锐龙 |
后台 | 陈忠明,吴茂平,黄海钊 |
测试 | 杨锐龙,黄海钊 |
文档和复审 | 陈忠明,吴茂平 |
四、本周小结
4.1 团队完成任务
- 后台完成项目初始化
- 项目数据库初版建立
- ui给出第一版设计
- 团队仓库建立
- 明确任务并提交issue
- 完成《项目需求规格说明书》
- 团队成员学习必要开发技术
- 确定开发编码规范——《阿里巴巴Java开发手册》
4.2 个人情况
姓名 | 完成情况 | 个人感想 |
---|---|---|
陈忠明 | 1.参与项目数据库初版建立 2.参与完成《项目需求规格说明书》 3.学习开发必要技术 |
近期抓紧学习git版本控制,冲突解决,以及复习sql语句对数据库表的相关操作等, 与队友们讨论需求相关细节,总的来说收获颇丰,清楚自身不足,加油^0^~我们是专✌团队! |
郑靓 | 1.参与ui给出第一版设计 2.参与完成《项目需求规格说明书》 3.学习开发必要技术 |
1.团队交流十分顺畅,分工明确 2. 本周为即将到来的开发任务做了初步尝试 3. 尝试了eolinker进行前后端接口发布 |
杨锐龙 | 1.参与项目数据库初版建立 2.确定开发编码规范——《阿里巴巴Java开发手册》 3.学习开发必要技术 |
认真学习了怎么划水,队友确定的技术层面看起来都比较新颖,分配到的任务也是比较基础的, pm认真负责,分工明确,责任分拉满 |
吴尚谦 | 1.参与ui给出第一版设计 2.团队仓库建立 3.学习开发必要技术 |
1. 认真学习了vue.js,学习过程中感受到vue开发带来的便利性; 2.第一次参与团队ui设计,在设计过程中受益颇多。 |
黄海钊 | 1.参与完成项目初始化 2.参与完成《项目需求规格说明书》 3.学习开发必要技术 |
我的能力比较弱,在这次团队合作中,很多东西对我来说都是新事物,学习空间很大, 同时也给了我不小的学习压力。好好学习,加油! |
吴茂平 | 1.参与完成《项目需求规格说明书》 2.明确任务并提交issue 3.学习开发必要技术 |
1.第一次写《项目需求规格说明书》,感觉学到了很多。 2.认真学习了一遍springboot为开发做准备。 3.也认真学习了团队合作开发方法,期待和大家一起努力。 |