架构师培训-【1_of_6】理解架构


三个观点,理解架构 软通动力·专属定制 · 实战型 资深咨询顾问 · 实战型 架构培训专家 ·创 立ADMEMS实践体系 · 《软件架构设计》著 者 ·《 一线架构师 》 著 者 ·中 国Softcon杰出贡献专家 ·中 国CCSE杰出贡献专家 温昱 三个观点,理解架构 组成派 决策派 环境的“位置” 总结:回答大师的问题 理解 Æ 致用 议 程 定义1 • 软件架构是系统的抽象 – 定义了元素以及它们之间的交互 – 忽略了纯粹属于局部的信息,元素的细节不属 于架构 – 架构关注的元素外部可见属性指: • 元素提供的服务, • 需要的服务, • 具备的性能特性、容错特性、对共享资源的使用等 架构 = {结构,……} 结构 = {元素,外部可见属性,关系} • 某个软件或计算机系统的软件架构是该系 统的一个或多个结构, • 每个结构均由软件元素、这些元素的外部 可见属性、以及这些元素之间的关系组成。 ——Len Bass 定义2 RDBMS例:元素 = 模块 连锁超市例:元素 = 节点 理论 告诉你 • 架构 = 元素 + 交互 • 架构需多角度考虑 现实 告诉你 • 程序员说,架构就是要决定需要编写哪些类、使用哪些现成框架,程 序经理笑了; • 程序经理说,架构就是模块的划分和接口的定义,系统分析员笑了; • 分析员说,架构就是为业务领域对象的关系建模,配置管理员笑了; • 配置管理员说,架构就是开发出来的、以及编译过后的软件到底是个 啥结构,数据库工程师笑了; • 数据库工程师说,架构规定了持久化数据的结构,其他一切都不过是 对数据的操作而已,部署工程师笑了; • 部署工程师说,架构规定了软件部署到硬件的策略,用户笑了; • 用户说,架构就是决定一个个功能子系统如何划分,程序员又笑了; ——引自《软件架构设计》一书 温昱 将告诉你 运行架构 数据架构 物理架构 逻辑架构 开发架构 • 持久数 据单 元 – 文件 – 关系数据 库 – 实时数据 库 • 数据存储 格 式 – 文件格式 – 数据库Schema • 程序单元 – 源文件、 配 置文件 – 程序库、 框 架 – 目标单元 • 程序单元 组 织 –Project划分 –Project目录 结构 – 编译依赖 关 系 • 控制流 – 进程、线 程 – 中断服务 程 序 • 控制流组 织 – 系统启动 与 停 机 – 控制流通 信 – 加锁与同 步 • 职责划分 – 逻辑层(Layer) – 子系统、 模 块 – 关键类 • 职责间协 作 – 接口 – 协作关系 • 物理节点 ― PC、服务 器 ― 单片机 、单板机 、专 用机 ― 软件安 装、部署 、烧 写 ― 系统软 件选型 • 物理节点 拓 扑 ― 连接方 式、 拓扑 结 构 ― 物理层 (Tier ) ― 冗余考 虑 三个观点,理解架构 组成派 决策派 环境的“位置” 总结:回答大师的问题 理解 Æ 致用 议 程 RUP的定义 软件架构包含了关于以下问题的重要决策: 1. 软件系统的组织; 2. 选择组成系统的结构元素和它们之间的接口,以 及当这些元素相互协作时所体现的行为; 3. 如何组合这些元素,使它们逐渐合成为更大的子 系统; 4. 用于指导这个系统组织的架构风格:这些元素以 及它们的接口、协作和组合。 软件架构不仅注重软件本身的结构和行为,还注重其 他特性:使用、功能性、性能、弹性、重用、可 理解性、经济和技术的限制及权衡、以及美学等。 大 局 部 全 局 不属于架构设计 小 影响程度 影响 范围 不属于架构设计 (小心陷阱) 不属于架构设计 (有时关心) 架构设计 (重点关心) 定义中的合理思想 延伸:架构决策的层次性 系统 client server 引擎层 API层 SPI及服务扩展 模块 模块 …… 延伸:架构决策的层次性 每个节点代表一个设计决策 对比 • Architecture establishes the context for design and implementation CODE implementation design architecture Architectural decisions are the most fundamental decisions; changing them will have significant ripple effects. 结论:同样的思想,不同的表述 CODE implementation design architecture 三个观点,理解架构 组成派 决策派 环境的“位置” 总结:回答大师的问题 理解 Æ 致用 议 程 IEEE的定义 • IEEE 610.12-1990软件工程标准词汇中, 是这样定义架构的: 架构是以组件、组件之间的关系、组件与 环境之间的关系为内容的某一系统的基本 组织结构,以及指导上述内容设计与演化 的原理(Principle)。 讨论 • 试着“穷举”影响架构的环境因素。 不存在普遍适用的解决方案 解决方案 问题 上下文 ? 肚子饿了 不存在普遍适用的解决方案 解决方案 问题 上下文 肚子饿了 不存在普遍适用的解决方案 解决方案 问题 上下文 肚子饿了 ADMEMS方法推荐的Big Picture 三个观点,理解架构 组成派 决策派 环境的“位置” 总结:回答大师的问题 理解 Æ 致用 议 程 问题 什么是架构?如果你问五个不同的 人,可能会得到五种不同的答案。 ——Ivar Jacobson 《软件架构设计》提及的9个定义 回答大师的问题 • 架构 = 元素 + 交互 • 架构 = 重要决策的集合 • 架构 = 受环境影响的高层设计 三个观点,理解架构 组成派 决策派 环境的“位置” 总结:回答大师的问题 理解 Æ 致用 议 程 哦! 理解层面 解惑 实践层面 耶!致用 境界跃升 说 时似悟 对 生迷境 说 时似悟 对 生迷境 你的架构设计,是不是只关心模块 设计稳定架构,是不是只关心接口 设计架构,是不是只看《需求规格》 谢谢! Q&A
还剩32页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

1363833182

贡献于2012-09-15

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf