《An Introduction to Software Architecture》
David Garlan and Mary Shaw
January 1994
School of Computer Science
Carnegie Mellon University
David Garlan and Mary Shaw
January 1994
School of Computer Science
Carnegie Mellon University
一、软件架构风格
常见的有如下几种:
1. 管道和过滤器 (Pipes and Filters)
优点:1) 易于系统间的组合:其他系统可以整体考虑作为本系统的一个过滤器;
2) 支持重用:任意两个过滤器,只要它们在转换的数据上达成一致,都可以挂接在一起;
3) 系统易于维护和改进:新过滤器很容易加进系统,旧过滤器也很容易被改进的版本替换;
4) 允许某些特化分析,比如流量和死锁分析;
5) 支持并发执行。
缺点:1) 交互性差;
2) 过滤器之间可能在保持独立但相关的数据流之间的一致性方面有麻烦;
3) 取决于实现,过滤器之间可能会被要求在数据转换方面有一个最低限度的共同特征,这就有可能导致性能上的损失,同时也可能增加实现上的复杂性。
2. 数据抽象和面向对象 (Data Abstraction and Object-Oriented Organization)
优点:1) 对象隐藏了实现细节,因此可以在不影响用户的情况下改变实现;
2) 将访问方法和它们要访问的数据捆绑在一起允许设计者将问题分解为互相影响的代理程序的集合;
缺点:1) 如果一个对象要和另一个对象打交道,它必须知道那个对象的特性(接口);这样如果一个对象的接口改变了,那么就有必要修改所有显式调用它的对象;
2) 调用对象的副作用:如果两个对象使用了同一个对象,那个它们对该对象的作用可能会互相影响而产生副作用。
3. 基于事件的隐式调用 (Event-based, Implicit Invocation)
优点:1)
2)
缺点:1)
2)
4. 分层 (Layered Systems)
优点:
缺点:
5. 仓库 (Repositories)
优点:
缺点:
6. 表驱动的解释器 (Table Driven Interpreters)
优点:
缺点:
其他:
1. 分布式处理 (Distributed processes)
2. 主/子程序 (Main program/subroutine organizations)
3. 应用领域特定的架构 (Domain-specific software architectures)
4. 状态转换 (State transition systems)
5. 过程控制 (Process control systems)
二、不同软件架构的组合