免费智能真题库 > 历年试卷 > 软件设计师 > 2016年上半年 软件设计师 上午试卷 综合知识
  第31题      
  知识点:   系统设计的基本原理   系统总体结构设计
  关键词:   模块        章/节:   软件工程基础知识       

 
在设计软件的模块结构时,(31)不能改进设计质量。
 
 
  A.  模块的作用范围应在其控制范围之内
 
  B.  模块的大小适中
 
  C.  避免或减少使用病态连接(从中部进入或访问一个模块)
 
  D.  模块的功能越单纯越好
 
 
 

 
  第16题    2020年下半年  
   24%
良好的启发式设计原则上不包括( )。
  第32题    2018年下半年  
   47%
以下关于模块化设计的叙述中,不正确的是( )。
  第44题    2019年下半年  
   67%
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。该绘图软件的扩展性要求将不断扩充新的图形和新的绘图程序。以绘制..
   知识点讲解    
   · 系统设计的基本原理    · 系统总体结构设计
 
       系统设计的基本原理
               抽象
               抽象是一种设计技术,重点说明一个实体的本质方面,而忽略或者掩盖不太重要或非本质的方面。抽象是一种重要的工具,用来将复杂的现象简化到可以分析、实验或者可以理解的程度。软件工程中从软件定义到软件开发要经历多个阶段,在这个过程中每前进一步都可看作是对软件解法的抽象层次的一次细化。抽象的最底层就是实现该软件的源程序代码。在进行模块化设计时也可以有多个抽象层次,最高抽象层次的模块用概括的方式叙述问题的解法,较低抽象层次的模块是较高抽象层次模块对问题解法描述的细化。
               模块化
               模块在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,例如高级语言中的过程、函数和子程序等。在软件的体系结构中,模块是可组合、分解和更换的单元。
               模块化是指将一个待开发的软件分解成若干个小的简单部分——模块,每个模块可独立地开发、测试,最后组装成完整的程序。这是一种复杂问题"分而治之"的原则。模块化的目的是使程序的结构清晰,容易阅读、理解、测试和修改。
               信息隐蔽
               信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,在定义每一个模块时尽可能少地显露其内部的处理。在设计时首先列出一些可能发生变化的因素,在划分模块时将一个可能发生变化的因素隐蔽在某个模块的内部,使其他模块与这个因素无关。当这个因素发生变化时,只需修改含有这个因素的模块,而与其他模块无关。
               信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。
               模块独立
               模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。衡量模块独立程度的标准有两个:耦合性和内聚性。
               1)耦合
               耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型等。一般模块之间可能的耦合方式有7种类型:
               无直接耦合。指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此,模块间耦合性最弱,模块独立性最高。
               数据耦合。指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。
               标记耦合。指两个模块之间传递的是数据结构。
               控制耦合。指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择地执行模块内的某一功能。因此,被调用模块应具有多个功能,哪个功能起作用受调用模块控制。
               外部耦合。模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)时称为外部耦合。
               公共耦合。指通过一个公共数据环境相互作用的那些模块间的耦合。
               内容耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时,这种模块之间的耦合称为内容耦合。
               2)内聚
               内聚是对一个模块内部各个元素彼此结合的紧密程度的度量。一个内聚程度高的模块(在理想情况下)应当只做一件事。一般模块的内聚性分为7种类型:
               偶然内聚(巧合内聚)。指一个模块内的各处理元素之间没有任何联系。
               逻辑内聚。指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
               时间内聚。把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。
               过程内聚。指一个模块完成多个任务,这些任务必须按指定的过程执行。
               通信内聚。指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。
               顺序内聚。指一个模块中的各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
               功能内聚。这是最强的内聚,指模块内的所有元素共同作用完成一个功能,缺一不可。
               耦合性和内聚性是模块独立性的两个定性标准,在将软件系统划分模块时,应尽量做到高内聚、低耦合,提高模块的独立性。
 
       系统总体结构设计
        系统总体结构设计是要根据系统分析的要求和组织的实际情况对新系统的总体结构形式和可利用的资源进行大致设计,这是一种宏观、总体上的设计和规划。下面介绍系统总体设计的主要内容。
               系统结构设计原则
               为保证总体结构设计顺利完成,应遵循以下几条原则。
               (1)分解-协调原则。整个系统是一个整体,具有整体目的和功能,但这些目的和功能的实现又是由相互联系的各个组成部分共同工作的结果。解决复杂问题的一个很重要的原则就是把它分解成多个小问题分别处理,在处理过程中根据系统总体要求协调各部门的关系。
               (2)自顶向下的原则。首先抓住系统总的功能目的,然后逐层分解,即先确定上层模块的功能,再确定下层模块的功能。
               (3)信息隐蔽、抽象的原则。上层模块只规定下层模块做什么和所属模块间的协调关系,但不规定怎么做,以保证各模块的相对独立性和内部结构的合理性,使得模块与模块之间层次分明,易于理解、实施和维护。
               (4)一致性原则。要保证整个软件设计过程中具有统一的规范、统一的标准和统一的文件模式等。
               (5)明确性原则。每个模块必须功能明确、接口明确,消除多重功能和无用接口。
               (6)模块之间的耦合尽可能小,模块的内聚度尽可能高。
               (7)模块的扇入系数和扇出系数要合理。一个模块直接调用其他模块的个数称为模块的扇出系数;反之,一个模块被其他模块调用时,直接调用它的模块个数称为模块的扇入系数。模块的扇入、扇出系数必须适当。经验表明,一个设计得好的系统的平均扇入、扇出系数通常是3或4,一般不应超过7,否则会引起出错概率的增大。但菜单调用型模块的扇入与扇出系数可以大一些,公用模块的扇入系数可以大一些。
               (8)模块的规模适当。过大的模块常常使系统分解得不充分,其内部可能包含了若干部分的功能,因此有必要进一步把原有的模块分解成若干功能尽可能单一的模块。但分解也必须适度,因为过小的模块有可能降低模块的独立性,造成系统接口的复杂性。
               子系统划分
               1)子系统划分的原则
               为了便于今后的系统开发和系统运行,子系统的划分应遵循以下几点原则。
               (1)子系统要具有相对独立性。子系统的划分,必须使得子系统的内部功能、信息等各方面的凝聚性较好。子系统独立可以减少子系统间的相互影响,有利于多人分工开发不同的模块,从而提高软件产品的生产率,保证软件产品的质量,同时也增强了系统的可维护性和适应性。
               (2)子系统之间数据的依赖性尽量小。子系统之间的联系要尽量减少,接口要简单明确。一个内部联系强的子系统对外部的联系必然很少,所以在划分的时候,应将联系较多者列入子系统内部,而剩余的一些分散、跨度比较大的联系,就成为这些子系统间的联系和接口。这样划分的子系统,将来调试、维护和运行都是非常方便的。
               (3)子系统划分的结果应使数据冗余较小。如果把相关的功能数据分布到各个不同的子系统中,则会有大量的原始数据需要调用,大量的中间结果需要保存和传递,大量的计算工作将要重复进行,从而使得程序结构紊乱,数据冗余,不仅给编码带来很大的困难,而且系统的工作效率也大大降低。
               (4)子系统的设置应考虑今后管理发展的需要。子系统的设置仅依靠上述系统分析的结构是不够的,因为现存的系统由于各种原因,很可能没有考虑到一些高层次管理决策的要求。
               (5)子系统的划分应便于系统分阶段实现。信息系统的开发是一项较大的工程,它的实现一般要分批进行,所以子系统的划分应能适应这种分期分批的实施。另外,子系统的划分还必须兼顾组织结构的要求。
               (6)子系统的划分应考虑到各类资源的充分利用。一个适当的子系统划分应该既考虑有利于各种设备资源在开发过程中的搭配使用,又考虑到各类信息资源的合理分布和充分使用,以减少系统对网络资源的过分依赖,减少输入、输出和通信等设备压力。
               2)子系统结构设计
               子系统结构设计的任务是确定划分后的子系统模块结构,并画出模块结构图。在进入这个过程中必须考虑以下几个问题。
               (1)每个子系统如何划分成多个模块。
               (2)如何确定子系统之间、模块之间传送的数据及其调用关系。
               (3)如何评价并改进模块结构的质量。
               (4)如何从数据流图导出模块结构图。
               系统模块结构设计
               1)模块的概念
               模块是组成系统的基本单位,它的特点是可以组合、分解和更换。系统中的任何一个处理功能都可以看成是一个模块。根据功能具体化程度的不同,模块可以分为逻辑模块和物理模块。在系统逻辑模型中定义的处理功能可视为逻辑模块。物理模块是逻辑模块的具体化,可以是一个计算机程序、子程序或若干条程序语句,也可以是人工过程的某项具体工作。
               一个模块应具备以下4个要素。
               (1)输入和输出。模块的输入来源和输出去向都是同一个调用者,即一个模块从调用者那里取得输入,进行加工后再把输出返回给调用者。
               (2)处理功能。指模块把输入转换成输出所做的工作。
               (3)内部数据。指仅供该模块本身引用的数据。
               (4)程序代码。指用来实现模块功能的程序。
               前两个要素是模块外部特性,反映了模块的外貌。后两个要素是模块的内部特性。在结构化设计中,主要考虑的是模块的外部特性,对其内部特性只做必要了解,具体的实现将在系统实施阶段完成。
               2)模块结构图
               为了保证系统设计工作的顺利进行,结构设计应遵循以下原则。
               (1)所划分的模块其内部的凝聚性要强,模块之间的联系要少,即模块具有较强的独立性。
               (2)模块之间的连接只能存在上下级之间的调用关系,不能有同级之间的横向联系。
               (3)整个系统呈树状结构,不允许网状结构或交叉调用关系出现。
               (4)所有模块(包括后继IPO图)都必须严格地分类编码并建立归档文件。
               模块结构图主要关心的是模块的外部属性,即上下级模块、同级模块之间的数据传递和调用关系,并不关心模块的内部。
               模块结构图是结构化设计中描述系统结构的图形工具。作为一种文档,它必须严格地定义模块的名字、功能和接口,同时还应当在模块结构图上反映出结构化设计的思想。
               数据存储设计
               信息系统的主要任务是从大量的数据中获得管理所需要的信息,这就必须存储和管理大量的数据。因此,建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。
               数据结构组织和数据库或文件设计,就是要根据数据的不同用途、使用要求、统计渠道和安全保密性等来决定数据的整体组织形式、表或文件的形式,以及决定数据的结构、类别、载体、组织方式、保密级别等一系列的问题。
               一个好的数据结构和数据库应该充分满足组织的各级管理要求,同时还应该使后继系统的开发工作方便、快捷、系统开销(如占用空间、网络传输频度、磁盘或光盘读写次数等)小、易于管理和维护。
               在建立了数据的整体结构之后,剩下的就是要确定数据的资源分布和安全保密性。其中,数据资源的分布是针对分布数据库系统而言的,而安全保密属性的定义则是针对某些特殊信息,例如财务数据等而言的。
               (1)数据资源分布。如果所规划和设计的系统是在网络环境之下,那么数据库设计必须考虑整个数据资源在网络各节点(包括网络服务器)上的分配问题。
               (2)数据的安全保密。一般数据库软件都提供定义数据安全保密性的基本功能。系统所提供的安全保密功能一般有8个等级(0-7级),4种不同方式(只读、只写、删除、修改),而且允许用户利用这8个等级的4种方式对每一个表自由地进行定义。
   题号导航      2016年上半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第31题    在手机中做本题