《软件工程(第4版·修订版)》是软件工程领域的经典著作,国际上众多名校均采用本书作为教材。全书共分为14章,分3个部分介绍主要内容。第一部分解释为什么软件工程知识对实践者和研究者同样重要,还讨论了理解过程模型问题的必要性以及敏捷方法和精细地进行项目计划的必要性;第二部分论述开发和维护的主要步骤;第三部分主要讲述软件评估和改进。 《软件工程(第4版·修订版)》适合作为计算机相关专业软件工程课程的本科教材,也适用于介绍软件工程的概念与实践的研究生课程,期望进一步学习该领域相关知识的专业人员也可以阅读本书。 目 录第1章 软件工程概述 11.1 什么是软件工程 11.1.1 问题求解 21.1.2 软件工程师的角色是什么 31.2 软件工程取得了哪些进展 41.3 什么是好的软件 61.3.1 产品的质量 71.3.2 过程的质量 81.3.3 商业环境背景下的质量 81.4 软件工程涉及的人员 101.5 系统的方法 111.5.1 系统的要素 111.5.2 相互联系的系统 131.6 工程的方法 141.6.1 盖房子 151.6.2 构建系统 161.7 开发团队的成员 171.8 软件工程发生了多大的变化 191.8.1 变化的本质 191.8.2 软件工程的Wasserman规范 201.9 信息系统的例子 251.10 实时系统的例子 261.11 本章对单个开发人员的意义 271.12 本章对开发团队的意义 281.13 本章对研究人员的意义 281.14 学期项目 281.15 主要参考文献 291.16 练习 30第2章 过程和生命周期的建模 322.1 过程的含义 322.2 软件过程模型 342.2.1 瀑布模型 342.2.2 V模型 372.2.3 原型化模型 372.2.4 可操作规格说明 382.2.5 可转换模型 382.2.6 阶段化开发:增量和迭代 392.2.7 螺旋模型 402.2.8 敏捷方法 412.3 过程建模工具和技术 442.3.1 静态建模:Lai表示法 452.3.2 动态建模:系统动力学 472.4 实际的过程建模 492.4.1 Marvel的案例研究 492.4.2 过程建模工具和技术应该具有的特性 512.5 信息系统的例子 512.6 实时系统的例子 532.7 本章对单个开发人员的意义 542.8 本章对开发团队的意义 542.9 本章对研究人员的意义 542.10 学期项目 542.11 主要参考文献 562.12 练习 57第3章 计划和管理项目 583.1 跟踪项目进展 583.1.1 工作分解和活动图 603.1.2 估算完成时间 613.1.3 跟踪进展的工具 653.2 项目人员 673.2.1 人员角色和特性 673.2.2 工作风格 703.2.3 项目组织 713.3 工作量估算 733.3.1 专家判断 753.3.2 算法方法 773.3.3 机器学习方法 813.3.4 找出适合具体情形的模型 833.4 风险管理 843.4.1 什么是风险 843.4.2 风险管理活动 853.5 项目计划 873.6 过程模型和项目管理 883.6.1 注册管理 883.6.2 责任建模 903.6.3 紧密结合里程碑 923.7 信息系统的例子 943.8 实时系统的例子 953.9 本章对单个开发人员的意义 963.10 本章对开发团队的意义 963.11 本章对研究人员的意义 963.12 学期项目 963.13 主要参考文献 973.14 练习 97第4章 获取需求 1004.1 需求过程 1014.2 需求引发 1024.3 需求的类型 1054.3.1 解决冲突 1074.3.2 两种需求文档 1084.4 需求的特性 1094.5 建模表示法 1104.5.1 实体-联系图 1114.5.2 例子:UML类图 1124.5.3 事件踪迹 1144.5.4 例子:消息时序图 1144.5.5 状态机 1154.5.6 例子:UML状态图 1164.5.7 例子:Petri网 1194.5.8 数据流图 1214.5.9 例子:用例 1224.5.10 函数和关系 1234.5.11 例子:判定表 1244.5.12 例子:Parnas表 1244.5.13 逻辑 1254.5.14 例子:对象约束语言(OCL) 1264.5.15 例子:Z 1274.5.16 代数规格说明 1294.5.17 例子:SDL数据 1304.6 需求和规格说明语言 1324.6.1 统一建模语言(UML) 1324.6.2 规格说明和描述语言(SDL) 1334.6.3 软件成本降低(SCR) 1334.6.4 需求表示法的其他特征 1344.7 原型化需求 1344.8 需求文档 1354.8.1 需求定义 1364.8.2 需求规格说明 1374.8.3 过程管理和需求的可跟踪性 1384.9 确认和验证 1384.9.1 需求确认 1394.9.2 验证 1414.10 测量需求 1424.11 选择规格说明技术 1434.12 信息系统的例子 1454.13 实时系统的例子 1474.14 本章对单个开发人员的意义 1494.15 本章对开发团队的意义 1494.16 本章对研究人员的意义 1494.17 学期项目 1504.17.1 前提和假设 1504.17.2 功能的高层描述 1504.17.3 功能需求 1504.17.4 数据约束 1514.17.5 设计和接口约束 1524.17.6 质量需求 1524.18 主要参考文献 1524.19 练习 153第5章 设计体系结构 1565.1 设计过程 1565.1.1 设计是一种创造性过程 1575.1.2 设计过程模型 1605.2 体系结构建模 1615.3 分解和视图 1625.4 体系结构风格和策略 1655.4.1 管道和过滤器 1655.4.2 客户-服务器 1665.4.3 对等网络 1675.4.4 发布-订阅 1685.4.5 信息库 1685.4.6 分层 1695.4.7 组合体系结构风格 1705.5 满足质量属性 1715.5.1 可修改性 1715.5.2 性能 1735.5.3 安全性 1745.5.4 可靠性 1755.5.5 健壮性 1775.5.6 易使用性 1785.5.7 商业目标 1785.6 协作设计 1795.7 体系结构的评估和改进 1805.7.1 测量设计质量 1815.7.2 故障树分析 1815.7.3 安全性分析 1835.7.4 权衡分析 1845.7.5 成本效益分析 1885.7.6 原型化 1905.8 文档化软件体系结构 1915.8.1 视图间的映射 1935.8.2 文档化设计合理性 1935.9 体系结构设计评审 1935.9.1 确认 1945.9.2 验证 1945.10 软件产品线 1955.10.1 战略范围 1975.10.2 产品
阅读更多