软件架构专家架构咨询顾问与培训师《软件架构设计》作者温昱架构设计的事实与谬误——流行观点及培训案例的分析答疑邮箱:shanghaiwenyu@163.com职业经历电信多媒体航空金融中间件技术传播23133议程34分层架构,没意思?分层架构有“3派”3层,还是7层架构师,不必懂需求?目标不变论需求大局观4+1视图,已足够?4+1视图的变革运行架构的嵌入式实践小结谬误!•分层架构=展现层+业务层+数据层•That’sall.没意思事实:《其实你不懂我的心》是分层架构吗?是分层架构吗?是分层架构吗?是分层架构吗?Windows应用程序浏览器客户层DHtmlASP.NETWEBSERVICECOM+ADO.NETIIS、.NET框架CORBA业务逻辑层SQLSERVERXML电子化档案数据层WEB层有奖问答总结:业界的分层流派(3+1)•逻辑层Layer•物理层Tier•按通用性分层•技术堆叠23133议程34分层架构,没意思?分层架构有“3派”3层,还是7层架构师,不必懂需求?目标不变论需求大局观4+1视图,已足够?4+1视图的变革运行架构的嵌入式实践小结谬误!争论事实:不同系统,层数一样?•案例:一个7层架构分析事实:同一系统,层数不变?•你所在的公司:投标用“市场架构”=研发用“技术架构”?23133议程34分层架构,没意思?分层架构有“3派”3层,还是7层架构师,不必懂需求?目标不变论需求大局观4+1视图,已足够?4+1视图的变革运行架构的嵌入式实践小结谬误!•互联网充斥着“架构目标即灵活性”等论调目标固定吗?分寸权衡呢?事实:需要确定质量目标2多方涉众利益1分类适合实践3Checklist思维4考虑矛盾关系5把握严格程度提供基础折衷依据定量参考必要扩充引起回溯4:考虑矛盾关系5:把握严格程度项目:3-5项产品:5-7项平台:7-9项例如•银证项目:易用性、安全性•银证产品:易用性、安全性、互操作性、可扩展性、可维护性•金融平台:安全性、互操作性、持续可用性、性能、可扩展性、可维护性、可重用性、可管理性、开放性23133议程34分层架构,没意思?分层架构有“3派”3层,还是7层架构师,不必懂需求?目标不变论需求大局观4+1视图,已足够?4+1视图的变革运行架构的嵌入式实践小结有奖问答2.《需求文档》=架构设计的全部依据,这种观点A.正确。此谓工程化B.错误。会太依赖文档质量C.错误。需求遗漏,会很被动D.错误。敏捷时代,写文档就是迂腐E.非最佳。常造成架构设计开始较晚谬误!•架构师,不必懂需求•需求所有问题,都怪需求分析员?事实:《情非得已》什么原因,我竟然又会遇见你?我真的不愿意就这样陷入爱的陷阱虽然•架构师不能“吃透”需求,的确出人意料。–既然企业为架构师安排了“技术晋升路线”,–既然许多架构师也把自己当“纯粹的技术人员”,–既然必须研究“时髦技术”否则被程序员看不起,–既然设计模式和UML还在“排队”需求嘛就算了,•架构师不能“吃透”需求也就在情理之中了。•导演不会导演,的确出人意料,•但是想想导演要选美女演员,要学会上艺术人生……导演不会导演也就在情理之中了;策略:需求大局观雅虎培训:Amazon案例第1步:需求结构化业务目标、及业务愿景:网站定位:B2C零售当前经营:图书未来经营:图书、软件、音乐制品、电子产品、玩具、婴儿用品、化妆品、宠物、艺术品、杂货。商业质量:新功能上线快,随需应变商业约束:投资2000万用于初期开发、运营、市场,之前须取得一定成功并融资成功集成约束:物流、银行、海关、实体店、各类提供商(包括工厂等生产企业、以及代理商等经销企业)用户开发组织功能质量约束第1步:需求结构化用户:终端用户各种员工角色运行期质量:易用性:最便捷的选择方式用户级约束:便捷的购物流程客户群大:多国语言客户群大:关注范围差异,须个性化消费心理:营造集市效应,“别人也买了”、“别人还买了”开发方约束:新组建的团队用户开发组织功能质量约束第2步:分析约束影响业务目标、及业务愿景:网站定位:B2C零售当前经营:图书未来经营:图书、软件、音乐制品、电子产品、玩具、婴儿用品、化妆品、宠物、艺术品、杂货。商业质量:新功能上线快,随需应变商业约束:投资2000万用于初期开发、运营、市场,之前须取得一定成功并融资成功集成约束:物流、银行、海关、实体店、各类提供商(包括工厂等生产企业、以及代理商等经销企业)开发方约束:网站发展路线图用户开发组织功能质量约束第2步:分析约束影响业务目标、及业务愿景:网站定位:B2C零售当前经营:图书未来经营:图书、软件、音乐制品、电子产品、玩具、婴儿用品、化妆品、宠物、艺术品、杂货。商业质量:新功能上线快,随需应变商业约束:投资2000万用于初期开发、运营、市场,之前须取得一定成功并融资成功集成约束:物流、银行、海关、实体店、各类提供商(包括工厂等生产企业、以及代理商等经销企业)用户:终端用户各种员工角色管理员功能:灵活的打折设置频率极高的新货上架开发期质量:可扩展性用户开发组织功能质量约束第2步:分析约束影响用户:终端用户各种员工角色终端用户功能:最快的全库搜索评价功能(Web2.0)多角度关联信息管理员功能:灵活的打折设置频率极高的新货上架用户级约束:便捷的购物流程客户群大:多国语言客户群大:关注范围差异,须个性化消费心理:营造集市效应,“别人也买了”、“别人还买了”用户开发组织功能质量约束第2步:分析约束影响业务目标、愿景:网站定位:B2C零售当前经营:图书未来经营:……商业质量:新功能上线快,随需应变商业约束:投资2000万……集成约束:物流、银行、海关、实体店、各类提供商(包括工厂等生产企业、以及代理商等经销企业)运行期质量:可伸缩性:几乎没有上限性能:即强调速度,又强调吞吐量安全性:数据安全持续可用性:不停机互操作性:含公司各系统间互操作开发期质量:可扩展性用户开发组织功能质量约束23133议程34分层架构,没意思?分层架构有“3派”3层,还是7层架构师,不必懂需求?目标不变论需求大局观4+1视图,已足够?4+1视图的变革运行架构的嵌入式实践小结谬误!•4+1视图,已足够•它是架构设计方法的全部事实:《最天使》我最爱的,就是那个天使…我最恨的,就是那个天使…5视图方法运行架构数据架构物理架构逻辑架构开发架构•持久数据单元–文件–关系数据库–实时数据库•数据存储格式–文件格式–数据库Schema•程序单元–源文件、配置文件–程序库、框架–目标单元•程序单元组织–Project划分–Project目录结构–编译依赖关系•控制流–进程、线程–中断服务程序•控制流组织–系统启动与停机–控制流通信–加锁与同步•职责划分–逻辑层(Layer)–子系统、模块–关键类•职责间协作–接口–协作关系•物理节点―PC、服务器―单片机、单板机、专用机―软件安装、部署、烧写―系统软件选型•物理节点拓扑―连接方式、拓扑结构―物理层(Tier)―冗余考虑划分子系统:4大通用原则架构本身考虑人的因素考虑wenyu.csai.cn:4+1视图剖析系列23133议程34分层架构,没意思?分层架构有“3派”3层,还是7层架构师,不必懂需求?目标不变论需求大局观4+1视图,已足够?4+1视图的变革运行架构的嵌入式实践小结谬误!•多视图架构设计方法,总从逻辑视图开始事实!•嵌入式系统架构设计,控制流较多时建议从运行架构开始案例时钟采集卡键盘导联脱落检查电路声卡显示器CPU案例《多个中断》采集卡《中断》时钟《中断》键盘《中断》导联脱落屏幕刷新控制屏幕刷新远程显示远程访问SDK告警控制屏幕更新屏幕更新优化一《多个中断》采集卡《中断》时钟《中断》键盘《中断》导联脱落屏幕刷新控制屏幕刷新远程显示远程访问SDK告警控制屏幕更新屏幕更新事件抽象层事件响应层事件调度层《多个中断》采集卡《中断》时钟《中断》键盘《中断》导联脱落屏幕访问基础服务远程访问基础服务告警控制信息采集事件产生事件的统一定义事件统一调度时钟事件产生键盘事件产生导联脱落事件产生显示模块监视模块设置模块设置信息及其读写Flash写基础服务多窗口FrameworkScreenManager硬件:网卡电话线等硬件:Flash内存硬件:显示器多种协议硬件:蜂鸣器蜂鸣器基础服务《多个中断》采集卡《中断》时钟《中断》键盘《中断》导联脱落屏幕访问基础服务远程访问基础服务告警控制信息采集事件产生事件的统一定义事件统一调度时钟事件产生键盘事件产生导联脱落事件产生显示模块监视模块设置模块设置信息及其读写Flash写基础服务多窗口FrameworkScreenManager硬件:网卡电话线等硬件:Flash内存硬件:显示器多种协议硬件:蜂鸣器蜂鸣器基础服务《多个中断》采集卡《中断》时钟《中断》键盘《中断》导联脱落屏幕访问基础服务远程访问基础服务告警控制信息采集事件产生事件的统一定义事件统一调度时钟事件产生键盘事件产生导联脱落事件产生显示模块监视模块设置模块设置信息及其读写Flash写基础服务多窗口FrameworkScreenManager硬件:网卡电话线等硬件:Flash内存硬件:显示器多种协议硬件:蜂鸣器蜂鸣器基础服务事件源事件产生事件调度基础框架硬件封装应用(响应)硬件23133议程34分层架构,没意思?分层架构有“3派”3层,还是7层架构师,不必懂需求?目标不变论需求大局观4+1视图,已足够?4+1视图的变革运行架构的嵌入式实践小结4+1视图,已足够?分层架构,没意思?架构师,不必懂需求?Q&A