网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 软件再工程(优化现有软件系统的方法与最佳实践)/软件工程技术丛书
分类
作者 (美)厄比
出版社 机械工业出版社
下载
简介
编辑推荐

软件再工程的目标是通过引入现代的体系结构和软件开发技术来逐步改善现有系统,同时在保证在线的情况下持续不断为系统增加新的功能。对于技术经理和产品经理来说,厄比著的《软件再工程(优化现有软件系统的方法与最佳实践)/软件工程技术丛书》描述了提高系统可靠性的必要过程,其使得系统运行更快,更易维护以及更少的缺陷。本书包含了新体系结构可能的选择以及完成关键部分的必要代码的详细描述。它包含了有关通过添加现代体系结构和自动化测试方法如何增量提高应用程序的结构和质量。按照本书中概括的步骤,可以提高应用程序的质量以及使得添加新功能变得更加容易和快速。

内容推荐

再工程领域的集大成之作,由有20余年实践经验的杰出CTO 、资深软件架构师撰写,亚马逊全五星好评,指引你学会如何以最小的花费,在最短的时间通过再工程方法使旧版系统焕发新生。本书结合真实案例和示例代码,充分展示探究旧有代码真实状态、制定再工程计划、引入最新的工具和方法以提升性能的思维、方法和最佳实践,从而将新架构以及开发进展集成到不可离线的关键业务系统中。

《软件再工程(优化现有软件系统的方法与最佳实践)/软件工程技术丛书》共分两部分。第一部分包括第1~5章。第1章以面向服务的架构为基础,讲解如何明确最终目标的架构。第2章分析3种常见架构模式的区别、工作机制,以及如何选择适用的架构和设计模式。第3章以一个较高的层次重新认识单元测试的理念和实现。第4章讲解如何利用依赖倒置原则打破应用程序的紧耦合,以便进行优化。第5章介绍对单元测试使用测试替身的要点。第二部分包括第6~13章。第6章介绍如何从整体上认识再工程项目的原解决方案,辨析当前代码的真实状态。第7章分析再工程团队在项目规划和管理方面所面临的挑战,并给出解决方案。第8章介绍高效的再工程工具、方法。第9章介绍如何清除旧版解决方案。第10章讲解具体添加核心服务、类、库的方法,以建立再工程基础。第11章讨论如何将新的架构整合到旧版系统。第12章介绍架构重构中的一些重难点任务。第13章讲解将窗体重构为控制器的方法和具体步骤。

《软件再工程(优化现有软件系统的方法与最佳实践)/软件工程技术丛书》厄比著。

目录

译者序

前言

第一部分 目标架构

第1章 实现面向服务的架构 2

1.1 面向服务的架构概览 2

1.2 理解标准化服务约定 3

1.3 理解耦合 8

1.4 理解服务抽象 10

1.5 设计可复用服务 13

1.6 理解服务自治和服务组合 13

1.7 理解服务的无状态性 13

1.8 一个服务示例 18

1.9 总结 19

第2章 理解应用程序架构 20

2.1 使用架构模式 20

2.2 架构模式概览 20

2.3 MVP、MVC和MVVM的区别 21

2.3.1 模型访问 22

2.3.2 视图模型 23

2.4 处理UI事件 28

2.5 模式如何工作 32

2.6 应该选择哪种模式 33

2.7 总结 34

第3章 单元测试 35

3.1 一个单元测试示例 35

3.2 创建单元测试 36

3.3 编写测试 38

3.4 检测异常 43

3.5 理解Assert的强大 46

3.6 单元测试与集成测试比较 46

3.7 使用InternalsVisibleTo属性 46

3.8 理解测试驱动开发 48

3.9 了解单元测试的更多内容 49

3.10 总结 49

第4章 理解依赖倒置原则 50

4.1 理解紧耦合 50

4.2 实现抽象工厂模式 56

4.3 引入接口 59

4.4 创建单元测试 62

4.5 理解服务定位 63

4.5.1 控制反转容器 63

4.5.2 服务定位器 66

4.5.3 一个真实的示例 68

4.5.4 按需服务属性 72

4.5.5 单元测试的优点 75

4.5.6 最后调整 75

4.6 使用依赖注入 78

4.7 为什么服务定位对再工程来说更好 82

4.8 总结 86

第5章 对单元测试使用测试替身 87

5.1 测试替身如何工作 87

5.2 测试替身可以满足什么需要 87

5.3 创建存根 90

5.4 创建模拟 94

5.4.1 第二个模拟示例 97

5.4.2 第三个模拟示例 98

5.5 使用模拟系统服务 99

5.6 了解测试替身的更多内容 101

5.7 总结 101

第二部分 再工程

第6章 回顾最初的解决方案 104

6.1 分析代码 104

6.1.1 基础架构 105

6.1.2 代码结构 105

6.1.3 数据库访问 106

6.1.4 数据结构 106

6.1.5 外部接口 106

6.1.6 应用程序控件与窗体控件 107

6.2 分析一般代码结构 107

6.3 管理语言迁移 108

6.4 删除死代码 108

6.5 使用全局变量 109

6.6 适度代码转换 111

6.7 使用自动化代码转换实用工具 112

6.8 使用数据访问技术 113

6.8.1 侦测数据模型 113

6.8.2 侦测数据访问模式 115

6.9 总结 115

第7章 项目规划 116

7.1 管理期望 116

7.2 创建再工程团队 116

7.3 识别开发工具和生成过程 117

7.3.1 引入源代码管理 117

7.3.2 引入缺陷跟踪 118

7.3.3 安装和使用持续集成服务器 118

7.4 清理旧版解决方案 119

7.5 建立基础 119

7.6 重构以使用基本服务 120

7.7 重构以使用高级服务 121

7.8 向利益相关者报告进展情况 121

7.9 管理沟通和培训 122

7.10 总结 122

第8章 识别开发工具和生成过程 123

8.1 使用源代码管理 123

8.1.1 源代码管理的类型 123

8.1.2 第一个流程示例:使用分布式系统 124

8.1.3 第二个流程示例:使用分布式系统 125

8.1.4 第三个流程示例:使用集中式系统 125

8.2 理解集中式系统和分布式系统的优缺点 125

8.2.1 使用别人的共享代码 126

8.2.2 与别人共享代码并审查更改 126

8.2.3 备份代码 126

8.2.4 管理签入频率 126

8.2.5 管理合并冲突 127

8.2.6 管理控制 127

8.2.7 优缺点的最后说明 127

8.3 评估主机托管服务 127

8.3.1 使用Apache Subversion 128

8.3.2 使用微软的团队基础服务器 128

8.3.3 使用Git 129

8.4 管理功能和缺陷 129

8.4.1 管理自定义工作流 129

8.4.2 管理敏捷开发 130

8.4.3 管理报告 130

8.5 使用持续集成服务器和生成服务器 130

8.6 使用Visual Studio 2010开发工具 131

8.6.1 Visual Studio的重构工具 131

8.6.2 第三方重构工具 132

8.7 总结 133

第9章 清理旧版解决方案 134

9.1 组织文件系统 134

9.2 项目结构化 135

9.3 确定项目类别 136

9.4 理解项目类型 137

9.4.1 应用程序无关项目 137

9.4.2 通用UI项目 137

9.4.3 模型无关项目 138

9.4.4 模型特定项目 138

9.5 再工程项目建议 138

9.5.1 常量 138

9.5.2 数据传输对象项目 139

9.5.3 接口 140

9.5.4 服务 140

9.5.5 域模型项目 141

9.5.6 Repository项目 141

9.5.7 控制器、视图模型和表示器 142

9.6 重构解决方案结构 142

9.6.1 去除不必要的Using语句 142

9.6.2 分离单元测试和集成测试 143

9.6.3 将类移动到合适的项目 143

9.6.4 将快捷方式移动到库 144

9.7 影响逻辑的重构 144

9.7.1 将初始化逻辑移动到构造器内 145

9.7.2 用卫语句代替嵌套的if语句 146

9.7.3 去除对实体类构造器的访问 150

9.8 总结 150

第10章 建立基础 151

10.1 添加新项目 151

10.2 使用Prism、Unity和Enterprise Library 版本 151

10.3 修改外壳程序 154

10.3.1 创建IBaseView 154

10.3.2 修改当前外壳程序 155

10.3.3 添加一个外壳程序控制器 156

10.4 创建服务定位器 157

10.5 建立Bootstrapper类 159

10.5.1 创建Winforms引导程序 159

10.5.2 更新Winforms Program类 161

10.5.3 创建一个WPF应用程序和引导程序 163

10.5.4 使用替代引导程序的配置 166

10.6 总结 168

第11章 服务的基本重构 169

11.1 使用DialogService 169

11.1.1 单元测试 173

11.1.2 重构DialogService 178

11.1.3 添加单元测试 179

11.2 使用LogWriterService 179

11.3 跟踪会话信息 184

11.4 以SOA方式访问资源 186

11.5 使用消息聚合器 190

11.6 转换静态类 194

11.7 重构静态类 194

11.8 总结 195

第12章 服务的高级重构 196

12.1 使用知识库模式 196

12.1.1 用域模型创建知识库 203

12.1.2 再工程知识库的方法 207

12.1.3 转换现有代码以使用域模型 207

12.1.4 向域模型中添加数据验证 208

12.1.5 再工程域模型以使用验证 212

12.2 使用通用对象管理器 212

12.3 用命令调度服务简化复杂代码 217

12.4 总结 225

第13章 重构为控制器 226

13.1 使用旧版方法创建窗体 226

13.2 准备视图 229

13.3 引入控制器 230

13.4 优化控制器 231

13.5 总结 233

附录 用Visual Studio 2012 再工程.NET项目 234

随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/3/1 20:31:18