理清需求的层次(软件需求管理二)

    软件需求有三个不同的层次:1.业务需求;2.用户需求;3.系统需求、功能需求、非功能需求。

 

    业务需求(Business requirement)表示组织或客户高层次的目标。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围(vision and scope)文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求(project charter 或 market requirement)文档。

 
    用户需求(user requirement)描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件-响应卡都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。

 
    功能需求(functional requirement)规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求(behavīoral requirement),因为习惯上总是要描述系统最终应该实现哪些具体的行为。功能需求描述的是开发人员需要实现什么。

 
    系统需求(system requirement)用于描述包含多个子系统的产品(即系统)的顶级需求。系统可以只包含软件系统,也可以既包含软件又包含硬件子系统。人也可以是系统的一部分,因此某些系统功能可能要由人来承担。实际编制中,系统需求可能体现为功能需求描述之前的一些概括性的文字。


    非功能性需求(Non-functional requirement)是与功能性需求相对的,有功能性需求,必然会(显示的或者隐含的)有非功能性需求。非功能性需求是指依一些条件判断系统运作情形或其特性,而不是针对系统特定行为的需求。非功能性需求也可以视为为了满足客户业务需求而需要符合,但又不在功能性需求以内的特性。包括安全性、可靠性、互操作性、健壮性、易使用性、可维护性、可移植性、可重用性、可扩充性等等。

 

    容易造成混乱的是这些需求之间的关系。为此,我们可以简单描述如下:管理人员或市场营销人员(关键的项目干系人)负责定义软件的业务需求,以提高公司的运营效率(对信息系统而言)或产品的市场竞争力(对商业软件而言)。所有的用户需求都必须符合业务需求。需求分析员从用户需求中推导出产品应具备哪些对用户有帮助的功能,并表述为系统需求、功能需求、非功能需求等。开发人员则根据系统需求、功能需求来设计解决方案,在约束条件的限制范围内实现必需的功能,并达到非功能需求规定的质量和性能等指标。

 

 

你可能感兴趣的:(研发管理)