免费智能真题库 > 历年试卷 > 信息系统管理工程师 > 2012年上半年 信息系统管理工程师 上午试卷 综合知识
  第21题      
  知识点:   功能模块设计原则   模块设计   结构化设计
  关键词:   结构化设计   模块        章/节:   系统分析设计基础知识       

 
结构化设计中,程序模块设计的原则不包括(21)。
 
 
  A.  规模适中
 
  B.  单入口、单出口
 
  C.  接口简单
 
  D.  功能齐全
 
 
 

 
  第24题    2011年上半年  
   33%
模块设计时通常以模块的低耦合为目标,下面给出的四项耦合中,最理想的耦合形式是(24) 。
  第49题    2016年上半年  
   24%
以下关于功能模块设计原则的说法中,不正确的是(49)。
  第35题    2009年下半年  
   32%
模块设计中常用的衡量指标是内聚和耦合,内聚程度最高的是(35);耦合程度最低的是(36)。
   知识点讲解    
   · 功能模块设计原则    · 模块设计    · 结构化设计
 
       功能模块设计原则
        提高聚合程度,降低模块之间的耦合程度是模块设计应该遵循的最重要的两个原则。但除此之外,系统模块设计的过程中,还应该考虑其他方面的一些要求,遵循如下以下原则。
        (1)系统分解有层次。
        首先从系统的整体出发,根据系统的目标以功能划分模块。各个模块即互相配合,又各自具有独立功能,共同实现整个系统的目标。然后,对每个子模块在进一步逐层向下分解,直至分解到最小的模块为止。
        (2)适宜地系统深度和宽度比例。
        系统深度是指系统结构中的控制层次。宽度表示控制的总分布,即统一层次的模块总数的最大值。系统的深度和宽度之间往往有一个较为适宜的比例。深度过大说明系统划分过细,宽度过大可能会导致系统管理难度的加大。
        (3)模块大小适中。
        模块的大小一般使用模块中所包含的语句的数量多少来衡量。有这样一个参考数字,即模块的语句行数在50行~100行为最好,最多不超过500行。
        (4)适度控制模块的扇入扇出。
        模块的扇入指模块直接上级模块的个数,模块的直属下级模块个数即为模块的扇出。模块的扇入数一般来说越大越好,说明该模块的通用性较强。对扇出而言,过大可能导致系统控制和协调比较困难,过小则可能说明该模块本身规模过大。经验证明,扇出的个数最好是3或4,一般不要超过7,如下图所示,模块A的扇出系数为3,模块F的扇入系数为2。
        
        模块的扇入、扇出
        (5)较小的数据冗余。
        如果模块分解不当,会造成大量的数据冗余,这可能引起相关数据分布在不同的模块中,大量原始数据需要调用,大量的中间结果需要保存和传递,以及大量计算工作将要重复进行的情况,可能会降低系统的工作效率。
 
       模块设计
        模块设计阶段中,在系统内部划分成各个基础部分——模块结构,确定系统的总体结构。总体结构与各个分层模块结构的关系是程序实施的重要依据。模块结构采用模块结构图来表示。模块结构图是采用HIPO图形式绘制而成的框图。
        .名称,列出系统中各主要功能的结构图名称和它们之间的关系。
        .功能,用文字简单说明主要模块结构应具有的功能。
        .功能说明,说明是用伪码形式还是用结构化语言形式,或者其他自然语言形式描述模块结构图的。
        .评价。
        .验收,指设计人员验收的决定和处理情况。
 
       结构化设计
        结构化设计包括体系结构设计、接口设计、数据设计和过程设计等任务。它是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、逐步求精和模块化的过程。
        在结构化方法中,模块化是一个很重要的概念,它是指将一个待开发的软件分解成为若干个小的简单部分——模块。每个模块可以独立地开发、测试。这是一种复杂问题的“分而治之”原则,其目的是使程序的结构清晰、易于测试与修改。
        具体来说,模块是指执行某一特定任务的数据结构和程序代码。通常将模块的接口和功能定义为其外部特性,将模块的局部数据和实现该模块的程序代码称为内部特性。在模块设计时,最重要的原则就是实现信息隐蔽和模块独立。模块通常具有连续性,也就意味着作用于系统的小变动将导致行为上的小变化,同时规模说明的小变动也将影响到一小部分模块。
               抽象化
               对软件进行模块设计的时候,可以有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言描述问题的解法。而在较低的抽象层次上,则宜采用过程化的方法。抽象化包括对过程的抽象、对数据的抽象和对控制的抽象。
               (1)过程的抽象。在软件工程过程中,从系统定义到实现,每进展一步都可以看做是对软件解决方案的抽象化过程的一次细化。在从概要设计到详细设计的过程中,抽象化的层次逐渐降低,当产生源程序时到达最低的抽象层次。
               (2)数据抽象。数据抽象与过程抽象一样,允许设计人员在不同层次上描述数据对象的细节。
               (3)控制抽象。控制抽象可以包含一个程序控制机制,而无须规定其内部细节。
               自顶向下,逐步细化
               将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个体系结构。最初的说明只是概念性地描述了系统的功能或信息,并未提供有关功能的内部实现机制或有关信息的内部结构的任何信息。设计人员对初始说明仔细推敲,进行功能细化或信息细化,给出实现的细节,划分出若干成分。然后再对这些成分施行同样的细化工作。随着细化工作的逐步展开,设计人员就能得到越来越多的细节。
               信息隐蔽
               信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,并且尽可能少地暴露其内部的处理过程。通常会将困难的决策、可能修改的决策、数据结构的内部连接,以及对它们所做的操作细节、内部特征码、与计算机硬件有关的细节等隐蔽起来。
               通过信息隐蔽可以提高软件的可修改性、可测试性和可移植性,它也是现代软件设计的一个关键性原则。
               模块独立
               模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系最简单。保持模块的高度独立性也是在设计时的一个很重要的原则。通常用耦合(模块之间联系的紧密程度)和内聚(模块内部各元素之间联系的紧密程度)两个标准衡量,目标是高内聚、低藕合。
               模块的内聚类型通常可以分为7种,根据内聚度从高到低的排序如下表所示。
               
               模块的内聚类型
               与此相对应,模块的耦合类型通常也分为7种,根据耦合度从低到高排序如下表所示。
               
               模块的耦合类型
               除了满足以上两大基本原则之外,通常在模块分解时还需要注意以下事项。
               (1)保持模块的大小适中,尽可能减少调用的深度。
               (2)直接调用该模块的次数应该尽量多,但调用其他模块的次数则不宜过多。
               (3)保证模块是单入口、单出口的。
               (4)模块的作用域应该在模块之内,功能应该是可预测的。
   题号导航      2012年上半年 信息系统管理工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第21题    在手机中做本题