软件项目需求管理

发表于:2013-5-13 10:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  软件需求的概念

  (1)宽泛地讲,需求来源于用户的一些"需要",这些"需要"被分析、确认后形成完整的文档,该文档详细地说明了产品"必须或应当"做什么。

  (2)是用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。

  (3)期望?! 一种心理活动、笼统、不细致、不懂过程

  需求的重要性

  (1)Frederick Brooks在他1987年经典文章"No Silver Bullet"中阐述了需求的重要性:

  开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。

  (2)需求是产品的根源,需求工作的优劣对产品影响最大。

  (3)国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌不停地开发。

  了解客户、最终用户、间接用户的概念

  (1)基本概念

  "用户"(user)是一种泛称,它可细分为"客户"(customer)、"最终用户"(the end user)和"间接用户"(或称为关系人)。

  掏钱买软件的用户称为客户,而真正操作软件的用户叫最终用户。客户与最终用户可能是同一个人也可能不是同一个人。

  (2)客户是掏钱买软件的人,所以他是"上帝"

  (a)某饭店经理在解释"先有鸡还是先有蛋"这个哲学问题时,精辟地阐述了客户的地位:

  如果顾客先点鸡,那么就先有鸡;如果顾客先点蛋,那么就先有蛋。

  (b)"现代营销学之父"菲利普o科特勒所著的《市场营销导论》是这样描述客户的:

  客户永远是本公司的座上客。客户并不依赖我们,而我们却依赖客户。客户不是我们工作的障碍,而是我们工作的目标。我们并不因为服务于他而对他有恩,他却因为给予我们服务于他的机会而有恩于我们。客户不是我们要与之争辩和斗智的人。从未有人曾在与客户的争辩中获胜。客户是把他的欲望带给我们的人,因此我们的工作就是满足这些欲望,从而使客户和我们共同获益。

  (c)与客户打交道的主要目的是:一是获取需求,二是签合同。

  软件需求的层次

  (1)原始问题描述:对要解决问题的叙述,它是软件需求的基础

  (2)用户需求:用自然语言和图表给出的关于系统需要提供的服务及操作的约束

  (3)系统需求:是用户需求的映射。此时可开发一个简单原型以便给用户一个直观印象。

  (4)软件设计描述:在系统需求的基础上加入更详细的内容,它是软件详细设计和实现的基础

  

  需求工程的组成

  把所有与需求直接相关的活动通称为需求工程。

  

  需求工程的一些感悟

  (1)不论是合同项目还是自主研发的产品,都必须开展需求开发和需求管理活动。

  (2)开发者对待需求工程的态度可分"被动型"、"主动型"和"领先型"三种,只有后两种才有可能开发出成功的产品。

  "被动型"是指开发者被动地对待需求工程中的各项活动,能少干则少干,能偷懒则偷懒。他们认为需求是用户的事情而不是自己的事情。开发过程中经常发生需求变更,导致产品迷失方向,不是半途而废就是陷入半死不活的状态。

  "主动型"是指开发者积极地开展需求工程中的各项活动。他们把获取准确的需求当作自己的职责,会想尽一切办法克服需求开发和需求管理过程中的困难,而不是找借口推卸责任。俗话说"良好的开端是成功的一半","主动型"需求工程是开发成功产品的必备条件。

  "领先型"是需求工程的最高境界。开发者发掘了连用户自己都没有意识到的需求,导致用户跟着新产品跑而不是新产品围着用户转,这叫引导消费。需求工程做到这个份上,才能使产品立于不败之地,长盛不衰。

51/512345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号