结构化设计的原理
若干个彼此自力而又有必定接洽的构成部门,这些构成部门称为模块。对于任何一个体系 构造化设计办法的根本思惟是使体系模块化化,即把一个体系自上而下、慢慢分化为建功能的模块所构成的体系。在这一根本思惟的指点下,体系设计人员以逻辑模子为基本,都可以按功效慢慢由上向下、由抽象到具体,逐层将其分化为一个多条理的的、具有相对独并借助于一套尺度的设计准则和图表等对象,逐层地将体系分化成多个年夜小恰当、功效单 具有必定自力性的模块,把一个庞杂的体系转换成易于实现、易于保护的模块化构造系玧。构造化设计的工作进程可以分为两步:第一步是依据数据流程图导出体系初始构造
不仅可以表现一个体系的条理构造关系,并且还反应了模块的挪用关系和模块之间数据流 图;第二步是对构造图的重复改良进程。是以,体系构造图是构造化设计的重要对象,它
的传递关系等特征。
模块划分的尺度
构造化设计要解决的重要问题是把体系分化成一个个模块,并用构造图的情势表达出其内涵的接洽。是以,模块划分的是否合理理,直接影响到体系设计的质量,影响体系开辟的时光、开辟成本以及体系实行和保护的便利水平等方面。为了可以或许合理地划分体系的各个模块,使其具有较强的自力性,在划分模块时要遵守的总原则是:尽量把亲密相干的子问题划归到统一模块;把不相干的子问题划归到体系的分歧模块。权衡体系的构造化水平及模块的自力性,可以经由过程模块与模块之间的联系关系度和模块内部各个构成部门之间的聚合度两条尺度来进行评价。
模块之间的联系关系度
模块之间的联系关系度是用来表现一个模块与其他模块之间接洽的慎密水平。联系关系度越低,则解释模块之间的接洽越少,模块的自力性就越强,就越轻易自力地进行编程、调试以从以下三个方面来权衡和评价 和修正,某个模块中发生的毛病对其他模块的影响也就越小。对于模块之间的联系关系度,
(1)模块之间的接洽方法。假如一个模块直接挪用另一个模块内部的数据或指令,这解释被挪用模块内含有多方面不相干的内容,导致模块间接洽增多,修正一个模块将直 接影响其他的模块,下降了模块的自力性。是以,在体系设计中,应尽量避免应用这种接洽方法。另一种接洽方法是经由过程被挪用模块的名称来挪用全部模块,使其完成必定的功效式 如许可以下降模块间的接洽,增长其自力性。是以在体系设计中,应尽量采取这种接洽方序挪用进程中过多地应用掌握信息,必定会增长模块之间的接洽,影响模块的自力性。因 (2)模块之间应用掌握信息的数目。掌握信息是指掌握法式运行进程的信息,在程此,在模块之间应尽量不消或罕用掌握信息。当须要在模块之间应用含有掌握信息的挪用用关系时,可以经由过程功效分化的情势清除掌握信息的彩响 (3)模块之间传送数据的数目。模块之间经由过程挪用关系传送数据,是一种比拟幻想的接洽方法。然则,假如模块之间传送的数据过多,同样会给懂得和修正模块带来因难就越强,也就越便于体系的设计和保护 且下降体系的可保护性。一个模块同其他模块之间传递的数据越少,模块间的互相自力性
要下降模块之间的联系关系度,除了从以上几方面斟酌之外,还可以从模块界面面的清性来斟酌。模块之间的界面越简略、清楚、易于懂得,则联系关系度越低,模块的自力性也就越强
模块内部的聚合度
一个模块内部的各类构成部门之间接洽的越亲密,其聚合度越高,模块的自力性也就越强。模块内部的聚合度是用来描写和评价模块内部各个构成部门之间接洽的慎密水平。成以下七种情势: 模块的聚合度是由模块的聚合方法决议的。依据模块内部的组成情形,其聚合方法可以分
(1)有时性聚合。将几个毫无接洽的功效组合在一路,形成一个模块,称为有时性聚合模块。这种模块内部的各个构成部门之间几乎没有什么接洽,只是为节俭存贮空间或进步运算速度而联合在一路,是以聚合度最低年
(2)逻辑性聚合。将几个逻辑上类似,但彼此并无接洽的功效组合在一路所形成的模块,称为逻辑性聚合模块。这种聚合情势,其聚合度也异常低,模块中的各类功效要经由过程掌握变量选择履行。
(3)时光性聚合。将几个须要在统一时段进行处置的各项功效组合在一路所形成的模块,称为时光性聚合模块。如体系的初始化模块、停止处置模块等,可以斟酌采取时光性聚合方法。(4)进程性聚合。将为了完成某项营业处置进程,将履行前提受统一掌握流安排的若干个功效组合在一路所形成的模块,称为进程性聚合模块。这类模块的聚合度较前几种要高一些
(5)数据性聚合。将对统一数据加工处置的若干个功效组合在一路所形成的模块称为数据性聚合模块。这种模块能合理地界说功效,构造也比拟清晰,是以其聚合度较高。
(6)次序性聚合。把若干个次序履行的、一个处置的输出是另一个处置的输入的功效组合在一路所组成的模块,称为次序性聚合模块。这种模块的聚合度要更高一些
(7)功效性聚合。为了完成一项具体义务,由简略处置功效所构成的模块,称为功效性聚模块。这种模块功效单一,内部接洽慎密,易于编程、调试和修正,是以其自力性最强,聚合度也最高。在上述七种模块聚合方法中,其聚合度是依次升高的。因为功效性聚合模块的聚合度最高,所以在划分模块的进程中,起首应尽量采取功效性聚合方法。其次,依据须要可 以恰当斟酌采取次序性聚合或数据性聚合方法,网站设计但要避免采取有时性聚合和逻辑性聚合方