免费智能真题库 > 历年试卷 > 网络工程师 > 2010年上半年 网络工程师 上午试卷 综合知识
  第7题      
  知识点:   软件设计   抽象   模块独立   模块化   软件系统   信息隐蔽
  关键词:   模块化   软件设计   软件系统   信息隐蔽   模块        章/节:   系统开发基础知识       

 
软件设计时需要遵循抽象模块化信息隐蔽模块独立原则。在划分软件系统模块时,应尽量做到(7)。
 
 
  A.  高内聚高耦合
 
  B.  高内聚低耦合
 
  C.  低内聚高耦合
 
  D.  低内聚低耦合
 
 
 

 
  第8题    2012年上半年  
   35%
软件开发的增量模型(8)。
  第5题    2009年下半年  
   35%
面向对象开发方法的基本思想是尽可能按照人类认识客观世界的方法来分析和解决问题,(5)方法不属于面向对象方法。
  第10题    2015年上半年  
   19%
王某是某公司的软件设计师,每当软件开发完成后均按公司规定编写软件文档,并提交公司存档,那么该软件文档的著作权(10)享有。
   知识点讲解    
   · 软件设计    · 抽象    · 模块独立    · 模块化    · 软件系统    · 信息隐蔽
 
       软件设计
        从技术角度上讲,软件设计分成体系结构设计、数据设计、接口设计、过程设计4方面的工作。从管理角度上讲,软件设计分为概要设计、详细设计两个阶段。
        1)软件设计的基本原理
        软件设计的基本原理如下。
        (1)模块化:将一个待开发的软件分解成若干个小的简单的部分——模块,每个模块可独立地开发、测试,最后组装成完整的程序。
        (2)抽象化:抽象是一种设计技术,抽出事物本质的共同特性而暂不考虑它的细节。
        (3)信息隐蔽:将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理,可以提高软件的可修改性、可测试性和可移植性。
        (4)模块独立:每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。衡量度量标准有两个:模块间的耦合和模块的内聚度。要想使模块独立性强必须做到高内聚低耦合。
        2)结构化设计方法
        结构化设计(SD)方法是一种面向数据流的设计方法,它可以与SA方法链接。
        在需求分析阶段,用SA方法产生了数据流图。面向数据流的设计能方便地将DFD转换成程序结构图。DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。DFD的信息流大体上可以分为两种类型,一种是变换流,另一种是事务流。
        3)软件详细设计
        详细设计的任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。
        结构化程序设计的基本要点如下。
        .采用自顶向下、逐步求精的程序设计方法。
        .使用顺序、选择、重复3种基本控制结构构造程序。
        .主程序员组的组织形式。
        处理过程设计的关键是用一种合适的表达方法来描述每个模块的执行过程。这种表示方法应该简明、精确,并因此能直接导出用编程语言表示的程序。
        .程序流程图。其包括3种基本成分:加工步骤,用方框表示;逻辑条件,用菱形表示;控制流,用箭头表示。
        .盒图(N-S图)。在N-S图中,每个处理步骤用一个盒子表示,盒子可以嵌套。盒子只能从上头进入,从下头走出,此外别无其他出入口,所以盒图限制了随意的控制转移,保证了程序的良好结构。
        .形式语言。形式语言是用来描述模块具体算法的非正式而比较灵活的语言。形式语言的优点是接近自然语言,所以易于理解。
        .决策树。决策树是一种图形工具,适合于描述加工中具有多个策略、每个策略和若干条件有关的逻辑功能。
        .决策表。决策表是一种图形工具,呈表形。决策表将比较复杂的决策问题简洁地描述出来。
        4)面向数据结构设计——Jackson方法
        面向数据结构设计是以数据结构作为设计的基础,它根据输入输出数据结构导出程序的结构,适用于规模不大的数据处理系统,Jackson方法是一种典型的面向数据结构的设计方法。
        5)用户界面设计
        用户界面设计是系统与用户之间的接口,也是控制和选择信息输入输出的主要途径。用户界面设计应坚持友好、简便、实用、易于操作的原则。
        界面设计包括菜单方式、会话方式、操作提示方式以及操作权限管理方式等。
 
       抽象
        抽象是一种设计技术,重点说明一个实体的本质方面,而忽略或者掩盖不很重要或非本质的方面。抽象是一种重要的工具,用来将复杂的现象简化到可以分析、实验或者可以理解的程度。软件工程中从软件定义到软件开发要经历多个阶段,在这个过程中每前进一步都可看作是对软件解法的抽象层次的一次细化。抽象的最低层就是实现该软件的源程序代码。在进行模块化设计时也可以有多个抽象层次,最高抽象层次的模块用概括的方式叙述问题的解法,较低抽象层次的模块是对较高抽象层次模块对问题解法描述的细化。
 
       模块独立
        模块独立是指模块只完成系统要求的独立的子功能,并且与其他模块的接口简单,符合信息隐蔽和信息局部化原则,模块间关联和依赖程度尽可能小。衡量模块独立性的标准是耦合度和内聚度。内聚度是衡量同一个模块内部的各个元素彼此结合的紧密程度;耦合度是衡量不同模块彼此间相互依赖的紧密程度。
        (1)内聚。内聚是一个模块内部各个元素彼此结合的紧密程度的度量。一个内聚程度高的模块(在理想情况下)应当只做一件事。一般模块的内聚性分为7种类型,如下图所示。
        
        内聚的种类
        .偶然内聚(巧合内聚)。指一个模块内的各处理元素之间没有任何联系。
        .逻辑内聚。指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
        .时间内聚。把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。
        .过程内聚。指一个模块完成多个任务,这些任务必须按指定的过程执行。
        .通信内聚。指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。
        .顺序内聚。指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
        .功能内聚。这是最强的内聚,指模块内所有元素共同作用完成一个功能,缺一不可。
        (2)耦合。耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型等。一般模块之间可能的耦合方式有7种类型,如下图所示。
        
        耦合的种类
        .无直接耦合。指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此,模块间耦合性最弱,模块独立性最高。
        .数据耦合。指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。
        .标记耦合。指两个模块之间传递的是数据结构。
        .控制耦合。指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择地执行模块内某一功能。因此,被调用模块内应具有多个功能,哪个功能起作用受调用模块控制。
        .外部耦合。模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)时,称为外部耦合。
        .公共耦合。指通过一个公共数据环境相互作用的那些模块间的耦合。
        .内容耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部,这种模块之间的耦合为内容耦合。
 
       模块化
        模块是程序中数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素。在系统体系结构中,模块是可组合、可分解和可更换的单元。
        模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
        开发一个大而复杂的系统,将它进行适当的分解,不但可降低其复杂性,还可减少开发工作量,从而降低开发成本,提高软件生产率。这是模块划分的依据。
        (1)划分模块时,尽量做到高内聚、低耦合,保持模块的相对独立性,并以此原则优化初始的系统体系结构。
        (2)一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。
        一个模块的作用范围是指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身及其所有下属模块(直接或者间接从属于它的模块)的集合。
        (3)系统结构的深度、宽度、扇入和扇出应适当。
        (4)模块的大小要适中。
 
       软件系统
        网络系统软件包括网络操作系统和网络协议等。网络操作系统是指能够控制和管理网络资源的软件,是由多个系统软件组成,在基本系统上有多种配置和选项可供选择,使得用户可根据不同的需要和设备构成最佳组合的互联网络操作系统。网络协议是保证网络中两台设备之间正确传送数据的约定。
 
       信息隐蔽
        信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息对于不需要这些信息的其他模块来说,是不能访问的。通过抽象,可以确定组成软件的过程实体;通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。
        由于一个系统在整个生存期内要经过多次修改,所以在划分模块时要采取措施,使得大多数过程和数据对软件的其他部分是隐蔽的。这样,在将来修改软件时偶然引入错误所造成的影响可以局限在一个或几个模块内部,避免影响到软件的其他部分。
   题号导航      2010年上半年 网络工程师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第7题    在手机中做本题