首页 百科知识 变换分析举例

变换分析举例

时间:2021-10-09 百科知识 版权反馈
【摘要】:通过一个经典的例子来说明如何进行变换分析,完成软件结构设计的目标。此外,把该图作为变换型的数据流图分析,当然该图也可作为事务型数据流图分析,留作课后作业。②确定数据流图的输入部分、变换中心和输出部分。对于下方这条△SPS,其分析有一定的争议。何为“王”,“王”即变换中心,就是那些完成本质数据变换的加工,对于本例就是能够直接变换出mpg、mph、里程数等数据的加工。

4.4.5 变换分析举例

通过一个经典的例子来说明如何进行变换分析,完成软件结构设计的目标。现需设计一个汽车数字化仪表板的嵌入式软件系统,它的主要功能描述如下:

(1)通过模/数转换装置实现各种传感器和微处理机之间的接口,即通过传感器捕获模拟信号,并转换为数字信号,为汽车行驶的相关数据的计算做好准备。

(2)指示汽车当前的时速,单位每小时英里数(mph),累加并显示汽车已经行驶的里程,计算并指示汽车每加仑油行驶的英里数(mpg)等。

(3)指示当前汽车的行驶状态,如加速、减速或匀速。

(4)适时发出超速警告:如果汽车时速超过55英里/小时,则发出超速警告铃声。

(5)在发光二极管面板上显示所有计算出的数据,即显示mph、mpg等数据。

经过软件分析人员的需求分析得到了描述该嵌入式软件系统的数据流图,如下图:

img71

图4.36 描述汽车仪表板嵌入式软件系统的数据流图

下面给出设计软件结构图的步骤。

①复查并精化数据流图,确定该图能准确地表达问题需求,然后指出其数据流图类型。经过对该图的需求回溯分析,发现该图已经很好地描述了问题需求。此外,把该图作为变换型的数据流图分析,当然该图也可作为事务型数据流图分析,留作课后作业。

②确定数据流图的输入部分、变换中心和输出部分。该步骤是整个分析过程的重点和难点,不同的分析人员可能会得到不同的分析结果。分析方法具体有二:

方法一:循规蹈矩逐步深入法

该方法是从每个物理输入端开始沿着数据流的变换通路,逐个分析当前数据流的性质,以确定各种边界。

运用此法首先从图中“旋转信号”物理输入端进行分析,该物理输入经过加工“读入旋转信号”的变换进入到系统中,得到信号的数学描述SPS。SPS能否作为逻辑输入边界呢?答案是否定的,因为此处仅完成了模/数转换的接口,应作为系统的输入部分。

接着,数据SPS提交给“收集并求平均”得到两条△SPS数据流。这些△SPS数据流能否作为逻辑输入边界呢?首先分析上方的那条△SPS数据流,发现该数据流被提交给“确定加速/减速”产生加速/减速的箭头显示。从问题需求可以发现“确定加速/减速”是系统的主要功能之一,故“确定加速/减速”加工必为变换中心之一,因此,上方这条△SPS应该是逻辑输入边界,而“箭头显示”显然为逻辑输出边界。

对于下方这条△SPS,其分析有一定的争议。因为,它被提交的加工“转换成转/分”在逻辑层面上确实完成了一次重要的数据变换,但究其变换结果rpm,它仅仅是为后续更加重要的“计算里程”“计算mph和超速值”做好数据的准备,从孤立变换中心以及变换中心独立、简单的特点等因素出发,此处不作为逻辑输入边界。

后续的问题分析将变得非常简单,即rpm处划分为逻辑输入边界,而英里、超速值、mph处划分为逻辑输出边界。

请思考:依据此法独立分析第2条物理输入数据流的数据变换过程,然后逐一确定各种边界。

方法二:擒“贼”先擒“王”法

该方法颠覆传统方法,即首先着手分析出变换中心由哪些加工组成,然后轻松确定其他各种边界。

何为“王”,“王”即变换中心,就是那些完成本质数据变换的加工,对于本例就是能够直接变换出mpg、mph、里程数等数据的加工。变换中心还具有独立、简单的特点。故分析该图发现如下4个加工:“确定加速/减速”“计算里程”“计算mph和超速值”和“计算燃料消耗”具有本质数据变换功能,应该被视为变换中心,而所有输入这些加工的数据流则作为逻辑输入边界,相反,所有从这些加工输出的数据流作为逻辑输出边界。依据此法问题迎刃而解。

最后,得到了划分各种边界的数据流图如下所示:

img72

图4.37 确定了各种边界的数据流图

③根据映射规则1,完成初始软件结构的设计,得到如图4.38所示的软件结构图。

img73

图4.38 汽车仪表板的初始软件结构图

④根据映射规则2、3、4,完成对其他所有数据加工的映射,即第二级映射,得到一个最初的软件结构,如图4.39、图4.40所示。

img74

图4.39 输入部分和变换中心部分映射出的软件结构图

img75

图4.40 输出部分映射出的软件结构图

⑤根据模块独立性原理和启发式规则,对最初的软件结构进行设计优化

◇优化1:输入结构中的模块“转换成rpm”和“收集sps”可以合并,减少模块间的耦合,提高模块内部的内聚。经过合并之后的模块的内聚是顺序内聚。

◇优化2:模块“确定加速/减速”可以放在模块“计算mph”下面,以减少耦合。

◇优化3:模块“加速/减速显示”可以相应地放在模块“显示mph”的下面,以减少耦合。

经过上述优化,最终的软件结构如下图:

img76

图4.41 汽车仪表板嵌入式软件的最终软件结构图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈