系统设计规律:
(1)组件的独立性。审视自己设计的系统,是否做到了高内聚、低耦合?
(2)例外的识别和处理。谁能保证系统使用者都精确按照使用说明书使用?
(3)防错和容错。当网络中断、数据库崩溃这样的灾难性事件发生时,系统也跟着崩溃吗?
设计任务与活动
软件设计的两个阶段从工程管理角度:
(1)概要设计:也称为高层设计,将软件需求转化为数据结构和软件的系统结构。
(2)详细设计:也称为低层设计,将对结构表示进行细化,得到详细的数据结构与算法。
主流的设计方法还包括 Jackson 方法和 Parnas 方法。结构化方法侧重于“模块相对独立且功能单一,使模块间联系弱、模块内联系强”;而 Jackson 方法则是从数据结构导出模块结构;
Parnas 方法的主要思想则是将可能引起变化的因素隐藏在有关模块内部,使这些因素变化时的影响范围受到限制,它只提供了重要的设计准则,但没有规定出具体的工作步骤。
结构化分析与设计
结构化分析与设计方法是一种面向数据流的需求分析和设计方法,它适用于分析和设计大型数据处理系统。
结构化分析方法的基本思想是自顶向下逐层分解。
结构化分析与面向对象分析方法之间的最大差别是:结构化分析方法把系统看作一个过程的集合体,包括人完成的和电脑完成的;而面向对象方法则把系统看成一个相互影响的对象集。结构化分析方法的特点是利用数据流图来帮助人们理解问题,对问题进行分析。
结构化分析一般包括以下工具:数据流图(Data Flow Diagram, DFD)、数据字典(Data Dictionary, DD)、结构化语言、判定表、判定树。
数据流图(DFD)
即输入、输出、处理(过程)、数据存储。
DFD 中包括以下几个基本元素。
过程:也称为加工,一步步地执行指令,完成输入到输出的转换。
外部实体:也称为源/宿,系统之外的数据源或目的。
数据存储:也称为文件,存放数据的地方,一般是以文件、数据库等形式出现。
数据流:从一处到另一处的数据流向,如从输入或输出到一个过程的数据流。
实时连接:当过程执行时,外部实体与过程之间的来回通信。
(1)数据流图的层次。
(2) Context 图。 Context 图,也就是系统上下文范围关系图。这是描述系统最高层结构的 DFD 图。它的特点是,将整个待开发的系统表示为一个过程,将所有的外部实体和进出系统的数据流都画在一张图中。
(3)逐级分解。