wiki
本章为重点考核内容,需要掌握结构化分析方法、结构化设计方法,上午的客观题约占 2 分,下午的案例题至少一题
1. 系统分析与设计概述
1. 目的和任务
系统分析报告(系统方案说明书)。
2. 主要步骤
- 对当前系统进行详细的调查,收集数据
- 建立当前系统的逻辑模型
- 对现状进行分析,提出改进意见和新系统应达到的目标
- 建立新系统的逻辑模型
- 编写系统方案说明书
3. 基本原理
抽象、模块化、信息隐蔽、模块独立(低耦合、高内聚)
4. 系统结构设计原则
分解-协调、自顶向下、信息隐蔽和抽象、一致性原则、明确性原则、模块间松耦合、模块内高内聚、模块的扇入系数和扇出系数要合理、模块规模适当。
5. 子系统划分原则
子系统相对独立、子系统间的依赖小、数据冗余小、考虑扩展性、便于系统分阶段实现、考虑到各资源的利用情况。
6. 子系统结构设计
各个子系统划分成多个模块、子系统和模块之前的数据及调用关系、评价并改进模块结构的质量、从数据流图导出模块结构图。
7. 系统模块结构设计
- 模块四要素:输入输出、处理功能、内部数据、程序代码。
- 模块结构图
8. 数据存储设计
- 数据资源分布
- 数据安全保密:8 个等级(0~7 级),4 种方式(只读、只写、删除、修改)
2. 机构化分析方法
1. 结构化分析(SA)概述
抽象(自底向上)、分解(自顶向下)。
2. 数据流图(DFD)
1. 基本成分
- 加工:又称数据处理,表示输入数据在此变换后输出,以数据结构或数据内容作为加工对象
- 用圆、椭圆、圆角矩形表示
- 每个加工都有一个名字和编号,名字通常是动词短语,编号反映加工位于的层次或哪个图中
- 一个加工必须至少一个输入和一个输出
- 数据流:由一组固定的数据项组成,箭头方向表示数据的流向,作为数据在系统内的传输通道
- 用箭头表示
- 名称反映数据流含义,从存储流入和流出的可以无命名,不能同名
- 一个加工有多个数据流,其之间必有联系
*
表示相邻数据流同时出现,与关系+
表示相邻数据流取一条或者同时出现,或关系⊕
表示相邻数据流只能去一条,互斥关系
- 数据存储:保存数据,可以是数据库、文件系统等
- 用双横线表示
- 都有一个名字
- 流入可表示写,流出表示读,双向可表示修改
- 外部实体:指存在于软件之外的人员或组织,指出系统数据的发源地和产生数据的归宿地
- 用矩形表示
- 源宿可以用相同符号表示,流出表示源,流入表示宿,都有表示既源又宿
2. 分层数据流图
根据层次关系分为顶层、中间、底层数据流图。除顶层外,其余分层图从 0 开始编号。对于某一层来说,上层和下层称为父图和子图。
- 顶层图只有一张,仅包含一个加工
- 顶层图分解后的图称为 0 层图,也只有一张
- 子图号就是父图被分解的加工号
3. DFD 审查
DFD 的一致性和完整性,反应了图本身的正确性。
- 一致性:
- 父图与子图平衡:子图的输入输出数据流必须与父图对应加工的一致
- 数据守恒:加工的输出仅由它的输入决定
- 局部数据存储:一个存储必须有输入和输出,除非其供其他系统使用或其由其他系统维护
- 输出不能与输入同名
- 完整性:
- 每个加工必须有一个输入和一个输出
- 在整个分层 DFD 中,每个存储必须至少一个读和一个写
- 分层 DFD 中,数据流和文件必须命名(除存储的流入流出),且与数据字典一致
- 每个加工和数据流名称必须体现其全部内容
4. 数据字典(DD)
为每个数据流图中的数据量、加工、文件等做出说明。包含 4 个条目:数据流、数据项、数据存储、基本加工。
3. 机构化设计方法
1. 结构化设计
结构化设计(SD)是一种面向数据流的设计方法,与 SA 衔接,基本思想是将系统设计成相对独立、功能单一的模块组成的结构。
2. 结构化设计步骤
建立初始结构图、对结构图进行改进、书写设计文档、设计评审。
3. 数据流图到软件体系结构的映射
- 信息流的类型:交换流(主加工)、事物流。
- 变换分析
4. WebApp 分析与设计
1. WebApp 的特性
网络密集型、并发性、负载量无法预知、性能、可用性、数据驱动。
2. WebApp 的需求模型
内容模型、交互模型、功能模型、导航模型、配置模型。
3. WebApp 的设计
架构设计、构件设计、内容设计、导航设计
5. 用户界面设计
1. Theo Mandel 黄金原则
- 用户操纵控制:不强迫、交互灵活、中断和撤销、定制、内部隔离、直接交互
- 减少用户的记忆负担
- 保持界面一致
2. UI 分析与设计
- UI 分析和设计模型:设计模型、用户模型、系统感觉、系统映像
- UI 分析和设计过程:界面分析及建模、界面设计、界面构造、界面确认
- UI 设计问题:系统响应、帮助设施、错误信息处理、菜单和命令标记