软件架构视图

从软件体系结构自身的特点出发,研究了体系结构建模和与特定应用领域密切相关的体系结构风格。 本节从体系结构归档的角度介绍软件体系结构视图及其样式。

http://www.Sina.com/http://www.Sina.com /

现代软件系统非常复杂,通常在一个具体的时间内只需要把注意力集中在一些结构上。 例如,看病时,医生只会关注某一方面的人体结构,而骨科医生和心血管医生会关注不同的结构。 (结构是要素本身的集合,而视图是结构)捕获并表示文档的记述。虽然存在差异,但在实际使用时并不严格区分。 也就是说,从系统体系的观点来看是结构

软件体系结构是一个无法用简单一维来解释的复杂实体,从不同侧面的描述是视图。 架构的优点还在于使用视图。 每个视图都有助于强调系统的某些方面,同时忽略系统的其他方面,处理或理解当前的问题。 需要一套完整的视图来描述完整的系统体系结构。 “4 1”方法是完整的视图集。

软件视图通常有三种类型。

(1)模块视图类型:为系统的主要模块实现单元归档。

)2)组件和连接器视图类型:对系统组件和连接器执行设备配置。

)3)分配视图类型)记录软件开发和运行环境之间的关系。 对于每种视图类型,都有几种常用的形式,可以将这些形式组合为模式样式(简称样式)。

的许多架构样式现在可供架构师选择。 例如,客户端/服务器是常见的模式样式,是组件和连接器的视图类型之一。 模式样式专门针对元素和关系类型,还包括一系列关于如何使用这些元素和关系类型的约束。 架构结构/视图分类见表9-10。 以下各节从要素、关系、特征方面进一步总结这三种类型及其风格。

1软件视图的分类

模块以某种方式将软件系统分解为可管理的功能单元。 “模块”视图列出了文档中系统的主要实现单元或模块,以及它们之间的关系。

任务的完整架构文档必须包含提供源代码蓝图的模块视图。 这种类型见表9-11。

下面总结一下“模块”视图的四种样式。

(1)分解形式可以表示对模块的责任分配方法。 该型式总结见表9-12。

)2)通过使用样式,可以显示模块相互依存的方式。 该型式总结见表9-13。

)3)分层样式可以将系统划分为一组虚拟机,并通过“允许使用”关系相互关联。 分层样式有助于实现可移植性和可修改性。 该型式总结见表9-14。

)泛化样式描述了一个模块如何泛化或专门化另一个模块,从而在模块之间产生关联。 它广泛应用于面向对象系统中,表现出继承性,可以利用模块之间的共性。 该型式总结见表9-15。

在CC视图中,可以定义包含运行时存在的元素(如进程、对象、客户端、服务器和数据存储)的模型。 它还包含交互路径,作为通信链路和协议、信息流、共享存储访问等元素。 这些交互通常可以使用复杂的基础结构(如中间件框架、分布式通信信道和进程调度)来执行。 这种类型的总结见表9-16。

CC视图样式特定于CC视图类型,CC视图样式不在少数,因此我们将总结几种CC视图样式。

(1)管道和过滤样式中的交互模式体现了数据流连续转换的特点。 数据到达筛选器并进行转换,然后由管理员发送到下一个筛选器。 该型式总结见表9-17。

)共享数据风格通过保留由多个数据存取器和至少一个存储库保存的持久性数据来支配交互模式。 该型式总结见表9-18。

)3)版本-订阅样式用于向一组未知的收件人发送事件和消息。 您可以添加新的收件人(订阅者),而无需更改生产者。 在“发布-订阅”样式中,构件通过发布事件进行交互。 元素可以订阅一系列事件。 该型式总结见表9-19。

(4)客户端-服务器模式表示组件请求其他组件的服务进行交互的过程,将功能划分为客户端和服务器后,可以根据运行时指南分别分配到各个级别。 该型式总结见表9-20。

(5)对等连接系统可在组件之间直接交换支持服务交换。 调用/返回的样式。 该型式总结见表9-21。

(6)通信-流程方式的特点是通过同步、消息传递、数据交换、启动和停止等多种连接机制同时执行组件交互。 该型式总结见表9-22。

g>4  分配视图类型及其风格

    硬件、文件系统和团队结构都会与软件架构进行交互,将软件架构映射到其环境的一般形式称为“分配视图类型”。该类型总结如表 9-23 所示。

    分配视图类型的三种常见风格为:

部置风格:能描述构件和连接件对硬件的映射,硬件是软件执行的场所。

实现风格:能描述模块对包含它们的文件系统的映射。

工作任务风格:能描述模块对承担模块开发任务的人员、团队或小组的映射。

    (1)部置风格体现为 C&C 风格(如通信-进程风格)的元素被分配到执行平台。该风格总结如表 9-24 所示。

    (2)实现风格能将模块视图类型中的模块映射到开发基础结构。实现一个模块总会产生许多独立文件,必须对这些文件进行组织,以免失去对系统的控制及系统的完整性。通常利用配置管理技术进行文件管理。该风格总结如表 9-25 所示。

    (3)软件项目的时间和预算估计取决于工作分解结构(WBS),而工作分解结构则取决于软件架构。工作任务风格将软件架构映射到由人组成的团队之中,实现这一项目管理的目的。该风格总结如表 9-26 所示。

    工作任务风格与模块分解风格关系密切,它能将模块分解风格用作其分配映射的基础。这种风格能通过添加与开发工具、测试工具和配置管理系统等对应的模块分解进行扩展。工作任务风格还通常与其他风格联合使用,例如,团队工作任务可以是模块分解风格中的模块,可以是分层图中的层,也可以是多进程系统中的任务或进程。

 

5  各视图类型间的映射关系 

    为了完整地描述一个架构,必须使用多个视图,这些视图必须遵守一定的映射关系。

    (1)模块视图类型中的视图通常会映射到构件和连接件视图类型中的视图。模块实现单元将映射到运行时构件。

    (2)系统的构件和连接件视图和模块视图之间的关系可能会非常复杂。同样的代码模块可由C&C 视图的许多元素执行。反之,C&C 视图的单一构件可执行由许多模块定义的代码。同样,C&C 构件可能会拥有许多与环境进行交互的点,每个交互点由同一模块接口定义。

    (3)分配视图类型是为有效地实现软件架构的辅助性视图,它将其他视图类型中的软件元素映射到软件环境中,即反映其他视图与软件环境之间的关系。

飞艇如何买前5后5、启动和停止等多种连接机制同时执行组件交互。 该型式总结见表9-22。

g>4  分配视图类型及其风格

    硬件、文件系统和团队结构都会与软件架构进行交互,将软件架构映射到其环境的一般形式称为“分配视图类型”。该类型总结如表 9-23 所示。

    分配视图类型的三种常见风格为:

部置风格:能描述构件和连接件对硬件的映射,硬件是软件执行的场所。

实现风格:能描述模块对包含它们的文件系统的映射。

工作任务风格:能描述模块对承担模块开发任务的人员、团队或小组的映射。

    (1)部置风格体现为 C&C 风格(如通信-进程风格)的元素被分配到执行平台。该风格总结如表 9-24 所示。

    (2)实现风格能将模块视图类型中的模块映射到开发基础结构。实现一个模块总会产生许多独立文件,必须对这些文件进行组织,以免失去对系统的控制及系统的完整性。通常利用配置管理技术进行文件管理。该风格总结如表 9-25 所示。

    (3)软件项目的时间和预算估计取决于工作分解结构(WBS),而工作分解结构则取决于软件架构。工作任务风格将软件架构映射到由人组成的团队之中,实现这一项目管理的目的。该风格总结如表 9-26 所示。

    工作任务风格与模块分解风格关系密切,它能将模块分解风格用作其分配映射的基础。这种风格能通过添加与开发工具、测试工具和配置管理系统等对应的模块分解进行扩展。工作任务风格还通常与其他风格联合使用,例如,团队工作任务可以是模块分解风格中的模块,可以是分层图中的层,也可以是多进程系统中的任务或进程。

 

5  各视图类型间的映射关系 

    为了完整地描述一个架构,必须使用多个视图,这些视图必须遵守一定的映射关系。

    (1)模块视图类型中的视图通常会映射到构件和连接件视图类型中的视图。模块实现单元将映射到运行时构件。

    (2)系统的构件和连接件视图和模块视图之间的关系可能会非常复杂。同样的代码模块可由C&C 视图的许多元素执行。反之,C&C 视图的单一构件可执行由许多模块定义的代码。同样,C&C 构件可能会拥有许多与环境进行交互的点,每个交互点由同一模块接口定义。

    (3)分配视图类型是为有效地实现软件架构的辅助性视图,它将其他视图类型中的软件元素映射到软件环境中,即反映其他视图与软件环境之间的关系。