软件体系结构课件:第1章 软件体系结构概述_第1页
软件体系结构课件:第1章 软件体系结构概述_第2页
软件体系结构课件:第1章 软件体系结构概述_第3页
软件体系结构课件:第1章 软件体系结构概述_第4页
软件体系结构课件:第1章 软件体系结构概述_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章软件体系结构概述教学内容

引言软件体系结构的意义软件体系结构的定义软件体系结构的发展软件体系结构的优势教材教学内容

引言软件体系结构的意义软件体系结构的定义软件体系结构的发展软件体系结构的优势引言三个小故事……

故事一:做“俯卧撑”的大楼故事二:著名的美国塔科马海峡大桥故事三:瓦萨战舰引言做“俯卧撑”的大楼根据上海市政府公布的调查结果,房屋倾倒的主要原因是紧贴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)……引言软件行业爱尔兰人力资源管理系统(PersonnelPayrollandRelatedSystems,PPARS)——最初的预算为880万欧元,在成本超支达到1亿4千万欧元后被取消(TheIrishTimes2005)美国联邦调查局(FBI)虚拟案件档案(VirtualCaseFile,VCF)系统——在花费了1亿7千万美元却只交付了1/10的计划功能的情况下被搁置(Arnone2005),该项目更换了5任信息总监和10位项目经理,合同变更36次(Knorr2005)……教学内容

引言软件体系结构的意义软件体系结构的定义软件体系结构的发展软件体系结构的优势软件体系结构的意义简单VS复杂隐藏在简单背后的复杂软件体系结构的意义Highertechnicalcomplexity-Embedded,real-time,distributed,fault-tolerant-Custom,unprecedented,architecturereengineering-HighperformanceLowertechnicalcomplexity-Mostly4GL,orcomponent-based-Applicationreengineering-InteractiveperformanceHighermanagementcomplexity-Largescale-Contractual-Manystakeholders-“Projects”Lowermanagementcomplexity-Smallscale-Informal-Singlestakeholder-“Products”DefenseMISSystemDefense

WeaponSystemTelecomSwitchCASEToolNationalAirTrafficControlSystemEnterpriseIS(FamilyofISApplications)CommercialCompilerBusinessSpreadsheetISApplicationDistributedObjects(OrderEntry)SmallScientificSimulationLarge-ScaleOrganization/EntitySimulation

Anaveragesoftwareproject-5-10people-3-9monthduration-3-5externalinterfaces-Someunknowns&risksEmbeddedAutomotiveSoftwareISApplicationGUI/RDB(OrderEntry)软件体系结构的意义技术的复杂性Assembly

Fortran/COBOL

Simula

C++

JavaNakedHW

BIOS

OS

Middleware

Domain-SpecificWaterfall

Spiral

Iterative

AgileProcedural

ObjectOriented

ServiceOrientedEarlytools

CLE

IDE

XDE

CDEIndividual

Workgroup

OrganizationLanguages:Platforms:Processes:Architecture:Tools:Enablement:软件体系结构的意义建造一个狗窝CanbebuiltbyonepersonRequires Minimalmodeling Simpleprocess Simpletools软件体系结构的意义建造一栋别墅BuiltmostefficientlyandtimelybyateamRequires Modeling Well-definedprocess Powertools软件体系结构的意义建造摩天大楼???软件体系结构的意义建模软件体系结构的意义建模软件体系结构的意义建模软件体系结构的意义需求实现Architecture教学内容

引言软件体系结构的意义软件体系结构的定义软件体系结构的发展软件体系结构的优势软件体系结构的定义定义目前还没有一个标准的,普遍接受的定义“..bridging

thegapbetweenrequirementsandimplementations…”(DavidGarlan&DewanePerry)软件体系结构的定义定义CODEimplementationdesignarchitectureArchitecturaldecisionsarethemostfundamentaldecisions;changingthemwillhavesignificantrippleeffects.软件体系结构的定义定义*SEI软件体系结构讨论群定义如下:一个程序/系统构件的结构,它们之间的相互关系,以及在设计和交付的整个过程中的原则和指导方针。一般来说,软件体系结构定义需要考虑到系统中的构件及其它们之间的相互作用。软件体系结构的定义定义Kruchten指出,软件体系结构具有四个角度,它们从不同方面对系统进行描述,其中概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。软件体系结构的定义定义DavidGarlan和DewnePerry于1995年在IEEE软件工程学报上采用如下的定义:软件体系结构是一个程序/系统各构件的结构、它们之间的相互关系以及进行设计的原则和随时间进化的指导方针。软件体系结构的定义定义BarryBoehm和他的学生提出,一个软件体系结构包括一个软件和系统构件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这一构件,互联和约束能够满足系统需求。软件体系结构的定义定义1997年,Bass,Ctements和Kazman在《实用软件体系结构》一书中给出如下的定义:一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软件构件的外部的可见特性及其相互关系。其中,“软件外部的可见特性”是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。软件体系结构的定义定义*MaryShaw和DavidGarlan认为软件体系结构包括构成系统的设计元素的描述,设计元素的交互,设计元素组合的模式,以及在这些模式中的约束。软件体系结构包括构件(Component)、连接件(Connector)和约束(Constraint)或配置(Configuration)三大要素。软件体系结构的定义定义MaryShaw和DavidGarlanProfessorofComputerScienceatCarnegieMellonUniversityProfessorofComputerScienceatCarnegieMellonUniversity软件体系结构的定义定义软件体系结构的定义定义*国内普遍接受的定义:软件体系结构包括构件、连接件和约束,它是可预制和可重构的软件框架结构。构件是可预制和可重用的软件部件,是组成体系结构的基本计算单元或数据存储单元连接件也是可预制和可重用的软件部件,是构件之间的连接单元构件和连接件之间的关系用约束来描述软件体系结构=构件+连接件+约束软件体系结构的定义构件构件是指一个计算单元或者数据存储单元,可以是一个处理过程或数据元素。构件是用于实现计算和状态的单元,可以工作在:客户端、服务器端、数据库或层等。构件可简单可复杂:复杂构件描述一个系统,一个体系结构由一些描述系统的复杂构件组成。软件体系结构的定义连接件连接件是体系结构的一个元素,它可以用于建模:构件之间的相互作用控制这些相互作用的规则简单相互作用:过程的调用访问共享变量复杂和语义相关的相互作用:客户端-服务器协议数据库访问协议异步事件的多点传送管道数据流软件体系结构的定义约束约束描述了体系结构的配置和拓扑要求,配置或拓扑是指构件和连接件组成的一个连接图,它用于描述软件体系结构的构成,确定了体系结构的构件与连接件之间的连接关系:正确的连接性并发和分布性符合设计的启发式和风格规则教学内容

引言软件体系结构的意义软件体系结构的定义

软件体系结构的发展软件体系结构的优势软件体系结构的发展建筑架构的发展——基础研究阶段软件体系结构的发展软件架构的发展——基础研究阶段1985年-1994年软件系统的设计人员习惯使用一些没有统一格式和语义的图形来描述系统的结构。虽然描述的是各自负责的不同类型的系统,但在描述风格和手段方面却有着很多共性,不同系统之间也有着很多设计手段或风格上的共性。一些重要的基本思想和基础概念开始浮出水面:数据/信息隐藏和封装、抽象数据类型、面向对象软件设计与开发等开始尝试一些为了解决特定行业、特定问题所采用的具有明显针对性的设计手段和设计结构。试图识别出通用的体系结构风格和设计方式,尝试找到和应用一些通用的方法来描述不同类型的系统结构软件体系结构的发展建筑架构的发展——概念确立阶段软件体系结构的发展软件架构的发展——概念确立阶段1992年-1996年设计模式软件体系结构(架构)基本概念和模型的确立体系结构描述语言(ADL)的发展体系结构表述及分析规则的制定体系结构元素及风格的分类研究体系结构评估方法(如SAAM等)架构视图(4+1视图)软件体系结构的发展建筑架构的发展——探索发展阶段软件体系结构的发展软件架构的发展——探索发展阶段1995年-2000年1995年IEEE专门针对软件体系结构的特刊1997年,ACME体系结构交互语言,为不同体系结构描述语言之间的交互提供一个统一的平台1998年,软件体系结构工作会议WICSA(WorkingIEEE/IFIPConferenceonSoftwareArchitecture)2000年,软件架构的路线图架构模式与设计模式软件体系结构的发展软件架构的发展——探索发展阶段体系结构评估方法的发展:SAAMATAM经验和成果开始在工业界大规模应用,如Raytheon公司的REAP(RaytheonEnterpriseArchitectureProcess)UML(UnifiedModelingLanguage)的发展RUP(RationalUnifiedProcess)面向对象软件架构框架(ArchitectureFramework)或架构平台(ArchitecturePlatform):Sun的JavaEE和Microsoft的.netFramework特定领域的体系结构基于构件的软件体系结构软件体系结构的发展建筑架构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论