需求分析,是软件工程开发的第一步,准确全面地找到用户的需求,尽可能满足用户的要求,是软件惺惺发展的基础。所以需求分析很重要。具体来说有以下几个步骤:

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 需求分析 ——读书心得的更多相关文章

  1. 《构建之法》chapter5,6 读书心得

    <构建之法>第五章用体育运动等团队例子引出软件开发团队的形式,用更加生活化.形象化的例子让读者更能理解软件开发团队的形式.软件团队形式多样,适用于不同的人员与需求.团队可能会演变的模式有: ...

  2. 《构建之法》CH5~6读书笔记 PB16110698 第九周(~5.15)

    这段时间我阅读了<构建之法>的大部分章节,包括个人技能.软件测试.用户体验和需求分析等相关内容.之前的个人作业和结对作业结束后,我们的工作重心终于转向了团队项目,作为团队中前端组的组长,我 ...

  3. <<构建之法第三版>>读书遇到的5个问题

    1.书中第4章4.5节所说的结对编程让我感觉有一点困惑,书中书写的是结对编程,说实话我是第一次接触这个词汇,我能感到这种方式的新特之处,但是对比我现实的编程经历,我很难想象在一般的企业开发中这样的行为 ...

  4. 《构建之法》MSF&需求分析

    第七章 MSF MSF基本原则 推动信息共享与沟通 为共同的远景而工作 充分授权和信任 各司其职,对项目共同负责 交付增量的价值 保持敏捷,预期和适应变化 投资质量 学习所有的经验 与顾客合作 MSF ...

  5. 《构建之法》需求分析 读书笔记 Week6

    本周选读<构建之法>第8章——需求分析.由于有团队项目初期调研阶段做调查问卷的经历,这一章节中很多知识点我都比较有体会.对我而言,这一章节最有价值的内容就是厘清了关于需求分析的两个误解和近 ...

  6. 软工读书笔记 week 9 ——《构建之法》

    软工读书笔记  week 9                 ——<构建之法> 最近的三周我们正式开始我们的项目.然后我也把<构建之法>中的相关章节再拿出来读了一番.以下是一些 ...

  7. 软工读书笔记 week 5 ——《构建之法》

    本周主要对<构建之法>中的一部分进行阅读. 一.软件与软件工程究竟是什么? 本书的概论部分就指出“软件 = 程序 + 软件工程”.而我们这门课的名字就叫“现代软件工程”.其实在上课之前,我 ...

  8. 构建之法 chapter1 心得

    阅读完了<构建之法>第一章后,觉得我们平时使用的软件并不是自己想象中的那样简单,用的时候是觉得很方便,但从来没有考虑过一个软件的背后需要一个团队多少的付出才能换来一个获得用户频频好评的软件 ...

  9. 软工读书笔记 week 7 ——《构建之法》

    总时长近两周的结对项目终于算是结束了,马上要重新开启团队项目.于是这几天决定对<构建之法>一书中与团队项目及需求分析有关的章节进行重点阅读,希望能够从中得到启发,并运用到接下来的团队项目中 ...

随机推荐

  1. Java实现post和get请求

    GET请求:GET请求会向服务器发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改.增加数据,不会影响资源的内容,即该请求不会产生副作用.无论进行 ...

  2. JS 判断两个时间的大小(可自由选择精确度:天,小时,分钟,秒)

    //可自由选择精确度 如:签到时间:2018-11-07 11:00:00 签退时间:2018-11-07 10:59:59 //判断时间先后 //统一格式 var a = $("#fdtm ...

  3. 在Linux CentOS6系统中安装开源CMS程序OpenCart的教程

    OpenCart是一个开放源码的店面,旨在为您提供灵活和细粒度的在线店面管理.在开始之前,您应该已经在您的Linode上设置了一个LAMP堆栈.您还应该设置主机名. PHP设置 为了使用OpenCar ...

  4. python学习笔记第一节

    一.HelloWorld #!/usr/bin/env python #-*- coding:utf-8 -*- print("HelloWorld!") 二.用户交互 #!/us ...

  5. hibernate 保存的flush怎么用?

    hibernate 中的flush方法只有在上面的数据保存用了hibernate的方法保存了,但是在同一个事物当中需要用SQL的方法去查上面保存的数据,这个时候上方的hibernate保存后面就需要用 ...

  6. matlab json文件解析 需要下载一个jsonlab-1.5

    % facebookX24.m clc; addpath('C:\Program Files\MATLAB\R2015b\toolbox\jsonlab-1.5'); % read .json jso ...

  7. pytorch 读数据接口 制作数据集 data.dataset

    [吐槽] 啊,代码,你这个大猪蹄子 自己写了cifar10的数据接口,跟官方接口load的数据一样, 沾沾自喜,以为自己会写数据接口了 几天之后,突然想,自己的代码为啥有点慢呢,这数据集不大啊 用了官 ...

  8. .net下的缓存技术

    1.为什么要缓存?缓存能解决的问题 1.1稳定性 同一个应用中,对同一数据.逻辑功能和用户界面的多次请求时经常发生的.当用户基数很大时,如果每次请求都进行处理,消耗的资源是很大的浪费,也同时造成系统的 ...

  9. Java学习NO.3

    今日学习重点: while循环: 语法:while(条件表达式){ 循环操作 } 条件表达式符合,循环继续执行:否则,退出循环. 循环四要素:循环初始化.循环条件.循环操作.循环变量的改变 do-wh ...

  10. C++入门程序作业3

    /* 输出n位数据的格雷码 The gray code is a binary numeral system where two successive values differ in only on ...