《赢在架构大中型软件架构设计实践体系.ppt》由会员分享,可在线阅读,更多相关《赢在架构大中型软件架构设计实践体系.ppt(34页珍藏版)》请在三一办公上搜索。
1、,赢在架构,大中型软件架构设计实践体系,软件架构专家 架构咨询顾问与培训师软件架构设计作者,温 昱,三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段Conceptual Architecture阶段Refined Architecture阶段实践体系如何解决软件企业的问题ADMEMS方法的十大理念Q&A,议 程,架构设计,三个经典难题,需求,架构,思维过程乱 不能系统有序进行思维,输出乱 不能错落有致提供设计决策,输入乱 不能深入全面把握需求,架构师:混乱是思维的大敌!,一套实践体系,Pre-architecture阶段:错过=过错 Conceptual Arc
2、h阶段:大系统成败关键 Refined Arch阶段:团队并行开发基础,PA阶段,需求,CA阶段,RA阶段,架构,三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段Conceptual Architecture阶段Refined Architecture阶段实践体系如何解决软件企业的问题ADMEMS方法的十大理念Q&A,议 程,第1步:需求结构化第2步:分析约束影响第3步:确定关键质量第4步:确定关键功能,4,3,2,1,确定关键功能,确定关键质量,分析约束影响,全面有序理解需求,影响架构的因素多而杂,Pre-architecture:不仅是理解需求,例如,确定关
3、键质量时,理解力:不能“还原”,何谈“模仿”,创造力:用好Pre-architecture阶段,功 能,质 量,约 束,三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段Conceptual Architecture阶段Refined Architecture阶段实践体系如何解决软件企业的问题ADMEMS方法的十大理念Q&A,议 程,重大需求塑造概念架构,架构决定因素 关键功能 关键质量业务需求与约束,对比:RUP的用例驱动方式,Use Cases,AnalysisClasses,SourceCode,Exec,DesignClasses,两种哲学的优劣分析,驱动
4、力,功能 质量 约束,功能 质量 约束,驱动力,概念架构针对重大需求、特色需求、高风险需求,给出高层次的解决方案,问题1:过于理想化问题2:未来修改很大,案例:基于Web的PMSys,PMSys例:概念架构理想设计,PMSys例:得到的概念架构,4层架构及每层职责采用B/S架构采用Java语言ORM技术的采用集成的考虑,细化架构,详设与编程,概念架构,愿景与需求,三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段Conceptual Architecture阶段Refined Architecture阶段实践体系如何解决软件企业的问题ADMEMS方法的十大理念Q&
5、A,议 程,软件架构设计中一则笑话,程序员说,架构就是要决定需要编写哪些类、使用哪些现成框架,程序经理笑了;程序经理说,架构就是模块的划分和接口的定义,系统分析员笑了;分析员说,架构就是为业务领域对象的关系建模,配置管理员笑了;配置管理员说,架构就是开发出来的、以及编译过后的软件到底是个啥结构,数据库工程师笑了;数据库工程师说,架构规定了持久化数据的结构,其他一切都不过是对数据的操作而已,部署工程师笑了;部署工程师说,架构规定了软件部署到硬件的策略,用户笑了;用户说,架构就是决定一个个功能子系统如何划分,程序员又笑了。,RUP的4+1视图,Design View,Implementation
6、View,Process View,Components,Classes,interfaces,collaborations,Active classes,Deployment View,Use cases,5视图:扩充了经验,补足了技巧,运行架构,数据架构,物理架构,逻辑架构,开发架构,持久数据单元 文件 关系数据库 实时数据库 数据存储格式 文件格式 数据库Schema,程序单元 源文件、配置文件 程序库、框架 目标单元 程序单元组织 Project划分 Project目录结构 编译依赖关系,控制流 进程、线程 中断服务程序 控制流组织 系统启动与停机 控制流通信 加锁与同步,职责划分 逻
7、辑层(Layer)子系统、模块 关键类 职责间协作 接口 协作关系,物理节点 PC、服务器 单片机、单板机、专用机 软件安装、部署、烧写 系统软件选型 物理节点拓扑 连接方式、拓扑结构 物理层(Tier)冗余考虑,三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段Conceptual Architecture阶段Refined Architecture阶段实践体系如何解决软件企业的问题ADMEMS方法的十大理念Q&A,议 程,有奖问答,某公司拟以C语言代替C+,重写其电信计费系统,因为开发人员引入了太多抽象,使“可扩展性上去了,性能下来了”能解决问题于事无补,因为
8、 用C语言 有会过度设计问题根源出在Pre-architecture阶段架构设计中必须分析质量间相互影响,制订权衡取舍策略,内容回顾,确定关键质量时,企业内训时推荐的文档模板,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.
9、3 重要设计包,企业内训时推荐的文档模板,6.开发架构视图6.1 Project划分6.2 Project 1project目录结构指导程序单元组织框架与应用之间的关系(可选)6.3 Project n7.运行架构视图7.1 控制流组织7.2 控制流的创建、销毁、通信7.3 加锁设计,8.物理架构视图8.1 物理拓扑8.2 软件到硬件的映射8.3 优化部署9.数据架构视图持久化机制的选择持久化存储方案数据同步与复制策略10.关键质量属性的设计原理,有奖问答,有奖问答,许多公司从事嵌入式领域,也需架构设计实践体系的指导,图示的架构中,有几个控制流?1个2个4个7个,内容回顾,5视图方法 之 运行
10、架构视图,运行架构,控制流 进程、线程 中断服务程序 控制流组织 系统启动与停机 控制流通信 加锁与同步,有奖问答,许多公司困扰于:开发人员不按照架构进行详细设计和编程。如何让开发人员更“拥护”架构?在架构设计中重视“开发架构视图”,让开发人员看到他最关心的“程序单元”、“源码目录结构”等概念架构设计不可“高来高去”,能支持并行的详细设计是“架构设计进行到什么程度”的标志应令HR对开发人员批评、教育编程一线的程序经理参与架构设计,多管齐下,在架构设计中重视“开发架构视图”编程一线的程序经理参与架构设计能支持并行的详细设计是“架构设计进行到什么程度”的标志,三个经典难题,一套实践体系实践体系的三
11、个阶段Pre-architecture阶段Conceptual Architecture阶段Refined Architecture阶段实践体系如何解决软件企业的问题ADMEMS方法的十大理念Q&A,议 程,业界趋势:方法体系是必由之路,架构与OO:必须弄清谁包含谁多视图方法:必须贴近实践大系统架构设计能否成功:要靠概念架构非功能需求支持能否到位:要靠场景思维混乱乃思维大敌:但架构设计的混乱存在于何处需求决定了架构:但不同需求影响架构的原理有何不同关键需求决定架构:实践 理论架构设计:单一方法 or 方法体系时间先后组织方法体系:架构视图 架构层次技术选择与非功能考虑:歼灭战 or 持久战,三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段Conceptual Architecture阶段Refined Architecture阶段实践体系如何解决软件企业的问题ADMEMS方法的十大理念Q&A,议 程,谢 谢 大 家!,如 何 获 取 本 PPT:大会网站 发邮件至,手 机:138 1800 1229,内训请垂询,
链接地址:https://www.31ppt.com/p-5844621.html