新增其它层次体系结构

pull/2/head
吴尤 4 years ago
parent 2ac1710f81
commit 3a63d1b38e

@ -210,9 +210,56 @@
- **通常导致进程成为批处理的结构**
- 这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;
- **不适合处理交互的应用**
- 当需要增量地显示改变时,这个问题尤为严重;
- 因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就**导致了系统性能下降,并增加了编写过滤器的复杂性。**
- 绝大部分处理时间消耗在格式转换上
## 讨论题
> 什么是软件体系结构的风格?它在软件开发过程中具有何种意义?
风格:
- 软件体系结构风格是指设计、组织和实现软件体系结构的各种惯用模式和习惯用法,是
对一系列体系结构设计的抽象。
意义:
- 利用软件体系结构风格,可以在不同的软件体系结构设计过程中重复使用同一个体系结
构。这样可以将软件复用粒度提高到软件体系结构一级。
- 通过学习软件体系结构风格,可以在软件体系结构设计过程中,采用成熟的体系结构风
格,使得所设计的软件体系结构有良好的组织结构和通用性。
> 常见的软件体系结构风格主要有哪些种类?
- 数据流风格:批处理序列,管道′过滤器
- 调用/返回风格:主程序/子程序,面向对象风格,层次结构
- 独立构件风格:进程通信,事件系统
- 虚拟机风格:解释器,基于规则的系统
- 仓库风格:数据库系统,超文本系统,黑板系统
> 简述管道-过滤器的组成。
- 构件:过滤器,处理数据流
- 一个过滤器封装了一个处理步骤
- 数据源点和数据终止点可以看作是特殊的过滤器
- 连接件:管道,连接一个源和一个目的过滤器
- 转发数据流:将一个过滤器的输出传到另 一过滤器的输入
连接器定义了数据流图,形成拓扑结构
>简述管道-过滤器风格的优缺点。
优点:
- 良好的隐蔽性和高内聚、低耦合的特点;
- 允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
- 支持软件复用:
- 系统维护和增强系统性能简单:
- 支持过滤器的并行执行:
缺点:
- 不适合处理交互的应用;
- 因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。****

@ -181,53 +181,6 @@
## 讨论题
> 什么是软件体系结构的风格?它在软件开发过程中具有何种意义?
风格:
- 软件体系结构风格是指设计、组织和实现软件体系结构的各种惯用模式和习惯用法,是
对一系列体系结构设计的抽象。
意义:
- 利用软件体系结构风格,可以在不同的软件体系结构设计过程中重复使用同一个体系结
构。这样可以将软件复用粒度提高到软件体系结构一级。
- 通过学习软件体系结构风格,可以在软件体系结构设计过程中,采用成熟的体系结构风
格,使得所设计的软件体系结构有良好的组织结构和通用性。
> 常见的软件体系结构风格主要有哪些种类?
- 数据流风格:批处理序列,管道′过滤器
- 调用/返回风格:主程序/子程序,面向对象风格,层次结构
- 独立构件风格:进程通信,事件系统
- 虚拟机风格:解释器,基于规则的系统
- 仓库风格:数据库系统,超文本系统,黑板系统
> 简述管道-过滤器的组成。
- 构件:过滤器,处理数据流
- 一个过滤器封装了一个处理步骤
- 数据源点和数据终止点可以看作是特殊的过滤器
- 连接件:管道,连接一个源和一个目的过滤器
- 转发数据流:将一个过滤器的输出传到另 一过滤器的输入
连接器定义了数据流图,形成拓扑结构
>简述管道-过滤器风格的优缺点。
优点:
- 1良好的隐蔽性和高内聚、低耦合的特点
- 2允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
- 3支持软件复用
- 4系统维护和增强系统性能简单
- 5支持过滤器的并行执行
缺点:
- 1不适合处理交互的应用
- 2因为在数据传输上没有通用的标准每个过滤器都增加了解析和合成数据的工作这样就导致了系统性能下降并增加了编写过滤器的复杂性。
> 何谓层次体系结构中的“严格分层”和“松散分层”?
严格分层:

@ -1,3 +1,121 @@
## 事件系统风格(独立构件)
![image-20211125191009114](其它体系结构.assets/image-20211125191009114.png)
> 定义
- 能够激活对象功能的动作。当发生这种动作后将给所涉及对象发送一个消息,对象便可执行相应的功能
- 对某一对象发生什么事件,该对象便找到相应的处理该事件的程序去处理这一事件
![image-20211125185917327](其它体系结构.assets/image-20211125185917327.png)
> 事件的隐式调用
- 构件不直接调用一个过程,而是触发或广播一个或多个事件。
- 系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。
- 这种系统,称为基于事件的系统,采用隐式调用的方式。
> 为何称为“独立构件”风格?
- 这种风格的主要特点是:**事件的触发者并不知道哪些构件会被这些事件影响,相互保持独立。**
- 这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用;
- 各个构件之间彼此之间无连接关系,各自独立存在,**通过对事件的发布和注册实现关联;**
> 基本构成和工作原理
![image-20211125190410320](其它体系结构.assets/image-20211125190410320.png)
| 特点 | 描述 |
| ---------------- | ------------------------------------------------------- |
| 分离的交互 | 事件发布者并不会意识到事件订阅者的存在。 |
| 一对多通信 | 采用发布/订阅消息传递,一个特定事件可以影响多个订阅者。 |
| 基于事件的触发器 | 由事件触发过程调用。 |
| 异步 | 支持异步调用。 |
> 事件系统风格举例
遇到断点,编辑器将源代码滚动到断点处,变量监测器则更新当前变量值并显示出来。
![image-20211125190730334](其它体系结构.assets/image-20211125190730334.png)
> 事件系统的优缺点
隐式调用系统的主要优点
- **为软件重用提供了强大的支持**:当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。
- **为改进系统带来了方便**: 当用一个构件代替另一个构件时,不会影响到其它构件的接口。
隐式调用系统的主要缺点
- **构件放弃了对系统计算的控制**:一个构件触发一个事件时,不能确定其它构件是否会响应它。即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。
- **数据交换的问题**:有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。这也使全局性能和资源管理便成了问题。
- **正确性的推理存在问题**:这是由于过程的语义必须依赖于被触发事件的上下文约束。
## 仓库风格
![image-20211125191101728](其它体系结构.assets/image-20211125191101728.png)
> 定义
**数据库系统、超文本系统和黑板系统都属于仓库风格。**
在这种风格中,**数据仓库(如文件或数据库)位于这种体系结构的中心,**其他构件会经常访问该数据仓库,并对仓库中的数据进行增加、修改或删除操作。
![image-20211125191219430](其它体系结构.assets/image-20211125191219430.png)
> 仓库风格实例
注册表
- 最初,硬件/软件系统的配置信息均被各自保存在一个配置文件(.ini):
- 这些文件散落在系统的各个角落,很难对其进行维护;
- 为此,引入注册表,其思想是将所有.ini文件集中起来,形成共享仓库,为系统运行趣起到了集中的资源配置管理和控制调度的作用
![image-20211125191453040](其它体系结构.assets/image-20211125191453040.png)
剪贴板
- 剪贴板是一个用来进行短时间的数据存储并在文档/应用之间进行数据传递和交换的软件程序
- 用来存储带传递和交换信息的公共区域(形成共享仓库)﹔
- 不同的应用程序通过该区域交换格式化的信息;
- 访问剪贴板的方式: copy paste.
> 仓库风格的连接件
**连接件**:仓库与独立构件之间的交互存在**两种交互机制**
- **数据库方式**:输入流中的事务类型触发需要执行的过程
- **黑板结构**:中心数据结构的当前状态触发并选择需要执行的过程
> 黑板结构
- 黑板体系结构是仓库体系结构的特殊化。黑板体系结构模型通常由知识源、黑板数据结构和控制器三部分构成。
- 黑板风格是人工智能应用系统的重要设计方法之一。
![image-20211125191916042](其它体系结构.assets/image-20211125191916042.png)
![image-20211125191922457](其它体系结构.assets/image-20211125191922457.png)
> 知识源
- 知识源描述某个独立领域问题的知识及其处理方法
- 通常知识源具有“条件-动作”的形式。当条件满足时,知识源被触发,其动作部分增加或修改黑板上内容。
- 每个知识源分别存放且相互独立
- 知识源通过黑板进行通讯,合作求出问题的解
- 计算过程
- 待解决的问题被分为若干个子问题,每个子问题由一个独立的知识源加以计算。
- 知识源包含独立的领域知识。
- 知识源执行计算后会更新黑板里的数据状态。
- 多个知识源之间只能通过黑板交换知识
- 通过对黑板的读写操作来完成交换。
> 控制器
- 时刻监视黑板状态变化
- 对黑板上信息的当前状态进行判断和评价
- 当黑板的状态满足了知识源的执行条件时,该知识源被控制器触发并进行计算,然后将结果更新到黑板上
- 这种更新又导致其他知识源参与计算并更新黑板,直到找到问题解为止
## MVC风格
> 基本概念

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Loading…
Cancel
Save