免费智能真题库 > 历年试卷 > 系统架构设计师 > 2021年下半年 系统架构设计师 上午试卷 综合知识
  第25题      
  知识点:   结构化设计   结构化设计   设计工具   数据流
  章/节:   软件开发方法   设计方法       

 
结构化设计是一种面向数据流的设计方法,以下不属于结构化设计工具的是( )。
 
 
  A.  盒图
 
  B.  HIPO图
 
  C.  顺序图
 
  D.  程序流程图
 
 
 

 
  第31题    2017年下半年  
   34%
结构化程序设计采用自顶向下、逐步求精及模块化的程序设计方法,通过( )三种基本的控制结构可以构造出任何单入口单出口的程序。..
 
 
  第33题    2019年下半年  
   65%
软件结构化设计包括   (33)   等任务。
  第31题    2017年下半年  
   34%
结构化程序设计采用自顶向下、逐步求精及模块化的程序设计方法,通过( )三种基本的控制结构可以构造出任何单入口单出口的程序。..
  第27题    2014年下半年  
   57%
在结构化分析方法中,用(27)表示功能模型,用(28)表示行为模型。
   知识点讲解    
   · 结构化设计    · 结构化设计    · 设计工具    · 数据流
 
       结构化设计
        结构化设计包括架构设计、接口设计、数据设计和过程设计等任务。它是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、逐步求精和模块化的过程。
        在结构化方法中,模块化是一个很重要的概念,它是指将一个待开发的软件分解成为若干个小的简单部分——模块。每个模块可以独立地开发、测试。这是一种复杂问题的“分而治之”原则,其目的是使程序的结构清晰、易于测试与修改。
        具体来说,模块是指执行某一特定任务的数据结构和程序代码。通常将模块的接口和功能定义为其外部特性,将模块的局部数据和实现该模块的程序代码称为内部特性。在模块设计时,最重要的原则就是实现信息隐蔽和模块独立。模块通常具有连续性,也就意味着作用于系统的小变动将导致行为上的小变化,同时规模说明的小变动也将影响到一小部分模块。
               抽象化
               对软件进行模块设计的时候,可以有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言描述问题的解法。而在较低的抽象层次上,则宜采用过程化的方法。抽象化包括对过程的抽象、对数据的抽象和对控制的抽象。
               (1)过程的抽象。在软件工程过程中,从系统定义到实现,每进展一步都可以看做是对软件解决方案的抽象化过程的一次细化。在从概要设计到详细设计的过程中,抽象化的层次逐渐降低,当产生源程序时到达最低的抽象层次。
               (2)数据抽象。数据抽象与过程抽象一样,允许设计人员在不同层次上描述数据对象的细节。
               (3)控制抽象。控制抽象可以包含一个程序控制机制而无须规定其内部细节。
               自顶向下,逐步求精
               将软件的架构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个架构。最初的说明只是概念性地描述了系统的功能或信息,但并未提供有关功能的内部实现机制或有关信息的内部结构的任何信息。设计人员对初始说明仔细推敲,进行功能细化或信息细化,给出实现的细节,划分出若干成分。然后再对这些成分,施行同样的细化工作。随着细化工作的逐步展开,设计人员就能得到越来越多的细节。
               信息隐蔽
               信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,并且尽可能少地暴露其内部的处理过程。通常会将困难的决策、可能修改的决策、数据结构的内部连接,以及对它们所做的操作细节、内部特征码、与计算机硬件有关的细节等隐蔽起来。
               通过信息隐蔽可以提高软件的可修改性、可测试性和可移植性,它也是现代软件设计的一个关键性原则。
               模块独立
               模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系最简单。保持模块的高度独立性,也是在设计时的一个很重要的原则。通常用耦合(模块之间联系的紧密程度)和内聚(模块内部各元素之间联系的紧密程度)两个标准来衡量,我们的目标是“高内聚、低耦合”。
               模块的内聚类型通常可以分为7种,根据内聚度从高到低的排序如下表所示。
               
               模块的内聚类型
               模块的耦合类型通常也分为7种,根据耦合度从低到高排序如下表所示。
               
               模块的耦合类型
               除了满足以上两大基本原则之外,通常在模块分解时还需要注意:保持模块的大小适中;尽可能减少调用的深度;直接调用该模块的次数应该尽量多,但调用其他模块的次数则不宜过多;保证模块是单入口、单出口的;模块的作用域应该在模块之内;功能应该是可预测的。
 
       结构化设计
        SD方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与SA方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。
        SD方法的步骤如下:
        (1)评审和细化数据流图。
        (2)确定数据流图的类型。
        (3)把数据流图映射到软件模块结构,设计出模块结构的上层。
        (4)基于数据流图逐步分解高层模块,设计中下层模块。
        (5)对模块结构进行优化,得到更为合理的软件结构。
        (6)描述模块接口。
        SD方法的设计原则是:
        (1)使每个模块执行一个功能(坚持功能性内聚)。
        (2)每个模块使用过程语句(或函数方式等)调用其他模块。
        (3)模块间传送的参数作为数据使用。
        (4)尽量减少模块间共用的信息(如参数等)。
 
       设计工具
        设计工具是指辅助软件设计过程活动的各种软件,它辅助设计人员从软件的需求分析模型出发,得到相应的设计模型。常用的设计工具包括面向对象的设计工具、结构化设计工具和数据库设计工具等。
        在面向对象的设计工具方面,全部建模工具均可作为面向对象的设计工具,目前软件设计人员最常用的设计工具就是IBM Rational Rose。除此之外,IBM Rational的Software Architect和Software Modeler也经常用于软件架构设计。
        在结构化设计工具方面,根据结构化方法学,软件系统的设计模型通常采用模块结构图、E-R图和流程图等图形元素描述,WinA&D可以辅助结构化设计活动。
        在数据库设计工具方面,主要有Rose Data Modeler、PowerDesigner、AllFusion ERwin Data Modeler等。
        IBM Rational公司的Rose Data Modeler是一个独特的基于UML的数据库设计工具,它使数据库设计人员、业务分析人员和开发人员——所有需要理解数据库构造,以及数据库与应用程序之间的交互和映射方式的人员可以用同一种工具和语言协同合作。
        Sybase公司的PowerDesigner是最具集成特性的设计工具集,用于创建高度优化和功能强大的数据库、数据仓库以及与数据密切相关的构件。PowerDesigner提供了一个完整的数据库设计解决方案,业务或系统分析人员、设计人员、数据库管理员和开发人员可以对其裁剪,以满足他们的特定需要,而其模块化的结构为用户购买和扩展提供了极大的灵活性,从而使开发单位可以根据其项目的规模和范围来使用他们所需要的工具。
        Computer Associates公司的AllFusion ERwin Data Modeler 4.0(简称ERwin)是关系数据库应用开发的优秀CASE工具,可用来建立E-R模型。ERwin可以方便地构造实体和联系,表达实体间的各种约束关系,并根据模板创建相应的存储过程、包、触发器、角色等,还可编写相应的PowerBuilder扩展属性,如编辑样式、显示风格、有效性验证规则等。
 
       数据流
        数据流由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向可以有以下几种:从一个加工流向另一个加工;从加工流向数据存储(写);从数据存储流向加工(读);从外部实体流向加工(输入);从加工流向外部实体(输出)。
        DFD中的每个数据流用一个定义明确的名字表示。除了流向数据存储或从数据存储流出的数据流不必命名外,每个数据流都必须有一个合适的名字,以反映该数据流的含义。
        数据流或者由具体的数据属性(也称为数据结构)构成,或者由其他数据流构成。组合数据流是由其他数据流构成的数据流,它们用于在高层的数据流图中组合相似的数据流,以使数据流图更便于阅读。
        控制流是对数据流图的补充,采用虚线表示,是对由触发系统功能的事件进行描述。
        另外,一个加工可以有多个输入数据流和多个输出数据流,此时可以加上一些扩充字符符号或图形元素来描述多个数据流之间的关系。如:
        (1)星号(*)。星号表示数据流之间存在“与”关系。如果是输入流则表示所有输入数据流全部到达后才能进行加工处理;如果是输出流则表示加工结束将同时产生所有的输出数据流。
        (2)加号(+)。加号表示数据流之间存在“或”关系。如果是输入流则表示其中任何一个输入数据流到达后就能进行加工处理;如果是输出流则表示加工处理的结果是至少产生其中一个输出数据流。
        (3)异或(⊕)。异或表示数据流之间存在“互斥”关系。如果是输入流则表示当且仅当其中一个输入流到达后才能进行加工处理;如果是输出流则表示加工处理的结果是仅产生这些输出数据流中的一个。
   题号导航      2021年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第25题    在手机中做本题