第Ⅰ部分 Team Architect第1章 可视化设计器 3
1.1 为什么进行可视化设计 3
1.2 微软的建模战略 4
1.2.1 模型驱动的开发 5
1.2.2 DSL 6
1.2.3 软件工厂 7
1.3 从对象到服务 7
1.3.1 对象和编译期的重用 7
1.3.2 组件和部署期的重用 8
1.3.3 分布式的组件和运行时的重用 9
1.3.4 分布式服务和面向服务架构 10
1.4 可视化设计器 11
1.4.1 应用程序设计器 12
1.4.2 逻辑数据中心设计器 12
1.4.3 系统设计器和部署设计器 13
1.4.4 类设计器 14
1.4.5 代码同步 15
1.5 StockBroker案例分析 16
1.6 设计器之间的关系与Team System集成 16
1.6.1 过程流(角色与行为) 17
1.6.2 对象流 18
1.6.3 设置和约束 19
1.6.4 源代码管理和工作项跟踪 19
1.7 系统定义模型(SDM) 19
1.7.1 元模型 20
1.7.2 SDM和Team System元模型 20
1.8 UML 21
1.8.1 如何利用UML技术 21
1.8.2 利用在UML上的投入 22
1.8.3 获得完全集成UML的能力 22
1.8.4 Visio for Enterprise Architects的保留作用 23
1.9 本章小结 24
第2章 使用应用程序设计器进行建模 25
2.1 应用程序设计器工具箱和原型 25
2.1.1 通用设计器 26
2.1.2 终结点 26
2.1.3 应用程序 27
2.2 设计分布式系统 28
2.2.1 设计场景 28
2.2.2 设计特点与UML进行对比 29
2.2.3 使用应用程序设计器来实现设计的重用 30
2.3 实现这些应用程序 36
2.3.1 SDM文件的注释 37
2.3.2 MarketMaker的实现 37
2.3.3 StockBroker的实现 40
2.3.4 StockQuoteApp实现 43
2.3.5 DealingApp应用程序 45
2.4 应用程序设计器的其他功能 47
2.4.1 模型和代码同步 47
2.4.2 对现有的解决方案进行逆向工程 47
2.4.3 设置和限制编辑器 48
2.4.4 打印和复制设计图 48
2.5 应用程序关系图的限制与解决方法 49
2.5.1 对.NET Remoting和DCOM应用程序进行建模 49
2.5.2 Windows服务和控制台应用程序建模 50
2.5.3 动态建模 50
2.6 本章小结 51
第3章 使用逻辑数据中心设计器对逻辑基础设施建模 53
3.1 逻辑数据中心设计器的工具箱与原型 53
3.1.1 通用设计器 54
3.1.2 终结点 54
3.1.3 逻辑服务器 55
3.2 实例的逻辑数据中心 55
3.2.1 数据中心区域 56
3.2.2 终结点的样式 57
3.2.3 UML部署图:相似但并不相同 58
3.3 为StockBroker应用程序定义逻辑数据中心 59
3.3.1 MarketMaker区域 59
3.3.2 StockMarket区域 61
3.3.3 StockBroker区域 62
3.3.4 客户端区域 63
3.4 设置和约束 64
3.4.1 设置和约束 64
3.4.2 GenericServer的设置和约束 65
3.4.3 IISWebServer设置和约束 65
3.4.4 WebSiteEndpoint的设置和约束 67
3.4.5 ZoneEndpoint的设置和约束 67
3.4.6 自定义设置和用户定义的约束 68
3.4.7 导入IIS设置向导 69
3.5 自定义可重用的原型 69
3.5.1 StockBrokerZone原型 70
3.5.2 使用原型进行团队协作 70
3.6 本章小结 71
第4章 使用系统设计器和部署设计器定义系统和验证部署 73
4.1 系统设计器和部署设计器 73
4.1.1 系统设计器 73
4.1.2 部署设计器 74
4.1.3 工具箱和系统视图 74
4.2 从应用程序设计器定义默认的部署 75
4.2.1 系统视图 76
4.2.2 将应用程序绑定到服务器 77
4.2.3 默认部署和系统部署的区别 79
4.3 定义和部署系统 80
4.3.1 针对整个应用设计的系统定义 80
4.3.2 针对应用程序设计子集的系统定义 80
4.3.3 定义部署 81
4.3.4 嵌套的系统 82
4.4 创建系统关系图 82
4.5 系统设置和约束 83
4.6 部署报告 84
4.6.1 人类可读的部署报告 84
4.6.2 计算机可读的部署报告和自动部署 86
4.7 UML部署图:相似但不相同 87
4.8 本章小结 88
第5章 使用类设计器进行类建模 91
5.1 类设计器工具箱和类型 91
5.2 从代码到类关系图 93
5.2.1 再次使用StockBroker——从代码到类关系图 93
5.2.2 对成员进行可视化 98
5.3 从类关系图到代码 98
5.3.1 使用类设计器设计StockDeal类 99
5.3.2 使用方法 104
5.3.3 使用其他类型 104
5.3.4 使用接口 106
5.3.5 生成类关系图 107
5.4 高级议题 108
5.4.1 代码同步 109
5.4.2 类关系图中的.NET Framework类 109
5.4.3 模式 110
5.4.4 构建自定义的模式库 111
5.4.5 动态建模 113
5.5 与UML类关系图进行比较 115
5.6 本章小结 117
第6章 DSL工具 119
6.1 DSL 119
6.2 生成设计器 120
6.3 创建项目 121
6.4 创建导航语言 122
6.5 创建图形化的语言 128
6.5.1 定义图形 129
6.5.2 定义连接器 129
6.5.3 定义工具箱 130
6.5.4 提供图形映射 131
6.5.5 提供连接器映射 132
6.6 使用设计器 133
6.7 使用域模型 136
6.8 生成代码 137
6.9 设计器与VSTS 141
6.10 本章小结 143
第7章 动态系统计划与系统定义模型 145
7.1 动态系统计划(DSI) 146
7.2 系统定义模型(SDM) 147
7.2.1 SDM架构 148
7.2.2 设计时验证 150
7.2.3 Visual Studio 2005 Team Edition for Software Architects中的SDM 151
7.2.4 部署 152
7.2.5 对系统的各层进行建模 153
7.2.6 SDM类型 154
7.2.7 SDM Schema结构 155
7.2.8 定义复杂类型 157
7.2.9 ObjectDefinition复杂类型 158
7.2.10 RelationshipDefinition复杂类型 162
7.2.11 Member复杂类型 163
7.2.12 设置 165
7.2.13 约束 168
7.2.14 SDM文档 172
7.2.15 原型和分布式系统设计器 174
7.2.16 SDM SDK 175
7.2.17 SDM命令行编译器 176
7.3 SDM实例 177
7.3.1 SystemDefinition 178
7.3.2 设置 180
7.3.3 终结点 181
7.3.4 通信和委托 184
7.3.5 包含 185
7.3.6 Hosting 189
7.3.7 流 190
7.3.8 约束 191
7.3.9 创建自定义的约束 195
7.3.10 SdmC 199
7.3.11 ProtoGen 200
7.3.12 注册表 201
7.3.13 Visual Studio 201
7.4 本章小结 202
第Ⅱ部分 Team Developer第8章 托管代码分析 205
8.1 使用分析工具的必要性 205
8.2 使用托管代码分析 206
8.2.1 内置的托管代码分析规则 207
8.2.2 启用托管代码分析 208
8.2.3 执行静态代码分析 209
8.2.4 处理规则违背 211
8.3 使用命令行分析工具 214
8.3.1 FxCopCmd选项 214
8.3.2 FxCopCmd项目文件 215
8.3.3 生成过程代码分析集成 217
8.4 创建代码分析规则 217
8.4.1 Reflection与Introspection 217
8.4.2 创建一条新规则 218
8.5 本章小结 224
第9章 C/C++代码分析 227
9.1 理解静态代码分析 228
9.2 C/C++代码分析器的工作方式 228
9.3 Visual Studio 2005集成 230
9.3.1 启用和禁用C/C++代码分析 230
9.3.2 在Visual Studio 2005中设置警告级别 231
9.3.3 查看代码分析警告与错误 231
9.4 支持命令行 232
9.5 支持注释 234
9.5.1 在C++中使用注释 235
9.5.2 在C中使用注释 235
9.6 支持#pragma 236
9.7 与Team Foundation Server集成 238
9.7.1 使用C/C++代码分析创建签入策略 238
9.7.2 为C/C++代码设置签入说明 239
9.7.3 从代码分析警告中创建工作项 241
9.8 识别和最小化噪音 241
9.9 工具的局限性 242
9.10 本章总结 242
第10章 应用程序验证工具 245
10.1 安装和配置 246
10.2 对堆进行查错 248
10.3 对句柄进行查错 251
10.4 对锁进行查错 252
10.5 应用程序验证工具 254
10.6 对应用程序验证工具进行编程 259
10.7 本章小结 261
第11章 重构与代码段 263
11.1 从类图进行重构 264
11.1.1 提取接口 264
11.1.2 实现抽象类 267
11.2 代码重构 268
11.2.1 重命名 268
11.2.2 封装字段 270
11.2.3 提取方法 273
11.2.4 将局部变量提升为参数 275
11.2.5 重新排列参数 276
11.2.6 移除参数 277
11.2.7 Generate Method Stub 278
11.3 利用代码段来提高代码质量 279
11.3.1 在Visual Basic中使用代码段 279
11.3.2 在Visual C#中使用代码段 281
11.3.3 代码段管理器 282
11.4 本章小结 284
第12章 性能分析与性能 287
12.1 概述性能分析 287
12.1.1 性能工具的类型 288
12.1.2 Team System性能工具 288
12.2 使用Team Developer的性能工具 288
12.2.1 创建实例应用程序 289
12.2.2 创建性能会话 290
12.2.3 性能资源管理器 293
12.2.4 配置采样会话 297
12.2.5 配置检测会话 298
12.2.6 执行性能会话 299
12.2.7 管理会话报告 299
12.2.8 读取和解析会话报告 300
12.3 命令行执行 308
12.3.1 配置检测 308
12.3.2 设置环境变量 308
12.3.3 执行性能会话 309
12.3.4 生成报告 310
12.4 通过编程来修改检测 310
12.5 常见的性能分析问题 312
12.5.1 调试符号 312
12.5.2 检测和代码覆盖率 313
12.5.3 虚拟机 313
12.5.4 ASP.NET性能分析 313
12.6 本章小结 313
第Ⅲ部分 Team Tester 317
第13章 测试用例管理 317
13.1 测试项目 317
13.1.1 创建测试项目 318
13.1.2 设置测试项目选项 319
13.2 管理测试用例 320
13.2.1 测试管理器 320
13.2.2 测试视图 325
13.3 使用测试结果 326
13.3.1 测试结果窗口 326
13.3.2 排序、分组和筛选测试结果 327
13.3.3 导出测试结果 327
13.3.4 使用测试结果XML(TRX)文件 328
13.3.5 发布结果 328
13.4 使用顺序测试 329
13.4.1 创建顺序测试 330
13.4.2 顺序测试属性 331
13.4.3 分析和执行顺序测试 331
13.5 本章小结 332
第14章 使用单元测试框架进行单元测试 335
14.1 单元测试的概念 335
14.1.1 单元测试的优点 336
14.1.2 编写有效的单元测试 336
14.1.3 测试驱动的开发 337
14.1.4 第三方工具 339
14.2 Team System单元测试 339
14.2.1 创建单元测试 339
14.2.2 管理和运行单元测试 342
14.2.3 测试运行配置 344
14.2.4 测试结果 345
14.2.5 调试单元测试 345
14.3 使用单元测试框架编程 345
14.3.1 初始化和清空单元测试 346
14.3.2 使用Assert方法 349
14.3.3 使用CollectionAssert类 351
14.3.4 使用StringAssert类 353
14.3.5 预期异常 353
14.3.6 自定义的单元测试属性 354
14.3.7 TestContext类 354
14.3.8 创建数据驱动的单元测试 355
14.4 在测试中访问非公共的成员 356
14.4.1 使用PrivateObject访问非公有实例的成员 356
14.4.2 使用PrivateType访问非公有的静态成员 359
14.5 代码生成 360
14.5.1 从代码中生成单元测试 360
14.5.2 从单元测试中生成代码 363
14.6 单元测试ASP.NET应用程序 365
14.6.1 ASP.NET单元测试的属性 365
14.6.2 创建ASP.NET单元测试 365
14.7 代码覆盖率 367
14.7.1 启用代码覆盖率 367
14.7.2 查看代码覆盖率结果 368
14.8 本章小结 369
第15章 Web测试和负载测试 371
15.1 Web测试 371
15.1.1 创建Web应用程序实例 372
15.1.2 创建和配置Web测试 374
15.1.3 数据驱动的Web测试 384
15.1.4 编码的Web测试 385
15.2 负载测试 387
15.2.1 创建和配置负载测试 388
15.2.2 编辑负载测试 394
15.2.3 执行负载测试 397
15.2.4 查看和解析负载测试结果 397
15.3 命令行测试执行 400
15.3.1 执行测试 401
15.3.2 执行测试列表 401
15.3.3 其他测试选项 401
15.4 分布式的负载测试 401
15.4.1 安装控制器和代理 402
15.4.2 配置控制器 402
15.4.3 配置代理 403
15.4.4 测试运行配置 403
15.4.5 运行分布式负载测试 404
15.4.6 查看分布式负载测试 404
15.5 本章小结 405
第16章 手动测试 407
16.1 自动测试与手动测试 407
16.1.1 自动测试 408
16.1.2 手动测试 409
16.2 测试用例 410
16.3 计划手动测试 411
16.4 Team System中的手动测试 412
16.4.1 生成手动测试 412
16.4.2 配置手动测试的选项 414
16.4.3 手动测试模板 416
16.4.4 手动测试的结构 421
16.5 管理手动测试 423
16.5.1 使用测试管理器 423
16.5.2 将手动测试记录为Bug工作项 424
16.5.3 在Team Foundation Server上发布测试结果 425
16.6 本章小结 426
第17章 一般测试 429
17.1 创建和运行一般测试 430
17.1.1 创建一般测试 430
17.1.2 运行一般测试 435
17.2 创建外部测试工具 437
17.2.1 Scripting Host实例 437
17.2.2 托管代码实例 438
17.3 扩展返回结果 440
17.3.1 摘要报告的XML Schema 441
17.3.2 摘要报告XML文件实例 443
17.4 连接到现有的测试系统 444
17.4.1 创建与NUnit的连接 444
17.4.2 JScript转换代码 446
17.5 本章小结 450
第Ⅳ部分 Team Foundation第18章 Team Foundation架构 453
18.1 什么是Team Foundation Server 453
18.1.1 团队过程 454
18.1.2 Microsoft Solutions Framework(MSF) 454
18.1.3 项目管理指南 454
18.1.4 Team Foundation功能 455
18.1.5 版本控制 455
18.1.6 工作项跟踪 459
18.1.7 团队项目门户 460
18.1.8 Team Foundation Build 460
18.1.9 Team Foundation报告 460
18.1.10 Team Foundation核心服务 461
18.1.11 Team Edition Test Load Agent 461
18.2 Team Foundation架构 461
18.2.1 Team Foundation客户端 462
18.2.2 团队资源管理器 463
18.2.3 Team Foundation Build 465
18.2.4 Team Foundation报告数据仓库的架构 466
18.2.5 配置 468
18.3 本章小结 469
第19章 项目管理工具和团队报告 471
19.1 创建软件项目 472
19.1.1 软件开发项目失败的原因 473
19.1.2 使用新建团队项目向导 473
19.2 管理项目的详细信息 476
19.2.1 连接到Team Foundation Server 477
19.2.2 配置项目设置 478
19.2.3 项目警告 481
19.2.4 团队门户自定义和可扩展性 483
19.2.5 删除团队项目 485
19.3 工作项跟踪 485
19.3.1 剖析工作项 485
19.3.2 使用Visual Studio创建工作项 486
19.3.3 创建和运行工作项查询 488
19.3.4 使用Microsoft Office创建和指派工作项 488
19.3.5 创建和自定义工作项类型 491
19.4 Team Foundation Server报告 493
19.4.1 使用团队报告 493
19.4.2 使用Microsoft Excel透视表查看报告 497
19.4.3 构建自定义的报告 498
19.4.4 报告站点的安全性 500
19.5 本章小结 501
第20章 Team Foundation版本控制 503
20.1 比较Team Foundation版本控制和Visual SourceSafe(VSS)2005 504
20.2 配置版本控制 509
20.2.1 配置安全角色 510
20.2.2 配置工作区 510
20.3 使用源代码资源管理器 511
20.3.1 工作区 512
20.3.2 在源代码库中添加项目 515
20.4 签入和签出 516
20.4.1 签入一个项 516
20.4.2 签出一个项 517
20.4.3 创建和管理签入策略 517
20.5 分支与合并 519
20.5.1 分支 520
20.5.2 合并 521
20.6 搁置 522
20.7 命令行工具 524
20.8 本章小结 525
第21章 Microsoft Solutions Framework 527
21.1 关于Microsoft Solutions Framework 527
21.1.1 MSF概述 528
21.1.2 获得Microsoft Solutions Framework 530
21.2 MSF for Agile Software Development 530
21.3 MSF for CMMI Process Improvement 532
21.3.1 能力等级3 534
21.3.2 CMMI 3级与MSF for CMMI Process Improvement 535
21.4 选择合适的过程 537
21.5 基础概念 537
21.5.1 过程模板组件 537
21.5.2 迭代过程 538
21.5.3 周期 539
21.5.4 角色 539
21.5.5 监控、跟踪和活动 540
21.5.6 工作项类型 541
21.5.7 报告 544
21.6 团队模型 545
21.6.1 支持组 546
21.6.2 思维方式 547
21.7 角色 547
21.7.1 业务分析人员 548
21.7.2 项目经理 549
21.7.3 架构师 549
21.7.4 开发人员 550
21.7.5 测试人员 550
21.7.6 发布经理 551
21.7.7 用户体验 551
21.8 工作流 551
21.9 本章小结 552
第22章 过程模板 553
22.1 新建团队项目向导 553
22.2 自定义工具 554
22.2.1 XML/XSL编辑器 554
22.2.2 Microsoft InfoPath 2003 554
22.2.3 MSF HTML Build工具 556
22.2.4 第三方工具 556
22.3 自定义过程指南 556
22.3.1 分析过程指南(ProcessGuidance.xml) 557
22.3.2 创建工作流和活动 557
22.3.3 创建工作项文档 560
22.3.4 创建自定义的角色 561
22.3.5 交叉引用 561
22.3.6 查看自定义的指南 562
22.4 自定义过程模板 562
22.4.1 下载过程模板到你的计算机 562
22.4.2 浏览过程模板 563
22.4.3 修改模板定义 564
22.4.4 将过程模板加载到Team Foundation Server 582
22.4.5 删除过程模板 583
22.5 测试自定义的过程模板 583
22.6 本章小结 583
第23章 Team Foundation Build 585
23.1 安装Team Foundation Build 587
23.1.1 计划生成策略 588
23.1.2 配置你的生成实验室 588
23.1.3 Team System集成 589
23.1.4 设置生成安全性 589
23.2 使用Team Foundation Build 590
23.2.1 创建生成类型 590
23.2.2 电子邮件通知 594
23.2.3 执行本地生成 595
23.2.4 获得Team Foundation Build状态 596
23.3 命令行接口 596
23.3.1 开始生成 596
23.3.2 删除生成 597
23.3.3 停止生成 597
23.3.4 设置每夜生成 597
23.3.5 连续集成(CI) 599
23.4 Team Foundation Build报告 599
23.5 生成自定义和可扩展性 602
23.6 本章小结 604
第24章 部署和管理 605
24.1 设置操作团队 606
24.2 计划部署 607
24.2.1 不支持的部署场景 607
24.2.2 负载计划 607
24.2.3 用户账户 608
24.2.4 防火墙配置 609
24.2.5 网络拓扑 609
24.2.6 制定测试计划 611
24.2.7 考虑测试平台 612
24.3 考虑迁移和集成现有的工具 612
24.3.1 版本控制 613
24.3.2 工作项跟踪 613
24.3.3 报告 614
24.3.4 测试工具 614
24.4 备份和恢复 615
24.5 许可模型 616
24.6 本章小结 616