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

前言

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

目录

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

考点总结

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

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

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

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

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

优点

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

缺点

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

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

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

优点

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

缺点

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

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

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

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

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

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

优点

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

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

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

11. 三层C/S结构风格

  • 与两层C/S结构相比,在三层C/S体系结构中,增加了一个应用服务器。
  • 三层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
考试中有可能出类似题目

结束语

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

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

  1. 慕课软件质量保证与测试(第三章.课后作业)

    慕课金陵科技学院.软件质量保证与测试.第三章.黑盒测试.课后作业 0 目录 3 黑盒测试 3.10 课后作业 3.10.1课堂重点 3.10.2测试与作业 4 下一章 0 目录 3 黑盒测试 3.10 ...

  2. 慕课软件质量保证与测试(第三章.单元测试)

    慕课金陵科技学院.软件质量保证与测试.第三章.黑盒测试.单元测试 0 目录 3 黑盒测试 3.9 单元测试 3.9.1课堂重点 3.9.2测试与作业 4 下一章 0 目录 3 黑盒测试 3.9 单元测 ...

  3. 第三章 软件构造过程与配置管理

    第三章 软件构造过程与配置管理 第三章 软件构造过程与配置管理 Software Development Lifecycle(SDLC)软件开发生命周期 From 0 to 1 从无到有 From 1 ...

  4. 《软件质量保证与测试》学习笔记【第三章 软件测试过程所需技能】

    目录 第三章 软件测试过程所需技能(软件测试计划书) 前言 3.1软件测试计划 1.软件测试计划书的定义 2.软件测试计划的作用 3.如何制定软件测试计划 4.IEEE测试计划模板 第三章 软件测试过 ...

  5. 系统集成项目管理工程师高频考点(第三章)

    系统集成项目管理工程师高频考点系列文章,汇总各个章节常考内容,并列出关联的历年真题,帮助考生复习备考.更多复习内容请在微信搜索小程序 "系统集成项目管理工程师高频考点". 第三章 ...

  6. 计算机网络结构ppt课件,第三章计算机网络体系结构ppt课件.ppt

    <第三章计算机网络体系结构ppt课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<第三章计算机网络体系结构ppt课件.ppt>文档请在天天文库 ...

  7. 【软件体系结构】考点总结 第四章 软件体系结构描述 XJU

    软件体系结构 第四章 软件体系结构描述 前言   本文为XJU本科期间博主根据 <软件体系结构原理.方法与实践>第二版所作的期末考点总结,因为是课堂重点总结,所以有些重要知识点没有涵盖还请 ...

  8. 《软件工程》第三章——软件设计综述

    1. 软件设计的任务与目标 任务和目标:以软件需求规格设计说明书为依据,根据其提出的系统目标,进行数据设 计(数据结构),系统结构设计(软件系统的体系结构),过程设计(吧结构转换为软件的过程性描述), ...

  9. java 获取打印机缺纸_第三章软件

    试题列表 题号 科目 题 型 题干 难 度 分 类 1413 计算 机基 础 判 断 存储在磁盘中的 MP3 音乐. JPEG 图片等都是计算机软件. 答案: N 中 1417 计算 机基 础 判 断 ...

最新文章

  1. 郑冠杰:KDD Cup城市大脑赛题方法总结!
  2. 如何使用意图将对象从一个Android活动发送到另一个?
  3. python 数据分析学什么-python数据分析学什么?python数据分析入门
  4. Paul Rayner认为DDD和敏捷可以共存
  5. Android之MVVM框架 - 数据绑定
  6. mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别
  7. c语言中栈堆,C语言中堆和栈的区别
  8. 比赛一买香蕉问题---解题报告
  9. 树莓派使用STEP8:使能串口调试
  10. Android 屏幕适配攻略(六)设置通知样图标与启动图标适配
  11. 杭电 4548 美素数
  12. 使用EasyRecovery来恢复丢失的视频
  13. 修改他人代码:怎么才能减少发布Bug概率?
  14. 热传导方程有限差分法实现matlab,热传导方程有限差分法的MATLAB实现-史策
  15. 学习银行系统开发经验
  16. NXP ZigBee JN5169开发流程总结
  17. 如何学习硬件设计——实践篇
  18. java里面default是什么意思_default_default是什么意思???
  19. Oracle配置本地网络服务名
  20. 软件项目管理 第六章 成本计划

热门文章

  1. TIBCO Spotfire: JavaScript可视化框架 - JSViz
  2. 小波变换和小波阈值去噪
  3. json结构、值对比python源码实现
  4. 芯片无忧的使用教程,ChipEasy芯片无忧如何检测U盘?U盘检测方法说明
  5. 大学计算机基础知识判断题,大学计算机基础试题及答案
  6. 新的教学模式、教学改革思路探讨
  7. linux mysql命令
  8. UE4-编辑器脚本之资产批量重命名
  9. Linux之常见的通配符
  10. 新任技术管理者应该怎样去开始帮助他人?