Appearance
考点清单
- [x] 逆向工程(4 个级别/重构/设计恢复/再工程/正向工程)
- [x] 处理流程设计(PFD/IPO/N-S 图/PAD/BPR/BPM)
- [x] 系统设计(概要设计/详细设计/基本原理/设计原则)
- [x] 模块化设计(内聚 7 级/耦合 7 级)
- [x] 人机界面设计(三大黄金原则)
- [x] 结构化设计工具
- [x] 系统运行与维护(遗留系统/系统转换/维护类型)
- [x] 软件文档分类
笔记
一、逆向工程 ★
逆向工程:分析已有程序,在比源代码更高抽象层次上建立程序表示的过程。目的是理解程序、恢复设计、软件复用、改进优化。
四个级别(抽象级别从低→高,完备性从高→低):
| 级别 | 内容 | 备注 |
|---|---|---|
| 实现级 | 抽象语法树、符号表、过程设计表示 | 抽象最低,完备性最高 |
| 结构级 | 调用图、结构图、程序和数据结构 | 反映程序分量间相互依赖关系 |
| 功能级 | 数据和控制流模型 | 反映程序段功能及关系 |
| 领域级 | E-R 模型 | 抽象最高,完备性最低 |
相关概念辨析:
| 概念 | 说明 |
|---|---|
| 重构 | 在同一抽象级别上转换系统描述形式,提高可读性和可维护性 |
| 设计恢复 | 借助工具从已有程序中抽象出数据设计、结构设计和过程设计信息 |
| 再工程(Re-engineering) | 逆向工程基础上修改或重构已有系统,产生系统新版本。包含:逆向工程 → 考虑新需求 → 正向工程 |
| 正向工程 | 从现有系统恢复设计信息,改变或重构以改善整体质量 |
关键辨析:逆向工程 = 低级别描述→高级别抽象;再工程 = 逆向 + 修改重构 → 产生新版本。
二、处理流程设计
流程表示工具:
| 工具 | 特点 |
|---|---|
| 程序流程图(PFD) | 图框表示操作,独立于语言,由顺序/选择/循环组成 |
| IPO 图 | 描述每个模块的输入、输出和数据加工 |
| N-S 图(盒图) | 容易表示嵌套和层次关系,结构化强,不适合复杂程序 |
| 问题分析图(PAD) | 支持结构化程序设计,引导使用结构化方法,逻辑清晰 |
BPR(业务流程重组)vs BPM(业务流程管理):
| 对比 | BPR | BPM |
|---|---|---|
| 核心 | 对所有流程进行再造 | 不要求对所有流程再造,根据现有流程规范化设计 |
| 层面 | 彻底重构 | 三个层面:规范流程、优化流程、再造流程 |
三、系统设计 ★
系统设计目的:为系统制定蓝图,勾画新系统的详细设计方案。
主要内容:
- 概要设计(系统总体结构设计):功能需求分配给模块,确定模块功能和调用关系 → 模块结构图(系统结构图)
- 详细设计:模块内算法设计、数据结构设计、数据库物理设计、代码/输入输出/界面设计、编写详细设计说明书、评审
基本原理:
| 原理 | 说明 |
|---|---|
| 抽象化 | 忽略细节,关注本质 |
| 自顶向下,逐步求精 | 从高层到低层逐步细化 |
| 信息隐蔽 | 模块内部信息对外不可见 |
| 模块独立 | 高内聚、低耦合 |
设计原则: 模块大小适中、减少调用深度、多扇入少扇出、单入口单出口、模块作用域在模块内、功能可预测。
内聚性(从低→高)
| 级别 | 说明 |
|---|---|
| 偶然内聚 | 模块内各成分无实质关系 |
| 逻辑内聚 | 逻辑上相似但功能不同 |
| 时间内聚 | 同一时间执行(如初始化) |
| 过程内聚 | 按特定次序执行 |
| 通信内聚 | 操作同一数据 |
| 顺序内聚 | 一个成分的输出是另一个的输入 |
| 功能内聚 | 所有成分共同完成单一功能,最强 |
耦合性(从低→高)
| 级别 | 说明 |
|---|---|
| 无直接耦合 | 模块间无直接关系,最弱 |
| 数据耦合 | 通过简单数据参数交换 |
| 标记耦合 | 通过数据结构传递 |
| 控制耦合 | 传递控制信息影响执行路径 |
| 外部耦合 | 与外部环境绑定 |
| 公共耦合 | 共享全局数据 |
| 内容耦合 | 直接访问另一模块内部数据,最强 |
四、人机界面设计
三大黄金原则:
- 置用户于控制之下
- 减少用户的记忆负担
- 保持界面的一致性
五、结构化设计工具
| 工具 | 适用范围 |
|---|---|
| 盒图、HIPO 图、程序流程图 | 结构化设计 |
| 顺序图(Sequence Diagram) | 面向对象设计(UML),不属于结构化设计工具 |
六、系统运行与维护
遗留系统处置策略
遗留系统:不能进行修改和演化以满足新业务需求的信息系统。特点:性能落后、技术过时、无文档、难维护。
| 策略 | 条件 |
|---|---|
| 淘汰 | 低业务价值 + 低系统质量 |
| 继承 | 高业务价值 + 低系统质量 |
| 改造 | 高业务价值 + 高系统质量 |
| 集成 | 低业务价值 + 高系统质量 |
系统维护
软件系统文档分类:
- 用户文档:描述系统功能和使用方法,不涉及实现细节
- 系统文档:描述系统设计、实现和测试等详细内容
七、软件设计活动
| 活动 | 内容 |
|---|---|
| 数据设计 | 定义数据结构和数据库模式 |
| 架构设计 | 确定系统高层结构和组件 |
| 人机界面设计 | 设计用户界面和交互方式 |
| 过程设计 | 定义业务逻辑和工作流程 |