知识卡片
实现阶段的执行视图与代码视图
内容
为了让架构在系统实现阶段真正发挥指导与交流作用,Hofmeister提出四种视图(概念视图、模块视图、执行视图、代码视图),其中执行视图和代码视图最直接指导实现阶段。执行视图描述模块如何映射到运行时平台提供的元素、这些元素又如何映射到硬件架构,定义系统的执行时实体及其属性,重要部分是”控制流”——即从运行时平台视角看待控制流转,相比其他视图,执行视图能更精确描述需要内部通信和并发处理的协议。执行视图的设计任务包括:全局分析(贯穿整个设计过程的第一个任务);定义运行时实体(先把概念性组件分配到平台元素中做初步逼近,再通过模块到运行时实体的映射改进这个划分);定义运行实体之间预期允许的通信路径(含通信机制和资源);用执行配置图刻画运行时实体实例的特征和互连方式、描述系统运行时拓扑结构;把配置任务中定义的运行时实例和预算分配到具体硬件设备,同时给预设属性赋特定值(如设置进程优先级)。代码视图描述实现系统的软件如何被组织:源代码组件实现模块视图中的独立元素,部署组件(可执行文件、库文件、配置文件)实例化执行视图中的运行时实体,代码视图描述这些组件如何通过中间组件相互联系、以及它们在特定开发环境中如何被实现,还涉及配置管理、多版本、测试相关的设计决策——其最主要目的是加快系统的构造、集成、安装和测试,同时兼顾其他视图的完整性。代码视图的设计任务包括:设计源代码组件(识别源代码组件、把模块视图元素及其依赖关系映射到源代码组件、用目录或文件组织它们);组织源代码组件供开发测试(用UML包层次描述组织方式);设计中间组件;设计部署组件(识别并映射执行视图中的运行时实体及其依赖关系);设计构造安装过程;确定配置管理相关决策。相近的还有Qiang Tu提出的构建视图(以目录/源文件/中间编译文件/可执行文件为组件,包含依赖关系为连接件)和Kruchten提出的并发视图(以进程线程为组件、以数据流事件和共享资源同步为连接件,虽描述运行阶段情形,但一般在实现阶段就给出,为性能可用性提供参考)。