【软件工程】之结构化设计

本文深入探讨了软件结构设计,包括模块的主要元素、形态特征指标和优化准则,强调了模块独立性的重要性。同时,详细介绍了数据流模型的三种类型——变换流、事务流和混合流,以及如何进行数据流设计,包括变换设计和事务设计方法。结构化详细设计方面,阐述了其结构和常用工具,如流程图、盒图和伪代码。这些内容对于理解和实践软件设计至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、软件结构图

1、主要元素

模块:用带名字的方框表示,名称应该体现模块的功能
控制关系:用单向箭头或直线表示模块间的调用关系
信息传递:用带注释的短箭头表示模块调用过程中传递的信息
选择调用和循环调用:在上部模块底部加一个零星符号表示选择调用;在上部模块的下方加一个弧形箭头,表示循环调用。

2、形态特征指标

深度:指结构图控制的层次,即模块的层数
宽度:指一层中最大的模块个数
扇出:指一个模块直接下属模块的个数
扇入:指一个模块直接上属模块的个数

3、优化准则

1)模块独立性准则

划分模块时,尽量做到高内聚低耦合,保持模块相对独立性,以此原则优化初始的软件结构

2)软件结构的形态特征准则

软件结构的深度、宽度、扇出数和扇入数都要适当。

3)模块的大小准则

按模块的独立性,即根据模块的功能来决定模块的大小。过大的模块应该进行分解,过小的模块会增加模块间接口的复杂性,可以进行适当的合并,但是不应降低模块的独立性。

4)模块控制域与作用域的准则

模块控制域:模块本身以及其所有下属模块的集合
模块作用域:受该模块内一个判定影响的所有模块的集合
一个模块的作用域应在其控制范围之内,且调节判定所在的模块应与其受影响的模块在层次上尽量靠近。

5)模块的接口准则

模块的接口要简单、清晰,力求降低模块接口的复杂程度。

二、数据流模型

1、类型

1)变换流

整体看来: 输入流 | 变换中心 | 输出流
输入流:信息可以通过各种路径进入系统,信息在“流”入系统的过程中由外部形式变换成内部数据形式,这被标识为输入流。
变换流:在软件的核心,输入数据经过一系列加工处理,这被标识为变换流。
输出流:通过变换处理后的输出数据,沿各种路径转换为外部形式“流”出软件,这被标识为输出流。
整个数据流体现了以输入、变换、输出的顺序方式,沿一定路径前行的特征。

2)事务流

当数据经过一个具有“事务中心”特征的数据处理时,它可以根据事务类型从多条路径的数据流中选择一条活动通路。
这种具有根据条件选择处理不同事务的数据流,就是事务型数据流,简称事务流。

3)混合流

具有将事务流和变换流组合出现,就是混合流。

2、数据流设计方法

是一种结构化的软件体系结构设计方法。能与大多数需求规格说明技术配合,可以使模块达到高内聚性(顺序性内聚)。
是从数据流图分析模型映射为软件模块组成结构设计的描述。
过程如下:
①复查基本系统模型,并精化系统数据流图
②分析数据流类型,确定数据流具有变换流特征还是事务流特征
③采用自顶向下、逐步求精的方式完成模块分解,确定相应的软件组成结构
④根据软件结构优化准则,对导出的软件结构进行优化

3、变换设计方法

是变换特征数据流图到软件结构图的转换。
步骤如下:
①确定数据流图中的变换中心、逻辑输入和逻辑输出。
②设计软件结构的顶层和第一层。
③设计中、下层模块(输入、输出、变换模块的下属模块设计)
④设计的优化(输入、输出、变换部分的求精)

4、事务设计方法

是将事务数据流图到程序结构的变换。
步骤如下:
①确定数据流图中事务中心和加工路径。
②设计软件结构的顶层和第一层——事务结构。
接收分支:负责接收数据,它的设计与变换分析的输入部分设计方法相同。
发送分支:通常包含一个调度模块,它控制管理所有的下层的事务处理模板。
③进行事务结构中、下层模块的设计、优化等工作。

三、结构化详细设计

1、结构

顺序结构
选择结构
循环结构

2、工具

1)图形工具

把过程的细节表示成一个图的组成部分,在这个图上,逻辑构造用具体的图形来表示。如:流程图、盒图、PAD图

2)列表工具

用一个表来表示过程的细节,这个表列出了各种操作及其相应的条件,即描述了输入、处理和输出信息。如:判定表、判定树

3)语言工具

用伪代码来表示过程的细节,这种伪代码很接近于编程语言。如:PDL语言

思考题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值