自学考试软件工程章节复习教导:第三章

第三章 结构化设计

1. 软件设计阶段的主要任务、办法、阶段:

需要解析阶段的主要任务是确定系统需要“做什么”,形成软件的需要规格说明书,软件设计阶段的主要任务是确定系统“如何做”,从软件需要规格说明书出发,形 成软件的具体设计策略,软件设计可以使用多种办法,如结构化设计办法、面向数据结构的设计办法、面向对象的设计办法等,结构化软件设计可以分为总体设计和详细设计两个阶段。

2. 总体设计阶段的主要任务及其内容:

总体设计阶段的主要任务是把系统的功能需要分配给软件结构,形成软件的模块结构图(MSD),在结构图中矩形表示功能单元,称为“模块”,连接上下层模块的线段表示它们之间的调用关系,在总体设计阶段,每一个模块还处于黑盒子级,模块通过外部特点标识,名字、输入、输出。

3. 总体设计的表示形式及其内容(层次图、HIPO图、结构图):

层次图是软件总体设计阶段最常采用的表示形式之一,用来描绘软件的层次结构,图中的每一个方框代表一个模块,方框间的连线表示模块的调用关系,层次图非常适合于在自顶向下设计软件的过程中采用;

HIPO图是由美国IBM公司创造的“层次图+输入/处置/输出图”的英文缩写,HIPO图事实上由H图和IPO图两部分组成,H图就是上面提到的层次图,为了能使HIPO图具备可跟踪性,在H图里除去最顶层的方框以外,每一个方框都加了编号;

结构图和层次图类似,图中每一个方框代表一个模块,方框之间的箭头(或直线)表示模块的调用关系,在结构图中一般还用带注释的箭头表示模块调用过程中来回传递的信息,尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。

4. 模块及其组成:

模块是实行一个特殊任务或达成一个特殊的抽象数据种类的一组例程和数据结构,模块由两部分组成,接口和达成模块功能的实行机制。

5. 面向数据流的设计办法(综合应用):

面向数据流的设计办法把数据流图映射成为软件结构,数据流图的种类决定了映射的办法,数据流图可以分为变换型数据流图和事务型数据流图,具备较明显的输入、变换(或称主加工)和输出界面的数据流图称为变换型数据流图,数据沿输入通路到达一个处置模块,这个处置模块依据输入数据的种类在若干动作序列中选出一个来实行,这种类型数据流图称为事务型数据流图,并且称这个模块为事务中心,它完成如下任务,接收输入数据、解析数据并确定数据种类、依据数据种类选取一条活动通路。

6. 评价软件设计水平的主要准则(模块化、抽象、耦合、内聚)及详细内容:

模块化是好的软件设计的一个基本准则;

抽象就是抽出事务的本质特质而暂时不分析它们的细则,模块是根据不一样的抽象级别安排的,高层抽象模块向读者隐藏了功能达成的细则,这就是信息隐蔽,模块之间相互隐藏自己的达成细则对一个好的设计来讲是至关要紧的;

耦合是对不一样模块之间相互依靠程度的度量,紧密耦合是指两个模块之间存在着非常强的依靠关系,松散耦合是指两个模块之间存在一些依靠关系,但他们之间的连接比较弱,无耦合是指模块之间根本没任何连接;

耦合的强度依靠于以下四个原因,一个模块对另一个模块的引用,一个模块向另一个模块传递的数据量,一个模块施加到另一个模块的控制的数目,模块之间接口的复杂程度;

从强到弱的几种容易见到的耦合种类,内容耦合,一个模块直接修改或操作另一个模块的数据;公共耦合,两个以上的模块一同引用一个全局数据项;控制耦合,一个模块在界面上传递一个信号控制另一个模块,接收信号的模块的动作依据信号值进行调整,称为控制耦合;标记耦合,若两个模块至少有一个通过界面传递的公共参数包含内部结构;数据耦合,模块间通过参数传递基本种类的数据,数据耦合是最容易的耦合形式,系统中至少需要存在这类的耦合;

内聚度量的是一个模块内部各成分之间相互关联的强度,假如一个模块的所有成分都直接参与并且对于完成同一功能来讲都是最基本的,则该模块是高内聚的;

从低到高的几种容易见到的内聚种类,偶然内聚,一个模块的各个成分之间毫无关系;逻辑内聚,几个逻辑上有关的功能被放在同一模块中;时间内聚,一个模块完成的功能需要在同一时间内实行,但这些功能只是由于时间原因关联在一块;过程内聚,一个模块内部的处置成分是有关的,而且这些处置需要以特定的次序实行;通信内聚,一个模块的所有成分都操作同一数据集或生成同一数据集;顺序内聚,一个模块的各个成分和同一个功能密切有关,而且一个成分的输出作为另一个的成分;功能内聚,最佳的内聚是功能内聚,模块的所有成分对于完成单一的功能都是基本的;

内聚和耦合是密切有关的,在进行软件设计时,应力争做到强内聚、弱耦合。

7. 结构化设计的启发式规则:

改进软件结构提升模块独立性,模块规模应该适中,深度、宽度、扇入和扇出应适中,模块的用途域应该在控制域之内,力争减少模块接口的复杂性,模块功能应该可以预测;

模块的用途域概念为受该模块内一个判定影响的所有模块的集合,模块的控制域是这个模块本身与所有直接或间接从是它的模块的集合。

8. 结构化解析与结构化设计的不同之处:

结构化解析得到数据流图、数据字典等,是逻辑模型,结构化设计得到模块结构图,是程序模型。

9. 详细设计阶段的目的、表现、内容:

详细设计阶段的根本目的是确定如何具体的达成所需要的系统,详细设计以总体设计阶段的工作为基础,但又不一样于总体设计,主要表目前,在总体设计阶段,数据项和数据结构以比较抽象的方法描述,详细设计要提供关于算法的更多细则;

详细设计的模块包含达成对应的总体设计的模块所需要的处置逻辑,主要有,详细的算法,数据表示和数据结构,推行的功能和采用的数据之间的关系。

10.结构化程序的三种基本结构,结构化设计的目的:

结构化程序设计技术使用自顶向下逐步求精的设计办法和单入口单出口的控制结构,并且只包含顺序、选择和循环三种结构,结构化程序设计的目的之一是使程序的控制步骤线性化,即程序的动态实行顺序符合静态书写结构,结构化程序设计的看法是需要设计好结构的程序。

11.详细设计的任务,详细设计的工具及其内容特征:

详细设计的任务是给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计,详细设计的工具可以分为图形、表格、语言三种,包括程序步骤图、盒图(N-S图)、PAD图、类程序设计语言(PDL);

程序步骤图中采用的主要符号包括顺序、选择、循环结构,它的主要缺点如下,程序步骤图本质上不是逐步求精的好工具,它诱使技术员过早的分析程序的控制步骤,而不去分析程序的全局结构,程序步骤图中用箭头代表控制流,因此技术员不受任何约束,可以完全不考虑结构程序设计的精神,随意转移控制,程序步骤图不容易表示数据结构;

PAD是问题解析图的英文缩写,它用二维树形结构的图表示程序的控制流,PAD图的主要优点如下,采用表示结构化控制结构的PAD符号所设计出来的程序势必是结构化程序,PAD图所描述的程序结构十分明确,用PAD图表现程序逻辑,易读、易懂、易记,比较容易将PAD图转换成高级语言源程序,既可用于表示程序逻辑,也可用于描述数据结构,PAD图的符号支持自顶向下逐步求精的采用,PAD图是面向高级程序设计语言的;

类程序设计语言也称为伪码,它是用正文形式表示数据结构和处置过程的设计工具,PDL具备以下特征,关键词的固定语法,提供了结构化控制结构、数据了解明和模块化的方法,自然语言的自由语法,用于描述处置过程和判定条件,数据了解明的方法,既包括容易的数据结构,又包括复杂的数据结构,模块概念和调用的技术,提供各种 接口描述模式;

PDL作为一种设计工具备如下一些优点,可以作为注释直接插在源程序中间,可以采用一般的正文编辑程序或文字处置系统,非常方面的完成PDL的书写和编辑工作,已经有自动处置程序存在,而且可以自动由PDL生成程序代码,PDL的缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表或判定树明确容易。

本章设计题为DFD到模块结构图的转换和详细设计工具的具体应用,为笔试和试验的必考题型,尤为重要,请考生参考辅导第256页(1)~(7)题,务必每一种题型都熟练学会。

原创文章,作者:admin,如若转载,请注明出处:http://www.lubanyouke.com/2263.html