软件体系结构与设计模式课件.pptx

上传人(卖家):晟晟文业 文档编号:4930616 上传时间:2023-01-26 格式:PPTX 页数:51 大小:1MB
下载 相关 举报
软件体系结构与设计模式课件.pptx_第1页
第1页 / 共51页
软件体系结构与设计模式课件.pptx_第2页
第2页 / 共51页
软件体系结构与设计模式课件.pptx_第3页
第3页 / 共51页
软件体系结构与设计模式课件.pptx_第4页
第4页 / 共51页
软件体系结构与设计模式课件.pptx_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、第8章 软件体系结构与设计模式8.1软件体系结构的概念 8.1.1什么是软件体系结构 软件体系结构是系统的一个或多个结构,它包括:1)软件的组成元素(组件);2)这些(组件)元素的外部可见特性;3)这些元素(组件)之间的相互关系。软件体系结构不仅指定了系统的组织结构和拓扑结构,也显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。8.1软件体系结构的概念 软件体系结构描述的对象是直接构成系统的抽象组件。它由功能各异、相互作用的部件按照层次构成,包含了系统的基础构成单元、单元之间的相互作用关系、在构成系统时它们的合成方法以及对合成约束的描述。具体来说,部件包括客户端、服务

2、器、数据库、程序包、过程、子程序等一切软件的组成部分。相互作用的关系可以是过程调用、消息传递、共享内存变量、客户端/服务器的访问协议、数据库的访问协议等。8.1软件体系结构的概念 8.1.2软件体系结构建模根据建模的侧重点的不同,可以将软件体系结构的模型分为结构模型、框架模型、动态模型、过程模型和功能模型5种。1)结构模型这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是体系结构描述语言。2)框架模型框架模型与结构模型类似,但它不太侧重描述结构的细

3、节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。8.1软件体系结构的概念 3)动态模型动态模型是对结构模型或框架模型的补充,研究系统的大颗粒的行为性质。例如,描述系统的重新配置或演化。动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。这类系统常是激励型的。4)过程模型过程模型研究构造系统的步骤和过程,因此结构是遵循某些过程脚本的结果。5)功能模型该模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。它可以看作是一种特殊的框架模型。5.1 生产函数与软件生产函数l生产是指厂商对各种生产要素加以组合制成产品的行为。l生产要素就是生产过

4、程中所使用的各种资源,主要包括劳动、资本、土地和企业家才能。5.1 生产函数与软件生产函数l劳动是指劳动者所提供的各种服务l资本是指生产过程中使用的资金l土地是指在生产过程中所使用的自然资源l企业家才能是指企业家对整个生产过程的管理和组织工作 企业家主要根据市场预测,合理地配置各生产要素来从事生产经营活动,以追求企业的利润最大化。5.1.1 生产函数 生产函数是指一定时期内生产要素的数量与某种组合与其所能产出的最大产量之间存在的函数关系。生产函数的表达式如式5.1所示。式5.1中的y表示总产出量,L,K,N,E分别表示投入到生产中的劳动、资本、土地、企业家才能的数量。1.生产函数的定义5.1.

5、1 生产函数 考虑到土地的固定性,变化较小,企业家才能难以估算故生产函数通常被简化为式5.2。式5.2表明,在已知劳动和资本数量的组合情况时,可以推算出产品的最大产量。1.生产函数的定义5.1.1 生产函数2.生产函数的特征资本与劳动力的边际产出总是为正值,劳动力(或者资本)投入量不变的情况下,资本(或者劳动力)的增加将引起产出的增加边际产量递减特性。当其他生产要素固定不变时,随着某一要素投入量的增加,其边际产量将逐渐减少生产函数具有非负性,总产出必须是正值,且总产量是生产要素组合的结果,单一要素的投入是不能获得产出的5.1.1 生产函数3.规模报酬规模报酬又称为规模经济,主要研究所有要素都同

6、比例增加时,产量时如何发生变化的。通常在规模较小时,增加投入可以促进规模报酬递增,而当规模达到一定程度时,则会出现规模报酬递减的情况。5.1.1 生产函数3.规模报酬5.1.1 生产函数分别对公示5.3中的L与K求偏导数则有:式5.4中,表示劳动力对产出的弹性系数,表示在其他条件不变的情况下,劳动力增加1%会使产出发生变化的百分比;表示资本对产出的弹性系数,表示在其他条件不变的情况下,资本增加1%会使产出发生变化的百分比。3.规模报酬5.1.1 生产函数5.1.2 软件生产函数5.1.2 软件生产函数5.1.2 软件生产函数 软件生产率是指软件开发的效率,是衡量软件开发水平的一个重要因素。影响

7、软件生产率的因素众多,主要有技术因素、管理因素以及文化因素。5.1.2 软件生产函数强调对企业研发人员个人职业能力的综合评估。为了提升个人对软件企业的贡献,有必要从专业、技能、经验、学历以及年龄等多方面进行考量。软件技术领域最好根据研发人员所擅长的技术能力来划分不同的专业技术组。培养研发人员对新技术的学习掌握,并创新应用。提高软件生产率的主要举措有:技术方面5.1.2 软件生产函数建立良好的人才激励机制,通过物质、精神奖励以及职务晋升制度提高研发人员的工作热情。建立科学、合理的研发人员梯队制度,明确划分管理与技术领域人才。依据软件企业所处的市场环境及企业自身发展的要求适时变革管理。用以应对不断

8、变化的IT市场,进而增强软件企业的核心竞争力。提高软件生产率的主要举措有:管理方面5.1.2 软件生产函数建立良好的企业学习氛围。通过研发人员个人知识的学习、交流及其共享来形成群体效应,提升整个企业的知识资源。注重软件工程项目团队建设,加强团队合作精神,提高团队沟通能力。提高软件生产率的主要举措有:文化方面8.1软件体系结构的概念 软件体系结构建模可分为4个层次。1)软件体系结构核心元模型:软件体系结构模型由哪些元素组成,这些组成元素之间按照何种原则组织;2)软件体系结构模型的多视图表示:从不同的视角描述特定系统的体系结构,从而得到多个视图,并将这些视图组织起来以描述整体的软件体系结构模型;3

9、)软件体系结构描述语言:在软件体系结构基本概念的基础上,选取适当的形式化或半形式化的方法来描述一个特定的体系结构;4)软件体系结构文档化:记录和整理上述3个层次的描述内容。8.1软件体系结构的概念 8.1.3软件体系结构的分层模型 计算机硬件层是软件实现的物质基础,比如存储器、时钟、高速缓存等。软件硬件层实现了软件与硬件的分离,既是对软件实现的最底层的描述,也是对硬件实现的操作和控制的描述。基础控制描述层、资源和管理调度层是体系结构构件和连接的内在构成模型。系统结构模式层是软件的上层体系结构,它是最高层次的软件结构概念,其涉及的概念通常有客户端/服务器、解释器、编译器、框架等。应用层是建立在软

10、件概念之上的领域问题描述,它是基于纯粹的应用领域的。8.1软件体系结构的概念 8.1.4软件体系结构的作用 设计软件的体系结构在设计阶段非常重要。软件体系结构就好比软件系统的骨骼,如果骨骼确定了,那么软件系统的框架就确定了。软件体系结构在软件开发过程中的作用如下。1)规范软件开发的基本架构2)便于开发人员与用户的沟通3)模块化、层次化设计,有利于减少返工,提高效率4)便于系统开发前、后期的筹备与服务8.1软件体系结构的概念 两种常用的软件体系结构如图所示。树形结构网状结构8.2 典型的软件体系结构风格 所谓软件体系结构风格,是描述某一特定应用领域中系统组织方式的惯用模式。软件体系结构风格包含4

11、个关键要素:1)提供一个词汇表;2)定义一套配置规则;3)定义一套语义解释规则;4)定义对基于这种风格的系统进行的分析。根据以上4要素框架,Garlan和Shaw对通用软件体系结构风格的进行分类,每种体系结构风格有各自的应用领域和优缺点。8.2 典型的软件体系结构风格 8.2.1数据流风格数据到达即被激活处理工作,无数据时不工作。一般来说,数据的流向是有序的。在纯数据流系统中,处理之间除了数据交换,没有任何其他的交互。主要研究近似线性的数据流,或在限度内的循环数据流。其中包括批处理序列、管道/过滤器。8.2 典型的软件体系结构风格 8.2.2调用返回风格 各个构件通过调用其他构件和获得返回参数

12、来进行交互,配合完成功能。包括主程序/子程序、面向对象风格、层次结构。8.2 典型的软件体系结构风格 8.2.3 独立构件风格这种风格的主要特点是:事件的触发者并不知道哪些构件会被这些事件影响,相互保持独立,这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用;各个构件之间彼此无连接关系,各自独立存在,通过对事件的发布和注册实现关联,其中包括进程通讯、事件系统。8.2 典型的软件体系结构风格 8.2.4 虚拟机风格它创建了一种虚拟的环境,将用户与底层平台隔离开来,或者将高层抽象和底层实现隔离开来。其中包括解释器、基于规则的系统。8.2 典型的软件体系结构风格 8.2.5仓库风格仓库是存储和维

13、护数据的中心场所。在仓库风格中存在两类构件,表示当前数据的状态的中心数据结构和一组对中心数据进行操作的独立构件。其中包括数据库系统、超文本系统、黑板系统。8.3 软件质量属性 软件质量属性是指软件系统在其生存周期过程中所表现出的各种特征。质量属性既和软件体系结构有关,也和具体实现有关。但软件设计是保证软件质量的重要阶段,而软件体系结构是获取许多质量属性的基础,因此在软件体系结构设计时就应考虑到这些质量属性,并在软件体系结构层次上进行评估。质量属性可以分为3类:系统属性、商业属性和构架属性。8.3 软件质量属性 系统属性按运行时是否可见又分为:运行时可观察到的:包括性能、安全性、可用性、易用性;

14、运行时不可观察的:包括可修改性、可移植性、可测试性、可集成性、可重用性。商业属性包括投放市场时间、成本和预计的系统生命周期长短。构架属性包括软件体系结构本身的概念完整性、正确性和可构建性。我们在软件体系结构设计时除了考虑到系统要实现的功能外,还应充分考虑到系统所要求的各类质量属性。8.4 分布式系统结构 8.4.1多处理器体系结构多处理器系统是分布式系统的最简单模型,系统同时运行许多进程,这些进程分布在不同的处理器上,可以极大地提高系统的性能。由于大型实时系统对响应时间要求很高,多采用这种模型。大型实时系统需要实时采集信息,并利用采集到的信息进行决策,然后发送信号给执行机构。虽然,信息采集、决

15、策和执行可以在一个处理器上统一调度完成,但多处理器的并行计算比单处理器的分时片计算能够极大地提高系统的性能,而且可靠度也相对较高。8.4 分布式系统结构 8.4.2客户机/服务器体系结构客户机/服务器(Client/Server,简称C/S)体系结构是为了共享不对等的资源而提出来的,是20世纪90年代成熟起来的技术,C/S体系结构定义了客户机如何与服务器连接,以将数据和应用系统分部到多个处理机上。C/S体系结构有3个主要的组成部分。服务器。负责给其子系统提供服务,如数据库服务器提供数据存储和管理服务,文件服务器提供文件管理服务,搜索服务器提供数据检索等。客户机。通常是独立的子系统,通过向服务器

16、请求约定的资源获取数据。一台服务器可以同时为许多客户机提供服务。网络。连接服务器和客户机。有时客户机和服务器位于同一台物理主机上,但多数情况下它们分布在不同主机上。网络可以有各种形式,包括有线和无线等。8.4 分布式系统结构 C/S系统的设计必须考虑应用系统的逻辑结构。在逻辑上,我们通常将应用系统划分为3层,即数据管理层、应用逻辑层和表示层。数据管理层主要处理数据存储和管理操作。应用逻辑层处理与业务相关的逻辑。表示层处理用户界面以及用户的交互。在集中式系统中,不需要将这些清楚地分离,但在分布式系统中,不同层常常被部署在不同的主机上,因此必须严格地分离不同层。C/S体系结构通常有两层或三层,也可

17、根据需要划分为更多层。两层C/S结构一般有两种形态。瘦客户机模型。在瘦客户机模型中,数据管理和应用逻辑都在服务器端执行,客户机只负责表示部分。胖客户机模型。在这种模型中,服务器只负责对数据的管理。客户机上的软件实现应用逻辑以及与系统的交互。8.4 分布式系统结构 三层C/S结构就避免了这个问题,将数据管理层和应用逻辑层分别放在两个物理层或物理主机上,客户端仍然保留在客户机上。对于三层C/S结构,各层的功能或指责如下:表示层。表示层是应用系统的用户界面部分,担负着用户与应用程序之间的对话功能。通常采用图形界面的方式呈现。应用逻辑层。应用逻辑层为应用系统的主体,包含全部的业务逻辑。比如数据处理,用

18、户管理,与其他系统交互,以及记录系统日志等。通常是应用服务器。数据层。数据层一般只负责数据的存取、管理和维护(如备份等),通常是关系型数据库服务器。浏览器/服务器(Browser/Server,简称B/S)结构是三层应用结构的一种实现,其具体结构为浏览器/Web服务器/数据库服务器。8.4 分布式系统结构 8.4.3分布式对象体系结构分布式系统设计的更一般方法是去掉客户机与服务器之间的差异,用分布式对象体系结构来设计系统。分布式对象的实质是在分布式异构环境下建立应用程序系统框架和对象构件,将应用服务分割成功能独立的构件,各个构件可以放在同一台或不同的多台服务器上运行。构件之间的通信最通常的设计

19、方法是通过一个中间件通信,类似计算机中主板上的数据总线。中间件一般称为软件总线或对象请求代理,它的作用是在对象之间提供一个无缝接口。分布式对象技术的应用目的主要是为了降低服务器负荷、共享网络的资源、平衡分配计算任务到不同的主机,提高系统的协同处理能力。8.4 分布式系统结构 8.4.4对等端体系结构对等端体系结构可以视为客户端/服务器体系结构和分布式对象体系结构的融合。它没有严格的客户机、服务器划分,所有的分布的对等端根据需要既能充当服务器,又能充当客户端。但有些情况下,对等端体系结构仍然需要设计一个端节点服务器,用于存储端节点信息。在通信之时,对等端首先连接到端节点服务器上,下载可用的对等端

20、节点信息。之后的通信就是根据这些端节点信息连接到其他对等端请求信息,这时,该节点常常充当客户端,其它被请求的端充当服务器。对等端体系结构常常用于数据共享类系统的设计。8.4 分布式系统结构 8.4.5代理 代理可以用于构件包含隔离组件的软件系统,软件通过远程服务调用进行交互。代理者负责协调通信,诸如转发请求和传递结果、异常等。在ORB上有4个对象接口。对象服务。定义加入ORB的系统级服务,如安全性、命名、事务处理,这类与应用领域无关。公共设施。定义应用程序级服务。领域接口。面向特定领域接口。应用接口。面向指定的外界应用,一般是供应商或用户借助ORB、公共对象服务以及公共设施而开发的特定产品。8

21、.5 体系结构框架 8.5.1模型-视图-控制器MVC(Model-View-Controller)模型由Trygve Reenskaug博士在20世纪70年代提出,并最早在面向对象编程语言Smalltalk-80中实现。MVC强调将用户的输入、数据模型和数据表示方式分开设计,一个交互式应用系统由模型、视图、控制器3部分组成,分别对应内部数据、数据表示和输入/输出控制部分。8.5 体系结构框架 模型。模型对象代表应用领域中的业务实体和业务逻辑规则,是整个模型的核心,独立于外在的显示内容和显示形式。模型对象的变化通过事件通知视图和控制器对象。采用了发布者/订阅者方式,模型是发布者,视图和控制器是

22、订阅者。对于模型来说,并不知道自己对应的视图控制器;但控制器可以通过模型提供的接口改变模型对象,接口内封装了业务数据和行为。视图。视图对象代表GUI对象,以用户熟悉和需要的格式表现模型信息,是系统与外界的交互接口。视图订阅模型可以感知模型的数据变化,并更新自己的显示。视图对象也可以包含子视图,用于显示模型的不同部分。在多数的MVC实现技术中,视图和控制器常常是一一对应的。控制器。控制器对象处理用户的输入,并给模型发送业务事件,再将业务事件解析为模型应执行的动作;同时,模型的更新与修改也将通过控制器来通知视图,保持视图与模型的一致。8.5 体系结构框架 MVC的整个处理流程为:系统拦截到用户请求

23、,根据相应规则(多数采用路由技术),将用户请求交给控制器,控制器决定哪个模型来处理用户的请求;模型根据业务逻辑处理完毕后将结果返回给控制器;然后控制器将数据提交给视图;视图把数据组装之后,呈现给用户。其中,模型处理所有的业务逻辑和规则,视图只负责显示数据,控制器负责用户的请求,这样将业务和表现层分离,以便业务代码可以被用于任何相似的业务中,视图代码也可以根据需要随意替换。8.5 体系结构框架 8.5.2模型-视图-表示器模型-视图-表示器(Model-View-Presenter,简称MVP)是近年来流行起来的一种体系结构。从名字上就可以看出,MVP与MVC十分类似,事实也确实如此。甚至有程序

24、员开玩笑说MVP不过是将MVC中的C换成了字母P,这种说法一定程度上确实有其道理。MVP与MVC的的主要差异体现在“请求在何处访问系统”以及“各部分如何联系在一起”。MVP中的视图比MVC中的视图更加“被动”,视图引发事件,但是由表示器读取并设置UI的值。事实上,MVP模式设计的目的就是为了增强MVC模式,以尝试使视图更加被动,以便更换视图更加容易。8.5 体系结构框架 MVP的处理流程如图所示。用户直接与视图进行交互(图中步骤1)。视图通过引发一个事件,通知表示器有事件发生(步骤2),然后表示器访问视图通过其IView接口公开的属性(步骤3)。这些属性是视图实际UI元素的包装器。此后表示器调

25、用模型(步骤4),再返回结果(步骤5)。表示器转换数据,然后设置UI的值,该操作通过IView接口完成(步骤6)。视图将最终页面显示给用户。8.5 体系结构框架 8.5.3J2EE体系结构框架MVC是很多现代体系结构框架的基础,主要应用于企业和电子商务系统中。J2EE的核心体系结构就是在MVC框架的基础上进行扩展得到的,如图所示。J2EE模型是分层结构,中间是3层(表示层、业务层和集成层)包含应用构件,客户层和资源层处于应用的外围。8.5 体系结构框架 8.5.4PCMEF框架表示-控制-中介-实体-基础(Presentation-Control-Mediator-Entity-Foundat

26、ion,简称PCMEF)是一个垂直层次的分层体系结构框架。每一层是可以包含子包的包。PCMEF框架包含4层:表示层、控制层、领域层和基础层。领域层包含两个预定义的包:实体(Entity)和中介(Mediator)。参考MVC框架,表示层对应MVC中的视图,控制层对应MVC中的控制器,领域层的实体对应MVC中的模型。MVC中没有与中介和基础层对应的部分,因为MVC本身只是上层框架,中介和基础层多使用底层框架实现。PCMEF框架中包的依赖性主要是向下依赖。表示层依赖于控制层,控制层依赖于领域层,中介层依赖于实体和基础层。8.5 体系结构框架 8.5.5PCBMER框架现在主流使用的是PCMEF框架

27、的扩展,划分为6个层次,意思是表示-控制器-Bean-中介-实体-资源(Presentation-Controller-Bean-Mediator-Entity-Resource,简称PCBMER),如图所示。PEBMER遵循了当前体系结构设计中广泛认可的发展趋势。和PCMEF类似,PCBMER体系中,各层也用包来表示并具有向下依赖关系。比如,表示层依赖于控制器层和Bean层,控制器层向下依赖于Bean、中介和实体层等。但PCBMER框架中,各层之间并不是严格线性依赖的,一个上层可以依赖多个相邻下层。8.6 软件系统的设计模式 所谓模式,就是指解决某一类相似问题的方法论。某个模式描述了一个在我

28、们的日常生活中不断出现的问题,然后描述了该问题的解决方案的核心。在软件系统的设计领域中,也出现了很多设计模式。每种设计模式都包含4个要素,如图所示。模式名称相当于模式的助记符。问题描述了模式的使用场景,即模式可以解决的某种设计问题。解决方案描述了针对特定的设计问题,可以采用怎样的设计方法,包括设计的组成成分、各成分的职责和协作方式以及各成分之间的相互关系。效果描述了特定模式的应用对系统灵活性、扩展性、可移植性等各种特性的影响,它对评价设计选择以及对模式的理解非常有益。8.6 软件系统的设计模式 目前,比较常用的是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides所提出的23种设计模式,它们分为3种类型,即创建型模式、结构型模式和行为型模式,如图所示。谢谢!

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件体系结构与设计模式课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|