软件过程的需求管理PPT.ppt
《软件过程的需求管理PPT.ppt》由会员分享,可在线阅读,更多相关《软件过程的需求管理PPT.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件过程管理软件过程管理-Ch.4 软件过程的需求管理软件过程的需求管理1 软件过程的需求管理软件过程的需求管理开发软件系统最为困难的部分就是准确说明开发软件系统最为困难的部分就是准确说明开发什么。开发什么。弗雷德里克弗雷德里克布鲁克斯布鲁克斯2理解理解1.什么是需求什么是需求 2.了解客户、最终用户、间接用户了解客户、最终用户、间接用户3.需求工程基本概念需求工程基本概念4.需求开发的主要困难与对策需求开发的主要困难与对策5.如何开展需求调查如何开展需求调查6.如何进行需求分析如何进行需求分析7.什么是好的需求规格说明书什么是好的需求规格说明书8.如何定义产品需求如何定义产品需求9.需求管理
2、:确认、跟踪、变更控制需求管理:确认、跟踪、变更控制31.什么是需求什么是需求1.1需求的基本概念需求的基本概念宽泛地讲,需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整的文档,该文档详细地说明了产品“必须或应当”做什么。所以如果只有一些零碎的对话、资料或邮件,你就以为自己已经掌握了需求,那是自欺欺人。1.2需求的重要性需求的重要性Frederick Brooks在他1987年经典文章“No Silver Bullet”中阐述了需求的重要性:n开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工
3、作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。需求是产品的根源,需求工作的优劣对产品影响最大。就像一条河流,如果源头被污染了,那么整条河流也就被污染了。国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌不停地开发。42.了解客户、最终用户、间接用户了解客户、最终用户、间接用户2.1 基本概念基本概念“用户”(user)是一种泛称,它可细分为“客户”(customer)、“最终用户”(the end user)和“间接用户”(或称为关系人)。掏钱买软件的用户称为客户,而真正操作软件的用户叫最终用户。客户与最终用户可能是同一个人也可能不是同一个人。2.2 客户是掏钱买软件
4、的人,所以他是客户是掏钱买软件的人,所以他是“上帝上帝”某饭店经理在解释“先有鸡还是先有蛋”这个哲学问题时,精辟地阐述了客户的地位:n如果顾客先点鸡,那么就先有鸡;如果顾客先点蛋,那么就先有蛋。“现代营销学之父”菲利普科特勒所著的市场营销导论是这样描述客户的:n客户永远是本公司的座上客。客户并不依赖我们,而我们却依赖客户。客户不是我们工作的障碍,而是我们工作的目标。我们并不因为服务于他而对他有恩,他却因为给予我们服务于他的机会而有恩于我们。客户不是我们要与之争辩和斗智的人。从未有人曾在与客户的争辩中获胜。客户是把他的欲望带给我们的人,因此我们的工作就是满足这些欲望,从而使客户和我们共同获益。与
5、客户打交道的主要目的是:一是获取需求,二是签合同。不要把钱仍到水里。52.了解客户、最终用户、间接用户了解客户、最终用户、间接用户2.3 即使最终用户不是上帝,也算是即使最终用户不是上帝,也算是“上帝上帝”的的“亲戚亲戚”,同样怠慢不,同样怠慢不得。得。如果项目规模比较大,那么开发方与最终用户的来往就比较多。如从最终用户那里获取详细的需求,请最终用户试验软件,对最终用户进行培训等等。公司新员工上产品培训课,有位小领导匆匆赶来作指示:“隔壁班正在给电信局的员工们进行培训,他们都是上帝派来的,大家要注意形象。由于休息室空间有限,请大家自觉让位。午休时他们可以躺着睡,我们只能坐在位置上打个盹儿.。”
6、2.4 重视重视“间接用户间接用户”,千万别,千万别“大意失荆州大意失荆州”间接用户既不掏钱买该软件产品,也不使用该软件,但是它可能对软件产品有很大的影响。例如,财务软件开发商在把“财务软件”卖给客户之前,这个“财务软件”必须得到国家财政部的批准。否则即使该软件的功能是完美的,但却被政府认为是非法的。所以国家财政部就是所有财务软件的间接用户,它不仅不付钱给财务软件开发商,反而要收取鉴定费、手续费等。同理,市面上流通的信息安全软件、杀病毒软件必须得到国家公安部的批准,否则软件开发商被逮住后戴上“非法经营”的帽子就惨了。63.需求工程基本概念需求工程基本概念3.1 什么是需求工程什么是需求工程把所
7、有与需求直接相关的活动通称为需求工程。需求工程中的活动可分为两大类,一类属于需求开发,另一类属于需求管理。需求工程的结构图 7软件需求工程软件需求工程 所有与需求直接相关的活动统称为需求工程,需求工程分为了两个部分:需求开发和需求开发和需求管理需求管理。其中,需求开发又分为了需求获取、需求分析、需求定义和需求验证4个部分,而需求管理则包含了变更控制、版本控制、需求跟踪和需求状态跟踪 软件需求包括三个不同的层次:业务需求、用户需求和功业务需求、用户需求和功能需求能需求(也包括非功能需求)。8软件需求工程软件需求工程l业务需求业务需求(business requirement)反映了组织机构或客户
8、对系统、产品的概括的目标要求,它在项目视图与范围文档中予以说明。主要的目的是对企业目前的业务流程进行评估,得出一个业务前景。业务需求的确定对后面的用户需求和功能需求起到了限制作用。l用户需求用户需求(user requirement)文档描述了用户使用系统而完成的任务的集合,用户需求在用户案例(user case)文档或方案脚本中予以说明。收集和分析用户需求是不容易的,因为很多需求是隐形的,很难获取,更难保证需求完整,而需求又是易变的,这就要求用户和开发人员进行充分地交流。l功能需求功能需求(functional requirement)定义了开发人员必须实现的软件功能,它源于用户需求。功能需
9、求是软件需求说明书中最重要的部分之一,它在开发、测试、质量保证、项目管理以及相关项目功能中都起了重要的作用。非功能需求描述了系统展现给用户的行为和执行的操作等,包括要遵从的业务规则、人机接口、安全性和可靠性等要求。93.需求工程基本概念需求工程基本概念3.4需求工程的一些感悟需求工程的一些感悟 u不论是合同项目还是自主研发的产品,都必须开展需求开发和需求管理活动。u开发者对待需求工程的态度可分“被动型”、“主动型”和“领先型”三种,只有后两种才有可能开发出成功的产品。“被动型”是指开发者被动地对待需求工程中的各项活动,能少干则少干,能偷懒则偷懒。他们认为需求是用户的事情而不是自己的事情。开发过
10、程中经常发生需求变更,导致产品迷失方向,不是半途而废就是陷入半死不活的状态。“主动型”是指开发者积极地开展需求工程中的各项活动。他们把获取准确的需求当作自己的职责,会想尽一切办法克服需求开发和需求管理过程中的困难,而不是找借口推卸责任。俗话说“良好的开端是成功的一半”,“主动型”需求工程是开发成功产品的必备条件。“领先型”是需求工程的最高境界。开发者发掘了连用户自己都没有意识到的需求,导致用户跟着新产品跑而不是新产品围着用户转,这叫引导消费。需求工程做到这个份上,才能使产品立于不败之地,长盛不衰。4.需求开发的主要困难与对策需求开发的主要困难与对策4.1知识技能问题知识技能问题u应用域的知识是
11、无边无际的,任何人都不可能是“万事通”。俗话说“隔行如隔山”,需求分析员可能是某一领域的专家,但当他接手陌生的业务时,他可能是个“无知”者。一个企业要谋求发展,不能总在做老的业务。人一生中会有许多充满挫折的“第一次”,不可以逃避。u当需求分析员缺乏应用域知识时,他该怎么办?首先他要有勇气做事,否则连实践的机会都没有。其次他应当赶紧补习应用域知识,不论是通过自学还是培训的方式,否则他很难与用户交流。如果可能的话,开发方最好请既懂软件又懂应用域知识的行家来帮忙。4.2态度问题态度问题u相当多的开发人员习惯于被动地对待需求开发。每当遇到麻烦、挫折时,他们会发牢骚,找出一堆用户的毛病。很多开发人员错误
12、地以为:需求是用户的事情,不是我们的事情。我们为用户开发软件,难道用户不该告诉我们应当开发什么吗?如果用户说不清楚需求,或者经常变更需求,这类问题是用户产生的,应当由他们自己负责。u用户说不清楚需求或者需求发生变更,这些都是常见的问题,并不是绝症,是人们可以设法解决的。可悲的是开发人员把这些问题当成了借口,不愿主动攻克问题,导致需求问题扩散到整个软件开发过程,产生太多的后患。u软件企业的领导应当给具有错误观念的开发人员们洗脑:需求分析员的天职就是在有限的时间内获取准确而细致的用户需求,如果做不到就是失职,不要找借口。4.需求开发的主要困难与对策需求开发的主要困难与对策4.3合作关系合作关系 u
13、如果需求分析员不能与用户建立良好的合作关系,那么他们在需求开发过程中会很疲惫。u倘若用户不能很好地配合需求分析员,那并不表示他是个坏蛋。因为用户有他自己的想法:我回答了你们的问题,讲了该讲的。我们付钱给你们,难道还要我伺候你们不成?我还要干自己的事情,别打扰我了。你们自己想办法把活干好吧。u对于一些竞标项目,在合同未签订之前的需求开发工作尤为困难。用户未必会买你的产品,他不会投入很多精力来协助你搞需求开发。u需求分析员不是销售人员,他们不可能象销售人员那样通过某些手段笼络住用户就能成功。出色的需求分析员不仅要有过硬的专业知识,还要具备较强的交流、沟通能力。u开发方与用户的合作关系对需求开发而言
14、是至关重要的。对于重大的、复杂的项目,我们不能完全期望双方能够自发地建立起良好地合作关系,这样风险太大。u开发方和用户方在开展需求开发之前,双方协商并撰写“用户在需求工程中的权利与义务”,即以协议的方式确定合作关系。“好话”和“丑话”都说在前头,这样能减少今后的摩擦。如果条件允许的话,开发方最好为用户举办关于需求工程的培训,这样的培训将使用户明白需求的重要性以及忽视需求的危害性,从而促使他们积极友善地参加需求工程中的各项活动。4.需求开发的主要困难与对策需求开发的主要困难与对策u用户在需求工程中的“权利”1.有权要求开发方派遣资质合格的需求分析员和相关人员。2.有权要求开发方采用用户熟悉的语言
15、来描述需求,即开发方必须提供用户看得懂得需求文档。3.有权审查需求文档,并对有争议的需求作出决策。如果认为需求文档不能准确地反映用户真实的意愿,可以拒绝在需求文档上签字。4.如果用户想要变更需求,有权要求开发方对该变更将产生的影响作出真实可信的评估,以便用户决定是否变更需求。u用户在需求工程中的“义务”1.以积极友善的态度与开发方人员交流、协作,尽可能地为开发方人员提供工作和生活上的便利。2.乐意接受需求分析员的采访,在不泄漏机密的前提下尽可能地回答需求分析员的问题。3.在不泄漏机密的前提下,尽可能地向需求分析员提供与需求相关的材料。4.与需求分析员共同评审需求文档,确保需求文档准确地反映用户
16、真实的意愿。4.需求开发的主要困难与对策需求开发的主要困难与对策4.4用户说不清楚需求用户说不清楚需求 u用户说不清楚需求是普遍现象,这是让开发人员头痛的大问题。u有些用户真的不知道需求是什么,或者对需求只有朦胧的感觉,他当然说不清楚需求。例如开发方的营销人员水平比较高,他能够在用户不清楚自己要什么的情况下引导用户“消费”。例如前些年全国各地的很多政府机构大搞网络建设。这些机构的领导和办公人员大多数不清楚网络干什么用,就让开发人员替他们设想需求吧,反正是花公家的钱。u有些用户虽然心里明白想要什么,但却说不清楚需求。比如说买鞋子。我们非常了解自已的脚,但很难用语言说清楚脚的大小和形状。通常拿鞋子
17、去试,试穿时感觉到舒服才会买鞋。u需求分析员绝不能以用户说不清楚需求为借口而草率地对待需求开发工作,否则会连累整个开发团队的。u无论是什么原因导致用户说不清楚需求,需求分析员必须设法搞清楚用户真正的需求,这是需求分析员的职责,也是职业的挑战。4.需求开发的主要困难与对策需求开发的主要困难与对策4.5双方误解需求双方误解需求 u人们在交流的时候,经常会发生“问非所求,答非所问”的事情。u有时用户会把开发人员的建议或答复给想歪了:有一个软件开发人员滔滔不绝地向用户讲解在“信息高速公路上做广告”的种种好处,用户听得津津有味。最后,心动的用户对软件开发人员说:“好得很,就让我们马上行动起来吧。请您决定
18、广告牌的尺寸和放在哪条高速公路上,我立即派人去做。”u而用户表达的需求,不同的开发人员可能有不同的理解。如果需求分析员误解了需求,那会导致后续的不少开发人员将错就错、白干活。就像作文写跑题了,写得再好也白搭。这类错误连高智商的外星人都不能避免:有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓门极大,在夜里双眼能射出强光。有趣的是,车里住着一种叫作人的寄生虫,这些寄生虫完全控制了车。”u不论是复杂的项目还是简单的项目,需求分析员和用户都有可能误解需求。所以需求确认工作(属于需求管理)必不可少。4.需求开发的主要困难与对策需求开发的主要困
19、难与对策4.6开发人员写不好需求文档开发人员写不好需求文档 u需求调查工作不充分,获取的需求信息太少或者太乱,以至于写不成需求文档。古时候,一书生在考试前补习“写文章”,成天愁眉苦脸。其夫人甚为不解,问:“相公,你写文章比我生小孩还难吗?”书生长叹一声:“娘子你哪里知道我的难处啊!你生小孩时肚子里有东西,可我写文章时肚子里没东西啊。”所以要想写出好的需求文档,前提条件是把需求调查工作做好。u开发人员写作能力比较差,虽然在调查过程中已经获得了不少需求信息,却写不出好的需求文档来。可以毫不夸张地说,国内90以上的软件开发人员,他们的写作能力远不及开发能力。提高开发人员写作能力的根本办法就是让他们多
20、练习写文档,熟能生巧。另外,企业应当提供合适的文档模板以及比较好的示例文档,尽可能地降低写作难度。4.需求开发的主要困难与对策需求开发的主要困难与对策4.7用户经常变更需求用户经常变更需求 u需求变更通常会对项目的进度、人力资源、经费产生很大的影响,这是开发商非常畏惧的问题。u如果在项目开发的初始阶段,开发人员和用户没有搞清楚需求或者搞错了需求,到了项目开发后期才将需求纠正过来,导致产品的部分内容需要重新开发。毫无疑问,这种需求变更将使项目付出额外的代价。这种损失是由于双方工作失误造成的,双方应当好好反省,认真学习需求开发和管理的方法,避免再犯相似的错误。u如果由于市场变化而导致产品需求发生变
21、更,开发商大可不必为此烦恼,应当高兴才对。倘若市场静如死水,那么开发商吃了“上一顿”就没有“下一顿”。正因为市场在变化,才会产生更多商机,聪明的开发商才会有活干,有钱赚。u其实需求变更并不可怕,可怕的是需求变更失去控制,导致项目混乱。所以需求变更控制是需求工程的重要活动。需求开发需求开发需求开发的目的是通过调查与分析,获取用户需求并定义产品需求。需求开发的目的是通过调查与分析,获取用户需求并定义产品需求。获取数据获取数据分析、处理分析、处理目标系统模型目标系统模型需求获取需求获取系系统统分分析析员员从数据流和数据结构出发,从数据流和数据结构出发,找出系统各元素之间的联找出系统各元素之间的联系、
22、接口特征及设计限制、系、接口特征及设计限制、能否满足功能需求能否满足功能需求18需求获取概述需求获取概述需求获取是通过各种途径获取用户的需求信息(原始材料),产需求获取是通过各种途径获取用户的需求信息(原始材料),产生生用户需求说明书用户需求说明书。19需求获取的方法需求获取的方法需求研讨会需求研讨会头脑风暴头脑风暴用例模型用例模型访谈访谈角色扮演角色扮演原型法原型法20基于用例的需求获取基于用例的需求获取执行者的识别执行者的识别l谁使用系统的主要功能?l谁将提供、使用和删除信息?l谁负责维护、管理并保持系统正常运行?l谁会对某一特定需求感兴趣?l系统的外部资源是什么?l系统需要和哪些外部系统
23、交互?用例的识别用例的识别l某个执行者要求系统为其提供什么功能?该执行者需要做哪些工作?l执行者需要阅读、创建、销毁、更新或存储系统中哪些(类)信息?l系统中的事件一定要告之执行者吗?执行者需要告诉系统一些什么吗?那些系统内部的事件从功能的角度代表什么?l由于新功能的识别,执行者的日常工作被简化或效率提高了吗?l系统需要什么样的输入输出?输入在哪里?输出去往哪里?l该系统的当前情况存在哪些问题?21课堂案例:学生学籍处理业务课堂案例:学生学籍处理业务学生学籍处理业务学生学籍处理业务每学期开学时,各学办进行注册管理,注册信息记录在在校生信息卡中。学生转专业由本人向所在系提出申请,教务处审批。n在
24、本系内转专业,由学生所在系考核同意,报教务处审批;n在学校范围内转专业(跨系),由学生所在系推荐,拟转入系考核同意,报教务处审批。n转专业手续应在每学年开学前办理。22课堂案例:学生学籍处理业务课堂案例:学生学籍处理业务23需求定义需求定义需求定义指的是解释涉众需求需求定义指的是解释涉众需求,并根据需求规并根据需求规模整理成对要构建系统的明确的说明。模整理成对要构建系统的明确的说明。u前景文档是用一般的语言定义系统特征的文档前景文档是用一般的语言定义系统特征的文档u软件需求规格说明书是用更专业的术语定义系统特软件需求规格说明书是用更专业的术语定义系统特征的文档。征的文档。24软件需求规格说明书
25、软件需求规格说明书0.文档介绍文档介绍0.1文档目的文档目的0.2文档范围文档范围0.3读者对象读者对象0.4参考文档参考文档0.5术语与缩写解释术语与缩写解释1.产品介绍产品介绍提示:提示:(1)说明产品是什么,什么用途;说明产品是什么,什么用途;(2)介绍产品的开发背景。介绍产品的开发背景。2.产品面向的用户群体产品面向的用户群体提示:提示:(1)描述本产品面向的用户描述本产品面向的用户(客户、最终客户、最终用户用户)的特征;的特征;(2)说明本产品将给他们带来什么好处?特们选择本产品的说明本产品将给他们带来什么好处?特们选择本产品的可能可能性有多大?性有多大?3.产品应当遵循的标准或规范
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 过程 需求 管理 PPT
限制150内