halo~我是bay_Tong桐小白
本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点
最近更新:
软件设计必须依据对软件的需求来进行,结构化分析的结果为结构画设计提供了最基本的输入信息
结构化设计方法的实施要点:
概要设计的主要任务是把需求分析得到的结果转换为软件结构和数据结构,完成对应设计
模块: 一个软件系统通常由很多模块组成,结构化程序设计中的函数和子程序都可称为模块,它是程序语句按逻辑关系建立起来的组合体
原子模块: 对于大的模块,一般还可以继续分解或划分为功能独立的较小的模块。不能再分解的模块为原子模块
完全因子分解的系统: 全部实际加工都由原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能。完全因子分解的系统被认为是最好的系统,但实际上这只是力图达到的目标
一般地模块可以按照在软件系统中的功能划分为4种类型:
模块结构: 表明了程序各个部件(模块)的组织情况,通常为树状结构或网状结构
树状结构中,位于最上层的根部是顶层模块,是程序的主模块,与其联系的有若干下属模块,可以看出模块间的层次关系,上层模块可调用下层模块,同一层模块之间不互相调用
网状结构中任意两个模块间都可以有调用关系,不存在层次从属关系
定义: 结构图(SC)是精确表达模块结构的图形表示工具,可以清楚地反映出软件模块之间的层次调用关系和联系,不仅严格定义了各个模块的名字、功能和接口,还集中反映了设计思想
模块的调用关系和接口: 结构图中,两个模块间用单向箭头联结,箭头从调用模块指向被调用模块,有些结构图中模块间的调用关系将箭头简单地画为连线,只要调用与被调用模块的上下位置保持就是允许的
模块间的信息传递: 调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行,被调用模块在执行过程中又把它产生的数据或控制信息回送给调用模块
带数据流的结构图: 为了表示在模块之间传递的数据或控制信息,在联结模块的箭头旁给出短箭头,并用尾端带有空心圆的短箭头表示数据信息,用尾端带有实心圆的短箭头表示控制信息,通常短箭头附近应注有信息的名字
(有的结构图对这两种信息不加以区别,一律用注有信息名的短箭头表示)
条件调用和循环调用 : 当模块A有条件地调用另一个模块B时,在模块A的箭头尾部标以一个菱形符号;当一个模块A反复地调用模块C和模块D时,在调用箭头尾部则标以一个弧形符号(条件调用与循环调用所依赖的控制条件通常无须注明)
结构图的形态特征: 上级模块调用下级模块,它们之间存在主从关系
结构化设计方法中,体系结构设计定义软件模块及其之间的关系,通常也称为模块设计
定义: 基于数据流的设计方法可以很方便地将数据流图表示的数据流映射成软件结构,是一种结构化的软件体系结构设计方法,也称为结构化设计(SD)方法
主要步骤:
基于数据流方法的设计过程:
典型的数据流类型: 变换型数据流和事务型数据流
通常,一个系统中的所有数据流都可以认为是变换流,但当遇到有明显事务特性的数据流时,建议采用事务型映射方法进行设计。因此设计人员应当根据数据流图的主要问题类型选择一个面向全局的,设计整个软件范围的问题处理类型,而对于局部范围内是变换型还是事务型,可具体研究,区别对待
变换型数据流与变换型系统结构图
变换型数据处理问题的过程大致分为三步:取得数据、变换数据、给出数据,其中变换数据是数据处理过程的核心工作,取得数据是为变换而做的准备工作,给出数据则是对变换后的数据进行后处理工作
对应于取得数据、变换数据、给出数据,系统的结构图由输入、中心变换和输出三部分组成
由上图可知
变换型映射方法: 一系列设计步骤的总称,经过这些步骤,将具有变换流特点的数据流图按预先确定的模式映射成软件结构
变换分析方法主要步骤:
(1)确定DFD中的变换中心、 逻辑输入和逻辑输出
介于逻辑输入和逻辑输出之间的加工就是变换中心,即主加工。若一下不能确定,则要从物理输入端开始,沿着数据流方向向系统中心寻找,直到有这样的数据流,它不能再被看作是系统的输入则它的前一个数据流就是系统的逻辑输入。同理,从物理输出端开始,逆数据流方向向中间移动,可以确定系统的逻辑输出
也有的系统仅有输入部分和输出部分,没有中心变换部分
(2)进行一层分解,设计软件结构的顶层和第一层(变换结构)
变换中心确定以后,就相当于决定了主模块的位置, 这就是软件结构的顶层。主模块确定之后,根据DFD图设计软件结构的第一层,第一层至少要有输入、输出和变换三种功能的模块
以第1步中的数据流图为例,进行一层分解,即
对第一层的输入、变换及输出模块自顶向下、逐层细化,分别设计它们的从属模块
输入模块的功能是向它的调用模块提供数据, 所以必须要有数据来源。这样输入模块应由接收数据和转换模块所需的信息两部分组成。每个输入模块可以设计成两个下属模块:一个接收,一个转换。用类似的方法一直分解下去,直到物理输入端
输出模块的功能是将它的调用模块产生的结果送出,这样输出模块应由转换模块和输出数据所需的信息两部分组成。每个输出模块可以设计成两个下属模块:一个转换, 一个发送, 一直到物理输出端
中心变换模块的下层模块没有通用的方法,按照模块独立性的原则来组织其结构,一般对DFD中每个基本加工建立一个功能模块
(4)设计的优化
事务型数据流与事务型系统结构图
事务型通常是接受一项事务,根据事务处理的特定和性质,选择分派一个适当的处理单元,然后给出结果。完成选择分派任务的部分叫作事务处理中心(或分派部件)
在事务型系统结构图中,事务中心模块按所接受的事务类型,选择某一个事务处理模块执行,各个事务处理模块是并列的,依赖于一定的选择条件,分别完成不同的事物处理工作,每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节操作模块。
由于不同的事务处理模块可能有共同的操作,所以某些事物处理模块可能共享一些操作模块;同样,不同的操作模块可以有相同的细节,所以某些操作模块又可以共享一些细节模块
事务型系统的结构图可以有多种不同的形式(有多操作层或无操作层)。上图的简化形式是叭分析作业和调度都归入事务中心模块
事务型系统结构图在数据处理中经常遇到,但更多的是变换型与事务型系统结构图的结合
事务型映射方法: 在很多软件应用中,存在某种作业流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。与变换分析一样,十五分析也是从分析数据流图开始,自顶向下,逐步分解
事务分析方法主要步骤:
【持续更新中……】
H图: 不带数据流,用直线进行联系的结构图。也称层次图
HIPO图: 层次图+输入/处理/输出图的缩写,即H图基础上除最顶层模块,其余模块均需进行编号,且各自可配有一张IPO图表,以进行信息的详细说明
IPO图: 输入/处理/输出图的简称,它是美国IBM公司提出的一种图形工具,能够方便地描绘输入数据、处理数据和输出数据的关系
可参照此篇站外文章《层次图和HIPO图—描绘软件结构的图形工具》
依据: 数据流图中的自动化系统边界,即软件系统边界之外的是手工处理部分,系统边界之内的是系统处理部分。数据流可以在系统内部、系统外部或穿过系统边界,穿过系统边界的数据流代表了系统的输入和输出
也即系统的接口设计是由穿过边界的数据流定义的
主要方面: 模块或软件构件间的接口设计、软件与其他软硬件系统之间的接口设计、软件与人(用户)之间的交互设计
其中人机交互是很重要的一方面,而人机交互(用户)界面是人机交互的主要方式。人机交互设计需主要考虑以下几个方面的问题
用户界面应具备的特性:
用户类型:
界面设计类型:
设计详细的交互: 人机交互的设计有若干准则,包括以下内容
数据是软件系统中的重要组成部分,设计阶段必须对要存储的数据及其结构进行设计。由于关系数据库已经相当成熟,应用开发中大多数都会选择关系数据库,在数据存储和管理方面可以省去很大的开发工作量
这一部分主要涉及数据库原理相关知识,这里暂时不做详细阐述
概要设计的任务完成后,就进入详细设计阶段,即过程设计阶段,这个阶段要决定各个木块的实现算法,并使用过程描述工具精确地描述这些算法
专用的描述工具可以分为以下几类:
【持续更新中……】
持续更新中……
我是桐小白,一个摸爬滚打的计算机小白