新学期,新开始,我们总需要新的书籍来充实自我。这本书分为五部分,分别是绪论,需求获取,需求分析,需求的文档化和验证以及需求管理与工程管理。这本书是关于软件需求工程的专项著述,目标是从开发者的视角出发,侧重于实践者的技术与方法,系统地介绍需求工程的最新发展,促进需求工程领域理论、方法和技术的全面融合应用,指导需求工程各阶段的系统化实践。这本书从需求的获取,建模,文档化,验证以及管理等各个方面介绍了需求工程,是一本非常不错的书籍。
那么,这本书说的是需求工程是什么?简单来说,需求工程是所有需求处理活动的总和,它收集信息,分析问题,整合观点,记录需求并验证其正确性,最终反映软件被应用后与其环境互动形成的期望效应。从其定义来看,需求工程有三个主要任务:第一,需求工程必须说明软件系统将被应用的环境极其目标,说明用来达成这些目标的软件功能,还要说明在设计和实现这些功能时上下文环境对软件完成任务所用方式,方法所施加的限制和约束,也即要同时说明软件需要做什么和为什么需要做。第二,需求工程必须将目标,功能和约束反映到软件系统中,映射为可行的软件行为,并对软件行为进行准确的规格说明。需求规格说明是最为重要的成果,是项目规划,设计,测试。用户手册编写等很多后继软件开发阶段的工作基础。第三,现实世界是不断变化的世界,因此,需求工程还需要妥善处理目标、功能和约束随着时间的演化情况。同时,为了节省开支和进行需求规格说明的重用,需求工程还需要对目标,功能和约束在软件产品族中的演化和分布情况进行综合考虑与处理。
需求工程活动包括需求开发和需求管理两个方面。需求开发是因为需求工程的需求特性而存在的,他们是专门用来处理需求的软件技术,包括需求获取,需求分析,需求规格说明和需求验证4个具体的活动。需求管理是因为需求工程的工程特性而存在的,它的目的是在需求开发活动之后,保证所确定的需求能够在后继的项目活动中有效地发挥作用,保证各种活动的开展都符合需求要求。需求获取的目的是从项目的战略规划开始建立最初的原始需求。为此,他需要研究系统将来的的应用环境,确定系统的涉众,了解现有的问题,建立新系统的目标,获取为支持新系统目标而需要的业务过程细节和具体的用户需求。需求分析的目的是保证需求的完整性和一致性。它一需求获取阶段输出的原始需求和业务过程细节出发,将目标,功能和约束映射为软件行为,建立系统模型,然后在抽象后的系统模型中进行分析,标示并修复1其中的不一致缺陷,发现并弥补遗漏的需求。需求规格说明的目的是将完整的,一致的需求与能够满足需求的软件行为以文档的方式明确地固定下来,在文档中,可以使用非形式化的文本进行描述,还可以使用形式化的语言进行描述,描述的结果文档是将被提交进行需求验证的软件需求规格说明。需求验证是需求开发中的最后一个活动。它首要目的是保证需求及其文档的准确性,即需求正确地反映了用户的真实意图;它的另一个目标是通过检查和验证,保证需求及其文档的完整性和一致性。需求管理是对需求开发所建立的的需求基线的管理,它在需求基线完成之后正式开始,并在需求工程阶段结束之后继续存在。在设计,测试,实现等后继的软件系统开发在保证需求作用的持续,稳定发挥。它的主要工作是跟踪后继阶段中的需求分析与需求变更情况,确定需求得到了正确的理解并被正确地实现到了软件产品中。
系统需求开发的主要目的是为了获得整个系统的期望目标,包含功能特征和非功能特征。为此需要判断系统的涉众,采集他们的目标与要求,研究系统的环境,确定系统的约束,并进行一些整体性的需求分析。系统需求开发阶段的需求分析主要是分析系统的成本效率,分析系统的的组织和行政策略,处理互相依赖,冲突,重叠或不一致的涉众要求,检查并弥补需求缺失,检查技术储备,外部系统等环境约束。系统需求开发的结果会写入系统需求规格说明。