Deadline:
2018-4-15 10:00PM,以提交至班级博客时间为准。
根据以下要求,写一篇随笔,并完成《需求规格说明书》
需求分析
软件的最终目的是用来解决用户的某些问题,需求分析就是要理解要解决的问题,真正明确用户需求。
- 访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求,为软件最终可用奠定基础。
- 如果是原有项目,需要对旧项目的所有信息做一个调研,通过采访以前的开发者,形成采访文档,请参考《构建之法》的大马哈鱼巡回游的过程性介绍。
- 用户调研方法参考《构建之法》第8章获取用户需求——用户调研
- 参考《软件需求规格说明书》国标规范文本,撰写对应项目的软件需求规格说明书。提供《需求规格说明书》的Git链接。
- 除形式上满足规范文本要求外,整体内容必须围绕项目实质展开,对所要开发的项目确保尽力做到清晰完整准确。
- 使用一致的图形符号和文字描述内容。
- 分析和设计方法:http://www.cnblogs.com/xinz/p/4525232.html
- 在线作图工具ProcessOn:https://www.processon.com/
- 所有的缩写须事先定义。
- 需要有一个目录,word排版样式规范美观,图文并茂,通篇文档有一个统一的样式风格。
- 将自己置于读者的立场——如果对软件项目不熟悉的人员,通过阅读这份文档,能否完全读懂软件要做什么。
- NABCD 写作,视频
- 请同学们把自己项目的NABCD 都写出来。
- 列成详细的条目,用具体的事实和分析说明。
- 请分析自己项目的杀手功能是什么?参考教材的第8章:功能分析的四个象限
- 把这些要点都组合成为一段话 -- 当你要向别人兜售你的项目的时候, 你通常只有很短的时间 (电梯演说),能否自然而有条理地把项目说清楚? 请用你产品中实际的元素代替 <> 中的抽象概念。
各位领导/投资人/用户/合作伙伴:我们的产品 <foo> 是为了解决 <目标用户> 的痛苦, 他们需要 <Need>,但是现有的方案并没有很好地解决这些需求,我们有独特的办法 <Approach>,它能给用户带来好处 <Benefit>,远远超过目前市场上的竞争对手 <Competitor>。 同时,我们有高效率的 <Delivery> 方法,能很快地让大部分用户知道我们的产品,并进一步传播。
[附加题]把上面的这段话录制为视频,上传到视频网站,并把链接发到团队博客上。
- 团队协作,加强分工,需要描述每个成员的具体分工及占整个文档任务的工作量比例。
参考
- NABCD参考 (参见 http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html)
- 同学们的实际作业例子:
原型设计
原型设计能够在表现层将设计合成一个逻辑整体,用户能和你一起看到未来交互的软件蓝图、功能和效果,获得较真实的感受,在不断讨论的基础上完善未来的设计思想。因此,原型设计能起到有效沟通的作用,漂亮,直观的原型图更是让人赏心悦目。
- 不要等到所有代码写好之后再去验证需求,请用设计工具描述用户界面和需求。
- 原型设计不仅要考虑主要功能的页面排布,同时也要考虑用户实际操作中的问题,提前为用户考虑得当并征求用户意见
- 系统是必须可运行的,可实际使用的——请抱着这样的同理心去考虑系统。
- 给目标用户展现原型,与目标用户进一步沟通理解需求。
- 思考:他们的痛是什么?场景是什么?(用产品之前/之后,有照片或视频显示用户调查的过程,使用了各种调查手段的,加分)
- 参考:
- 《构建之法》第10章典型用户和场景
- http://www.cnblogs.com/xinz/archive/2011/10/30/2229236.html
- 阿里巴巴卫哲:http://iamsujie.com/8000/8018/
原型工具参考
如果是设计原型,采用专门的原型设计工具,能够事半功倍,工具参考:
- 移动应用原型与线框工具-墨刀
- 原型设计界的PS -Axure RP,Axure
- 网页和移动端的设计sketch
- 一款简洁高效的原型图设计工具mockplus
- 致力于高保真原型制作工具Justinmind
- 一款免费的带有手绘涂鸦风格的原型设计软件balsamiq mockups
- 更多选择,请参考:https://www.zhihu.com/question/19592829
作业参考
原型设计界面简洁,用户体验极佳。分工比例部分的泳道图十分清楚地展示了各个同学的工作任务,Github上数十次Commit也展示了他们和谐的团队协作。
任务分解WBS
一个团队项目要在一段时间内完成诸多任务,满足用户需求,实现团队目标,从哪里入手?
WBS(Work Breakdown Structure)即工作分解结构,是根据项目目标把工作分解成许多层次分明的、可交付成果的工作任务,然后用逻辑图形或树形结构表示出来。
- 请给出团队项目的WBS;
- 团队成员估计各自任务所需时间
- 参考:http://www.cnblogs.com/zhengrui0452/p/6653964.html
编码规范
根据结对编程的经验,大家已经意识到编码规范的重要性。
讨论制定团队的编码规范,满足代码风格规范和代码设计规范(参考书第4章4.1-4.3内容)http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html
系统设计
在设计阶段,我们要清楚:软件是怎么解决这些需求的?
一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。
- 如何才能最大限度地实现这些需求,这就是架构设计要解决的问题。请给出系统的架构设计
- 完成团队项目的数据库设计,并在随笔中提供相应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
评分基准
- 按时交 - 有分(详细评分细则见下表)
- 晚交 - 0分
- 迟交两周以上 - 倒扣本次作业分数
- 抄袭 - 倒扣本次作业分数
- 如对分数有意见,只给一次向助教申诉的机会
评分内容 | 评分项 | 分值 | 备注 |
需求分析 | 访问用户 | 5 + 5 | (i)如果是原有项目需要在博客中展示采访文档,需要有每位用户的采访反馈,不少于10人(ii)如果是新项目需要给出用户调研的证据,如调查问卷需要给出问卷链接和统计结果,不少于10人,基础分5分,有照片或视频显示了用户调研过程的可以再加5分! |
给出需求规格说明书的git链接 | 10 | a-e每项2分 | |
给出项目的NABCD | 10 | 要有具体的事实和分析,每条2分 | |
给出项目的杀手功能 | 2 | ||
将NABCD要点组织成一段话 | 5 | ||
附加题 | 把上面的这段话录制为视频,上传到视频网站,并把链接发到团队博客上 | 5 | |
原型设计 | 请用设计工具描述用户界面和需求 | 10 | 在博客上给出原型设计的结果和原型设计用到的工具,需要图文并茂 |
任务分解WBS | 给出团队项目的WBS | 5 | |
团队成员估计各自任务所需时间 | 3 | ||
编码规范 | 制定团队的编码规范,给出Git链接 | 5 | 满足代码风格规范和代码设计规范 |
系统设计 | 给出系统的架构设计 | 5 | |
完成团队项目的数据库设计,并在随笔中提供相应ER图 | 5 | 如果所选项目不需要涉及数据库那么不需要做这一项,但是要给出不需要数据库的支持理由 | |
其他 | 排版 | 3 | |
评论区回复 | [-5, 5] | ||
团队的分工 | 5 | ||
成员的完成情况 | 2 | ||
个人的感受 | 10 |