欢迎来到天天文库
浏览记录
ID:20989910
大小:1.74 MB
页数:65页
时间:2018-10-18
《软件架构原理和实践原则》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、RUP大讲堂(第六讲)-软件架构的原理和实践原则北京恒讯时代信息技术有限公司肖勇xiaoy@henxu.com2内容问题什么是软件架构为什么需要体系架构架构的常见错误理解架构带来什么好处架构设计的原则架构的风格及模式架构设计的过程3问题-瓦萨战舰的故事17世纪上半叶,北欧新教势力与中欧天主教势力发生了一场“三十年战争”,作为北欧新教势力的代表,瑞典的军事力量达到鼎盛时期。1625年,号称“北方飓风”的瑞典国王古斯塔夫斯.阿道弗斯(GustavsAdolphus)决心建造一艘史无前例的巨型新战舰——瓦萨(Vasa)战舰。瓦萨战舰确实是一艘令人望而生
2、畏的战舰:舰长70米,载员300人,在三层的甲板上共装有64门重炮,火力超强。1628年8月10日,这艘巨大的战舰终于完工。在斯德哥尔摩的王宮前,瓦萨战舰举行了盛大的下水典礼。礼炮声中,战舰扬帆起航,乘风前进。在1万多名围观者的目光注视下,忽然,瓦萨号奇怪地摇晃了一下,便向左舷倾斜。海水从炮孔处涌入船舱,战舰迅速翻入水中,几分钟后,这艘雄伟战舰的处女航——也是唯一的一次航行结束了。瓦萨战舰在它壮丽的起航时刻,带着全身飘扬的彩旗,沉没于它诞生的港口。4问题-信息系统的“瓦萨”问题瓦萨的故事已经过去300多年了,在船舶工业领域,作为学科和工业的基石—
3、—“架构”早已形成完整的理论和方法体系。瓦萨的故事,基本上不会重演了。但是,在今天的软件系统领域,“瓦萨”问题依然是需要解决的关键问题。5问题-基本假设体系结构提出之前的系统设计思路需求(主要是功能需求)系统设计系统实现特点:技术性需求,特别是功能需求是产生设计的唯一(最主要的)的驱动力。由此•非功能需求因素•非技术因素的考虑很少。基本假设:设计是系统的技术需求分析的产物。6什么是软件架构-架构一词的来源建筑行业:建筑学认为,所有的高楼大厦(复杂建筑),应该是由建筑结构、暖通系统、强电系统、弱电系统(监控系统、综合布线等)、给排水系统等构成。具体
4、体现在建筑图、总平面图、综合管线、结构图、给排水、暖通、强电、弱电等图纸上。这种建筑学的思想方案,就是建筑设计的“架构体系”。J建筑架构师需要把所有的层次结合起来:使客户理解在建造的过程中为施工者提供指导架构相关于所有事情,架构为所有人提供一个共同的远景目标。架构不包括每个部分的细节7内容问题什么是软件架构为什么需要体系架构架构的常见错误理解架构带来什么好处架构设计的原则架构的风格及模式架构设计的过程8什么是软件架构-如何理解架构是针对某种特定目标系统的具有体系性的、普遍性的问题而提供的通用的解决方案。架构往往是对复杂系统的一种共性的体系抽象。架
5、构让我们能够正确、合理地理解、设计和构建复杂的系统。理解1:高楼大厦是由钢筋、水泥和砖块构成。理解2:信息系统是由数据和代码构成理解1:高楼大厦是由一个个楼层、一个个房间构成。理解2:信息系统是由一个个模块、一个个对象和组件构成。理解1:高楼大厦是由支撑框架、管道系统、强弱电系统、给排水系统……等构成。理解2:信息系统是由组织机构、业务流程、业务功能、业务信息……等构成。9什么是软件架构-定义期望其与建筑架构起到相同的作用:将软件的所有层次组合在一起便于客户理解为建造过程提供指导软件架构包含了过于下列方面的重要决定:软件系统的组成对所包括的系统及
6、其接口的结构元素的选择,以及元素间的协作行为结构和行为元素如何组成不断增长的更大的子系统架构风格:组成元素与接口、相互协作、相互组合架构元素不仅与结构和行为有关,也和用法、功能、性能、适应性、重用、可理解性、经济和技术的限制、折中、美学等有关10什么是软件架构-RATIONAL的定义软件架构也关系到功能性Functionality;可用性Usability;系统弹性Resilience性能Performance;重用Reuse;可理解性Comprehensibility经济和技术的约束及相关折中Economicandtechnologyconst
7、raintsandtradeoffs;美学的考虑Aestheticconcerns软件架构的描述包含构成系统的各个组件的描述组件间的交互(interactions)组件构成与组件合成的模式(pattern)以及在这些模式上的约束注:前两部分的描述,对于任意由不同部分构成的系统而言都是需要的,软件体系结构作为一门学科,是将此提伸到设计层原则的高度,同时,用通过实践过程总结的模式作为设计的指导。11什么是软件体系结构-特征体系结构学科:经常面对的设计问题的抽象、形式化、准确的描述与严格的分析经验:从实践中浮现的、非正式的解决方法个性:目标系统的特性、
8、隐含与显性的要求以及软件设计者(Architect)的习惯与个性类比:素描的蓝图人体结构与比例的科学数据(事实上为统计数据)既定的风格(
此文档下载收益归作者所有