易君召
发布于 2026-08-11 / 作者:易君召 / 3 阅读
0

《系统分析师教程(第 2 版)》第 13 章 系统设计 全解析

本章属于教材第二篇「关键技术」模块,是衔接系统分析(需求定义)与系统实现(编码落地)的核心枢纽章节,也是软考高级系统分析师考试的高频考点章节。第 2 版教材相比旧版新增了工作流管理系统、系统结构图细节、对象持久化、输入输出原型设计、人机交互设计细节等内容,强化了设计方法的落地性。

一、章节主要内容

本章共分为 7 个小节,覆盖从设计理论到具体设计方法、从结构化到面向对象、从功能到交互的完整设计体系。

13.1 系统设计概述

系统设计的核心目标是将系统分析阶段的逻辑模型转化为可实现的技术方案,绘制系统技术蓝图,权衡技术方案利弊,指导后续实施工作。

(1)设计的两大层次

  • 概要设计(总体结构设计):将系统功能需求分配到软件模块,确定模块功能与调用关系,输出系统模块结构图(SC 图),完成系统高层架构切分。

  • 详细设计:对概要设计拆分出的具体任务做技术细化,包含 7 类细分设计:

    • 网络设计:网络拓扑选型、设备部署、权限与管理方案

    • 代码设计:编码分类(线分类法 / 面分类法)、编码规范与检错设计

    • 输入 / 输出设计:数据输入输出的内容、格式、校验与介质选择

    • 处理流程设计:模块内部执行逻辑、控制流与加工细节

    • 数据存储设计:存储介质选型、数据库逻辑 / 物理设计、数据容量估算

    • 用户界面设计:交互逻辑与界面布局设计

    • 安全性与可靠性设计:运行环境安全、数据处理控制、异常容错设计

(2)核心设计方法

  • 结构化设计方法:面向数据流,自顶向下逐步分解

  • 面向对象设计方法:以类和对象为核心,强调封装、复用与扩展

(3)设计基本原理

抽象化、自顶向下逐步求精、信息隐蔽、模块独立(高内聚、低耦合)。

(4)设计基本原则

模块大小适中、减少调用深度、多扇入少扇出、单入口单出口、模块作用域在模块之内、功能可预测。

13.2 处理流程设计

处理流程设计聚焦业务逻辑的落地表达,明确模块内部执行过程与业务流转规则,是详细设计的核心组成部分。

(1)流程基础概念

  • 业务流程 6 要素:输入资源、活动、活动的相互作用(结构)、输出结果、用户、价值。

  • 流程分为「流程定义」(形式化的流程规则)与「流程实例」(一次具体的流程执行)。

  • 工作流:一系列自动衔接的业务活动,包含活动顺序、启动 / 终止条件、活动描述,可实现业务过程的自动化流转。

(2)工作流管理系统(WFMS)

第 2 版教材新增重点内容,核心功能包括 3 项:

  1. 工作流建模:定义流程活动与流转规则,生成可被计算机解析的流程模型

  2. 工作流执行:依据模型创建并运行流程实例,调度工作项

  3. 业务过程管理与分析:监控流程进度、工作分配,进行流程统计与优化

WFMS 组成包含:流程定义工具、工作流执行服务、工作流引擎、客户端应用、调用应用、管理监控工具。

(3)流程设计工具

分为三大类,是选择题高频考点:

  • 图形工具:程序流程图(PFD)、IPO 图、N-S 盒图、问题分析图(PAD)、判定树

  • 表格工具:判定表,适合多条件组合的复杂逻辑

  • 语言工具:过程设计语言(PDL / 伪代码),接近编程语言,便于转化为代码

(4)业务流程重组(BPR)

对企业业务流程进行根本性再思考、彻底性再设计,以实现成本、质量、效率的大幅提升。

  • 流程分类:管理流程、操作流程、支持流程

  • 设计原则:以流程为中心、团队管理、以顾客为导向

  • 实施方法:现有流程基础上重构、从零搭建理想流程

  • 规划步骤:战略规划→流程规划→数据规划→功能规划→实施规划

13.3 结构化设计

结构化设计(SD)是面向数据流的经典设计方法,以数据流图为基础,自顶向下拆解为独立功能模块,是本章核心考点。

(1)模块结构与模块独立性

模块是结构化设计的基本单位,模块独立性是设计质量的核心标准,通过内聚(模块内部关联紧密程度)和耦合(模块之间依赖程度)两个维度衡量,核心原则是「高内聚、低耦合」。

  • 内聚类型(从低到高):偶然内聚→逻辑内聚→时间内聚→过程内聚→通信内聚→顺序内聚→功能内聚

  • 耦合类型(从低到高):无直接耦合→数据耦合→标记耦合→控制耦合→外部耦合→公共耦合→内容耦合

(2)模块类型

按功能分为原子模块、传入模块、传出模块、变换模块、协调模块。

(3)系统结构图(SC 图)

描述模块调用关系与数据传递的图形化工具,分为三类典型结构:

  • 变换型 SC:对应「输入→处理→输出」的线性数据流结构

  • 事务型 SC:以调度中心为核心,分发给不同事务处理模块

  • 混合型 SC:变换型与事务型结合的复杂结构

13.4 面向对象设计

面向对象设计(OOD)以类和对象为核心,将现实世界业务映射为软件对象,强调可复用性与可扩展性。

(1)三类核心类设计

  • 实体类:对应业务实体,保存业务数据与核心业务逻辑(如用户、订单)

  • 控制类:负责流程控制与业务协调,封装用例的执行逻辑

  • 边界类:负责系统与外部的交互,如用户界面、外部系统接口

(2)对象持久化与数据库

将内存中对象的状态保存到数据库等持久化介质,实现数据的长期存储;核心是完成对象模型与关系数据库的映射,是第 2 版教材新增细化内容。

(3)面向对象设计 6 大原则

  • 开闭原则:对扩展开放,对修改关闭

  • 里氏替换原则:子类可以无缝替换父类,不破坏原有业务逻辑

  • 依赖倒置原则:依赖抽象接口,不依赖具体实现

  • 组合 / 聚合复用原则:优先使用对象组合复用功能,而非类继承

  • 接口隔离原则:接口要细粒度、专用化,不强迫客户端依赖无用方法

  • 最少知识原则(迪米特法则):对象只与直接关联的对象交互,减少依赖

13.5 设计模式

设计模式是经过实践验证的、可复用的软件设计经验总结,用于解决特定场景下的通用设计问题。

(1)设计模式核心元素

模式名称、问题、解决方案、效果。

(2)三大分类

  • 创建型模式(5 种):聚焦对象创建过程,解耦对象创建与使用

    典型:单例模式、工厂方法、抽象工厂、原型模式、建造者模式

  • 结构型模式(7 种):聚焦类 / 对象的组合,构建更灵活的大型结构

    典型:适配器、桥接、组合、装饰、外观、享元、代理

  • 行为型模式(11 种):聚焦对象间的交互与职责分配,优化协作逻辑

    典型:观察者、策略、状态、命令、职责链、模板方法、中介者等

13.6 输入 / 输出原型设计

第 2 版教材新增章节,聚焦数据交互的设计细节。

(1)输入设计

核心目标是保证输入数据的完整性、正确性、一致性,包含输入内容、输入方式、输入格式、检验方式设计。

设计原则:输入数据最少、操作简单、尽早验证、减少数据格式转换。

(2)输出设计

包含输出内容、输出设备与介质、输出格式设计。

常用输出方式:报表输出(面向基层业务人员)、图形输出(面向管理层,展示趋势与占比)。

13.7 人机交互设计

第 2 版教材强化的内容,聚焦用户体验与交互质量。

  • 设计目标:高效、易用、低学习成本、用户满意

  • 用户体验五层模型:战略层→范围层→结构层→框架层→表现层

  • 界面设计三大黄金原则:置于用户控制之下、减轻用户记忆负担、保持界面一致性

二、主要考点与考试分析

本章在上午综合知识题中分值占比约 6-8 分,下午案例分析题常结合具体系统设计场景出题,是案例题的核心命题章节之一。

1. 高频选择题考点

考点模块

考察频率

考察形式

核心命题点

系统设计基础

★★★

概念辨析

概要设计与详细设计的任务区分、设计原理与原则正误判断

代码设计

★★

概念区分

线分类法与面分类法的特点与适用场景

处理流程工具

★★★

工具特点匹配

不同流程工具的优缺点、适用场景,N-S 图 / PAD / 判定表的特征

内聚与耦合

★★★★★

场景判断

给出模块关系描述,判断内聚 / 耦合类型,排序高低程度

系统结构图

★★

类型区分

变换型与事务型 SC 的结构特征与适用场景

面向对象设计原则

★★★★

场景判断

给出设计描述,判断符合 / 违反的设计原则

设计模式分类

★★★★

归类判断

判断某模式属于创建型 / 结构型 / 行为型,三类模式的核心作用

输入输出与人机交互

★★

原则记忆

输入设计原则、界面设计三大黄金原则

工作流与 BPR

★★

概念理解

WFMS 的功能、BPR 的核心原则与实施步骤

2. 案例题考点方向

  1. 结构化设计应用题:给出数据流图,要求绘制系统结构图,或分析现有模块划分的内聚耦合问题并给出优化方案。

  2. 面向对象设计题:给出业务场景,要求识别实体类 / 控制类 / 边界类,或分析设计方案违反的面向对象原则并给出改进建议。

  3. 设计模式选型题:给出业务场景(如需要灵活扩展算法、需要适配多个外部接口),要求选择合适的设计模式并说明理由。

  4. 流程优化题:结合 BPR 思想,分析现有业务流程的问题,给出流程重构方案。

三、重难点解析

1. 核心重点:模块独立性(内聚与耦合)

这是本章最高频考点,也是软件设计的核心思想,必须精准区分每一种类型。

易混内聚类型辨析

  • 通信内聚 vs 顺序内聚

    通信内聚:模块内所有功能都使用相同的输入数据或产生相同的输出数据,无严格先后顺序。

    顺序内聚:模块内功能有严格先后顺序,前一个功能的输出是后一个功能的输入,数据流顺序执行。

  • 逻辑内聚 vs 功能内聚

    逻辑内聚:模块内是功能相似的一组操作,通过参数决定执行哪一个,本质是多个功能打包。

    功能内聚:模块内所有元素共同完成一个单一完整的功能,缺一不可,是最高质量内聚。

易混耦合类型辨析

  • 数据耦合 vs 标记耦合

    数据耦合:模块间传递简单数据值(如整数、字符串),是最理想的耦合类型。

    标记耦合:模块间传递数据结构(如对象、结构体),接收方只使用部分字段,依赖数据结构定义。

  • 控制耦合 vs 内容耦合

    控制耦合:传递控制变量,由一个模块控制另一个模块的执行逻辑,会增加模块依赖。

    内容耦合:一个模块直接访问、修改另一个模块的内部数据或代码,是最差的耦合类型,应完全避免。

2. 难点:面向对象设计原则的场景应用

6 大原则中,最易混淆且常考的是开闭原则、里氏替换原则与依赖倒置原则,三者是递进关系:

  • 依赖倒置是实现开闭的手段:依赖抽象接口,才能方便扩展新实现而不修改原有代码。

  • 里氏替换是依赖倒置的前提:子类能替换父类,才能基于父类抽象进行依赖注入。

案例题中常见的违反原则场景:

  • 用大量 if-else 分支处理不同业务类型 → 违反开闭原则,应改用多态扩展。

  • 子类重写父类方法后改变了原有业务语义 → 违反里氏替换原则。

  • 业务类直接依赖具体的数据库实现类 → 违反依赖倒置原则,应依赖抽象数据访问接口。

3. 设计模式的分类逻辑与区分

无需死记硬背所有模式,掌握分类核心逻辑即可应对大部分考题:

  • 创建型:回答「对象怎么创建」,目标是把对象创建的逻辑封装起来,使用者不用关心创建细节。

  • 结构型:回答「结构怎么组合」,目标是通过类 / 对象的组合,灵活扩展功能而不改动原有结构。

  • 行为型:回答「职责怎么分配」,目标是优化对象之间的通信方式,让职责分配更清晰、扩展更灵活。

易混模式区分:

  • 适配器模式 vs 桥接模式:适配器是事后补救,解决已有接口不兼容问题;桥接是事前设计,将抽象与实现分离,支持多维度独立扩展。

  • 策略模式 vs 状态模式:策略模式封装不同的算法,由外部选择使用哪种;状态模式封装对象不同状态下的行为,状态切换由内部自动完成。

4. 新版新增内容的备考提示

第 2 版新增的工作流管理系统、人机交互五层模型、对象持久化属于考试的「新内容考点」,命题概率较高,建议重点记忆核心概念、组成与分类,不需要深入技术实现细节,以选择题备考为主。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/system-analyst-tutorial-2nd-edition-chapter-13-system-design-guide

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/