需求分析
软件的最终目的是用来解决用户的某些问题,需求分析就是要理解要解决的问题,真正明确用户需求。
访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求,为软件最终可用奠定基础。
如果是原有项目,需要对旧项目的所有信息做一个调研,通过采访以前的开发者,形成采访文档,请参考《构建之法》的大马哈鱼巡回游的过程性介绍。
- 用户调研方法参考《构建之法》第8章获取用户需求——用户调研
问卷调查链接:
问卷调查截止至4月15日,我们共收到了55份调查答卷,女生比例达到了60.00%,男生占了40.00%,并且我们从这些答卷中可以分析出一些实际性的问题。问卷调查结果及分析:
(1)因为我们是在微信朋友圈及qq中发送问卷调查链接的,所以在本次调查问卷中以18~25岁的年龄段占最大比例。(2)在调查中可以发现用户没有记账习惯的结果和只记录大笔支出也占了比较大的比重,都占到了41.82%。因此我们大概采访了几个我们知道的选择不记账的朋友,通过询问他们为什么没有记账的习惯,从而让我们知道我们的小程序应该怎么做来吸引他们的使用。
(3)在调查过程发现大部分人的支出情况还是以生活方面的支出为主,这样的话,我们在设计记账小程序时就可以往这方面发展,例如多设计些生活类的分类之类的。
(4)60.00%的用户选择了根据前段时间花多少钱,来决定自己今后的消费水平。这样的用户其实算是我们的潜在用户,他们可以在记账小程序中记录账单,小程序会计算出总支出,这样就不需要用户自己计算了,从而吸引用户使用我们的小程序。
(5)大部分的用户认为好的小程序以对花费和收入进行分析说明和按年、月、类别进行查询收支为最重要的功能。
(6)45.45%的用户喜欢以月为单位进行一次账单的统计分析,这样的话,我们的APP会在每月的月头推送一份月账单,包括了统计分析及评价。
(7)45.45%的用户喜欢小程序的风格是清新可爱的,所以我们会尽可能的让我们的小程序界面美观,给人小清新的感觉。
(8)65.45%喜欢将自己的支出和收入可以变成统计图,所以在我们的小程序中将会提供账单的统计图功能,以满足用户的需求和喜好,让用户对我们的小程序有好感。
参考《软件需求规格说明书》国标规范文本,撰写对应项目的软件需求规格说明书。提供《需求规格说明书》的Git链接。
除形式上满足规范文本要求外,整体内容必须围绕项目实质展开,对所要开发的项目确保尽力做到清晰完整准确。
- 使用一致的图形符号和文字描述内容。
- 分析和设计方法:
- 在线作图工具ProcessOn:
所有的缩写须事先定义。
需要有一个目录,word排版样式规范美观,图文并茂,通篇文档有一个统一的样式风格。
将自己置于读者的立场——如果对软件项目不熟悉的人员,通过阅读这份文档,能否完全读懂软件要做什么。
NABCD 写作,视频
请同学们把自己项目的NABCD 都写出来。
列成详细的条目,用具体的事实和分析说明。
N (Need 需求)
现在大多数人的个人财务管理意识都很薄弱,普遍呈现着一种现象——“啊,明明没买什么,怎么钱都用光了”,所以我们需要通过记账的方式来合理的管理自己的财务,曾经使用传统的记账本记账,随身携带着及时将每天的收支记录下来,但是现在网络发展迅速,生活节奏加快,每年的支付收入账单络绎不绝,传统记账已经满足不了人们的需求,所以我们需要一款可以随时、随地、随身进行记账的、轻量级的、简约的、以最清新的界面给用户最舒适体验的记账小程序。- A (Approach 做法)
- 用户通过注册或登录一个账号,进入账单管理界面,可以通过界面上的记账和查询,以及饼状图标按键可以进入不同操作界面。
- 点击记账按钮,进入到记账管理界面可以进行收支记录,保存之后返回账单管理界面就可以看到账单条目更新了。
- 点击了查询按钮就可以通过月份、年份、类别三种方式进行账单的查询。
- 点击饼状图按钮就可以进入统计分析,查看你的收支情况。
- B (Benefit 好处)
- 用户只需要注册登录一个账号,即可享受随时随地随身记账、查账、分析账目的功能,还可以管理自己的账户。
- 传统记账本虽然也有它的好处,一本记账本的价钱也便宜,但是它的安全性却难以保证,可能出现丢失或损坏,而记账小程序则可以避免这个问题,更加的经济可靠。
C (Competitors 竞争)
现在市场上记账app有很多,但是挺多用起来都太过复杂,像是挖财记账,它实现了很多功能,可以说是很齐全,但是事实上在平时的生活,你不会需要使用到那么多的方式记账,情景记账、旅行记账、家庭记账等,因为太过复杂,很容易用着用着就懒得用了,所以我们设计的是一种功能简单的,易用性高,极简之余又不失完善的记账小程序。它不是一款专业级的记账app,主要是针对学生群体,专门为其设计的,满足其日常生活记录。- D (Delivery 交付)
- 初期通过身边的同学朋友进行推广,收集用户的使用反馈,然后进行改进后,
- 通过网络组合策略,以微信推广、微博推广、贴吧推广、软文推广的组合方式叫小程序交付到用户手中
- 请分析自己项目的杀手功能是什么?参考教材的第8章:功能分析的四个象限
- 杀手功能:EASY记小程序用户可以一键导出日账单、月账单、年账单,还可以比较当月支出- 与上月支出的增长/降低比例,可以分享到各个平台,例如微信朋友圈,QQ空间等。
- 外围功能:良好的界面设计,在各个平台上都可以运行。
- 必要需求:记账,导出每日账单、月账单、年账单。
- 辅助需求:可以做各种皮肤。
把这些要点都组合成为一段话 -- 当你要向别人兜售你的项目的时候, 你通常只有很短的时间 (电梯演说),能否自然而有条理地把项目说清楚? 请用你产品中实际的元素代替 <> 中的抽象概念。
各位领导/投资人/用户/合作伙伴:我们的产品记账小程序是为了解决 需要进行财务管理的用户的痛苦, 他们需要一款轻量级、易用性高的记账小程序,但是现有的方案并没有很好地解决这些需求,我们会尽量在我们的软件中将用户最需要的功能实现出来,将一些冗余的功能去除,减少软件的冗余度,做到以最少的操作实现完美的结果,满足用户的日常生活记,它能给用户带来好处易用性高,操作简单,以清新的界面给以用户舒适的用户体验,远远超过目前市场上的竞争对手挖财记账。 同时,我们有高效率的网络组合策略推广方法,能很快地让大部分用户知道我们的产品,并进一步传播。[附加题]把上面的这段话录制为视频,上传到视频网站,并把链接发到团队博客上。
链接:
团队协作,加强分工,需要描述每个成员的具体分工及占整个文档任务的工作量比例。
姓名 团队分工 工作量比例 徐婉萍 博客编辑,整合其他团员任务,填写团队任务分工,进行用户问卷调查及分析,原型设计 22% 谭燕 任务分解WBS,《软件需求规格说明书》撰写 22% 郭雅芳 系统设计,NABCD 写作并合成一段话 22% 李香荣 编码规范,功能分析的四个象限,视频录制 22% 罗登宇 部分问卷调查撰写 12%
参考
NABCD参考 (参见 )
同学们的实际作业例子:
原型设计
原型设计能够在表现层将设计合成一个逻辑整体,用户能和你一起看到未来交互的软件蓝图、功能和效果,获得较真实的感受,在不断讨论的基础上完善未来的设计思想。因此,原型设计能起到有效沟通的作用,漂亮,直观的原型图更是让人赏心悦目。
不要等到所有代码写好之后再去验证需求,请用设计工具描述用户界面和需求。
原型设计不仅要考虑主要功能的页面排布,同时也要考虑用户实际操作中的问题,提前为用户考虑得当并征求用户意见
系统是必须可运行的,可实际使用的——请抱着这样的同理心去考虑系统。
给目标用户展现原型,与目标用户进一步沟通理解需求。
- 原型设计使用工具:
- 原型设计预览:
- 原型设计具体解析:
(1)用户登录界面:用户安装好小程序后,打开小程序显示画面,进入登录页面,如果用户没有账号的话,就可以点击注册按钮,进行账号注册,注册完后,会自动跳转到用户登录页面。而如果用户原来已经有了账号,则用户直接在此页面登录。
(2)记账显示界面:用户登录小程序后,进入记账小程序,这时候就会显示本月的账单明细,同时也可以通过此界面中的按钮进入其他功能页面。
(3)记账界面:用户通过点击记账按钮后,进入记账页面,此时分为了支出和收入两块,可以通过按钮切换,可以记账页面中输入需要记录的账单详情。保存账单后,会重新跳转回显示界面,并且也可以通过返回按钮,返回到显示界面。
(4)查询界面:用户通过点击显示界面中的查询按钮后,进入账单查询界面,此时可以通过按钮切换查询月账单,年账单和每种类别的账单详情。通过界面中的返回按钮可以返回显示界面。
(5)编辑界面:用户通过点击显示界面中的编辑按钮后,进入账单编辑界面,此时会根据所点击的账单项目不同,跳转至支出界面或收入界面,这时候可以对它们进行修改,点击保存按钮后又跳转至显示界面。也可以对项目进行删除操作,点击删除按钮后就可以删除项目,并跳转至显示界面。通过界面中的返回按钮可以返回显示界面。
(6)统计分析界面:用户通过点击显示界面中的图表按钮后,进入账单统计分析界面,此时可以选择日期,进行统计分析,显示月支出,月收入,月结余及图表。通过界面中的返回按钮可以返回显示界面。
(7)退出界面:用户通过点击显示界面中的退出按钮后,退出登录,跳转至登录界面。
思考:他们的痛是什么?场景是什么?(用产品之前/之后,有照片或视频显示用户调查的过程,使用了各种调查手段的,加分)
他们的痛是:现在大多数人们普遍都存在一种现象——"啊,明明没买什么,怎么钱都用光了"。每次到了月末的时候,都不知道自己将钱花在了什么地方,每个月花钱没有记录就是导致自己并不知道自己已经花了多少钱,从使得自己每个月都是月光族了。
用户的场景是:
用户用产品之前:用户每个月的花销都没有记录,既没有支出记录,也没有收入记录。经常是到了月末发现卡里没钱了,但是又不知道自己把钱花在了哪里。而且没有记录自己花了多少钱,花钱就会没有节制,导致自己的支出经常花超了。 用户用产品之后:用户使用了记账APP之后,将自己的支出和收入记录下来,从而让自己清楚地知道自己花了多少钱,钱都花在了哪里。这样可以让自己知道自己是否有在不应该花钱的地方花钱,让自己可以为下一个月的开销做好计划,避免不必要的支出,也可以让自己知道自己到现在已经花了多少钱,来决定是不是后面的时间就要节约了,避免成为月光族。使用了产品之后,可以为自己节省花销,增加存款。
- 参考:
- 《构建之法》第10章典型用户和场景
- 阿里巴巴卫哲:
原型工具参考
如果是设计原型,采用专门的原型设计工具,能够事半功倍,工具参考:
- 移动应用原型与线框工具-
作业参考
原型设计界面简洁,用户体验极佳。分工比例部分的泳道图十分清楚地展示了各个同学的工作任务,Github上数十次Commit也展示了他们和谐的团队协作。
任务分解WBS
一个团队项目要在一段时间内完成诸多任务,满足用户需求,实现团队目标,从哪里入手?
WBS(Work Breakdown Structure)即工作分解结构,是根据项目目标把工作分解成许多层次分明的、可交付成果的工作任务,然后用逻辑图形或树形结构表示出来。请给出团队项目的WBS;
团队成员估计各自任务所需时间
参考:
编码规范
根据结对编程的经验,大家已经意识到编码规范的重要性。
讨论制定团队的编码规范,满足代码风格规范和代码设计规范(参考书第4章4.1-4.3内容)系统设计
在设计阶段,我们要清楚:软件是怎么解决这些需求的?
一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。1.如何才能最大限度地实现这些需求,这就是架构设计要解决的问题。请给出系统的架构设计。
用户界面进行数据的输入,然后进行业务逻辑处理,(包括四类业务:账号管理业务可以进行用户的登录与注册以及用户信息的管理,记账管理可以进行收入、支出记账,统计分析可以到处账单进行账目分析,查询管理可以查询所有或者日期查询,)而数据访问通过Dao接口(增删改查)实现。
2.完成团队项目的数据库设计,并在随笔中提供相应ER图(如果必要)
参考
- 分析设计方法:
小结
团队分工及完成情况:
姓名 | 团队分工 | 完成情况 |
---|---|---|
徐婉萍 | 博客编辑,整合其他团员任务,填写团队任务分工,进行用户问卷调查及分析,原型设计 | 已完成 |
谭燕 | 任务分解WBS,《软件需求规格说明书》撰写 | 已完成 |
郭雅芳 | 系统设计,NABCD 写作并写成一段话 | 已完成 |
李香荣 | 编码规范,功能分析的四个象限,产品说明视频录制 | 已完成 |
罗登宇 | 部分问卷调查撰写 | 已完成 |
个人感想
徐婉萍:在本次博客作业中,我们团队成员们对我们的团队项目进行了更为具体的项目分析,像是进行了原型设计,对用户的问卷调查,NABCD分析等等。使用这些手段让我们对于我们的项目有了更加深刻的认识,知道了我们的项目需要实现怎么样的功能,需要做到什么样的程度。并且对我们的项目的编程规则进行了规定,使得源代码会看起来更加简洁明了,且统一风格,不会出现每人每色的情况,也为我们的项目创建了《软件需求规格说明书》,使得对软件项目不熟悉的人员,可以通过阅读这份文档,读懂软件要做什么。希望在下两周的冲刺阶段可以完成我们的预期。
谭燕:本次博客作业中我完成了任务分解WBS部分,还有写了软件需求规格说明书,调整码云Issues进度状态。任务分解的话,要分解到很细的模块,目前还没开始编写代码,所以非常具体的代码模块还需要仔细商议。把各个任务状态从进行中改为已验收感到很有成就感,这表示着我们完成了我们的任务,今后也要更加努力!
郭雅芳:我这次团队博客负责的部分是系统设计和NABCD的分析,在对app进行系统设计的时候需要考虑清楚app的整个结构,分清前端用户界面和后端用数据库存储数据,用户界面需要实现的功能模块,以及进行数据访问接口的设计。在进行NABCD分析的时候,我们需要了解软件的背景,需求以及现有的竞争者和如何去脱颖而出。
李香荣:在本次博客作业中,我们对项目进行了更加详细的分析,也明确规定了每个人的任务。我完成了本次作业中的代码规范、功能分析的四个象限和视频录制几个部分,我们团队的其他同伴也都完成了各自相关的作业,我认为这次作业我们完成的很好。同时,希望接下来几周的工作我们也可以很好的完成。
罗登宇:为了这次博客作业,我们小组进行了一次具体的分析会议,将每个成员的任务分配好,每人各自进行着每个人的任务。通过完成这次任务,使得我认识到了用户调查的重要性,虽然我做的工作比较简单,但我还是感觉到了团队合作可以很有效的提高提高作业的效率