• 1. 赢在架构——大中型软件架构设计实践体系 软件架构专家 架构咨询顾问与培训师 《软件架构设计》作者温 昱
  • 2. 三个经典难题,一套实践体系 实践体系的三个阶段 Pre-architecture阶段 Conceptual Architecture阶段 Refined Architecture阶段 实践体系如何解决软件企业的问题 ADMEMS方法的十大理念 Q&A议 程
  • 3. 架构设计三个经典难题需求架构思维过程乱 不能系统有序进行思维……输出乱 不能错落有致提供设计决策……输入乱 不能深入全面把握需求……架构师:混乱是思维的大敌!
  • 4. 一套实践体系 Pre-architecture阶段:错过 = 过错 Conceptual Arch阶段:大系统成败关键 Refined Arch阶段:团队并行开发基础 PA阶段需求CA阶段RA阶段架构
  • 5. 三个经典难题,一套实践体系 实践体系的三个阶段 Pre-architecture阶段 Conceptual Architecture阶段 Refined Architecture阶段 实践体系如何解决软件企业的问题 ADMEMS方法的十大理念 Q&A议 程
  • 6. Pre-architecture:不仅是理解需求第1步:需求结构化 第2步:分析约束影响 第3步:确定关键质量 第4步:确定关键功能确定关键功能确定关键质量持续关注业 务需求和约束全面有序理解需求影响架构的因素 :多而杂
  • 7. 例如,确定关键质量时……
  • 8. 理解力:不能“还原”,何谈“模仿”
  • 9. 创造力:用好Pre-architecture阶段 业务目标、及业务愿景: 网站定位:B2C零售 当前经营:图书 未来经营:图书、软件、音乐制品、电子产品、玩具、婴儿用品、化妆品、宠物、艺术品、杂货。 商业质量: 新功能上线快,随需应变商业约束: 投资2000万用于初期开发、运营、市场,之前须取得一定成功并融资成功 集成约束: 物流、银行、海关、实体店、各类提供商(包括工厂等生产企业、以及代理商等经销企业)用户: 终端用户 各种员工角色 终端用户功能: 互动功能 最快的全库搜索 管理员功能: 频率极高的新货上架,灵活的打折设置 运行期质量: 可伸缩性:几乎没有上限 性能:即强调速度,又强调吞吐量 易用性:最便捷的选择方式 安全性:数据安全 互操作性:含公司各系统间互操作 用户级约束: 便捷的购物流程 客户群大:多国语言 客户群大:关注范围差异,须个性化 消费心理:营造集市效应,“别人也买了”、“别人还买了”开发期质量: 可扩展性开发方约束: 网站发展路线图用户开发组织功 能质 量约 束
  • 10. 三个经典难题,一套实践体系 实践体系的三个阶段 Pre-architecture阶段 Conceptual Architecture阶段 Refined Architecture阶段 实践体系如何解决软件企业的问题 ADMEMS方法的十大理念 Q&A议 程
  • 11. 重大需求塑造概念架构架构决定因素= 关键功能 + 关键质量+业务需求与约束
  • 12. 对比:RUP的用例驱动方式Use CasesAnalysis ClassesSource CodeExecDesign Classes
  • 13. 两种哲学的优劣分析驱动力功能 质量 约束功能 质量 约束 驱动力概念架构针对重大需求、特色需求、高风险需求,给出高层次的解决方案 问题1:过于理想化 问题2:未来修改很大
  • 14. 案例:基于Web的PMSys
  • 15. PMSys例:概念架构≠理想设计
  • 16. PMSys例:得到的概念架构4层架构及每层职责 采用B/S架构 采用Java语言 ORM技术的采用 集成的考虑细化架构详设与编程概念架构愿景与需求
  • 17. 三个经典难题,一套实践体系 实践体系的三个阶段 Pre-architecture阶段 Conceptual Architecture阶段 Refined Architecture阶段 实践体系如何解决软件企业的问题 ADMEMS方法的十大理念 Q&A议 程
  • 18. 《软件架构设计》中一则笑话程序员说,架构就是要决定需要编写哪些类、使用哪些现成框架,程序经理笑了; 程序经理说,架构就是模块的划分和接口的定义,系统分析员笑了; 分析员说,架构就是为业务领域对象的关系建模,配置管理员笑了; 配置管理员说,架构就是开发出来的、以及编译过后的软件到底是个啥结构,数据库工程师笑了; 数据库工程师说,架构规定了持久化数据的结构,其他一切都不过是对数据的操作而已,部署工程师笑了; 部署工程师说,架构规定了软件部署到硬件的策略,用户笑了; 用户说,架构就是决定一个个功能子系统如何划分,程序员又笑了。
  • 19. RUP的4+1视图Design ViewImplementation ViewProcess ViewComponents Classes, interfaces, collaborationsActive classesDeployment ViewNodesUse Case ViewUse cases
  • 20. 5视图:扩充了经验,补足了技巧运行架构 数据架构 物理架构 逻辑架构 开发架构 持久数据单元 文件 关系数据库 实时数据库 数据存储格式 文件格式 数据库Schema 程序单元 源文件、配置文件 程序库、框架 目标单元 程序单元组织 Project划分 Project目录结构 编译依赖关系 控制流 进程、线程 中断服务程序 控制流组织 系统启动与停机 控制流通信 加锁与同步 职责划分 逻辑层(Layer) 子系统、模块 关键类 职责间协作 接口 协作关系 物理节点 ― PC、服务器 ― 单片机、单板机、专用机 ― 软件安装、部署、烧写 ― 系统软件选型 物理节点拓扑 ― 连接方式、 拓扑结构 ― 物理层(Tier ) ― 冗余考虑
  • 21. 三个经典难题,一套实践体系 实践体系的三个阶段 Pre-architecture阶段 Conceptual Architecture阶段 Refined Architecture阶段 实践体系如何解决软件企业的问题 ADMEMS方法的十大理念 Q&A议 程
  • 22. 有奖问答某公司拟以C语言代替C++,重写其电信计费系统,因为开发人员引入了太多抽象,使“可扩展性上去了,性能下来了” 能解决问题 于事无补,因为 用C语言 有会过度设计 问题根源出在Pre-architecture阶段 架构设计中必须分析质量间相互影响,制订权衡取舍策略
  • 23. 内容回顾确定关键质量时……
  • 24. 企业内训时推荐的文档模板1. 文档简介 1.1 文档目的 1.2 文档范围 1.3 定义、缩写词和缩略语 1.4 参考资料 2. 架构描述方式 2.1 架构视图阅读指南 2.2 图表与模型阅读指南 3. 架构设计目标 3.1 关键功能 3.2 关键质量属性 3.3 业务需求和约束因素4. 架构设计原则 4.1 架构设计原则 4.2 备选架构设计方案及被否原因 4.3 架构设计对后续工作的限制(详设,部署等) 5. 逻辑架构视图 5.1 职责划分与职责确定 5.2 接口设计与协作机制 5.3 重要设计包
  • 25. 企业内训时推荐的文档模板6. 开发架构视图 6.1 Project划分 6.2 Project 1 project目录结构指导 程序单元组织 框架与应用之间的关系(可选) 6.3 Project n…… 7. 运行架构视图 7.1 控制流组织 7.2 控制流的创建、销毁、通信 7.3 加锁设计8. 物理架构视图 8.1 物理拓扑 8.2 软件到硬件的映射 8.3 优化部署 9. 数据架构视图 持久化机制的选择 持久化存储方案 数据同步与复制策略 10. 关键质量属性的设计原理
  • 26. 有奖问答
  • 27. 有奖问答许多公司从事嵌入式领域,也需架构设计实践体系的指导,图示的架构中,有几个控制流? 1个 2个 4个 7个
  • 28. 内容回顾5视图方法 之 运行架构视图……运行架构 控制流 进程、线程 中断服务程序 控制流组织 系统启动与停机 控制流通信 加锁与同步
  • 29. 有奖问答许多公司困扰于:开发人员不按照架构进行详细设计和编程。如何让开发人员更“拥护”架构? 在架构设计中重视“开发架构视图”,让开发人员看到他最关心的“程序单元”、“源码目录结构”等概念 架构设计不可“高来高去”,能支持并行的详细设计是“架构设计进行到什么程度”的标志 应令HR对开发人员批评、教育 编程一线的程序经理参与架构设计
  • 30. 多管齐下在架构设计中重视“开发架构视图” 编程一线的程序经理参与架构设计 能支持并行的详细设计是“架构设计进行到什么程度”的标志
  • 31. 三个经典难题,一套实践体系 实践体系的三个阶段 Pre-architecture阶段 Conceptual Architecture阶段 Refined Architecture阶段 实践体系如何解决软件企业的问题 ADMEMS方法的十大理念 Q&A议 程
  • 32. 业界趋势:方法体系是必由之路 架构与OO:必须弄清谁包含谁 多视图方法:必须贴近实践 大系统架构设计能否成功:要靠概念架构 非功能需求支持能否到位:要靠场景思维 混乱乃思维大敌:但架构设计的混乱存在于何处 需求决定了架构:但不同需求影响架构的原理有何不同 关键需求决定架构:实践 ≠ 理论 架构设计:单一方法 or 方法体系 时间先后组织方法体系:架构视图 ≠ 架构层次 技术选择与非功能考虑:歼灭战 or 持久战
  • 33. 三个经典难题,一套实践体系 实践体系的三个阶段 Pre-architecture阶段 Conceptual Architecture阶段 Refined Architecture阶段 实践体系如何解决软件企业的问题 ADMEMS方法的十大理念 Q&A议 程
  • 34. 谢 谢 大 家!如 何 获 取 本 PPT: 大会网站 www.softcon.cn 发邮件至 shanghaiwenyu@163.com 资深咨询顾问 软件架构专家 架构设计培训师 《软件架构设计》作者 MSN: shanghaiwenyu@hotmail.com 手 机: 138 1800 1229