知识点讲解
 
       结构化设计方法
知识路径: > 嵌入式系统的项目开发与维护知识 > 结构化分析与设计方法 > 
被考次数:1次
被考频率: 低频率
总体答错率: 67%
知识难度系数:
考试要求: 掌握     
相关知识点:11个
        结构化设计是将结构化分析得到的数据流图映射成软件体系结构的一种设计方法,强调模块化、自顶向下逐步求精、信息隐蔽、高内聚、低耦合等设计原则。
        在结构化方法中,软件设计分为概要设计和详细设计两个步骤。概要设计是对软件系统的总体设计,采用结构化设计方法,其任务是将系统分解为模块,确定每个模块的功能、接口(模块间传递的数据)及其调用关系,并用模块及对模块的调用来构建系统体系结构。详细设计是对模块实现细节的设计,采用结构化程序设计方法。
               结构图
               结构化设计方法中使用结构图来描述系统的体系结构,指出一个系统由哪些模块组成,以及模块之间的调用关系。结构图的基本成分有:模块、调用和数据。
                      模块
                      在结构化设计中,模块指具有一定功能并可以用模块名调用的一组程序语句,如函数、子程序等,它们是组成程序的基本单元。
                      一个模块具有外部特征和内部特征。模块的外部特征包括:模块的接口(模块名、输入/输出参数、返回值等)和模块功能。模块的内部特征包括:模块的内部数据和完成其功能的程序代码。
                      在结构图中,模块用矩形表示,并用名字标识该模块,名字应体现该模块的功能。
                      调用
                      结构图中模块之间的调用关系用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者。
                      数据
                      模块间还经常用带注释的短箭头表示模块调用过程中来回传递的信息。箭头尾部带空心圆的表示传递的是数据,带实心圆的表示传递的是控制信息,如下图所示。
                      
                      模块间的数据传递
                      可以在结构图上添加一些辅助符号进一步描述模块间的调用关系。如果一个模块是否调用一个从属模块决定于调用模块内部的判断条件,则该调用模块间的判断调用采用菱形符号表示;如果一个模块通过其内部循环的功能来循环调用一个或多个从属模块,则该调用称为循环调用,用弧形箭头表示。判断调用和循环调用的表示方法如下图所示。
                      
                      模块调用示例
                      结构图的形态特征
                      .深度。指结构图控制的层次,也就是模块的层数。
                      .宽度。指一层中最大的模块个数。
                      .扇出。指一个模块的直接下属模块的个数。
                      .扇入。指一个模块的直接上属模块的个数。
               数据流图到软件体系结构的映射
               在需求分析阶段,用结构化分析方法产生了数据流图。面向数据流的设计能方便地将DFD转换成软件结构图。
               DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。DFD的信息流大体上可以分为两种类型:一种是变换流,另一种是事务流;其对应的映射分别称为变化分析和事务分析。
               (1)变换流。信息沿着输入通路进入系统,同时将信息的外部形式转换成内部表示,然后通过变换中心(也称主加工)处理,再沿着输出通路转换成外部形式离开系统,具有这种特性的信息流称为变换流。变换流型的DFD可明显地分为输入、变换(主加工)和输出三大部分。
               (2)事务流。信息沿着输入通路到达一个事务中心,事务中心根据输入信息(即事务)的类型在若干个动作序列(称为活动流)中选择一个来执行,这种信息流称为事务流。事务流有明显的事务中心,各活动流以事务中心为起点呈辐射状流出。
               从变换流型的DFD导出结构图也称为变换分析。
               (1)确定输入流和输出流,分离出变换中心。把DFD中系统输入端的数据流称为物理输入,系统输出端的数据流称为物理输出。物理输入通常要经过编辑、格式转换、合法性检查、预处理等辅助性的加工才能为主加工的真正输入(称为逻辑输入)。从物理输入端开始,一步步向系统的中间移动,可找到离物理输入端最远,但仍可被看作系统输入的那个数据流,这个数据流就是逻辑输入。同样,由主加工产生的输出(称为逻辑输出)通常也要经过编辑、格式转换、组成物理块、缓冲处理等辅助加工才能变成物理输出。从物理输出端开始,一步步向系统的中间移动,可找到离物理输出端最远,但仍可被看作系统输出的那个数据流,这个数据流就是逻辑输出。
               DFD中从物理输入到逻辑输入的部分构成系统的输入流,从逻辑输出到物理输出的部分构成系统的输出流,位于输入流和输出流之间的部分就是变换中心。
               (2)第一级分解。第一级分解主要是设计模块结构的顶层和第一层。一个变换流型的DFD可以映射成如下图所示的程序结构图。图中顶层模块的功能就是整个系统的功能。输入控制模块用来接收所有的输入数据,变换控制模块用来实现输入到输出的变换,输出控制模块用来产生所有的输出数据。
               
               变换分析的第一级分解
               (3)第二级分解。第二级分解主要是设计中、下层模块。
               ①输入控制模块的分解。从变换中心的边界开始,沿着每条输入通路,把输入通路上的每个加工映射成输入控制模块的一个低层模块。
               ②输出控制模块的分解。从变换中心的边界开始,沿着每条输出通路,把输出通路上的每个加工映射成输出控制模块的一个低层模块。
               ③变换控制模块的分解。变换控制模块通常没有通用的分解方法,应根据DFD中变换部分的实际情况进行设计。
               (4)事务分析。事务分析是从事务流型DFD导出程序结构图。
               ①确定事务中心和每条活动流的流特性。下图给出了事务流型DFD的一般形式。其中,事务中心(图中的T)位于数条活动流的起点,这些活动流从该点呈辐射状流出。每条活动流也是一条信息流,它可以是变换流,也可以是另一条事务流。一个事务流型的DFD由输入流、事务中心和若干条活动流组成。
               
               事务流
               ②将事务流型DFD映射成高层的程序结构。事务流型DFD的高层结构如下图所示。顶层模块的功能就是整个系统的功能。接收模块用来接收输入数据,它对应于输入流。发送模块是一个调度模块,控制下层的所有活动模块。每个活动流模块对应于一条活动流,它也是该活动流映射成的程序结构图中的顶层模块。
               
               事务流型DFD的高层程序结构
               ③进一步分解。接收模块的分解类同于变换分析中输入控制模块的分解。每个活动流模块根据其流特性(变换流或事务流)进一步采用变换分析或事务分析进行分解。
               数据流图映射到结构图的步骤
               从数据流图映射到结构图的步骤如下:
               (1)复审和精化数据流图。首先应复审DFD的顶层图,确保系统的输入、输出数据流符合系统规格说明的要求。然后复审分层DFD,以确保它符合软件的功能需求,必要时对DFD进行净化。
               (2)确定数据流图的类型。如果是变换型,确定变换中心和逻辑输入、逻辑输出的界限,映射为变换结构的顶层和第一层;如果是事务型,确定事务中心和加工路径,映射为事务结构的顶层和第一层。
               (3)分解上层模块,设计中下层模块结构。
               (4)根据优化准则对软件结构求精。
               (5)描述模块功能、接口及全局数据结构。
               (6)复查,如果有错,转向第(2)步修改完善,否则进入详细设计阶段。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有