若干个彼此独立而又有一定联系的组成部分,这些组成部分称为模块。对于任何一个系统结构化设计方法的基本思想是使系统模块化化,即把一个系统自上而下、逐步分解为立功能的模块所组成的系统。在这一基本思想的指导下,系统设计人员以逻辑模型为基础,都可以按功能逐步由上向下、由抽象到具体,逐层将其分解为一个多层次的的、具有相对独并借助于一套标准的设计准则和图表等工具,逐层地将系统分解成多个大小适当、功能单具有一定独立性的模块,把一个复杂的系统转换成易于实现、易于维护的模块化结构系玧。结构化设计的工作过程可以分为两步:第一步是根据数据流程图导出系统初始结构
不仅可以表示一个系统的层次结构关系,而且还反映了模块的调用关系和模块之间数据流图;第二步是对结构图的反复改进过程。因此,系统结构图是结构化设计的主要工具,它
的传递关系等特性。
模块划分的标准
结构化设计要解决的主要问题是把系统分解成一个个模块,并用结构图的形式表达出其内在的联系。因此,模块划分的是否合理理,直接影响到系统设计的质量,影响系统开发的时间、开发成本以及系统实施和维护的方便程度等方面。为了能够合理地划分系统的各个模块,使其具有较强的独立性,在划分模块时要遵循的总原则是:尽量把密切相关的子问题划归到同一模块;把不相关的子问题划归到系统的不同模块。衡量系统的结构化程度及模块的独立性,可以通过模块与模块之间的关联度和模块内部各个组成部分之间的聚合度两条标准来进行评价。
模块之间的关联度
模块之间的关联度是用来表示一个模块与其他模块之间联系的紧密程度。关联度越低,则说明模块之间的联系越少,模块的独立性就越强,就越容易独立地进行编程、调试以从以下三个方面来衡量和评价和修改,某个模块中产生的错误对其他模块的影响也就越小。对于模块之间的关联度,
(1)模块之间的联系方式。如果一个模块直接调用另一个模块内部的数据或指令,这说明被调用模块内含有多方面不相关的内容,导致模块间联系增多,修改一个模块将直接影响其他的模块,降低了模块的独立性。因此,在系统设计中,应尽量避免使用这种联系方式。另一种联系方式是通过被调用模块的名称来调用整个模块,使其完成一定的功能式这样可以降低模块间的联系,增加其独立性。因此在系统设计中,应尽量采用这种联系方序调用过程中过多地使用控制信息,必然会增加模块之间的联系,影响模块的独立性。因(2)模块之间使用控制信息的数量。控制信息是指控制程序运行过程的信息,在程此,在模块之间应尽量不用或少用控制信息。当需要在模块之间使用含有控制信息的调用用关系时,可以通过功能分解的形式消除控制信息的彩响(3)模块之间传送数据的数量。模块之间通过调用关系传送数据,是一种比较理想的联系方式。但是,如果模块之间传送的数据过多,同样会给理解和修改模块带来因难就越强,也就越便于系统的设计和维护且降低系统的可维护性。一个模块同其他模块之间传递的数据越少,模块间的相互独立性
要降低模块之间的关联度,除了从以上几方面考虑之外,还可以从模块界面面的清性来考虑。模块之间的界面越简单、清晰、易于理解,则关联度越低,模块的独立性也就越强
模块内部的聚合度
一个模块内部的各种组成部分之间联系的越密切,其聚合度越高,模块的独立性也就越强。模块内部的聚合度是用来描述和评价模块内部各个组成部分之间联系的紧密程度。成以下七种形式:模块的聚合度是由模块的聚合方式决定的。根据模块内部的构成情况,其聚合方式可以分
(1)偶然性聚合。将几个毫无联系的功能组合在一起,形成一个模块,称为偶然性聚合模块。这种模块内部的各个组成部分之间几乎没有什么联系,只是为节省存贮空间或提高运算速度而结合在一起,因此聚合度最低年
(2)逻辑性聚合。将几个逻辑上相似,但彼此并无联系的功能组合在一起所形成的模块,称为逻辑性聚合模块。这种聚合形式,其聚合度也非常低,模块中的各种功能要通过控制变量选择执行。
(3)时间性聚合。将几个需要在同一时段进行处理的各项功能组合在一起所形成的模块,称为时间性聚合模块。如系统的初始化模块、结束处理模块等,可以考虑采用时间性聚合方式。(4)过程性聚合。将为了完成某项业务处理过程,将执行条件受同一控制流支配的若干个功能组合在一起所形成的模块,称为过程性聚合模块。这类模块的聚合度较前几种要高一些
(5)数据性聚合。将对同一数据加工处理的若干个功能组合在一起所形成的模块称为数据性聚合模块。这种模块能合理地定义功能,结构也比较清楚,因此其聚合度较高。
(6)顺序性聚合。把若干个顺序执行的、一个处理的输出是另一个处理的输入的功能组合在一起所构成的模块,称为顺序性聚合模块。这种模块的聚合度要更高一些
(7)功能性聚合。为了完成一项具体任务,由简单处理功能所组成的模块,称为功能性聚模块。这种模块功能单一,内部联系紧密,易于编程、调试和修改,因此其独立性最强,聚合度也最高。在上述七种模块聚合方式中,其聚合度是依次升高的。由于功能性聚合模块的聚合度最高,所以在划分模块的过程中,首先应尽量采用功能性聚合方式。其次,根据需要可以适当考虑采用顺序性聚合或数据性聚合方式,网站设计但要避免采用偶然性聚合和逻辑性聚合方
>>> 查看《结构化设计的原理》更多相关资讯 <<<
本文地址:http://weboss.link/news/html/3441.html