软件工程系统设计——结构化设计
-
-
-
- 【更新日志】
-
-
- 结构化设计概述
-
- 结构化设计主要内容
- 结构化设计与结构化分析的关系
- 结构化设计基础
-
- 模块与模块结构
- 结构图
- 体系结构设计
-
- 基于数据流方法的设计过程
- 变换型问题设计(变换型数据流与变换型系统结构图、映射方法)
- 事务型问题设计(事务型数据流与事务型系统结构图、映射方法)
- H图、IPO图、HIPO图与结构图的关系
- 接口设计
- 数据设计
- 过程设计
【更新日志】
最近更新:
结构化设计概述
结构化设计主要内容
模块结构: 表明了程序各个部件(模块)的组织情况,通常为树状结构或 状结构
条件调用和循环调用 : 当模块A有条件地调用另一个模块B时,在模块A的箭头尾部标以一个菱形符 ;当一个模块A反复地调用模块C和模块D时,在调用箭头尾部则标以一个弧形符 (条件调用与循环调用所依赖的控制条件通常无须注明)
- 模块间的调用连线若使用没有箭头的直线表示,则模块所处的位置表示它们之间的调用关系,上层的模块调用下层的模块
- 结构图的深度:一定意义上反映了程序结构的规模和复杂程度,如上结构图深度为5
- 结构图的宽度:结构图中同一层模块的最大模块数称为结构图的宽度
- 模块的扇入和扇出:扇入定义为调用(或控制)一个给定模块的调用模块数目;扇出表示一个模块直接调用(或控制)的下属模块的数目。多扇入的模块通常欸公用模块;多扇出意味着要控制和协调许多下属模块
体系结构设计
结构化设计方法中,体系结构设计定义软件模块及其之间的关系,通常也称为模块设计
基于数据流方法的设计过程
定义: 基于数据流的设计方法可以很方便地将数据流图表示的数据流映射成软件结构,是一种结构化的软件体系结构设计方法,也称为结构化设计(SD)方法
主要步骤:
- 复查并精化数据流图,对需求分析阶段得出的数据流图认真复查,并在必要时进行精化
- 确定数据流图中数据流的类型,典型数据流类型有变换型数据流和事务型数据流,数据流类型决定的映射的方法
- 导出初始的软件结构图,根据数据流类型应用变换型映射方法或事务型映射方法得到初始的软件结构图
- 逐级分解,对软件结构图进行逐级分解,一般需要进行一级分解和二级分解
- 精化软件结构,使用设计度量和启发式规则对得到的软件结构进一步精化
- 导出接口描述和全局数据结构
基于数据流方法的设计过程:
(2)进行一层分解,设计软件结构的顶层和第一层(变换结构)
变换中心确定以后,就相当于决定了主模块的位置, 这就是软件结构的顶层。主模块确定之后,根据DFD图设计软件结构的第一层,第一层至少要有输入、输出和变换三种功能的模块
以第1步中的数据流图为例,进行一层分解,即
- 为每个逻辑输入设计一个输入模块,其功能为向顶层模块提供相应的数据,如图中的f3;
- 为每个逻辑输出设计一个输出模块,其功能为输出顶层模块的信息,如图中的f7,f8;
- 同时,为变换中心设计一个变换模块,它的功能是将逻辑输入进行变换加工,然后逻辑输出,将f3变换成f7和f8
- 输入部分的求精:对每个物理输入设置专门模块,以体现系统的外部接口;其他输入模块并非真正输入,当它与转换数据的模块都很简单时,可将它们合并成一个模块
- 输出部分的求精:为每个物理输出设置专门模块,同时注意把相同或类似的物理输出模块合并在一起,以减低耦合度
- 变换部分的求精:根据设计准则,对模块进行合并或调整
事务型问题设计(事务型数据流与事务型系统结构图、映射方法)
事务型数据流与事务型系统结构图
事务型通常是接受一项事务,根据事务处理的特定和性质,选择分派一个适当的处理单元,然后给出结果。完成选择分派任务的部分叫作事务处理中心(或分派部件)

事务型系统结构图在数据处理中经常遇到,但更多的是变换型与事务型系统结构图的结合
事务型映射方法: 在很多软件应用中,存在某种作业流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。与变换分析一样,十五分析也是从分析数据流图开始,自顶向下,逐步分解
事务分析方法主要步骤:
- 识别事务源
- 规定适当的事务型结构
- 识别各种事务和它们定义的操作
- 注意利用公用模块
- 建立事务处理模块
- 对事务处理模块规定它们全部的下层操作模块
- 对操作模块规定它们的全部细节模块
【持续更新中……】
H图、IPO图、HIPO图与结构图的关系
H图: 不带数据流,用直线进行联系的结构图。也称层次图
HIPO图: 层次图+输入/处理/输出图的缩写,即H图基础上除最顶层模块,其余模块均需进行编 ,且各自可配有一张IPO图表,以进行信息的详细说明
IPO图: 输入/处理/输出图的简称,它是美国IBM公司提出的一种图形工具,能够方便地描绘输入数据、处理数据和输出数据的关系
可参照此篇站外文章《层次图和HIPO图—描绘软件结构的图形工具》
接口设计
依据: 数据流图中的自动化系统边界,即软件系统边界之外的是手工处理部分,系统边界之内的是系统处理部分。数据流可以在系统内部、系统外部或穿过系统边界,穿过系统边界的数据流代表了系统的输入和输出
也即系统的接口设计是由穿过边界的数据流定义的
主要方面: 模块或软件构件间的接口设计、软件与其他软硬件系统之间的接口设计、软件与人(用户)之间的交互设计
其中人机交互是很重要的一方面,而人机交互(用户)界面是人机交互的主要方式。人机交互设计需主要考虑以下几个方面的问题
用户界面应具备的特性:
- 可使用性:包括使用简单、界面一致、拥有帮助功能、快速的系统响应和低的系统成本、具有容错能力等
- 灵活性:考虑到用户的特点、能力和知识水平,应当使用户接口满足不同用户的要求
- 可靠性:用户界面的可靠性是指无故障使用的间隔时间。用户界面应能保证用户正确、可靠地使用系统,保证有关程序和数据的安全性
用户类型:
- 外行型:以前从未使用过计算机系统的用户
- 初学型:尽管对新的系统不熟悉,但对计算机还有一些使用经验的用户
- 熟练型:对一个系统有相当多的经验,能够熟练操作的用户
- 专家型:这一类用户了解系统内部的构造,有关于系统工作机制的专业知识,具有维护和修改基本系统的能力。专家型需要为他们提供能够修改和扩充系统能力的复杂界面
界面设计类型:
- 使用的难易程度:对没有经验的用户而言
- 学习的难易程度:学习该界面的命令和功能的难度
- 操作速度:完成一个指定操作时在操作步骤、击键和反应时间等方面效率有多高
- 复杂程度:该界面提供了什么功能、能否用新的方式组合这些功能以增强界面的功能
- 控制:交互时是由计算机还是由人发起和控制对话
- 开发的难易程度:界面设计的难度、开发工作量有多大
设计详细的交互: 人机交互的设计有若干准则,包括以下内容
- 一致性。采用一致的术语、一致的步骤和一致的活动
- 操作步骤少。使击键或点击鼠标的次数减到最少,甚至要减少做某些事所需的下拉菜单的距离
- 不要“哑播放”。每当用户要等待系统完成一个动作时,要给出一些反馈信息,说明工作正在进展及取得了多少进展
- 用户的操作错误很难免,对于基本的操作应提供恢复功能,或至少是部分恢复
- 减少人脑的记忆负担。不应该要求人从一个窗口中记住某些信息,然后在另一个窗口中使用
- 提高学习效率。为高级特性提供联机帮助,以便用户在需要时容易找到
数据设计
数据是软件系统中的重要组成部分,设计阶段必须对要存储的数据及其结构进行设计。由于关系数据库已经相当成熟,应用开发中大多数都会选择关系数据库,在数据存储和管理方面可以省去很大的开发工作量
这一部分主要涉及数据库原理相关知识,这里暂时不做详细阐述
过程设计
概要设计的任务完成后,就进入详细设计阶段,即过程设计阶段,这个阶段要决定各个木块的实现算法,并使用过程描述工具精确地描述这些算法
专用的描述工具可以分为以下几类:
- 图形工具——把过程的细节用图形方式描述出来。如程序流程图、N-S图、PAD图、决策树等
- 表格工具——用一张表来表达过程的细节,这张表列出了各种可能的操作及其相应的条件,即描述了输入、处理和输出信息。如判定表
- 语言工具——用某种类高级语言(伪代码)来描述过程的细节
【持续更新中……】
持续更新中……
我是桐小白,一个摸爬滚打的计算机小白
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!