首页>参考读物>计算机科学与技术>软件工程及软件方法学

软件需求与估算
作者 : (印)Swapna Kishore,Rajesh Naik
译者 : 姜路 丁一夫 柳剑锋
出版日期 : 2004-01-01
ISBN : 7-111-12807-9
定价 : 35.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 315
开本 : 16开
原书名 : Software Requirements and Estimation
原出版社: McGraw-Hill
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书论述了软件工程中需求与估算这两大领域的概念、过程和著名方法,目的是引导广大从业人员和项目经理准确了解客户的需求,使用科学的方法对目标软件系统的规模、工作量、进度和成本做出合理的估算,从而能够在预算内按时保质地完成项目,提交对客户有用的软件产品。
  本书内容丰富、结构清晰、语言简洁,有助于项目经理和高级分析师正确地把握项目,帮助软件新手在其职业生涯的开始就正确理解和使用相关概念,从而顺利成功地完成项目。软件项目受许多因素的影响,这些总是可能导致进度和成本超出预算,并使所提交的软件质量低劣。研究表明,大量软件项目的失败皆归因于不好的需求定义、失控的需求改变以及不合理的估算。
  本书提供了需求工程和估算所需的信息。这两类活动都发生在项目的开始,并且是软件项目所面临的大部分问题的根本原因。需求是最初估算和计划的基础,而软件产品正是据此进行创建和验证的。使用不切合实际的估算进行的项目在一开始就会走错路。项目经理和任何试图在不切合实际的成本预算和人力预算范围内完成工作的人,要么把自己逼疯,要么会采取—条事后将被证明是代价高昂的“捷径”。无论哪种情况,所完成的项目都不会令人满意。
  需求工程和软件估算的语境
  需求工程活动,包括导出、分析,文档编制、改变管理和跟踪
  可以用于需求导出和分析的各种方法的描述
  软件需求规格说明的内容
  基于工作分解结构的详细估算
  系统化地改进组织需求和估算过程的完整框架
  可以用于需求和估算的工具和资源
  场景、示例、案例研究和练习

图书特色

Swapna Kishore毕业于印度理:工学院,获工学学士学位,并且获印度管理学院的硕士学位。她作为软件
工程师和项目经理已经超过20年,参加过许多软件项目。Swapna在Tata Consultant Services开始她的职业生
涯,现在是新德里市的一位咨询顾问。她感兴趣的领域包括软件项目管理和过程模型的使用。
  Rajesh Naik足印度Quality Assurance Institute Ltd.的咨向合伙人,在软件工程、项目管理和过程改进领域提供咨询和培训。他帮助软件组织实现质量和过程模型,例如Software CMM、People CMM和ISO 9001。Rajesh获得过工学学士学位并取得了信息系统管理专业的硕士学位。

图书前言

软件工程是为适应业界所面临的“软件危机”而作为一个学科出现的。ISO 9001和能力成熟度模型(来自软件工程研究所)所带来的在过程定义与改进上的最新进展是基于这样一种认识:更好的软件“过程”增加了成功的可能性。
  对于那些创造软件以及管理软件项目的人来讲,顺利运行项目的需求不能被低估。’任何在该领域有些经验的人都知道软件项目受制于许多可能毁灭整个项目的小错误。
  通常,软件从业人员忙于应付当前项目的压力,以及处理与之相关的问题,而无暇反思下次应以何种方式来将工作做得更好。
  多年以来,随着软件行业和软件工程与管理学科的共同发展,我们看到,现在软件项目在以一种更加系统化的方式进行。但是,从业人员并不总是有时间通过该领域中已被验证的发现来提高自身的技能。通过本书,我们寻求连接软件工程与管理两大重要领域的桥梁。
  本书覆盖了软件工程与管理中的两个领域——需求工程与估算,它们在项目开始的时候十分重要。研究表明,软件项目中的大部分失败都可以归因于拙劣的需求定义、失控的需求改变,以及不合理的估算。
  需求是最初的估算和计划的基础,也是创建并验证软件产品的基础。使用不切实际的估算结果进行计划和执行的项目,这在一开始就走错了路。项目经理和其他试图以不切实际的成本预算、人力预算和进度安排来完成工作的人,或者把自己逼疯,或者采取一条将在事后被证明是代价高昂的“捷径”。无论是哪种情况,事情都不会像人们期望的那样令人满意。
  尽管有许多书籍都讨论了需求工程或估算,但是并没有太多的书籍涉及这两个领域的结合。我们将这两个领域相结合的理由如下:
  》需求定义和估算当中的很大一部分活动都发生在项目的开始。
  》通常是同一个人(项目经理和其他高级项目团队成员)既负责需求定义又负责估算。
  》需求的质量决定了估算的准确性。
  》进行估算时所需的数据有时能促进更好的需求定义。
  》需求变更会导致重新估算。
  本书着眼于满足那些软件从业人员和项目经理的需要,他们想从项目一开始就处于一个相对轻松的环境之中,并且在预算内提交高质量的软件产品。项目经理和高级分析师可以使用本书帮助他们完成任务,软件新手可以将本书作为帮助理解的资源并从其职业生涯的一开始就正确使用这些概念。本书对概念的讲解深度合理,并且我们确实期望理解了这些概念的读者在工作中变得更加专业。
  本书结构如下:
  第1章介绍了本书的语境,给出了软件工程和生命周期模型的背景知识,并解释了需求与估算之间的关系。此章讨论了这两个领域的基本概念。
  第2章详细讨论了需求工程,列举了其中包含的各种活动,解释了有关需求的较为著名的方法与技巧。此章重点放在为需求创建的文档上:良好的需求文档的内容与属性。此外,还解释了在整个项目周期中所需的需求管理活动。
  第3章的主题是规模估算。对于任何一个项目,规模估算都是工作量、进度和成本估算的基础。功能规模估算通过三个最流行的模型进行了说明:IFPUG功能点、MarkⅡ功能点和完全功能点。此外,还描述了其他模型。讨论了使用LOC和Wideband Delphi进行的技术规模估算。对规模估算的讨论包括技术规模估算和功能规模估算
之间的转换,以及改变和维护项目的估算。
  第4章描述了估算的下一个阶段(以规模为基础的工作量、进度和成本的估算),讨论了生产率的概念以及影响它的因素。讨论的各种算法模型包括COCOMOⅡ和Putnam。还解释了用于项目人力配置的Rayleigh曲线。同时也描述了使用专家系统进行估算和使用类比进行估算。此章讨论了自底向上估算。此章最后列举了软件项目成本中的重要组件。
  讨论了这些概念之后,第5章把这些概念结合在一起并放进一个过程框架中,该框架可以用来定义和精炼需求与估算过程。这一过程的焦点是由软件工程研究所的软件能力成熟度模型中的基本概念所激发的。我们试图描述对于处于不同成熟度等级的组织与需求和估算相关的过程的特征。
  第6章讨论对需求与估算的自动化支持。首先讨论我们期望这些工具拥有的一般功能。我们列举了一些具体的工具及其简短描述和联系信息。
  第7章提供了可以用于这些领域的其他资源的信息。
  除这七章外,本书附录还为感兴趣的读者提供了一个案例研究。我们从一个系统开始,在附录A中提供了该系统的需求文档,以使读者能够对它进行评审。 
  然后,在附录B和附录C中用两种方法对同一个系统进行了规模估算。在附录D中对该系统的工作量和进度用COCOMO模型进行了计算。附录E中包含了练习,可供读者检查并增强自己的技能。  
  贯穿全书都有我们提供的场景,这些场景都基于我们生活中的真实经历,在这里用来帮助解释书中的概念。
  我们感谢Tata McGraw-Hill的每一位在本书出版过程中帮助过我们的人。
  Swapna Kishore
  Rajesh Naik

作者简介

(印)Swapna Kishore,Rajesh Naik:暂无简介

译者简介

姜路 丁一夫 柳剑锋:暂无简介

译者序

需求和估算是软件项目的基础,只有准确了解客户的需求,以之为基础,并使用科学的方法对目标软件系统的规模、工作量和进度做出合理的估算,我们才能在预算内按时侏质顺利地完成项目,提交对客户有用的软件产品。然而,需求工程和估算作为软件项目基础的两大领域却常常被软件专业人员所忽略。
  本书介绍了软件工程中需求与估算这两大重要领域中的各种著名方法,目的是满足软件从业人员特别是项目经理的需要,让他们从项目一开始就处于一个相对轻松的环境之中,并且在预算内提交高质量的软件产品。项目经理和高级分析师可以使用本书帮助他们完成任务,软件新手可以把本书作为有助于理解的资源,并从其职业生涯的一开始就正确使用这些概念。
  我们衷心希望理解了这些概念的读者在工作中变得更加专业。
  本书第1、2章及附录由姜路翻译;第3、4章由丁一夫翻译;第5、6、7章由柳剑锋翻译。全书由张罡审校。在此,非常感谢张罡,他对译稿的完成发挥了重要的作用。
  由于时间仓促,译者水平有限,译稿难免存在错误和疏漏,欢迎读者批评指正,并希望与对需求工程和估算感兴趣的朋友共同研究探讨。我们的电子邮件地址是:req_esti@hotmail. com。
  译 者
  2003年6月
  北 京

图书目录

第1章 软件需求与估算的语境
1.1 软件危机
1.2 软件和软件工程
1.3 软件生命周期
1.3.1 瀑布软件生命周期模型
1.3.2 V型生命周期模型
1.3.3 原型生命周期模型
1.3.4 增量生命周期模型
1.3.5 快速应用开发模型
1.3.6 螺旋生命周期模型
1.4 软件项目
1.5 软件项目中的管理活动
1.6 组织的过程导向
1.7 好的开始是成功的一半
1.8 需求工程
1.9 软件估算
1.10 本书结构
第2章 需求工程
2.1 什么是需求工程
2.2 需求导出
2.2.1 发现事实
2.2.2 需求收集
2.2.3 评估
2.2.4 确定优先级
2.2.5 统一
2.3 需求导出技巧
2.3.1 受控的需求表达
2.3.2 基于问题的信息系统
2.3.3 面向特征的领域分析
2.3.4 联合应用设计
2.3.5 原型
2.3.6 质量功能实施
2.3.7 软件系统方法学
2.4 需求分析
2.5 需求分析模型
2.5.1 数据流图
2.5.2 实体关系图
2.5.3 对象-类图
2.5.4 状态转换图
2.5.5 用例
2.6 需求文档化
2.6.1 软件需求规格说明的特征
2.6.2 软件需求规格说明的内容
2.6.3 软件需求规格说明的常见问题
2.7 需求评审
2.7.1 连续评审
2.7.2 阶段结束评审
2.7.3 需求签字
2.8 需求管理
2.8.1 改变管理过程
2.8.2 维护需求的可跟踪性
2.9 小结
第3章 规模估算
3.1 两种规模估算观点
3.2 功能点分析
3.2.1 计算开发功能点
3.2.2 计算增强功能点
3.2.3 功能点的优点
3.2.4 功能点的缺点
3.3 MARK Ⅱ FPA
3.4 完全功能点
3.5 其他功能点扩展
3.5.1 特征点
3.5.2 对象点
3.5.3 3-D功能点
3.6 近似功能点计算
3.6.1 快速FPA计数
3.6.2 快速应用程序业务量估算
3.6.3 NESMA估算和象征性FP
3.7 功能规模度量的发展方向
3.7.1 功能规模度量的ISO标准
3.7.2 COSMIC
3.8 LOC估算
3.8.1 系统分解结构
3.8.2 自由讲座和Wideband Delphi估算法
3.9 两种规模度量之间的转换
3.10 转换和维护的规模估算
3.11 小结
第4章 工作量、进度和成本估算
4.1 什么是生产率
4.2 估算因素
4.2.1 规模和工作量
4.2.2 进度和工作量
4.2.3 品质与工作量和进度
4.2.4 影响生产率的其他因素
4.3 软件项目的行为--Rayleidgh曲线
4.4 工作量和进度估算的方法
4.5 Mark II FP估算
4.6 COCOMO Ⅱ
4.6.1 合成应用程序模型
4.6.2 初期设计和后构架模型
4.6.3 复用和维护工作量估算
4.6.4 需求易变性说明
4.7 COCOMO组的其他模型
4.7.1 COCOTS
4.7.2 CORADMO
4.7.3 COQUALMO
4.7.4 COSSEMO
4.7.5 COPROMO
4.8 COCOMO 81
4.8.1 基础模型
4.8.2 中级模型
4.8.3 具体模型
4.9 Putnam估算模型
4.10 复杂度算子
4.11 其他的算法模型
4.12 类比估算
4.13 自底向上的估算
4.13.1 工作分解结构
4.13.2 Widehand Delphi估算方法
4.14 成本估算
4.14.1 工作人员成本
4.14.2 硬件和软件
4.14.3 通信和差旅
4.14.4 项目组培训
4.15 验证软件估算
4.16 小结
第5章 过程框架
5.1 过程成熟度
5.2 需求工程的成熟度
5.2.1 高成熟度等级
(4级和5级)特征
5。2.2 转向2级
5.2.3 3级特征
5.2.4 成熟度的使能者
5.3 估算的成熟度
5.3.1 高成熟度等级
(4级和5级)的特征
5.3.2 转向2级
5.3.3 3级的特征
5.3.4 成熟度的使能者
5.4 需求使用的数据库
5.5 估算使用的数据库
5.5.1 数据库内容
5.5.2 度量尺度标准程序
5.5.3 更多有关收集工作量数据的信息
5.6 模型校准
5.7 重要参与人
5.7.1 分析师
5.7.2 用户
5.7.3 开发者的管理层
5.7.4 估算师
5.7.5 项目组成员
5.8 需求的戒律
5.8.1 不要忽视其他方面
5.8.2 理解领域
5.8.3 理解需求及不良情况
5.8.4 不要着急
5.8.5 不要认为一切是显而易见的
5.8.6 不要暗自操作
5.8.7 要学会说"不"
5.8.8 团队工作
5.8.9 不要期待分析师来读取你的想法
5.8.10 没有严格的SRS评审就不要签字认可
5.9 估算的戒律
5.9.1 不要为满足预算而估算
5.9.2 不要玩"因为他会打对折而加倍开价"的游戏
5.9.3 不要炫耀
5.9.4 不要玩数字游戏
5.9.5 不要过分精确
5.9.6 要现实,而不要处在过去的状态
5.9.7 避免健忘--忽视并不是祝福
5.9.8 说出实情
5.9.9 不要压迫人给出较少估算
5.9.10 不要太贪婪
5.10 小结
第6章 工具
6.1 需求管理工具应具备的特征
6.2 一些需求管理工具
6.2.1 Caliber-RM
6.2.2 RDD
6.2.3 XTie-RT
6.2.4 Vital Link
6.2.5 RequisitePro
6.2.6 DOORS
6.2.7 QSSRequireIT
6.2.8 icConcept/RTM Workshop
6.2.9 CRADLE
6.3 软件估算工具应具备的特征
6.3.1 规模估算
6.3.2 工作量和进度估算
6.3.3 成本估算
6.3.4 贯穿整个生命周期的估算和项目管理
6.3.5 使用的模型
6.3.6 接口/集成
6.3.7 为组织进行定制
6.4 一些有用的软件估算工具
6.4.1 SLIM
6.4.2 Function Point Workbench
6.4.3 KnowledgePLAN
6.4.4 CA-Estimacs
6.4.5 PQMPlus
6.4.6 Project Bridge Modeler
6.4.7 Function Point Manager
6.4.8 Results Management v5.0
6.4.9 Estimate Professional
6.4.10 Costar
6.4.11 USC的COCOMO II工具
6.4.12 ANGEL
6.4.13 Before You Leap
第7章 工业资源
7.1 国际功能点用户绢
7.2 Metrics Practices Committee,UK
7.3 UQAM-SEMRL
7.4 通用软件度量国际联盟
7.5 国际标准化组织
7.5.1 ISO 14143
7.5.2 ISO 9001--ISO 9000-3
7.6 软件工程研究所
7.7 IEEE
7.8 国际软件基准标准组的基准服务
7.9 INCOSE
7.10 COCOMO
7.11 量化软件管理
7.12 QAI
7.13 软件生产率研究室
7.14 其他培训者和咨询组织
附录A
附录B
附录C
附录D
附录E
参考文献

教学资源推荐
作者: 主编 窦万峰 参编 李亚楠 潘媛媛 林燕平
作者: 吕云翔 王洋 王昕鹏 编著
作者: 荣国平 张贺 邵栋 等编著
参考读物推荐
作者: 美国太阳微系统公司
作者: (美)Capers Jones
作者: [美]Tom Taormina,Keith A.Brewer