需求分析

转载 2007年09月20日 14:21:00

原文来自于:http://www.itisedu.com/phrase/200603062220345.html       

 需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。(这个和我在微软体验到的又不太一样,微软的需求分析大多是市场人员和用户协助小组的人去评估用户的接受程度,这一点也可以理解,因为公司的性质有根本差别)在这个过程中,用户的确是处在主导地位,需求分析工程师和项目经理要负责整理用户需求,为之后的软件设计打下基础。需求分析阶段结束后,要求得到:1.SRS文档(System Requirement Specification); 2.DRM 文档;3.Acceptance Plan.

      从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程 

为什么要需求分析

      需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一个for linux的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发for windows的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,痕不得找块豆腐一头撞死.

      需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位.大家一定要对需求分析具有足够的重视.在一个大型软件系统的开发中,他的作用要远远大于程序设计.

需求分析的任务

      简言之,需求分析的任务就是解决"做什么"的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求.

需求分析的过程

      需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合,制订规格说明,评审.

      问题识别
      就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准.这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标.

      分析与综合
      逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分.最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型).

      制订规格说明书
      即编制文档,描述需求的文档称为软件需求规格说明书.请注意,需求分析阶段的成果是需求规格说明书(好象软考曾经考过这个问题),向下一阶段提交.

      评审
      对功能的正确性,完整性和清晰性,以及其它需求给予评价.评审通过才可进行下一阶段的工作,否则重新进行需求分析。

需求分析的方法

      需求分析的方法有很多.这里只强调原型化方法,其它的方法如:结构化方法,动态分析法等(个人认为,对初学者不必深究这些方法,实际上我也从来没用过这些方法)在此不讨论.

需求分析误区

      要想说什么是好的需求分析,不如说什么是不好的需求分析,知道什么是不好的,自然也就知道了什么是好的。以下就是一些不好的情况:

(1)创意和求实
      毋庸质疑的,每个人都会为自己的一个新的Idea而激动万分,特别是当这个Idea受到一些根本不知道你原本要干嘛的人的惊赞时。但是请注意,当你激动得意的时候,你可能已经忘了你原本是在描述一个需求,而不是在策划一个创意、创造一个概念。很多刚开始做需求分析的人员都或多或少的会犯这样的错误,陶醉在自己的新想法和新思路中,却违背了需求的原始客观性和真实性原则。

      永远别忘了:需求不是空中楼阁,是实实在在的一砖一瓦。

(2)解剖的快感
      几乎所有搞软件的人,做需求分析的时候,一上来就会把用户告诉你的要求,完完整整的作个解剖,切开分成几个块,再细分成几个子块,然后再条分缕析。可是当用户迷惑的看着你辛辛苦苦做出来的分析结果问你:我想作一个数据备份的任务,怎么做?这时,你会发现,需要先后打开三个窗口才能完成这个任务。

      永远别忘了:分解是必需的,但最终的目的是为了更好的组合,而不是为了分解。

(3)角度和思维
      经常听到这样的抱怨:“用户怎么可以提出这样苛刻的要求呢?”。细细一了解,你会发现,用户只不过是要求把一个需要两次点击的功能,改成只有一次点击。这样会导致需要改变需求、改变编码、甚至重新测试,增加工作量。可是,如果换个角度来想想,这个功能,开发的时候只用了几次、几十次,可是用户每天都要用几百次甚 至几千次几万次,改动一下就减少了一半的工作量,对他来说,这样的需求难道会苛刻吗?

      永远别忘了:没有任何需求是不对的,不对的只是你的需求分析。试着站在用户的思维角度想想,你的需求分析就会更加的贴近用户,更加的合理。软件应该是以人为本的。

(4)程序员逻辑
      从程序员成长为系统分析员是一个普遍的轨迹,但并不是一个好的程序员就必然能成为一个好的系统分析员。一些程序员的固化逻辑,使得他们在做需求分析的时候往往钻进了一些牛角里面。比如说1/0逻辑(或者是说黑白逻辑),认为不是这样就是那样,没有第三种情况。可实际情况往往是,在一定的时候是这样,其它时候是那样。又比如穷举逻辑,喜欢上来就把所有一二三可能的情况列举出来,然后一个一个分别处理,每个占用三分之一的时间;可是实际的情况往往是,三分之一的情况占了99%的比例,其它两种情况一年都不会遇到一次。实际中还有很多这样的例子,不一一列举了。

需求分析师-一个门槛不低的职位

一、深刻理解业务 二、充分和用户沟通 三、具备深厚的技术背景和严谨的思维 一看上面这个三点,就觉得门槛不低了,何况要全面,更怕业务涉及一大堆方向。。。  技术覆盖最古老的...
  • gnicky
  • gnicky
  • 2013年10月18日 09:37
  • 3796

uml 在需求分析阶段的应用

上一篇博客写了uml在软件开发过程中的应用,这以篇要详细介绍一下UML在需求分析过程中的应用。 以机房收费系统为例进行讲解,先介绍一个该系统。 首先该系统的用户分为三个等级,一般用户,操作员,管理员,...
  • zhanghongjie0302
  • zhanghongjie0302
  • 2013年11月18日 20:11
  • 5411

需求管理与分析——需求池

产品经理会聆听用户声音进行需求收集,但是真正的需求需要我们去优化。真正优化的应该是从需求的收集到最终形成功能融入到产品中的这个过程。下面做一个简单科学的流程。 一、需求收集 · 从用户、市场、竞品...
  • qiansanjia
  • qiansanjia
  • 2016年09月20日 15:43
  • 1135

【SSH项目实战】国税协同平台-4.用户管理需求分析&CRUD方法2

下面我们继续来完成我们的用户管理模块 回顾一下我们的列表部分界面: 然后我们开始写新增方法,原来的列表界面的HTML如下: 用户管理 //全选、全反...
  • u013517797
  • u013517797
  • 2015年10月22日 12:47
  • 2448

需求分析阶段的工作(一):业务用例和系统用例

在这里要申明的是逻辑模型并不能完全算需求分析阶段的工作,因为它包含了设计模型的概念,但是我又把它归纳了一块到需求分析阶段,原因在于逻辑模型中存在了业务对象模型和分析模型的概念。 言归正传,先来看用例...
  • yaba213
  • yaba213
  • 2011年04月07日 10:17
  • 517

创业的需求分析——创业杂记【1】

创业的第一条就是选择一个合适的痛点切入。我在之前三年多的创业过程中,曾经多次犯下痛点选择失误的错。血泪史,希望能帮助到各位。...
  • diehuan2008
  • diehuan2008
  • 2014年08月19日 14:59
  • 3428

ESB 案例解析和项目实施经验分享,第 3 部分: ESB 项目需求分析和方案设计浅谈

选自:http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0906_loulj_esb3/  前言  如...
  • wxyFighting
  • wxyFighting
  • 2013年06月26日 15:27
  • 1282

移动APP的开发需求分析

项目意见 一、项目概况 本项目是一款结合kinect新型仪器电脑软件的移动APP,主要目的是辅助病人在家庭医疗康复锻炼中可以得到专业医生规范,趣味性的指导和有效监督,从而更有效率的恢复身体的健康,改善...
  • du_zun
  • du_zun
  • 2016年04月07日 21:54
  • 1847

java web图书商城系统的需求分析及详细设计与代码实现

图书商城 1. 功能分析 1、用户注册 2、用户登录 3、添加商品(CURD) 4、商品查看-- 列表查询 5、商品详情页面 6、将商品添加购物车 7、查看购物车 8、修改购物车 9、生成订单 10、...
  • llqqxf
  • llqqxf
  • 2016年07月13日 09:43
  • 5418

Thinking In UML 的读书笔记(一)需求分析之前的准备工作

Thinking in UML读书笔记
  • sinat_34905048
  • sinat_34905048
  • 2016年07月31日 21:45
  • 381
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:需求分析
举报原因:
原因补充:

(最多只允许输入30个字)