软件设计师学习-第六章 结构化开发方法

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 设计问题:系统响应、帮助设施、错误信息处理、菜单和命令标记