CMMI on line

做中国最专业的CMMI网站!
欢迎光临 CMMI on line 登录 | 注册 | 帮助
in 搜索

需求开发(Requirements Development)

本主题共有 20 篇回复,最新回复发表于 11-05-2008, 20:31,作者 zhangcb
页 1 / 2 (21 项)   1 2 下一页 >
帖子排序: 上一主题 下一主题
  •  10-08-2006, 1:17 197

    Yes [Y] 需求开发(Requirements Development)

    在开始之前,请大家先看看以下两个关于需求开发例子的帖:
    http://cmmionline.net/forums/thread/181.aspx
    http://cmmionline.net/forums/thread/182.aspx

    CMM的时候,是没有需求开发这个PA的,需求开发和需求管理有什么区别呢?

    需求管理强调的是需求的确认以及需求变更的控制,而需求开发讲究的是用系统的方法获取真正的全面的能实现的需求。
    以上两个关于需求开发的例子,都是反面教材,都没有能很好地把握需求,一个没有抓住问题的关键,一个没有能找到真正的需求提供者来获取需求。

    CMMI和CMM相比,增加了很多专门针对软件工程的PA,其中需求开发(RD)就是其中之一。需求开发这个PA,从很高的层次描述了如何做好需求开发。要理解好本PA,需要先理解清楚以下几个关键的概念:
    1)客户需求(Customer Requirements)
    2)产品需求(Product Requirements)
    3)产品组件需求(Product Component Requirements)
    客户需求是可以理解成客户为什么要做本系统,要解决什么问题,客户对系统有怎样的期望,希望能具备一些怎样的特点,简单的说,就是客户的需要是什么。
    产品需求是能满足客户需求,并对软件产品规格进行了详细描述的需求,软件设计师可以根据产品需求进行设计、编码等工作。
    产品组件需求,是对产品需求的进一步细化,产品可能会分割成几个子系统、几个部分,每个子系统每部分要具备怎样的功能、要具备怎样的性能、接口要求等,这些可以认为是产品组件需求。

    从另外一个角度,需求可以分为功能性需求和非功能性需求两类,功能性需求就是系统具备怎样的功能,能做什么事情,而非功能性需求就是指系统要具备怎样的性能、安全级别等方面的要求。客户需求、产品需求和产品组件需求,都会包含功能需求和非功能需求。

    以前面提到的“短信订餐系统”为例,其实这个系统,客户需求很简单,就是要解决部分员工不方便订餐的问题。我们看到,如果我们没有抓住这个客户需求,一开始就认为非要做一个短讯系统,那么就会陷入例子的陷阱中。要解决这个客户需求,办法之一就是做短讯订餐系统,但更合适的办法可能就是打电话回公司让别人代订午饭了。
    我们很多需求开发没有做好的原因,大部分是没有把握好客户需求,直接进入软件的细节,去讨论要做什么功能,界面要怎样设计去了,而忘记了软件的根本目的是为了解决什么问题。

    当我们明确客户需求后,就应该把客户需求转变成产品需求和产品组件需求,客户需求一般都是比较高层次的,而且描述也会比较简单,不能作为日后验收的标准,我们需要对软件的规格进行说明。一般来说,我们写的软件规格说明书都会包含产品需求和产品组件需求的。我们导出产品需求和产品组件需求的时候,要注意产品需求和产品组件需求,必须和客户需求对应起来,通常是多对多的关系。为什么要对应起来?我们要保证,软件的每一个界面,每一个功能都是有用的,都是“源自”客户需求的,这样才能保证我们做的事情都是正确的事情,防止被不相干的事情干扰。

    我们经常抱怨客户的需求在变,其实80%的原因是没有把握住客户需求,其实客户经常变的是产品需求或者是产品组件需求,客户需求是很少变的,就是因为我们没有把握住客户到底想要什么、需要什么,导致我们认为客户太难“服侍”了。只有把握住客户真正的需求,我们才能抓住根本,万变不离其中。

    接着下来,我们将从每个SG和每个SP来详细讲解需求开发这个PA。


    CMMIonline 版权所有
    欢迎转载,但请给出指向本网站的链接:
    http://www.cmmionline.net
    版权声明见:
    http://cmmionline.net/forums/thread/1340.aspx
  •  10-08-2006, 22:41 199 回复至 197

    回复: 需求开发(Requirements Development)

    RD有三个SGSG1开发客户需求,SG2开发产品需求,SG3分析和确认需求。
    前两个SG讲述的是需求开发由顶而下、由粗到细的过程,SG3讲述的是需求分析和确认的过程。下面详细阐述:

    SG1: Stakeholder needs,expectations,constraints,and interfaces are collected and translated into customer requirements.
    干系人的需要、期望、约束和接口要求被收集并转化为客户需求。

    SP 1.1: Elicit stakeholder needs,expectations,constrains,and interfaces for all phases of the product life cycle.
    导出干系人对整个产品生命周期各阶段的需要、期望、约束和接口要求等。这句话要包含了几个要点:

    1)
    干系人:干系人除了指甲方的领导、系统的最终用户,还包括使用本系统的第三方以及与本系统有交互的第三方系统的拥有者、使用者等。
    2)
    产品生命周期各阶段:干系人对系统的期望不一定只限于软件功能的,可能还包括数据的整理、资料录入、安装培训、维护要求等,干系人可能对软件生产的过程阶段都会提出他的要求,获取需求的时候,要注意干系人在软件生命周期不同阶段有什么要求。
    3)
    需要、期望、约束、接口要求:甲方一般会对系统的目标、范围、解决什么问题、希望系统具备怎样的一些特性,满足一些什么接口要求和约束条件等,都会有大致的想法。需求调研工作,首先要注意搞清楚这些内容。
    4)
    导出:客户的原始想法可能是不明确的,或者是客户一时难表达完整的,我们需要用一定的方法,让客户能完整无遗漏准确地表达出他的想法。通常我们可以通过原型、图示、类比、问卷等办法来导出客户的需求。

    SP 1.2: Transform stakeholder needs,expectations,constraints,and interfaces into customer requirements.
    转化干系人的需要、期望、约束和接口要求为客户需求。

    SP1.1
    讲述的是通过一些方法记录客户原始的需求信息,而SP1.2讲述的就是把客户原始的需求信息整理成正式的客户需求,通常会包括对系统目标、范围、解决问题、软件特性、接口要求等有详细的描述。

    SG2: Customer requirements are refined and elaborated to develop product and product-components requirements.
    客户需求是精确和详细的,以用来开发产品需求和产品组件需求。

    SG1
    讲述的是导出客户需求,而SG2讲述的是由客户需求到产品需求、产品组件需求的过程。

    SP 2.1: Establish and maintain product and product-component requirements,which are based on the customer requirements.
    建立和维护产品和产品组件需求,这些产品和产品组件需求是基于客户需求的。产品和产品组件需求,是比较细致的需求,会详细描述软件与用户是怎样交互的,用户需要输入什么,系统会输出什么等都会比较详细描述出来。而客户需求一般只描述能实现什么功能、解决什么问题等,比较高层次。

    客户需求一般是难以验证是否已实现的,而产品需求和产品组件需求是对软件规格的描述,是可以用来做为验收的标准的。

    SP 2.2: Allocate the requirements for each product component.
    分配需求给每一个产品组件。

    这个SP将需求开发与技术解决方案联系起来,所有的需求应该与设计的产品组件对应起来,保证需求驱动后续的设计工作,同时也保证设计都是为了需求服务的。SP2.2是对SP2.1的进一步细化。

    SP 2.3: Identify interface requirements
    定义接口需求。接口需求包括系统与第三方的系统的接口要求,也包括系统本身各组件、各子系统、各部分之间的接口要求。通常这些接口需求在客户需求级别的时候,并不是很明细,需要对客户需求进一步细分成产品需求、产品组件需求,然后发掘出接口需求。SP2.3也是对SP2.1的进一步深化。

    SG3: The requirements are analyzed and validated,and a definition of required functionality is developed.
    需求被分析和确认,并定义出具体的功能性需求。

    SP 3.1: Establish and maintain operational concepts and associated scenarios.
    建立和维护操作场景及相关情景。

    SP 3.2: Establish and maintain a definition of required functionality.
    建立和维护功能定义。

    SP3.1SP3.2是对需求描述的要求,要求描述出具体需求的操作场景、上下文,具体的操作步骤,对功能的详细描述等。通常我们可以通过UMLUse Case图或者是序列图等来表达这些内容。

    SP 3.3: Analyze requirements to ensure that they are necessary and sufficient.
    分析需求以确认需求是必须和充分的。

    SP 3.4: Analyze requirements to balance stakeholder needs and constrains.
    分析需求平衡以平衡干系人的需要和约束。

    SP3.3SP3.4是对需求的准确性、全面性、可实现性方面的要求,除了要取得全面准确地需求,还需要平衡约束条件,保证需求在约束条件下是可实现的。

    SP 3.5: Validate requirements to ensure the resulting product will perform as intended in the user's environment using multiple techniques as appropriate.
    用各种合适的方法确认需求,确保最终产品能在用户的环境中按照设想运行。

    这是需求开发的最后一步了,需求导出过程中尽管用了很多办法,但需求确认的时候,仍然需要采取办法确保获取的需求是符合最终的使用场景要求。

    SP3.3SP3.4SP3.5,通常是通过需求评审来满足的。


    CMMIonline 版权所有
    欢迎转载,但请给出指向本网站的链接:
    http://www.cmmionline.net
    版权声明见:
    http://cmmionline.net/forums/thread/1340.aspx
  •  07-10-2007, 15:13 690 回复至 197

    回复: 需求开发(Requirements Development)

    谢谢张总的精彩讲解!

    我觉得CMMI关于需求开发讲得还是非常清晰,但我们实际做起来总是存在问题。比如就我们公司来说,我已经跟了3、4个项目,总的感觉在需求开发阶段,项目组对客户需求缺乏清晰的思路,也没有这方面的概念,往往直接就跳到了产品需求和产品组件需求的开发上。

  •  07-10-2007, 15:24 691 回复至 197

    回复: 需求开发(Requirements Development)

    另外,想问一下张总:

    我们现在有个项目,是给电信做的,一些需求都是我们提出来的,客户对于“为什么要做本系统,要解决什么问题,对系统有怎样的期望,希望能具备一些怎样的特点”这些问题自己也不清楚,可能需要我们自己来确定,在这种情况下,我们的客户需求该怎么做?这个项目的风险是不是非常大?

  •  07-10-2007, 22:06 693 回复至 690

    回复: 需求开发(Requirements Development)

    CMMI对于需求开发的指导还是很明确的,不过需求开发这个事情,就不一定人人都有能力做好,对需求开发调研者的要求还是蛮高的。

    对于你们的这种情况,有这样的一些建议:
    1.找一两个厉害的人参与到你们的需求调研中。
    2.做一个原型给客户展示,看看客户到底想要什么。
    3.如果有部分需求比较明确,先把这部分做出来给客户用,看看客户到底想要什么。


    CMMIonline 版权所有
    欢迎转载,但请给出指向本网站的链接:
    http://www.cmmionline.net
    版权声明见:
    http://cmmionline.net/forums/thread/1340.aspx
  •  07-10-2007, 22:24 694 回复至 691

    回复: 需求开发(Requirements Development)

    看上去这个项目风险可能真的会比较大:(

    不过我有个疑问,这个项目客户真的是没有一个人知道自己想要什么吗?那当初这个合同是如何签的?客户的哪一位领导决策做这个项目的?这个人可能就是关键人物。

    另外一个方面,有可能客户真的不是很知道自己想要什么的,或者是有些地方清楚有些不太清楚。这个时候项目组就要起到顾问、专家这样的作用,要处于客户的角度来思考什么是客户所需要的。其实客户不知道自己想要什么,不一定是坏事来的,项目组可以更好地引导客户。项目组可以先分析出客户最需要的基本功能,先把这部分做出来,然后再添加新的功能,做新的版本。这个过程中,注意要控制好成本和客户的期望,不要超出合同的预算了。


    CMMIonline 版权所有
    欢迎转载,但请给出指向本网站的链接:
    http://www.cmmionline.net
    版权声明见:
    http://cmmionline.net/forums/thread/1340.aspx
  •  07-11-2007, 9:47 696 回复至 693

    回复: 需求开发(Requirements Development)

    张总的这几个建议也是我们正在做的,我们计划8月初做出Demo版,在此基础上再继续开发。
  •  07-11-2007, 10:19 697 回复至 694

    回复: 需求开发(Requirements Development)

    zhangcb:

    看上去这个项目风险可能真的会比较大:(

    不过我有个疑问,这个项目客户真的是没有一个人知道自己想要什么吗?那当初这个合同是如何签的?客户的哪一位领导决策做这个项目的?这个人可能就是关键人物。

    另外一个方面,有可能客户真的不是很知道自己想要什么的,或者是有些地方清楚有些不太清楚。这个时候项目组就要起到顾问、专家这样的作用,要处于客户的角度来思考什么是客户所需要的。其实客户不知道自己想要什么,不一定是坏事来的,项目组可以更好地引导客户。项目组可以先分析出客户最需要的基本功能,先把这部分做出来,然后再添加新的功能,做新的版本。这个过程中,注意要控制好成本和客户的期望,不要超出合同的预算了。

    感谢张总的及时答复!

    这个合同是我们公司高层和电信的高层确定下来的,应该还没签。需求调研的对象是中层经理,他们对这个系统并不是很清楚,只有一些零星的想法。我们项目组现在分成两组,一组继续需求调研,另一组做原型。

    目前,公司高层要求这个项目按照CMMI的方式来运作。项目组虽然已经立项,但我觉得最后并不一定能真正签下合同,至少在8月份之前还确定不下来,因此不打算控的太紧,这个阶段尽量不干扰项目组。这个阶段我是这样打算的,帮我看看有没有疏忽的地方或者更好的办法:

    在CM方面,建立配置库,要求项目组所有的配置项必须要入库。我们公司在这方面很薄弱,大部分项目组都没有配置环境,文档/代码都是开发人员保管。所以配置管理要首先做,要不然我连着力点都找不到;在PP/PMC方面,要求他们至少要有mpp的计划,每周要提交周报,开例会,写会议纪要;在需求方面,要求和客户交互的资料要入库,要完成两份需求文档(客户需求和产品需求)。需求评审怎么做还没想好 ,以前过CMMI评估的时候,项目组需求文档的评审都走了过场,因为只有项目组内部人员参加而缺乏外部人员(比如测试人员、客户或资深专家)参与的评审很难达到效果;至于QA方面,目前不打算控的太紧,等到这个项目正式确定了再说。

  •  07-11-2007, 15:05 701 回复至 694

    回复: 需求开发(Requirements Development)

    我的理解是,不少的客户不到项目最后的交付时刻不知道他们自己想要什么。所以需求总是在变,这也就要求项目组有相当资深的分析师来“开发”他们需求。我的理解这是需求开发和需求管理最本质的区别。


    -=P.CHi=-
  •  07-12-2007, 0:02 707 回复至 697

    回复: 需求开发(Requirements Development)

    yinge,看来你们的做法相当不错,抓住了最开始进行过程改进的几个关键方面:配置管理、计划、需求!

    对于需求评审走过程的问题,我想最基本要做到以下三点:
    1.项目组内要理解一致并达成一致,项目组成员包括项目经理、开发、测试。
    2.需求文档或者需求文档中关键的地方要和自己的领导确认。需求直接影响工作量,而且是否超出合同的范围等,这些需要和自己的领导确认。
    3.要和客户理解一致并达成一致。
    不一定在一个评审会上满足以上要求的,一般是要分开3步来做的。

    如果要改善目前的情况,可以考虑让测试人员参加需求评审,项目组达成一致后,再和自己的领导确认,最后和客户讲解此文档,取得客户的确认。


    CMMIonline 版权所有
    欢迎转载,但请给出指向本网站的链接:
    http://www.cmmionline.net
    版权声明见:
    http://cmmionline.net/forums/thread/1340.aspx
  •  07-12-2007, 10:44 708 回复至 707

    回复: 需求开发(Requirements Development)

    zhangcb:

    yinge,看来你们的做法相当不错,抓住了最开始进行过程改进的几个关键方面:配置管理、计划、需求!

    对于需求评审走过程的问题,我想最基本要做到以下三点:
    1.项目组内要理解一致并达成一致,项目组成员包括项目经理、开发、测试。
    2.需求文档或者需求文档中关键的地方要和自己的领导确认。需求直接影响工作量,而且是否超出合同的范围等,这些需要和自己的领导确认。
    3.要和客户理解一致并达成一致。
    不一定在一个评审会上满足以上要求的,一般是要分开3步来做的。

    如果要改善目前的情况,可以考虑让测试人员参加需求评审,项目组达成一致后,再和自己的领导确认,最后和客户讲解此文档,取得客户的确认。

    张总给了我醍醐灌顶,看来我一不小心又陷入误区,把评审这种手段当成了目的。上面提到的三点应该是我们做需求评审的目的,或者是我们要达到的目标,在达到这个目标的前提下,来灵活设计我们的需求评审。以前的做法是倾向于通过一次评审达到三个目的,所以做起来总有不顺的感觉。

    根据以前参加评审的经历,测试人员参与评审会对评审质量有非常大的提高,他们会对需求的准确性、完备性、有效性乃至详细程度提出很多中肯的意见,促使需求人员完善他们的需求。公司目前的测试体系很不健全,建立完善的测试体系,也是我向公司建议中最关键的一条。

  •  07-12-2007, 11:01 709 回复至 197

    回复: 需求开发(Requirements Development)

    这两天在重新研读RD的条款,以前过CMMI评估的时候对RD的几个需求是稀里糊涂的,总是不清楚为什么要区分客户需求和产品需求。我觉得“短信订餐系统”这个例子比较经典,把为什么需要客户需求讲得比较透彻。在我们公司做需求的一些人中,很少有人有这两个概念,基本上一上来就直奔产品需求,我们EPG对这点认识也不到位,做出来的模板自己都觉得不对劲。
  •  04-13-2008, 13:14 1832 回复至 199

    回复: 需求开发(Requirements Development)

    CMMI 1.2对于SP1.1 : Elicit needs的描述中举例包括:

    Examples of sources of requirements that might not be identified by the customer
    include the following:
    • Business policies
    • Standards
    • Business environmental requirements (e.g., laboratories, testing and other
    facilities, and information technology infrastructure)
    • Technology
    • Legacy products or product components (reuse product components)

    对于这些例子,我不是特别理解,觉得这些描述的范围太大了,比如standards,指的是什么呢?能否请张总指点一下,非常感谢!

  •  04-14-2008, 22:13 1842 回复至 1832

    回复: 需求开发(Requirements Development)

    这些Example只是举例,并不要求你一定要这样。而要理解这些Example也不太容易,因为已经高度浓缩,我也并不能全部都理解。其实不同工作背景的人来看这部分内容的时候,有些人可能会理解Example 1、2、5,有些人可能会理解2、3、4,这些都很正常,你也没有必要因为某些不理解而“卡”在这里。

    要理解这个“standards”,要从SP1.1 Elicit needs的意思来出发,standards的可能意思是某些行业标准或者是业务标准,也就是要做这个项目需要遵循的一些业务标准或者行业标准。仅供参考,理解不一定对。


    CMMIonline 版权所有
    欢迎转载,但请给出指向本网站的链接:
    http://www.cmmionline.net
    版权声明见:
    http://cmmionline.net/forums/thread/1340.aspx
  •  07-19-2008, 0:02 7651 回复至 1842

    回复: 需求开发(Requirements Development)

    谢谢张总,您讲的实在太精彩了,这正是我一直寻找的CMMI讲解文档,我会继续拜读网站上的所有PA讲解!

    • 帖子点数:0
  •  07-19-2008, 0:30 7652 回复至 7651

    回复: 需求开发(Requirements Development)

    您好,张总!
    刚刚又读了一遍需求开发,有个问题向您请教。
    在CMMI英文版中SG 1 对应的关键实践除“导出需求”和“转换需求”外还有一条并列的实践(如下)是什么意思呢?
    SP 1.2-1 Develop the Customer Requirements

    Transform stakeholder needs, expectations, constraints, and interfaces into customer requirements.

     

     

     

  •  07-20-2008, 19:05 7707 回复至 7652

    回复: 需求开发(Requirements Development)

    你提到的SP1.2,本帖已经有说明了啊,不知道你的具体问题是什么?

    还有你提到“还有一条并列的实践”,我不是很明白。


    CMMIonline 版权所有
    欢迎转载,但请给出指向本网站的链接:
    http://www.cmmionline.net
    版权声明见:
    http://cmmionline.net/forums/thread/1340.aspx
  •  10-08-2008, 11:45 8655 回复至 197

    回复: 需求开发(Requirements Development)

    我有几处不明白

    是不是应该先有需求分析(RD),再有需求管理(RM),应该是有了需求后,才能对需求有更好的管理,这样理解对不对

    需求分析主要分为:客户需求,产品需求和产品组件需求,这三方面分别产生什么文档,是否都需要有工作产品?

    • 帖子点数:0
  •  10-12-2008, 21:18 8662 回复至 8655

    回复: 需求开发(Requirements Development)

    不是先有RD,再有RM的,所有PA其实是不同的方面的要求而已,没有严格的先后关系的。

    客户需求、产品需求和产品组件需求,没有规定一定产生怎么样的文档,自己公司可以各自规定。但是都需要有工作产品的,至于是否客户需求、产品需求和产品组件需求必须各自对应一个文档,这倒不一定,自己公司根据需要决定。

    要做好RD和RM,需要在这两方面有深刻理解和工作经验的人来“主刀”的,如果有这方面的经验,要理解好RD和RM其实不难的。


    CMMIonline 版权所有
    欢迎转载,但请给出指向本网站的链接:
    http://www.cmmionline.net
    版权声明见:
    http://cmmionline.net/forums/thread/1340.aspx
  •  11-05-2008, 10:28 8789 回复至 197

    回复: 需求开发(Requirements Development)

    需求分析的方法,我不是很明白,

    张老师能讲一下具体的吗,原型和问卷还是明白的,但做原型前也要对客户进行沟通

    一般会用什么工具来完成啊

页 1 / 2 (21 项)   1 2 下一页 >
以 XML 格式显示 RSS 新闻频道
CMMI on line 版权所有 ( 粤IC备07073557号)
Powered by Community Server, by Telligent Systems