《需求工程——软件建模与分析》阅读笔记之一
IEEE对需求定义为:①用户为了解决问题或达到某些目标所需要的条件或能力。②系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力。③对①或②中的一个条件或一种能力的一种文档化表述。通过这个定义了解了需求并不是用户想要的,想实现的,了解了需求本质的内涵。
功能需求是软件系统需求中最常见、最主要和最重要的需求,同时也是最为复杂的需求。功能需求通常体现为三个层次:业务需求、用户需求、系统需求。
业务需求描述了组织为什么要开发系统,满足用户的业务需求。业务需求是用户需要在业务上使自己更加方便的开展工作的需求。
用户需求表达了用户对系统的期望,但是要透彻和全面地了解用户的真正意图,仅仅拥有期望是不够的,还需要期望的背景知识。因此,对所有的用户需求,都应该有充分的问题域知识作为背景支持。而在实际工作中,用户表达自己的期望时,通常不会提及需求所涉及问题域知识,所以需求工程需要根据用户的需求整理完整的问题域知识。
系统需求是用户对系统行为的期望,一系列的需求联系在一起可以帮助用户完成任务,达到用户需求,进而满足业务需求。需求工程可以直接映射为系统行为,定义了系统中需要实现的功能,描述了开发人员需要实现什么。
将用户需求转化为系统需求的过程,在该过程中,首先需要分析问题领域的特性,从中发现问题域和计算机系统的共享知识,建立系统的知识模型。然后将用户需求部署到系统模型中,即定义系列的系统行为,让它们联合起来实现用户需求,每一个系统行为即为一个系统需求。
需求工程的应执行的路线:1.问题分析:明确问题;定义业务需求;制定解决方案及系统特性。2.需求获取 3.需求分析 4.文档化和验证。需求工程的执行路线简明地展示了一个需求工程如何运行的流程,也了解了需求工程的整个过程。
书中也列举了常见的需求定义错误,更好地解释了之前需求的定义,也更加让我们了解了需求的定义,以及产生需求定义错误的原因,通过分析原因可以让我们在实际过程中注意到并且避免。也可以有更好的方法来避免这些错误。
需求工程活动:1.需求获取;2.需求分析;3.需求规格说明;4.需求验证;5.需求管理
需求获取是从人、文档或者环境中获取需求的过程。在需求获取中,需求工程师需要执行的任务包括:1.收集背景资料;2.定义项目前景和范围;3.选择信息的来源;4.选择获取方法,执行获取;5.记录获取结果。
需求分析的主要工作室通过建模来整合各种信息,从而使人们更好地理解问题。在需求分析阶段,需求工程师主要的任务包括:1.背景分析;2.确定系统边界;3.需求建模;4.需求细化;5.确定优先级;6.需求协商
需求规格说明:获取的需求需要被编写成文档,其中项目前景和范围文档记录记录业务需求、用户需求分析记录用户需求、系统需求被写入需求规格说明记录系统需求。需求工程师在这个阶段的主要工作包括:1.定制文档模板;2.编写文档
需求验证:为了保证以上标准的,满足,需求规格说明文档,尤其是最终定稿的需求规格说明文档,在传递给相关人员之前要进行严格的验证。需求验证阶段的主要任务包括:1.执行验证;2.问题修正
需求管理:需求管理会进行变更控制,纳入和实现合理的变更请求,拒绝不合理的变更请求,控制变更的成本和影响范围。需求管理阶段的主要任务包括:1.建立和维护需求基线集;2.建立需求跟踪信息;3.进行变更控制
这一部分详细介绍了需求的定义及分类,需求过程的活动,使我们了解了需求工程的作用和意义,明确了软件需求的来源和去向。还针对需求工程中理论与实践并重的现状,对理论、技术和实践方法进行了融合。