【软件体系结构】考点总结 第三章 软件体系结构风格 XJU

软件体系结构 第三章 软件体系结构风格

前言

  本文为XJU本科期间博主根据 《软件体系结构原理、方法与实践》第二版所作的期末考点总结,因为是课堂重点总结,所以有些重要知识点没有涵盖还请见谅,每个学校的期末课程要求都有所不同,如需完整地学习软件体系结构,还请读者阅读张友生先生所著的《软件体系结构原理、方法与实践》。

目录

  读者可以通过目录链接跳转至任意一章的考点总结,也可以通过我的主页内的【软件体系结构】专栏进行查找。欢迎大家关注我或者订阅您感兴趣的专栏,我会定期更新相应内容。如果本系列的考点总结对您有帮助,欢迎各位在页面下方点赞或者在评论区留言。

考点总结

1. 软件体系结构风格的定义:
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。

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

3. 通用体系结构风格的五大类:

  • 数据流风格:批处理序列、管道与过滤器
  • 调用/返回风格:主程序与子程序、面向对象风格、层次结构
  • 独立构件风格:进程通信、事件系统
  • 虚拟机风格:解释器、基于规则的系统
  • 仓库风格:数据库系统、超文本系统、黑板系统

4. 管道与过滤器风格
特点:在管道与过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。

优点

  • 使得软构件具有良好的隐蔽性和高内聚、耦合的特点。
  • 允许设计师将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。
  • 支持软件重用。
  • 系统维护和增强系统性能简单。
  • 允许对一些如吞吐量、死锁等属性的分析。
  • 支持并行执行。

缺点

  • 通常导致进程成为批处理结构。
  • 不太适合处理交互的应用。
  • 因为在数据传输上没有通用标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能的下降,并增加了编写过滤器的复杂性。

5. 数据抽象和面向对象系统
特点:这种风格建立在数据抽象和面向对象的基础上,这种风格的构件是对象,或者说是抽象数据类型的实例。

6. 基于事件的系统
特点:基于事件的系统风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程调用。因此,该风格也称为隐式调用

优点

  • 为软件重用提供了强大的支持。
  • 为改进系统带来了方便。

缺点

  • 构件放弃了对系统计算的控制。
  • 数据交换的问题。在一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。
  • 既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。

7. 分层系统
特点:层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这种风格支持基于可增加抽象层的设计,这样,允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。

8. 黑板系统的组成部分:

  • 知识源:知识源中包含独立的,与应用程序相关的知识,知识源之间不直接进行通信,它们之间的交互只通过黑板来完成。
  • 黑板数据结构:黑板数据是按照与应用程序相关的层次来组织解决问题的数据,知识源通过不断地改变黑板数据来解决问题。
  • 控制:控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。

9. C2风格(最常用的一种软件体系结构风格)
特点:C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。
C2风格中的系统组织规则如下:

  • 系统中的构件和连接件都有一个顶部和一个底部。
  • 构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的
  • 一个连接件可以和任意数目的其他构件和连接件连接。
  • 当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部

优点

  • 系统中的构件可实现应用需求,并能将任意复杂度功能封装在一起。
  • 所有构件之间的通信时通过以连接件为中介的异步消息交换机制来实现的。
  • 构件相对独立,构件之间依赖性较小。

10. 客户/服务器风格
考点

  • C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络
  • 网络通信软件的主要作用是完成数据库服务器和客户应用程序之间的数据传输。

11. 三层C/S结构风格

  • 与两层C/S结构相比,在三层C/S体系结构中,增加了一个应用服务器。
    【软件体系结构】考点总结 第三章 软件体系结构风格 XJU_第1张图片
  • 三层C/S体系结构是将应用功能分成表示层、功能层和数据层三个部分(理解即可)。

三层C/S结构的优点:

  • 允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能够提高系统和软件的可维护性和可扩展性。
  • 允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。
  • 三层C/S结构中,应用的各层应用可以并行开发,各层也可以选择各自最合适的开发语言。使之能并行地并且是高效地进行开发,达到较高的性能价格比。对每一层的处理逻辑的开发和维护也会更容易一些。
  • 允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础。整个系统的管理层次也会更加合理和可控制。

三层C/S结构的缺点:
三层C/S结构的各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。此外,设计时必须慎重考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层C/S结构的关键问题。

12. 浏览/服务器风格

  • 浏览/服务器风格具体结构为:浏览器 / Web服务器 / 数据库服务器。

13. 异构结构风格
C/S与B/S混合软件体系结构的两个模型:

  • “内外有别”模型:优点为外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。缺点为企业外部用户修改和维护数据时,速度较慢,较繁琐,数据的动态交互性不强。
  • “查改有别”模型:优点为体现了B/S体系结构和C/S体系结构的共同优点。缺点为外部用户可以直接通过网络连接到数据库服务器,企业数据容易暴露给外部用户,给数据安全性造成了一定威胁。

14. 课后题 4和7
考试中有可能出类似题目

结束语

以上就是博主总结的第三章考点内容,持续更新中,欢迎大家关注我。如有错误欢迎各位在评论区指出。最后祝将要考试的小伙伴们逢考必过!

你可能感兴趣的:(软件体系结构,软件开发,经验分享)