第4章需求定义阶段 需求是驱动整个软件开发的因素。如果无法准确了解需求,显然是无法开发 出让用户满意的软件产品来的。需求定义是所有软件项目取得成功的前提,它的 好坏直接关系着软件的成败,目前,软件项目中百分之四十至百分之六十的问题 都是需求分析阶段留下的隐患。但是,需求的获取存在困难性:需求存在于用户 的脑海中,软件开发者需要通过沟通和交流,理解用户的需求,进而以用户能够 理解的方式把需求记录下来:由于需求都是和领域相关的,而软件开发者并不是 领域专家,因此理解用户的需求存在一定的障碍:有时候,用户实际上对自己的 需求也不是很明确,往往要再看到系统之后才了解自己需要什么,不需要什么: 此外,需求在开发过程中会发生变更。鉴于需求获取的困难性和需求的重要性, 需要采用系统化的方法定义需求。 4.1需求定义阶段的主要内容 IEEE软件工程标准中将需求定义为: (1)用户为了解决问题或达到某些目标所需的条件或权能(Capability)。 (2)系统或部件为了满足合同、标准、规范或其它正式规定文档所规定的要求 而需要具备的条件或权能。 (3)反映上面(1)或(2)所描述的条件或权能的文档化表述。 从另一方面看,软件的需求又可以分为三个层次: 1、业务需求:反映了组织或客户对业务的高层次的目标要求。业务需求通 常来自项目投资者、实际用户的管理者或产品策划部门。开发软件都是为了达成 某种业务目标。业务需求一般在项目立项前就给以了定义。 2、用户需求:描述了用户使用软件产品必须要完成的任务或者满足的条件。 用户需求派生自业务需求,用户希望通过软件来达到业务上的目标或者满足业务 上的要求。 3、功能需求:定义了设计开发人员必须实现的软件的功能,使得用户能够 通过软件来完成他们的任务,从而也满足了用户需求和业务需求。 软件需求获取有不同的渠道和形式,以下是经常采用的形式: 面谈和问卷调查:通过和用户面对面的沟通进行需求获取是最经常采用的方第 4 章 需求定义阶段 需求是驱动整个软件开发的因素。如果无法准确了解需求,显然是无法开发 出让用户满意的软件产品来的。需求定义是所有软件项目取得成功的前提,它的 好坏直接关系着软件的成败,目前,软件项目中百分之四十至百分之六十的问题 都是需求分析阶段留下的隐患。但是,需求的获取存在困难性:需求存在于用户 的脑海中,软件开发者需要通过沟通和交流,理解用户的需求,进而以用户能够 理解的方式把需求记录下来;由于需求都是和领域相关的,而软件开发者并不是 领域专家,因此理解用户的需求存在一定的障碍;有时候,用户实际上对自己的 需求也不是很明确,往往要再看到系统之后才了解自己需要什么,不需要什么; 此外,需求在开发过程中会发生变更。鉴于需求获取的困难性和需求的重要性, 需要采用系统化的方法定义需求。 4.1 需求定义阶段的主要内容 IEEE 软件工程标准中将需求定义为: (1)用户为了解决问题或达到某些目标所需的条件或权能(Capability)。 (2)系统或部件为了满足合同、标准、规范或其它正式规定文档所规定的要求 而需要具备的条件或权能。 (3)反映上面(1)或(2)所描述的条件或权能的文档化表述。 从另一方面看,软件的需求又可以分为三个层次: 1、业务需求:反映了组织或客户对业务的高层次的目标要求。业务需求通 常来自项目投资者、实际用户的管理者或产品策划部门。开发软件都是为了达成 某种业务目标。业务需求一般在项目立项前就给以了定义。 2、用户需求:描述了用户使用软件产品必须要完成的任务或者满足的条件。 用户需求派生自业务需求,用户希望通过软件来达到业务上的目标或者满足业务 上的要求。 3、功能需求:定义了设计开发人员必须实现的软件的功能,使得用户能够 通过软件来完成他们的任务,从而也满足了用户需求和业务需求。 软件需求获取有不同的渠道和形式,以下是经常采用的形式: 面谈和问卷调查;通过和用户面对面的沟通进行需求获取是最经常采用的方