软件体系结构1第1章软件体系结构概述.ppt

上传人:本田雅阁 文档编号:2641124 上传时间:2019-04-28 格式:PPT 页数:72 大小:13.70MB
返回 下载 相关 举报
软件体系结构1第1章软件体系结构概述.ppt_第1页
第1页 / 共72页
软件体系结构1第1章软件体系结构概述.ppt_第2页
第2页 / 共72页
软件体系结构1第1章软件体系结构概述.ppt_第3页
第3页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件体系结构1第1章软件体系结构概述.ppt》由会员分享,可在线阅读,更多相关《软件体系结构1第1章软件体系结构概述.ppt(72页珍藏版)》请在三一文库上搜索。

1、第1章,软件体系结构概述,刘 伟 (Sunny Liu) weiliu_,教学内容,引言 软件体系结构的意义 软件体系结构的定义 软件体系结构的发展 软件体系结构的优势,教材,教材,参考资料软件架构,参考资料设计模式,教学内容,引言 软件体系结构的意义 软件体系结构的定义 软件体系结构的发展 软件体系结构的优势,引言,三个小故事,故事一: 做“俯卧撑”的大楼 故事二: 著名的美国塔科马海峡大桥 故事三: 瓦萨战舰,引言,做“俯卧撑”的大楼,引言,做“俯卧撑”的大楼,引言,做“俯卧撑”的大楼 根据上海市政府公布的调查结果,房屋倾倒的主要原因是紧贴7号楼北侧在短期内堆土过高,最高处达10米左右。与

2、此同时,紧临大楼南侧的地下车库基坑正在开挖,开挖深度达4.6米。大楼两侧的压力差使土体产生水平位移,过大的水平力超过了桩基的抗侧能力,导致房屋倾倒。(山寨版原因之一:此栋楼房系自杀,原因是房价太高,自愧不值,畏罪自杀。),引言,著名的美国塔科马海峡大桥(Tacoma Narrows Bridge),引言,著名的美国塔科马海峡大桥(Tacoma Narrows Bridge),引言,著名的美国塔科马海峡大桥(Tacoma Narrows Bridge) 1940年7月1日通车的塔科马海峡大桥是一座主跨853米的悬索桥,桥梁长度1524米,桥下通航净高59.40米,1940年11月7日上午11点1

3、5分(美国太平洋时间),戏剧性地被海风摧毁而坍塌,可怜的小狗Tubby随之一同掉落进普及特海峡,成为这次事故的唯一遇难者,后人称之为“桥梁建筑史上的珍珠港”。对普及特海峡来说,倒塌的大桥也成为了世界上最大的人造礁石之一。1940年11月28日,美国海军的水文办公室报告称,桥梁遗骸的地理坐标是(47.1600“N,122.3300“W),深度180英尺(55 m)。,引言,著名的美国塔科马海峡大桥(Tacoma Narrows Bridge) 从20世纪40年代后期开始,围绕塔科马海峡大桥风毁事故的原因后人进行了大量的分析与试验研究。桥梁界最后给出的正式结论是震撼而有深远借鉴意义的:“塔科马大桥

4、使用了崭新而没有经过验证的桥梁设计结构,使大桥建成后毁于风力造成的风振。” 由于桥梁设计(换成IT界的话来讲,就是桥梁的架构)的原因,导致了这样惨痛的工程失败。 故事是令人震撼的,背后的教训也是深刻的。虽然后续桥梁工程实施的质量无可挑剔,但正是桥梁设计使用了全新的架构,并且该架构没有经过实践的检验,从而导致最终桥梁崩溃性灾难的发生。人类所有工程领域的进步都是建立在这样一系列失败的基础之上,并逐渐走向成熟和成功。,引言,瓦萨战舰,引言,瓦萨战舰 “瓦萨”号战舰是现存最古老的战舰残骸之一,也是世界上第一批风帆炮舰和当时世界最大的炮舰。它在处女航中离岸10多分钟就沉没了,其终点是水下30米,当时船上

5、150人中有数十人丧生。直到300多年后,它才被打捞上岸。 1628年8月10日,斯德哥尔摩码头人头攒动,人们都在焦急地等待,翘首企盼着堪称世界最顶级的“瓦萨”号战舰。,引言,瓦萨战舰 “瓦萨”号首航仅仅10多分钟就结束了。其建造过程中埋下的很多隐患:安置太多重炮却没有足够的压舱物,导致战舰重心过高;首航前没有经过严格测试等等,都是“瓦萨”号沉没的罪魁。但因为一切都是依照国王的要求建造的,所以,这个轰动一时的沉船事件最后也就不了了之。,引言,瓦萨战舰 瓦萨战舰的故事虽然发生在370多年前,但却很好地说明了软件架构的重要性:系统需求来自于企业目标,架构来自于系统需求,系统来自于架构。 构架与设计

6、师的经验、当时的技术水平有着密切的联系。瓦萨战舰的设计师Henrik Hybertsson虽然是当时享有盛誉的知名设计师,但是无论从他本人的经验(从未设计过类似规模的战舰)还是当时的技术水平来看,都不具备相应的条件。,引言,看一组数字,引言,建筑行业 华盛顿州立大学计算机系某项目延误几个月且超支2050万美元(计算机科学与工程大楼建设项目不是软件项目,Sanchez 1998) 西雅图水手队棒球馆1995年估算成本2亿5千万美元,它最后建成于1999年,耗资5亿1700万美元(Withers 1999) 波士顿Big Dig公路(美国历史上最昂贵的公路项目)建造项目,最初估算成本为26亿美元,

7、最终成本总计超过150亿美元(Associated Press 2003) ,引言,软件行业 爱尔兰人力资源管理系统(Personnel Payroll and Related Systems, PPARS)最初的预算为880万欧元,在成本超支达到1亿4千万欧元后被取消(The Irish Times 2005) 美国联邦调查局(FBI)虚拟案件档案(Virtual Case File, VCF)系统在花费了1亿7千万美元却只交付了1/10的计划功能的情况下被搁置(Arnone 2005),该项目更换了5任信息总监和10位项目经理,合同变更36次(Knorr 2005) ,教学内容,引言 软件

8、体系结构的意义 软件体系结构的定义 软件体系结构的发展 软件体系结构的优势,软件体系结构的意义,简单VS复杂,隐藏在简单背后的复杂,软件体系结构的意义,曲线一全球IT从业人员数量,软件体系结构的意义,曲线二每年新产生或修改的源代码行数(开发/累积),软件体系结构的意义,曲线三单个程序员年生产效率,软件体系结构的意义,Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High per

9、formance,Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance,Higher management complexity - Large scale - Contractual - Many stake holders - “Projects”,Lower management complexity - Small scale - Informal - Single stakeholder - “Products”

10、,An average software project - 5-10 people - 3-9 month duration - 3-5 external interfaces - Some unknowns & risks,软件体系结构的意义,技术的复杂性,Assembly Fortran/COBOL Simula C+ Java Naked HW BIOS OS Middleware Domain-Specific Waterfall Spiral Iterative Agile Procedural Object Oriented Service Oriented Early tool

11、s CLE IDE XDE CDE Individual Workgroup Organization,Languages: Platforms: Processes: Architecture: Tools: Enablement:,软件体系结构的意义,建造一个狗窝,Can be built by one person Requires Minimal modeling Simple process Simple tools,软件体系结构的意义,建造一栋别墅,Built most efficiently and timely by a team Requires Modeling Well-

12、defined process Power tools,软件体系结构的意义,建造摩天大楼,?,软件体系结构的意义,建模,软件体系结构的意义,建模,软件体系结构的意义,建模,软件体系结构的意义,需求实现,Architecture,教学内容,引言 软件体系结构的意义 软件体系结构的定义 软件体系结构的发展 软件体系结构的优势,软件体系结构的定义,定义 目前还没有一个标准的,普遍接受的定义 “ bridging the gap between requirements and implementations” (David Garlan & Dewane Perry),软件体系结构的定义,定义,CO

13、DE,implementation,design,architecture,Architectural decisions are the most fundamental decisions; changing them will have significant ripple effects.,软件体系结构的定义,定义* SEI软件体系结构讨论群定义如下:一个程序/系统构件的结构,它们之间的相互关系, 以及在设计和交付的整个过程中的原则和指导方针。 一般来说,软件体系结构定义需要考虑到系统中的构件及其它们之间的相互作用。,软件体系结构的定义,定义 Kruchten指出,软件体系结构具有四个

14、角度,它们从不同方面对系统进行描述,其中概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。,软件体系结构的定义,定义 David Garlan和Dewne Perry于1995年在IEEE软件工程学报上采用如下的定义:软件体系结构是一个程序/系统各构件的结构、它们之间的相互关系以及进行设计的原则和随时间进化的指导方针。,软件体系结构的定义,定义 Barry Boehm和他的学生提出,一个软件体系结构包括一个软件和系统构件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这

15、一构件,互联和约束能够满足系统需求。,软件体系结构的定义,定义 1997年,Bass,Ctements和Kazman在实用软件体系结构一书中给出如下的定义:一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软件构件的外部的可见特性及其相互关系。其中,“软件外部的可见特性”是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。,软件体系结构的定义,定义* Mary Shaw和David Garlan认为软件体系结构包括构成系统的设计元素的描述,设计元素的交互,设计元素组合的模式,以及在这些模式中的约束。 软件体系结构包括构件(Component)、连接件(Connector)和约

16、束(Constrain)或配置(Configuration)三大要素。,软件体系结构的定义,定义 Mary Shaw和David Garlan,Professor of Computer Science at Carnegie Mellon University,Professor of Computer Science at Carnegie Mellon University,软件体系结构的定义,定义,软件体系结构的定义,定义* 国内普遍接受的定义:软件体系结构包括构件、连接件和约束,它是可预制和可重构的软件框架结构。 构件是可预制和可重用的软件部件,是组成体系结构的基本计算单元或数据存储

17、单元 连接件也是可预制和可重用的软件部件,是构件之间的连接单元 构件和连接件之间的关系用约束来描述 软件体系结构 = 构件 + 连接件 + 约束,软件体系结构的定义,构件 构件是指一个计算单元或者数据存储单元,可以是一个处理过程或数据元素。 构件是用于实现计算和状态的单元,可以工作在:客户端、服务器端、数据库或层等。 构件可简单可复杂:复杂构件描述一个系统,一个体系结构由一些描述系统的复杂构件组成。,软件体系结构的定义,连接件 连接件是体系结构的一个元素,它可以用于建模: 构件之间的相互作用 控制这些相互作用的规则 简单相互作用: 过程的调用 访问共享变量 复杂和语义相关的相互作用: 客户端-

18、服务器协议 数据库访问协议 异步事件的多点传送 管道数据流,软件体系结构的定义,约束 约束描述了体系结构的配置和拓扑要求,配置或拓扑是指构件和连接件组成的一个连接图,它用于描述软件体系结构的构成,确定了体系结构的构件与连接件之间的连接关系: 正确的连接性 并发和分布性 符合设计的启发式和风格规则,教学内容,引言 软件体系结构的意义 软件体系结构的定义 软件体系结构的发展 软件体系结构的优势,软件体系结构的发展,建筑架构的发展基础研究阶段,软件体系结构的发展,软件架构的发展基础研究阶段 1985年-1994年 软件系统的设计人员习惯使用一些没有统一格式和语义的图形来描述系统的结构。虽然描述的是各

19、自负责的不同类型的系统,但在描述风格和手段方面却有着很多共性,不同系统之间也有着很多设计手段或风格上的共性。 一些重要的基本思想和基础概念开始浮出水面:数据/信息隐藏和封装、抽象数据类型、面向对象软件设计与开发等 开始尝试一些为了解决特定行业、特定问题所采用的具有明显针对性的设计手段和设计结构。 试图识别出通用的体系结构风格和设计方式,尝试找到和应用一些通用的方法来描述不同类型的系统结构,软件体系结构的发展,建筑架构的发展概念确立阶段,软件体系结构的发展,软件架构的发展概念确立阶段 1992年-1996年 设计模式 软件体系结构(架构)基本概念和模型的确立 体系结构描述语言(ADL)的发展 体

20、系结构表述及分析规则的制定 体系结构元素及风格的分类研究 体系结构评估方法(如SAAM等) 架构视图(4+1视图),软件体系结构的发展,建筑架构的发展探索发展阶段,软件体系结构的发展,软件架构的发展探索发展阶段 1995年-2000年 1995年IEEE专门针对软件体系结构的特刊 1997年,ACME体系结构交互语言,为不同体系结构描述语言之间的交互提供一个统一的平台 1998年,软件体系结构工作会议WICSA (Working IEEE/IFIP Conference on Software Architecture) 2000年,软件架构的路线图 架构模式与设计模式,软件体系结构的发展,软

21、件架构的发展探索发展阶段 体系结构评估方法的发展:SAAMATAM 经验和成果开始在工业界大规模应用,如Raytheon公司的REAP (Raytheon Enterprise Architecture Process) UML (Unified Modeling Language)的发展RUP (Rational Unified Process) 面向对象软件架构框架(Architecture Framework)或架构平台(Architecture Platform):Sun的Java EE和Microsoft的.net Framework 特定领域的体系结构 基于构件的软件体系结构,软件

22、体系结构的发展,建筑架构的发展普及应用阶段,软件体系结构的发展,软件架构的发展普及应用阶段 2000年至今 新架构风格:N层的C/S架构、B/S架构、基于代理的架构、SOA等 Web Service OMG提出:MDA (Model Driven Architecture) 软件架构师 (Software Architect):比尔.盖茨(微软首席架构师) 越来越多的软件架构国际性会议召开(2005年,SEI举办的一系列会议增加了25个与软件架构相关的会议),越来越多的架构技术人员参与 美国大学2000年、中国大学2001年开始,软件体系结构进入本科教育 2004年秋天,IEEE和ACM联合提

23、出软件工程大学本科教育指南,软件体系结构占软件设计的内容的20%。,软件体系结构的发展,软件架构的发展普及应用阶段,微软前首席软件架构师雷奥兹,PHP之父、雅虎架构师Rasmus Lerdorf,软件体系结构的发展,软件架构的发展普及应用阶段,教学内容,引言 软件体系结构的意义 软件体系结构的定义 软件体系结构的发展 软件体系结构的优势,软件体系结构的优势,实例,软件体系结构的优势,容易理解 它从一个高层设计的抽象层次来表征一个系统 简化了我们理解庞大系统的能力,重用 重用大的构件 重用一些集成构件的框架 特定领域的软件体系结构 设计模式,软件体系结构的优势,控制成本 系统维护者可以更好的理解

24、变更带来的影响,因而可以更加精确的估算变更所需的成本,软件体系结构的优势,可分析性 对系统的一致性检查提供高层次的视图 研究系统是否与某种体系结构风格相符合 对符合特定风格的特定领域系统的体系结构分析 分析依赖于其中的构件,软件体系结构的优势,软件体系结构的优势,http:/ http:/www.sei.cmu.edu/architecture/ http:/en.wikipedia.org/wiki/Software_architecture http:/ http:/www.ics.uci.edu/fielding/pubs/dissertation/software_arch.htm,参考资料,Thanks!,END,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1