文件名称:高级系统架构师培训教程
文件大小:1.94MB
文件格式:PDF
更新时间:2016-10-01 05:36:26
系统架构师 教程
目录 前言 ............... - 6 - 第一章 现代软件开发过程及架构策略 ......... - 7 - 1.1 软件架构设计师的的知识体系 ................ - 7 - 一、软件架构的定义与问题 ............. - 7 - 二、在信息技术战略规划(ITSP)中的软件架构 ............. - 8 - 1.2 从线性模型到迭代模型 ............. - 9 - 一、经典软件开发过程模型 .................... - 10 - 二、经典项目过程导致失败的原因 .............. - 10 - 三、软件开发增量模型的提出 ................... - 12 - 1.3 大型项目敏捷模型中的架构设计 ............ - 13 - 一、敏捷开发的价值观 ................ - 14 - 二、项目的敏捷开发方法 ............ - 14 - 三、在大型敏捷项目多维度扩展下的架构 ................. - 17 - 1.4 选择合适的软件工程策略 .................. - 18 - 一、软件工程策略的分类 ............ - 18 - 二、利用风险分析选择合适的工程项目策略 ................ - 21 - 小结: .................... - 22 - 第二章 从系统工程的角度构建架构 .......... - 23 - 2.1 前景文档与设计方向 .............. - 23 - 2.2 架构层面的用例方法 ............. - 25 - 一、用例的完整概念 ................. - 25 - 二、用例是规范行为的契约 .................... - 26 - 三、用例的目标层次 ................. - 29 - 2.3 架构层面的需求分析 .............. - 31 - 一、业务用例的分析 ................. - 31 - 二、产品边界的确定 ................. - 33 - 三、业务用例与产品用例 ............ - 33 - 2.4 从问题域到用例模型 .............. - 34 - 一、产品问题域与概念 ................ - 34 - 二、产品需求分析 .................. - 35 - 三、架构层次的用例文档编写 ................... - 37 - 2.5 从系统工程的角度分析与设计架构 ........... - 40 - 一、应用系统工程帮助分析问题 ............... - 40 - 二、子系统、框架与软件架构 ................... - 40 - 三、系统工程中的需求分配 .................... - 42 - 四、组织复杂软硬件系统的需求 ............... - 43 - 2.6 利用规模的估计修正子系统划分 ............ - 46 - 一、规模的估计 ...................... - 46 - 二、持续时间的估计 ................. - 48 - 2.7 迭代的建立架构基线 .............. - 48 - 一、成功的软件架构设计 ............ - 48 - 二、建立弹性软件架构 ................ - 52 - 三、建立架构基线的步骤 ............ - 53 - 四、从质量属性及其应对策略的视角优化架构 ............ - 55 - 五、从模块划分的视角优化架构 ............... - 57 - 六、从共享分层结构的视角优化架构 ............. - 58 - 七、从软件复用与构件化的视角优化架构 ................. - 61 - 2.9 软件架构设计的流程 .............. - 63 - 一、业务架构概念 .................. - 63 - 二、产品架构概念 .................. - 64 - 三、建立稳定的架构基线 ............ - 64 - 四、子系统架构的设计与实现 ................... - 65 - 五、构件与实现单元的设计 .................... - 66 - 小结: .................... - 66 - 第三章 质量属性对架构策略的影响 .......... - 67 - 3.1 质量度量模型与质量属性场景 ................ - 67 - 一、三层次软件质量度量模型 ................... - 67 - 二、软件架构质量属性的场景 ................... - 70 - 3.2 应对质量属性的架构设计过程 ................ - 71 - 一、以核心功能为主进行架构设计 .............. - 71 - 二、以质量属性为依据进行重构和优化 ......... - 72 - 三、增量式的完善架构设计 .................... - 72 - 四、以测试驱动架构设计 ............ - 73 - 3.3 可靠性质量解决方案 .............. - 73 - 一、可靠性质量属性场景 ............ - 74 - 二、健康监测 ....................... - 75 - 三、错误恢复 ....................... - 75 - 四、错误预防 ....................... - 78 - 3.4 基于高可靠性的架构设计 .................. - 78 - 一、进程间提升可靠性的方法 ................... - 78 - 二、保证可靠性的分层结构 .................... - 79 - 3.5 可维护性解决方案 ............... - 80 - 一、可维护性质量属性场景 .................... - 80 - 二、局部化修改 ...................... - 81 - 三、防止连锁反应 .................. - 81 - 四、推迟绑定时间 .................. - 83 - 3.6 基于高可集成性的架构设计 ................. - 84 - 一、问题的陈述 ...................... - 84 - 二、架构解决方案 .................. - 85 - 三、结构化模型的架构模式 .................... - 86 - 四、子系统管理部分的模块 .................... - 86 - 五、子系统应用模块 ................. - 87 - 六、系统设计中需要关注的问题 ............... - 88 - 3.7 基于质量属性的优化和重构 ................. - 89 - 一、软件重构技术的本质 ............ - 89 - 二、重构模式 ....................... - 91 - 3.8 软件架构的恢复 ................... - 96 - 一、架构恢复层面的重构技术 ................... - 96 - 二、反向工程和正向工程 ............ - 97 - 三、架构和设计恢复 ................. - 98 - 四、架构恢复阶段的设计重构 ................. - 103 - 3.9 架构评审与决策 ............... - 104 - 一、ATAM的参与人员 .............. - 104 - 二、ATAM的结果 ................... - 105 - 三、ATAM的阶段 ................... - 105 - 3.10 关于架构的重要结论 ............. - 108 - 第四章 软件架构的模型驱动与演化 ......... - 109 - 4.1 产品用例的细化分析 ............. - 109 - 一、从系统的角度研究事件及行为 ............ - 109 - 二、子事件流 ..................... - 111 - 三、用例结构化及其文档描述 ................. - 111 - 四、包含(imclude) ................. - 112 - 五、扩展(extension) ............... - 113 - 六、用例的泛化关系及场景描述 ................ - 114 - 4.2 领域模型的建立 ................. - 115 - 一、领域模型的初步建立 ............. - 116 - 二、领域模型的行为和状态 .................. - 117 - 4.3 概念性架构设计及模型 .................... - 118 - 一、概念建模: ....................... - 119 - 二、概念建模的基础案例 ............. - 120 - 三、概念类的识别 ................... - 121 - 四、概念模型的属性 ............... - 123 - 五、概念模型的关联 ............... - 123 - 六、概念模型的泛化建模 ............. - 124 - 4.4 行为模型与GRASP设计模式 ............. - 126 - 一、根据职责设计对象 .............. - 126 - 二、职责和交互图 ................... - 127 - 三、信息专家模式 ................... - 127 - 四、创建者模式 .................... - 129 - 五、低耦合模式 .................... - 129 - 六、高内聚模式 .................... - 131 - 八、产品行为问题的归纳总结 ................. - 137 - 4.5 设计模型和实现模型 ............ - 138 - 一、从概念模型到设计模型 .................. - 138 - 二、用例模型横切于模型 ............. - 138 - 4.6 关注点的分散、缠绕与合并 ............... - 141 - 一、使关注点相互分离 .............. - 141 - 二、通过叠加用例切片来构建系统 ............ - 142 - 三、合并类的扩展 ................... - 143 - 4.7 从产品模型到测试模型 .................... - 145 - 一、测试用例的概念 ............... - 146 - 二、从用例得到测试用例 ............. - 146 - 三、管理测试覆盖 ................... - 149 - 4.8 通过优先级评价发现设计重点 .............. - 149 - 一、确定能力的价值 ............... - 150 - 二、确定合意性优先级 .............. - 151 - 4.9 设计文档编写的若干建议 ................... - 153 - 一、为什么要书写文档 .............. - 153 - 二、设计文档编写的建议 ............. - 154 - 第五章 软件复用与框架技术 ............ - 156 - 5.1 利用模式重构问题域与架构 ................. - 156 - 一、对功能分解的再讨论 ............. - 156 - 二、利用模式解决划分中的困难 ................ - 156 - 三、模式的合成与分解 .............. - 157 - 四、发现需求的变化规律 ............. - 157 - 5.2 需求模式 ....................... - 158 - 一、通过业务事件发现模式 .................. - 158 - 一、事件响应上下文 ............... - 159 - 二、事件响应的处理 ............... - 159 - 三、特定领域的模式 ............... - 160 - 四、跨领域的模式 ................... - 161 - 五、设计模式 ..................... - 162 - 六、代码重构的问题与解决方案 ................ - 162 - 七、封装变化与面向接口编程 ................. - 164 - 5.3 处理类或者接口的变化 .................... - 164 - 一、外观模式(Facade) .............. - 164 - 二、适配器模式(Adapter) .................... - 165 - 5.4 封装业务单元的变化 ............ - 167 - 一、模板方法(Template Method) ............ - 167 - 二、简单工厂模式(Simpleness Factory) .............. - 170 - 三、桥接模式(Bridge) .............. - 172 - 四、装饰器模式(Decorator) ................. - 174 - 5.5 利用观察者模式处理业务单元的变化 ............... - 176 - 5.6 利用策略与工厂模式实现通用的框架 ............... - 178 - 一、应用策略模式提升层的通用性 ............ - 178 - 二、利用反射实现通用框架 .................. - 179 - 5.7 代理模式的应用 ............... - 184 - 一、代理模式简述 ................... - 184 - 二、在团队并行开发中使用代理模式 ........... - 185 - 5.8 树状结构和链形结构的对象组织 ............. - 191 - 一、树状结构:组合模式 ............. - 191 - 二、链形结构:职责链模式 .................. - 195 - 5.9 基于产品线的架构设计 .................... - 197 - 一、组织产品线的需求 .............. - 198 - 二、确定范围 ..................... - 200 - 三、确定变化点 .................... - 200 - 三、支持变化点 .................... - 200 - 5.10 产品线架构的案例 .............. - 200 - 一、开发产品线的动因 .............. - 201 - 二、组织结构的变更 ............... - 201 - 三、架构解决方案 ................... - 202 - 四、产品线架构的应用 .............. - 204 - 五、产品线架构的障碍 .............. - 205 - 第六章 业务流程敏捷性与面向服务的架构 ...... - 207 - 6.1 面向服务的架构的本质 .................... - 207 - 一、业务流程的敏捷性需求带来的挑战 .......... - 207 - 二、SOA一些概念的澄清 ............ - 208 - 6.2 面向服务的架构所牵涉到的问题 ............. - 214 - 一、面向服务的企业 ............... - 214 - 二、面向服务的开发 ............... - 215 - 三、SOA的服务抽象 ................. - 216 - 四、解读SOAP和WSDL ............. - 217 - 五、面向服务的架构 ............... - 224 - 6.3 SOA与业务流程管理 ............ - 227 - 一、业务流程管理的基本概念 ................. - 227 - 二、业务流程管理系统 .............. - 228 - 三、组合BPM、SOA与Web服务 ........ ........ - 228 - 四、编制与编排规范 ............... - 235 - 6.4 SOA的业务效益与构建 .................... - 244 - 一、SOA的业务效益 ................. - 244 - 二、如何达成SOA .................. - 245 - 第七章 软件架构设计的其它有关问题 ....... - 249 - 7.1 软件架构挖掘 ................... - 249 - 一、架构挖掘过程 ................... - 249 - 二、架构挖掘的方法学问题 .................. - 249 - 三、职责驱动的开发 ............... - 251 - 四、架构的可追踪性 ............... - 251 - 7.2 进行多维度小组的项目规划 ............... - 251 - 一、为估计建立共同基准 ............. - 252 - 二、尽早给用户描述添加细节 ................. - 252 - 三、进行前瞻规划 ................... - 253 - 四、在计划中加入馈送缓冲区 ................. - 253 - 7.3 改进的软件经济学 .............. - 254 - 7.4 时代呼唤优秀的软件架构师 ............... - 256 -