·增加了对持续集成/持续部署、开发运维一体化、GitHub等流行的方法和工具的介绍。
·增加了关于面向服务的架构、企业服务总线和微服务的讨论,以及与虚拟化和容器化相关的新概念和新工具。
·增加了对安全问题的讨论,包括DevSecOps等方法所带来的安全性问题。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 软件工程导论(原书第5版) |
分类 | 教育考试-考试-计算机类 |
作者 | [美]弗兰克·徐(Frank Tsui),[美]奥兰多·卡拉姆(Orlando Karam),[美]芭芭拉·博纳尔(Barbara Bernal) |
出版社 | 机械工业出版社 |
下载 | ![]() |
简介 | 编辑推荐 ·增加了对持续集成/持续部署、开发运维一体化、GitHub等流行的方法和工具的介绍。 ·增加了关于面向服务的架构、企业服务总线和微服务的讨论,以及与虚拟化和容器化相关的新概念和新工具。 ·增加了对安全问题的讨论,包括DevSecOps等方法所带来的安全性问题。 内容推荐 本书是一本概要介绍软件工程核心内容的导论性教材,完整覆盖了从初始阶段到发布、支持阶段的软件系统生命周期,讨论了贯穿软件生命周期的过程、质量保障及项目管理等问题。新版涵盖了技术和工具方面的一些新改进,同时减少了对过时技术的讨论。本书的三位作者除教学经验丰富外,还拥有多年在IBM、微软和亚马逊等公司从事软件研发和管理的工作经历。书中融合了这些经验,包含对系统分析和设计、软件工程原理、开发和支持过程、方法论、软件测试和质量以及产品管理的全面概述,内容精练,案例丰富。 目录 译者序<br />前言<br />第1章 创建一个程序1<br />1.1 一个简单的问题1<br />1.1.1 决策,决策1<br />1.1.2 功能需求2<br />1.1.3 非功能需求3<br />1.1.4 设计约束3<br />1.1.5 设计决策4<br />1.2 测试4<br />1.3 估计工作量5<br />1.4 实现6<br />1.4.1 关于实现的几个要点6<br />1.4.2 基本设计7<br />1.4.3 使用JUnit进行单元测试8<br />1.4.4 StringSorter的实现8<br />1.4.5 用户界面12<br />1.5 总结14<br />1.6 复习题14<br />1.7 练习题15<br />1.8 参考文献和建议阅读15<br />第2章 构建一个系统16<br />2.1 构建一个系统的特征16<br />2.1.1 规模和复杂度16<br />2.1.2 开发和支持的技术性考虑17<br />2.1.3 开发和支持的非技术性考虑20<br />2.2 系统构建实例21<br />2.2.1 薪资管理系统的需求21<br />2.2.2 设计薪资管理系统22<br />2.2.3 薪资管理系统的编码和<br /> 单元测试24<br />2.2.4 薪资管理系统的集成和功能<br /> 测试24<br />2.2.5 发布薪资管理系统25<br />2.2.6 支持和维护25<br />2.3 协调工作26<br />2.3.1 过程26<br />2.3.2 产品27<br />2.3.3 人员27<br />2.4 总结27<br />2.5 复习题27<br />2.6 练习题27<br />2.7 参考文献和建议阅读28<br />第3章 工程化软件29<br />3.1 软件失败的示例和特点29<br />3.1.1 项目失败29<br />3.1.2 软件产品失效30<br />3.1.3 协调和其他关注点31<br />3.2 软件工程31<br />3.2.1 什么是软件工程31<br />3.2.2 软件工程的定义32<br />3.2.3 软件工程与软件的相关性32<br />3.3 软件工程专业与道德规范33<br />3.3.1 软件工程道德准则33<br />3.3.2 专业行为34<br />3.4 软件工程原则35<br />3.4.1 早期由Davis提出的软件<br /> 工程原则35<br />3.4.2 更现代的Royce原则36<br />3.4.3 Wasserman提出的软件工程<br /> 基础概念37<br />3.5 总结38<br />3.6 复习题38<br />3.7 练习题38<br />3.8 参考文献和建议阅读39<br />第4章 传统软件过程模型40<br />4.1 软件过程40<br />4.1.1 软件过程模型的目标40<br />4.1.2 “最简单”的过程模型41<br />4.2 传统过程模型41<br />4.2.1 瀑布模型42<br />4.2.2 主程序员制团队方法43<br />4.2.3 增量模型43<br />4.2.4 螺旋模型44<br />4.3 一个更加现代的过程45<br />4.3.1 Rational统一过程框架的一般<br /> 基础46<br />4.3.2 RUP的阶段46<br />4.4 进入和退出标准48<br />4.4.1 进入标准48<br />4.4.2 退出标准49<br />4.5 过程评估模型50<br />4.5.1 SEI的能力成熟度模型50<br />4.5.2 SEI的能力成熟度集成模型52<br />4.6 过程定义和通信52<br />4.7 总结53<br />4.8 复习题53<br />4.9 练习题54<br />4.10 参考文献和建议阅读54<br />第5章 敏捷软件过程模型56<br />5.1 什么是敏捷过程56<br />5.2 为什么使用敏捷过程57<br />5.3 一些过程方法57<br />5.3.1 极限编程58<br />5.3.2 水晶系列方法61<br />5.3.3 敏捷统一过程63<br />5.3.4 Scrum64<br />5.3.5 看板方法:一种新增的敏捷<br /> 方法65<br />5.3.6 开源软件开发66<br />5.3.7 过程总结67<br />5.4 过程的选择68<br />5.4.1 每一种过程更适用的项目<br /> 和环境68<br />5.4.2 敏捷过程的主要风险和问题69<br />5.4.3 敏捷过程的主要优点69<br />5.5 总结70<br />5.6 复习题70<br />5.7 练习题71<br />5.8 参考文献和建议阅读71<br />第6章 需求工程72<br />6.1 需求处理72<br />6.1.1 需求处理的准备72<br />6.1.2 需求工程过程73<br />6.2 需求获取与收集74<br />6.2.1 获取高层次的需求75<br />6.2.2 获取详细的需求76<br />6.3 需求分析78<br />6.3.1 通过业务流分析和聚类需求78<br />6.3.2 通过面向对象的用例分析和<br /> 聚类需求79<br />6.3.3 通过面向视点的需求定义<br /> 分析和聚类需求81<br />6.3.4 需求分析与排序81<br />6.3.5 需求可追踪性83<br />6.4 需求定义、原型化和审查84<br />6.5 需求规格说明与需求协商87<br />6.6 总结87<br />6.7 复习题88<br />6.8 练习题88<br />6.9 参考文献和建议阅读89<br />第7章 设计:架构与方法论91<br />7.1 设计导论91<br />7.2 架构设计92<br />7.2.1 什么是软件架构92<br />7.2.2 视图与视角92<br />7.2.3 元架构知识:风格、模式、<br /> 策略和参考架构93<br />7.2.4 基于网络的Web参考<br /> 架构—REST98<br />7.3 详细设计99<br />7.3.1 功能分解99<br />7.3.2 关系数据库101<br />7.3.3 大数据设计104<br />7.3.4 面向对象设计和UML106<br />7.3.5 用户界面设计109<br />7.3.6 一些进一步的设计问题115<br />7.4 HTML-Script-SQL设计示例115<br />7.5 总结118<br />7.6 复习题118<br />7.7 练习题118<br />7.8 参考文献和建议阅读119<br />第8章 设计的特征与度量120<br />8.1 设计描述120<br />8.2 设计属性的遗留特征120<br />8.2.1 Halstead复杂度度量121<br />8.2.2 McCabe圈复杂度121<br />8.2.3 Henry-Kafura信息流122<br />8.2.4 高层次复杂度度量123<br />8.3 “好”的设计属性124<br />8.3.1 内聚124<br />8.3.2 耦合126<br />8.4 面向对象设计度量128<br />8.4.1 面向切面编程130<br />8.4.2 迪米特法则130<br />8.5 用户界面设计130<br />8.5.1 好的UI的特征130<br />8.5.2 易用性的评估与测试131<br />8.6 总结132<br />8.7 复习题132<br />8.8 练习题133<br />8.9 参考文献和建议阅读133<br />第9章 实现136<br />9.1 实现简介136<br />9.2 一个好的实现的特征136<br />9.2.1 编程风格和代码规范137<br />9.2.2 注释139<br />9.3 实现的实践140<br />9.3.1 调试140<br />9.3.2 断言和防御性编程141<br />9.3.3 性能优化141<br />9.3.4 重构142<br />9.3.5 代码重用143<br />9.4 虚拟化和容器143<br />9.5 开发云计算144<br />9.5.1 基础设施即服务145<br />9.5.2 平台即服务145<br />9.5.3 云应用服务146<br />9.5.4 面向开发者的云服务146<br />9.5.5 基础设施即代码和DevOps147<br />9.5.6 云的优点和不足147<br />9.6 总结147<br />9.7 复习题148<br />9.8 练习题148<br />9.9 参考文献和建议阅读148<br />第10章 测试和质量保证150<br />10.1 测试和质量保证简介150<br />10.2 测试151<br />10.2.1 测试的目的152<br />10.3 测试技术152<br />10.3.1 等价类划分155<br />10.3.2 边界值分析156<br />10.3.3 路径分析156<br />10.3.4 条件组合160<br />10.3.5 自动化单元测试和测试驱动<br /> 开发161<br />10.3.6 测试驱动开发示例162<br />10.4 何时停止测试165<br />10.5 检查和审查166<br />10.6 形式化方法167<br />10.7 静态分析168<br />10.8 总结169<br />10.9 复习题169<br />10.10 练习题170<br />10.11 参考文献和建议阅读170<br />第11章 配置管理、集成和构建172<br />11.1 软件配置管理172<br />11.2 策略、过程和软件制品172<br />11.2.1 业务策略对配置管理的影响174<br />11.2.2 过程对配置管理的影响175<br />11.3 配置管理框架176<br />11.3.1 命名模型176<br />11.3.2 存储和访问模型177<br />11.4 构建与集成179<br />11.5 配置管理工具180<br />11.6 管理配置管理框架182<br />11.7 总结183<br />11.8 复习题183<br />11.9 练习题183<br />11.10 参考文献和建议阅读184<br />第12章 软件支持和维护186<br />12.1 客户支持186<br />12.1.1 用户问题到达速率186<br />12.1.2 客户接口和来电管理188<br />12.1.3 技术问题/修复189<br />12.1.4 交付及安装补丁190<br />12.2 产品维护更新和发布周期192<br />12.3 变更控制193<br />12.4 总结194<br />12.5 复习题194<br />12.6 练习题195<br />12.7 参考文献和建议阅读195<br />第13章 软件项目管理196<br />13.1 项目管理196<br />13.1.1 项目管理的必要性196<br />13.1.2 项目管理过程196<br />13.1.3 项目管理的规划阶段197<br />13.1.4 项目管理的组织阶段200<br />13.1.5 项目管理的监测阶段200<br />13.1.6 项目管理的调整阶段202<br />13.2 项目管理技术203<br />13.2.1 项目工作量估计203<br />13.2.2 工作分解结构209<br />13.2.3 使用挣值跟踪项目状态212<br />13.2.4 测量项目属性和GQM213<br />13.3 总结214<br />13.4 复习题215<br />13.5 练习题215<br />13.6 参考文献和建议阅读216<br />第14章 结语及若干当代软件<br /> 工程问题218<br />14.1 安全和软件工程219<br />14.2 逆向工程和软件混淆219<br />14.3 软件确认和验证的方法及工具220<br />14.4 参考文献和建议阅读221<br />附录223<br />附录A 软件开发计划概要224<br />附录B 软件需求规格说明概要225<br />附录C 软件设计概要229<br />附录D 测试计划概要231 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。