《系统分析与设计概述》
- 当前系统的物理模型 ——> 当前系统的逻辑模型 ——> 目标系统的逻辑模型 ——> 目标系统的物理模型
- 系统开发的目的:当前系统的物理模型 ——> 目标系统的物理模型
- 系统设计基本原理
- 抽象、模块化(逐步分解)、信息隐蔽(暴露接口 / 隐蔽内部细节)、模块独立
- 衡量模块独立程度的标准:耦合性 和 内聚性
- 良好的设计模式:高内聚,低耦合
- (内聚从低到高)偶然 ——> 逻辑 ——> 时间 ——> 过程 ——> 通信 ——> 顺序 ——> 功能
- 过程内聚(顺序);顺序内聚(顺序,输入为输出)
- (耦合从低到高)无直接 ——> 数据(数据值) ——> 标记(数据结构) ——> 控制——> 外部(软件外部环境) ——> 公共(全局变量) ——> 内容
- 系统总体结构设计
- 系统设计分为:概要设计(系统总体结构设计) 和 详细设计
- 确定模块结构——> 模块结构图
- 子系统结构设计
- 系统模块结构设计
- 模块结构图主要关心的是模块的外部属性(输入输出、处理功能)
- 详细设计:考虑每个子系统采用何种数据结构和核心算法
《结构化开发方法》
- 面向数据流;以数据流为中心,自顶向下、逐步分解
- 结构化分析(SA) ——> 结构化设计(SD) ——> 结构化程序设计(SPD)
- 产出物:三大模型(功能模型 / 数据流图,行为模型 / 状态转换图,数据模型 / E-R图) + 数据词典
- 数据流图DFD
- 顶层数据流(上下文数据流) ——> 顶层图
- 描述了系统的分解,但没有对图中各成分进行说明
- 反映了整个系统跟外部实体的交互,没有反映内部实体细节
- 数据流的流向必须经过加工(数据流的其中一端必须是加工)
- 加工有输入无输出 ——> 黑洞
- 加工有输出无输入 ——> 奇迹
- 加工输入不足以产生输出 ——> 灰洞
- 分层数据流图
- 整个系统的内部细节分层图
- 分层的数据流图的数据流一定是与顶层图是平衡对等的 ——> 输入输出相等
- 数据字典DD
- 为数据流图中的每个数据流、文件、加工以及组成数据流或文件的数据线做出说明
- (数据流图基本元素)数据流、数据存储、基本加工、外部实体
- (成分)数据流、数据项(类)、数据存储、基本加工
- 常见的加工逻辑描述方法:结构化语言、判定表、判定树
《结构化设计方法》
- 面向数据流
- 基本思想:将系统设计成由相对独立、功能单一的模块组成的结构
- 由结构图来描述软件系统的体系结构
- 模块结构图:结构化设计的工具
- (组成)模块、调用、数据、控制、转换
- 结构化设计主要包括:
a. 体系结构(架构)设计
b. 数据设计(与数据库、E-R图相关)
c. 接口设计(与数据流图相关)
d. 过程设计(详细设计)
《WebApp分析与设计》
- 采用敏捷开发过程模型进行开发
- (主要功能)使用超媒体向最终用户提供文本、图片、音频及视频内容
- 特性
- 网络密集性
- 并发性
- 无法预知的负载量
- 性能
- 可用性
- 数据驱动
- 五种需求模型
- 内容模型
- 交互模型
- 功能模型
- 导航模型
- 配置模型(与物理相关 ——> 运行在哪个平台)
- WebApp设计
- 架构设计(界面)
- 构件设计(功能)
- 内容设计(线性结构、网格结构、层次结构、网络结构)
- 导航设计
- MVC(模型 - 视图 - 控制器)结构是WebApp基础结构模型之一