目录 1
对本书的赞誉 1
序 1
前言 1
第1章 软件再工程模式 1
为什么我们要实施软件再工程 1
序 2
对象技术有什么特殊 3
再工程生命周期 4
再工程模式 7
再工程模式的形式 8
再工程模式图谱 9
第一部分 反向工程 13
第2章 设定方向 13
影响因素 13
概述 13
模式2.1:遵循基本准则 14
模式2.2:指派一名领航员 14
模式2.3:在圆桌会议上发言 15
模式2.4:最有价值的优先 15
模式2.5:修正问题,而非消除症状 17
模式2.6:如果还没有坏,就不要修补它 18
模式2.7:保持简单 18
影响因素 21
第3章 首次接触 21
概述 22
下一步 23
模式3.1:与维护人员交谈 23
模式3.2:在一小时内通读所有代码 27
模式3.3:浏览文档 31
模式3.4:在演示中采访 35
模式3.5:模拟安装 40
第4章 初始理解 45
影响因素 45
下一步 46
概述 46
模式4.1:分析持久数据 47
模式4.2:推测设计 52
模式4.3:研究异常实体 57
第5章 详细模型获取 65
影响因素 65
概述 65
下一步 66
模式5.1:绑定代码和问题 66
模式5.2:为理解而重构 70
模式5.3:步进执行 72
模式5.4:寻找约定 74
模式5.5:向过去学习 76
第二部分 再工程 81
第6章 测试:生命的保障 81
影响因素 81
概述 82
模式6.1:为推动演化而编写测试 82
模式6.2:增量式扩充测试库 85
模式6.3:使用测试框架 87
模式6.4:测试接口而非实现 92
模式6.5:记录业务规则作为测试 94
模式6.6:为理解而编写测试 96
概述 99
影响因素 99
第7章 移植策略 99
模式7.1:让用户参与 100
模式7.2:建立信心 101
模式7.3:增量式移植系统 102
模式7.4:原型化目标解决方案 104
模式7.5:总保持一个运行版本 105
模式7.6:每次改变之后进行回归测试 106
模式7.7:建立通往新城镇的桥梁 107
模式7.8:提供正确的接口 108
模式7.9:区分公共的和已发布的接口 109
模式7.10:失效过时接口 110
模式7.12:在优化前使用分析器 112
模式7.11:保持熟悉度 112
第8章 检测重复代码 115
影响因素 115
概述 115
模式8.1:机械地比较代码 116
模式8.2:将代码可视化成点状图 120
第9章 重新分布责任 125
影响因素 125
概述 125
模式9.1:使行为更靠近数据 126
模式9.2:消除导航代码 133
模式9.3:分解全能类 140
第10章 转换条件分支到多态 145
影响因素 145
概述 145
模式10.1:转换对自身类型的检查 146
模式10.2:转换对调用者类型的检查 152
模式10.3:提取状态 158
模式10.4:提取策略 160
模式10.5:引进空对象 162
模式10.6:转化条件分支为注册 164
附录 模式简介 171
参考文献 176