软件工程—软件结构图笔记详谈

时间:2024-11-13 07:07:45

一、定义

结构图(Structure Chart,简称SC图)是精确表达软件结构的图形表示方法,它以特定的符号表示模块、模块间的调用关系和模块间信息的传递。

二、主要构成

⑴模块(Module):用矩形框表示,框中写有模块的名字,说明模块的功能。
⑵调用:从一个模块指向另一个模块的箭头表示前一模块对后一模块的调用,一般是上层调用下层。
⑶数据:调用箭头边上的小箭头表示调用时从一个模块传送给另一模块的数据。通常在短箭头附近应注有信息的名字,常用尾端带有空心圆的短箭头表示数据信息,用尾端带有实心圆的短箭头表示控制信息,如:
在这里插入图片描述
(4)两种符号:当模块A有条件地调用另一个模块B时,在模块A的箭头尾部标以一个菱形符号,当一个模块A反复地调用模块B、和模块D时,在调用箭头尾部则标以一个弧形符号,如图所示。在结构图中这种条件调用所依赖的条件循环调用所依赖的循环控制条件通常无需注明。
在这里插入图片描述

三、常用的四种模块

1.传入模块

从下属模块取得数据,进行某些处理,再将其结果传给上级模块。在此,将它传送的数据流称为逻辑输入数据流

2.传出模块

从上级模块获得数据,进行某些处理,再将其结果传给下属模块。在此,将它传送的数据流称为逻辑输出数据流

3.变换模块/加工模块

它是从上级模块获得数据,进行特定的处理,将其转换为其他形式,再传回上级模块它所加工的数据流叫做变换数据流

4.协调模块

对所有下属模块进行协调和管理的模块。在一个好的软件结构图中,协调模块应在较高层出现
在这里插入图片描述

四、面向数据流的设计方法概述

概念:SD以数据流图为基础,它定义了把DFD(数据流图)变换成软件结构的不同映射方法。即把问题结构(DFD)映射成软件系统的结构。

分类:在软件设计开始之前,首先要分清DFD图所显示的系统特征,所有系统均可以纳入两种典型的形式:①变换型结构、②事务型结构。

①变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,通过系统变换中心,经过加工处理以后再沿输出通路变换成外部形式离开软件系统。
②事务流:数据沿输入通路到达一个处理,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行,即“以事务为中心”

在这里插入图片描述

五、如何将DFD映射为软件结构

1.变换型

具有“变换型”的数据流图,明显可以分割为“导入” 、“加工变换”和“导出” 三部分,对应软件结构的“传入子系统”、“中心变换子系统”和“传出子系统”三部分。

步骤

(1)找出边界,进行一级分解,设计上层模块。为每个输入设计一个输入模块,为每个输出设计一个输出模块,同时为每个主加工设计一个处理模块。
在这里插入图片描述
(2)进行二级分解,设计中下层模块。自顶向下,逐步细化,为第一层的每一个输入模块、输出模块、处理模块设计它们的从属模块,设计下层模块的顺序一般从设计输入模块的下层开始,即展开CI、CT、CO
在这里插入图片描述
(3)进一步细化

2.事务型
步骤

(1)在DFD上确定事务中心、接收部分和发送部分。
(2)画出SC框架,把DFD上的三部分分别映射为事务控制模块、接收模块和动作发送模块,如下图所示
(3)分解细化接收分支和发送分支
在这里插入图片描述

3.总结

机械地遵循变换分析或事务分析的映射规则,很可能会得到一些不必要的控制模块,如果它们确实用处不大,应该把它们合并。
反之,如果一个控制模块功能过分复杂,则应该分解为两个或多个控制模块,或者增加中间层次的控制模块。
所以,对初始映射得到的软件结构还应该进行结构优化
优化:1)尽可能建立功能模块 2)消除重复功能 3)注意模块的作用范围与控制范围 4)模块的大小适当

六、具体例子

例:对小型图书管理信息的 还书子系统数据流图描述如下:
在这里插入图片描述
转换成软件结构图如下所示:
在这里插入图片描述
对后台程序进行拆分如下:
在这里插入图片描述

留言:此次博客整体写的不太好,见谅吧,发出来是对自己所学的一个总结,也是想将学校所学开源出来。注:对例题答案有补充或有任何疑惑欢迎评论区留言