前 言
随着计算机应用的不断发展和深入,人们需要收集和处理的信息规模急剧增大,其中计算机软件在信息收集和处理中起着至关重要的作用。由于软件已成为信息基础设施并具备密集型特点,使得软件一方面日益成为人们生活中的一部分,如电子政府、电子商务和手机等,人们也日益依赖软件。另一方面,一些高尖端的技术领域,如航空航天、国防军事等领域,对软件的质量提出了很高的要求。然而,软件开发的开发状况和质量远未达到人们的期望和要求,例如,大部分软件产品不能在预期计划和预算经费内完成,软件的质量低下等。软件质量所导致的软件故障和失效,常常对人们的工作和生活带来诸多不便,甚至造成重大损失。虽然产生上述问题的原因有很多,但软件需求问题可以说是其中的一个最大原因。许多人经过研究发现,当软件开发项目失败时,软件需求问题通常正是核心问题。因此,在软件开发过程中,必须极早和有效地发现和解决与软件需求相关的问题。
在很长一段时间里,人们并没有充分认识到软件需求的作用,软件工程界也一直没有将需求工程作为一个独立的部分进行深入的分析和研究。直到20世纪90年代中期,随着软件系统开发中出现的诸多问题,人们才逐渐认识到软件需求在整个软件开发中的重要性。通过一系列关于软件需求的重要学术会议进行广泛深入的研究和讨论,才使得需求工程作为一门独立的子学科正式形成。需求工程是指应用工程化的方法、技术和规格来开发和管理软件的需求。需求工程的目标就是要获取高质量的软件需求。与软件工程中传统的需求分析概念相比,需求工程突出了工程化的原则,强调以系统化、条理化和可重用的方法和技术进行与软件需求相关的活动,从而有利于提高所有与软件需求相关的活动及其过程的可管理性,降低需求开发和管理的难度和成本。
目 录
第1章 需求工程概述
1.1 需求工程的重要性
1.2 什么是软件需求
1.3 软件需求的分类
1.4 需求规格说明
1.5 需求工程定义
1.6 其他一些基本概念
第2章 软件工程与需求工程
2.1 软件工程
2.2 软件开发过程模型
2.3 需求工程在软件开发中的地位
2.4 软件需求的开发和管理过程
第3章 需求获取
3.1 确定需求开发计划
3.2 确定项目的目标和范围
3.3 确定调查对象
3.4 实地收集需求信息
3.5 确定非功能需求
3.6 在收集需求信息中应注意的问题
3.7 使用场景技术的需求获取
第4章 需求分析
4.1 建立系统关联图
4.2 分析需求的可行性
4.3 构建用户接口原型
4.4 确定需求的优先级
4.5 需求建模
4.6 建立数据词典