Skip to content
难度基础(★)
建议时长45分钟

7.5.1 系统设计知识点概述

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

软件设计分为概要设计和详细设计

系统设计在结构化开发中体现为自顶向下、逐步求精。先做概要设计,得到系统整体框架;再做详细设计,进入模块内部。

阶段做什么不做什么
概要设计子系统/模块划分、功能分配、模块关系和接口关系、全局数据设计不展开模块内部具体算法
详细设计模块内部算法、数据结构、处理路径、内部接口不重新决定系统整体结构

课堂提醒:概要设计阶段看不到模块内部,最多看到模块之间的连通关系和接口连接。这就是信息隐藏思想的体现。

信息隐藏为什么重要

信息隐藏不是把信息藏起来不给人看,而是让模块只暴露必要接口,把内部实现封装起来。

好处说明
降低影响范围模块内部实现变化不应影响其他模块
便于并行开发不同小组只需按接口协作
便于测试维护问题定位在模块边界内
支持复用模块对外接口稳定时更容易复用

概要设计像“分房间”

课堂用了房子类比:概要设计像确定几室几厅、主卧、次卧、厨房、客厅等大致划分;详细设计像每个房间内部的装修细节。这个类比要记住,因为它能帮你快速区分题目中的阶段。

模块设计原则预告

原则含义
模块大小适中太大难维护,太小管理和调用成本高
扇入扇出适中不追求极端数量,通常希望多扇入、少扇出但仍要适中
调用深度适中层次过深会增加理解和调试成本
单入口单出口控制结构清晰,减少非正常跳转
功能可预测模块职责应清楚,别人能理解它做什么
作用域小于控制域判定影响范围尽量控制在本模块或其控制范围内

例题

单选
将整个系统划分为多个子系统和模块,并分配任务,属于:
单选
信息隐藏原则强调:

自查要点

  1. 为什么概要设计比详细设计更抽象?
  2. 信息隐藏和接口设计是什么关系?
  3. 模块大小为什么要适中?
  4. 扇入、扇出、调用深度分别指什么?
  5. “功能可预测”对维护有什么帮助?