需求规格说明书
GitHub地址:https://github.com/HardenMVB/5.8
1.引言
1.1目的
为明确软件需求、规划项目、确认进度、组织软件开发并测试而撰写本文档。同时,详细分析项目总体需求,可以作为软件开发工作的基础和依据以及确认测试和验收的依据。
1.2背景
本次待开发的软件为爱心24点微信小程序,由酸辣土豆丝团队提出并开发。
1.3参考资料
1、邹欣.构建之法[M].第三版.人民邮电出版社,2017
2.项目概述
2.1产品描述
本次项目旨在使用Python开发一个关于24点的微信小游戏,用户可通过微信小程序的方式使用我们的游戏,类似于欢乐斗地主那样的类型。用户可以享受各式各样的玩法,包括单机模式及联机模式,闯关和竞速模式,还可以获得点币等丰富奖励。
2.2产品功能
本产品主要有以下功能,随着版本更新,功能可能会有增删。
- 单机模式:单人玩
- 对战模式:可以创建房间,进行联机对战
- 用户登陆后,即可查看做过的题目,以及平均做题时间
- 通过点币,可以获得更多道具,帮助用户更好完成答题
2.3用户场景
根据需求定义如下典型用户与典型场景:
1.小明——学渣
名字 |
小明 |
性别、年龄 |
男、20 |
身份 |
大三学生 |
生活/工作情况 |
成绩倒数 |
用户偏好 |
打网络游戏 |
典型场景 |
喜爱斗地主等各种手游 |
典型描述 |
沉迷不可自拔 |
2.阿饼——学霸
名字 |
阿饼 |
性别、年龄 |
男、21 |
身份 |
大三学生 |
生活/工作情况 |
成绩优异,准备考研 |
用户偏好 |
看书,泡图书馆 |
典型场景 |
休闲时喜欢玩益智类游戏 |
典型描述 |
泡图书馆里不学习,改做题了 |
3.阿珊——上班族
名字 |
阿珊 |
性别、年龄 |
女、22 |
身份 |
蓝领 |
生活/工作情况 |
无车无房,有男朋友 |
用户偏好 |
上网,炒股 |
典型场景 |
周末不开市无聊 |
典型描述 |
炒股多亏啊,还不如玩24点 |
2.4一般约束
1.开发环境约束:
- 开发工具:pygame
- 开发语言:HTML5+Python
- 开发测试浏览器:Google chrome
2.时间约束:开发周期短,对于刚成立的团队和生疏的操作还需要磨合。
3.技术约束:团队成员在相关技术水平方面存在一定的欠缺,缺乏相关的项目经验,需要在开发中并发学习多种技术和能力。
4.其它约束:开发期间,团队成员还有别的学习任务,对项目进度造成一定程度上的影响。
2.5假设与依据
本项目是否能够成功实施,主要取决于以下的条件:
- 团队成员的积极合作配合,为了项目的开发和实施,对个人时间进行合理规划同时为团队做出合理牺牲,配合队友完成任务
- 开发过程中遇到的技术问题可以及时得到同学或者老师的指导和帮助
3.具体需求
3.1 UML图
24点游戏用例图:
用例图说明:
LogIn:当玩家(player)进入游戏,登记注册信息,控制器(Controller)控制游戏进行初始化,包括更新玩家数据,游戏数据,并提示计数器(Calculator)计数等,然后向玩家返回开始游戏信息。
Play Game:玩家进入游戏,并根据游戏提示进行相关操作,然后根据玩家本次的得分情况以及游戏的累积分数分析结果,获得玩家下一步的操作,每当游戏结束,Calculator要向玩家返回玩家的分数,并显示排名更新情况。
Quit Game:玩家选择退出游戏,Controller查看玩家信息,更新玩家信息,并提示Calculator计数器计算该玩家的分数及数据。
类之间的关系:
类关系图说明:
Player类:
属性:用户ID;总分数TotalScore;本次分数CurrentScore;当前玩家数:ComputerNumber;排名:Ranking
方法:登录游戏LogGame,玩游戏PlayGame,退出游戏QuitGame
Computer类:
属性:当前游戏人数:ComputerNumber
方法:数量更新:update
Controller类:
属性:当前玩家CurrentPlayer;题目数量:LevelsNumber;当前玩家数:ComputerNumber
答对题目数:passNumber
方法:初始化Init,新玩家addPlay,退出玩家delPlay,玩家信息更新update
Calculator类:
属性:当前玩家CurrentPlayer;玩家分数PlayScore;当前玩家数:ComputerNumber
排名:Ranking
方法:获取分数GetScore,计算分数CalculatorScore,裁判judge,更新数据update
玩家登陆活动图
游戏过程活动图
游戏结束活动图
游戏控制类状态图:
游戏排行榜状态图
玩家登录时序图
游戏过程时序图
玩家退出时序图
3.2功能需求
(1)游戏首页
- 单机模式
- 联机对战主页
- 对战页面
- 创建房间页面
3.3外部接口需求
3.3.1用户接口
无特殊需求。
3.3.2硬件接口
手机系统需要Android 7.0及以上
3.3.3软件接口
无特殊需求。
3.3.4通信接口
无特殊需求。
3.4属性
3.4.1可用性
- 界面简洁美观,点击数字和下面的符号即可得到结果,操作简单,无需手动输入,没有其他繁琐的操作
- 用户可与好友随时随地对战
- 遇到瓶颈时系统可给出正确答案,对于答案不唯一的情况系统也可自行判断
- 用户独自玩时可选择单机模式独自练习解题
3.4.2安全性
- 用户的挑战记录将存于用户的主页中,便于用户查看自己的挑战记录,不会丢失
3.4.3可维护性
- 使用Github进行源码管理,便于维护与修复
4.验证验收表标准
4.1文档验收标准
文档编写符合国际文档编写规范
- 项目选题报告
- 软件需求规格说明书
4.2软件验收标准
软件一切功能正常,运行流畅、不卡顿、不闪退,适配于大部分Android手机。
4.3界面验收标准
序号 |
界面名称 |
界面描述 |
1 |
游戏首页 |
标题栏:用户名,爱心,签到 侧栏:充值,规则,反馈 中间:单机模式,联机对战,创建房间 |
2 |
单机模式页面 |
上方四个数字 左侧选择符号 右侧答题,提交和删除 下方首页和下一题 |
3 |
联机对战页面 |
左侧返回,用户头像,爱心,商店 中间新手场(爱心100-300,底分10) 中级场(爱心301-500,底分20) 高级场(爱心>500,底分30) |
4 |
对战页面 |
左上方返回 上方四个数字 四周分别为四位玩家的用户名和头像 中间显示场次,答题框,选择符号 左下方可以抢答,右下方是用户自己的信息 |
5 |
创建房间页面 |
上方返回 中间房间名和输入房间号 下方创建和进入 |
4.4功能验收标准
我们希望我们的小程序实现一下几点:
1.对于游客身份,对游客的设置一些权限,游客不能创建房间且只能选择“人机模式”。
2.用户注册时,需记录用户名以及密码,并由系统随机分配一个账号给用户,其中用户名不能重复。系统将判断用户名是否已被使用。
3.创建房间时,系统限制进入房间的人数,最多为5人。
4.对于玩家的解题,系统通过四则运算判断玩家的解题结果是否正确。
5.玩家每次答题结果系统需对其进行记录并于玩家的个人主页中显示。
6.玩家的解题通过点击模拟的卡牌,增加游戏的代入感。
7.解题时,输入的运算符只能是+、-、*、/、(、)这六个,输入的整数必须是程序随机 产生的那四个数,而且每一个数只能用一次。当用户正确输入算式后,用“堆栈来求表达式的值”的原理,求出结果并判断是否为 24,得出用户是输是赢的结果。输出结果后,询问用户是否继续,是则重新启动程序,否则结束程序。
工作分配
陈烨权(队长) | 戚景晓 | 卢凯欣 | 林志达 | 余力 | 李震明 | |
比例 | 15% | 22.5% | 22.5% | 15% | 15% | 10% |
选题报告——戚景晓
需求规格报告——余力,林志达
课堂展示——卢凯欣
评审表——李震明
录制视频——陈烨权