免费智能真题库 > 历年试卷 > 软件设计师 > 2016年下半年 软件设计师 上午试卷 综合知识
  第15题      
  知识点:   结构化设计方法   结构化开发方法   数据结构
  关键词:   开发方法   数据结构   算法   开发   数据        章/节:   软件工程基础知识       

 
结构化开发方法中,(15)主要包含对数据结构和算法的设计。
 
 
  A.  体系结构设计
 
  B.  数据设计
 
  C.  接口设计
 
  D.  过程设计
 
 
 

 
  第44题    2017年上半年  
   65%
下图所示为观察者(Observer)模式的抽象示意图,其中( 44)知道其观察者,可以有任何多个观察者观察同一个目标;提供注册和删除观察..
  第16题    2014年上半年  
   36%
模块A提供某个班级某门课程的成绩给模块B,模块B计算平均成绩、最高分和最低分,将计算结果返回给模块A ,则模块B在软件结构图中..
  第32题    2018年下半年  
   47%
以下关于模块化设计的叙述中,不正确的是( )。
   知识点讲解    
   · 结构化设计方法    · 结构化开发方法    · 数据结构
 
       结构化设计方法
               结构化设计(Structured Design,SD)方法是一种面向数据流的设计方法,它可以与SA方法衔接。结构化设计方法的基本思想是将系统设计成由相对独立、功能单一的模块组成的结构。
               结构化设计方法中用结构图(Structure Chart)来描述软件系统的体系结构,指出一个软件系统由哪些模块组成,以及模块之间的调用关系。
               结构化设计的步骤
               结构化设计大致可以分为两步进行,第一步是建立一个满足软件需求规约的初始结构图,第二步是对结构图进行改进。
                      建立初始结构图
                      结构化方法本质上是一种功能分解方法。在结构化设计时,可以将整个软件看作一个大的功能模块(结构图中的模块),通过功能分解将其分解成若干个较小的功能模块,每个较小的功能模块还可以进一步分解,直到得到一组不必再分解的模块(结构图中的底层模块)。当一个功能模块分解成若干个子功能模块时,该功能模块实际上就是根据业务流程调用相应的子功能模块,并根据其功能要求对子功能的结果进行处理,最终实现其功能要求。
                      功能模块的分解应满足自顶向下、逐步求精、信息隐蔽、高内聚低耦合等设计准则,模块的大小应适中。通常,一个模块的大小以so~ioo行程序代码为宜,即一个模块的程序代码可以写在1-2页纸上。
                      对结构图的改进
                      初始结构图往往存在一些不合理的设计(包括不合理的模块分解),因此,可根据设计准则对其进行改进。
                      书写设计文档
                      在概要设计完成之后应书写设计规格说明,特别要为每个模块书写模块的功能、接口、约束和限制等,必要时可建立模块开发卷宗。
                      设计评审
                      对设计结果及文档进行评审。
               数据流图到软件体系结构的映射
               结构化设计是将结构化分析的结果(数据流图)映射成软件的体系结构(结构图)。根据信息流的特点,可将数据流图分为变换型数据流图和事务型数据流图,其对应的映射分别称为变换分析和事务分析。
                      信息流的类型
                      在需求分析阶段,用SA方法产生了数据流图。面向数据流的设计能方便地将DFD转换成程序结构图。DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。DFD的信息流大体上可以分为两种类型:变换流和事务流。
                      (1)变换流。信息沿着输入通路进入系统,同时将信息的外部形式转换成内部表示,然后通过变换中心(也称主加工)处理,再沿着输出通路转换成外部形式离开系统。具有这种特性的信息流称为变换流。变换流型的DFD可以明显地分成输入、变换(主加工)和输出三大部分。
                      (2)事务流。信息沿着输入通路到达一个事务中心,事务中心根据输入信息(即事务)的类型在若干个动作序列(称为活动流)中选择一个来执行,这种信息流称为事务流。事务流有明显的事务中心,各活动流以事务中心为起点呈辐射状流出。
                      变换分析
                      变换分析是从变换流型的DFD导出程序结构图。
                      1)确定输入流和输出流,分离出变换中心
                      把DFD中系统输入端的数据流称为物理输入,系统输出端的数据流称为物理输出。物理输入通常要经过编辑、格式转换、合法性检查、预处理等辅助性的加工才能为主加工的真正输入(称为逻辑输入)。从物理输入端开始,一步步向系统的中间移动,可找到离物理输入端最远,但仍可被看作系统输入的那个数据流,这个数据流就是逻辑输入。同样,由主加工产生的输出(称为逻辑输出)通常也要经过编辑、格式转换、组成物理块、缓冲处理等辅助加工才能变成物理输出。从物理输出端开始,一步步向系统的中间移动,可找到离物理输出端最远,但仍可被看作系统输出的那个数据流,这个数据流就是逻辑输出。
                      DFD中从物理输入到逻辑输入的部分构成系统的输入流,从逻辑输出到物理输出的部分构成系统的输出流,位于输入流和输出流之间的部分就是变换中心。
                      2)第一级分解
                      第一级分解主要是设计模块结构的顶层和第一层。一个变换流型的DFD可以映射成如下图所示的程序结构图。图中顶层模块的功能就是整个系统的功能。输入控制模块用来接收所有的输入数据,变换控制模块用来实现输入到输出的变换,输出控制模块用来产生所有的输出数据。
                      
                      变换分析的第一级分解
                      3)第二级分解
                      第二级分解主要是设计中、下层模块。
                      (1)输入控制模块的分解。从变换中心的边界开始,沿着每条输入通路,把输入通路上的每个加工映射成输入控制模块的一个低层模块。
                      (2)输出控制模块的分解。从变换中心的边界开始,沿着每条输出通路,把输出通路上的每个加工映射成输出控制模块的一个低层模块。
                      (3)变换控制模块的分解。变换控制模块通常没有通用的分解方法,应根据DFD中变换部分的实际情况进行设计。
                      4)事务分析
                      事务分析是从事务流型DFD导出程序结构图。
                      (1)确定事务中心和每条活动流的流特性。下图给出了事务流型DFD的一般形式。其中,事务中心(图中的T)位于数条活动流的起点,这些活动流从该点呈辐射状流出。每条活动流也是一条信息流,它可以是变换流,也可以是另一条事务流。一个事务流型的DFD由输入流、事务中心和若干条活动流组成。
                      
                      事务流图
                      (2)将事务流型DFD映射成高层的程序结构。事务流型DFD的高层结构如下图所示。顶层模块的功能就是整个系统的功能。接收模块用来接收输入数据,它对应于输入流。发送模块是一个调度模块,控制下层的所有活动模块。每个活动流模块对应于一条活动流,它也是该活动流映射成的程序结构图中的顶层模块。
                      
                      事务流型DFD的高层程序结构
                      (3)进一步分解。接收模块的分解类同于变换分析中输入控制模块的分解。每个活动流模块根据其流特性(变换流或事务流)进一步采用变换分析或事务分析进行分解。
                      5)SD方法的设计步骤
                      (1)复查并精化数据流图。
                      (2)确定DFD的信息流类型(变换流或事务流)。
                      (3)根据流类型分别实施变换分析或事务分析。
                      (4)根据系统设计的原则对程序结构图进行优化。
 
       结构化开发方法
        结构化方法由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。结构化分析是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析工作。结构化设计是根据模块独立性准则、软件结构优化准则将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实现系统的概要设计。结构化程序设计是根据结构程序设计原理,将每个模块的功能用相应的标准控制结构表示出来,从而实现详细设计。
        结构化方法总的指导思想是自顶向下、逐层分解,它的基本原则是功能的分解与抽象。它是软件工程中最早出现的开发方法,特别适合于数据处理领域的问题,但是不适合解决大规模的、特别复杂的项目,且难以适应需求的变化。
 
       数据结构
        根据数据元素之间关系的不同特性,通常有下列4类基本的逻辑结构,即集合结构、线性结构、树形结构、图形结构。
        1)线性结构
        线性表是最常用且最简单的一种数据结构。线性表中除第一个元素外,每个元素均只有一个直接前驱;除最后一个元素外,每个元素都只有一个直接后继。
        栈是限定仅在表尾进行插入或删除操作的线性表,是只能通过访问它的一端来实现数据存储和检索的一种线性数据结构。
        队列是一种先进先出(FIFO)的线性表,它只允许在表的一端进行插入,而在另一端删除元素。
        2)树
        树是nn≥0)个互不相交的有限集,当n=0时称为空树。在一棵非空树中,有且仅有一个节点称为根节点;当n>1时,其余的节点可分为若干个不相交的集合,其中每一个集合本身又是一棵树,这些集合称为根节点的子树。
        3)图
        图是由两个集合VE组成的二元组,记为G=(V, E),其中V是顶点的非空有限集合,E是图中边的有限集合。
   题号导航      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 /
 
第15题    在手机中做本题