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

系统设计与设计模式

系统设计把分析模型落实为可实现的结构,核心目标是控制复杂度,并使模块易于理解、修改和复用。

1. 设计层次与面向对象设计

设计阶段通常分为两层:

  • 概要设计:确定系统整体结构、组成和构件之间的关系;
  • 详细设计:确定模块接口、算法和内部处理。

面向对象设计是面向对象分析的延续,重点是抽象、封装和可扩展性。按职责辨析三类设计类:

  • 实体类:表示业务领域中的持久化对象或核心数据;
  • 控制类:协调用例流程和业务处理;
  • 边界类:负责系统与外部参与者、设备或界面的交互。

常考设计原则:单一职责、开闭、里氏替换、接口隔离、依赖倒置、组合/聚合复用、最少知识

2. 结构化设计与模块质量

结构化设计以需求规格说明、DFD、数据字典等为基础,采用自顶向下、逐步求精、模块化的方法。模块划分重点看:

  • 扇入:调用该模块的上级模块数;通常希望适当提高;
  • 扇出:该模块直接调用的下级模块数;过大说明控制复杂;
  • 深度与宽度:分别反映层次深度和同层模块数量;
  • 信息隐蔽:隐藏模块内部实现,只通过接口协作。

总体目标是高内聚、低耦合。耦合由低到高为:非直接、数据、标记、控制、外部、公共、内容;内聚由高到低为:功能、顺序、通信、过程、瞬时、逻辑、偶然

最容易混淆的两组:

  • 顺序内聚:一个处理的输出是下一个处理的输入;
  • 过程内聚:处理元素按特定顺序执行,但彼此没有数据传递或直接依赖;
  • 数据耦合:模块之间传递简单数据;
  • 标记耦合:模块之间传递数据结构或数据记录。

3. 设计模式

设计模式按意图分为创建型、结构型、行为型

  • 创建型:工厂、单例,解决对象如何创建;
  • 结构型:适配器、装饰器、外观,解决类或对象如何组合;
  • 行为型:观察者、策略,解决对象之间如何协作。

按题干意图定位模式:

  • 适配器:转换接口,解决接口不兼容;
  • 装饰器:动态增加对象职责;
  • 观察者:一对多通知,状态变化时通知依赖者;
  • 策略:封装可替换算法;
  • 工厂:封装对象创建过程;
  • 单例:保证一个类只有一个实例并提供统一访问点;
  • 外观:为复杂子系统提供统一的高层接口。

对应真题

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

2026 年 5 月 - 47 题
关于装饰器模式,下列说法不正确的是( )。
2026 年 5 月 - 44 题
Singleton Pattern(单例模式)属于( )。
2025 年 11 月 - 63 题
在软件系统的性能设计过程中,下列哪一组选项属于其考虑的内容()。
2025 年 11 月 - 60 题
有关活动图的说法,下面错误的是()。
2025 年 11 月 - 59 题
UML 中哪种图用于物理结构建模()。
2025 年 11 月 - 50 题
某模块使用生产线上传递的工作量清单,通过文件系统能计算出工作量排前三的工人名单和日均工作量。该模块属于()。
2025 年 11 月 - 44 题
在结构化系统分析中,判定树(Decision Tree)和判定表(Decision Table)常用于描述和分析复杂的条件与动作逻辑。它们通常用于分析数据流图(DFD)中的哪一部分()。
2025 年 11 月 - 43 题
在软件设计中,为了在不修改原有类的情况下,动态地为对象添加新的职责或功能,应采用哪种设计模式?()
2025 年 11 月 - 24 题
一个模块直接调用下层模块的数量用()表示。
2025 年 5 月 - 32 题
在面向对象方法中,一个类完全继承了一个父类的所有功能,同时从其他类继承了额外的能力,这种继承方式称()。
2025 年 5 月 - 9 题
在数据流图(DFD)中,哪一个图形元素表示对数据进行加工和转换的功能,并且不能简单地将输入数据直接输出,必须对数据进行某种形式的()。
2025 年 5 月 - 8 题
在模块化程序设计中,内聚表示一个模块内部各成分之间的相关程度。内聚类型通常按强弱可以排序,以下内聚类型按从高到低的顺序排列正确的是()。
2024 年 11 月 - 40 题
内聚类型是衡量模块内部各元素之间联系紧密程度的概念。其中,要求处理元素相关且按特定次序执行,属于()。
2024 年 11 月 - 29 题
在关于设计模式的描述中,以下哪句话是正确的()。
2024 年 11 月 - 28 题
软件设计模式分为创建型、结构型和行为型三大类型。创建型模式专注对象创建过程,分离创建与使用;结构型模式关注类或对象组合成更大结构;行为型模式着重处理对象间交互和职责分配,三大类型各有多种具体模式以满足不同设计需求。下列关于设计模式哪个说法是正确的()。
2024 年 5 月 - 40 题
以下不属于创建型模式的是()。
2021 年 11 月 - 39 题
为实现对象重用,COM 支持两种形式的对象组装。在()重用形式下,一个外部对象拥有指向一个内部对象的唯一引用,外部对象只是把请求转发给内部对象:在()重用形式下,直接把内部对象的接口引用传给外部对象的客户,而不再转发请求。
问题(1)
问题(2)
2021 年 11 月 - 38 题
软件设计过程中,可以用耦合和内聚两个定性标准来衡量模块的独立程度,耦合衡量不同模块彼此间互相依赖的紧密程度,应采用以下设计原则(),内聚衡量一个模块内部各个元素彼此结合的紧密程度,以下属于高内聚的是()
问题(1)
问题(2)
2021 年 11 月 - 24 题
结构化设计是一种面向数据流的设计方法,以下不属于结构化设计工具的是()
2020 年 11 月 - 28 题
创建型模式支持对象的创建,该模式允许在系统中创建对象,而不需要在代码中标识特定类的类型,这样用户就不需要编写大量、复杂的代码来初始化对象。在不指定具体类的情况下,()模式为创建一系列相关或相互依赖的对象提供了一个接口。()模式将复杂对象的构建与其表示相分离,这样相同的构造过程可以创建不同的对象。()模式允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象。
问题(1)
问题(2)
问题(3)
2020 年 11 月 - 27 题
经典的设计模式共有23个,这些模式可以按两个准则来分类: 一是按设计模式的目的划分,可分为 ()型、 结构型和行为型三种模式;二是按设计模式的范围划分,可以把设计模式分为类设计模式和()设计模式。
问题(1)
问题(2)
2020 年 11 月 - 19 题
软件设计包括四个既独立又相互联系的活动:() 、 软件结构设计、人机界面设计和()。
问题(1)
问题(2)
2019 年 11 月 - 32 题
设计模式按照目的可以划分为三类,其中,()模式是对对象实例化过程的抽象。例如()模式确保一个类只有一个实例,并提供了全局访问入口;()模式允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象;()模式将一个复杂对象的构建与其表示分离。
问题(1)
问题(2)
问题(3)
问题(4)
2019 年 11 月 - 23 题
关于模块化设计,()是错误的。
2019 年 11 月 - 22 题
软件结构化设计包括()等任务。
2019 年 11 月 - 21 题
软件概要设计将软件需求转化为软件设计的()和软件的()。
问题(1)
问题(2)
2018 年 11 月 - 36 题
设计模式描述了一个出现在特定设计语境中的设计再现问题,并为它的解决方案提供了一个经过充分验证的通用方案,不同的设计模式关注解决不同的问题。例如,抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象, 而无需指定它们具体的类,它是一种()模式;()模式将类的抽象部分和它的实现部分分离出来,使它们可以独立变化,它属于()模式;()模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。
问题(1)
问题(2)
问题(3)
问题(4)
2018 年 11 月 - 24 题
软件设计包括了四个既独立又相互联系的活动:高质量的()将改善程序结构和模块划分,降低过程复杂性;()的主要目标是开发一个模块化的程序结构,并表示出模块间的控制关系;()描述了软件与用户之间的交互关系。
问题(1)
问题(2)
问题(3)
2018 年 11 月 - 23 题
软件概要设计包括设计软件的结构、确定系统功能模块及其相互关系,主要采用()描述程序的结构。
2017 年 11 月 - 38 题
按照设计模式的目的进行划分,现有的设计模式可以分为三类。其中创建型模式通过采用抽象类所定义的接口,封装了系统中对象如何创建、组合等信息,其代表有()模式等;()模式主要用于如何组合已有的类和对象以获得更大的结构,其代表有 Adapter 模式等;()模式主要用于对象之间的职责及其提供服务的分配方式,其代表有()模式等。
问题(1)
问题(2)
问题(3)
问题(4)
2017 年 11 月 - 24 题
结构化程序设计采用自顶向下、逐步求精及模块化的程序设计方法,通过()三种基本的控制结构可以构造出任何单入口单出口的程序。
2016 年 11 月 - 39 题
设计模式基于面向对象技术,是人们在长期的开发实践中良好经验的结晶,提供了一个简单、统一的描述方法,使得人们可以复用这些软件设计办法、过程管理经验。按照设计模式的目的进行划分,现有的设计模式可以分为创建型、()和行为型三种类型。其中()属于创建型模式,()属于行为型模式。()模式可以将一个复杂的组件分成功能性抽象和内部实现两个独立的但又相关的继承层次结构,从而可以实现接口与实现分离。
问题(1)
问题(2)
问题(3)
问题(4)
2015 年 11 月 - 26 题
在面向对象设计的原则中、()原则是指抽象不应该依赖于细节,细节应该依赖于抽象,即应针对接口编程,而不是针对实现编程。
2015 年 11 月 - 24 题
某软件公司欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。在明确用户需求后,该公司的架构师决定采用 Bridge模式实现该软件,并设计 UML 类图如下图所示。图中与 Bridge 模式中的 "Abstraction" 角色相对应的类是(),与 "Implementor" 角色相对应的类是()。

系统分析与设计 PDF 第445页图片
问题(1)
问题(2)
2015 年 11 月 - 22 题
处理流程设计是系统设计的重要内容。以下关于处理流程设计工具的叙述中,不正确的是()。
2014 年 11 月 - 33 题
某公司欲开发一个用于分布式登录的服务端程序,使用面向连接的 TCP 协议并发地处理多客户端登录请求。用户要求该服务端程序运行在Linux、Solaris和Windows NT等多种操作系统平台之上,而不同的操作系统的相关 API 函数和数据都有所不同。针对这种情况,公司的架构师决定采用"包装器外观(Wrapper Facade)"架构模式解决操作系统的差异问题。具体来说,服务端程序应该在包装器外观的实例上调用需要的方法,然后将请求和请求的参数发送给(),调用成功后将结果返回。 使用该模式()。
问题(1)
问题(2)
2014 年 11 月 - 23 题
某广告公司的宣传产品有宣传册、文章、传单等多种形式,宣传产品的出版方式包括纸质方式、 CD、DVD、在线发布等。现要求为该广告公司设计一个管理这些宣传产品的应用,采用()设计模式较为合适,该模式()。
问题(1)
问题(2)
2014 年 11 月 - 22 题
一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。采用 ()模式,用一个特定对象来封装一系列的对象交互,从而使各对象不需要显式地相互引用,使其耦合松散,而且可以独立地改变它们之间的交互。
2013 年 11 月 - 24 题
某系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类 (Component),分别显示文本和图片内容,现需要构造带有滚动条或者带有黑色边框,或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加3个类。 那么采用设计模式()可实现该需求,其优点是()。
问题(1)
问题(2)
2013 年 11 月 - 22 题
在面向对象设计中,()可以实现界面控制、外部接口和环境隔离。()作为完成用例业务的责任承担者,协调、控制其他类共同完成用例规定的功能或行为。
问题(1)
问题(2)