Skip to content

[Q4] 软件架构概念(数据访问逻辑)

The second function is the(请作答此空),the processing required to access data.

  • A. data persistence 数据持久化
  • B. data access objects 数据访问对象
  • C. database connection 数据库连接
  • D. data access logic 数据访问逻辑
📝答案与解析

正确答案:D

题干翻译:第二个功能是 ___,即访问数据所需的处理。

答案是 D. data access logic(数据访问逻辑)

这个题的关键:知道「三个功能」是哪三个

这道题来自一组连续题(Q11-Q14),描述应用系统的 三个核心功能层

① 数据存储(data storage)  
    → 存数据、取数据                       ← Q11

② 数据访问逻辑(data access logic)       ← 本题(Q4/Q12)  
    → 访问数据所需的处理逻辑  
      (查哪个表、怎么 join、where 条件拼装等)

③ 应用逻辑(application logic)  
    → DFD、用例、功能需求中描述的业务逻辑   ← Q13

数据访问逻辑 是介于"纯存储"和"业务逻辑"之间的中间层——它知道怎么去拿数据,但不负责业务规则。

其他选项为什么错?

选项分析
A. data persistence 数据持久化是一种机制/能力,而不是"处理"。题干问的是 processing(处理),而非存储机制
B. data access objects 数据访问对象实现模式(DAO 模式),是一种编码层面的设计,不是架构层面的三大功能之一
C. database connection 数据库连接是底层连接管理,属于基础设施,不是数据访问的"处理逻辑"
D. data access logic ✅正确定义:数据访问所需的处理过程(拼 SQL、ORM 查询、结果映射等)

易错点

很多人看到"访问数据"就选 DAO(数据访问对象),但 DAO 是设计模式,而题目问的是系统软件架构的三个基本功能是什么——这在经典的架构设计教材中是固定三件套:

Data Storage → Data Access Logic → Application Logic


[Q6] 软件架构概念(错误描述)

以下关于软件架构设计活动的描述,错误的是()

  • A. 在建立软件架构的初期,一般需要选择一个合适的架构风格
  • B. 将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系
  • C. 软件架构设计活动将已标构件集成到软件架构中,设计并实现这些构件
  • D. 一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审
📝答案与解析

正确答案:C

逐项分析

注意一下题干,这里是说:【软件架构设计活动】,那么选项需要找出设计活动错误的描述。

❌ C. 软件架构设计活动将已标构件集成到软件架构中,设计并实现这些构件

错在哪? ——「实现」这两个字。

架构设计活动的边界是设计,不包含实现(编码/开发)。把构件设计出来、定义接口、描述交互——这是架构设计的事。但写代码实现构件是开发阶段的事。

完整的架构设计活动三步是:

① 提出架构模型 / 选架构风格  
② 产生架构设计(构件映射 + 关系分析)  
③ 设计评审

—— 到设计评审为止。实现?那是下游的事。

✅ A. 在建立软件架构的初期,一般需要选择一个合适的架构风格

正确。架构风格(分层、微服务、事件驱动、管道-过滤器等)是顶层决策,初期必须选。

✅ B. 将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系

正确。这是架构设计的核心工作——构件映射 + 关系分析

✅ D. 一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审

正确。架构评审要求独立的外部专家参与,这是保证架构质量的关键手段。


考点提炼

架构设计活动 = 建模 + 设计 + 评审  

          不包含「实现」

易错提醒:题目把「设计并实现」放在一起,很多人扫过去没注意"实现"两个字就选了。记住:架构师管设计,开发工程师管实现。



[Q8] 软件架构概念

在构件组装过程中需要检测并解决架构失配问题。其中 (1) 失配主要包括由于系统对构件基础设施、控制模型和数据模型的假设存在冲突引起的失配。

  • A. 构件
  • B. 模型
  • C. 协议
  • D. 连接子
📝答案与解析

正确答案:A

区分这两个题目的关键在于理解架构失配中“构件”和“连接子”各自关注的冲突类型。

  • 构件失配(Q8):源于构件自身的假设冲突,例如对底层基础设施(操作系统、中间件)、控制模型(同步/异步、调用方式)或数据模型(数据结构、类型系统)的假设不一致。这些属于构件内部或构件与环境的固有属性差异。
  • 连接子失配(Q9):源于构件之间交互的假设冲突,例如交互协议(消息顺序、超时机制、事务边界)或连接时数据格式(序列化格式、字节序、编码)不一致。这些属于连接线(即连接子)上需要协调的规则与格式差异。

记忆技巧

  • 看到“基础设施、控制模型、数据模型” → 选构件(构件自身特征)。
  • 看到“交互协议、数据格式” → 选连接子(构件间通信细节)。

[Q9] 软件架构概念

(2) 失配包括由于系统对构件交互协议、构件连接时数据格式的假设存在冲突引起的失配。

  • A. 构件
  • B. 模型
  • C. 协议
  • D. 连接子
📝答案与解析

正确答案:D


The architecture design specifies the overall architecture and the placement of software and hardware that will be used. Architecture design is a very complex process that is often left to experienced architecture designers and consultants.

The first step is to refine the (1) into more detailed requirements that are then employed to help select the architecture to be used and the software components to be placed on each device. In a (2), one also has to decide whether to use a two-tier, three-tier, or n-tier architecture. Then the requirements and the architect design are used to develop the hardware and software specification. There are four primary types of nonfunctional requirements that can be important in designing the architecture: (3) specify the operating environment(s) in which the system must perform and how those may change over time. (4) focus on the nonfunctional requirements issues such as response time, capacity, and reliability. (5) are the abilities to protect the information system from disruption and data loss, whether caused by an intentional act. Cultural and political requirements are specific to the countries in which the system will be used.

[Q16] 软件架构概念(非功能性需求:第一步)

The first step is to refine the (1) into more detailed requirements.

  • A. functional requirements
  • B. nonfunctional requirements
  • C. system constraint
  • D. system operational environment
📝答案与解析

正确答案:B

翻译:

架构设计规定了整体架构以及将要使用的软件和硬件的部署位置。架构设计是一个非常复杂的过程,通常由经验丰富的架构设计师和顾问完成。第一步是将(1)细化为更详细的需求,然后用于帮助选择要使用的架构以及部署在每台设备上的软件组件。在(2)中,还需要决定使用两层、三层还是 n 层架构。然后,利用这些需求和架构设计来制定硬件和软件规格说明。在设计架构时,有四类主要的非功能性需求可能非常重要:(3)规定了系统必须运行的操作环境以及这些环境随时间可能发生的变化。(4)关注响应时间、容量和可靠性等非功能性需求问题。(5)是指保护信息系统免受中断和数据丢失的能力,无论这些中断或丢失是由故意行为引起的。文化和政治需求则是系统使用所在国家/地区特有的需求。


[Q17] 软件架构概念(C/S架构)

In a (2), one also has to decide whether to use a two-tier, three-tier, or n-tier architecture.

  • A. client-based architecture
  • B. server-based architecture
  • C. network architecture
  • D. client-server architecture
📝答案与解析

正确答案:D

根据上下文,这里讨论的是客户端-服务器架构(client-server architecture),因为两层、三层和 n 层架构都是其具体实现形式。因此正确答案是 D


[Q18] 软件架构概念(操作性需求)

(3) specify the operating environment(s) in which the system must perform.

  • A. Operational requirements
  • B. Speed requirement
  • C. Access control requirements
  • D. Customization requirements
📝答案与解析

正确答案:A

根据上下文,描述“指定系统必须运行的操作环境及其随时间的变化”的正是操作需求(Operational requirements)。因此正确答案是 A

其他选项:速度需求、访问控制需求、定制化需求都不匹配。


[Q19] 软件架构概念(性能需求)

(4) focus on the nonfunctional requirements issues such as response time, capacity, and reliability.

  • A. Environment requirements
  • B. Maintainability requirements
  • C. Performance requirements
  • D. Virus control requirements
📝答案与解析

正确答案:C

根据描述,关注响应时间、容量、可靠性等非功能性需求问题,正是性能需求(Performance requirements)。因此正确答案是 C

其他选项

  • A. Environment requirements(环境需求)
    关注系统运行所需的物理或软件环境,例如操作系统版本、网络带宽、硬件配置、温度湿度等。它不直接涉及响应时间、容量或可靠性。
  • B. Maintainability requirements(可维护性需求)
    关注系统便于修改、修复、升级的程度,例如模块化程度、日志记录、诊断接口等。与响应时间、容量没有直接关系。
  • D. Virus control requirements(病毒控制需求)
    属于安全需求的一类,侧重于防病毒、恶意软件检测与清除等。与性能指标(响应时间、容量、可靠性)不同。

[Q20] 软件架构概念(安全性需求)

(5) are the abilities to protect the information system from disruption and data loss.

  • A. Safety requirements
  • B. Security requirements
  • C. Data management requirements
  • D. System requirements
📝答案与解析

正确答案:B

根据题干描述:“保护信息系统免受中断和数据丢失的能力”,这明确指的是安全需求(Security requirements)。因此正确答案是 B

其他选项解释:

  • A. Safety requirements(安全需求)
    通常指人身安全设备安全(如防止触电、机械伤害、防火等),与信息系统的数据丢失和中断防护不是同一概念。
  • C. Data management requirements(数据管理需求)
    侧重于数据的存储、备份、归档、生命周期管理等,不直接涵盖防护中断和故意破坏的能力。
  • D. System requirements(系统需求)
    范围太宽,包含功能性和非功能性需求,不能特指防护中断和数据丢失的能力。

因此,正确答案是 B


[Q23] 软件架构概念(ES vs 一般系统)

专家系统(ES)与一般计算机系统的根本区别在于 ( ) 。

  • A. 处理数字与符号
  • B. 处理确定性知识
  • C. 解释推理过程
  • D. 操作成本低廉
📝答案与解析

正确答案:C


[Q24] 软件架构概念(DSS)

决策支持系统(DSS)主要用于解决 ( ) 。

  • A. 结构化问题
  • B. 半结构化问题
  • C. 日常事务处理
  • D. 纯数据存储
📝答案与解析

正确答案:B

DSS的定义:决策支持系统主要用于解决半结构化和非结构化问题,而非结构化问题。通常教材中说DSS解决半结构化问题。选项:A结构化问题(由MIS或TPS处理),B半结构化问题,C日常事务处理(TPS),D纯数据存储(数据库)。所以选B。

决策支持系统(DSS)主要辅助解决半结构化问题(如销售预测、预算规划等),这类问题既有一定的规律可循,又需要人的判断和灵活性。结构化问题通常由管理信息系统(MIS)或事务处理系统(TPS)处理;日常事务处理和纯数据存储则不属于DSS的核心定位。


[Q26] 软件架构概念(设计阶段排除)

在设计阶段,软件架构设计的研究主要不包括 ( ) 。

  • A. 软件架构模型的描述
  • B. 软件架构模型的设计与分析方法
  • C. 对软件架构设计经验的总结与复用
  • D. 从现有系统中获得需要的构件
📝答案与解析

正确答案:D

软件架构设计阶段的研究重点包括:

  • A. 软件架构模型的描述(如架构视图、风格、模式)
  • B. 软件架构模型的设计与分析方法(如质量属性场景、架构权衡分析方法)
  • C. 对软件架构设计经验的总结与复用(如架构模式、参考架构)

而 D. 从现有系统中获得需要的构件 更侧重于软件复用构件获取,通常属于实现、集成或构件库管理阶段,不是架构设计阶段的核心研究内容。因此,该项不包括在内。


[Q28] 软件架构概念(实现阶段研究)

在软件架构的实现阶段研究中,以下哪项不属于主要研究方向( )。

  • A. 基于软件架构的开发过程支持
  • B. 从软件架构向实现过渡的途径
  • C. 基于软件架构的测试技术
  • D. 软件架构的多视图表示
📝答案与解析

正确答案:D

软件架构的实现阶段主要关注如何将架构设计转化为可运行的系统,包括:

  • A. 基于软件架构的开发过程支持(如迭代开发、架构驱动的开发流程)
  • B. 从软件架构向实现过渡的途径(如架构映射、代码生成)
  • C. 基于软件架构的测试技术(如架构符合性测试、构件集成测试)

而 D. 软件架构的多视图表示(如逻辑视图、物理视图等)属于架构描述与设计阶段的研究内容,用于表达和沟通架构设计,而非实现阶段的核心方向。因此,该项不属于实现阶段的主要研究。


[Q29] 软件架构概念(需求→架构转换)

在软件架构设计的需求阶段,关于需求模型向软件架构模型转换的主要关注点是()。

  • A. 如何描述软件架构模型
  • B. 如何分析软件架构质量属性
  • C. 如何构建软件架构模型和保证可追踪性
  • D. 如何选择合适的部署方案
📝答案与解析

正确答案:C

解析

在软件架构设计的需求阶段,核心任务是从需求模型(如用例、质量属性场景、约束)过渡到架构模型。这个转换过程中,主要关注两点:

  1. 如何构建软件架构模型:即如何将功能需求和非功能需求映射为构件、连接子、配置等架构元素。
  2. 保证可追踪性:确保每个架构决策都能回溯到具体需求(尤其是质量属性场景),以便后续验证、评估和变更管理。
  • A(如何描述软件架构模型)属于设计阶段的表示问题,而不是转换的关注点。
  • B(如何分析软件架构质量属性)属于设计阶段的评估方法,是在模型构建之后进行。
  • D(如何选择合适的部署方案)属于部署阶段的活动。

因此,C 最准确地描述了需求阶段向架构模型转换时的核心关注点。


[Q32] 软件架构概念(重用设计经验)

在软件体系结构设计中,用于总结和重用设计经验的主要技术包括()。

  • A. 设计模式和框架
  • B. 体系结构风格和DSSA
  • C. UML图和原型设计
  • D. 代码重构和单元测试
📝答案与解析

正确答案:B

解析

在软件体系结构设计中,总结和重用设计经验的主要技术包括:

  • 体系结构风格(如分层、管道-过滤器、事件驱动等)是对一类相似问题的通用解决方案模板,可复用架构经验。

  • DSSA(特定领域软件架构) 是针对特定领域(如航空、金融、医疗)总结出的参考架构,支持在该领域内大规模重用设计经验。

  • A(设计模式和框架)更偏向详细设计实现层面的重用,虽然也涉及经验总结,但不是最高层次的体系结构重用技术。

  • C(UML图和原型设计)是建模和验证手段,并非专门用于总结和重用设计经验。

  • D(代码重构和单元测试)属于实现与测试阶段的活动,与设计经验总结无关。

因此,B 最符合题意。