软件再工程 优化现有软件系统的方法与最佳实践PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:(美)BradleyIrby著
- 出 版 社:北京:机械工业出版社
- 出版年份:2014
- ISBN:9787111448815
- 页数:253 页
译者序 2
前言 2
第一部分 目标架构 2
第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
第二部分 再工程 104
第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
- 《管理信息系统习题集》郭晓军 2016
- 《信息系统安全技术管理策略 信息安全经济学视角》赵柳榕著 2020
- 《语文教育教学实践探索》陈德收 2018
- 《彼得·布鲁克导演实践研究》邓小玲著 2019
- 《反思性实践》胡红梅, 2019
- 《软件工程》齐治昌,谭庆平,宁洪编著 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《系统解剖学速记》阿虎医考研究组编 2019
- 《环境影响评价公众参与理论与实践研究》樊春燕主编 2019
- 《慢性呼吸系统疾病物理治疗工作手册》(荷)瑞克·考斯林克(RikGosselink) 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019