基本信息

编辑推荐
本书在概要介绍了需求工程的历史背景、基本原理和一些基本概念之后,按需求工程中开发和管理过程的顺序较详尽地介绍了各个阶段的任务、步骤、方法和技术,在介绍过程中结合了许多典型实例。此外,本书还介绍了需求工程中近几年所研究出和正在研究的一些新理论和新方法.
内容简介
作译者
目录
序言
前言
教学建议
第1章 需求工程概述
1.1 需求工程的重要性
1.2 什么是软件需求
1.3 软件需求的分类
1.4 需求规格说明
1.5 需求工程定义
1.6 其他一些基本概念
第2章 软件工程与需求工程
2.1 软件工程
2.2 软件开发过程模型
2.2.1 瀑布式模型
2.2.2 快速原型模型
2.2.3 渐增式模型
2.2.4 螺旋式模型
2.2.5 面向对象的开发模型
2.3 需求工程在软件开发中的地位
前言
随着计算机应用的不断发展和深入,人们需要收集和处理的信息规模急剧增大,其中计算机软件在信息收集和处理中起着至关重要的作用。由于软件已成为信息基础设施并具备密集型特点,使得软件一方面日益成为人们生活中的一部分,如电子政府、电子商务和手机等,人们也日益依赖软件。另一方面,一些高尖端的技术领域,如航空航天、国防军事等领域,对软件的质量提出了很高的要求。然而,软件开发的开发状况和质量远未达到人们的期望和要求,例如,大部分软件产品不能在预期计划和预算经费内完成,软件的质量低下等。软件质量所导致的软件故障和失效,常常对人们的工作和生活带来诸多不便,甚至造成重大损失。虽然产生上述问题的原因有很多,但软件需求问题可以说是其中的一个最大原因。许多人经过研究发现,当软件开发项目失败时,软件需求问题通常正是核心问题。因此,在软件开发过程中,必须极早和有效地发现和解决与软件需求相关的问题。
在很长一段时间里,人们并没有充分认识到软件需求的作用,软件工程界也一直没有将需求工程作为一个独立的部分进行深入的分析和研究。直到20世纪90年代中期,随着软件系统开发中出现的诸多问题,人们才逐渐认识到软件需求在整个软件开发中的重要性。通过一系列关于软件需求的重要学术会议进行广泛深入的研究和讨论,才使得需求工程作为一门独立的子学科正式形成。需求工程是指应用工程化的方法、技术和规格来开发和管理软件的需求。需求工程的目标就是要获取高质量的软件需求。与软件工程中传统的需求分析概念相比,需求工程突出了工程化的原则,强调以系统化、条理化和可重用的方法和技术进行与软件需求相关的活动,从而有利于提高所有与软件需求相关的活动及其过程的可管理性,降低需求开发和管理的难度和成本。..
本书共分为12章。第1章概要地介绍了需求工程的历史背景、基本原理和一些基本概念。第2章介绍了几种软件的开发过程模型、需求工程在软件工程和软件开发中的重要地位以及软件需求的开发和管理过程。第3~9章按需求工程中开发和管理过程的顺序介绍各个阶段的任务、步骤、方法和技术。其中,由于在需求工程中形式化理论的研究是相当重要的内容,故第7章重点介绍在需求分析和需求定义中使用的一些基本理论和一些形式化描述方法。第10章和第11章主要讨论和介绍需求工程中近几年所研究出的新理论和新方法,如面向问题域的需求建模方法和面向多视点的需求工程方法。尽管这些新理论和新方法尚未实用化,但它们促进了需求工程的研究和发展。最后,第12章概要地介绍了需求工程与软件管理的关系,以及如何根据需求安排开发进度和估算工作量的方法。
基于需求工程在软件开发中的重要地位,软件开发人员有必要学习和了解需求工程的有关知识。目前,国外有关需求工程的教材和专业书籍已有很多,我国也出版了一些需求工程的翻译书籍。这些都是为了提高人们对需求工程重要性的认识,以及更进一步推动有关需求工程的理论、方法和技术的研究和实践。本书的编者们多年来一直从事需求工程方面的研究和教学实践,特别是本书的第一作者在武汉大学软件学院以多届计算机专业和非计算机专业的研究生为对象进行了有关需求工程课程的讲授。本书也是根据该课程的讲义和学生们的建议,以及一些相关的资料编写而成的。在编写过程中,本书也参考了国内出版的一些教材和翻译书籍。在此,谨向这些书的作者们表示衷心的感谢。编者们希望此书有助于从事软件开发的专业人士和计算机专业的学生们的工作和学习,并从中获得一些有益的知识。
本书适合作为计算机专业高年级本科生和研究生的教材,也可供具有一定实践经验的软件开发人员和计算机用户等参考和自学。不过,本书中部分内容是关于形式化理论和新方法方面的介绍,需要较好的理论基础和参考其他方面的资料,故建议在教学中应根据学生的具体情况有选择地讲授本书的内容,如可在讲授中跳过第7章和第10章等。此外,需求工程是一门实践性较强的课程,虽然本书没有给出习题和思考题,但讲授需求工程课程的老师可根据本书的内容设置一些习题和思考题,读者可在本书的基础上结合软件开发中的一些具体实例进行实验和实践。
在本书的写作过程中,除封面署名外,刘小丽、张帆和万黎等参与了部分工作,特别是机械工业出版社华章分社的有关人员给予了极大的支持和帮助。此外,本书也得到国家高技术研究计划(863计划)的资助,借此表示衷心的感谢。
由于需求工程诞生的时间相对较为短暂,还处于发展过程中,加之编者们的水平有限,错误在所难免,恳请多多指教。...
作者
2008年7月
于武汉
序言
为配合《规范》的实施,落实中央“提高高等教育质量”的精神,我们规划了“面向计算机科学与技术本科专业规范系列教材”。本系列教材面向全新的计算学科,针对我国高等院校逐步向新的计算机科学与技术专业课程体系过渡的趋势编写,在知识选择、内容组织和教学方法等方面满足《规范》的要求,并与国际接轨。本套教材具有以下几个特点:
(1) 体现《规范》的基本思想,满足其课程要求。为使教材符合我国高等院校的教学实际,编委会根据《规范》的要求规划本套教材,广泛征集在国内知名高校中从事一线教学和科研工作、经验丰富的优秀教师承担编写任务。..
(2) 围绕“提高教育质量”的宗旨开发教材。为了确保“精品”,本系列教材的出版不走盲目扩大的路子,每本教材的选题都将由编委会集体论证,并由一名编委担任责任编委,最大程度地保证这套教材的编写水准和出版质量。
(3) 教材内容的组织科学、合理,体系得当。本套教材的编写注重研究学科的新发展和新成果,能够根据不同类型人才培养需求,合理地进行内容取舍、组织和叙述,还精心设计了配套的实验体系和练习体系。
(4) 教材风格鲜明。本套教材按4个专业方向统一规划,分批组织,陆续出版。教材的编写体现了现代教育理念,探讨先进的教学方法。
(5) 开展教材立体化建设。根据需要配合主教材的建设适时开发实验教材、教师参考书、学生参考书、电子参考资料等教辅资源,为教学实现多方位服务。
我们衷心希望本系列教材能够为我国高等院校计算机科学与技术等专业的教学作出贡献,欢迎广大读者广为选用。...
书摘
1.1 需求工程的重要性
随着计算机应用的不断发展和深入,软件系统的日益大型化、复杂化,软件的开发成本越来越高,软件开发的风险也越来越大。Standish集团公司的研究报告称:在美国,每年用于软件开发的费用在一千多亿美元以上,其中,大型公司开发一个软件项目的平均成本为232.2万美元,中等大小的公司为133.1万美元,小型公司则为43.4万美元。调查显示,31%的项目在完成之前被取消,进一步研究的结果还表明:52.7 %的项目实际所花费的成本为预算成本的189%。根据该公司的另一项分析,项目失败或严重超支的8个最重要原因中有5个都与需求相关:即需求不完整、缺乏用户的参与、客户期望不实际、需求和需求规格说明的变更和提供许多不必要的功能。
一些具体的案例令人触目惊心:伦敦股票交易项目TAURUS,在花费了数百万英镑之后于1993年被取消(项目失败的总损失估计达到几亿英镑)。调查结果显示,许多问题源于未能协调那些不一致的需求。Swanick空中交通控制系统原计划在1998年完工,但直到2001年尚未交付使用,额外开支高达1亿英镑以上。经官方调查,发现其中的一个主要原因在于“缺乏健壮的需求规格说明导致无法继续进行系统实现。
与此同时,另外的一些调查和研究显示:一个与需求相关的错误发现和解决越迟,其修复的代价越昂贵。A.Davis研究发现,在需求阶段检查和修复一个错误所需的费用只有编码阶段的1/5到1/10,而在维护阶段做同样的工作所需付出的代价却是编码阶段的20倍。这意味着在维护阶段修复一个错误的代价与需求阶段修复一个同样的错误的代价的比值可高达200:1。
诸如此类的调查研究目前已有很多。虽然项目失败涉及的原因多种多样,但正如R.Glass所说,“项目需求无疑是在软件项目前期造成麻烦的一个最大原因。一个又一个的研究已经发现,当项目失败时,需求问题通常正是核心问题”。因此,在软件开发过程中,必须极早、有效地发现和解决与需求相关的问题。
……