SE08第8讲进行体系结构设计.ppt
《SE08第8讲进行体系结构设计.ppt》由会员分享,可在线阅读,更多相关《SE08第8讲进行体系结构设计.ppt(154页珍藏版)》请在三一办公上搜索。
1、Copyright Fujian Normal University,1,进行体系结构设计,需要回答以下几个问题为什么要进行体系结构设计?体系结构是什么?它有哪些研究领域?如何进行体系结构设计?,进行体系结构设计,教材只给出了部分回答需要对教材内容作适度补充推荐阅读软件体系结构(世界著名计算机教材精选),刘振东等译,清华大学出版社,2007.03设计模式可复用面向对象软件的基础,李英军等译,机械工业出版社,2005.06 企业应用架构模式,王怀民等译,机械工业出版社,2004.07Microsoft.NET企业级应用架构设计,陈黎夫译,人民邮电出版社,2010.06Expert One-on-
2、One J2EE Development without EJB中文版,JavaEye,电子工业出版社,2005.09,Copyright Fujian Normal University,3,进行体系结构设计,体系结构综述体系结构风格特定领域体系结构体系结构框架体系结构设计映射数据流到软件体系结构小结,Copyright Fujian Normal University,4,1 体系结构综述,体系结构背景体系结构定义体系结构研究领域,Copyright Fujian Normal University,5,1.1 体系结构背景,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显
3、得越来越重要。,最早指出体系结构重要性的是大师Edsger Dijkstra(1930-2002)“.the larger the project,the more essential the structuring!”(1968),Copyright Fujian Normal University,6,1.1 体系结构背景,对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明要比算法和数据结构的选择重要得多。体系结构是早期设计决策的体现 体系结构明确了对系统实现的约束条件体系结构制约着系统的质量属性通过研究体系结构可以预测软件的质量体系结构可以提高软件生产率.,Copyright
4、Fujian Normal University,7,1.1 体系结构背景,体系结构虽脱胎于软件工程,但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法。近年来,体系结构研究独立于软件工程的研究,成为计算机科学的一个新的研究方向和独立学科分支。对体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题,提供新的、最有希望的途径。,Copyright Fujian Normal University,8,1.2 体系结构定义,目前学术界和工业界对于体系结构的定义尚未形成统一意见,以下介绍几种具有代表性的定义。Booch&Rumbaugh&Jacobson定义 Bass
5、定义Garlan&Shaw定义Soni&Nord&HofmeisterIEEE的定义.,10多种,Copyright Fujian Normal University,9,1.2 体系结构定义,Booch&Rumbaugh&Jacobson定义体系结构=组织,元素,子系统,风格体系结构是一系列重要决策的集合,这些决策与以下内容相关:软件元素:构成系统的结构元素及其接口。软件的组织:软件元素的选择,以及它们在协作中明确表现出的行为。子系统:软件元素在结构和行为上组合成更大规模的软件元素。体系结构风格:用于引导软件元素的组合。,Copyright Fujian Normal University,
6、10,1.2 体系结构定义,Bass定义(教材采用的定义)Bass等人在Software Architecture in Practice一书中提到,程序或计算系统的体系结构是系统的一个或多个结构,其包括 软件构件 构件的外部可视属性 构件之间的关系,Copyright Fujian Normal University,11,1.2 体系结构定义,Garlan&Shaw定义体系结构=构件,连接件,约束构件:一组代码,如程序的模块、独立的程序或数据库服务器等。连接件:过程调用、管道、远程过程调用等,用于表示构件之间的相互作用。约束:指明构件连接的势态和条件。例如,上层构件可要求下层构件的服务,反
7、之则不允许。,Copyright Fujian Normal University,12,1.2 体系结构定义,Soni&Nord&Hofmeister定义西门子研究院的Soni等人认为体系结构有4个不同的具体形态,每种形态都从不同的角度来描述系统。概念体系结构:用于描述设计元素和及其相互关系。模块互连体系结构:包含功能分解和分层两个正交的结构。执行体系结构:用于描述系统的动态结构。代码体系结构:用于描述源程序、二进制代码和函数库的组织方式。,Copyright Fujian Normal University,13,1.2体系结构定义,IEEE的定义 体系结构=构件,连接件,环境,原理 体系
8、结构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一系统的基本组织结构以及指导上述内容设计与演化的原理。,Copyright Fujian Normal University,14,1.2 体系结构定义,我们的认识体系结构在较高抽象层次上描述了构成软件系统的元素、元素之间的交互关系、指导元素组合的模式以及相关约束要求,对于软件系统的理解、分析、验证和演化等方面有着十分重要的意义。,Copyright Fujian Normal University,15,1 体系结构综述,体系结构背景体系结构定义体系结构研究领域,Copyright Fujian Normal University,
9、16,1.3 体系结构研究领域,体系结构已经取得了长足的发展,受到大多数软件系统设计和研究人员的重视。但它仍处在不断发展之中,下面简介一些关注较多、影响较大的研究领域。体系结构建模 体系结构描述语言体系结构设计 体系结构分析与验证基于体系结构的软件开发过程 特定领域的体系结构框架,Copyright Fujian Normal University,17,体系结构建模,体系结构建模是研究如何表示体系结构的问题。根据建模的侧重点的不同,可以将体系结构的模型分为5种:结构模型:用构件、连接件和其他概念刻画体系结构。动态模型:用于描述系统的“大粒度”的行为性质。例如描述系统的重新配置或演化。框架模型
10、:与结构模型类似,但它主要以一些特殊的问题为目标建立只针对和适应该问题的结构。过程模型:研究构造体系结构的步骤和过程。功能模型:研究系统功能构件的层次划分,可以将其视为是一种特殊的框架模型。,Copyright Fujian Normal University,18,体系结构描述语言,体系结构描述语言(ADL)的主要目的是提供一种规范化的体系结构描述。ADL为体系结构的分析和验证提供形式化基础。目前已有近20种ADL,比较有影响力的有C2、UniCon、MetaH、Aesop、SADL、Rapide、Wright等。,Copyright Fujian Normal University,19,
11、体系结构设计,体系结构设计是系统设计的一部分,它凌驾于算法和数据结构设计之上,其包括设计整体组织和全局控制结构,如构件的功能分配、通信协议、物理空间分布等等 体系结构设计方法体系结构风格体系结构设计空间 体系结构设计的支撑工具,Copyright Fujian Normal University,20,体系结构分析与验证,体系结构分析与验证研究如何将软件的非功能性转化为体系结构需求、如何分析和验证体系结构满足期望的需求属性,以及如何建立评价体系结构的方法。基于场景的体系结构分析方法SAAM体系结构权衡分析方法ATAM 体系结构形式化的验证方法特定领域软件体系结构分析方法.,Copyright
12、Fujian Normal University,21,基于体系结构的软件开发过程,基于体系结构的软件开发过程研究引入体系结构后的软件开发过程、基于体系结构的开发与中间技术集成、基于体系结构的程序框架自动生成技术等。体系结构的开发是大型软件系统开发的重要环节。对软件产品线有重要意义:基于同一个体系结构,可以创建具有不同功能的多个系统。,Copyright Fujian Normal University,22,特定领域的体系结构框架,特定领域的体系结构框架研究为一些特定领域的软件产品提供可重用框架。Eclipse的插件体系结构Struts框架、Spring框架和Hibernate框架ASP.N
13、et MVC框架北邮周莹新博士提出的电信软件的体系结构北航金茂忠教授提出的测试环境的体系结构,Copyright Fujian Normal University,23,进行体系结构设计,体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构小结,Copyright Fujian Normal University,24,2 体系结构风格,体系结构风格定义了一个系统家族,其包括一个词汇表和一组约束。一个词汇表包含一些构件和连接件类型,一组约束指出系统是如何将这些构件和连接件组合起来的。,Copyright Fujian Normal University,25,2 体系结
14、构风格,有些学者对体系结构模式和体系结构风格不加区分。体系结构模式(architectural pattern)表达了软件系统的基本结构组织形式或者结构方案,包含了一组预定义的子系统规定了这些子系统的责任提供了用于组织和管理这些子系统的规则和向导。,Copyright Fujian Normal University,26,2 体系结构风格,体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。对体系结构风格的研究和实践为大粒度的软件复用提供了可能。,Copyright Fujian Normal University,27,2 体系结
15、构风格,典型的体系结构风格数据流风格管道/过滤器风格调用返回风格仓库风格,Copyright Fujian Normal University,28,2.1 数据流风格,数据流风格的特点当输入数据经过一系列的计算和操作构件的变换形成输出数据时,可以应用这种体系结构。管道/过滤器、批处理序列属于数据流风格。,Copyright Fujian Normal University,29,2.2 管道/过滤器风格,管道/过滤器风格拥有一组过滤器构件,这些构件通过管道连接管道将数据从一个构件传送到下一个构件。每个过滤器独立于其上游和下游的构件而工作,过滤器的设计要针对某种形式的数据输入,并且产生某种特定
16、形式的数据输出。如果数据流退化成为单线的变换,则称为批处理序列。这种结构接收一批数据,然后应用一系列连续的构件(过滤器)变换它。,Copyright Fujian Normal University,30,2.3 调用返回风格,调用返回风格:在此类体系结构中,存在以下3种子风格。主程序/子程序风格,Copyright Fujian Normal University,31,2.3 调用返回风格,调用返回风格之面向对象风格系统的构件封装了数据和必须应用到该数据上的操作,构件间通过消息传递进行通信与合作。与主程序/子程序的体系结构相比,面向对象风格中的对象交互会复杂一些。面向对象风格与网络应用的需
17、求在分布性、自治性、协作性、演化性等方面具有内在的一致性。,Copyright Fujian Normal University,32,2.3 调用返回风格,调用返回风格之分层风格在这种体系结构中,整个系统被组织成一个分层结构,每一层为上层提供服务,并作为下一层的客户。,Copyright Fujian Normal University,33,2.4 仓库风格,仓库风格:数据仓库(如文件或数据库)位于体系结构的中心,其他构件经常访问该数据仓库,并对仓库中的数据进行增加、修改或删除操作。数据库系统、超文本系统和黑板系统都属于仓库风格。,Copyright Fujian Normal Unive
18、rsity,34,2.4 仓库风格,仓库风格:中心存储库变换成“黑板”,黑板构件负责协调信息在客户间的传递,当用户感兴趣的数据发生变化时,它将通知客户软件。黑板系统的传统应用是信号处理领域,如语音和模式识别。另一应用是松耦合代理数据共享存取。,Copyright Fujian Normal University,35,进行体系结构设计,体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构小结,Copyright Fujian Normal University,36,3 特定领域体系结构,特定的应用还需要特定的体系结构模型。这些体系结构模型称为领域相关的体系结构。有两种
19、领域相关的体系结构模型:类属模型(generic model)和参考模型(reference model)。,Copyright Fujian Normal University,37,3 特定领域体系结构,类属模型是从许多实际系统中抽象出来的一般模型,它封装了这些系统的主要特征。例如,许多图书馆都开发了自己的图书馆馆藏/流通系统,若把它们的共同功能抽取出来并创建一个让所有图书馆都认可的系统体系结构模型,这就是类属模型。,Copyright Fujian Normal University,38,3 特定领域体系结构,类属模型的一个最著名的例子是编译器模型,由这个模型已开发出了数以千计的编译器
20、。,Copyright Fujian Normal University,39,3 特定领域体系结构,参考模型源于对应用领域的研究它描述了一个理想化的包含了系统应具有的所有特征的软件体系结构。它是更抽象且是描述一大类系统的模型,并且也是对设计者有关某类系统的一般结构的指导。,Copyright Fujian Normal University,40,3 特定领域体系结构,参考模型的典型例子是开放式系统互联(OSI)参考模型。,Copyright Fujian Normal University,41,3 特定领域体系结构,以上两种不同类型的模型之间并不存在严格的区别,也可以将类属模型视为参考模
21、型。类属模型可以直接在设计中复用,而参考模型一般是用于领域概念间的交流和对可能的体系结构做出比较。类属模型通常是经过“自下而上”地对已有系统的抽象,而参考模型是“由上到下”地产生的。,Copyright Fujian Normal University,42,3 特定领域体系结构,分布式系统结构传统的C/S体系结构三层C/S体系结构分布式对象体系结构 面向服务的体系结构,Copyright Fujian Normal University,43,3.1 传统的C/S体系结构,传统的C/S体系结构中,应用系统被划分为客户机和服务器两部分。,Copyright Fujian Normal Univ
22、ersity,44,3.1 传统的C/S体系结构,客户/服务器体系结构在基于资源不对等,且为实现共享而提出来的,由服务器、客户机和网络三部分组成。客户机可以通过远程调用来获取服务器提供的服务。客户机必须知道可用的服务器的名字及它们所提供的服务,而服务器不需要知道客户机的身份,也不需要知道有多少台服务器在运行。,Copyright Fujian Normal University,45,3.1 传统的C/S体系结构,客户/服务器体系结构的两种形态瘦客户机模型:数据管理部分和应用逻辑都在服务器上执行,客户机只负责表示部分。主要缺点:它将繁重的处理负荷都放在了服务器和网络上,服务器负责所有的计算,这
23、将增加客户机和服务器之间的网络流量。目前个人计算机所具有的处理能力在瘦客户机模型中用不上。,Copyright Fujian Normal University,46,3.1 传统的C/S体系结构,客户/服务器体系结构的两种形态胖客户机模型:服务器只负责对数据的管理。客户机上的软件实现应用逻辑和与系统用户的交互。主要缺点:开发成本较高。用户界面风格不统一,使用繁杂,不利于推广使用。软件移植困难。软件维护和升级困难,Copyright Fujian Normal University,47,3.2 三层C/S体系结构,三层C/S体系结构:增加了应用服务器,可以将整个应用逻辑驻留在应用服务器上,而
24、只有表示层存在于客户机上。,Copyright Fujian Normal University,48,3.2 三层C/S体系结构,三层C/S体系结构将整个系统分成表示层、应用逻辑层和数据层三个部分,其数据处理流程如下图所示。,Copyright Fujian Normal University,49,3.2 三层C/S体系结构,浏览器/服务器(browser/server,B/S)风格是三层体系结构的一种实现方式,B/S体系结构如下图所示。,Copyright Fujian Normal University,50,3.2 三层C/S体系结构,B/S体系结构表示层:应用系统的用户界面部分,担
25、负着用户与应用程序之间的对话功能。它用于检查用户输入的数据,显示应用程序输出的数据,一般采用图形用户界面。应用逻辑层:应用系统的主体部分,包含具体的业务处理逻辑。通常在功能层中包含有确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能。数据层:数据层主要包括数据的存储及对数据的存取操作,一般选择关系型数据库管理系统(RDBMS)。,Copyright Fujian Normal University,51,3.2 三层C/S体系结构,B/S体系结构结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,节约了开发成本。B/S体系结构具有以下优点:基于B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SE08 进行 体系结构 设计
链接地址:https://www.31ppt.com/p-6518696.html