4.6.3 变换分析法

更新于 2026年10月10日 版权声明
4.6.3 变换分析法

(1)复查基本系统模型。首先应该对需求分析阶段得到的基本系统模型进行复查,复查的目的是为了确保输入数据和输出数据符合实际。

(2)复查并精化数据流图。应该对需求分析阶段得到的数据流图进行复查,并在必要时进行精化。要确保数据流图正确描绘了目标系统的业务逻辑,同时要确保数据流图中的每个处理都代表了一个规模适中、相对独立的子功能。

图示

图4.13 面向数据流设计方法的过程

(3)确定数据流图的类型。通常,一个系统中的所有信息都可以被认为是变换流,但是,当遇到有明显事务特性的信息流时,还是采用事务分析的方法进行映射。多数情况是,系统既具有变换特征,也具有事务特征,因此,在确定系统数据流图的特征时,应该从全局角度考虑哪种特征更占优势。

(4)确定数据流的边界。对于变换流来说,分析确定输入流和输出流的边界,从而孤立出变换中心。对于事务流来说,分析确定输入流的边界,从而孤立出事务中心。在确定边界时,不同的设计考虑有不同的取舍标准,但是,通常一个处理框的误差对最终的软件结构影响不大,况且在得到初步软件结构后,还有优化调整的要求。接下来,选取相应的分析方法把系统数据流图映射成变换型结构或事务型结构。

(5)完成“第一级分解”。传统方法论中,软件结构代表对控制自顶向下的分配,所谓分解其实就是分配控制,分配从属关系。第一级分解,就是分配软件结构中的顶层控制。

对于变换流的情况,位于软件结构最顶层的总控模块协调以下3个从属模块的控制。

①输入信息处理控制模块。此模块协调对所有输入数据的接收。

②变换中心控制模块。此模块管理对内部形式的数据的所有操作。(https://www.daowen.com)

③输出信息处理控制模块。此模块协调输出信息的产生过程。

(6)完成“第二级分解”。

进行第二级分解就是把数据流图中的每个处理映射成软件结构中的一个适当的模块。具体到变换流来说,第二级分解就是从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理依次映射成软件结构中的“输入信息处理控制模块”控制下的一个低层模块。然后,再从变换中心的边界开始,沿着输出通路向外移动,把输出通路中的每个处理依次映射成直接或间接受“输出信息处理控制模块”控制的一个低层模块。最后,把变换中心内的每个处理映射成受“变换中心控制模块”控制的一个个模块。

(7)优化。对经过以上步骤得到的结果按照模块独立原理和总体设计准则进行优化。为了产生合理的分解,得到尽可能高的内聚,尽可能松散的耦合,最重要的是得到一个易于实现、易于测试和易于维护的软件结构,应该对初步得到的软件模块进行再分解或合并。

机械地遵循上述映射规则很可能会得出一些不必要的控制模块,如果它们确实用处不大,那么应该合并它们。如果控制模块功能过分复杂,则可以适当地增加中间层的控制模块或者进一步将它们分解。

可优化过程不能违背设计原理,不能违背问题域常识,不能为了追求所谓的“最佳设计”而优化。

设计的优化可能会导出不同的软件结构,要从中选优,力求得到“最好”的结构。避免把结构的优化留到过程设计阶段,这也是把结构设计和过程设计分开的价值所在。

结构简单往往表明效率高。设计优化应该力求做到在有效模块化的前提下使用尽可能少的模块数,以及在能够满足信息要求的前提下使用最简单的数据结构。

切记,不能正常工作的最佳设计没有实际意义。正常工作是一切设计优化的基础,高效、最佳只是愿景目标。简单说就是“先使它能工作,然后再使它快起来”。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)