2020软件工程作业——团队04
软件需求说明书 for OMCP
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10811 |
团队名称 | Tom&Jerry |
这个作业的目标 | 撰写《需求规格说明书》 |
作业正文 | https://www.cnblogs.com/TomJerry/p/13074168.html |
其他参考文献 | 计算机软件需求规格说明书 |
一、引言
1. 1 目的
为明确软件需求、规划项目、确认进度、组织软件开发并测试而撰写本文档。同时,详细分析项目总体需求,可以作为软件开发工作的基础和依据以及确认测试和验收的依据。
1. 2 背景
本次开发的项目为线上共享听歌聊天平台,用户可以与平台上在线的世界各地的网友同听一首歌,并进行实时的通讯社交。由团队Tom & Jerry提出并开发。
1. 3 定义
序号 | 缩写 | 定义 |
---|---|---|
1 | IDEA | IDEA 全称 IntelliJ IDEA,是Java编程语言开发的集成环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品 |
2 | chrome | Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。 |
3 | Java | Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。 |
4 | JavaScript | JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格 |
5 | HTML | HTML称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等 |
6 | OMCP | 线上听歌聊天平台(本项目名称) |
1. 4 参考文献
[1] GB-T8567-2006,《计算机软件文档编制规范》[S]
[2].(美)Roger S.Pressman著,郑人杰等译.软件工程[M].第七版.北京:机械工业出版社,2011.
[3] 邹欣著.构建之法[M].第三版.人民邮电出版社,2017
二、项目概述
2. 1 产品描述
这是一款基于web网页的聊天听歌平台,在这里你可以听歌、点歌,同听一首歌的以及与平台在线的网友进行实时聊天。本平台可以帮助你与世界各地的网友之间共同感受音乐的魅力,欣赏音乐之美。
2. 2 产品功能
市面上的听歌软件都是单人听歌,少有做到多人同时在线听歌聊天。由此作为启发,我们提出了基于web网页的聊天听歌平台,它可以帮助你与平台在线的网友同听一首歌并进行实时聊天。
2. 3 一般约束
进行本项目开发工作的约束条件如下:
2. 3. 1 开发环境约束
开发工具:IDEA
测试工具:Chrome
开发语言:Java、JavaScript、HTML
2. 3. 2 时间约束
开发周期短,一个月的开发时间需要开发者合理规划时间,对于刚成立的团队和生疏的操作还需要磨合。
2. 3. 3 技术约束
所采用的方法与技术有限,项目团队成员的技术水平不够成熟,需要在开发中并发学习多种技术和能力。
2. 4 假设与依据
本项目是否能够成功实施,主要取决于以下的条件:
-
团队成员的积极合作配合,为了项目的开发和实施,对个人时间进行合理规划同时为团队做出合理牺牲,配合队友完成任务。
-
开发过程中遇到的技术问题可以及时得到同学或者老师的指导和帮助。
-
团队掌握先进的能够适用于该项目的技术,这是系统的性能是否优化和项目能否成功的保证。
三、用户场景
场景1
典型用户:小洁(学生)
用户需求:与大家一起听歌
场景描述:小洁同学是一名大三的学生,最喜欢的明星就是李易峰,每次他出了什么新的歌曲或者新专辑,都是第一时间去听,还喜欢和和大家分享自己喜欢歌手的歌曲。她发现了OMCP这个既可以听歌又可以聊天的网站就果断选择了,因为这不仅可以听自己喜欢听的歌曲还可以和别人一起分享表达自己对歌曲理解与看法。
场景2
典型用户:小刘(上班族)
用户需求:放松,舒缓压力
场景描述:小刘是一个程序员,典型地上班族每天过着朝九晚五的生活,平时加班的时间也比较多,工作压力较大,他比较希望自己能在下班时间或者空闲的时间能听歌和他人聊天放松一下自己,舒缓一下自己心情。当他用了OMCP这个听歌的网站后,自己确实放松了不少,因为公共聊天室里面有很有趣的话题。
场景3
典型用户:老黄(退休工人)
用户需求:消磨时间
场景描述:老黄是一名退休工人,平时的空闲时间较多,自己平时也喜欢唱歌、听歌,当他偶然发现OMCP这个网站后,能随机听到不同类型的歌曲,这丰富了他的音乐口味,他感到非常的满意,每天都要进去玩玩。
四、具体需求
4. 1 用例图
4. 2 类图
4. 3 顺序图
- TextArea:边界类
- ChatSystem:控制类
- ChatArea:边界类
- Form:边界类
- BackgroundSystem:控制类
- DataBase:辅助类
- Logininteface:边界类
- Form:边界类
- BackgroundSystem:控制类
- DataBase:辅助类
- MainPage:边界类
- SearchBar:边界类
- SerchSystem:控制类
- API:辅助类
- Resultlist:实体类
- SelectSong:控制类
- SongsManageSystem:控制类
- SongsList:边界类
- VoteWindow:边界类
- PromptSystem:控制类
- SongList:辅助类
- PromptSystem:控制类
- SongList:实体类
- Songlist:边界类
4.4 外部接口需求
4.4.1 用户接口
无特殊需求。
4.4.2 硬件接口
无特殊需求。
4.4.3 软件接口
网易云API。
4.4.4 通信接口
无特殊需求。
五、界面原型
5. 1 主页
5. 2 注册登录页面
5. 3 我的
5. 4 歌单管理
六、功能描述
6. 1 登录功能
6. 1. 1 初始界面
- 检验点
- 用户名、密码默认为空;记住密码默认未选择;用户名为长度大于两位小于八位的字符串,可为任意字符;密码长度大于6位小于10位,可为数字、英文、符号的任意组合
- 预期结果
- 登录、注册、记住密码按扭完整;用户名输入框完整;密码框完整
6. 1. 2 登陆动作
- 输入输出:
- 无信息输入,点击登录
- 仅输入用户名或密码(输入类型正确;无论存在与否)其一,点击登录
- 输入用户名及密码,两者其一错误或都错误(输入类型正确),点击登录
- 用户名或密码格式错误(包含非法符号),点击登录
- 输入符合身份的正确用户名和密码,点击登录
- 检验点
- 确认功能、结果显示 * 4
- 确认功能、跳转功能
- 预期结果
- 登录失败,警告提示:“请输入用户名和密码”
- 登录失败,警告提示:“请输入完整登陆信息”
- 登录失败,警告提示:“请输入正确的登陆信息”
- 登录失败,警告提示:“用户名或密码输入类型错误”
- 登录成功,进入主页
6. 1. 3 记住密码动作
- 检验点
- 点击记住密码单选按钮
- 未点击记住密码单选按钮
- 预期结果
- 下一次登录时用户名和密码默认为本次登录成功的用户名和密码
- 下一次登录时用户名和密码默认为空
6. 2 注册功能
6. 2. 1 初始界面
- 检验点
- 用户名,密码,确认密码默认为空;用户名为长度大于两位小于八位的字符串,可为数字、英文字、下划线符、汉字的任意组合;密码长度长度大于6位小于10位,可为数字、英文字的任意组合;确认密码必须和密码保持一致
- 预期结果
- 注册、用户名、密码、确认密码框内容完整
6. 2. 2 注册动作
- 输入输出
- 无信息输入,点击注册
- 必要信息输入不完整,点击注册
- 输入信息不规范,点击注册
- 输入符合规范的注册信息,并选择同意遵守协议,点击注册
- 检验点
- 确认功能、结果显示 * 3
- 确认功能、跳转功能
- 预期结果
- 注册失败,警告提示:“请输入完整注册信息“ * 2
- 注册失败,警告提示:“请输入正确的注册信息”
- 注册成功,进入登录界面
6. 3 “我的”
6. 3. 1 初始界面
- 检验点
- 用户名为长度大于两位小于八位的字符串,可为数字、英文字、下划线符、汉字的任意组合
- 预期功能
- 用户名显示完整;歌单管理、确认修改按钮完整
6. 3. 2 确认修改动作
- 输入输出
- 无信息输入,点击确认修改
- 必要信息输入不完整,点击确认修改
- 输入信息不规范,点击确认修改
- 输入符合规范的必要信息,点击确认修改
- 检验点
- 确认功能、结果显示 * 3
- 确认功能、跳转功能
- 预期结果
- 修改失败,警告提示:“请输入信息后再点击修改”
- 修改失败,警告提示:“请输入必要信息”
- 修改失败,警告提示:“请输入正确的信息”
- 修改成功,进入主页面
6. 3. 3 歌单管理动作
- 检验点
- 点击歌单管理按钮
- 预期结果
- 普通用户点击后将提示”你不是管理员,无法管理歌单“,管理员用户点击后将跳转到歌单管理页面
6. 3. 4 我的收藏
- 检验点
- 点击我的收藏按钮
- 预期结果
- 弹出一个窗口,里面显示用户已收藏的歌曲
6. 3. 5 退出登录动作
- 检验点
- 点击退出登录按钮
- 预期结果
- 退出当前账户,并跳转到初始主页面
6. 4 歌单管理功能
6. 4. 1 初始页面
- 检验点
- 进度条默认为当前播放歌曲的进度
- 预期结果
- 暂停、切歌、移除歌曲、黑名单按钮完整
6. 4. 2 暂停动作
- 检验点
- 点击暂停动作
- 预期结果
- 暂停当前正在播放的歌曲
6. 4. 3 切歌动作
- 检验点
- 点击切歌动作
- 预期结果
- 暂停当前正在播放的歌曲,切换到歌单中的第一首歌曲
6. 4. 4 移除歌曲动作
- 检验点
- 点击切歌按钮
- 预期结果
- 暂停当前正在播放的歌曲,切换到歌单中的第一首歌曲
6. 4. 5 黑名单
- 检验点
- 点击黑名单按钮
- 预期结果
- 切换当前正在播放的歌曲,播放歌单中的下一首歌
6. 5 主页面功能
6. 5. 1 初始页面
- 检验点
- 进度条默认为当前播放歌曲的进度;聊天框、搜索栏默认为空
- 预期结果
- 投票切歌、查看歌单、收藏、音量、发送按钮、搜索按钮完整
6. 5. 2 聊天动作
- 输入输出
- 无信息输入,点击发送
- 输入信息,点击发送
- 检验点
- 确认功能 * 2
- 预期结果
- 无法发送
- 输入框中的发送到聊天室
6. 5. 3 搜索动作
- 输入输出
- 无信息输入,点击搜索
- 输入信息,点击搜索
- 检验点
- 确认功能 * 2
- 预期结果
- 无法搜索
- 显示与搜索栏中输入信息有关的歌曲名称
6. 5. 4 投票切歌动作
- 检验点
- 点击投票切歌按钮
- 预期结果
- 正在播放的歌曲不喜欢的人数加一
6. 5. 5 查看歌单动作
- 检验点
- 点击查看歌单按钮
- 预期结果
- 弹出歌单信息窗口
6. 5. 6 收藏动作
- 检验点
- 点击收藏按钮
- 预期结果
- 将当前播放歌曲加入到我的收藏中
6. 5. 7 调节音量动作
- 检验点
- 点击音量按钮
- 预期结果
- 出现音量调节控件,可调节音量大小
七、验收验证标准
7. 1 文档验收标准
- 文档编写符合国际文档编写规范
- 项目选题报告
- 软件按需求规格说明书
7. 2 软件验收标准
软件功能正常,bug不容易触发,运行流畅、不卡顿、适配于大部分能运行Chrome的电脑。
7. 3 界面验收标准
序号 | 界面名称 | 界面描述 |
---|---|---|
1 | 注册 | 右区域:注册用户名、密码输入框、确认密码输入框、注册按钮 |
2 | 登录 | 右区域:用户名输入框、密码输入框、记住密码、登录和注册按钮 |
3 | 我的 | 左上角:返回 垂直线(由上到下):修改头像、修改ID、我的收藏、歌单管理、退出登录 |
4 | 主页 | 标题栏:logo、歌曲搜索、账户中心 左区域:歌曲图片、进度条、音量条、投票切歌 右区域:聊天区 |
5 | 歌单管理页面 | 左上角:返回 垂直线:当前歌曲管理、歌单管理 |
7. 4 功能验收标准
我们希望的小程序实现以下几点:
- 对于游客身份,做好游客的权限限制,仅能拥有的操作只是听歌和查看主页内容
- 游客注册时,需记录用户名和密码,并调用后台数据库验证是否合法,合法性判断将验证用户名是否已被使用
- 用户进入主页后,能拥有的操作有:听歌、聊天、点歌、投票切歌
- 管理员登录后可以进入歌单管理页面对歌曲进行管理
- 当用户点击投票切歌时,所有在线用户都会收到投票切歌提醒,当投票人数超过在线用户人数半数时,直接切换到下一首
7. 5 亮点以及未来预期完成的功能
我们预想了一下项目基本功能完成后的附加项,希望能够加以实现:
- 当歌单为空且超过五分钟无用户点歌时,将自动从API随机获取歌单并加入到OMCP歌单中
- 聊天可以发送系统提供的表情
- 我的收藏中的歌曲可以提供歌曲链接进行跳转
- 提供绑定手机号功能,能在忘记密码的时候通过其修改绑定帐号的密码
八、工作分配
人员 | 何昆佰 | 刘超然 | 高洁 | 黄波 | 刘丙亮 | 林金 | 李安娜 | 蒋晨 |
---|---|---|---|---|---|---|---|---|
比例 | 18 | 18 | 15 | 15 | 9 | 9 | 8 | 8 |