1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,软件架构专家 架构咨询顾问与培训师,软件架构设计,作者,温,昱,Effective Arch Design,架构设计的,10,条经验,答疑邮箱:,shanghaiwenyu,职业发展小语,成长易经:成长是螺旋式上升过程,吸收新技能,沉淀成经验,架构设计的,5,视图方法简介,如何划分子系统、确定接口,划分子系统:分层的细化,划分子系统:分区的引入,划分子系统:机制的提取,接口定义:协作决定接口,整体思路:螺旋渐进,自己动手设计
2、WinZip,架构,架构设计的,10,条经验,议 程,逻辑架构,物理架构,A properly designed logical n-tire architecture provides the following benefits:,Logically organized code,Easier maintenance,Better reuse of code,Better team-development experience,Higher clarity in coding,On the other hand,a properly chosen physical n-tier arch
3、itecture can provide the following benefits:,Performance,Scalability,Fault tolerance,Security,运行架构,逻辑架构,物理架构,开发架构,数据架构,进程、线程,接口的定义,子系统的划分,服务器的选型,(当你用,C,)结构化方法的模块,逻辑层(,Layer,),物理层(,Tier,),(并行开发需要)源程序目录,数据分布与数据库,Schema,(没选,RDBMS,)文件格式,(嵌入式系统),Flash,存储结构,有奖问答,有奖问答,架构设计的,5,视图,运行架构,数据架构,物理架构,逻辑架构,开发架构,持久
4、数据单元,文件,关系数据库,实时数据库,数据存储格式,文件格式,数据库,Schema,程序单元,源文件、配置文件,程序库、框架,目标单元,程序单元组织,Project,划分,Project,目录结构,编译依赖关系,控制流,进程、线程,中断服务程序,控制流组织,系统启动与停机,控制流通信,加锁与同步,职责划分,逻辑层(,Layer,),子系统、模块,关键类,职责间协作,接口,协作关系,物理节点,PC,、服务器,单片机、单板机、专用机,软件安装、部署、烧写,系统软件选型,物理节点拓扑,连接方式、拓扑结构,物理层(,Tier,),冗余考虑,架构设计的,5,视图方法简介,如何划分子系统、确定接口,划分
5、子系统:分层的细化,划分子系统:分区的引入,划分子系统:机制的提取,接口定义:协作决定接口,整体思路:螺旋渐进,自己动手设计,WinZip,架构,架构设计的,10,条经验,议 程,小帖子,引发大思考,思考一:不同系统,层数一样?,案例:,一个,7,层架构分析,思考二:同一系统,层数不变?,你所在的公司:,投标用“市场架构”研发用“技术架构”?,结论:分层的细化,架构设计的,5,视图方法简介,如何划分子系统、确定接口,划分子系统:分层的细化,划分子系统:分区的引入,划分子系统:机制的提取,接口定义:协作决定接口,整体思路:螺旋渐进,自己动手设计,WinZip,架构,架构设计的,10,条经验,议
6、程,大著作,留下小问题,代码之道,:,快速迭代有个基本前提:开发应该,“,深度优先,”,,而不是,“,广度优先,”,。,微软牛人说:要深度优先!,老大说:分层架构!,程序员:额的神呀谁告诉我怎么先做一个功能?,架构:分层,+,分区,结论:只分层不分区,无法迭代,架构设计的,5,视图方法简介,如何划分子系统、确定接口,划分子系统:分层的细化,划分子系统:分区的引入,划分子系统:机制的提取,接口定义:协作决定接口,整体思路:螺旋渐进,自己动手设计,WinZip,架构,架构设计的,10,条经验,议 程,大师说,但你如何做,机制才是设计的灵魂所在,否则我们就将不得不面对一群无法相互协作的对象,它们相互
7、推搡着做自己的事情而毫不关心其他对象。,Grady Booch,面向对象分析与设计,架构:分层,+,机制提取,只识别协作,不提取通用机制,问题何在?,如何提取通用机制,案例:消息机制,结论:三管齐下,手段:分层的细化,手段:分区的引入,手段:机制的提取,架构设计的,5,视图方法简介,如何划分子系统、确定接口,划分子系统:分层的细化,划分子系统:分区的引入,划分子系统:机制的提取,接口定义:协作决定接口,整体思路:螺旋渐进,自己动手设计,WinZip,架构,架构设计的,10,条经验,议 程,已定义接口,架构仍混乱?,饭店的故事,软件公司的故事,俺们公司的事儿,,你咋知道?,看似简单,实则错误,我
8、的接口我做主,好接口是怎样炼成的?,协作决定接口,结论:不要迷信接口,Interface,:只是技术上稳定的,但有业务含义的,Interface,未必稳定,架构设计的,5,视图方法简介,如何划分子系统、确定接口,划分子系统:分层的细化,划分子系统:分区的引入,划分子系统:机制的提取,接口定义:协作决定接口,整体思路:螺旋渐进,自己动手设计,WinZip,架构,架构设计的,10,条经验,议 程,今天,你迭代了吗?,复杂系统的应对之道,逻辑架构:迭代的设计思路,结构方面的切分,行为方面的约定,架构设计的,5,视图方法简介,如何划分子系统、确定接口,划分子系统:分层的细化,划分子系统:分区的引入,划
9、分子系统:机制的提取,接口定义:协作决定接口,整体思路:螺旋渐进,自己动手设计,WinZip,架构,架构设计的,10,条经验,议 程,案例:,WinZip,的架构设计过程,初期:引入分层架构,初期:层间关系(压缩时),界面交互层,压缩控制层,原文件读写层,压缩包读写层,压缩意图,压缩进度,哪个文件,字节流,Bit,块等,初期:层间关系(解压缩时),界面交互层,压缩控制层,原文件读写层,压缩包读写层,解压缩意图,解压缩进度,哪个文件,文件名及字节流,Bit,块等,下面进行,对比:,“市场”,架构,分层、分区、机制提取,下面进行,压缩功能(多文件源),下面进行,包,|,接口图,下面进行,朝花夕拾:
10、案例的经验要点,划分子系统:分层的细化,划分子系统:分区的引入,划分子系统:机制的提取,协作决定接口,循序渐进的螺旋思维,序列图的优点 与 协作图的问题,包,-,接口图:从结构到行为的桥,架构设计的,5,视图方法简介,如何划分子系统、确定接口,划分子系统:分层的细化,划分子系统:分区的引入,划分子系统:机制的提取,接口定义:协作决定接口,整体思路:螺旋渐进,自己动手设计,WinZip,架构,架构设计的,10,条经验,议 程,划分子系统:分层的细化,划分子系统:分区的引入,划分子系统:机制的提取,协作决定接口,序列图的优点 与 协作图的问题,包,-,接口图:从结构到行为的桥,灰盒包图:描述关键子
11、系统,循序渐进的螺旋思维,设计模式:包内结构,设计模式:包间协作,3,1,3,2,3,3,3,5,3,6,3,7,3,8,3,9,3,10,3,4,架构设计的,10,条经验,架构设计的,5,视图方法中,运行架构视图强调,。,职责划分,物理节点组织,数据持久化,控制流关系,程序单元组织,有奖问答,架构设计的,5,视图,运行架构,数据架构,物理架构,逻辑架构,开发架构,持久数据单元,文件,关系数据库,实时数据库,数据存储格式,文件格式,数据库,Schema,程序单元,源文件、配置文件,程序库、框架,目标单元,程序单元组织,Project,划分,Project,目录结构,编译依赖关系,控制流,进程、
12、线程,中断服务程序,控制流组织,系统启动与停机,控制流通信,加锁与同步,职责划分,逻辑层(,Layer,),子系统、模块,关键类,职责间协作,接口,协作关系,物理节点,PC,、服务器,单片机、单板机、专用机,软件安装、部署、烧写,系统软件选型,物理节点拓扑,连接方式、拓扑结构,物理层(,Tier,),冗余考虑,架构(,Architecture,)、框架(,Framework,)、面向对象(,OO,)等技术的关系,以下正确的是,OO,高手就是架构师,面向对象涵盖,OOA,、,OOD,、,OOP,等,所以已覆盖了架构设计的所有所需技能,Framework,本质上和,OO,无关,用,C,语言也可编写框架,架构大,,Framework,比架构小,Framework,和架构无大小之别,任何复杂的系统和子系统都可以有架构设计,也都可以先设计成,Framework,供重用,有奖问答,谢谢大家,欢迎提问,手 机,:138 1800 1229,架构内训垂询,






