团队Github地址:https://github.com/Pryriat/2048.git
软件规格需求说明书
目录
1 引言... 2
1.1编写目的... 2
2 总体描述... 2
2.1产品前景... 2
3 系统功能... 3
3.1 3.2 3.3. 3
4 外部接口需求... 3
4.1用户界面... 3
5 非功能性需求... 5
5.1性能需求... 5
6 数据字典... 5
6.1实体关系图 6.2实体定义... 5
7 团队分工与绩效算法... 5
7.1团队分工... 5
7.2绩效算法... 6
1 引言
1.1编写目的
软件规格需求说明描述了“2048俄罗斯方块”1.0版本的软件功能性需求和非功能性需求。
1.2文档约定
描述编写文档时所采用的标准或排版约定,包括正文风格,提示区或重要符号。例如,说明高层需求的优先级是否可以被所有细化分需求所继承,或者每个需求陈述是否都有优先级。
1.3读者对象和阅读建议
该软件需求规格说明书针对开发人员、测试人员等,用于开发初期确定软件的系统设计,详细设计。本文内容包括面向用户分析、功能性需求、技术需求,阐述了系统的真实性、可用性以及价值所在。
1.4项目范围
“2048俄罗斯方块”是在软件工程第三次大作业由C++轮子队提出来的一个项目,主要目的是供队员学习软件工程的开发过程,并通过此次开发,对C++掌握更加牢固。该游戏软件适用于大多数学生和上班族打发零散的空闲时间,我们预计的用户数量是1000人以上。
1.5参考资料
2 总体描述
2.1产品前景
“2048俄罗斯方块”1.0版本是由微信小程序“我的方块2048”的改进版,增加了一些新的功能来吸引更多用户。
2.2产品的简述
游戏规则:合并相同数字方块,合成2048或更大数字获得胜利,格子填满或方块超出上界游戏失败
得分规则:合成块对应分值 - 游戏时间
具体操作:左右控制方块移动,下键使悬空方块立刻落下
2.3运行环境
Linux/X11、Mac、Windows、Embedded Linux、Windows CE / Mobile、Symbian、Meego、Wayland、Android、IOS、Amazon Kindle DX…
QT For Everywhere!
2.4设计和实现上的约束
- 为了确保可移植性,本项目使用C++进行编写,图形库、网络库使用QT内置的实现。
- 开发规范:
a) 禁止使用宏
b) 分号以前不加空格
c) 行宽原则上不超过80
d) 一行只定义一个变量
e) 大括号换行
f) return 后面的数值不加 ( )
g) 每个文件应该含有版权信息及作者
h) 左圆括号之后和右圆括号之前无空格
i) 一目运算符与变量之间不加空格符隔开
j) 函数名与参数同行
k) 换行代码缩进4个空格,并且使用四个空格符取代制表符
l) 二目以上的运算符与变量,常量之间用空格隔开(各类括号除外)
m) 不论控制语句,循环语句后面的循环体有多少行,都必须使用花括号
n) 普通函数,类型(含类与结构体,枚举类型),常量等使用大小写混合,可包含下划线
- o) 除函数定义的左大括号可置于行首以外,包括函数/类/结构体/枚举声明,各种语句的左大括号必须置于行末,所有右大括号独立成行
- 硬件限制
a) 键盘输入设备
b) 显示屏
c) 具体硬件配置需求待测试
3 系统功能
3.1 图形界面
3.2 分数统计
3.3 障碍块
3.4 难度调整
3.5 在线排名
4 外部接口需求
4.1用户界面
总体界面:包括方块,背景板,计分板,开始按钮,暂停按钮,结束按钮。
4.2硬件接口
描述系统中硬件每个接口的特征。可能包括支持的硬件类型、软硬件之间交流的数据和控制信息的性质以及所使用的通信协议
4.3软件接口
描述产品与其它外部组件的连接,包括数据库,操作系统,工具库和集成的商业组件。明确并描述在软件组件之间交换数据或信息的目的,描述所需要的服务及内部组件通信的性质,确定将在组件之间共享的数据。如果必须用一种特殊的方法来实现数据共享机制,那么就必须把它定义为一种实现上的限制
4.4通信接口
描述与产品所使用的通信功能相关的需求,包括电子邮件、WEB浏览器、网络通信标准或协议及电子表格等,定义相关的信息格式、规定通信安全或加密问题、数据传输速率和同步通信机制
5 非功能性需求
5.1性能需求
点击开始,暂停,结束按钮时,立刻(1S内)出现相应的反应。
用户用键盘控制方块左右移动,按下键盘←→键,在2ms内方块移动,让用户感觉不到延迟。
还要定义容量需求,例如存储器和磁盘空间的需求或者存储在数据库中表的最大行数。也可能需要针对每个功能需求或特性分别陈述其性能需求
5.2 软件质量属性
可用性:在软件发布后24小时内可用。(写明软件积分最大值,是否无限分值)
健壮性:可支持双人同时进行游戏,时间不限。
6 数据字典
6.1实体关系图
6.2实体定义
7 团队分工与绩效算法
7.1团队分工
图形界面:泽瀚、秉坤、yy
开发
数字类:秉坤
控制类:(控制方向)育招 (判断方向)绿猪
文档:湖倩
7.2绩效算法
成员的绩效 = 团队获得的分数 + 个人的团队贡献分
在项目alpha 和 beta 阶段评审后, 团队会得到一个项目分数(每个成员都会得到同样的分数,做为自己的原始分数的一部分)。团队成员的努力程度不同,达成目标的程度不同,帮助同伴的付出不同,那就要在“团队贡献分” 上有所区分。 所有人贡献分的总和为 20N,其中N为团队的人数。 在alpha/beta 之后,团队按照自己制定的规则,把 (20N)瓜分给每人,这就是 “团队贡献分”。
要求:请每人阅读教材 “人、绩效和职业道德”一章,然后团队开一个讨论会,协商讨论团队贡献分的分配规则。每人得分为自然数,并且每个人分数不能相同。 请写一个团队博客详细说明每个团队的成员计划如何帮助团队完成任务,以及团队贡献分的分配规则。