【项目·贪吃蛇小游戏】需求分析、原型模型
【软件工程实践·结队项目】 第一次作业
Part 0 · 简要目录
- Part 1 · 结队信息
- Part 2 · NABCD模型
- Part 3 · 原型设计
- Part 4 · PSP 表格
- Part 5 · 结对过程
- Part 6 · 心得总结
Part 1 · 结队信息
成员列表
成员一:刘文卓,3014
成员二:江嘉键,3037
项目相关
项目名称:贪吃蛇小游戏
项目描述:新版贪吃蛇团队合作、模式多样、激情四射,乃平时娱乐消磨时间的不二选择。
Part 2 · NABCD模型
N(Need 需求)
贪吃蛇作为一个经典的游戏,是90后的我们的童年回忆,占据着很大的市场。随着时代的持续发展,网络科技水平越来越发达,游戏界中对贪吃蛇也做了巨大的改进,游戏的刺激感持续增强,掺加的团队模式也使得更多人融洽在一起。
1、项目的功能性需求:
(1)游戏的开始和结束:开始要登录注册游戏,选择模式进行游戏。若玩家发生分数为零或撞到障碍的情况会产生游戏结束事件。
(2)对蛇的控制:玩家可以使用虚拟轮盘对蛇的前进方向进行控制。
(3)游戏的进阶:游戏会在随机位置生成若干果实,若蛇触碰到果实,则其身体会增长,分数增加。
(4)游戏的障碍物:游戏界面有其余玩家一起游戏,若本蛇蛇头触碰到其他的蛇,则结束游戏。
(5)分数统计:无尽模式中每人只能死亡一次,直到其余玩家死亡,结束;限时模式中每人可以在规定时间内无限复活,时间结束则排名,结束。
(6)皮肤炫彩效果:游戏每完成一个任务,则会得到相应的皮肤碎片,积累足够的皮肤碎片则可以兑换部分的皮肤,其余皮肤则只能通过充值“蛇币”进行购买,10蛇币1RMB。
(7)音效:玩家应用皮肤、分数进阶、通关或是游戏结束都会产生相应的音效。
(8)背景音乐的切换:系统提供多种背景音乐供玩家选择。
2、对产品开发过程的需求
(1)在开发之前对软件做概要设计;
(2)在开发之前对开发过程制定代码规范,规范参照结对编程的代码规范进行制定;
(3)在规定的时间之前完成软件的成品,进行α发布;
(4)在α发布后,对软件进行完善,在规定的时间之前完成软件新版本,进行β发布;
(5)在β发布后,对软件进行完善,在规定的时间之前完成软件最终版本,进行final发布。
3、非功能性需求
(1)按键后系统的响应时间不超过3秒;
(2)系统窗口化运行过程中不会失去焦点。
A(Approach 做法)
为了能够更好的完成软件,本组使用了众组员均较为熟悉的Java语言。本组组员均为90后,传统的贪吃蛇游戏是我们童年的美好记忆,所以对于贪吃蛇游戏我们均有使用经历;此外,作为具有创新精神的一代,对于传统的东西我们又有一些创新的想法。
B(Benefit 好处)
重温经典的游戏——贪吃蛇;在休闲时间可以进行游戏,消磨时间,减轻压力,放松心情。
C(Competitors 竞争)
通过随机对市面上有关贪吃蛇的一些APP进行试用,进而比较本组程序。
我方优势:
(1)最终产品为单机网络兼并版,无需网络支持即可使用;
(2)支持手机IOS和安卓系统,下载完成后打开即可使用;
(3)在原有传统贪吃蛇的基础上用户可自行设置背景颜色、游戏场地、蛇的皮肤、背景音乐;
(4)本贪吃蛇改进版容易上手,激情四射,支持团队模式,增加程序实用性,在休息娱乐的时候进行游戏交流。
我方劣势:
(1)无法实现对人对战功能;
(2)缺乏模式多样化;
D(Delivery 推广)
首先,本组组员会在自己交友圈对程序进行推广,让自己及周围的朋友进行使用;其次,对程序的功能和漏洞进行完善修改,并得到初期试用者的认可后,请求他们对自己的亲戚、朋友推荐这一软件,通过这种推荐给自己交友圈的方式,增大软件的使用范围;再次,我们会将程序的相关内容放置到GitHub平台上进行共享下载;最终,若程序使用感受反馈较好,我们会考虑将其提交到百度下载等软件下载平台上。
Part 3 · 原型设计
使用工具:墨刀
设计流程
阶段一:统一思想,明确方向;
阶段二:分工合作,边做图边同步信息;
阶段三:完善细节,撰写
原型截图
Part 4 · PSP 表格
PSP2.1 |
Personal Software Process Stages |
预估耗时 |
实际耗时 |
Planning |
计划 |
20 |
10 |
· Estimate |
· 估计这个任务需要多少时间 |
20 |
10 |
Development |
开发 |
620 |
420 |
· Analysis |
· 需求分析 (包括学习新技术) |
300 |
200 |
· Design Spec |
· 生成设计文档 |
60 |
60 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 |
20 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
--- |
--- |
· Design |
· 具体设计 |
180 |
120 |
· Coding |
· 具体编码 |
--- |
--- |
· Code Review |
· 代码复审 |
--- |
--- |
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 |
20 |
Reporting |
报告 |
190 |
135 |
· Test Report |
· 测试报告 |
150 |
120 |
· Size Measurement |
· 计算工作量 |
10 |
5 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
10 |
合计 |
830 |
565 |
Part 5 · 结对过程
照片
Part 6 · 心得总结
江嘉键:第一次结队作业合作完成的作业,多少都让我们有一些成就感,或许项目并不是那么的完美实用。这次结队作业让我了解到多交流能让我们更加完美顺利得去完成任务,需求分析是其中极为重要的环节,我们通过查询资料,从多方面进行考虑,只有分析透彻才能完美满足用户的需求。从开始的接触到后面用墨刀完成了一个原型,虽然其看起来不完美不专业,但第一次总是坎坷的,不过还是如愿的收取了成功的果实。
刘文卓:第一次结队作业让我深感头痛,一开始毫无头绪,不知道该从何下手,与队友交流沟通后,快刀斩乱麻,势如破竹,立马就规划好,并开始付诸行动。从这次作业可以看出,需求分析是很重要的,不然都不知道该做什么样的功能才能吸引客户。最终,还是完成了一次有成果的作业,但并不完美,希望下一次有十足进步。