软件架构

一、软件架构

1.1运行时抽象
一个软件架构是一个软件系统在其操作的某个阶段的运行时元素的抽象。一个系统有可能由很多层抽象和很多个操作阶段组成,每个抽象和操作阶段都有自己的软件架构。
软件架构的核心是抽象原则:通过封装来隐藏系统的一些细节,从而更好地识别和支持系统的属性。一个复杂的系统包含有多层的抽象,每一层抽象都有自己的架构。架构代表了在某层次上系统行为的抽象,架构的元素被描述为提供给同层的其他元素的抽象接口。
除了架构层次,软件系统通常拥有多个操作阶段,例如启动、初始化、正常处理、重新初始化和停止。每个操作阶段都有自己的架构。例如,配置文件在启动阶段会被当做架构的一个数据元素来处理,但是在正常处理阶段则不会当做一个架构元素,因为在这个阶段这些信息已经分布到系统的各处。
组件是运行时执行某种功能的软件单元。这样的例子有程序、对象、进程、过滤器。软件架构是软件系统在运行时的抽象,而软件结构则是静态源代码的属性。
一个软件架构由一些架构元素(组件、连接器和数据)的配置来定义,这些元素之间的关系受到约束,以获得想要得到的一组架构属性。处理元素(组件)是执行数据转换的元素,数据元素是包含被使用和被转换的信息元素,连接元素(连接器)是将架构的不同部分结合在一起的粘合剂。
1.2组件
一个组件是软件指令和内部状态的一个抽象单元,通过其接口提供对于数据的转换。组件是软件指令和内部状态的一个抽象单元,通过其接口提供对于数据的转换。转换的例子包括从二级存储将数据加载到内存、执行一些运算、转换为另外一种格式、使用其他数据来封装等等。
1.3连接器
一个连接器是对于组件之间的通讯、协调或者合作进行仲裁的一种抽象机制。连接器的例子包括共享的表述、远程过程调用、消息传递协议和数据流。也许理解连接器的最佳方式是将它们与组件加以对比。连接器通过将数据元素从它的一个接口转移到另一个接口而不改变数据,来支持组件之间的通讯。在其内部,一个连接器可以包含一个由组件组成的子系统,为了转移的目的对数据进行某种转换、执行转移、然后做相反的转换并交付与原始数据相同的结果。
1.4数据
一个数据是组件通过一个连接器接收或发送的信息元素。数据的例子包括字节序列、消息、编码过的参数、以及序列化过的对象,但是不包括那些永久驻留或隐藏在组件中的信息。
1.5配置
一个配置是系统在运行期间组件、连接器和数据之间的架构关系的结构。 组件-计算的所在地;连接器-定义组件之间的交互;配置-相互交互的组件和连接器的集合。

Fork me on GitHub