软件体系结构1第1章软件体系结构概述课件

PPT
  • 阅读 174 次
  • 下载 0 次
  • 页数 72 页
  • 大小 13.695 MB
  • 2022-11-25 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
软件体系结构1第1章软件体系结构概述课件
可在后台配置第一页与第二页中间广告代码
软件体系结构1第1章软件体系结构概述课件
可在后台配置第二页与第三页中间广告代码
软件体系结构1第1章软件体系结构概述课件
可在后台配置第三页与第四页中间广告代码
软件体系结构1第1章软件体系结构概述课件
软件体系结构1第1章软件体系结构概述课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 72
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】软件体系结构1第1章软件体系结构概述课件.ppt,共(72)页,13.695 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-50537.html

以下为本文档部分文字说明:

第1章软件体系结构概述刘伟(SunnyLiu)weiliu_china@163.com教学内容引言软件体系结构的意义软件体系结构的定义软件体系结构的发展软件体系结构的优势教材教材参考资料——软件架构参考资料—

—设计模式教学内容引言软件体系结构的意义软件体系结构的定义软件体系结构的发展软件体系结构的优势引言三个小故事……•故事一:做“俯卧撑”的大楼•故事二:著名的美国塔科马海峡大桥•故事三:瓦萨战舰引言做“俯卧撑”的大楼引言做“俯卧撑”的大楼引言做“俯卧撑”的大楼根据上海市

政府公布的调查结果,房屋倾倒的主要原因是紧贴7号楼北侧在短期内堆土过高,最高处达10米左右。与此同时,紧临大楼南侧的地下车库基坑正在开挖,开挖深度达4.6米。大楼两侧的压力差使土体产生水平位移,过大的水平力超过了桩基的

抗侧能力,导致房屋倾倒。(山寨版原因之一:此栋楼房系自杀,原因是房价太高,自愧不值,畏罪自杀。)引言著名的美国塔科马海峡大桥(TacomaNarrowsBridge)引言著名的美国塔科马海峡大桥(TacomaNarrowsBridge)引言著名的美国塔科

马海峡大桥(TacomaNarrowsBridge)1940年7月1日通车的塔科马海峡大桥是一座主跨853米的悬索桥,桥梁长度1524米,桥下通航净高59.40米,1940年11月7日上午11点15分(美国太平洋时间),

戏剧性地被海风摧毁而坍塌,可怜的小狗Tubby随之一同掉落进普及特海峡,成为这次事故的唯一遇难者,后人称之为“桥梁建筑史上的珍珠港”。对普及特海峡来说,倒塌的大桥也成为了世界上最大的人造礁石之一。1940年11月28日,美国海军的水文办公室报告称,桥梁遗骸

的地理坐标是(47.16'00"N,122.33'00"W),深度180英尺(55m)。引言著名的美国塔科马海峡大桥(TacomaNarrowsBridge)从20世纪40年代后期开始,围绕塔科马海峡大桥风毁事故

的原因后人进行了大量的分析与试验研究。桥梁界最后给出的正式结论是震撼而有深远借鉴意义的:“塔科马大桥使用了崭新而没有经过验证的桥梁设计结构,使大桥建成后毁于风力造成的风振。”由于桥梁设计(换成IT界的话来讲,就是桥梁的架构)的原因,导致了这样惨痛的工程失败。故事是令人震撼的,背后的教训

也是深刻的。虽然后续桥梁工程实施的质量无可挑剔,但正是桥梁设计使用了全新的架构,并且该架构没有经过实践的检验,从而导致最终桥梁崩溃性灾难的发生。人类所有工程领域的进步都是建立在这样一系列失败的基础之上,并逐渐走向成熟和成功。引言瓦萨战舰引言瓦萨战舰

“瓦萨”号战舰是现存最古老的战舰残骸之一,也是世界上第一批风帆炮舰和当时世界最大的炮舰。它在处女航中离岸10多分钟就沉没了,其终点是水下30米,当时船上150人中有数十人丧生。直到300多年后,它才被打捞上岸。1628年8月10日,斯德哥尔

摩码头人头攒动,人们都在焦急地等待,翘首企盼着堪称世界最顶级的“瓦萨”号战舰。引言瓦萨战舰“瓦萨”号首航仅仅10多分钟就结束了。其建造过程中埋下的很多隐患:安置太多重炮却没有足够的压舱物,导致战舰重心过高;首航前没有经过严格测试等等,都是“瓦萨”号沉没的罪魁。但因为一切都是依照

国王的要求建造的,所以,这个轰动一时的沉船事件最后也就不了了之。引言瓦萨战舰瓦萨战舰的故事虽然发生在370多年前,但却很好地说明了软件架构的重要性:系统需求来自于企业目标,架构来自于系统需求,系统来自于架构。构架与设计师的经验、当时的技术水平有着密切的联系。瓦萨战

舰的设计师HenrikHybertsson虽然是当时享有盛誉的知名设计师,但是无论从他本人的经验(从未设计过类似规模的战舰)还是当时的技术水平来看,都不具备相应的条件。引言看一组数字……引言建筑行业华盛顿州立大学计算机系某

项目——延误几个月且超支2050万美元(计算机科学与工程大楼建设项目不是软件项目,Sanchez1998)西雅图水手队棒球馆——1995年估算成本2亿5千万美元,它最后建成于1999年,耗资5亿1700万美元(Withers1999)

波士顿BigDig公路(美国历史上最昂贵的公路项目)建造项目,最初估算成本为26亿美元,最终成本总计超过150亿美元(AssociatedPress2003)……引言软件行业爱尔兰人力资源管理系统(PersonnelPayrollandRelate

dSystems,PPARS)——最初的预算为880万欧元,在成本超支达到1亿4千万欧元后被取消(TheIrishTimes2005)美国联邦调查局(FBI)虚拟案件档案(VirtualCaseFile,VCF)系统——在花费了1亿7千万美元却只交付了1/10的计

划功能的情况下被搁置(Arnone2005),该项目更换了5任信息总监和10位项目经理,合同变更36次(Knorr2005)……教学内容引言软件体系结构的意义软件体系结构的定义软件体系结构的发展软件体系结构的优势软件体系结构的意义简单VS复杂隐藏在简单背后的复杂软件体系结构

的意义曲线一——全球IT从业人员数量NumberofITprofessionalsworldwidey=-128.47x3+12800x2-59294x+14662302,000,0004,000,0006,000,0008,000,00010,000,00012,000,00

014,000,00016,000,000194519481951195419571960196319661969197219751978198119841987199019931996199920022005NumberofITprofessio

nalsworldwide(assumptions)Poly.(NumberofITprofessionalsworldwide(assumptions))软件体系结构的意义曲线二——每年新产生或修改的源代码行数(开发/

累积)Newormodifiedsourcelinesofcodeperyearperdeveloper&cumulative0100,000,000,000200,000,000,000300,000,000,000400,00

0,000,000500,000,000,000600,000,000,000700,000,000,000800,000,000,00019451948195119541957196019631966196919721975197819811984

1987199019931996199920022005NewormodifiedsourcelinesofcodeperyearCumulativesourcelinesofcode软件体系结构的意义曲线三——单个程序员年生产效率Newor

modifiedsourcelinesofcodeperyearperdevelopery=-0.0328x3+4.8392x2-67.596x+1062.801,0002,0003,0004,0005,0006,0007,00

08,0001945194719491951195319551957195919611963196519671969197119731975197719791981198319851987198919911993199519971

999200120032005Newormodifiedsourcelinesofcodeperyear)perdeveloper(assumptionsPoly.(Newormodifiedsourcelinesofcodeper))yearperdev

eloper(assumptions软件体系结构的意义Highertechnicalcomplexity-Embedded,real-time,distributed,fault-tolerant-Custom,unprecedented,architecturereengineerin

g-HighperformanceLowertechnicalcomplexity-Mostly4GL,orcomponent-based-Applicationreengineering-InteractiveperformanceHighermanagementcomplexity-La

rgescale-Contractual-Manystakeholders-“Projects”Lowermanagementcomplexity-Smallscale-Informal-Singlestakeholder-“P

roducts”DefenseMISSystemDefenseWeaponSystemTelecomSwitchCASEToolNationalAirTrafficControlSystemEnterpriseIS(FamilyofISApplications)Commer

cialCompilerBusinessSpreadsheetISApplicationDistributedObjects(OrderEntry)SmallScientificSimulationLarge-ScaleOrgani

zation/EntitySimulationAnaveragesoftwareproject-5-10people-3-9monthduration-3-5externalinterfaces-So

meunknowns&risksEmbeddedAutomotiveSoftwareISApplicationGUI/RDB(OrderEntry)软件体系结构的意义技术的复杂性AssemblyFortran/COBOLSimulaC++JavaNakedHWBIOSOSM

iddlewareDomain-SpecificWaterfallSpiralIterativeAgileProceduralObjectOrientedServiceOrientedEarlytoolsC

LEIDEXDECDEIndividualWorkgroupOrganizationLanguages:Platforms:Processes:Architecture:Tools:Enablement:软件体系结构的意义建造一个狗窝Canbebuiltbyonepe

rsonRequiresMinimalmodelingSimpleprocessSimpletools软件体系结构的意义建造一栋别墅BuiltmostefficientlyandtimelybyateamRequiresModelingWell

-definedprocessPowertools软件体系结构的意义建造摩天大楼???软件体系结构的意义建模软件体系结构的意义建模软件体系结构的意义建模软件体系结构的意义需求实现Architecture教学内容引言软件体系结构的意义软件体系结构的定义软件体系结构的发

展软件体系结构的优势软件体系结构的定义定义目前还没有一个标准的,普遍接受的定义“..bridgingthegapbetweenrequirementsandimplementations…”(DavidGarlan&DewanePerry)软件体系结构的定义定

义CODEimplementationdesignarchitectureArchitecturaldecisionsarethemostfundamentaldecisions;changingthemwillhavesignificantripplee

ffects.软件体系结构的定义定义*SEI软件体系结构讨论群定义如下:一个程序/系统构件的结构,它们之间的相互关系,以及在设计和交付的整个过程中的原则和指导方针。一般来说,软件体系结构定义需要考虑到系统中的构件及其它们之间的相互作用。软件体系结构的定义

定义Kruchten指出,软件体系结构具有四个角度,它们从不同方面对系统进行描述,其中概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。软件体系结构的定义定义DavidGarlan和

DewnePerry于1995年在IEEE软件工程学报上采用如下的定义:软件体系结构是一个程序/系统各构件的结构、它们之间的相互关系以及进行设计的原则和随时间进化的指导方针。软件体系结构的定义定义BarryBoehm和他的学生提出,一个软件体系结构包括一个软件和系

统构件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这一构件,互联和约束能够满足系统需求。软件体系结构的定义定义1997年,Bass,Ctements和Kazman在《实用软件体系结构》一书中给出如下的定义:一个程序或计算机系统的软件体系结构包

括一个或一组软件构件、软件构件的外部的可见特性及其相互关系。其中,“软件外部的可见特性”是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。软件体系结构的定义定义*MaryShaw和DavidGarlan认为

软件体系结构包括构成系统的设计元素的描述,设计元素的交互,设计元素组合的模式,以及在这些模式中的约束。软件体系结构包括构件(Component)、连接件(Connector)和约束(Constrain)或配置(Configuration)

三大要素。软件体系结构的定义定义MaryShaw和DavidGarlanProfessorofComputerScienceatCarnegieMellonUniversityProfessorofComputerScienceatCarnegieMell

onUniversity软件体系结构的定义定义软件体系结构的定义定义*国内普遍接受的定义:软件体系结构包括构件、连接件和约束,它是可预制和可重构的软件框架结构。构件是可预制和可重用的软件部件,

是组成体系结构的基本计算单元或数据存储单元连接件也是可预制和可重用的软件部件,是构件之间的连接单元构件和连接件之间的关系用约束来描述软件体系结构=构件+连接件+约束软件体系结构的定义构件构件是指一个计算单元或者数据存储单元,可以是

一个处理过程或数据元素。构件是用于实现计算和状态的单元,可以工作在:客户端、服务器端、数据库或层等。构件可简单可复杂:复杂构件描述一个系统,一个体系结构由一些描述系统的复杂构件组成。软件体系结构的定义连接件连接件是体系结构的一

个元素,它可以用于建模:构件之间的相互作用控制这些相互作用的规则简单相互作用:过程的调用访问共享变量复杂和语义相关的相互作用:客户端-服务器协议数据库访问协议异步事件的多点传送管道数据流软件体系结构的定义约束约束描述了体系结构

的配置和拓扑要求,配置或拓扑是指构件和连接件组成的一个连接图,它用于描述软件体系结构的构成,确定了体系结构的构件与连接件之间的连接关系:正确的连接性并发和分布性符合设计的启发式和风格规则教学内容引言软件

体系结构的意义软件体系结构的定义软件体系结构的发展软件体系结构的优势软件体系结构的发展建筑架构的发展——基础研究阶段软件体系结构的发展软件架构的发展——基础研究阶段1985年-1994年软件系统的设计人员习惯使用一些没有统一格式和语义的图形来描述系统的结构。虽然描述的是

各自负责的不同类型的系统,但在描述风格和手段方面却有着很多共性,不同系统之间也有着很多设计手段或风格上的共性。一些重要的基本思想和基础概念开始浮出水面:数据/信息隐藏和封装、抽象数据类型、面向对象软件设计与开发等开始尝试一些为了解决特定行业、特定问

题所采用的具有明显针对性的设计手段和设计结构。试图识别出通用的体系结构风格和设计方式,尝试找到和应用一些通用的方法来描述不同类型的系统结构软件体系结构的发展建筑架构的发展——概念确立阶段软件体系结构的发展软件架构

的发展——概念确立阶段1992年-1996年设计模式软件体系结构(架构)基本概念和模型的确立体系结构描述语言(ADL)的发展体系结构表述及分析规则的制定体系结构元素及风格的分类研究体系结构评估方法(如SAAM等)架构视图(4+1视图)软件体系结构

的发展建筑架构的发展——探索发展阶段软件体系结构的发展软件架构的发展——探索发展阶段1995年-2000年1995年IEEE专门针对软件体系结构的特刊1997年,ACME体系结构交互语言,为不同体系结构描述语言之间的交互提供一

个统一的平台1998年,软件体系结构工作会议WICSA(WorkingIEEE/IFIPConferenceonSoftwareArchitecture)2000年,软件架构的路线图架构模式与设计模式软件体系结构的

发展软件架构的发展——探索发展阶段体系结构评估方法的发展:SAAMATAM经验和成果开始在工业界大规模应用,如Raytheon公司的REAP(RaytheonEnterpriseArchitectureProcess)UML(Unif

iedModelingLanguage)的发展RUP(RationalUnifiedProcess)面向对象软件架构框架(ArchitectureFramework)或架构平台(ArchitecturePlatform):Sun的Java

EE和Microsoft的.netFramework特定领域的体系结构基于构件的软件体系结构软件体系结构的发展建筑架构的发展——普及应用阶段软件体系结构的发展软件架构的发展——普及应用阶段2000年至今新架构风格:N层的C/S架构、B/S架构、基于

代理的架构、SOA等WebServiceOMG提出:MDA(ModelDrivenArchitecture)软件架构师(SoftwareArchitect):比尔.盖茨(微软首席架构师)越来越多的软件架构国际性会议召开(2005年,SEI举办的一系列会议增加了25个与软件架构相关的

会议),越来越多的架构技术人员参与美国大学2000年、中国大学2001年开始,软件体系结构进入本科教育2004年秋天,IEEE和ACM联合提出《软件工程大学本科教育指南》,软件体系结构占软件设计的内容的20%。软件体系结构的发展软件架构的发展——普及应用阶段

微软前首席软件架构师雷·奥兹PHP之父、雅虎架构师RasmusLerdorf软件体系结构的发展软件架构的发展——普及应用阶段教学内容引言软件体系结构的意义软件体系结构的定义软件体系结构的发展软件体系结构的优势软件体系结构的优势实例

软件体系结构的优势容易理解它从一个高层设计的抽象层次来表征一个系统简化了我们理解庞大系统的能力重用重用大的构件重用一些集成构件的框架特定领域的软件体系结构设计模式软件体系结构的优势控制成本系统维护者可以更好的理解变更带来的影响,因而可以更加精确的估算

变更所需的成本软件体系结构的优势可分析性对系统的一致性检查提供高层次的视图研究系统是否与某种体系结构风格相符合对符合特定风格的特定领域系统的体系结构分析分析依赖于其中的构件软件体系结构的优势软件体系结构的优势http:/

/www.ibm.com/developerworks/rational/library/feb06/eeles/http://www.sei.cmu.edu/architecture/http://

en.wikipedia.org/wiki/Software_architecturehttp://www.softwarearchitecture.com/http://www.ics.uci.edu/~fielding/pubs/disse

rtation/software_arch.htm参考资料END

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?