首页 理论教育 结构化设计思想

结构化设计思想

时间:2022-11-21 理论教育 版权反馈
【摘要】:可维护性是系统设计质量标准的重要指标,它是指系统容易被修改的能力。解决办法就是采用系统结构化SD的设计思想。以上述思想设计出来的系统,是按照层次结构组织而成的。如果一个模块与其他模块之间全是数据耦合,则这个模块可认为是一个“黑箱”。这种耦合将直接影响到接受信号模块的运行过程,此时模块就不再是一个“黑箱”了,这对于系统的修改工作是不利的,特别是自下向上传递的控制信号,影响面更大。

一、结构化设计思想

可维护性是系统设计质量标准的重要指标,它是指系统容易被修改的能力。在实际工作中,由于环境或经济业务的变化,通常要对系统做一些必要的修改,而这些修改往往只是系统局部细节的变化,如修改某一数据结构或执行语句,修改某些子系统的组合关系等。很显然这种局部的修改并不困难,但问题在于系统各部分之间的相互控制、调用和信息交换关系,若改动某一部分,就很可能会影响到系统的其他部分,这就犹如一块石头投入到水中会波及整个池塘一样。如果我们在系统开发时忽略了这种影响,那么很可能就会在系统投入使用后,使系统的维护问题贻害无穷。那么怎样设计系统,才能尽量避免上述情况的发生呢?解决办法就是采用系统结构化SD(Structured Design)的设计思想。其基本要求包括:

(1)尽量把系统划分成一些功能简单明了且易于修改的模块。

(2)系统划分成模块的工作应按层次进行。越上层的模块其功能越笼统、越抽象,越下层的模块其功能越具体、越简单。最底层的模块应是不可再分解的模块。

(3)每个模块的功能应尽可能地独立,尽可能减少与其他模块之间的联系。

以上述思想设计出来的系统,是按照层次结构组织而成的。模块之间相对独立,功能明确,易于理解和修改,能有效地防止在模块修改时,模块之间引起连锁反应和错误扩散,同时可以有效地提高系统的可靠性

按照上述结构化的设计思想,我们在进行系统结构化设计时,应遵循以下原则:

1.按层次结构进行设计

从数据流程图出发,自顶向下逐步求精,将系统划分为内容简明易懂、功能独立的模块。

2.提高模块的独立性

所谓模块的独立性,是指每个模块应能完成一个相对独立的特定功能,且与其他模块之间联系较少,易于理解和修改。在会计信息系统中,完全没有任何联系的模块是很少见的,但如果信息联系方式不好,对某一模块的修改,将会引起其他若干模块的修改,从而引发连锁的波动效应,使改动变得十分困难。

(1)模块之间的耦合度。模块之间的联系方式称为耦合。耦合大致有3种类型:

①数据耦合。两个模块之间通过调用,相互传递的信息是数据,称为数据耦合。如果一个模块与其他模块之间全是数据耦合,则这个模块可认为是一个“黑箱”。即对外界来说,只需关心其功能,而完全不必关心其内部结构,如图3-12(1)所示。

②控制耦合。两个模块之间除传递数据信息外,还传递某些对运行过程有影响的控制信息,如A模块是输入处理,B模块是校验处理。由A模块输入的数据传递给B模块,B模块对其进行校验。校验后将校验结果信息传回A模块。在A模块中,根据传回的校验结果(控制信息)进行不同的处理,若输入数据正确则进行正常处理,若输入数据异常则需要对输入数据进行修改。这里B模块传回给A模块的就属于控制信息。这种耦合将直接影响到接受信号模块的运行过程,此时模块就不再是一个“黑箱”了,这对于系统的修改工作是不利的,特别是自下向上传递的控制信号,影响面更大。因此,应尽量将这种耦合减少到最低限度,如图3-12(2)所示。

③内容耦合。一个模块与另一个模块的内部发生联系,即一个模块的某些内容在另一个模块中以某种方式被引用,则称为内容耦合。例如,不经调用关系直接使用或修改某一模块中的数据,此时将控制选择指向其中的某一内容。如图3-12(3)所示。模块间出现内容耦合,是模块改动时容易发生错误的主要来源。如A模块要转到B模块中的某个部分去执行,若B模块的内容被改动,则A模块也要发生错误。所以应尽量避免模块间的内容耦合。由上可见,模块间数据耦合是最理想,而内容耦合最差。

img60

图3-12 模块耦合图

(2)模块的内聚度。模块内聚度,是指模块内部各成分之间的关联程度。在系统中,各模块的内聚度越高,则模块间的耦合将越小,模块的独立性就越强。

3.模块的作用域应包含在模块的控制域之内

一个模块可调用的所有下层模块,称为它的控制域。模块调用时若有判断,则该模块判断处理所影响到的所有其他模块的集合称为这个判断的作用域。若某一判断的影响范围(即作用域)超出了这个模块的控制范围(既控制域),则将会给系统的修改和维护工作带来麻烦。因此,系统在设计时要求模块的作用域应包含在其控制域之内。即判断范围必须在控制范围之内。

4.每层被细分后的模块大小要适中

模块的大小一般是指其源程序编写的行数。对模块的大小究竟应定义为多少合适,没有严格定论。一般情况下,模块的大小应以一个人能负担的程度为宜。通常将模块的大小定义为一页(50行)左右,这样的模块一般易于理解、阅读和测试。

5.模块的深度、宽度、扇出、扇入要适当

模块的深度表示模块层次结构中的层数,层数越多,其结构就越复杂,程序就越长,模块的深度一般应控制在3~5层为宜;模块的宽度是指模块层次结构中在同一层的模块数,宽度越大,系统结构就越复杂。对宽度影响最大的因素是扇出,扇出是指由一个模块直接控制的模块数,扇出数大,意味着模块结构过分复杂,而扇出数小,则容易增加模块间不必要的接口,扇出的上限一般控制在5~9个之间。扇入则表示直接控制一个给定模块的模块数,扇入越大,表示共享该模块的上级模块数越多,这是有好处的,但不应以违背模块间的独立性原则为代价。

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

我要反馈