软件架构的原理和实践原则课件

上传人:我*** 文档编号:144173903 上传时间:2020-09-06 格式:PPT 页数:65 大小:1.83MB
返回 下载 相关 举报
软件架构的原理和实践原则课件_第1页
第1页 / 共65页
软件架构的原理和实践原则课件_第2页
第2页 / 共65页
软件架构的原理和实践原则课件_第3页
第3页 / 共65页
软件架构的原理和实践原则课件_第4页
第4页 / 共65页
软件架构的原理和实践原则课件_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《软件架构的原理和实践原则课件》由会员分享,可在线阅读,更多相关《软件架构的原理和实践原则课件(65页珍藏版)》请在金锄头文库上搜索。

1、,RUP大讲堂(第六讲) -软件架构的原理和实践原则,北京恒讯时代信息技术有限公司,肖勇 ,2,内容,问题,什么是软件架构,为什么需要体系架构 架构的常见错误理解 架构带来什么好处 架构设计的原则,架构的风格及模式 架构设计的过程,3,问题-瓦萨战舰的故事,17世纪上半叶,北欧新教势力与中欧天主教势力发生了一场“三十年战 争”,作为北欧新教势力的代表,瑞典的军事力量达到鼎盛时期。 1625年,号称“北方飓风”的瑞典国王古斯塔夫斯阿道弗斯(Gustavs Adolphus)决心建造一艘史无前例的巨型新战舰瓦萨(Vasa)战舰。瓦 萨战舰确实是一艘令人望而生畏的战舰:舰长70米,载员300人,在三

2、层的甲 板上共装有64门重炮,火力超强。,1628年8月10日,这艘巨大的战舰终于完工。在斯德哥尔摩的王宮前,瓦萨战 舰举行了盛大的下水典礼。礼炮声中,战舰扬帆起航,乘风前进。,在1万多名围观者的目光注视下,忽然,瓦萨号奇怪地摇晃了一下,便向左舷 倾斜。海水从炮孔处涌入船舱,战舰迅速翻入水中,几分钟后,这艘雄伟战 舰的处女航也是唯一的一次航行结束了。瓦萨战舰在它壮丽的起航时 刻,带着全身飘扬的彩旗,沉没于它诞生的港口。,4,问题-信息系统的“瓦萨”问题,瓦萨的故事已经过去300多年了,在船舶工业领域,作为学科和工 业的基石“架构”早已形成完整的理论和方法体系。瓦萨的故 事,基本上不会重演了。,

3、但是,在今天的软件系统领域,“瓦萨”问题依然是需要解决的关 键问题。,5,问题-基本假设 体系结构提出之前的系统设计思路,需求(主要是功能需求) 系统设计 系统实现,特点: 技术性需求,特别是功能 需求是产生设计的唯一 (最主要的)的驱动力。 由此 非功能需求因素 非技术因素 的考虑很少。 基本假设: 设计是系统的技术需求分 析的产物。,6,什么是软件架构-架构一词的来源,建筑行业:,建筑学认为,所有的高楼大厦(复杂建筑),应该是由建筑结构、暖通 系统、强电系统、弱电系统(监控系统、综合布线等)、给排水系统等 构成。,具体体现在建筑图、总平面图、综合管线、结构图、给排水、暖通、强 电、弱电等图

4、纸上。,这种建筑学的思想方案,就是建筑设计的“架构体系”。 J建筑架构师需要把所有的层次结合起来:,使客户理解,在建造的过程中为施工者提供指导,架构相关于所有事情,架构为所有人提供一个共同的远景目标。 架构不包括每个部分的细节,7,内容,问题,什么是软件架构,为什么需要体系架构 架构的常见错误理解 架构带来什么好处 架构设计的原则,架构的风格及模式 架构设计的过程,8,什么是软件架构-如何理解,架构是针对某种特定目标系统的具有体系性的、普遍性的问题而提供的 通用的解决方案。,架构往往是对复杂系统的一种共性的体系抽象。,架构让我们能够正确、合理地理解、设计和构建复杂的系统。,理解1:高楼大厦是由

5、钢筋、水泥和砖块构成。 理解2:信息系统是由数据和代码构成,理解1:高楼大厦是由一个个楼层、一个个房间构成。,理解2:信息系统是由一个个模块、一个个对象和组件构成。,理解1:高楼大厦是由支撑框架、管道系统、强弱电系统、给排水系统等构成。 理解2:信息系统是由组织机构、业务流程、业务功能、业务信息等构成。,9,什么是软件架构-定义,期望其与建筑架构起到相同的作用:,将软件的所有层次组合在一起 便于客户理解,为建造过程提供指导,软件架构包含了过于下列方面的重要决定:,软件系统的组成,对所包括的系统及其接口的结构元素的选择,以及元素间的协作行为 结构和行为元素如何组成不断增长的更大的子系统 架构风格

6、:组成元素与接口、相互协作、相互组合,架构元素不仅与结构和行为有关,也和用法、功能、性能、适应 性、重用、可理解性、经济和技术的限制、折中、美学等有关,10,什么是软件架构-RATIONAL的定义,软件架构也关系到,功能性Functionality;可用性Usability;系统弹性Resilience 性能Performance;重用Reuse;可理解性Comprehensibility,经济和技术的约束及相关折中Economic and technology constraints and tradeoffs;美学的考虑Aesthetic concerns,软件架构的描述包含,构成系统的各

7、个组件的描述,组件间的交互(interactions),组件构成与组件合成的模式(pattern)以及在这些模式上的约束,注:前两部分的描述,对于任意由不同部分构成的系统而言都是需 要的,软件体系结构作为一门学科,是将此提伸到设计层原则的高 度,同时,用通过实践过程总结的模式作为设计的指导。,11,什么是软件体系结构-特征,体系结构,学科:经常面对的设计问题的抽象、形式化、准确的描述与严格的分析 经验:从实践中浮现的、非正式的解决方法,个性:目标系统的特性、隐含与显性的要求以及软件设计者(Architect) 的习惯与个性,类比:素描的蓝图,人体结构与比例的科学数据(事实上为统计数据) 既定的

8、风格(表现手法) 个人的经验、积累与个性等,类似之处:将抽象或具体的系统模型化用另一种表达方式描述出 来,体系结构即为这种模型的结构,忽略了细节而决定了细节。,12,什么是软件体系架构-复杂系统的架构本质 复杂系统的理解、设计和开发,普遍遵从层级理论的思路。诺贝尔奖 获得者赫伯特.西蒙曾论述到:“要构造一门关于复杂系统的比较正规 的理论,有一条路就是求助于层级理论复杂系统是层级结构的”。 架构体系就是一个由不同层级构成的、描述复杂系统的体系。,Presentation Application logic Domain layer Database,管理信息系统,System Service R

9、esource Management Kernel HAL (Hardware Abstraction Layer ) Hardware,操作系统:NT,层次结构:基于功能的划分,13,什么是软件体系架构-复杂系统的架构本质(续),系统(不限于软件系统)设计划分为若干个层次,区分各个层次之 间的区别,划分各层所需解决的设计问题是至关重要的。每个层次 上定义,组件:primitive and composite,组成规则:composite组件或系统的构造规则 行为规则:系统的语义,组件间交互的规则,这些规则在每一个层次上是不同的,每个层次上有各自的符号系统、 设计问题、分析技术,由此,各个层次

10、上的设计可以独立进行,而 每一层是上一层的实现。,14,什么是软件体系结构-范围,体系结构是系统的抽象,用抽象的组件及其外部可见的性质与他们 之间的关系来描述系统。,由于体系结构是抽象的,因此压缩了存局部信息,即组件的私有细 节不属于体系结构的描述范围。,系统由许多结构构成,这些结构通常称为View(视图),一种视图只能,描述从某个角度看到的系统,而非全部,同时,视图的集合不是固 定的。,15,什么是软件体系结构-涉及的知识体系,Solution Space,Problem Space,什么是软件体系结构-建议的架构视点和视图,非功能性需求,领域 (信息) 逻辑 实施,部署 16,需求视点 设

11、计视点 实现层视点,用例 (功能性) 过程,17,什么是软件体系结构-视图 体系结构作为高层抽象提供能被来自各种背景的系统参与者(经理 人、用户、客户、测试者、实现者、设计分析者等)所接受的描 述,同时,是系统的“蓝图”。 体系结构视图包括 Functional view:描述系统功能即它们之间的关系 Concurrency view:描述线程的通讯与资源共享 Code view:程序员所用的描述类、对象、过程、子系统等的视图 Development view / Physical view :系统的软硬件分布,Structure Model Dynamic Model,Framework M

12、odel Process Model,Static,Dynamical,Specified,Development,Layered Functional Model,LogicalView Process View,Development View Physical View,Scenario View,18,内容,问题,什么是软件架构,为什么需要体系架构 架构的常见错误理解 架构带来什么好处 架构设计的原则,架构的风格及模式 架构设计的过程,19,为什么需要架构体系?,这和为什么需要建筑架构体系是同一个道理。,架构体系是为了帮助我们正确理解、设计一个复杂的系统,以 确保我们最终可以成功构建出

13、这种复杂系统的基础。 Architecture as a process or discipline,建造供所有类型的人使用的大厦的艺术或科学,建造的活动或过程The action or process of building,依据建筑物的详细的结构和装饰的组织而采用的特殊的方法或风格 架构设计工作: 结构, 建筑物 总体的构造或结构,好的架构能带来和谐、弹性、可靠的整体(whole)。同样地, 好 的系统architecture 能带给企业和谐、弹性、可靠的整体信息 系统,20,为什么需要体系架构-基本假设,基本假设:系统不需要在超越“现在”的环境下生存,如果一个系统从来就不会变化,该系统本

14、身不需随外部环境而变化 不会有该系统的变种有待开发,就不需要有体系结构,只要”一锤子买卖“,如我们现在常做的,这样。,但是,辩证法说:世界是物质的,物质是变化的,没有两个东西是完全一样的,就如不能两次踏入同样的流水一样 人总是要偷懒的,才会有进步,所以尽量多动脑,少付出劳动代价,21,为什么需要软件体系架构-场景,对于大型、复杂、软件密度高(software-intensive)的系统而言,软件体 系结构是至关重要的,是在系统的参与者对系统的抽象描述达成共识并以此为基础进行交流,软件架构是软件开发过程中最早产生的系统描述,需要保证系统中相互 冲突的需求的优先级、决定系统构造的原则,如如何在安全

15、性与效率、 可维护性与可实现性、特殊性与可扩展性等取得折衷,软件架构由一些相对较小、易于理解与掌握的模型构成,从关键上描述 系统的构成与行为。这些模型具有相当地可扩展性,易于在类似的系统 中运用。从而达到软件复用的目标。,22,系统设计,现有功能需求,为什么需要软件体系架构静止观点-变化观点 用户当前对,系统的理解,现有构造技术,现有硬件平台,现有外部接口,用户对系统 的理解进步,体系结构设计,功能需求更新,构造技术发展,硬件平台升级,外部接口变化,系统设计,23,CODE,为什么需要软件体系架构-架构约束设计和实施 架构涉及到一系列对设计和建造起约束作用的的策略性的设计决 定、规则和模式 a

16、rchitecture design implementation,架构的决定是最为基本的决定 ,改变他们将掀起宣然巨波,24,为什么需要软件体系架构-架构很昂贵 (?),管理通常总是忽略先期支付的项目成本,健壮的架构对于复杂的、关键性的、尺寸增大的项目尤为关键 好的架构帮助估算和控制开发成本,从长期的角度看,, 没有架构的系,统是十分昂贵的!,25,内容,问题,什么是软件架构,为什么需要体系架构 架构的常见错误理解 架构带来什么好处 架构设计的原则,架构的风格及模式 架构设计的过程,26,架构的常见错误理解,架构和设计是相同的事情,架构和基础架构(infrastructure)是相同的事情 架构就是结构,架构是平面化的,一个蓝图就足够了 架构是不能够被度量和验证的 架构是艺术或架构是科学,27,错误概念: 架构 = 设计,架构是设计的一个表象

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号