需求分析
软件的最终目的是用来解决用户的某些问题,需求分析就是要理解要解决的问题,真正明确用户需求。
1.访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求,为软件最终可用奠定基础。
如果是原有项目,需要对旧项目的所有信息做一个调研,通过采访以前的开发者,形成采访文档,请参考《构建之法》的大马哈鱼巡回游的过程性介绍。
用户调研方法参考《构建之法》第8章获取用户需求——用户调研
2参考《软件需求规格说明书》国标规范文本,撰写对应项目的软件需求规格说明书。提供《需求规格说明书》的Git链接。
3.NABCD 写作,视频
请同学们把自己项目的NABCD 都写出来。
列成详细的条目,用具体的事实和分析说明。
1) N (Need 需求)
现在的人们大都面临着各种各样的压力,在闲暇之时如果能有一款休闲益智类的小游戏放松心情,获得乐趣再好不过了。我们的游戏就是为此而诞生。我们的产品可以将碎片化的时间利用起来放松心情,也不用像王者荣耀之类的游戏一样花费大量的时间,还能锻炼我们的思维能力。
2) A (Approach 做法)
我们的APP是一款基于安卓平台的程序,我们将采用java 、Kotlin进行软件开发,服务器采用Java EE进行编写,数据记录将使用Oracle数据库进行存储。前期做出一个初代版本进行测试,加以修改提升。
3) B (Benefit 好处)
1.玩家可以利用碎片化时间进行游戏体验加以放松;
2.游戏益智性显著,能够在一定程度上锻炼我们的思维能力。
4) C (Competitors 竞争)
市场上类似的APP小游戏不少,且这类的游戏已经逐渐被王者荣耀等moba游戏所压过,但是这类游戏的受众应该不会少,我们的功能会更加丰富,竞争力并不弱。
5) D (Delivery 交付)
交付我们将投放到各大应用平台上,并采用由小及大的推广方式,即先在团队周边的人脉间进行推广,由第一代的用户逐步向各自交际圈推广的模式。
各位用户:我们的产品24点小游戏是为了解决的痛苦, 他们需要 繁重生活压力下的减压,但是现有的方案并没有很好地解决这些需求,我们有独特的办法,我们的游戏时间短,用户可以把碎片化的时间利用起来放松,它能给用户带来好处是放松之余加强思维能力,远远超过目前市场上的竞争对手。同时,我们有高效率的由点及面逐步推广的方法,能很快地让大部分用户知道我们的产品,并进一步传播。
4.团队协作,加强分工,需要描述每个成员的具体分工及占整个文档任务的工作量比例。
5.原型设计
原型设计使用的工具:墨刀
6.任务分解WBS
一个团队项目要在一段时间内完成诸多任务,满足用户需求,实现团队目标,从哪里入手?
WBS(Work Breakdown Structure)即工作分解结构,是根据项目目标把工作分解成许多层次分明的、可交付成果的工作任务,然后用逻辑图形或树形结构表示出来。
请给出团队项目的WBS;
团队成员估计各自任务所需时间
功能 | 预计完成时间(h) | 负责成员 | |
---|---|---|---|
前端界面展示 | 开始界面 | 15 | 张朝玮 |
游戏界面 | 40 | 侯帅军 | |
排行榜界面 | 15 | 张朝玮 | |
后台和算法实现 | 算法模块 | 45 | 李嘉廉 |
数据库维护 | 55 | 李嘉廉 | |
软件测试和调优 | 80 | 张翔,林正晟 | |
模块和系统设计及扩展 | 30 | 陈伟泽 |
7.编码规范
(1)代码规范
- 使用Tap进行代码缩进。
- 断行与空白的{}行
“{”与if和for在同一行,操作符的两边各留一个空格,逗号和分号也各留一个空格。
- 局部变量和方法按照驼峰风格命名,类名采用Pascal风格。
- 分行:不把多个变量定义在一行上,将变量分为多行定义。
- 注释要简单明了,边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性,含义准确,防止注释二义性。
(2)函数
- 函数的规模尽量限制在200行以内。
- 一个函数仅完成一个功能。
- 用注释详细说明每个参数的作用、取值范围及参数间的关系。
- 函数的返回值要清楚明了。
- 减少函数本身或函数间的递归调用。
8.系统设计
在设计阶段,我们要清楚:软件是怎么解决这些需求的?
一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。
如何才能最大限度地实现这些需求,这就是架构设计要解决的问题。请给出系统的架构设计
完成团队项目的数据库设计,并在随笔中提供相应ER图(如果必要)
原文地址:https://www.cnblogs.com/Aragaki-Yui/p/8848235.html