概要设计文档
Posted pinkbig
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了概要设计文档相关的知识,希望对你有一定的参考价值。
---恢复内容开始---
飞机大战概要设计文档规格说明书
1. 引言部分
1.1目的
该文档的目的是描述飞机大战的概要设计,主要内容包括飞机大战的功能简介等
本文档预期的读者包括全体小组成员及指导教师。
1.2 范围
1.2.1 项目目标
开发一个能为生活增添乐趣,填补空闲无聊时间,丰富我们的生活的小游戏,满足我们休闲娱乐的要求。
1.2.2 主要项目需求
该游戏主要功能包括:
● 操控战机
● 发射炮弹
● 攻击敌机
1.2.3 项目设计约束、限制
该游戏支持鼠标或键盘操控。
1.3缩写
无
1.4参考资料
[1]软件工程方法与实践第3版 主编 窦万峰 机械工业出版
2.数据设计
本部分主要描述软件所涉及的外部数据的结构描述。如果数据以数据库文件呈现,则要描述表的名称和表字段结构;如果数据以外部文件的形式呈现,则要描述文件的内部结构。
2.1数据对象和形成的数据结构
该游戏系统涉及的主要数据结构如下:
存档功能:用来记录玩家当前的游戏进度。其数据结构是一个javascript对象类型。
战机:描述战机的基本信息,包括移动的最大最小速度、子弹数量等。其数据结构是一个javascript对象类型。
道具:随着经验的加成到一定值后而生成的物品,用来各提升角色属性值,使角色战力提高。其数据结构是一个javascript对象类型。
敌机:战机在游戏中遇到的敌军战机,包括普通战机和Boss战舰,击败后可获得经验加成。其数据结构是一个javascript对象类型。
游戏基本设置:包括游戏的开始,暂停等功能信息。数据结构是一个javascript对象类型。
系统信息:有关开始界面的相关音乐、背景设置。数据结构是一个javascript对象类型。
2.2文件和数据库结构
描述文件的数据结构或者库表的结构
2.2.1外部文件结构
包括游戏所需的插图、音乐、保存文档、标志、配置文件、各类数据文档(道具、敌机等)。该游戏主要的外部文件有:
背景音乐文档achievement.mp3、buttet.mp3、game_music.mp3、enemy_down.mp3
插图文档shoot.png、shoot_background.png
游戏进度保存文档file.rpgsave
游戏标志btnbg.png
游戏配置文件project.json
各类数据文档data.json
2.2.2全局数据
该游戏系统的全局变量有:
游戏进行时间Totaltime。
公共事件处理器PublicEventProcessor。
变量计数器VariableCounter
游戏全局基本数据结构定义如下:
properties:()=>({
pause: cc.Button,
btnSprite: {
default: [ ],
type: cc.SpriteFrame,
tooltip:‘暂停按钮不同状态的图片‘,
},
bomb: cc.Node,
gameMusic: {
default: null,
type: cc.Audiosource
},
useBombClip: {
type: cc.AudioClip,
default: null,
},
enemyGroup: {
default: null,
type: require(‘enemyGroup‘),
},
hero: {
default: null,
type: require(‘hero‘),
},
ufoGroup: {
default: null,
type: require(‘ufoGroup‘),
},
bulletGroup: {
default: null,
type: require(‘bulletGroup‘),
},
scoreDisplay:cc.Label,
bombNoDisplay:cc.Label,
}),
2.2.3文件和数据交叉索引
背景音乐文档用在系统地图事件初始化功能中;
背景图片文档用在战斗事件功能中;
游戏标志文档用在数据库初始化功能中;
游戏配置文件用在游戏战斗事件功能中;
各类数据文档用在数据库初始化功能中。
3.体系结构设计
3.1数据和控制流复审
图1:飞机大作战系统总体数据流图
图2:游戏开始数据流图
3.2得出的程序结构
图3:飞机大作战游戏系统结构图
4.界面设计
这一部分主要给出界面设计的总体要求和界面序列,以及界面设计规约。
4.1人机界面规约
给出界面风格、约定和操作要求,设计出用户的所有界面。飞机大战的界面主要包括下面几种。
游戏加载界面:该界面用于显示游戏的加载进度。
游戏开始界面:该界面作为游戏的起始界面,只有开始游戏一个按键。点开始游戏即可进行游戏;该界面还显示了游戏名称,下方是不断有飞机划过。
系统总控界面:系统总控界面是系统的主界面,主要完成与用户的交互任务,接收用户的请求,并调用相应的模块。另外总控界面应能够显示用户的角色信息和驾驭者的工作时间,以及显示强制交换的系统时间等。
系统设置界面:系统设置界面主要设置系统的运行参数。
游戏界面:用户通过鼠标操作飞机进行游戏,不可触碰其他飞行物,可通过攻击来消灭其他飞行物。
游戏结束界面:若触碰了其他飞行物,游戏结束。该界面显示了历史最高分数、最终得分。可选择重新开始、历史成绩、离开游戏。
4.2人机界面设计规约
给出界面序列关系,以及每个界面的操作规则和处理规则。
登陆界面序列:输入用户名和密码 — 验证身份。
游戏总控制界面序列:启动游戏 — 启动新游戏 — 进入游戏 —(游戏存档)— 结束游戏。
启动游戏 — 载入存档 — 进入游戏 —(游戏存档)— 结束游戏
5.接口设计
5.1外部接口设计
与外部系统或设备的连接关系和通信方式。
5.1.1外部数据接口
暂无。
5.1.2外部系统或设备接口
与外部系统或接口的连接方式和通信方式。本系统与外部接口仅仅是硬件的接口要求,鼠标、键盘的要求是USB接口连接。
5.2内部接口设计规约
内部接口是软件逻辑模块之间的调用接口。内部接口设计规约定义内部模块之间的调用关系和传递的数据结构。
5.2.1内部模块接口调用关系
内部模块的接口调用关系可参看图B-8,为了便于讨论,我们给每一个模块一个编号,并对结构图进一步进行优化。它们的接口调用关系如下。
图B-9 飞机大战系统结构图(带编号)
● 系统总模块:SceneManager.run
● 登陆模块:SceneManager.login
1.1读入用户名和密码:SceneManager.
1.2 验证身份:SceneManager.verify.
● 总控模块:SceneManager.program.
2.1 开始游戏:SceneManager.startgame.
2.1.1 初始化:SceneManager.init.
2.1.2 记录分数:DataManager.score.
2.1.3 操控战机:TouchInput.fight.
2.1.4 显示成绩:DataManager.achieve.
2.2 系统设置:ConfigManager.makeData
2.3 游戏帮助:SceneManager.help.
2.4 查看当前分数:DataManager.nscore
2.4.1 显示结果:DataManager.outcome
2.5 退出游戏:SceneManager.endgame
5.2.2接口数据结构
描述接口的每个参数数据结构、参数顺序和默认值。
主要数据结构有user、Managers等。
6.模块过程设计
6.1 处理说明
游戏程序加载模块:设置基本的参数,对各个子系统模块进行初始化操作。
游戏界面设计模块:设置游戏界面等等。
游戏对象绘制模块:对战机、敌机、炮弹等进行设计。
游戏动作执行模块:进行攻击,移动等等。
游戏规则调用模块:对玩家当前所做出的动作做出相应的反应,判断是否射中,击毁敌机等等。
6.2使用的模块
系统程序加载模块在启动时,会初始化其他各个模块。
其余各个模块在游戏进行时,会相互调用。
7.需求交叉索引
描述需求与模块的关系、存在交叉的部分,即共享模块的调用关系。
●登录功能:1登陆。
●用户管理:1-1读入用户名和密码、1-2 验证身份。
●游戏开始: 2-1 开始游戏。
●设置系统:2-2 系统设置。
●帮助:2-3 游戏帮助。
●显示成绩:2-4 查看当前分数、2-4-1 显示结果。
●结束游戏: 2-5 退出游戏。
8.测试部分
本部分描述测试的原则与方法,以及测试策略和计划。
8.1测试方针
针对主要功能优先测试,查看是否游戏顺利进行,得分是否正确等等。测试方法黑盒测试方式与白盒测试方式相结合。
8.2集成策略
本项目采用自顶向下的方式进行测试。
一层一层往下测试。
8.3特殊考虑
注意击中敌机与得分设置,和键盘或鼠标的稳定性。
---恢复内容结束---
以上是关于概要设计文档的主要内容,如果未能解决你的问题,请参考以下文章