软件工程答辩答案
软件需求分析
基本功能需求
1.带有棋盘的游戏界面; 2.游戏双方玩家轮流下子;
3.判断并显示游戏胜利的一方;
4.双方可进行悔棋操作;
5.游戏进行过程中可以选择重新开始游戏; 6.游戏结束可选择重新开始或者直接退出。
用户界面需求
对于一个好的软件有一个友好的用户界面是很重要的。用户界面应尽 量做的简单、层次清晰明了,以最大限度为用户提供操作方便。
点击“退出”时,游戏 无条件退出
下棋模块
(1)根据内部记录的数据信息,应用程序自行判断哪方下棋(轮流制), 初始时为黑方行棋 (2)当点击鼠标时,应用程序收集鼠标信息,判断玩家行棋的位置,记录 信息,更新游戏界面视图,判断是否胜利,若胜,弹出提示对话框,若不胜, 等待下一个信息响应 计数器count 鼠标点击 网格坐标定位 判胜负 网格信息修改 显示
可行性研究分析
软件需求分析
系统总体设计 详细设计
系统测试
项目开发总结
可行性研究分析
1.1 技术可行性
如今计算机已经相当普及,五子棋作为传统的棋类游戏也 可说是人人皆会。所以本次开发的五子棋游戏软件是一款 简单的单机版小游戏,对用户也不做特别的限制。
此次开发采用的工具为基于C++语言的Visual C++6.0。由 于五子棋游戏软件本身所要实现的功能较为简单,功能强 大VC++足以满足其编程需求,且对于软件后续的优化与功 能添加也容易实现。 综上所述,本软件的设计与开发在技术和硬件设备上的条 件以及计算机软件的使用上条件是成熟。因此,它在技术 上是可行的。
11
12
棋盘布满判胜负
13 14
判和局 退出
测试结果
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 测试用例标题 玩家交替落子 棋盘外落子 有子棋格内落子 横向胜负判定 竖向胜负判定 “/”向胜负判定 “\”向胜负判定 第一步悔棋操作 大于一步悔棋 游戏进行中重新开始 游戏结束时重新开始 棋盘布满判胜负 判和局 退出 测试结果 通过 通过 通过 通过 通过 通过 通过 通过 通过 通过 通过 通过 通过 通过 测试结果说明 玩家可以顺利进行五子棋对弈。 软件没有对棋盘外的落子做出响应。 软件能够识别有棋子的棋格并阻止重复落子。 横向判定有效。 竖向判定有效。 “/”向判定有效。 “\”向判定有效。 软件能撤销第一步棋子的操作。 软件能够撤销前两步棋子的操作。 软件能够在主界面中正确响应重新开始消息。 软件能够在提示窗口中正确响应重新开始消息。 软件没有错判和局。 软件能够判断和局。 软件能够顺利退出。
悔棋
网格信息修改
显示
重新开始模块
重新开始
计数器count
网格信息 显示
初始化
系统测试
五子棋软件测试用例
序号
1
测试用例标题
玩家交替落子
期望结果
成功,双方玩家可以实现黑白子交替进行游戏, 不会出现一方连续下子的情况。
2
棋盘外落子
无响应,当点击在棋盘外区域时软件能准确判断 并不做出响应。
软件提醒,当点击在有子的棋
本软件使用的开发语言是Visual C++,以Windows 7系统为操作平台。
系统总体设计
五子棋软件
下棋
悔棋
重新开始
五子棋软件体系结构图
1. 下棋模块:当玩家在棋盘上点击时,自动下棋。 2. 悔棋模块:当玩家点击“悔棋”按钮时,实现悔棋操作。 3. 重新开始模块:当玩家点击“重新开始”按钮后,软件对所有棋格信 息 初始化,使整个棋盘还原到游戏开始的状态。
(3)如果收集到的鼠标信息显示已有信息记录,弹出提示对话框,并不 更改数据信息。
计数器count 鼠标点击 网格坐标定位
网格信息修改
显示
判胜负
等 对话框 信息比对 不等
(4)当达到胜利条件时,自动弹出对话框,显示胜利一方,有三种选择方 式,“重新开始”,“退出”分别进入相应模块,“返回”时,棋盘界面 不能被操作,直到去除胜利条件为止。 计数器count 鼠标点击 网格坐标定位
开始 下黑子 结束
N
主 程 序 流 程 图
重新开始
是否获 N 胜 N 下白子 悔棋 是否获胜 N Y 胜利 结束 退出 断点
Y
开始
…
程 序 退 出
辅 助 程 序 流 程 图
详细设计
界面模块
游戏界面采用MFC来实现 主要功能: 打开游戏时直接进入游 戏,在棋盘内可行棋 当条件满足时,可以点 击“悔棋”,“重新开始” 点击“悔棋”时,进入 悔棋模块 点击“重新开始”时, 进入重新开始模块
7
提示胜利,当任意一方“\”向连成五子时软件应 “\”向胜负判定 提示该方玩家胜利。在该用例中还可对连成线五 子落子的不同落子顺序进行测试。 成功,游戏开始黑方先落子,在白方未落第二子 前,对第一步进行悔棋操作。
8
第一步悔棋操作
9
大于一步悔棋
成功,当玩家双方进行超过两步后,分别测试黑 白双方玩家的悔棋操作。
1.2 经济可行性
此次软件工程大作业的目的在于帮助我们切身体会软件开 发的内容和过程,所以我们选择了开发五子棋游戏。而市 场上该游戏的不同版本已经非常多了,所以这里对它的经 济可行性分析不做过多的讨论。
1.3运行可行性
本软件为休闲益智类小游戏,所耗费的资源非常的小,普 通家用计算机无论是硬件还是软件都能够满足条件,因此, 本软件在运行上是可行的。
3
有子棋格内落子
4
横向胜负判定
提示胜利,当任意一方横向连成五子时软件应提 示该方玩家胜利。在该用例中还可对连成线五子 落子的不同落子顺序进行测试。
5
竖向胜负判定
提示胜利,当任意一方竖向连成五子时软件应提 示该方玩家胜利。在该用例中还可对连成线五子 落子的不同落子顺序进行测试。
6
提示胜利,当任意一方“/”向连成五子时软件应 “/”向胜负判定 提示该方玩家胜利。在该用例中还可对连成线五 子落子的不同落子顺序进行测试。
网格信息修改
显示
判胜负
显示胜方
返回
重新开始
退出
…
…
…
悔棋模块
(1)当棋盘上存在至少一枚棋子时,可以点击“悔棋”进入此模块 (2)点击“悔棋”时,每次退两步,除非棋盘上仅有一枚棋子,则退回初始 状态 (3)每点击一次“悔棋”,改变内部记录的数据信息,并更新游戏视图界面, 并判断能否再次进入此模块 计数器count
10
游戏进行中重新 成功,当玩家没有决出胜负时测试重新开始功能 开始 能否实现。 游戏结束时重新 成功,游戏结束时,软件跳出提示窗口,点击提 开始 示窗口中的“重新开始”,测试该功能能否实现。 提示胜利,当棋盘上最后一个落子产生胜出方时, 测试软件能否正确提示胜利。 提示和局,当棋盘最后一个落子落下后仍未决出 胜方,测试软件能否正确提示和局。 成功,测试软件能否正常退出。