免费智能真题库 > 历年试卷 > 程序员 > 2015年上半年 程序员 上午试卷 综合知识
  第49题      
  知识点:   结构化设计方法   概要设计   概要设计阶段   结构化设计   结构图   设计阶段   体系结构
  关键词:   概要设计   接口   结构化设计   模块   设计阶段   数据        章/节:   系统分析和设计基础知识       

 
结构化设计方法中,概要设计阶段的任务是给出系统的各个模块,确定每个模块 的功能、接口(模块间传递的数据)及调用关系,用模块及对模块的调用来构建软件的体系结构,并采用结构图进行描述。结构图的基本成分有(49)。结构图的形态特 征中,(50)是指一层中最大的模块个数,
 
 
  A.  模块、类和消息
 
  B.  模块、数据流和接口
 
  C.  模块、调用和数据
 
  D.  模块、数据结构和算法
 
 
 

 
  第49题    2017年下半年  
   27%
在结构化分析方法中,用于对功能建模的(49)描述数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能;用于行为建模..
  第58题    2016年上半年  
   34%
在数据库设计过程中,关系规范化属于(58)。
  第53题    2012年上半年  
   47%
(53)不是结构化设计过程中常用的详细设计描述工具。
   知识点讲解    
   · 结构化设计方法    · 概要设计    · 概要设计阶段    · 结构化设计    · 结构图    · 设计阶段    · 体系结构
 
       结构化设计方法
        结构化设计(Structured Design, SD)方法是一种面向数据流的设计方法,它可以与结构化分析(SA)方法衔接。SD方法采用结构图(Structure Chart, SC)来描述程序的结构。
               数据流的类型
               在需求分析阶段,用SA方法产生了数据流图(DFD)。面向数据流的设计能方便地将DFD转换成程序结构图。DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成一条信息流。DFD的信息流大体可分为两种类型:变换流和事务流。
               设计过程
               结构化设计的过程如下。
               (1)精化DFD。
               (2)确定DFD的信息流类型(变换流或事务流)。
               (3)根据流类型分别将变换流或事务流转换成程序结构图。
               (4)根据软件设计的原则对程序结构图做优化。
               (5)描述模块功能、接口及全局数据结构。
               (6)复查。
 
       概要设计
        1)设计软件系统总体结构
        设计软件系统总体结构的基本任务是采用某种设计方法,将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。
        2)数据结构及数据库设计
        (1)数据结构的设计。在需求分析阶段,已经通过数据字典对数据的组成、操作约束和数据之间的关系等方面进行了描述,确定了数据的结构特性,在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。在概要设计阶段,宜使用抽象的数据类型。
        (2)数据库的设计。数据库的设计是指数据存储文件的设计,主要指以下几个方面。
        ①概念设计。在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用ER模型来表述数据模型。
        ②逻辑设计。ER模型是独立于数据库管理系统(DBMS)的,要结合具体的DBMS特征来建立数据库的逻辑结构。
        ③物理设计。物理设计就是设计数据模式的一些物理细节,如数据项存储要求、存取方法和索引的建立等。
        3)编写概要设计文档
        文档主要有概要设计说明书、数据库设计说明书、用户手册以及修订测试计划。
        4)评审
        对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方法的可行性,关键的处理及内外部接口定义的正确性、有效性以及各部分之间的一致性等都一一进行评审。
 
       概要设计阶段
        . 确定可靠性度量;
        . 制定详细的可靠性验收方案;
        . 可靠性设计;
        . 收集可靠性数据;
        . 调整可靠性活动计划;
        . 明确后续阶段的可靠性活动的详细计划;
        . 编制可靠性文档。
 
       结构化设计
        结构化设计包括体系结构设计、接口设计、数据设计和过程设计等任务。它是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、逐步求精和模块化的过程。
        在结构化方法中,模块化是一个很重要的概念,它是指将一个待开发的软件分解成为若干个小的简单部分——模块。每个模块可以独立地开发、测试。这是一种复杂问题的“分而治之”原则,其目的是使程序的结构清晰、易于测试与修改。
        具体来说,模块是指执行某一特定任务的数据结构和程序代码。通常将模块的接口和功能定义为其外部特性,将模块的局部数据和实现该模块的程序代码称为内部特性。在模块设计时,最重要的原则就是实现信息隐蔽和模块独立。模块通常具有连续性,也就意味着作用于系统的小变动将导致行为上的小变化,同时规模说明的小变动也将影响到一小部分模块。
               抽象化
               对软件进行模块设计的时候,可以有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言描述问题的解法。而在较低的抽象层次上,则宜采用过程化的方法。抽象化包括对过程的抽象、对数据的抽象和对控制的抽象。
               (1)过程的抽象。在软件工程过程中,从系统定义到实现,每进展一步都可以看做是对软件解决方案的抽象化过程的一次细化。在从概要设计到详细设计的过程中,抽象化的层次逐渐降低,当产生源程序时到达最低的抽象层次。
               (2)数据抽象。数据抽象与过程抽象一样,允许设计人员在不同层次上描述数据对象的细节。
               (3)控制抽象。控制抽象可以包含一个程序控制机制,而无须规定其内部细节。
               自顶向下,逐步细化
               将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个体系结构。最初的说明只是概念性地描述了系统的功能或信息,并未提供有关功能的内部实现机制或有关信息的内部结构的任何信息。设计人员对初始说明仔细推敲,进行功能细化或信息细化,给出实现的细节,划分出若干成分。然后再对这些成分施行同样的细化工作。随着细化工作的逐步展开,设计人员就能得到越来越多的细节。
               信息隐蔽
               信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,并且尽可能少地暴露其内部的处理过程。通常会将困难的决策、可能修改的决策、数据结构的内部连接,以及对它们所做的操作细节、内部特征码、与计算机硬件有关的细节等隐蔽起来。
               通过信息隐蔽可以提高软件的可修改性、可测试性和可移植性,它也是现代软件设计的一个关键性原则。
               模块独立
               模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系最简单。保持模块的高度独立性也是在设计时的一个很重要的原则。通常用耦合(模块之间联系的紧密程度)和内聚(模块内部各元素之间联系的紧密程度)两个标准衡量,目标是高内聚、低藕合。
               模块的内聚类型通常可以分为7种,根据内聚度从高到低的排序如下表所示。
               
               模块的内聚类型
               与此相对应,模块的耦合类型通常也分为7种,根据耦合度从低到高排序如下表所示。
               
               模块的耦合类型
               除了满足以上两大基本原则之外,通常在模块分解时还需要注意以下事项。
               (1)保持模块的大小适中,尽可能减少调用的深度。
               (2)直接调用该模块的次数应该尽量多,但调用其他模块的次数则不宜过多。
               (3)保证模块是单入口、单出口的。
               (4)模块的作用域应该在模块之内,功能应该是可预测的。
 
       结构图
        结构化设计方法中使用结构图来描述系统的体系结构,指出一个系统由哪些模块组成,以及模块之间的调用关系。结构图的基本成分有:模块、调用和数据。
               模块
               在结构化设计中,模块指具有一定功能并可以用模块名调用的一组程序语句,如函数、子程序等,它们是组成程序的基本单元。
               一个模块具有外部特征和内部特征。模块的外部特征包括:模块的接口(模块名、输入/输出参数、返回值等)和模块功能。模块的内部特征包括:模块的内部数据和完成其功能的程序代码。
               在结构图中,模块用矩形表示,并用名字标识该模块,名字应体现该模块的功能。
               调用
               结构图中模块之间的调用关系用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者。
               数据
               模块间还经常用带注释的短箭头表示模块调用过程中来回传递的信息。箭头尾部带空心圆的表示传递的是数据,带实心圆的表示传递的是控制信息,如下图所示。
               
               模块间的数据传递
               可以在结构图上添加一些辅助符号进一步描述模块间的调用关系。如果一个模块是否调用一个从属模块决定于调用模块内部的判断条件,则该调用模块间的判断调用采用菱形符号表示;如果一个模块通过其内部循环的功能来循环调用一个或多个从属模块,则该调用称为循环调用,用弧形箭头表示。判断调用和循环调用的表示方法如下图所示。
               
               模块调用示例
               结构图的形态特征
               .深度。指结构图控制的层次,也就是模块的层数。
               .宽度。指一层中最大的模块个数。
               .扇出。指一个模块的直接下属模块的个数。
               .扇入。指一个模块的直接上属模块的个数。
 
       设计阶段
        设计阶段监理进行质量控制的要点如下。
        (1)了解建设单位的建设需求和对信息系统安全性的要求,协助建设单位制定项目质量目标规划和安全目标规划。
        (2)对各种设计文件提出设计质量标准。
        (3)进行设计过程跟踪,及时发现质量问题,并及时与承建单位协调解决。审查阶段性成果,并提出监理意见。审查承建单位提交的总体设计方案,审查承建单位对关键部位的测试方案。
        (4)协助承建单位建立质量保障体系。
        (5)协助承建单位完善现场质量管理制度。
        (6)组织设计文件及设计方案交底会,制定质量要求标准。
 
       体系结构
        RPR的体系结构如下图所示。RPR采用了双环结构,由内层的环1和外层的环0组成,每个环都是单方向传送。相邻工作站之间的跨距包含传送方向相反的两条链路。RPR支持多达255个工作站,最大环周长为2000km。
        
        RPR体系结构
   题号导航      2015年上半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第49题    在手机中做本题