结构化方法由结构化【分析】、结构化【设计】、结构化【程序设计】构成,它是一种面向【数据流】的开发方法。P315

6.1 系统分析与设计概述

6.1.1 系统分析概述

1.系统分析的目的和任务

2.系统分析的主要步骤

6.1.2 系统设计的基本原理

1.抽象

【抽象】是一种设计技术,重点说明一个实体的本质方面,而忽略或者掩盖不太重要或非本质
的方面。P317

【抽象】是一种重要的工具,用来将复杂的现象简化到可以分析、实验或者可以理解的程度。P317

2.模块化

【模块化】是指将一个待开发的软件分解成若干个小的简单部分——模块,每个模块可独立地开发、测试,最后组装成完整的程序。P317

3.信息隐蔽

【信息隐蔽】是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,在定义每一个模块时尽可能少地显露其内部的处理。P317

【信息隐蔽】原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。P317

4.模块独立

【模块独立】是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。P317

衡量模块独立程度的标准有两个:【耦合】性和【内聚】性。P317

1)耦合

软件设计师教程(第5版)第6章 结构化开发方法(更新中)_数据存储

2)内聚

软件设计师教程(第5版)第6章 结构化开发方法(更新中)_软件设计师_02

6.1.3 系统总体结构设计

【系统总体结构设计】是要根据系统分析的要求和组织的实际情况对新系统的总体结构形式和可利用的资源进行大致设计,这是一种宏观、总体上的设计和规划。P319

1.系统结构设计原则

2.子系统划分

1)子系统划分的原则
2)子系统结构设计

3.系统模块结构设计

1)模块的概念
1) 模块结构图

4.数据存储设计

6.1.4 系统文档

信息系统的【文档】是系统建设过程的“痕迹”,是系统维护人员的指南,是开发人员与用户交流的工具。P323

6.2 结构化分析方法

结构化分析(【SA】)、结构化设计(【SD】)和结构化程序设计(【SPD】)构成了完整的结构化方法。P325

6.2.1 结构化分析方法概述

【抽象】和【分】解是处理任何复杂问题的两个基本手段。P325

【抽象】是指忽略一个问题中与当前目标无关的那些方面,以便更充分地关注与当前目标有关的方面。P325

结构化方法的分析结果由以下几部分组成:一套分层的【数据流图】、一本【数据词典】、一组【小说明】(也称【加工逻辑说明】)、【补充材料】。P325

6.2.2 数据流图

【数据流】图也称【数据流程】图(【DFD】),它是一种便于用户理解、分析系统数据流程的图形工具。P325

1.数据流图的基本图形元素

数据流图中的基本图形元素包括【数据流】(Data Flow)、【加工】(Process)、【数据存储】(Data Store)和【外部实体】(External Agent)。P325

1) 数据流

【数据流】由一组固定成分的数据组成,表示数据的流向。P326

2) 加工

【加工】描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变成了输出数据流。P326

3) 数据存储

【数据存储】用来【存储数据】。P326

4) 外部实体(外部主体)

【外部实体】是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。P327

2.数据流图的扩充符号

1) 星号(*)
2) 加号(+)
3) 异或(田)

3.数据流图的层次结构

1) 层次结构
2) 图和加工的编号

4.分层数据流图的画法

1)画系统的输入和输出
2)画系统的内部

5.分层数据流图的审查

1) 分层数据流图的一致性和完整性
2) 构造分层DFD时需要注意的问题
3) 分解的程度

6.2.3 数据字典(DD)

【数据流图】描述了系统的分解,但没有对图中各成分进行说明。P335

【数据字典】就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。其中,对【加工】的描述称为“【小说明】”,也可以称为“【加工逻辑说明】”。P335

1.数据字典的内容

数据字典有以下4类条目:【数据流】、【数据项】、【数据存储】和【基本加工】。P335

【数据项】是组成数据流和数据存储的最小元素。P335

2.数据词典管理

【词典管理】主要是把词典条目按照某种格式组织后存储在词典中,并提供排序、查找和统计等功能。P336

3.加工逻辑的描述

常用的加工逻辑描述方法有【结构化语言】、【判定表】和【判定树】3种。P336

1)结构化语言
2)判定表

软件设计师教程(第5版)第6章 结构化开发方法(更新中)_数据存储_03

3)判定树

6.3 结构化设计方法

【结构化设计】(【SD】)方法是一种面向数据流的设计方法,它可以与【SA】方法衔接。P337

【结构化设计】方法的基本思想是将系统设计成由相对独立、功能单一的模块组成的结构。P337

6.3.1 结构化设计的步骤

1.建立初始结构图

功能模块的分解应满足【自顶向下】、【逐步求精】、【信息隐蔽】、【高内聚低耦合】等设计准则,模块的大小应适中。P337

2.对结构图的改进

3.书写设计文档

4.设计评审

6.3.2 数据流图到软件体系结构的映射

1.信息流的类型

DFD的信息流大体上可以分为两种类型:【变换】流和【事务】流。P338

2.变换分析

1)确定输入流和输出流,分离出变换中心
2) 第一级分解
3) 第二级分解
4) 事务分析
5) SD方法的设计步骤

6.4 WebApp分析与设计

6.4.1 WebApp的特性

绝大多数WebApp具备下列属性:【网络密集】性、【并发】性、无法预知的【负载量】、【性能】、【可用】性、【数据驱动】。P341

6.4.2 WebApp需求模型

1.内容模型

【内容】模型给出由WebApp提供的全部系列内容,包括文字、图形、图像、音频和视频。P341

2.交互模型

【交互】模型描述了用户与WebApp采用了哪种交互方式。P342

3.功能模型

【功能】模型定义了将用于WebApp内容并描述其他处理功能的操作,这些处理功能不依赖于内容却是最终用户所必需的。P343

4.导航模型

【导航】模型为WebApp定义所有导航策略。P343

5.配置模型

【配置】模型描述WebApp所在的环境和基础设施。P344

6.4.3 WebApp设计

好的WebApp应该具有的最相关的通用特性是【可用】性、【功能】性、【可靠】性、【效率】、可【维护】性、【安全】性、可【扩展】性、以及【及时】性。P344

WebApp的设计目标是【简单】性、【一致】性、【符合】性、【健壮】性、【导航】性、【视觉吸引力】与【兼容】性。P344

WebApp设计根据其类型不同,适合采用混合的各种技术,进行一系列设计动作,包括:【架构】设计、【构件】设计、【内容】设计、【导航】设计、【美学】设计、【界面】设计。P344

1.架构设计

2.构件设计

3.内容设计

4.导航设计

6.5 用户界面设计

【用户界面】(UI)设计在人与计算机之间搭建了一个有效的交流媒介。P346

6.5.1 用户界面设计的黄金原则

1.用户操纵控制

1) 以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式
2) 提供灵活的交互
3) 允许中断和撤销用户交互
4) 当技能级别增长时可以使交互流线化并允许定制交互
5) 使用户与内部技术细节隔离开来
6) 设计应允许用户与出现在屏幕上的对象直接交互

2.减轻用户的记忆负担

1) 减少对短期记忆的要求
2) 建立有意义的默认
3) 定义直观的快捷方法
4) 界面的视觉布局应该基于真实世界的象征
5) 以不断进展的方式揭示信息

3.保持界面一致

1) 允许用户将当前任务放入有意义的环境中
2) 在应用系统家族内保持一致性
3) 如果过去的交互模型已经建立起了用户期望,除非有不得已的理由,否则不要改变它

6.5.2 用户界面的分析与设计

1.用户界面分析和设计模型

2.用户界面分析和设计的过程

用户界面的分析与设计过程是迭代的,包括4个不同的框架活动:界面分析及【建模】、界面【设计】、界面【构造】和界面【确认】。P349

6.5.3 用户界面设计问题

在进行用户界面设计时,几乎总会遇到以下4个问题:【系统响应时间】、【帮助设施】、【错误信息处理】、【菜单和命令标记】。P349

1.系统响应时间

2.帮助设施

3.错误信息处理

4.菜单和命令标记