软件体系结构复习要点——chapter 3 软件体系结构风格

Chapter 3 软件体系结构风格

1. 软件体系结构风格概述:

●软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。

●软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。按这种方式理解,软件体系结构风格定义了用于描述系统的术语表和一组指导构件系统的规则。

●对软件体系结构风格的研究和实践促进对设计的重用,经过实践证实的解决方案也可以可靠地用于解决新的问题。体系结构风格的不变部分使不同系统可以共享同一个实现代码。只要系统是使用常用的、规范的方法来组织,就可使别的设计者很容易地理解系统的体系结构。

●软件体系结构风格为大粒度的软件重用提供了可能。但对于应用体系结构风格来说,由于视点的不同,系统设计师有很大的选择余地。要为系统选择或设计某一个体系结构风格,必须根据特定项目的具体特点,进行分析比较后再确定,体系结构风格的使用几乎完全是特定的。

●软件体系结构最关键的四要素:

    提供一个词汇表、定义一套配置规则、定义一套语义解释规则、定义对基于这种风格的系统所进行的分析

●通用体系结构风格:

    (1)数据流风格:批处理序列、管道/过滤器

    (2)调用/返回风格:主程序/子程序、面向对象风格、层次结构

    (3)独立构件风格:进程通信、事件系统

    (4)虚拟机风格:解释器、基于规则的系统

    (5)仓库风格:数据库系统、超文本系统、黑板系统

2. 管道和过滤器:

●优点:

    (1)使软构件具有良好的隐蔽性和高内聚、低耦合的特点。

    (2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。

    (3)支持软件重用。

    (4)系统维护和增强系统性能简单。

    (5)允许对一些如吞吐量、死锁等属性的分析。

    (6)支持并行执行。

●缺点:

    (1)通常导致进程成为批处理的结构。

    (2)不适合处理交互的应用。

    (3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。

3. 分层系统:

●优点:

    (1)支持基于抽象程度递增的系统设计。

    (2)支持功能增强。

    (3)支持重用。

●缺点:

    (1)并不是每个系统都可以很容易地划分为分层模式。

    (2)很难找到一个合适的、正确的层次抽象方法。

4. C2风格:

●组织规则:

    (1)系统中的构件和连接件都有一个顶部和一个底部。

    (2)构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件和构件之间的直接连接是不允许的。

    (3)一个连接件可以和任意数目的其他构件和连接件连接。

    (4)当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。

●特点:

    (1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起。

    (2)所有构件之间的通信是通过以连接件为中介的异步消息交换机制来实现的。

    (3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。

5. 客户/服务器风格:

●主要组成部分:数据库服务器、客户应用程序、网络

●优点:

    (1)对硬件和软件的变化显示出极大的适应性和灵活性,易于对系统进行扩充和缩小。

    (2)系统中的功能构件充分隔离。

    (3)将大应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。

    (4)具有强大的数据操作和事务处理能力,模型思想简单,易于理解和接受。

●缺点:

    (1)开发成本较高。

    (2)客户端程序设计复杂。

    (3)信息内容和形式单一。

    (4)用户界面风格不一,使用繁杂,不利于推广使用。

    (5)软件移植困难。

    (6)软件维护和升级困难。

    (7)新技术不能轻易使用。

6. 三层客户/服务器风格:

●主要组成部分:数据库服务器(数据层)、客户应用程序(表示层)、应用服务器(功能层)

●优点:

    (1)允许合理地划分为三层结构的功能。

    (2)允许更灵活有效地选用相应的平台和硬件系统,具有良好的可升级性和开放性。

    (3)能并行而且高效地进行开发。

    (4)安全管理严格,管理层次更加合理和可控制。

●缺点:

    (1)若各层的通信效率不高,整体也达不到所要求的性能。

    (2)设计时必须慎重考虑三层间的通信方法、通信频度及数据量。

7. 浏览器/服务器风格:

●主要组成部分:客户端浏览器、Web服务器、数据库服务器

●优点:

    (1)用通用浏览器实现了原来需要复杂的专用软件才能实现的强大功能,节约了开发成本。

    (2)系统安装、修改和维护全在服务器端解决。

    (3)提供异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。

    (4)实现了跨组织的功能覆盖,可以充分利用网络上的各种资源,维护工作量大大减少。

●缺点:

    (1)缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。

    (2)系统扩展能力差,安全性难以控制。

    (3)数据查询等响应速度慢。

    (4)数据的动态交互性不强,不利于在线事务处理应用。

8. 正交软件体系结构:

●组成部分:组织层(横向)、线索(纵向)

●主要特征:

    (1)正交软件体系结构由完成不同功能的n个线索(子系统)构成。

    (2)系统具有m个不同抽象级别的层。

    (3)线索之间是相互独立的(正交的)。

    (4)系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)。

●优点:

    (1)结构清晰,易于理解。

    (2)易修改,可维护性强。

    (3)可移植性强,重用粒度大。

9. 基于层次消息总线的体系结构风格:

●HMB:由北大杨芙清院士等人提出。

●消息总线:


●消息过滤:消息总线对消息过滤提供了转换和阻塞两种方式。消息过滤的原因主要在于不同来源的构件事先并不知道各自的接口,因此可能同一消息在不同的构件中使用了不同的名字,或不同的消息使用了相同的名字。

10. 异构结构风格:

●为什么要使用异构结构?

    (1)应该根据实际需要进行选择,以解决实际问题。

    (2)在某段时间内某一种标准占统治地位,但变动最终是绝对的。

    (3)遗留代码仍然效用,但与新系统在某种程度上不协调。

    (4)即使规定了共享共同的软件包或相互关系的一些标准,仍会存在解释或表示习惯上的不同。

●异构结构的实例:

    (1)“内外有别”模型——内部C/S,外部B/S

           优点:外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。

           缺点:企业外部用户修改和维护数据时,速度较慢,较繁琐,数据的动态交互性不强。

    (2)“查改有别”模型——查询浏览B/S,维护修改C/S

           优点:B/S和C/S的共同优点。

           缺点:企业数据容易暴露给外部用户,给数据安全造成了一定的威胁。

11. 特定领域软件体系结构:

●DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构。

●必备特征:

    (1)一个严格定义的问题域和/或解决域

    (2)具备普遍性,使其可以用于领域中某个特定应用的开发。

    (3)对整个领域的合适程度的抽象。

    (4)具备该领域固定的、典型的在开发过程中可重用元素。

●基本活动:领域分析、领域设计、领域实现

●参与DSSA的人员:领域专家、领域分析师、领域设计人员、领域实现人员。

●建立过程:分为五个阶段,每个阶段可以进一步划分为一些步骤或子阶段。每个阶段包括一组需要回答的问题、一组需要的输入、一组将产生的输出和验证标准。本过程是并发的、递归的、反复的、螺旋型的。

    (1)定义领域范围。

    (2)定义领域特定的元素。

    (3)定义领域特定的设计和实现需求约束。

    (4)定义领域模型和体系结构。

(5)产生、搜集可重用的产品单元。

●DSSA的建立需要设计人员对所在特定领域必须精通,他们要找到合适的抽象方式来实现DSSA的通用性和可重用性。通常DSSA以一种逐渐演化的方式发展。

12. DSSA与体系结构风格的比较:

(1)DSSA只对某一个领域进行设计专家知识的提取、存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构设计专家知识的组织时,可以将提取的公共结构和设计方法拓展到多个领域。

(2)DSSA的特定领域参考体系结构通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。

(3)体系结构风格的定义和该风格应用的领域是直交的,提取的设计知识比用DSSA提取的设计专家知识的应用范围要广。

(4)DSSA和体系结构风格是互为补充的两种技术。

猜你喜欢

转载自blog.csdn.net/qq_36911138/article/details/80841434