需求分析
软件的最终目的是用来解决用户的某些问题,需求分析就是要理解要解决的问题,真正明确用户需求。
1、访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求,为软件最终可用奠定基础。
- 如果是原有项目,需要对旧项目的所有信息做一个调研,通过采访以前的开发者,形成采访文档,请参考《构建之法》的大马哈鱼巡回游的过程性介绍。
- 用户调研方法参考《构建之法》第8章获取用户需求——用户调研
http://www.cnblogs.com/xinz/archive/2013/02/03/2890786.html
http://www.cnblogs.com/xinz/p/3308608.html
访问用户
我们团队开发的是可以查询快递订单状态的程序。(通过输入快递单号,扫码或者语音输入)
由于是新项目,采用的用户调研方式是调查问卷
调查问卷的地址:https://www.wjx.cn/jq/22583212.aspx
(1)用户问卷调查结果:
用户年龄段:
职业:
是否经常在网上购物:
对于所购买的宝贝,是否会关心宝贝的订单状态:
对于淘宝,京东上显示的快递物流信息的满意度:
我们的查询快递的程序上线后,您会使用么:
意见和建议:
(2)数据来源:
主要通过在朋友圈和空间进行了投放,团队里六个人还有家人的朋友圈和空间,涵盖了大部分的人群,数据可信。
(3)总结:
1.快递物流面向于所有职业,所有年龄段人群,但年轻人,学生是主要群体。
2.对于现有的物流查询,大部分人不是特别满意,所以一个功能齐全的快递信息查询程序是很迫切且重要的。
3.对于用户所给出的建议,进行功能的开发,尽量要满足用户的需求。
2、参考《软件需求规格说明书》国标规范文本,撰写对应项目的软件需求规格说明书。提供《需求规格说明书》的Git链接。
- 除形式上满足规范文本要求外,整体内容必须围绕项目实质展开,对所要开发的项目确保尽力做到清晰完整准确。
- 使用一致的图形符号和文字描述内容。
- 分析和设计方法:http://www.cnblogs.com/xinz/p/4525232.html
- 在线作图工具ProcessOn:https://www.processon.com/
- 所有的缩写须事先定义。
- 需要有一个目录,word排版样式规范美观,图文并茂,通篇文档有一个统一的样式风格。
- 将自己置于读者的立场——如果对软件项目不熟悉的人员,通过阅读这份文档,能否完全读懂软件要做什么。
码云连接:
https://gitee.com/zfy666/requirement_specification/tree/master
3、NABCD 写作,视频
- 请同学们把自己项目的NABCD 都写出来。
- 列成详细的条目,用具体的事实和分析说明。
- 请分析自己项目的杀手功能是什么?参考教材的第8章:功能分析的四个象限
- 把这些要点都组合成为一段话 -- 当你要向别人兜售你的项目的时候, 你通常只有很短的时间 (电梯演说),能否自然而有条理地把项目说清楚? 请用你产品中实际的元素代替 <> 中的抽象概念。
各位领导/投资人/用户/合作伙伴:我们的产品 是为了解决 的痛苦, 他们需要 ,但是现有的方案并没有很好地解决这些需求,我们有独特的办法 ,它能给用户带来好处 ,远远超过目前市场上的竞争对手 。 同时,我们有高效率的 方法,能很快地让大部分用户知道我们的产品,并进一步传播。
[附加题]把上面的这段话录制为视频,上传到视频网站,并把链接发到团队博客上。
N
现在各个阶层的人越来越多选择更加便利的网购,但是等待快递是一件苦闷的事,尤其经常不清楚你的快递在哪里了。
A
利用调查问卷的方式获取用户对程序的需求,以此为方向,安深受大众喜爱的APP
B
帮助用户随时获取物流信息,及时掌握快递去向
C
竞争尤其激烈,包括阿里自己的菜鸟裹裹。
D
小组自己做宣传,发朋友圈啊什么的宣传一下,也可以线上寻求合作投放广告
4、团队协作,加强分工,需要描述每个成员的具体分工及占整个文档任务的工作量比例。
需求问卷调查及分析:周颖强,黄绍桦
博客编辑,整合其他团员任务,填写团队任务分工:曾飞远,林健
NABCD写作:张文博,戴建钊
参考
NABCD参考 参见( http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html)
同学们的实际作业例子:
http://www.cnblogs.com/dasusu/p/4830168.html
http://www.cnblogs.com/MR-ZH/p/5879464.html
http://www.cnblogs.com/linexu/p/5880155.html
http://www.cnblogs.com/liangzhilin/p/5462486.html
http://www.cnblogs.com/jjy520/p/5463552.html
http://www.cnblogs.com/hgf520/p/5457322.html
原型设计
首先是登陆后主界面
输入单号后跳出物流界面
左上角是菜单界面,包含备注功能,方便在历史记录中查找
https://modao.cc/app/mVG7G25olVpMh4dL3RcrxZNiDCkGYto
任务分解WBS
一个团队项目要在一段时间内完成诸多任务,满足用户需求,实现团队目标,从哪里入手?
WBS(Work Breakdown Structure)即工作分解结构,是根据项目目标把工作分解成许多层次分明的、可交付成果的工作任务,然后用逻辑图形或树形结构表示出来。
1、请给出团队项目的WBS;
详情参考:https://suibiancha.coding.net/p/Suibiancha/tasks/board
2、团队成员估计各自任务所需时间
功能 | 所需时间 | 负责人 |
---|---|---|
界面设计 | 4天 | 黄绍桦、张文博 |
“查询”键代码编写 | 6天 | 戴建钊、林健 |
“历史记录”键代码编写 | 6天 | 曾飞远 |
代码测试 | 3天 | 周颖强 |
3、参考:http://www.cnblogs.com/zhengrui0452/p/6653964.html
编码规范
根据结对编程的经验,大家已经意识到编码规范的重要性。
讨论制定团队的编码规范,满足代码风格规范和代码设计规范(参考书第4章4.1-4.3内容)
http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html
我们将参考华为公司的代码规范进行编码。详情参考如下链接:http://www.open-open.com/doc/view/9d112ce0c4ba4af9be72dc84d0fbeba4
系统设计
在设计阶段,我们要清楚:软件是怎么解决这些需求的?
一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。
1、如何才能最大限度地实现这些需求,这就是架构设计要解决的问题。请给出系统的架构设计
2、完成团队
项目的数据库设计,并在随笔中提供相应ER图(如果必要)
参考
分析设计方法!
http://www.cnblogs.com/xinz/p/4525232.html
http://www.cnblogs.com/bugphobia/p/4946840.html
http://www.cnblogs.com/bugphobia/p/4946844.html
http://www.cnblogs.com/bugphobia/p/4946849.html
实验小结
- 曾飞远:我本次主要负责WBS和代码规范的学习制作,通过本次作业,我熟知了我们本次项目的任务和分工,能更好地担任组织安排和编程的工作。
- 林健:这周我的任务是原型设计,作用的工具是墨刀,这是个十分强大的原型设计工具,开始因为不是很熟悉,先开始看了几遍教程,将创建页面结构,内容,和页面交互都实现了。在设计我们项目的时候,我的原则是简洁,逻辑清晰,功能模块就一目了然。因为第一次做,有待改进。
- 张文博:本次实验我负责的是界面设计,因为基础薄弱,所以难度相对较大,幸好小组成员之间沟通密切,互相帮助,得以完成本次实验,大家磨合得也越来越好,都在朝着共同的目标努力。
- 周颖强:我负责问卷调查,从调查结果来看目前越来越多人去网购,所以我们这个程序的实用性不错。但是功能还较为简单,需要进一步完善。
- 戴建钊:这周我的任务是撰写需求规格说明书,由于是第一次写,所以借鉴了某团队的说明书、《构建之法》、以及网络上的需求规格说明书的模板,并且使用在线作图工具ProcessOn画出E-R图等