第4章需求开发与需求管理

更新时间:2023-11-01 05:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

第4章 需求开发与需求管理.............................................................................................3 4.1 什么是需求 ..................................................................................................................4 4.1.1 基本概念 ................................................................................................................4 4.1.2 需求案例 ................................................................................................................4 4.2 了解用户 ......................................................................................................................6 4.3 需求工程 ......................................................................................................................7 4.3.1 基本概念 ................................................................................................................7 4.3.2 一些感悟 ................................................................................................................8 4.4 需求开发的主要困难与对策 ........................................................................................9 4.4.1 知识技能问题 ........................................................................................................9 4.4.2 态度问题 ..............................................................................................................10 4.4.3 合作关系 ..............................................................................................................10 4.4.4 用户说不清楚需求 ...............................................................................................12 4.4.5 双方误解需求 ......................................................................................................12 4.4.6 开发人员写不好需求文档....................................................................................13 4.4.7 用户经常变更需求 ...............................................................................................13 4.5 如何开展需求调查 .....................................................................................................13 4.5.1 需求调查规程 ......................................................................................................13 4.5.2 准备调查 ..............................................................................................................14 4.5.3 调查与记录 ..........................................................................................................14 4.5.4 撰写用户需求说明书 ...........................................................................................15 4.6 如何进行需求分析 .....................................................................................................17 4.6.1 问答分析法 ..........................................................................................................17 4.6.2 建模分析法 ..........................................................................................................17 4.6.2.1 结构化分析法................................................................................................18 4.6.2.2 面向对象分析法 ............................................................................................18 4.6.2.3 恰当地使用图形符号 ....................................................................................19 4.6.3 作出决策 ..............................................................................................................19 4.7 什么是好的产品需求规格说明书 ..............................................................................20 4.7.1 正确 .....................................................................................................................20 4.7.2 清楚 .....................................................................................................................20 4.7.3 无二义性 ..............................................................................................................20 4.7.4 一致 .....................................................................................................................21

第4章 需求开发与需求管理

4.7.5 必要 .....................................................................................................................21 4.7.6 完备 .....................................................................................................................21 4.7.7 可实现..................................................................................................................22 4.7.8 可验证..................................................................................................................22 4.7.9 确定优先级 ..........................................................................................................22 4.7.10 阐述“做什么”而不是“怎么做” ...................................................................23 4.8 如何定义产品需求 .....................................................................................................23 4.8.1 规程 .....................................................................................................................23 4.8.2 软件需求规格说明书的模板 ................................................................................24 4.9 需求确认 ....................................................................................................................26 4.9.1 规程 .....................................................................................................................26 4.9.2 需求评审 ..............................................................................................................26 4.9.3 需求承诺 ..............................................................................................................28 4.10 需求跟踪 ..................................................................................................................29 4.11 需求变更控制...........................................................................................................30 4.12 CMMI对应规范 .......................................................................................................32 4.12.1 需求开发过程域的目标与实践 ..........................................................................32 4.12.2 需求管理过程域的目标与实践 ..........................................................................33 4.13 需求建模工具 ..........................................................................................................33 4.14 需求管理工具 ..........................................................................................................34 4.15 应用示例 ..................................................................................................................34 4.15.1 成功的示例 ........................................................................................................34 4.15.2 失败的示例 ........................................................................................................34 4.16 小结 .........................................................................................................................34

Page 2 of 34

第4章 需求开发与需求管理

第4章 需求开发与需求管理

我们把所有与需求直接相关的活动通称为需求工程。需求工程是国内大学软件工程教育最薄弱的环节之一,这种教育模式下诞生的软件工程师会有这样的习惯:他们在开发产品时并不清楚究竟该做什么,但却在一直忙碌不停地开发。

这不是个别的荒唐现象,这差不多成了国内软件业的痼疾。

把责任推给学校显然无济于事。不论你是学生还是职业软件工程师,如果你不懂需令人遗憾的是大多数软件工程教科书喜欢以学术的形式论述需求,大讲结构化分析或面向对象分析,并给出一堆模型和符号。然而大部分开发人员首先要学习的是如何调查需求、如何写需求文档等基本技能。需求工程是经典软件工程的核心内容,按理说早就研究得相当透彻了,奇怪的是人们就是学不好、用不好。可见需求工程的研究者似乎并不清楚实践者的真正需求,真让人哭笑不得。

有个射击教练教出了不少神枪手,那些神枪手的枪法虽然很准,但老是打错人,有的甚至拿枪来自杀。你能说射击教练教和神枪手们合格吗?

基于我自己学习以及培训别人的心得体会,我准备以说理的方式论述需求工程,期望能减轻软件开发人员心头长久的痛。

求工程,你就不可能把产品做好。为了你的前途,你应该认真学习需求工程。

Page 3 of 34

第4章 需求开发与需求管理

4.1 什么是需求

4.1.1 基本概念

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

所以如果只有一些零碎的对话、资料或邮件,你就以为自己已经掌握了需求,那是自欺欺人。

人们常问:“需求、设计、编程、测试四者究竟哪个重要?”

这个问题不好回答。四者都是软件开发过程中必不可少的环节,光做好其中一个环节并不能产生好的系统,但是做坏了其中任何一个环节,必定对系统产生坏影响。若站在风险管理角度讲,我认为需求开发与管理是最重要的环节。因为需求是产品的根源,需求工作的优劣对产品影响最大。就像一条河流,如果源头被污染了,那么整条河流也就被污染了。

Frederick Brooks在他1987年的经典文章“No Silver Bullet”中阐述了需求的重要性: 开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。

没有软件工程书籍不强调需求的重要性,也几乎没有软件开发人员不知道需求的重根据我的观察和切身体会,大部分软件开发人员并不知道如何把需求工作做好。在我为本公司软件开发人员写需求工程培训教材时,恰好遇到公司里一群高智商的开发人员集体犯需求观念错误的事情。我就把它写成案例,现炒现卖。

要性。但是读过书并不表示就能够熟练掌握,需求工作说起来容易做起来难啊。

4.1.2 需求案例

本公司是国内一家大型的电信设备供应商,本案例涉及6个机构A,B,C,D,E和F,它们之间的关系如图4-1所示。故事是这样的:

A和B都是公司的研发机构,B做核心平台的研发,A做增值业务的研发(我在A工作)。C是公司的项目管理机构,负责立项、结项和研发经费管理。D是公司的一个销售机构。

一年前,B研制了一种数据接入服务器的原型。B对A讲:“我们的接入服务器前途D对B和A讲:“你们把接入服务器和网管软件做好,我们负责卖,挣了钱大家一起A想了想觉得机会难得,于是向C申请立项。立项后,A把该项目外包给一家专业做很好,请你们帮助开发网管软件(属于增值业务范畴),大家合作把产品做好,一起发财。” 分。”

网管软件的公司E,期望半年内完成。由于接入服务器是B的,于是A和E就派开发人

Page 4 of 34

第4章 需求开发与需求管理

员到B处搞需求分析。B的接入服务器并不成熟,老在变,三方折腾了好久,最终E用了一年时间把接入服务器的网管软件做出来了。

E把网管软件交付给A,A付清了E的开发费用,再把网管软件交付给D,D再卖给客户F(某地电信局)。F对D讲:“你们的网管软件不是我们想要的东西,等你们把软件改好后我们再付钱。”

D赶紧对A讲:“兄弟阿,货已经出手了,但是不对路,请赶紧把它改好,不然大家A很愤怒,怨天不公:“我们辛苦了一年,又花了很多钱,可是产品做完了却没人要,祸不单行的是,C来找A的麻烦:“你们的项目延期半年多了,经费也用光了,请尽A的那位项目经理为此每天愁眉苦脸,他的上司请来几位参谋商量对策(包括我在内),设法把事情搞定。大家挖空心思只想出一个馊主意:既然套子是B下的,那么就把套子还给B。要设法把“那么好”的网管产品转让给B,只要B能给我们成本费,以后就跟B拜拜。

F 客户 D销售机构 A:增值业务研发机构 C:项目管理机构 B:核心平台研发机构 都没钱赚。” 岂有此理!” 快结束项目。”

E:网管软件承包商 图4-1 本案例6个机构的关系图

读者听了这个故事肯定既迷糊又惊诧:“哇,大公司是这样开发产品的啊?”。我也

是在人家请我商量对策的时候,才知道有这样的事情。

问题的根源在于没有搞清楚网管软件的需求,这都是B,A,E闭门造车惹的祸。三方开发团队里可是有不少的博士、硕士呐,可是他们集体犯了如此低级的错误。最可悲的是,相关责任人关心的是如何把事情“搞定”,而不是深刻反思。估计类似的事情还会继续发生,每发生一次就损失成百上千万元。大公司再有钱也会给浪费光的。

讲了这个故事,我不免有所感叹:需求问题有时如同爱情问题,真是“当局者迷,旁观者清”啊。我自己也是这么过来的,但愿以后不再犯类似的错误。

Page 5 of 34

本文来源:https://www.bwwdw.com/article/lgf2.html

Top