主编推荐语
再工程领域的集大成之作,指引你学会如何以最小的花费,在最短的时间通过再工程方法使旧版系统焕发新生。
内容简介
本书结合真实案例和示例代码,充分展示探究旧有代码真实状态、制定再工程计划、引入最新的工具和方法以提升性能的思维、方法和最佳实践,从而将新架构以及开发进展集成到不可离线的关键业务系统中。全书共分两部分。第一部分包括第1~5章。第1章以面向服务的架构为基础,讲解如何明确最终目标的架构。第2章分析3种常见架构模式的区别、工作机制,以及如何选择适用的架构和设计模式。第3章以一个较高的层次重新认识单元测试的理念和实现。第4章讲解如何利用依赖倒置原则打破应用程序的紧耦合,以便进行优化。第5章介绍对单元测试使用测试替身的要点。第二部分包括第6~13章。第6章介绍如何从整体上认识再工程项目的原解决方案,辨析当前代码的真实状态。第7章分析再工程团队在项目规划和管理方面所面临的挑战,并给出解决方案。第8章介绍高效的再工程工具、方法。第9章介绍如何清除旧版解决方案。第10章讲解具体添加核心服务、类、库的方法,以建立再工程基础。第11章讨论如何将新的架构整合到旧版系统。第12章介绍架构重构中的一些重难点任务。第13章讲解将窗体重构为控制器的方法和具体步骤。
目录
- 版权信息
- 译者序
- 前言
- 什么是软件再工程
- 什么是旧软件
- 软件老化的原因
- 警示标志
- 开发者对功能请求存在抵触情绪
- 发布后存在着大量缺陷修复工作
- 软件质量问题长期存在
- 软件再工程的目标和优点
- 引入现代架构
- 在线增加新功能
- 灵活使用敏捷方法
- 降低风险
- 降低成本
- 本书的读者对象
- 致谢
- 第一部分 目标架构
- 第1章 实现面向服务的架构
- 1.1 面向服务的架构概览
- 1.2 理解标准化服务约定
- 1.3 理解耦合
- 1.4 理解服务抽象
- 1.5 设计可复用服务
- 1.6 理解服务自治和服务组合
- 1.7 理解服务的无状态性
- 1.8 一个服务示例
- 1.9 总结
- 第2章 理解应用程序架构
- 2.1 使用架构模式
- 2.2 架构模式概览
- 2.3 MVP、MVC和MVVM的区别
- 2.4 处理UI事件
- 2.5 模式如何工作
- 2.6 应该选择哪种模式
- 2.7 总结
- 第3章 单元测试
- 3.1 一个单元测试示例
- 3.2 创建单元测试
- 3.3 编写测试
- 3.4 检测异常
- 3.5 理解Assert的强大
- 3.6 单元测试与集成测试比较
- 3.7 使用InternalsVisibleTo属性
- 3.8 理解测试驱动开发
- 3.9 了解单元测试的更多内容
- 3.10 总结
- 第4章 理解依赖倒置原则
- 4.1 理解紧耦合
- 4.2 实现抽象工厂模式
- 4.3 引入接口
- 4.4 创建单元测试
- 4.5 理解服务定位
- 4.6 使用依赖注入
- 4.7 为什么服务定位对再工程来说更好
- 4.8 总结
- 第5章 对单元测试使用测试替身
- 5.1 测试替身如何工作
- 5.2 测试替身可以满足什么需要
- 5.3 创建存根
- 5.4 创建模拟
- 5.5 使用模拟系统服务
- 5.6 了解测试替身的更多内容
- 5.7 总结
- 第二部分 再工程
- 第6章 回顾最初的解决方案
- 6.1 分析代码
- 6.2 分析一般代码结构
- 6.3 管理语言迁移
- 6.4 删除死代码
- 6.5 使用全局变量
- 6.6 适度代码转换
- 6.7 使用自动化代码转换实用工具
- 6.8 使用数据访问技术
- 6.9 总结
- 第7章 项目规划
- 7.1 管理期望
- 7.2 创建再工程团队
- 7.3 识别开发工具和生成过程
- 7.4 清理旧版解决方案
- 7.5 建立基础
- 7.6 重构以使用基本服务
- 7.7 重构以使用高级服务
- 7.8 向利益相关者报告进展情况
- 7.9 管理沟通和培训
- 7.10 总结
- 第8章 识别开发工具和生成过程
- 8.1 使用源代码管理
- 8.2 理解集中式系统和分布式系统的优缺点
- 8.3 评估主机托管服务
- 8.4 管理功能和缺陷
- 8.5 使用持续集成服务器和生成服务器
- 8.6 使用Visual Studio 2010开发工具
- 8.7 总结
- 第9章 清理旧版解决方案
- 9.1 组织文件系统
- 9.2 项目结构化
- 9.3 确定项目类别
- 9.4 理解项目类型
- 9.5 再工程项目建议
- 9.6 重构解决方案结构
- 9.7 影响逻辑的重构
- 9.8 总结
- 第10章 建立基础
- 10.1 添加新项目
- 10.2 使用Prism、Unity和Enterprise Library版本
- 10.3 修改外壳程序
- 10.4 创建服务定位器
- 10.5 建立Bootstrapper类
- 10.6 总结
- 第11章 服务的基本重构
- 11.1 使用DialogService
- 11.2 使用LogWriterService
- 11.3 跟踪会话信息
- 11.4 以SOA方式访问资源
- 11.5 使用消息聚合器
- 11.6 转换静态类
- 11.7 重构静态类
- 11.8 总结
- 第12章 服务的高级重构
- 12.1 使用知识库模式
- 12.2 使用通用对象管理器
- 12.3 用命令调度服务简化复杂代码
- 12.4 总结
- 第13章 重构为控制器
- 13.1 使用旧版方法创建窗体
- 13.2 准备视图
- 13.3 引入控制器
- 13.4 优化控制器
- 13.5 总结
- 附录 用Visual Studio 2012再工程.NET项目
- 用Visual Studio 2012检验源代码管理
- 管理并行开发
- 隔离下做出更改
- 用Visual Studio 2012进行单元测试
- 写入一个单元测试方法
- 运行单元测试
- 使用“编辑并继续”功能
- 使用持续测试运行程序
- 使用Fakes为“不可测试”的代码编写单元测试
- 使用代码度量查找难维护的代码
- 查找代码重复项
- 总结
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。