软件架构风格
软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的 结构和语义 特征。
层次性 :<-> 每一层负责不同的功能,彼此之间通过结构进行通信
事件系统 :<-> 适用于系统中大量异步时间交互的场景,图形界面或部分中间件。
数据线(流水线)风格 :<-> 数据处理过程明确、顺序固定的系统,如编译器
[[C2架构]] :<-> 是一种以组件和连接件为核心的架构风格,强调解耦与消息驱动,适合可插拔系统
黑板 :<-> 典型用于语音识别、知识推理等复杂问题,多个知识源通过共享的“黑板”协作解决问题
[[进程通信结构]],系统由 **多个独立的进程(构件) ** 组成,这些进程之间通过 连接件 进行交互。
潜在缺点(脆弱性)
管道-过滤器风格 不能并发处理? #card
错误。管道-过滤器风格通过将处理过程划分为一系列过滤器节点,并通过管道连接,这种结构非常适合并发处理。
每个过滤器可以在独立线程中运行,从而实现流水线式处理。
说“不能并发”是对其特性的误解。
事件驱动风格:事件触发顺序不可控 #card
正确。[[事件驱动架构]]虽然解耦性强,
但由于事件的触发顺序可能不可控,
容易引发状态不一致或难以调试等问题。
某公司为其研发的硬件产品设计实现了一种特定的编程语言,为了方便开发者进行软件开发,公司拟开发一套针对该编程语言的集成开发环境,包括代码编辑、语法高亮、代码编译、运行调试等功能。针对上述描述,该集成开发环境应采用(__)架构风格最为合适。 #card
- 集成开发环境(IDE)通常集成了代码编辑、语法高亮、编译、调试等多种功能,这些功能通常围绕同一个核心数据(如语法树、符号表等)进行操作,适合采用数据仓储(Repository)架构风格,即以一个中心数据结构为核心,其他功能模块作为独立的处理器与该数据结构交互。
系统中的构件和连接件都有一个顶部和一个底部,构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,构件和构件之间不允许直接连接,连接件直接连接时,必须由其中一个的底部连接到另一个的顶部。上述构件和连接件的组织规则描述的是(__)架构风格。#card
- C2:构件和连接件都有顶部和底部,构件的顶部连接到连接件的底部,构件的底部连接到连接件的顶部,构件之间不直接连接,连接件直接连接时必须底部对顶部