构建之法 chapter 8 需求分析 ——读书心得
需求分析,是软件工程开发的第一步,准确全面地找到用户的需求,尽可能满足用户的要求,是软件惺惺发展的基础。所以需求分析很重要。具体来说有以下几个步骤:
1.获取和引导需求:软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出真实的需求。不同的项目需要不同的手段,这一步骤也被叫做“需求捕捉”,形容真正的需求稍纵即逝,需要靠火眼金睛和敏捷的身手来发现并抓住它们。另外,有些用户并不知道自己确切的需求,或者不愿意表达完整的需求,这时候软件团队需要替用户着想,引导出需求。
2.分析和定义需求:这时指对从各个方面获取的需求进行规整,定义需求的内涵,从各个角度将需求量化,例如,需求实现的最后期限,实现需求大致需要的时间和成本,等等。
3.验证需求:软件团队要跟利益相关者沟通,通过分析报告、技术原型、用户调查或演示等形式向他们验证软件团队对于这些需求的认知。
4.在软件产品的生命周期中管理需求:在软件的生命周期中,需求在发生变化,所以技术也在发展,团队成员的能力也在随之提高。
对于软件的需求,也可以从不同角度做下面的划分:1.对产品功能性的需求:要求产品必须实现某些功能。 2.对产品开发过程的需求:要求软件的开发流程必须满足某些约束条件。 3.非功能性需求:也称为“服务质量需求”。 4.综合需求:有些需求不单单一个软件模块就能满足。
那么,我们该如何获取用户的需求呢?以下是几种常用的用户调研方法:
1.焦点小组:找到一群目标用户的代表,加上项目的利益相关者来讨论用户想要什么,用户对软件的评价等等。焦点小组是很常用的调研方法。
2.深入面谈:通过详细的面谈,广泛而深入的了解用户的背景、心理、需求等。这通常是一对一的采访。
3.卡片分类:通常,团队收集到的需求都是杂乱无章的,我们可以利用“卡片分类”的方法把各种需求做成便于规整的小卡片。
4.用户调查问卷:向用户提供事先设计好的问题,让用户回答。在设计问题时需要注意一些小细节:要准确定义问题;避免使用含糊不清的形容词;问题尽量简洁;问题不能具有导向性。
5.用户日志研究:这一调研方法要求用户记录自己日常工作或生活中与所用软件相关的行为,供软件团队分析。
6.人类学调查:简单来说,就是和目标用户“同吃同住同劳动”。
7.眼球跟踪研究:用户通常游览通栏标题,然后目光沿着左侧下行,再平行游览下面的子标题。所以这决定了重要内容放的位置。
8.快速原型调研:拿一些纸张模型,让用户去使用,得到反馈。
9.A/B测试:具体实施过程:决定试验哪两种不同的UI,以及衡量标准、数据收集流程、试验运行时间、人数;在技术上实现A/B测试;收集数据,分析数据,形成结论。
有市场就会有竞争,所以除了对用户的需求进行分析以外,软件团队还需要对竞争性需求进行分析,NABCD模型是一个有效的方法:N,need,需求;A,approach,做法;B,benefit,好处;C,competitors,竞争;D,delivery,推广。得到了需求之后,软件团队就要考虑实现这些需求,主要有以下四种划分来更好的实现需求:1.杀手功能:OCR文字识别技术,可以在屏幕上取词解释,拥有独家权威词典,等等。2.外围功能:良好的界面设计,在各个平台上都能运行。3.必要需求:单词短语释义的准确性。4.辅助需求:可以做各种皮肤。
一个软件项目要在一段时间内完成诸多任务,光是满足用户的需求,就要做大量的用户需求分析,实现团队的目标,所以需要每个成员之间的配合和效率,大家各司其职,一起努力。
构建之法 chapter 8 需求分析 ——读书心得的更多相关文章
- 《构建之法》chapter5,6 读书心得
<构建之法>第五章用体育运动等团队例子引出软件开发团队的形式,用更加生活化.形象化的例子让读者更能理解软件开发团队的形式.软件团队形式多样,适用于不同的人员与需求.团队可能会演变的模式有: ...
- 《构建之法》CH5~6读书笔记 PB16110698 第九周(~5.15)
这段时间我阅读了<构建之法>的大部分章节,包括个人技能.软件测试.用户体验和需求分析等相关内容.之前的个人作业和结对作业结束后,我们的工作重心终于转向了团队项目,作为团队中前端组的组长,我 ...
- <<构建之法第三版>>读书遇到的5个问题
1.书中第4章4.5节所说的结对编程让我感觉有一点困惑,书中书写的是结对编程,说实话我是第一次接触这个词汇,我能感到这种方式的新特之处,但是对比我现实的编程经历,我很难想象在一般的企业开发中这样的行为 ...
- 《构建之法》MSF&需求分析
第七章 MSF MSF基本原则 推动信息共享与沟通 为共同的远景而工作 充分授权和信任 各司其职,对项目共同负责 交付增量的价值 保持敏捷,预期和适应变化 投资质量 学习所有的经验 与顾客合作 MSF ...
- 《构建之法》需求分析 读书笔记 Week6
本周选读<构建之法>第8章——需求分析.由于有团队项目初期调研阶段做调查问卷的经历,这一章节中很多知识点我都比较有体会.对我而言,这一章节最有价值的内容就是厘清了关于需求分析的两个误解和近 ...
- 软工读书笔记 week 9 ——《构建之法》
软工读书笔记 week 9 ——<构建之法> 最近的三周我们正式开始我们的项目.然后我也把<构建之法>中的相关章节再拿出来读了一番.以下是一些 ...
- 软工读书笔记 week 5 ——《构建之法》
本周主要对<构建之法>中的一部分进行阅读. 一.软件与软件工程究竟是什么? 本书的概论部分就指出“软件 = 程序 + 软件工程”.而我们这门课的名字就叫“现代软件工程”.其实在上课之前,我 ...
- 构建之法 chapter1 心得
阅读完了<构建之法>第一章后,觉得我们平时使用的软件并不是自己想象中的那样简单,用的时候是觉得很方便,但从来没有考虑过一个软件的背后需要一个团队多少的付出才能换来一个获得用户频频好评的软件 ...
- 软工读书笔记 week 7 ——《构建之法》
总时长近两周的结对项目终于算是结束了,马上要重新开启团队项目.于是这几天决定对<构建之法>一书中与团队项目及需求分析有关的章节进行重点阅读,希望能够从中得到启发,并运用到接下来的团队项目中 ...
随机推荐
- redis持久化数据的机制——转发
转载:https://www.cnblogs.com/xingzc/p/5988080.html Redis提供的持久化机制(RDB和AOF) Redis提供的持久化机制 Redis是一种面向“k ...
- java第六次课后作业
class Check{ public boolean validate(String name, String password){ if(name.equals("shenhaochen ...
- npx
npx 是什么? npm v5.2.0引入的一条命令(npx),引入这个命令的目的是为了提升开发者使用包内提供的命令行工具的体验. 举例:使用create-react-app创建一个react项目. ...
- JAVAEE第三周
2.背景:看到Session时,感到很熟悉,毕竟涉及到过类似的编程,用得最多的地点就是保存客户端的信息和记录,比如说你已经登陆过某个网站,下次访问时不想要麻烦的重新登陆你就就可以使用这个机制.Sess ...
- 【webpack学习笔记】a05-模块热替换
什么是模块热替换? 这个功能会在程序运行过程中替换.添加或删除模块,而无需重新加载整个页面 有什么用呢? 保留在完全重新加载页面时丢失的应用程序状态. 只更新变更内容,以节省宝贵的开发时间. 调整样式 ...
- python 使用selenium模块爬取同一个url下不同页的内容(浏览器模拟人工翻页)
页面翻页,下一页可能是一个新的url 也有可能是用js进行页面跳转,url不变,解决方法是实现浏览器模拟人工翻页 目标:爬取同一个url下不同页的数据(上述第二种情况) url:http://www. ...
- node.js学习5--------------------- 返回html内容给浏览器
/** * http服务器的搭建,相当于php中的Apache或者java中的tomcat服务器 */ // 导包 const http=require("http"); cons ...
- NPOI处理Word文本中上下角标
读取Word文档,并将文本转成html标签,后面发现,经常有带上下角标的内容,于是一并处理了. 核心在于对XWPFRun对象中Subscript属性的处理. /// <summary> / ...
- 策略模式在ThreadpoolExecutor中的应用
偶然读到ThreadpoolExecutor的源码,发现里面使用到了策略模式,抓出来和大家分享下: 感兴趣的朋友们可以读读 ThreadPoolExecutor的源码: public void set ...
- Window下,利用Anaconda2创建jupyter-notebook的python3环境方法
随着深度学习的火热,越来越多的人去学习和了解这门技术.而做算法的同学为了能够更快,更高效的写出相关的深度学习算法出来,需要比较方便的开发环境.今天主要介绍一下在jupyter notebook中,新增 ...