| 作者 |
| 郑人杰 马素霞(美)罗杰S. 普莱斯曼(Roger S. Pressman) (美)布鲁斯 R. 马克西姆(Bruce R. Maxim) |
| 丛书名 |
| 面向CS2013计算机专业规划教材 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782002072184 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------软件工程概论(第3版)--------------------------- 本书作者针对软件工程的学科特点,注重结合实例讲解软件工程的理论与方法,避免抽象和枯燥的论述,在兼顾传统的结构化方法的同时,注重当前广为采用的面向对象和敏捷开发方法,新版加入了新型的软件开发方法,例如开源软件、智能化软件、微服务。强调软件质量、软件安全和软件从业人员的职业道德和专业素质。 ---------------------------软件工程:实践者的研究方法(原书第8版·本科教学版)--------------------------- 本书自第1版出版至今,30多年来在软件工程界产生了巨大而深远的影响。第8版继承了之前版本的风格与优势,系统地讲解软件过程、建模、质量管理、项目管理等基础知识,涵盖相关概念、原则、方法和工具,并且提供丰富的辅助阅读资源和网络资源,指导有兴趣的读者进行更深入的学习和研究。 本书是面向本科生的版本,保留了完整版中的基础内容,压缩或删除了一些高级内容,更加适合作为高等院校计算机、软件工程及相关专业的软件工程课程教材。 |
| 目录 |
---------------------------软件工程概论(第3版)--------------------------- 前言 教学建议 第一部分软件工程概述 第1章软件与软件工程的概念 11软件的概念、特性和分类 111软件的概念及特性 112软件的分类 12软件危机与软件工程 121软件危机 122软件工程 13软件工程的目标 14软件生存期 15软件工程方法概述 151传统方法 152面向对象方法 153面向服务方法 154面向数据方法 155形式化方法 16软件工具概述 161软件工具的概念 162软件工具的发展 163软件工具的分类 164常用软件工具介绍 17软件工程知识体系及知识域 习题 第2章软件生存期模型 21瀑布模型 22快速原型模型 23增量模型 24螺旋模型 25喷泉模型 26统一过程 27基于构件的开发模型 28敏捷过程 习题 第二部分结构化分析与设计方法 第3章软件需求获取与结构化分析方法 31需求获取与需求分析阶段的任务 311需求获取的任务和原则 312需求获取的过程 313软件需求分析阶段的任务 32结构化分析方法 321功能建模 322数据建模 323行为建模 324数据字典 325加工规格说明 33系统需求规格说明 331软件需求规格说明模板 332SRS和DRD的质量要求 34需求评审 341正式的需求评审 342需求评审中的常见风险 35需求管理 351需求跟踪 352需求变更管理 习题 第4章结构化设计方法 41软件设计的概念及原则 411软件设计的概念 412软件设计的原则 42结构化设计 421结构化软件设计的任务 422结构化设计与结构化分析的关系 423模块结构及表示 424数据结构及表示 43体系结构设计 431基于数据流方法的设计过程 432典型的数据流类型和系统结构 433变换型映射方法 434事务型映射方法 435模块间的耦合与内聚 436软件模块结构的改进方法 44接口设计 441接口设计概述 442人机交互界面 45数据设计 451文件设计 452数据库设计 46过程设计 461结构化程序设计 462程序流程图 463NS图 464PAD图 465伪代码 466自顶向下、逐步细化的设计过程 47软件设计规格说明 48软件设计评审 481概要设计评审的检查内容 482详细设计评审的检查内容 习题 第三部分面向对象分析与设计方法 第5章面向对象方法与UML 51面向对象的概念与开发方法 511对象 512类与封装 513继承 514多态 515消息通信 516面向对象的软件开发方法 52UML简介 521UML的产生和发展 522UML的特点 523UML的基本模型 53UML的事物 531结构事物 532行为事物 533分组事物 534注释事物 54UML的关系 541依赖关系 542关联关系 543泛化关系 544实现关系 55UML的图 551用例图 552类图 553顺序图与通信图 554状态图 555活动图 556构件图与部署图 习题 第6章面向对象分析 61面向对象分析概述 611确定系统边界 612面向对象分析的3种模型 62建立用例模型 621确定业务参与者 622确定业务需求用例 623创建用例图 63建立对象模型 631对象模型的5个层次 632划分主题 633确定类与对象 634确定结构 635确定属性 636确定服务 637建立类图 64建立动态模型 641顺序图 642通信图 643状态图 习题 第7章软件体系结构与设计模式 71软件体系结构的基本概念 711什么是体系结构 712体系结构模式、风格和框架的概念 713体系结构的重要作用 72典型的体系结构风格 721数据流风格 722调用∕返回风格 723仓库风格 73特定领域的软件体系结构 731类属模型 732参考模型 74分布式系统结构 741多处理器体系结构 742客户机∕服务器体系结构 743分布式对象体系结构 744代理 75体系结构框架 751模型视图控制器 752J2EE体系结构框架 753PCMEF与PCBMER框架 76设计模式 761抽象工厂 762单件 763外观 764适配器 765职责链 766中介者 767观察者 习题 第8章面向对象设计 81面向对象设计过程与准则 811面向对象设计过程 812面向对象设计准则 82体系结构模块及依赖性 821类及其依赖性 822接口及其依赖性 823包及其依赖性 824构件及其依赖性 83系统分解 831子系统和类 832服务和子系统接口 833子系统分层和划分 834Coad & Yourdon的面向对象设计模型 835子系统之间的两种交互方式 836组织系统的两种方案 84问题域部分的设计 85人机交互部分的设计 851用户界面设计步骤 852Web应用系统的界面设计 86任务管理部分的设计 87数据管理部分的设计 88对象设计 881使用模式设计对象 882接口规格说明设计 883重构对象设计模型 89优化对象设计模型 习题 第四部分软件实现与测试 第9章软件实现 91程序设计语言 911程序设计语言的性能 912程序设计语言的分类 913程序设计语言的选择 92程序设计风格 921源程序文档化 922数据说明标准化 923语句结构简单化 924输入/输出规范化 93编码规范 94程序效率与性能分析 941算法对效率的影响 942影响存储器效率的因素 943影响输入/输出的因素 习题 第10章软件测试方法 101软件测试的基本概念 1011什么是软件测试 1012软件测试的目的和原则 1013软件测试的对象 1014测试信息流 1015测试与软件开发各阶段的关系 1016白盒测试与黑盒测试 102白盒测试的测试用例设计 1021逻辑覆盖 1022语句覆盖 1023判定覆盖 1024条件覆盖 1025判定条件覆盖 1026条件组合覆盖 1027路径覆盖 103基本路径覆盖 104黑盒测试的测试用例设计 1041等价类划分 1042边界值分析 105软件测试的策略 1051单元测试 1052组装测试 1053确认测试 1054系统测试 1055测试的类型 106人工测试 1061静态分析 1062人工测试方法 107自动化测试 1071自动化测试与手工测试 1072脚本技术 1073自动化测试框架及测试流程 108调试 习题 第五部分软件维护与软件管理 第11章软件维护 111软件维护的概念 1111软件维护的定义 1112影响维护工作量的因素 1113软件维护的策略 112软件维护活动 1121软件维护申请报告 1122软件维护工作流程 1123维护档案记录 1124维护评价 113逆向工程 114重构 115程序修改的步骤和修改的副作用 1151分析和理解程序 1152修改程序 1153修改程序的副作用及其控制 1154重新验证程序 116软件的维护性 1161软件维护性定义 1162软件维护性度量 117提高软件维护性的方法 1171使用提高软件维护性的开发技术和工具 1172实施开发阶段产品的维护性审查 1173改进文档 习题 第12章软件过程与软件过程改进 121软件过程概述 122软件生存期过程国际标准 123软件过程成熟度 1231什么是软件过程成熟度 1232过程制度化 124软件能力成熟度模型 1241CMM与SEI 1242CMM的演化 1243CMM族和CMMI 1244CMMI 13简介 1245CMMI评估 125软件过程改进 1251软件过程改进的IDEAL模型 1252软件过程改进框架 1253有效的软件过程 习题 第13章软件项目管理 131软件项目管理概述 1311软件项目管理的目标 1312软件项目管理涉及的几个方面 132项目估算 1321项目策划与项目估算 1322软件规模估算的功能点方法 1323软件开发成本估算 133风险管理 1331什么是软件风险 1332风险管理的任务 1333风险评估 1334风险控制 1335做好风险管理的建议 134进度管理 1341进度控制问题 1342甘特图 1343时标网状图 1344PERT图 135需求管理 1351系统需求与软件需求 1352需求工程 1353需求变更 1354需求变更控制 1355可追溯性管理 136配置管理 1361什么是软件配置管理 1362软件配置标识 1363变更管理 1364版本控制 1365系统建立 1366配置审核 1367配置状态报告 137质量管理 习题 第14章软件工程标准及软件文档 141软件工程标准 1411标准的概念 1412软件标准化的意义 1413标准的分类与分级 1414软件工程标准的制定与实施 1415软件组织内的标准化工作 142软件文档 1421软件文档的作用和分类 1422软件基本文档的内容要求 1423对文档编制的质量要求 1424文档的管理和维护 习题 第15章软件人员的职业道德和社会责任 151当前软件产品和软件产业的社会地位 152软件人员不良行为表现的实例 153软件工程人员的职业道德修养 1531职业道德和社会责任 1532软件工程人员职业道德修养的若干方面 154在软件业中组织职业道德规范的贯彻实施 附录近年国内外软件引起的系统重大事故 参考文献 ---------------------------软件工程:实践者的研究方法(原书第8版·本科教学版)--------------------------- 出版者的话 改编者序 译者序 前言 第1章 软件的本质 1 1.1 软件的本质 3 1.1.1 定义软件 3 1.1.2 软件应用领域 4 1.1.3 遗留软件 5 1.2 软件的变更本质 6 1.2.1 WebApp 6 1.2.2 移动App 7 1.2.3 云计算 7 1.2.4 产品线软件 8 习题与思考题 8 扩展阅读与信息资源 8 第2章 软件工程 10 2.1 定义软件工程学科 11 2.2 软件过程 11 2.2.1 过程框架 12 2.2.2 普适性活动 12 2.2.3 过程的适应性调整 13 2.3 软件工程实践 13 2.3.1 实践的精髓 14 2.3.2 通用原则 14 2.4 软件开发神话 16 2.5 这一切是如何开始的 18 习题与思考题 19 扩展阅读与信息资源 19 第一部分 软件过程 第3章 软件过程结构 22 3.1 通用过程模型 23 3.2 定义框架活动 24 3.3 明确任务集 24 3.4 过程模式 25 习题与思考题 27 扩展阅读与信息资源 27 第4章 过程模型 29 4.1 惯用过程模型 30 4.1.1 瀑布模型 30 4.1.2 增量过程模型 32 4.1.3 演化过程模型 32 4.1.4 并发模型 36 4.1.5 演化过程的最终评述 37 4.2 专用过程模型 38 4.2.1 基于构件的开发 38 4.2.2 形式化方法模型 39 4.2.3 面向方面的软件开发 39 4.3 统一过程 40 4.3.1 统一过程的简史 41 4.3.2 统一过程的阶段 41 4.4 产品和过程 42 习题与思考题 43 扩展阅读与信息资源 43 第5章 敏捷开发 45 5.1 什么是敏捷 46 5.2 敏捷及变更成本 47 5.3 什么是敏捷过程 47 5.3.1 敏捷原则 48 5.3.2 敏捷开发战略 49 5.4 极限编程 49 5.4.1 极限编程过程 49 5.4.2 工业极限编程 51 5.5 其他敏捷过程模型 53 5.5.1 Scrum 53 5.5.2 动态系统开发方法 54 5.5.3 敏捷建模 55 5.5.4 敏捷统一过程 56 5.6 敏捷过程工具集 57 习题与思考题 58 扩展阅读与信息资源 58 第6章 软件工程的人员方面 60 6.1 软件工程师的特质 60 6.2 软件工程心理学 61 6.3 软件团队 62 6.4 团队结构 63 6.5 敏捷团队 64 6.5.1 通用敏捷团队 64 6.5.2 XP团队 65 6.6 社交媒体的影响 66 6.7 软件工程中云的应用 67 6.8 协作工具 67 6.9 全球化团队 68 习题与思考题 69 扩展阅读与信息资源 69 第二部分 建模 第7章 理解需求 72 7.1 需求工程 73 7.2 建立根基 78 7.2.1 确认利益相关者 78 7.2.2 识别多重观点 78 7.2.3 协同合作 79 7.2.4 首次提问 79 7.3 获取需求 80 7.3.1 协作收集需求 80 7.3.2 质量功能部署 82 7.3.3 使用场景 83 7.3.4 获取工作产品 84 7.3.5 敏捷需求获取 84 7.3.6 面向服务的方法 84 7.4 开发用例 85 7.5 构建分析模型 88 7.5.1 分析模型的元素 89 7.5.2 分析模式 91 7.5.3 敏捷需求工程 91 7.5.4 自适应系统的需求 91 7.6 避免常见错误 92 习题与思考题 92 扩展阅读与信息资源 93 第8章 需求建模:基于场景的方法 95 8.1 需求分析 96 8.1.1 总体目标和原理 96 8.1.2 分析的经验原则 97 8.1.3 域分析 97 8.1.4 需求建模的方法 99 8.2 基于场景建模 100 8.2.1 创建初始用例 100 8.2.2 细化初始用例 102 8.2.3 编写正式用例 103 8.3 补充用例的UML模型 105 8.3.1 开发活动图 105 8.3.2 泳道图 106 习题与思考题 107 扩展阅读与信息资源 107 第9章 需求建模:基于类的方法 108 9.1 识别分析类 108 9.2 描述属性 111 9.3 定义操作 111 9.4 类–职责–协作者建模 113 9.5 关联和依赖 118 9.6 分析包 118 习题与思考题 119 扩展阅读与信息资源 119 第10章 需求建模:行为和模式 121 10.1 生成行为模型 121 10.2 识别用例事件 122 10.3 状态表达 122 10.4 需求建模的模式 125 10.4.1 发现分析模式 125 10.4.2 需求模式举例:执行器–传感器 126 习题与思考题 129 扩展阅读与信息资源 129 第11章 设计概念 131 11.1 软件工程中的设计 132 11.2 设计过程 134 11.2.1 软件质量指导原则和属性 134 11.2.2 软件设计的演化 136 11.3 设计概念 137 11.3.1 抽象 137 11.3.2 体系结构 137 11.3.3 模式 138 11.3.4 关注点分离 138 11.3.5 模块化 138 11.3.6 信息隐蔽 139 11.3.7 功能独立 139 11.3.8 求精 140 11.3.9 方面 140 11.3.10 重构 141 11.3.11 面向对象的设计概念 141 11.3.12 设计类 142 11.3.13 依赖倒置 144 11.3.14 测试设计 145 11.4 设计模型 145 11.4.1 数据设计元素 146 11.4.2 体系结构设计元素 146 11.4.3 接口设计元素 147 11.4.4 构件级设计元素 148 11.4.5 部署级设计元素 149 习题与思考题 149 扩展阅读与信息资源 150 第12章 体系结构设计 152 12.1 软件体系结构 153 12.1.1 什么是体系结构 153 12.1.2 体系结构为什么重要 154 12.1.3 体系结构描述 154 12.1.4 体系结构决策 155 12.2 体系结构类型 156 12.3 体系结构风格 156 12.3.1 体系结构风格的简单分类 157 12.3.2 体系结构模式 159 12.3.3 组织和求精 160 12.4 体系结构考虑要素 160 12.5 体系结构决策 162 12.6 体系结构设计 162 12.6.1 系统环境的表示 163 12.6.2 定义原型 163 12.6.3 将体系结构细化为构件 164 12.6.4 描述系统实例 165 12.6.5 WebApp的体系结构设计 166 13.6.6 移动App的体系结构设计 166 12.7 评估候选的体系结构设计 167 12.7.1 体系结构描述语言 168 12.7.2 体系结构评审 169 12.8 经验学习 169 12.9 基于模式的体系结构评审 170 12.10 体系结构一致性检查 171 12.11 敏捷性与体系结构 171 习题与思考题 172 扩展阅读与信息资源 173 第13章 构件级设计 175 13.1 什么是构件 176 13.1.1 面向对象的观点 176 13.1.2 传统的观点 177 13.1.3 过程相关的观点 179 13.2 设计基于类的构件 180 13.2.1 基本设计原则 180 13.2.2 构件级设计指导方针 182 13.2.3 内聚性 183 13.2.4 耦合性 184 13.3 实施构件级设计 185 13.4 WebApp的构件级设计 190 13.4.1 构件级内容设计 190 13.4.2 构件级功能设计 190 13.5 设计传统构件 190 13.6 基于构件的开发 191 13.6.1 领域工程 191 13.6.2 构件的合格性检验、适应性修改与组合 191 13.6.3 体系结构不匹配 193 13.6.4 复用的分析与设计 193 13.6.5 构件的分类与检索 194 习题与思考题 195 扩展阅读与信息资源 195 第14章 用户界面设计 197 14.1 黄金规则 198 14.1.1 把控制权交给用户 198 14.1.2 减轻用户的记忆负担 199 14.1.3 保持界面一致 200 14.2 用户界面的分析和设计 201 14.2.1 用户界面分析和设计模型 201 14.2.2 过程 202 14.3 界面分析 203 14.3.1 用户分析 203 14.3.2 任务分析和建模 204 14.3.3 显示内容分析 207 14.3.4 工作环境分析 207 14.4 界面设计步骤 208 14.4.1 应用界面设计步骤 208 14.4.2 用户界面设计模式 210 14.4.3 设计问题 210 14.5 设计评估 212 习题与思考题 213 扩展阅读与信息资源 214 第三部分 质量管理 第15章 质量概念 216 15.1 什么是质量 217 15.2 软件质量 218 15.2.1 Garvin的质量维度 218 15.2.2 McCall的质量因素 219 15.2.3 ISO 9126质量因素 220 15.2.4 定向质量因素 220 15.2.5 过渡到量化观点 221 15.3 软件质量困境 222 15.3.1 “足够好”的软件 222 15.3.2 质量的成本 223 15.3.3 风险 225 15.3.4 疏忽和责任 225 15.3.5 质量和安全 225 15.3.6 管理活动的影响 226 15.4 实现软件质量 226 15.4.1 软件工程方法 227 15.4.2 项目管理技术 227 15.4.3 质量控制 227 15.4.4 质量保证 227 习题与思考题 227 扩展阅读与信息资源 228 第16章 软件质量保证 229 16.1 背景问题 230 16.2 软件质量保证的要素 230 16.3 软件质量保证的过程和产品特性 232 16.4 软件质量保证的任务、目标和度量 232 16.4.1 软件质量保证的任务 232 16.4.2 目标、属性和度量 233 16.5 软件质量保证的形式化方法 234 16.6 统计软件质量保证 235 16.6.1 一个普通的例子 235 16.6.2 软件工程中的六西格玛 236 16.7 软件可靠性 237 16.7.1 可靠性和可用性的测量 237 16.7.2 软件安全 238 16.8 ISO 9000质量标准 239 16.9 软件质量保证计划 240 16.10 产品度量框架 240 16.10.1 测度、度量和指标 241 16.10.2 产品度量的挑战 241 16.10.3 测量原则 242 16.10.4 面向目标的软件测量 242 16.10.5 有效软件度量的属性 243 习题与思考题 244 扩展阅读与信息资源 244 第17章 软件测试策略 246 17.1 软件测试的策略性方法 247 17.1.1 验证与确认 247 17.1.2 软件测试组织 248 17.1.3 软件测试策略——宏观 249 17.1.4 测试完成的标准 250 17.2 策略问题 251 17.3 传统软件的测试策略 251 17.3.1 单元测试 251 17.3.2 集成测试 253 17.4 面向对象软件的测试策略 257 17.4.1 面向对象环境中的单元测试 257 17.4.2 面向对象环境中的集成测试 257 17.5 确认测试 258 17.5.1 确认测试准则 258 17.5.2 配置评审 258 17.5.3 α测试和β测试 258 17.6 系统测试 260 17.6.1 恢复测试 260 17.6.2 安全测试 260 17.6.3 压力测试 260 17.6.4 性能测试 261 17.6.5 部署测试 261 17.7 调试技巧 262 17.7.1 调试过程 262 17.7.2 心理因素 263 17.7.3 调试策略 264 17.7.4 纠正错误 265 习题与思考题 265 扩展阅读与信息资源 266 第18章 测试传统的应用软件 268 18.1 软件测试基础 269 18.2 测试的内部视角和外部视角 270 18.3 白盒测试 271 18.4 基本路径测试 271 18.4.1 流图表示 271 18.4.2 独立程序路径 273 18.4.3 生成测试用例 274 18.5 控制结构测试 276 18.6 黑盒测试 277 18.6.1 等价类划分 277 18.6.2 边界值分析 278 18.7 基于模型的测试 278 习题与思考题 279 扩展阅读与信息资源 279 第19章 测试面向对象的应用 281 19.1 扩展测试的视野 282 19.2 测试OOA和OOD模型 282 19.2.1 OOA和OOD模型的正确性 283 19.2.2 面向对象模型的一致性 283 19.3 面向对象测试策略 284 19.3.1 面向对象环境中的单元测试 284 19.3.2 面向对象环境中的集成测试 285 19.3.3 面向对象环境中的确认测试 285 19.4 面向对象测试方法 285 19.4.1 面向对象概念的测试用例设计含义 286 19.4.2 传统测试用例设计方法的可应用性 286 19.4.3 基于故障的测试 286 19.4.4 基于场景的测试设计 287 19.5 类级可应用的测试方法 287 19.5.1 面向对象类的随机测试 287 19.5.2 类级的划分测试 288 19.6 类间测试用例设计 289 19.6.1 多类测试 289 19.6.2 从行为模型导出的测试 290 习题与思考题 291 扩展阅读与信息资源 291 第20章 安全性工程 293 20.1 安全性需求分析 294 20.2 网络世界中的安全性与保密性 295 20.2.1 社交媒体 295 20.2.2 移动App 296 20.2.3 云计算 296 20.2.4 物联网 296 20.3 安全性工程分析 296 20.3.1 安全性需求获取 297 20.3.2 安全性建模 297 20.3.3 测度设计 298 20.3.4 正确性检查 298 20.4 安全性保证 299 20.4.1 安全性保证过程 299 20.4.2 组织和管理 300 20.5 安全性风险分析 300 20.6 传统软件工程活动的作用 302 20.7 可信性系统验证 303 习题与思考题 304 扩展阅读与信息资源 305 第21章 软件配置管理 306 21.1 软件配置管理概述 307 21.1.1 SCM场景 307 21.1.2 配置管理系统的元素 308 21.1.3 基线 309 21.1.4 软件配置项 310 21.1.5 依赖性和变更管理 310 21.2 SCM中心存储库 311 21.2.1 一般特征和内容 311 21.2.2 SCM特征 312 21.3 SCM过程 312 21.3.1 软件配置中的对象标识 313 21.3.2 版本控制 314 21.3.3 变更控制 315 21.3.4 影响管理 317 21.3.5 配置审核 318 21.3.6 状态报告 318 习题与思考题 319 扩展阅读与信息资源 319 第四部分 管理软件项目 第22章 项目管理概念 322 22.1 管理涉及的范围 323 22.1.1 人员 323 22.1.2 产品 323 22.1.3 过程 324 22.1.4 项目 324 22.2 人员 324 22.2.1 利益相关者 324 22.2.2 团队负责人 325 22.2.3 软件团队 325 22.2.4 敏捷团队 327 22.2.5 协调和沟通问题 328 22.3 产品 329 22.3.1 软件范围 329 22.3.2 问题分解 329 22.4 过程 330 22.4.1 合并产品和过程 330 22.4.2 过程分解 330 22.5 项目 331 22.6 W5HH原则 332 22.7 关键实践 333 习题与思考题 333 扩展阅读与信息资源 334 第23章 过程度量与项目度量 336 23.1 过程领域和项目领域中的度量 337 23.1.1 过程度量和软件过程改进 337 23.1.2 项目度量 339 23.2 软件测量 340 23.2.1 面向规模的度量 341 23.2.2 面向功能的度量 342 23.2.3 调和代码行度量和功能点度量 342 23.2.4 面向对象的度量 343 23.2.5 面向用例的度量 344 23.3 软件质量的度量 345 23.3.1 测量质量 345 23.3.2 缺陷排除效率 346 习题与思考题 347 扩展阅读与信息资源 348 第24章 软件项目估算 350 24.1 对估算的观察 351 24.2 项目计划过程 352 24.3 软件范围和可行性 352 24.4 资源 353 24.4.1 人力资源 354 24.4.2 可复用软件资源 354 24.4.3 环境资源 354 24.5 软件项目估算 354 24.6 分解技术 355 24.6.1 软件规模估算 355 24.6.2 基于问题的估算 356 24.6.3 基于LOC估算的实例 357 24.6.4 基于FP估算的实例 358 24.6.5 基于过程的估算 359 24.6.6 基于过程估算的实例 360 24.6.7 基于用例的估算 360 24.6.8 基于用例点估算的实例 361 24.6.9 调和不同的估算方法 362 24.7 经验估算模型 363 24.7.1 估算模型的结构 363 24.7.2 COCOMOⅡ模型 363 24.7.3 软件方程 363 24.8 面向对象项目的估算 364 习题与思考题 365 扩展阅读与信息资源 365 第25章 项目进度安排 366 25.1 基本概念 367 25.2 项目进度安排概述 368 25.2.1 基本原则 369 25.2.2 人员与工作量之间的关系 370 25.2.3 工作量分配 371 25.3 为软件项目定义任务集 372 25.3.1 任务集举例 372 25.3.2 主要任务的细化 373 25.4 定义任务网络 373 25.5 进度安排 374 25.5.1 时序图 375 25.5.2 跟踪进度 375 25.5.3 跟踪面向对象项目的进展 377 25.6 挣值分析 378 习题与思考题 379 扩展阅读与信息资源 380 第26章 风险管理 382 26.1 被动风险策略和主动风险策略 383 26.2 软件风险 383 26.3 风险识别 384 26.3.1 评估整体项目风险 385 26.3.2 风险因素和驱动因子 386 26.4 风险预测 387 26.4.1 建立风险表 387 26.4.2 评估风险影响 388 26.5 风险细化 390 26.6 风险缓解、监测和管理 390 26.7 RMMM计划 392 习题与思考题 393 扩展阅读与信息资源 394 在线资源 附录1 UML 简介 附录2 面向对象概念 参考文献 |