知识卡片
五种基本架构结构类型
内容
架构结构是用来描述软件架构的一种结构形式:具有相同类型的节点称为”组件”,节点之间的关系称为”连接件”,再用”属性”对组件和连接件做补充注释(用于区分不同类型、支持性能/安全性/可靠性等分析)。架构结构描述架构的基本信息,架构视图则是从架构结构派生出来的子部分或多个结构信息的综合。书中给出五种最基本的架构结构类型,每一种都对应不同的质量属性关切:基于功能的架构结构是对系统功能性需求的分解描述,”组件”是功能(域)实体、”连接件”是数据传输实体,帮助理解功能实体间的交互,深化对功能性需求本身的理解。基于代码的架构结构是对关键性代码的抽象描述,”组件”是包/类/对象/过程/函数/方法等各种抽象级别的功能封装载体,”连接件”是控制流/传输流/共享流/调用关系/对象实例,这种结构对了解系统的可维护性、可修改性、可重用性、可移植性至关重要——即”代码层面的架构结构”直接决定了后续能否低成本地改动系统。并发架构结构关注系统的并发逻辑(线程/进程数量、执行时间、优先级),”组件”是可细化为线程或进程的并发单元,”连接件”包括同步、优先级、数据传输和互斥,直接影响系统的安全性和可靠性。物理架构结构涉及CPU、存储器、总线、网络和输入输出设备,从中可了解系统的可用性、带宽、容量等信息。基于开发的架构结构涉及文件和目录信息,对系统管理控制、以及团队分工都很重要。这五种结构分别对应”功能理解-代码质量-并发安全-物理资源-团队协作”五个完全不同的关切维度,选择用哪种结构描述架构,取决于当前要回答的是关于系统的哪一类问题——用基于功能的结构去分析并发安全性,或用物理架构结构去分析可维护性,都是文不对题。
参考来源
- 位置:《软件架构理论与实践》第7章《架构驱动的软件开发》"7.3.2 什么是架构的结构"节(源文件:_epub-src/OEBPS/text00058.html)
- 结论依据:原文逐一说明基于功能/基于代码/并发/物理/基于开发五种架构结构各自的"组件""连接件"定义及其重要性("这种结构对于了解系统的可维护性、可修改性、可重用性和可移植性至关重要"),直接支撑本卡片结论。
- 原始内容:对架构结构的描述有很多种方法,其中有5种最基本的类型……基于功能的架构结构:该结构是对软件系统的功能性需求的分解和描述……基于代码的架构结构:该结构是对软件设计过程中关键性代码的抽象描述……这种结构对于了解系统的可维护性、可修改性、可重用性和可移植性至关重要。