软件过程的需求管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精选课件
9
3. 需求工程基本概念
3.4 需求工程的一些感悟
不论是合同项目还是自主研发的产品,都必须开展需求开发和需求管理活动。
开发者对待需求工程的态度可分“被动型”、“主动型”和“领先型”三种,只有后 两种才有可能开发出成功的产品。
– “被动型”是指开发者被动地对待需求工程中的各项活动,能 少干则少干,能偷懒则偷懒。他们认为需求是用户的事情而不 是自己的事情。开发过程中经常发生需求变更,导致产品迷失 方向,不是半途而废就是陷入半死不活的状态。
精选课件
3
1. 什么是需求
1.1 需求的基本概念
宽泛地讲,需求来源于用户的一些“需要”,这些“需要”被分析、确认 后形成完整的文档,该文档详细地说明了产品“必须或应当”做什么。
所以如果只有一些零碎的对话、资料或邮件,你就以为自己已经掌握了需 求,那是自欺欺人。
1.2 需求的重要性
Frederick Brooks在他1987年经典文章“No Silver Bullet”中阐述了需 求的重要性:
软件过程管理
-Ch.4 软件过程的需求管理
精选课件
1
软件过程的需求管理
开发软件系统最为困难的部分就是准确说 明开发什么。
——弗雷德里克·布鲁百度文库斯
精选课件
2
理解
1. 什么是需求 2. 了解客户、最终用户、间接用户 3. 需求工程基本概念 4. 需求开发的主要困难与对策 5. 如何开展需求调查 6. 如何进行需求分析 7. 什么是好的需求规格说明书 8. 如何定义产品需求 9. 需求管理:确认、跟踪、变更控制
用户需求(user requirement) 文档描述了用户使用系统而完成的任务的集合, 用户需求在用户案例(user case)文档或方案脚本中予以说明。收集和分析 用户需求是不容易的,因为很多需求是隐形的,很难获取,更难保证需求完整, 而需求又是易变的,这就要求用户和开发人员进行充分地交流。
功能需求(functional requirement)定义了开发人员必须实现的软件功能, 它源于用户需求。功能需求是软件需求说明书中最重要的部分之一,它在开 发、测试、质量保证、项目管理以及相关项目功能中都起了重要的作用。非 功能需求描述了系统展现给用户的行为和执行的操作等,包括要遵从的业务 规则、人机接口、安全性和可靠性等要求。
公司新员工上产品培训课,有位小领导匆匆赶来作指示:“隔壁班正 在给电信局的员工们进行培训,他们都是上帝派来的,大家要注意 形象。由于休息室空间有限,请大家自觉让位。午休时他们可以躺 着睡,我们只能坐在位置上打个盹儿…….。”
2.4 重视“间接用户”,千万别“大意失荆州”
间接用户既不掏钱买该软件产品,也不使用该软件,但是它可能对软 件产品有很大的影响。
例如,财务软件开发商在把“财务软件”卖给客户之前,这个“财务 软件”必须得到国家财政部的批准。否则即使该软件的功能是完美 的,但却被政府认为是非法的。所以国家财政部就是所有财务软件 的间接用户,它不仅不付钱给财务软件开发商,反而要收取鉴定费、 手续费等。
同理,市面上流通的信息安全软件精选、课件杀病毒软件必须得到国家公安部6 的批准,否则软件开发商被逮住后戴上“非法经营”的帽子就惨了。
与客户打交道的主要目的是:一是获取需求,二是签合同。不要把钱仍到水里。
精选课件
5
2. 了解客户、最终用户、间接用户
2.3 即使最终用户不是上帝,也算是“上帝”的“亲戚”,同样怠慢不 得。
如果项目规模比较大,那么开发方与最终用户的来往就比较多。如从 最终用户那里获取详细的需求,请最终用户试验软件,对最终用户 进行培训等等。
3. 需求工程基本概念
3.1 什么是需求工程
把所有与需求直接相关的活动通称为需求工程。 需求工程中的活动可分为两大类,一类属于需求开发,另一类属
于需求管理。 需求工程的结构图
精选课件
7
软件需求工程
所有与需求直接相关的活
动统称为需求工程,需求工程 分为了两个部分:需求开发和 需求管理。其中,需求开发又 分为了需求获取、需求分析、 需求定义和需求验证4个部分, 而需求管理则包含了变更控制、 版本控制、需求跟踪和需求状 态跟踪
2.2 客户是掏钱买软件的人,所以他是“上帝”
某饭店经理在解释“先有鸡还是先有蛋”这个哲学问题时,精辟地阐述了客户的 地位:
如果顾客先点鸡,那么就先有鸡;如果顾客先点蛋,那么就先有蛋。
“现代营销学之父”菲利普•科特勒所著的《市场营销导论》是这样描述客户的:
客户永远是本公司的座上客。客户并不依赖我们,而我们却依赖客户。 客户不是我们工作的障碍,而是我们工作的目标。我们并不因为服务于 他而对他有恩,他却因为给予我们服务于他的机会而有恩于我们。客户 不是我们要与之争辩和斗智的人。从未有人曾在与客户的争辩中获胜。 客户是把他的欲望带给我们的人,因此我们的工作就是满足这些欲望, 从而使客户和我们共同获益。
国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌不停地开
发。
精选课件
4
2. 了解客户、最终用户、间接用户
2.1 基本概念
“用户”(user)是一种泛称,它可细分为“客户”(customer)、“最终用户” (the end user)和“间接用户”(或称为关系人)。
掏钱买软件的用户称为客户,而真正操作软件的用户叫最终用户。客户与最终用 户可能是同一个人也可能不是同一个人。
开发软件系统最困难的部分就是准确说明开发什么。最困 难的概念性工作是编写出详细的需求,包括所有面向用户、 面向机器和其它软件系统的接口。此工作一旦做错,将会 给系统带来极大的损害,并且以后对它修改也极为困难。
需求是产品的根源,需求工作的优劣对产品影响最大。就像一条河流,如 果源头被污染了,那么整条河流也就被污染了。
精选课件
软件需求包括三个不同的层 次:业务需求、用户需求和功 能需求(也包括非功能需求)。
8
软件需求工程
业务需求(business requirement)反映了组织机构或客户对系统、产品的 概括的目标要求,它在项目视图与范围文档中予以说明。主要的目的是对企业 目前的业务流程进行评估,得出一个业务前景。业务需求的确定对后面的用户 需求和功能需求起到了限制作用。