软工网络15团队作业3——需求分析与设计
需求分析
软件的最终目的是用来解决用户的某些问题,需求分析就是要理解要解决的问题,真正明确用户需求。
-
访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求,为软件最终可用奠定基础。
- 如果是原有项目,需要对旧项目的所有信息做一个调研,通过采访以前的开发者,形成采访文档,请参考《构建之法》的大马哈鱼巡回游的过程性介绍。
- 用户调研方法参考《构建之法》第8章获取用户需求——用户调研
我们采取问卷调查的形式进行用户调研。
用户问卷调查链接:考研单词微信小程序调查
用户问卷调查统计:
下图是截止2018年4月15日12:00的问卷填写人数及不同年龄层所占百分比:
对用户是否有考研方向的调查:
用户的英语水平调查:
用户背单词的方式:
调查用户对背单词app或者小程序有哪些需求:
相对于普通的背单词app,用户对考研单词微信小程序的态度:
调查用户用得较多的背单词微信小程序,方便我们今后借鉴学习:
对于小程序后续的功能开发,用户的态度:
对于用户使用过的单词app或者小程序的优缺点调查(经过筛选):
用户对考研单词微信小程序的期望(经过筛选):
调查总结:
1.我们的考研单词微信小程序原先的受众群体应该是有考研意向的群体,但也有许多大学生,部分研究生对我们的程序表现出极大兴趣,算是潜在用户;
2.一半以上的用户认为自己词汇匮乏,并且更偏向于用手机学习单词,说明了考研微信小程序能够拥有广泛市场。而针对词汇匮乏这一项,需要我们研究出相应对策,做出一款更适合用户使用的“好的”小程序;
3.对于什么是“好的”小程序,用户又有了自己的定义。首先最重要的是小程序要有丰富的词汇量,有复习模糊、遗忘的单词,能制定学习计划,因此我们的小程序应该着重开发这几项功能,突出我们的优势;
4.用户自己也使用过许多单词app,比如墨墨背单词、百词斩、扇贝单词等,也分析了这些app的优缺点,我们可以从这些app中学习它们好的方法,完善较差的功能,以及作为后续的开发,来多元化我们考研单词小程序的功能。 -
参考《软件需求规格说明书》国标规范文本,撰写对应项目的软件需求规格说明书。提供《需求规格说明书》的Git链接。
- 除形式上满足规范文本要求外,整体内容必须围绕项目实质展开,对所要开发的项目确保尽力做到清晰完整准确。
- 使用一致的图形符号和文字描述内容。
- 分析和设计方法:http://www.cnblogs.com/xinz/p/4525232.html
- 在线作图工具ProcessOn:https://www.processon.com/
- 所有的缩写须事先定义。
- 需要有一个目录,word排版样式规范美观,图文并茂,通篇文档有一个统一的样式风格。
- 将自己置于读者的立场——如果对软件项目不熟悉的人员,通过阅读这份文档,能否完全读懂软件要做什么。
Git链接:“考研必背”需求规格说明书
-
NABCD 写作,视频
- 请同学们把自己项目的NABCD 都写出来。
- 列成详细的条目,用具体的事实和分析说明。
NEED需求
对于考研的学生来说,背单词是最基础的但也是最需要花时间去积累,去记忆的一件事。市面上虽然已经有一些背单词的APP ,但通过身边有使用的同学了解到使用感并不是很好,或者广告,或者搞一些其他的噱头。现在几乎人人都有微信,通过微信小程序来记忆单词简单,明确,方便,不需要在下载其他的软件。可以让用户随时,及时记忆复习单词。
APPROACH做法
我们通过问卷调查,来了解用户需求,想法。我们问卷调查的主要是大学生,以及打算考研的同学,可以了解到主要用户群体对微信小程序期望以及用户的需求。
BENEFIT好处
简单,随时随地学习。针对用户的需求提供相应的功能。可以邀请好友一起背单词,增加趣味性,可以激发用户主动想要背单词的心理。
COMPETITORS 竞争
市面上背单词APP非常多,而且上市比较早,以及积累了一批用户。我们的小程序简洁方便。每个人都有微信,可以直接通过扫一扫添加我们的小程序。可以随时随地的背单词,就算聊着天,也可以背单词。
DELIVERY 交付
可以通过转发关注抽奖等活动,以及通过邀请好友进行单词记忆PK等。来吸引用户,当然,不论什么推广方法都不如留住用户的心实在,初步推广后,多做调查,了解清楚用户的体验如何,不断改进,则可以通过用户之间的相互推荐来获得更多的用户。- 请分析自己项目的杀手功能是什么?参考教材的第8章:功能分析的四个象限
- 把这些要点都组合成为一段话 -- 当你要向别人兜售你的项目的时候, 你通常只有很短的时间 (电梯演说),能否自然而有条理地把项目说清楚? 请用你产品中实际的元素代替 <> 中的抽象概念。
“各位领导/投资人/用户/合作伙伴:我们的产品是为了解决 <目标用户> 的痛苦, 他们需要 ,但是现有的方案并没有很好地解决这些需求,我们有独特的办法 ,它能给用户带来好处 ,远远超过目前市场上的竞争对手 。 同时,我们有高效率的 方法,能很快地让大部分用户知道我们的产品,并进一步传播。”
各位领导:我们的微信小程序《考研必备》是为了解决考研学子记忆理解英语单词的痛苦, 他们需要有更好的方法更简单更喜欢的来背单词,但是现有的方案并没有很好地解决这些需求,我们有独特的办法如与好友PK,与好友聊天间隙背单词等,它能给用户带来更喜欢,更主动的,且更方便的背单词等好处,远远超过目前市场上的竞争对手如那些以及上市的背单词APP。 同时,我们有高效率的邀请好友一起背单词等方法,能很快地让大部分用户知道我们的产品,并进一步传播。
[附加题]把上面的这段话录制为视频,上传到视频网站,并把链接发到团队博客上。(暂未完成)
-
团队协作,加强分工,需要描述每个成员的具体分工及占整个文档任务的工作量比例。
见下团队分工
原型设计
原型设计能够在表现层将设计合成一个逻辑整体,用户能和你一起看到未来交互的软件蓝图、功能和效果,获得较真实的感受,在不断讨论的基础上完善未来的设计思想。因此,原型设计能起到有效沟通的作用,漂亮,直观的原型图更是让人赏心悦目。
- 不要等到所有代码写好之后再去验证需求,请用设计工具描述用户界面和需求。
- 原型设计不仅要考虑主要功能的页面排布,同时也要考虑用户实际操作中的问题,提前为用户考虑得当并征求用户意见
- 系统是必须可运行的,可实际使用的——请抱着这样的同理心去考虑系统。
- 给目标用户展现原型,与目标用户进一步沟通理解需求。
思考:他们的痛是什么?场景是什么?(用产品之前/之后,有照片或视频显示用户调查的过程,使用了各种调查手段的,加分)经过需求分析,我认为用户的痛点是:词汇匮乏,需要随时能够接触单词进行背诵。场景是:使用产品之前
链接:“考研必背”原型设计
任务分解WBS
一个团队项目要在一段时间内完成诸多任务,满足用户需求,实现团队目标,从哪里入手?
WBS(Work Breakdown Structure)即工作分解结构,是根据项目目标把工作分解成许多层次分明的、可交付成果的工作任务,然后用逻辑图形或树形结构表示出来。
1. 请给出团队项目的WBS
2. 团队成员估计各自任务所需时间
给出的是本次任务完成的时间,后续任务还未确定成员,至于以后的团队分工会在如上图的“看板式Issue管理:trello Beginner Tips for Using Trello中给出,可以通过上面链接查看任务进度
团队成员 | 团队分工(本次) | 完成所需时间 |
---|---|---|
赵铭 | 撰写《需求规格说明书》 | 10h |
吴慧婷 | 划分任务/编写博客/原型设计 | 12h |
刘舒婷 | 用户调研并统计用户需求 | 8h |
陈敏 | NABCD 写作,视频 | 8h |
吴雅娟 | 任务分解WBS/编码规范/系统设计 | 10h |
杨娟 | 描述每个成员的具体分工及占整个文档任务的工作量比例/数据库ER图设计 | 8h |
编码规范
根据结对编程的经验,大家已经意识到编码规范的重要性。
讨论制定团队的编码规范,满足代码风格规范和代码设计规范
系统设计
在设计阶段,我们要清楚:软件是怎么解决这些需求的?
一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。
-
如何才能最大限度地实现这些需求,这就是架构设计要解决的问题。请给出系统的架构设计
(1)系统结构的简单描述
前端设计给用户提供的页面,对我们项目来说就是有四个界面:学习单词、查询单词、词汇书、我的世界,后台主要有两部分功能,一部分是与用户系统相关的功能,如用户的登陆、管理、活动等等,也就是说根据用户的需求,作出响应,从后台调取数据,呈现给用户。另一部分则是与搜索引擎的衔接,也就是说连接我们的单词数据库。举一个我们查询单词的例子:单用户输入所查询 的单词后,点击搜索按钮,后台捕获到这一需求后,就会从数据库中调取该单词来提供用户学习。搜索系统负责搜集、整合数据,并响应网站后端的搜索请求,提供搜索结果。
(2)系统结构图
-
完成团队项目的数据库设计,并在随笔中提供相应ER图(如果必要)
ER图说明:
- 一个单词可能来自不同的词汇书,每本词汇书有上千个单词,所以是n:n的关系,词汇书的ID和名字是主键,词汇ID也是主键。
- 一个单词可有多个例句,但是例句的读音只给出一种,但单词会提供英美两种发音。
- 一个用户的微信名是唯一的,通过存储微信名的方式直接找到昵称和微信头像,一个用户的每日单词量是的可变的,可以自己设定。
————————————————————————————————————————————————————
本次团队分工
团队成员 | 团队分工(主要) | 完成情况 | 工作量比例 |
---|---|---|---|
赵铭 | 撰写《需求规格说明书》 | 已完成 | 18% |
吴慧婷 | 划分任务/编写博客/原型设计 | 已完成 | 20% |
刘舒婷 | 用户调研并统计用户需求 | 已完成 | 14% |
陈敏 | NABCD 写作,视频 | 已完成 | 14% |
吴雅娟 | 任务分解WBS/编码规范/系统设计 | 已完成 | 20% |
杨娟 | 描述每个成员的具体分工及占整个文档任务的工作量比例/数据库ER设计 | 已完成 | 14% |
本次任务个人感想
赵铭:
本次作业,在讨论小程序功能后,我们采取问卷调查的方式,在QQ空间和微信朋友圈发表,根据调查问卷的结果进行分析。
感想:一个项目的需求分析好不好关系到后面项目的进行,如果没有分析好的话,后面在做项目的时候会变来变去,不稳定,会导致项目质量差。所以我们都很重视需求分析,现在都是在为后面的开发做准备。根据调查结果,我们讨论了所要实现的项目功能,我写的《需求规格说明书》在书写的时候 一开始觉得很难,但是在小组讨论了后面的系统分析之后 就简单了许多。
吴慧婷:
本次作业,我们小组以任务自领的方式开展了本周任务。大家都积极的投入到自己的任务中,也共同分享自己的任务进度,听取大家的意见。在需求分析中,我们一致决定采用问卷调查的方式进行需求调研。调研效果良好,让我们小组明确了主要的功能设计。这次的任务自领了原型设计,在写博客时,觉得自己的原型设计有几方面过于复杂,可能有些比较难实现,但自己觉得这只是初稿,会在开发程序的过程中进行适当的调整。因为这两周自己有事会比较忙一些些,很感谢队友的支持和理解,相信我们的合作可以更好的进行下去。
刘舒婷:
这次问卷调查对我们的小程序十分重要,而问卷具体要调查了解的信息,在和小组成员商讨后确定下来。而在确定具体问题的过程中,通过采访几位考研者以及研究生确定下来。从而尽可能的了解到大部分目标群体(考研者)的真正需求。然后我整理了调查结果,作出了分析,如上。之后经过讨论之后,我们定了主要的功能设计,所以我觉得这个一定是软件开发前期的重中之重。
陈敏:
这次团队任务中,我的任务是分析NABCD写作。其实在个人案例分析中已经写过,上次是在我自己的体会和对舍友的采访下进行书写的,所以在考虑的时候有点主观和不全面,但是这次我们在一周的需求调查之后来写,感觉更全面更具体。而且在NABCD写作分析中,能更加清楚清晰的知道我们小程序的优势劣势需要改进的地方。使我们的小程序功能的开发有了更明确的方向。做NABCD写作是非常有必要的。
吴雅娟:
本次实验通过了解老师给的链接,学会了入如何将项目分成多个不同的任务,在和成员们讨论之后,进行了合理分配,然后使用ProcessOn写了我们项目的WPS。然后我还学习使用了trello来做了项目计划卡片,哪些任务做了,哪些任务没做一目了然。在制定编码规范的过程中,遇到了一些问题,因为我们团队做的微信小程序,使用的是JavaScript语言,之前并没有接触过,有些规则与JAVA不相同,在百度之后,添加了新的一些代码设计和风格规范。系统设计分析是根据需求调查的结果,将我们所做的小程序进行了逻辑化整理,明确了前端、后台和数据库之间的联系。总之在这次任务中收获很多,希望在今后的代码设计中也可以顺利完成。
杨娟:
这次团队作业大家各司其职,最后一起汇总自己一周的所得,团队配合默契良好。我认为一个项目要顺利进行,对于用户的需求分析以及项目的总体构思框架是比较重要的。所以我们使用问卷,在成员们各自的朋友圈里进行了调查,不仅仅局限于学校这一块,更充分的了解到了不同层次用户的需求。我还做了数据库ER图,这个是依据上学期的数据库所学做的,遇到的问题也跟成员们进行了交流,做的不是很好,之后可能还会进行简单的修改。
————————————————————————————————————————————————————