版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Noparadigmisperfect...that'swhytherearesomanyofthem.Chapter10体系结构的一般描述目前整个软件界对于软件体系结构组成要素和结构描述在软件理论和工程实践中,人们已经在采用各种表达软件构成的描述形式,构成了软件设计结构表达的一些规范、术语。不统一、不规范依赖于设计者的知识、经验和技巧研究和建立形式化、规范化体系结构描述是必须的目前还没有关于体系结构的普遍接受的分类标准,也没有完善的体系结构理论基于目前的软件结构的知识,仍然可以列举出一些常见和正在应用的体系结构术语和概念、列举出在现实设计实践中广泛采用的软件结构,术语、概念等Chapter10体系结构的一般描述Contents:§10.1主子程序§10.2数据抽象和面向对象§10.3部件,连接和连接器§10.4层次结构§10.5理论的形式化方法§10.6软件体系结构集成环境§10.7软件工程设计方法与体系结构描述§10.1主程序与子程序结构化思想和概念的提出后,主程序和子程序成为主要的程序设计思想。系统结构被映射为主程序和一系列具有调用关系的子过程的集合。这是软件设计最直接、最基本的结构关系。更复杂的设计包含了库、包、模块、程序覆盖等概念。§10.1主程序与子程序主程序与子程序之优点是一切软件结构的最本质、最基础的形式由于该模型基于设计模型,因此只要设计得当,代码的效率可以得到最大限度的发挥和提高。主程序与子程序之缺点部件的连接关系不明显。//简单的调用的背后实际上可能较为复杂。代码维护性差。//简单的调用关系为维护带来了困难。代码的复用性差。//单纯的过程不能反映复杂的结构,难以成为复用的单元和基础。结论该方法存在的问题导致了各种软件设计方法的研究和提出,导致了对软件体系结构的研究和发展,OO方法是最主要的突破和发展。§10.2数据抽象和面向对象概述数据抽象和面向对象设计是在主程序和子过程设计基础上建立和发展起来的重要的软件描述方法。数据抽象是面向对象设计的理论基础类和对象是该描述方法的基础粒度,而非模块或者包。本质上没有逃出主子程序的思想面向对象已经成为大多数软件系统设计的基础和出发点。一些重要的软件设计思想都是在此基础上提出来的§10.2数据抽象和面向对象基本要点和特征类是数据抽象的载体,类由数据成员和操作方法构成。(封装-》ADT)对象是类的实例,是软件系统的可运行实体。类的继承性是一种复用机制。如果基类的行为已经是可证明的,那么证明导出类的正确性就变得简单多了。多态性是(1)同一个行为名,作用在不同的对象上,操作细节不同的性质;(2)同名方法对不同参数的处理过程不一样。对象天然的并发性,作为独立可运行的实体,对象与对象之间是相互独立、同时存在的,各具生存状态的。动态连接:关联性在运行时刻解决的机制。软件系统概念的统一性、单一性,软件系统中的一切都是对象。§10.2数据抽象和面向对象对象的实现类型普通数据对象持久对象界面对象组件:实现软件系统运行模块组装和连接的技术。二进制对象对象库:MFC、JFCetc.§10.2数据抽象和面向对象设计时的考虑在以下情况下可以考虑使用面向对象的设计方法设计问题允许被分解成经过封装而独立运行,而又相互关联的对象集合。相同的部件在系统中运行可能出现多次。相同的部件可能在不同的系统中获得应用。系统开发工作需要团队完成时候,把系统分割为对象的集合特别有利于工作的划分和实施,有利于保证开发的质量。系统元素之间的关联错综复杂以至于妨碍了系统的清晰结构和划分。这时候尝试以对象的观点对系统进行重新分解以期获得突破。§10.2数据抽象和面向对象对象的运行机制对象的生存表现在它所占用的存储空间和状态的变化,对象的运行机制表现在:在发生方法调用和获得处理器控制权之前,对象是处在生存的冻结状态。激发对象处于活跃状态的唯一方法就是调用其操作方法(消息机制)。在复杂系统中,对象不仅起到信息保存和传递的作用。它更是构成系统存在和生命力表现的部件和连接关系的基础形式。系统的各种部件都是对象,他们在系统中起到的作用不同、发挥的效用的时刻不同、受到的控制不同,但在计算机系统中运行都会受到操作系统的调用、外来事件的激发、其他部件的服务请求。§10.2数据抽象和面向对象面向对象的优缺点优点信息隐藏保证了对象行为的可靠性,CalledByMethods。受封装的独立运行对象把数据和操作捆绑在一起,提高了对象作为一种模块的内聚力,使系统更容易分解成相互作用又相互独立的对象集合。将操作请求和实现细节的分离使得可能在不影响调用者情况下改变操作的实现,为系统的维护和升级提供了良好的条件。继承性和封装性提高了复用的可能性和方便性。缺点对象之间方法的调用必须知道被调用者的标识,造成系统维护上的困难如果系统分析初期就使用面向对象的方法则可能大大加剧系统分析的复杂性§10.3部件和连接器部件和连接器被公认为体系结构的两大类构成部分部件是软件功能设计和实现的载体连接器是专门承担连接作用的特殊部件Contents部件连接连接器§10.3.1部件部件及其作用部件的实现形式部件的表达形式部件的类别部件的特性§10.3.1部件部件及其作用部件是软件系统的结构块单元,是软件功能设计和实现的承载体。系统是部件及其关联的集合。使用的时候:一个部件至少有一个接口,每一个接口代表对外联系的一种角色,这是部件与外界发生联系的窗口。设计系统时候:需要根据对部件的功能、与其他部件的关联、对部件的特殊性要求,建立内部处理和控制结构。§10.3.1部件部件的实现形式简单的部件和复杂的部件软件体系结构层次模型的每个层次中都有关于部件的概念,他们是在基本的部件形式上经过复合和概念提升而产生的§10.3.1部件部件的表达形式任何具有独立结构和行为特性的软件体都可以成为部件不同软件设计环境下服务于不同目的,部件具有不同的类型或名称部件的一般表达形式部件接口1接口2接口3接口4接口N§10.3.1部件部件的类别按照层次划分:基础部件、中层部件、高层部件按照应用范围分:专用部件、通用部件按照功能分:数据服务部件、功能服务部件、逻辑处理部件、界面部件etc.§10.3.1部件部件的特性部件的接口特性:完备性:使用者可以用它来完成部件应该能够完成的一切工作最小化:部件的接口或界面中任一操作,都不能由其他操作组合而实现正交性方便性效率部件的运行特性中断处理并行调度多用户服务§10.3.1部件部件的特性部件的远程服务特性(服务部件)多源性请求代理机制部件的概念等级或层次高层次部件概念中层次部件概念低层次部件概念基于领域的需求基于软件发展技术基于硬件和软件基础面向应用领域面向一般应用共性面向实现的基础§10.3.2连接连接是部件间建立和维持行为关联和信息传递的途径。简单连接和复杂连接机制和协议机制:连接得以发生和维持的机制协议:连接能够正确、无二义性、无冲突的进行§10.3.2连接Contents:连接的种类连接的实现机制连接的协议连接的特性连接的不匹配及其解决方法§10.3.2连接连接的种类操作/过程调用、控制/事件/消息发送、数据传送有无连接的返回信息和返回时间物理实现的难易程度同步异步§10.3.2连接连接的实现机制计算机硬件提供了实现一切连接的基础高层次的连接建立在低层次的连接之上,实现连接在不同的层次上有不同的概念或方法无论多么复杂的连接关系,其实现都是基于以下基本连接机制:过程调用、中断、I/O、DMA、事件、进程、线程、共享、同步、并/串行、事件、并发etc.§10.3.2连接连接的协议协议是连接的规约,是实现有意义连接的保证。连接的规约是建立在物理层之上的有意义信息形式的表达规定。即使是简单的连接,也有协议在起作用。§10.3.2连接连接的特性连接的方向性控制的渠道(主控、被控)和信息的传送(传送方、接收方)双向性(复杂连接的双工通讯)连接的角色角色是对连接的双方所处地位不同的表达(调用者、被调用者;C/S;对等网的连接;中断源、中断处理者;)角色和地位的不同在连接的实施中表现为所进行的操作不同、期望获得的信息不同§10.3.2连接连接的特性连接的激发激发是指引起连接行为的方式连接的响应特性响应特性包括从动方对连接请求处理的实时性、方式(同步、异步)、并发处理能力响应特性大大增加了实现的复杂性主动方的行为激发:操作调用、事件触发从动方:状态查询、中断§10.3.2连接连接的特性连接的不匹配和解决方法连接是使多个部件实现互联和协同工作的机制产生连接冲突和不匹配的原因有多个方面:实现机制、协议、特性、硬件。解决方法:A与B部件的修改(直接修改A或者B、转换器、代理、版本的一致)§10.3.3连接器任何部件都不是孤立存在的只有部件间的联系才能发挥和实现部件设计的功能连接器是实现部件与部件之间联系的特殊机制或特殊部件§10.3.3连接器连接器及其作用连接器是实现部件与部件之间联系(调用、消息传递、数据转换传送、部件间实时并行的协调控制等)的特殊机制或特殊部件简单的连接器从结构上退化为部件之间的直接连接,复杂的连接器需要专门的机构来完成,所以连接器也是部件连接器承担了实现部件间信息和行为关联的作用,是系统复杂性的来源,对系统的各种性能有着重要的影响连接器作为特殊的部件与普通部件之间的区别§10.3.3连接器连接器的层次性连接器的最基本形式是由计算机硬件提供的。描述层次太低,使用这些基础原始的连接形式直接描述系统上层复杂的联系是不恰当的软件体系结构层次模型的每个层次中都有关于连接的概念,他们都是在基本的连接形式上经过复合和概念提升而产生的,并且成为了复杂系统不同层次连接设计的出发点§10.3.3连接器连接器的表达形式部件A部件B最简单的连接器表现为部件间直接连接关系§10.3.3连接器连接器的表达形式部件A部件B连接器转换/运算§10.3.3连接器连接器的表达形式部件A部件BA端接收发送计算两端连接硬件和传送介质B端接收发送计算§10.3.3连接器连接器的表达形式多端连接器端口之间的连同关系§10.3.3连接器连接器的特性连接的关系1:1、1:n、n:1、m:n连接的角色和方向连接的交互方式(信号、语言式)连接的可扩展性连接的互操作性连接请求响应特性连接请求的处理策略连接的代价、处理速度或能力§10.4层次结构概述Layeringisoneofthemostcommontechniquesthatsoftwaredesignersusetobreakapartacomplicatedsoftwaresystem.Youseeitinmachinearchitectureswherelayersdescendfromaprogramminglanguagewithoperatingsystemcalls,intodevicedriversandCPUinstructionsets,intologicgatesinsidechips.NetworkinghasFTPlayeredontopofTCP,ontopofIP,ontopofEthernet.
层次化是一种复杂系统设计的带普遍性的设计原则。层次化设计来源于2个原因事物总是从最简单的、带基础的层次开始发生的来自众多复杂软件设计的实践,几乎所有的系统都是从层次化结构建立起来的§10.4层次结构Breakingdownasystemintolayershasanumberofimportantbenefits:Youcanunderstandasinglelayerasacoherentwholewithoutknowingmuchabouttheotherlayers.YoucanunderstandhowtobuildanFTPserviceontopofTCPwithoutknowingthedetailsofhowEthernetworksYoucansubstitutelayerswithalternativeimplementationsofthesamebasicservices.AnFTPservicecanrunoverEthernet,PPP,orwhateveracablecompanyuseswithoutchange.Youminimizedependenciesbetweenthelayers.Ifthecablecompanychangesitsphysicaltransmissionsystem,providingtheymakeIPworkwedon'thavetoalterourFTPservice.Layersmakegoodplacesforstandardization.TCPandIParestandardsbecausetheydefinehowtheirlayersshouldoperate.Onceyouhavealayerbuiltyoucanuseitformanyhigherlevelservices.SoTCP/IPisusedbyFTP,telnet,SSH,http.Otherwiseallofthesehigherlevelprotocolswouldhavetowritetheirownlowerlevelprotocols
§10.4层次结构Layeringisanimportanttechnique,buttherearedownsides.Layersencapsulatesomethingswell,butnotall.Asaresultyousometimesgetcascadingchanges.TheclassicexampleofthisinalayeredenterpriseapplicationisaddingafieldthatneedstodisplayontheUI,beinthedatabase,andthusbeaddedtoeverylayerinbetween.Extralayerscanharmperformance.Ateverylayerthingstypicallyneedtobetransformedfromonerepresentationtoanother.Howevertheencapsulationofunderlyingfunctionoftengivesyouefficiencygainsthatmorethancompensate.Alayerthatcontrolstransactionscanbeoptimizedandwillthenmakeeverythingfaster.Butthehardestpartofalayeredarchitectureisdecidingwhatlayerstohaveandwhattheresponsibilityofeachlayershouldbe.§10.4层次结构适应的设计问题一个系统的设计是由一系列高层和低层处理构成的,高层操作依赖于低层,低层的操作要处理诸如硬件操作、传感、从通信线路中读信号等。系统需求描述了高层的任务,高层任务不能直接映射在平台上,因为他们太复杂不能在平台上直接运行。为了完成系统设计需要考虑的因素源代码的修改会影响整个系统,应该被限定在一个部件内部而不造成其他影响接口应当稳定,甚至可以标准化系统的构成应该灵活、可更换将来有必要用当前的低层设计来支持其他系统的设计穿越部件边界的操作会降低系统性能系统的开发需要划分成多个部分,比如由团队人员开发时。§10.4层次结构设计结构系统分成几个层次并且他们一层层地叠加起来最下面的抽象层称为第一层,是系统的基础最上面的层次一般称为N层这种结构类似于堆栈或者洋葱的层结构,每一独立的层都保护着较低层次不被更高层次直接访问客户N层N-1层1层层次模型的结构关系使用§10.4层次结构设计结构(续)3层2层1层部件3.1部件3.2部件3.3部件2.1部件2.2部件2.3部件1.1部件1.2部件1.3图:层次模型结构举例通过设计统一的层调用接口对层进行保护通过设计统一的层调用接口对层进行保护通过设计统一的层调用接口对层进行保护§10.4层次结构层次结构的特性调用请求总是将高层请求映射成低层的更基础的操作。N
N-1……21(调用直到能完成任务为止)。自顶向下的信息和控制通常被描述成“请求”。从层1开始的自底向上的操作链过程,通过这种方式数据穿过各层一直到达最高层(例如输入设备检测到输入动作)。自底向上的方式被描述成“通知”。§10.4层次结构ISO的OSI模型的通讯§10.4层次结构层次结构的实现定义为合适的分层而采取的抽象标准,这种标准通常反映了与平台概念的差距。例如,在软件开发中根据距硬件或应用接近的程度建立层次。抽象标准决定模型层次的数目,层次的过少或者过多都导致问题的发生。给各个层次命名和分配任务。规范服务,层次之间要严格分开,确保没有部件会跨越两层以上。高层应该扩展以覆盖更大的可用性,低层应该设法保持瘦小(倒金字塔式的复用)为每个层次定义接口(黑盒法、白盒法、灰盒法)构建独立的层次,工作重点尽可能放在层次之间的接口上。BrownFowlerPresentationPresentationController/MediatorApplicationControllerDomainDomainDataMappingDataMapperDataSourceDatasource§10.4层次结构应用实例TCP/IP没有遵守ISO的OSITCP/IP及其他的通信协议的一个著名的特点是其标准化的功能接口的考虑被放在次要的位置,不同的实现厂家有意识造成的(更多的功能、灵活性能或者性能的考虑)TCP/IP的松散性对于应用开发者没有影响虚拟协议得到了严格的遵守开发者大多使用TCP或者UDP之上的层次,该层上有固定的接口,例如Socketetc.源于异构Internet网络的原动力,各层的行为和在层间传送的数据包的结构在TCP/IP中比在功能接口中得到了更加严格的定义。FTPFTPTCPTCPIPIP以太网以太网FTP协议TCP协议IP协议以太网协议物理链路TCP/IP通信的层次模型§10.4层次结构层次结构的变种松弛的层次系统是分层模型的一种变种每层可以使用其下面所有层的服务而不仅仅是相邻层的服务有些服务提供给相邻的上一层,而其余的服务则提供给高于它的所有层灵活性和性能的提高以牺牲可维护性为代价经常用于系统软件,而不常用于应用软件的设计系统软件比起应用软件来很少修改系统软件对性能的要求高于可维护性的要求通过继承的层次结构常见于面向对象的程序设计中低层作为基类较高层次通过继承使用基类提供的服务高层可根据需要改写低层提供的服务如果基类改变了,则继承该基类的子类都要重新编译这种由继承引入的依赖性称作脆弱的基类问题§10.4层次结构层次结构的应用实例虚拟机JVM可以被当成一个低层,为高层屏蔽了底层的细节和硬件的变化Java语言与平台无关API接口封装了低层频繁使用的功能,通常是功能函数规范的简单集合例如,C语言中的printf()、fopen()etc.IS(信息系统)商业软件经常使用两层结构(主框架交互系统,C/S系统)底层使用DB顶层完成不同的任务并进行界面的展示由于用户界面和数据处理模块紧密的结合在一起带来了一些问题,在两层之间引入第三层(领域层、问题域的概念模型)§10.4层次结构层次结构的应用实例(续)WindowsNT根据Microkernel模式构建的,执行部件对应于Microkernel的部件,是一个松弛的层析系统,包括以下几个层次系统服务层:子系统和NT执行部件之间的接口层资源管理层:对象、安全、进程、I/O、虚拟存储、LPC内核:负责基本功能,Int、E、Thread、多处理器同步HAL(硬件抽象层):隐藏了不同处理器间硬件的差异硬件层:NT松弛层模型的规则,处于效率的考虑,内核和IO管理需要直接访问硬件§10.4层次结构层次结构的优缺点优点层次的复用性对标准化的支持,允许在不同层使用来自不同商家的产品依赖本地化,层次间的标准接口通常把代码变化的影响限制在其所在的层次之内,这样做便于支持系统的可移植性和可测试性可替换性,独立层次的实现能够被功能相同的模块替换。(例如,硬件的可替换性)享用互操作性好处的代价是增加了程序开销。缺点改变行为的连锁效应。例如,在维护升级时,如果必须在许多层次上做大量的工作。低效率。分层结构通常比单一层次的结构效率更低。例如,通信协议在从高层传送信息时需要增加信息头和尾。包含多于不必要的工作。如果低层次执行某些高层次并不需要的设置重复的工作,对于软件的整体性能就有消极的影响。高层请求通常会导致多次对低层次的同样的请求,层次数太多还会在层次间产送变量和返回值时带来额外的开销。§10.5体系结构的描述概述传统的软件工程大都采用图、文本、表格和简单的符号集合来创建分析和设计系统的模型。采用形式化方法就是使用形如数学符号的形式化语法和语义来刻画系统的功能行为和描述系统规约及设计。形式化方法是有争议的。支持者:革命反对者:相当的困难而我们:是如此的不熟悉,以致难以判断这些争论使用形式化方法进行体系结构描述语言的描述、设计和开发受到研究者的重视。精确复制的必然性,一如IntelCEO所言§10.5体系结构的描述形式化基本概念定义:用于开发计算机系统的形式化方法是描述系统性质的基于数学的技术。如果一个方法有良好的数学基础,那么它就是形式化的。典型的是以形式化规约语言给出的。规约方法的目标:无二义性、一致性和完整性。传统的软件工程:图形、符号、文字在系统实现的过程中存在的问题形式的化的规约的方法§10.5体系结构的描述体系结构描述的分类体系结构的形式化方法建模、分析、验证体系结构的描述语言ADL,建立在形式化的理论基础之上Petri网、Z语言、状态图、CSPetc.语义严格、精确求精、验证、演化、分析ADL应当具备的特点严谨的语法、语义描述能力强有工具支持简单易懂不同的抽象级别静态分析、动态分析§10.5体系结构的描述体系结构的描述语言几种体系结构描述语言的提出组织和倡导者ADL语言提出组织倡导者ACMECarnegieMellonUniversityDavidGarlanAesopCarnegieMellonUniversityDavidGarlanMeta-HHoneywellTechnologyCenterStevenVestalRapide
StanfordUniversityDavidLuckhamSADLSRIMarkMoriconiUniconCarnegie
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南省怀化市新晃侗族自治县初三下学期第一次联物理试题含解析
- 2026年河南省安阳市安阳县达标名校5月初三月考数学试题含解析
- 2026年大学大一(基础医学)组织胚胎学基础测试题及答案
- 2025年前台防疫接待礼仪能力测试
- 护理健康教育课件及配套作业
- (一模)邯郸市2026届高三第一次模拟检测语文试卷(含答案详解)
- 护理教学中的职业素养与职业道德
- 护理中的研究方法与论文写作
- 如何在合作作文中激发学生修改作文的兴趣
- 2026二年级数学下册 用乘法口诀求商
- JJG 431-2014轻便三杯风向风速表
- GB/T 23809.1-2020应急导向系统设置原则与要求第1部分:建筑物内
- GA/T 1132-2014车辆出入口电动栏杆机技术要求
- 中考英语书面表达高分技巧课件
- 医学统计学完整课件-
- 李德新中医基础理论讲稿
- 微软Dynamics 365系统方案
- 1.1市场调查认知课件
- (高清正版)JJF(浙)1090—2014薄片千分尺校准规范
- 全真荡秽科仪
- 大肚子妈妈(共享版)
评论
0/150
提交评论