免费智能真题库 > 历年试卷 > 程序员 > 2012年下半年 程序员 上午试卷 综合知识
  第50题      
  知识点:   结构化分析与设计方法   结构化设计   结构设计   软件体系结构   体系结构
  关键词:   结构化设计   软件体系结构        章/节:   系统分析和设计基础知识       

 
结构化设计中,主要根据(50)进行软件体系结构设计
 
 
  A.  数据流图
 
  B.  实体-关系图
 
  C.  状态-迁移图
 
  D.  数据字典
 
 
 

 
  第49题    2017年下半年  
   27%
在结构化分析方法中,用于对功能建模的(49)描述数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能;用于行为建模..
  第50题    2014年下半年  
   48%
以下关于结构化方法的叙述中,不正确的是(50)。
  第52题    2019年下半年  
   41%
为了避免重复,将在程序中多处出现的一组无关的语句放在一个模块中,则该模块的内聚类型是(52)。
   知识点讲解    
   · 结构化分析与设计方法    · 结构化设计    · 结构设计    · 软件体系结构    · 体系结构
 
       结构化分析与设计方法
               结构化分析方法
               结构化分析方法(SA)的基本思想是将系统分析看成工程项目,有计划、有步骤地进行工作。这是一种应用很广泛的开发方法,适用于分析大型信息系统。结构化分析方法采用"自顶向下,逐层分解"的开发策略。按照这种策略,再复杂的系统也可以有条不紊地进行,只要将复杂的系统适当分层,每层的复杂程度即可降低。
               结构化分析方法的分析结果由以下几个部分组成。
               .一套分层的数据流图(Data Flow Diagram, DFD):用来描述数据流从输入到输出的变换流程。
               .一本数据字典:用来描述DFD中的每个数据流、文件以及组成数据流或文件的数据项。
               .一组小说明(也称加工逻辑说明):用来描述每个基本加工(即不再分解的加工)的加工逻辑。
               DFD的基本成分如下。
               .数据流(Dataflow):由一组固定成分的数据组成。
               .加工(Process):描述输入数据流到输出数据流的变换,也就是输入数据流经过什么处理后变成了输出数据流。
               .数据存储(Datastore):数据存储用来表示暂时存储的数据,每个数据存储都有一个名字。
               .外部实体(External Agent):外部实体是指存在于软件系统之外的人员或组织。
               数据字典有4类条目:数据流、数据项、数据存储和基本加工。加工逻辑一般采用3种工具描述:结构化语言、判定表和判定树。
               结构化设计方法
               结构化设计(Structured Design, SD)方法是一种面向数据流的设计方法,它可以与结构化分析(SA)方法衔接。SD方法采用结构图(Structure Chart, SC)来描述程序的结构。
                      数据流的类型
                      在需求分析阶段,用SA方法产生了数据流图(DFD)。面向数据流的设计能方便地将DFD转换成程序结构图。DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成一条信息流。DFD的信息流大体可分为两种类型:变换流和事务流。
                      设计过程
                      结构化设计的过程如下。
                      (1)精化DFD。
                      (2)确定DFD的信息流类型(变换流或事务流)。
                      (3)根据流类型分别将变换流或事务流转换成程序结构图。
                      (4)根据软件设计的原则对程序结构图做优化。
                      (5)描述模块功能、接口及全局数据结构。
                      (6)复查。
               结构化程序设计方法
               程序设计方法主要有结构化方法、原型方法和面向对象的方法3种。
               1)结构化程序设计方法
               结构化程序设计方法是一种非常有效的方法。结构化的程序设计方法主要强调以下3点。
               .模块内部程序各部分要按自顶向下的结构划分。
               .各程序部分应按功能组合。
               .各程序之间的联系应尽量通过调用子程序(CALL-RETURN)来实现,不用或少用GOTO方式。
               2)快速原型式的程序开发方法
               指在系统开发之初尽快给用户构造一个新系统的模型(原型),反复演示原型并征求用户意见,然后不断修改和完善原型,直到满足用户要求再进而实现系统。
               3)面向对象程序设计方法
               面向对象程序设计方法一般应与OOD所设计的内容相对应。它是一个简单直接的映射过程。即将OOD中所定义的范式直接用面向对象程序(OOP)如C++、Smalltalk等来取代即可。OOP的优势是巨大的,是其他方法所无法比拟的。
 
       结构化设计
        结构化设计包括体系结构设计、接口设计、数据设计和过程设计等任务。它是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、逐步求精和模块化的过程。
        在结构化方法中,模块化是一个很重要的概念,它是指将一个待开发的软件分解成为若干个小的简单部分——模块。每个模块可以独立地开发、测试。这是一种复杂问题的“分而治之”原则,其目的是使程序的结构清晰、易于测试与修改。
        具体来说,模块是指执行某一特定任务的数据结构和程序代码。通常将模块的接口和功能定义为其外部特性,将模块的局部数据和实现该模块的程序代码称为内部特性。在模块设计时,最重要的原则就是实现信息隐蔽和模块独立。模块通常具有连续性,也就意味着作用于系统的小变动将导致行为上的小变化,同时规模说明的小变动也将影响到一小部分模块。
               抽象化
               对软件进行模块设计的时候,可以有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言描述问题的解法。而在较低的抽象层次上,则宜采用过程化的方法。抽象化包括对过程的抽象、对数据的抽象和对控制的抽象。
               (1)过程的抽象。在软件工程过程中,从系统定义到实现,每进展一步都可以看做是对软件解决方案的抽象化过程的一次细化。在从概要设计到详细设计的过程中,抽象化的层次逐渐降低,当产生源程序时到达最低的抽象层次。
               (2)数据抽象。数据抽象与过程抽象一样,允许设计人员在不同层次上描述数据对象的细节。
               (3)控制抽象。控制抽象可以包含一个程序控制机制,而无须规定其内部细节。
               自顶向下,逐步细化
               将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个体系结构。最初的说明只是概念性地描述了系统的功能或信息,并未提供有关功能的内部实现机制或有关信息的内部结构的任何信息。设计人员对初始说明仔细推敲,进行功能细化或信息细化,给出实现的细节,划分出若干成分。然后再对这些成分施行同样的细化工作。随着细化工作的逐步展开,设计人员就能得到越来越多的细节。
               信息隐蔽
               信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,并且尽可能少地暴露其内部的处理过程。通常会将困难的决策、可能修改的决策、数据结构的内部连接,以及对它们所做的操作细节、内部特征码、与计算机硬件有关的细节等隐蔽起来。
               通过信息隐蔽可以提高软件的可修改性、可测试性和可移植性,它也是现代软件设计的一个关键性原则。
               模块独立
               模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系最简单。保持模块的高度独立性也是在设计时的一个很重要的原则。通常用耦合(模块之间联系的紧密程度)和内聚(模块内部各元素之间联系的紧密程度)两个标准衡量,目标是高内聚、低藕合。
               模块的内聚类型通常可以分为7种,根据内聚度从高到低的排序如下表所示。
               
               模块的内聚类型
               与此相对应,模块的耦合类型通常也分为7种,根据耦合度从低到高排序如下表所示。
               
               模块的耦合类型
               除了满足以上两大基本原则之外,通常在模块分解时还需要注意以下事项。
               (1)保持模块的大小适中,尽可能减少调用的深度。
               (2)直接调用该模块的次数应该尽量多,但调用其他模块的次数则不宜过多。
               (3)保证模块是单入口、单出口的。
               (4)模块的作用域应该在模块之内,功能应该是可预测的。
 
       结构设计
        多媒体课件的结构规定了教学软件中各部分教学内容的相互关系及呈现的形式,它反映了教学软件的主要框架及其教学功能,多媒体课件的系统结构大多采用非线性的超媒体结构,在此基础上形成了以下四种组织结构方式。
        ①线性结构:学生顺序地接收信息,从当前帧到下一帧,是一个事先设置好的序列。
        ②树状结构:学生沿着一个树状分支展开学习活动,该树状结构按教学内容的自然逻辑形成。
        ③网状结构:多媒体课件的网状结构是超文本结构,学生可在内容单元之间自由航行,没有预设路径的约束。
        ④复合结构:学生可以在一定范围内自由地航行,但同时受主流信息的线性引导和分层逻辑组织的影响。
 
       软件体系结构
        随着嵌入式技术的发展,特别是在后PC时代,嵌入式软件系统得到了极大的丰富和发展,形成了一个完整的软件体系。如下图所示,这个体系自底向上由3部分组成,分别是嵌入式操作系统、支撑软件和应用软件。
        
        嵌入式系统的软件体系结构
        嵌入式操作系统(Embedded Operating System, EOS)由操作系统内核、应用程序接口、设备驱动程序接口等几部分组成。嵌入式操作一般采用微内核结构。操作系统只负责进程的调度、进程间的通信、内存分配及异常与中断管理最基本的任务,其他大部分的功能则由支撑软件完成。
        嵌入式系统中的支撑软件由窗口系统、网络系统、数据库管理系统及Java虚拟机等几部分组成。对于嵌入式系统来讲,软件的开发环境大部分在通用台式计算机和工作站上运行,但从逻辑上讲,它仍然被认为是嵌入式系统支撑软件的一部分。支撑软件一般用于一些浅度嵌入的系统中,如智能手机、个人数字助理等。
        嵌入式系统中的应用软件是系统整体功能的集中体现。系统的能力总是通过应用软件表现出来的。
 
       体系结构
        RPR的体系结构如下图所示。RPR采用了双环结构,由内层的环1和外层的环0组成,每个环都是单方向传送。相邻工作站之间的跨距包含传送方向相反的两条链路。RPR支持多达255个工作站,最大环周长为2000km。
        
        RPR体系结构
   题号导航      2012年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第50题    在手机中做本题