免费智能真题库 > 历年试卷 > 嵌入式系统设计师 > 2011年下半年 嵌入式系统设计师 上午试卷 综合知识
  第16题      
  知识点:   结构化设计方法   分析模型   结构化分析
  关键词:   分析模型   接口   结构化分析        章/节:   嵌入式系统的项目开发与维护知识       

 
利用结构化分析模型进行接口设计时,应以(16)为依据。
 
 
  A.  数据流图
 
  B.  实体一关系图
 
  C.  数据字典
 
  D.  状态一迁移图
 
 
 

 
  第52题    2013年下半年  
   54%
结构化分析方法是一种面向数据流的软件需求分析方法,该方法最常用的图形工具是数据流图,与其匹配使用的是(52)。
  第12题    2019年下半年  
   57%
某考试系统的部分功能描述如下:审核考生报名表;通过审核的考生登录系统,系统自动为其生成一套试题;考试中心提供标准答案;阅..
  第16题    2018年下半年  
   44%
某航空公司拟开发一个机票预订系统。旅客使用信用卡付款预订机票,付款通过信用卡公司的信用卡管理系统提供的接口实现。现拟用数..
   知识点讲解    
   · 结构化设计方法    · 分析模型    · 结构化分析
 
       结构化设计方法
        结构化设计是将结构化分析得到的数据流图映射成软件体系结构的一种设计方法,强调模块化、自顶向下逐步求精、信息隐蔽、高内聚、低耦合等设计原则。
        在结构化方法中,软件设计分为概要设计和详细设计两个步骤。概要设计是对软件系统的总体设计,采用结构化设计方法,其任务是将系统分解为模块,确定每个模块的功能、接口(模块间传递的数据)及其调用关系,并用模块及对模块的调用来构建系统体系结构。详细设计是对模块实现细节的设计,采用结构化程序设计方法。
               结构图
               结构化设计方法中使用结构图来描述系统的体系结构,指出一个系统由哪些模块组成,以及模块之间的调用关系。结构图的基本成分有:模块、调用和数据。
                      模块
                      在结构化设计中,模块指具有一定功能并可以用模块名调用的一组程序语句,如函数、子程序等,它们是组成程序的基本单元。
                      一个模块具有外部特征和内部特征。模块的外部特征包括:模块的接口(模块名、输入/输出参数、返回值等)和模块功能。模块的内部特征包括:模块的内部数据和完成其功能的程序代码。
                      在结构图中,模块用矩形表示,并用名字标识该模块,名字应体现该模块的功能。
                      调用
                      结构图中模块之间的调用关系用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者。
                      数据
                      模块间还经常用带注释的短箭头表示模块调用过程中来回传递的信息。箭头尾部带空心圆的表示传递的是数据,带实心圆的表示传递的是控制信息,如下图所示。
                      
                      模块间的数据传递
                      可以在结构图上添加一些辅助符号进一步描述模块间的调用关系。如果一个模块是否调用一个从属模块决定于调用模块内部的判断条件,则该调用模块间的判断调用采用菱形符号表示;如果一个模块通过其内部循环的功能来循环调用一个或多个从属模块,则该调用称为循环调用,用弧形箭头表示。判断调用和循环调用的表示方法如下图所示。
                      
                      模块调用示例
                      结构图的形态特征
                      .深度。指结构图控制的层次,也就是模块的层数。
                      .宽度。指一层中最大的模块个数。
                      .扇出。指一个模块的直接下属模块的个数。
                      .扇入。指一个模块的直接上属模块的个数。
               数据流图到软件体系结构的映射
               在需求分析阶段,用结构化分析方法产生了数据流图。面向数据流的设计能方便地将DFD转换成软件结构图。
               DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。DFD的信息流大体上可以分为两种类型:一种是变换流,另一种是事务流;其对应的映射分别称为变化分析和事务分析。
               (1)变换流。信息沿着输入通路进入系统,同时将信息的外部形式转换成内部表示,然后通过变换中心(也称主加工)处理,再沿着输出通路转换成外部形式离开系统,具有这种特性的信息流称为变换流。变换流型的DFD可明显地分为输入、变换(主加工)和输出三大部分。
               (2)事务流。信息沿着输入通路到达一个事务中心,事务中心根据输入信息(即事务)的类型在若干个动作序列(称为活动流)中选择一个来执行,这种信息流称为事务流。事务流有明显的事务中心,各活动流以事务中心为起点呈辐射状流出。
               从变换流型的DFD导出结构图也称为变换分析。
               (1)确定输入流和输出流,分离出变换中心。把DFD中系统输入端的数据流称为物理输入,系统输出端的数据流称为物理输出。物理输入通常要经过编辑、格式转换、合法性检查、预处理等辅助性的加工才能为主加工的真正输入(称为逻辑输入)。从物理输入端开始,一步步向系统的中间移动,可找到离物理输入端最远,但仍可被看作系统输入的那个数据流,这个数据流就是逻辑输入。同样,由主加工产生的输出(称为逻辑输出)通常也要经过编辑、格式转换、组成物理块、缓冲处理等辅助加工才能变成物理输出。从物理输出端开始,一步步向系统的中间移动,可找到离物理输出端最远,但仍可被看作系统输出的那个数据流,这个数据流就是逻辑输出。
               DFD中从物理输入到逻辑输入的部分构成系统的输入流,从逻辑输出到物理输出的部分构成系统的输出流,位于输入流和输出流之间的部分就是变换中心。
               (2)第一级分解。第一级分解主要是设计模块结构的顶层和第一层。一个变换流型的DFD可以映射成如下图所示的程序结构图。图中顶层模块的功能就是整个系统的功能。输入控制模块用来接收所有的输入数据,变换控制模块用来实现输入到输出的变换,输出控制模块用来产生所有的输出数据。
               
               变换分析的第一级分解
               (3)第二级分解。第二级分解主要是设计中、下层模块。
               ①输入控制模块的分解。从变换中心的边界开始,沿着每条输入通路,把输入通路上的每个加工映射成输入控制模块的一个低层模块。
               ②输出控制模块的分解。从变换中心的边界开始,沿着每条输出通路,把输出通路上的每个加工映射成输出控制模块的一个低层模块。
               ③变换控制模块的分解。变换控制模块通常没有通用的分解方法,应根据DFD中变换部分的实际情况进行设计。
               (4)事务分析。事务分析是从事务流型DFD导出程序结构图。
               ①确定事务中心和每条活动流的流特性。下图给出了事务流型DFD的一般形式。其中,事务中心(图中的T)位于数条活动流的起点,这些活动流从该点呈辐射状流出。每条活动流也是一条信息流,它可以是变换流,也可以是另一条事务流。一个事务流型的DFD由输入流、事务中心和若干条活动流组成。
               
               事务流
               ②将事务流型DFD映射成高层的程序结构。事务流型DFD的高层结构如下图所示。顶层模块的功能就是整个系统的功能。接收模块用来接收输入数据,它对应于输入流。发送模块是一个调度模块,控制下层的所有活动模块。每个活动流模块对应于一条活动流,它也是该活动流映射成的程序结构图中的顶层模块。
               
               事务流型DFD的高层程序结构
               ③进一步分解。接收模块的分解类同于变换分析中输入控制模块的分解。每个活动流模块根据其流特性(变换流或事务流)进一步采用变换分析或事务分析进行分解。
               数据流图映射到结构图的步骤
               从数据流图映射到结构图的步骤如下:
               (1)复审和精化数据流图。首先应复审DFD的顶层图,确保系统的输入、输出数据流符合系统规格说明的要求。然后复审分层DFD,以确保它符合软件的功能需求,必要时对DFD进行净化。
               (2)确定数据流图的类型。如果是变换型,确定变换中心和逻辑输入、逻辑输出的界限,映射为变换结构的顶层和第一层;如果是事务型,确定事务中心和加工路径,映射为事务结构的顶层和第一层。
               (3)分解上层模块,设计中下层模块结构。
               (4)根据优化准则对软件结构求精。
               (5)描述模块功能、接口及全局数据结构。
               (6)复查,如果有错,转向第(2)步修改完善,否则进入详细设计阶段。
 
       分析模型
        9.3.1节从用户的观点对系统进行了用例建模,但获得了用例并不意味着分析的结束,还要对需求进行深入研究,获取关于问题域本质内容的分析模型。分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及它们如何保持通信实现系统行为(动态模型)。
        为了使模型独立于具体的开发语言,需要把注意力集中在概念性问题上而不是软件技术问题上,这些技术的起始点就是领域模型。领域模型又称为概念模型或域模型,也就是找到代表那些事物与概念的对象,即概念类。概念类可以从用例模型中获得灵感,经过完善将形成分析模型中的分析类。在迭代开发过程中,每一个用例对应一个类图,描述参与这个用例实现的所有概念类,用例的实现主要通过交互图来表示。
        建立分析模型包括以下基本活动:
        (1)发现领域对象,定义概念类。发现类的方法有很多种,其中最广泛应用的莫过于“名词动词法”。它的主要规则是从名词与名词短语中提取对象与属性;从动词与动词短语中提取操作与关联;而所有格短语通常表明名词应该是属性而不是对象。
        (2)识别对象的属性。属性是描述对象静态特征的一个数据项。可以与用户进行交谈,提出问题来帮助寻找对象的属性。属性是概念类所拥有的特性,从概念建模的角度看,属性越简单越好,要保持属性的简单性,应该做到4个方面:仅定义与系统责任和系统目标有关的属性;使用简单数据类型来定义属性;不使用可由其他属性导出的属性(冗余属性);不为对象关联定义属性。最后,要对属性加以说明,包括名称和解释、数据类型,以及其他的一些要求。
        (3)识别对象的关系,包括建立类的泛化关系、对象的关联关系。理清类之间的层次关系,决定类之间的关系类型,确定关系的多重性和角色的导向性。多重性指定所在类可以实例化的对象数量(重数),即该类的多少个对象在一段特定的时间内可以与另一个类的一个对象相关联;导向性表示可以通过关联从源类导向到目标类,也就是说给定关联一端的对象就能够容易并直接地得到另一端的对象。
        (4)为类添加职责。找到了反映问题域本质的主要概念类,而且还理清它们之间的协作关系之后,我们就可以为这些类添加其相应的职责。类的职责包括两个主要内容,分别是类所维护的知识、类能够执行的行为。可以使用状态图来描述系统中单个对象的行为。
        (5)建立交互图。多个对象的行为通常采用对象交互来表示,UML 2.0提供的交互图有顺序图、交互概览图、通信图和定时图。每种图出于不同视点对行为有不同的表现能力,其中最常用的是顺序图,几乎可以用在任何系统的场合。顺序图的基本元素有对象、参与者、生命线、激活框、消息和消息路线,其中消息是顺序图的灵魂。
        :在整个开发的过程中,分析模型是不断演变的,最初的分析模型主要是围绕着领域知识进行的,对现实的事物进行建模。而后,则不断地加入设计的元素,演变成为运行于计算机上的架构和结构。其演变过程中最主要的变化体现在以下3个方面:
        (1)根据鲁棒分析和交互分析的结果,补充类的属性和操作,不断地细化其内容,更细致地刻化类之间的关联关系,以便体现代码的核心。
        (2)添加许多与计算机实现相关的技术类,以体现系统的实现结构。
        (3)利用分析模式、设计模式对类模型进行优化。
 
       结构化分析
        SA方法使用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下、逐层分解,直至找到满足功能要求的所有可实现的软件为止。SA方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表及判定树等。
        SA方法的步骤如下:
        (1)分析当前的情况,做出反映当前物理模型的数据流图(Data Flow Diagram, DFD)。
        (2)推导出等价的逻辑模型的DFD。
        (3)设计新的逻辑系统,生成数据字典和基元描述。
        (4)建立人机接口,提出可供选择的目标系统物理模型的DFD。
        (5)确定各种方案的成本和风险等级,据此对各种方案进行分析。
        (6)选择一种方案。
        (7)建立完整的需求规约。
   题号导航      2011年下半年 嵌入式系统设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第16题    在手机中做本题