Skip to content
距考试 58 天预计考试 2026.10.24

构件化与软件复用

这一章的主线是:先找到可复用资产,再通过接口、适配和组装把它变成系统能力。

1. 基于构件的软件工程

CBSE 以可复用构件组装系统,把开发重点从重新编写转向选择、适配和组装。构件通常是可独立部署、可替换、无外部可见状态的软件单元,外部交互必须通过公开定义的接口完成。

构件的核心特征是可组装、可部署、文档化、独立性。构件模型描述接口、使用信息和部署信息;容器为构件提供运行与整合环境。构件库负责构件的存储、管理、分类、检索、浏览和维护

接口题先辨析两类接口:

  • 提供接口:构件对外提供的服务;
  • 请求接口:构件运行时需要调用的服务。

2. 构件类型、组装与失配

按外部形态,构件常分为五类:

  • 独立而成熟的构件:功能完整,验证充分,可直接复用;
  • 有限制的构件:依赖特定任务、环境或使用条件;
  • 适应性构件:已经通过包装或接口技术处理兼容性问题;
  • 装配的构件:已装配到操作系统、数据库等环境中,通常用胶水代码连接;
  • 可修改的构件:可进行版本替换、重新包装或功能扩展。

构件组装的常见方式是层次组装、顺序组装和叠加组装:层次组装体现服务调用关系,顺序组装把前一构件的输出接给后一构件,叠加组装把多个构件合并后对外提供统一接口。组装过程通常经历定制、集成、扩展三个层次。

接口失配常见为参数不兼容、操作不兼容、操作不完备;其中提供接口只是请求接口子集,属于操作不完备。架构失配还要区分:基础设施、控制模型和数据模型假设冲突,属于构件失配;交互协议和连接时数据格式假设冲突,属于连接子失配。解决时可使用适配器或胶水代码。

3. 软件复用

软件复用的对象包括需求、设计、架构、构件、框架、服务、类、接口、包、测试用例和领域知识。按应用范围区分:

  • 水平复用:跨不同应用领域复用通用元素,如数据结构、通用算法和基础界面;
  • 垂直复用:在同一应用领域内复用领域知识和专用资产。

双生命周期模型由领域工程应用工程组成:领域工程提炼和维护可复用资产,应用工程利用这些资产构建具体应用。基于复用的开发过程可记为:需求概览 → 识别候选构件 → 根据构件调整需求 → 架构设计 → 定制适配 → 组装

注意:架构页中的“架构复用”强调参考架构、架构模式等架构层次的复用;本页强调构件库、软件资产和构件组装

对应真题

本页覆盖 道独立题 条分值记录,题目分类已合并展示并隐藏右上角分类。

2026 年 5 月 - 30 题
在系统开发前评估复用已有系统或构件,主要考虑的是( )。
2025 年 11 月 - 51 题
()是软件开发中实现代码复用的最佳方式。
2025 年 5 月 - 54 题
在软件复用开发方法中,双生命周期模型是指两个并行但相互关联的开发过程,这两个生命周期分别是()。
2024 年 11 月 - 49 题
在不同应用领域中的软件元素,例如数据结构、分类算法和人机界面等属于()。
2024 年 5 月 - 22 题
以下关于构件的描述中,()是不正确的。
2024 年 5 月 - 17 题
构件组装是指构件相互直接集成或是用"胶水代码"将其整合在一起来创造一个系统或另一个构件的过程。其中,构件组装常见的方式不包括()组装。同时,构件组装中经常会面临接口不兼容的问题,如果一个构件的提供接口是另一个构件请求接口的一个子集,则属于()的情况。
问题(1)
问题(2)
2023 年 11 月 - 53 题
构件 () 对于可组装的构件,所有外部交互必须通过公开定义的接口进行。同时它还必须提供对自身信息的外部访问。()必须是自包含的,必须能作为一个独立实体在提供其构件模型实现的构件平台上运行。构件总是二进制形式,无须在部署前编译。
问题(1)
问题(2)
2023 年 11 月 - 51 题
构件管理的内容包括构件描述,(),构件库组织,人员及权限管理,用户意见反馈等。
2023 年 11 月 - 50 题
()进行了包装或使用了接口技术,把不兼容性、资源冲突等进行了处理,可以直接使用。这种构件可以不加修改地使用在各种环境中。()在安装时,已经装配在操作系统、数据库管理系统或信息系统不同层次上,使用胶水代码(glue code)就可以进行连接使用。
问题(1)
问题(2)
2023 年 11 月 - 49 题
构件库应提供的主要功能包括构件的存储、管理、检索以及库的浏览与维护等,以及支持使用者有效地、准确地发现所需的可复用构件。()是指给定几个查询需求,能够快速准确地找到相关构件。
2023 年 11 月 - 48 题
关于构件的说法,错误的是()。
2023 年 11 月 - 44 题
在构件组装过程中,一个构件直接调用由另一个构件所提供的服务时。被调用的构件为调用的构件提供所需的服务。这种组装方式称为()。
2022 年 11 月 - 34 题
以下有关构件演化的描述中,说法不正确的是()
2022 年 11 月 - 32 题
在构件的定义中,()是一个已命名的一组操作的集合。
2022 年 11 月 - 31 题
以下有关构件特性的描述中,说法不正确的是()。
2021 年 11 月 - 28 题
面向构件的编程目前缺乏完善的方法学支持,构件交互的复杂性带来了很多问题,其中()问题会产生数据竞争和死锁现象

软件工程 PDF 第407页图片
2021 年 11 月 - 27 题
以下关于软件构件的叙述中,错误的是()。
2020 年 11 月 - 21 题
按照外部形态,构成一个软件系统的构件可以分为五类,其中,()是指可以进行版本替换并增加构件新功能。
2019 年 11 月 - 25 题
构件组装是指将库中的构件经适当修改后相互连接构成新的目标软件。()不属于构件组装技术。
2019 年 11 月 - 24 题
基于构件的软件开发中,构件分类方法可以归纳为三大类:()根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构;()利用 Facet 描述构件执行的功能、被操作的数据、构件应用的语境或任意其他特征;()使得检索者在阅读文档过程中可以按照人类的联想思维方式任意跳转到包含相关概念或构件的文档。
问题(1)
问题(2)
问题(3)
2018 年 11 月 - 29 题
J2EE应用系统支持五种不同类型的构件模型,包括()。
2018 年 11 月 - 28 题
CORBA 服务端构件模型中,()是 CORBA 对象的真正实现,负责完成客户端请求。
2018 年 11 月 - 27 题
构件组装成软件系统的过程可以分为三个不同的层次:()。
2018 年 11 月 - 26 题
EJB是企业级Java构件,用于开发和部署多层结构的、分布式的、面向对象的Java应用系统。其中,()负责完成服务端与客户端的交互;()用于数据持久化来简化数据库开发工作;()主要用来处理并发和异步访问操作。
问题(1)
问题(2)
问题(3)
2018 年 11 月 - 25 题
软件重用可以分为垂直式重用和水平式重用,()是一种典型的水平式重用。
2017 年 11 月 - 28 题
OMG接口定义语言IDL文件包含了六种不同的元素,()是一个IDL文件最核心的内容,()将映射为 Java语言中的包(Package)或C++语言中的命名空间(Namespace)。
问题(1)
问题(2)
2016 年 11 月 - 27 题
关于构件的描述,正确的是()。
2016 年 11 月 - 26 题
CORBA 构件模型中,()的作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,()是最终完成客户请求的服务对象实现。
问题(1)
问题(2)
2016 年 11 月 - 25 题
面向构件的编程( COP)关注于如何支持建立面向构件的解决方案。面向构件的编程所需要的基本支持包括()。
2016 年 11 月 - 24 题
软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括()、测试用例和领域知识等。
2014 年 11 月 - 30 题
在构件组装过程中需要检测并解决架构失配问题。其中()失配主要包括由于系统对构件基础设施、控制模型和数据模型的假设存在冲突引起的失配。()失配包括由于系统对构件交互协议、构件连接时数据格式的假设存在冲突引起的失配。
问题(1)
问题(2)