团队作业3-需求分析设计
需求分析
软件的最终目的是用来解决用户的某些问题,需求分析就是要理解要解决的问题,真正明确用户需求。
1.访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求,为软件最终可用奠定基础。
我们调研的方式是采取的方法是问卷调查和采访想结合
下面是此次我们问卷调查的分析:
首先是性别分布百分比:
年龄段分布百分比:
对游戏是否有真实的兴趣:
受调查者玩的游戏类型分布:
受调查者玩手机游戏的真正目的:
对受调查者手机里的游戏数目进行调查:
受调查者玩手机游戏的频率:
受调查者玩游戏的时间段:
从问卷调查报告可以看出,玩手机游戏的大部分都是男生,有小部分女生群体。由于我们的用户调查大部分都是由大学生填写,所以年龄分布这块不多说。其次,从数据出可以看出,大部分同学是喜欢玩游戏的,并且是为了排解我们平常的学习、工作压力,而且大部分游戏的时间都是用在上课(这样可不好)和短暂的休息时间。
我们一共采访了5个人,年龄为21~24岁之间,以下为部分采访内容。
1.请问现在有玩什么手机游戏吗?
Z:现在有在玩决战平安京,和刺激战场还有就是一些单机小游戏。
2.是什么样的小游戏呢?
Y:有很多啊,比如象棋,斗地主。跳一跳之类的。
3:你有兴趣试玩一下我们做的一款24点的益智小游戏吗?
Z:玩是可以玩一下,因为现在快毕业了,有考公的想法,那些大型手游太耗费时间,所以更会玩一些小游戏来放松自己,也不会沉迷进去。
4.你认为现在的跳一跳这块小游戏成功的原因是什么呢?
X:可能现在人都很浮躁吧,不会持续的玩一个游戏,这个时候玩些没有连续性的小游戏也能打发时间而且还能跟朋友一起比一比吧。
经过对几位同学以及其他人的采访,我们认为现在的小游戏还是很有市场的,既能够放松自我,也不会沉迷进去。而且我们也收到了很好建议,可以加入排行榜好友系统,这样与朋友一起也会更有乐趣。我们的用户就是那些不会让游戏干扰到正常学习生活,同时又想偶尔放松自我的年轻人,就从这点看,虽然我们的游戏并不复杂,但是还是能有一定的竞争性。
不愿透露姓名的Z同学:
2参考《软件需求规格说明书》国标规范文本,撰写对应项目的软件需求规格说明书。提供《需求规格说明书》的Git链接。
https://gitee.com/ljl36/team_programming/attach_files
3.NABCD 写作,视频
请同学们把自己项目的NABCD 都写出来。
列成详细的条目,用具体的事实和分析说明。
-
N (Need 需求)
现在的人们大都面临着各种各样的压力,在闲暇之时如果能有一款休闲益智类的小游戏放松心情,获得乐趣再好不过了。我们的游戏就是为此而诞生。我们的产品可以将碎片化的时间利用起来放松心情,也不用像王者荣耀之类的游戏一样花费大量的时间,还能锻炼我们的思维能力。
-
A (Approach 做法)
我们的APP是一款基于安卓平台的程序,我们将采用java 、Kotlin进行软件开发,服务器采用Java EE进行编写,数据记录将使用Oracle数据库进行存储。前期做出一个初代版本进行测试,加以修改提升。
-
B (Benefit 好处)
1.玩家可以利用碎片化时间进行游戏体验加以放松;
2.游戏益智性显著,能够在一定程度上锻炼我们的思维能力。 -
C (Competitors 竞争)
市场上类似的APP小游戏不少,且这类的游戏已经逐渐被王者荣耀等moba游戏所压过,但是这类游戏的受众应该不会少,我们的功能会更加丰富,竞争力并不弱。
-
D (Delivery 交付)
交付我们将投放到各大应用平台上,并采用由小及大的推广方式,即先在团队周边的人脉间进行推广,由第一代的用户逐步向各自交际圈推广的模式。
各位用户:我们的产品24点小游戏是为了解决的痛苦, 他们需要 繁重生活压力下的减压,但是现有的方案并没有很好地解决这些需求,我们有独特的办法,我们的游戏时间短,用户可以把碎片化的时间利用起来放松,它能给用户带来好处是放松之余加强思维能力,远远超过目前市场上的竞争对手。同时,我们有高效率的由点及面逐步推广的方法,能很快地让大部分用户知道我们的产品,并进一步传播。
杀手功能:我们的游戏设有排名,以及闯关(beta阶段争取实现)两点,能够使游戏更具挑战性和趣味性。
4.原型设计
原型设计使用的工具:墨刀
4.任务分解WBS
一个团队项目要在一段时间内完成诸多任务,满足用户需求,实现团队目标,从哪里入手?
WBS(Work Breakdown Structure)即工作分解结构,是根据项目目标把工作分解成许多层次分明的、可交付成果的工作任务,然后用逻辑图形或树形结构表示出来。
请给出团队项目的WBS;
团队成员估计各自任务所需时间
功能 | 预计完成时间(h) | 负责成员 | |
---|---|---|---|
前端界面展示 | 开始界面 | 15 | 张朝玮 |
游戏界面 | 40 | 侯帅军 | |
排行榜界面 | 15 | 张朝玮 | |
后台和算法实现 | 算法模块 | 45 | 李嘉廉 |
数据库维护 | 55 | 李嘉廉 | |
软件测试和调优 | 80 | 张翔,林正晟 | |
模块和系统设计及扩展 | 30 | 陈伟泽 |
6.编码规范
(1)代码规范
- 使用Tab进行代码缩进。
- 断行与空白的{}行
“{”与if和for在同一行。 - 操作符的两边各留一个空格,逗号和分号也各留一个空格。
- 局部变量和方法按照驼峰风格命名,类名采用Pascal风格。
- 分行:不把多个变量定义在一行上,将变量分为多行定义。
- 注释要简单明了,边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性,含义准确,防止注释二义性。
(2)函数 - 函数的规模尽量限制在200行以内。
- 一个函数仅完成一个功能。
- 用注释详细说明每个参数的作用、取值范围及参数间的关系。
- 函数的返回值要清楚明了。
- 减少函数本身或函数间的递归调用。
7.系统设计
在设计阶段,我们要清楚:软件是怎么解决这些需求的?
一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。
如何才能最大限度地实现这些需求,这就是架构设计要解决的问题。请给出系统的架构设计
完成团队项目的数据库设计,并在随笔中提供相应ER图(如果必要)
8.团队任务分配
成员 | 分工 | 完成度 |
---|---|---|
张朝玮 | 任务分解wbs | 100% |
侯帅军 | 系统设计 | 100% |
李嘉廉 | 原型设计,用户调研:调查问卷 | 100% |
林正晟 | 需要规格说明书编写 | 100% |
张翔 | NABCD写作 | 100% |
陈伟泽 | 用户调研:采访 | 100% |
9.个人感想
林正晟:
我这次负责的模块是软件需求说明书,软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。说明编写这份软件需求说明书的目的,是指出预期的读者。软件需求说明书的作用在于便于用户、开发人员进行理解和交流,反映出用户问题的结构,可以作为软件开发工作的基础和依据,并作为确认测试和验收的依据。本周的作业中,我负责的任务算是没那么重的,主要还是队友比较carry,希望在下次作业中,我能发挥出更大的作用。
张朝玮:
这次团队分配的我的任务是制定任务分解wbs,团队想要成功完成一个项目,一份详尽的计划表示必须的,只有我们按照计划表上一步一步前进,我们最后才能获得成功,做任务分解wbs不是简单的分配任务就行,还需要了解团队中每个成员的特长和技术水平,除此之外还需要了解整个项目的流程,程序的大体框架。一开始我想当然的认为代码的做完整个程序不需要太多的时间,直到队员们想我反馈我才意识到安排的时间不够充足,经过这周的团队作业,我会更加谨慎小心的进行了解。希望在下次作业不会出现这样的失误,能够更好的和队员们进行交流。
侯帅军:
为了这次博客作业,我们小组进行了一次小的开会,对我们要做的24点游戏这个项目进行了一次更加详细的分析,明确分配了一下各自的职责,在写博客作业时候,我负责了系统设计这一块,这次博客作业量大,通过合理分工,我们还算是比较及时的完成了,也让我感受到了团队合作的重要性,团队合作的确使得任务完成起来效率了很多,希望下次作业可以完成的更好。
张翔:
本周团队博客我负责NABCD部分的编写以及部分原型设计,只有自己亲自动手写的时候才明白,软件开发需要考虑这么多,不亲身参与是绝对写不出来的。但是像N(need),不去采访去了解用户的痛点根本就写不出来;C(Competitors)不去事先了解一下现在的市场上类似的产品的优缺点,自己的产品的优势和不足也是没有办法凭空想象的。原型设计我们使用的工具是墨刀,不得不说真的很方便,不用编写具体的界面就能做出我们想要的界面。
李嘉廉:
我主要负责程序和数据库的代码编写,我们游戏的算法其实并不算难,只是各个界面功能的实现比较费工夫。这周实验大家都完成了自己的工作,也了解了自己在队伍内的定位,我们磨合的已经越来越熟练,完成一个项目,只靠一个人肯定是不行的,只有大家各司其职,相互监督才能成功。这周的博客园作业量相比之前多了很多,我们开始也是手忙脚乱的,但是经过队内的讨论分析,也逐渐找到了自己的道路。希望在之后的项目开发中,我们能够进一步的提高自身的知识水平,更加熟练的完成各种任务。
陈伟泽:
我负责的是用户调研部分,一个项目需要知道它为什么人群服务,用户需要什么才能做好。我们采用了问卷调查和实际采访两种方式相结合,这样能更清楚的明白我们项目真正需要的是什么,而这次的调研结果表明大部分人还是对休闲类小游戏很感兴趣的,一个好的项目并不是说它的代码编写要有多复杂,完成起来有多困难,而是要满足用户的需求,这对我们接下来的开发过程至关重要,我希望的我们的项目能够完美的收尾,并在这个过程中,我们能够收获颇丰。