免费智能真题库 > 历年试卷 > 信息系统管理工程师 > 2022年下半年 信息系统管理工程师 上午试卷 综合知识
  第35题      
  知识点:   结构化分析方法的工具   需求分析阶段   开发过程   需求分析
  关键词:   分析阶段   软件开发过程   需求分析   开发   开发过程   软件开发   需求        章/节:   系统分析设计基础知识       

 
软件开发过程中,需求分析阶段的输出不包括_(35)。
 
 
  A.  数据流图
 
  B.  实体联系图
 
  C.  数据字典
 
  D.  软件体系结构图
 
 
 

  相关试题:系统分析设计基础知识          更多>  
 
  第26题    2024年上半年  
   0%
( )是开发单位与用户间交流的桥梁,同时也是系统设计的基础和依据。
  第43题    2014年上半年  
   40%
信息系统总体设计阶段的任务包括( )。
  第35题    2016年上半年  
   29%
假设某公司业务的用例模型中,“检验”用例需要等到“生产”用例执行之后才能执行,这两个用例之间的关系属..
   知识点讲解    
   · 结构化分析方法的工具    · 需求分析阶段    · 开发过程    · 需求分析
 
       结构化分析方法的工具
               数据流图
               数据流图(Data Flow Diagram,DFD)是一种最常用的结构化分析工具,它从数据传递和加工的角度,以图形的方式刻画系统内数据的运动情况。数据流图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储的情况。数据流图具有抽象性和概括性。抽象性表现在它完全舍去了具体的物质,只剩下数据的流动、加工处理和存储;概括性表现在它可以把信息中的各种不同业务处理过程联系起来,形成一个整体。无论是手工操作部分还是计算机处理部分,都可以用它表达出来。因此,我们可以采用DFD这一工具来描述管理信息系统的各项业务处理过程。
               (1)数据流图的基本成分。
               数据流图用到4个基本符号,即外部实体、数据流、数据存储和处理逻辑,如下图所示。
               
               数据流图的基本成分
               ①外部实体。外部实体指不受系统控制,在系统以外又与系统有联系的事物或人,它表达了目标系统数据的外部来源或去处。例如,顾客、职工、供货单位,等等。外部实体也可以是另外一个信息系统。
               外部实体用一个正方形,并在其左上角外边另加一个直角来表示,在正方形内写上该外部实体的名称。为了区分不同的外部实体,可以在正方形的左上角用一个字符表示。在数据流图中,为了减少线条的交叉,同一个外部实体在一张数据流图中可以出现多次,这是在该外部实体符号的右下角画斜线,表示重复。若重复的外部实体有多个,则相同的外部实体画数目相同的斜线,如下图所示。
               
               外部实体
               ②数据流。数据流表示数据的流动方向,用一个水平箭头或垂直箭头表示。数据流可以是订单、发票等。数据流一般不会是单纯的数据,而是由一些数据项组成。例如“发票”数据流由品名、规格、单位、单价、数量等数据项组成。
               一般来说,对每个数据流要加以简单地描述,使用户和系统设计员能够理解一个数据流的含义。对数据流的描述写在箭头的上方,一些含义十分明确的数据流,也可以不加以说明,如下图所示。
               
               数据流的图示
               ③数据存储。数据存储表示数据保存的地方。这里的“地方”并不是指保存数据的物理地点或物理介质,而是指数据存储的逻辑描述。所以这里的数据存储是逻辑意义上的数据存储环节,即系统信息处理功能需要的,不考虑存储的物理介质和技术手段的数据存储环节。
               在数据流图中,数据存储用一个右边开口的长方形条来表示,图形右部填写存储的数据和数据集的名字,名字要恰当,以便用户理解。左边填写该数据存储的标识,用字母D和数字组成。同一数据存储可在一张数据流图中出现多次,这时在数据存储符号上画竖线,表示重复。
               指向数据存储的箭头,表示送数据到数据存储(存放、改写等);从数据存储发出的箭头,表示从数据存储读取数据,如下图所示。
               
               数据存储
               ④处理逻辑(加工)处理逻辑指对数据的逻辑处理功能,也就是对数据的变换功能。它包括两方面的内容:一是改变数据结构;二是在原有数据内容基础上增加新的内容,形成新的数据。
               在数据流图中,处理逻辑可以用一个带圆角的长方形来表示,长方形分为三个部分,如下图所示。
               
               处理逻辑
               标识部分用来标明一个功能,一般用字符串表示,如P1,P1.1等。
               功能描述部分是必不可少的,它直接表达这个处理逻辑的逻辑功能。一般用一个动词加一个作动词宾语的名词表示。不过要恰如其分地表达一个处理的功能,有时候需要下一番功夫。
               功能执行部分表示这个功能由谁来完成,可以是一个人,也可以是一个部门,甚至可以是某个计算机程序。
               (2)数据流图的绘制。
               由于数据流图在系统建设中的重要作用,绘制数据流图必须坚持正确的原则和运用科学的方法。绘制数据流图应遵循的主要原则如下。
               ①确定外部项。一张数据流图表示某个子系统或某个系统的逻辑模型。系统分析人员要根据调查材料,首先识别出那些不受所描述的系统的控制,但又影响系统运行的外部环境,这就是系统的数据输入的来源和输出的去处。要把这些因素都作为外部项确定下来。确定了系统和外部环境的界面,就可集中力量分析,确定系统本身的功能。
               ②自顶向下逐层扩展。信息系统庞大而复杂,具体的数据加工可能成百上千,关系错综复杂,不可能用一两张数据流图明确、具体地描述整个系统的逻辑功能,自顶向下的原则为我们绘制数据流图提供了一条清晰的思路和标准化的步骤。
               ③合理布局。数据流图的各种符号要布局合理,分布均匀、整齐、清晰,使读者一目了然。这才便于交流,避免产生误解。一般要把系统数据主要来源的外部项尽量安排在左方,而要把数据主要去处的外部项尽量安排在右边,数据流的箭头线尽量避免交叉或过长,必要时可用重复的外部项和重复的数据存储符号。
               ④数据流图只反映数据流向、数据加工和逻辑意义上的数据存储,不反映任何数据处理的技术过程、处理方式和时间顺序,也不反映各部分相互联系的判断与控制条件等技术问题。这样,只从系统逻辑功能上讨论问题,便于和用户交流。
               ⑤数据流图绘制过程,就是系统的逻辑模型的形成过程,必须始终与用户密切接触、详细讨论、不断修改,也要和其他系统建设者共同商讨以求一致意见。
               (3)数据流图的改进。
               对每个系统都有一个逐步熟悉和深化的过程,因此在画数据流图时难免会有这样或那样的错误,这就需要对数据流图做进一步的改进。一般可从下面两个方面着手。
               ①检查数据流图的正确性。
               .数据是否守恒,即输入数据与输出数据是否匹配。数据不守恒的情况有两种。一种是某个处理过程产生输出数据,但没有输入数据给该处理过程,这肯定是某些数据流被遗漏了。另一种是有输入数据给处理过程,但没有输出数据,这种情况不一定是错误,但必须认真加以推敲:为什么将这些数据输入给这个处理过程,而处理过程却不利用它产生输出?如果确实是不必要的,就可将它去掉,以简化处理逻辑之间的联系。
               .数据存储的使用是否恰当。在一套数据流图中的任何一个数据存储,必定有流入的数据流和流出的数据流,即写文件和读文件,缺少任何一种都意味着遗漏了某些处理逻辑。
               .父图和子图是否平衡。父图中某一处理框的输入、输出数据流必须出现在相应的子图中,否则就会出现父图与子图的不平衡。父图和子图的数据流不平衡是一种常见的错误现象。尤其是在对子图进行修改时(如添加或删除某些数据流),必须仔细检查其父图是否要做相应的修改,以保持数据流的平衡。父图与子图的关系,类似于全国地图与各省地图的关系。在全国地图上标出主要的铁路、河流,在各省地图上标得则更详细,除了有全国地图上与该省相关的铁路、河流之外,还有一些次要的铁路、公路、河流等。
               .任何一个数据流至少有一端是处理框。换句话说,数据流不能从外部实体直接到数据存储,也不能从数据存储直接到外部实体,也不能在外部实体之间或数据存储之间流动。初学者往往容易违反这一规定,常常在数据存储与外部实体之间画数据流。其实,记住数据流是处理功能的输入或输出,就不会出现此类错误。
               ②提高数据流图的易理解性。
               数据流图是系统分析员进行业务调查,与用户沟通的重要工具。因此,数据流图应该简明易懂。这也有利于后面的设计,有利于对系统规格说明书进行维护。可以从以下几个方面提高易理解性。
               .简化处理间的联系。结构化分析的基本手段是“分解”,其目的是控制复杂性。合理的分解是将一个复杂的问题分成相对独立的几个部分,每个部分可被单独理解。在数据流图中,将一个处理逻辑分解成若干个子处理逻辑,并使各子处理逻辑尽可能地相对独立、处理逻辑间的数据流尽可能地少、每个处理逻辑的输入和输出数据流数目尽可能地少,这样每一个处理逻辑就比较容易被单独地理解,因而一个复杂的处理逻辑也就被几个较简单的子处理逻辑代替了。
               .保持分解的均匀性。理想的分解是将一个加工分成大小均匀的几个子加工。如果在一张数据流图上,某几个已经是不必再分解的基本加工,而另一些加工却还要进一步分解三四层,这样的分解就不均匀。不均匀的分解是不容易被理解的。因为其中一些已是细节,而另一些仍然是较高层次上的抽象。在这种情况下应考虑重新分解,应努力避免特别不均匀的分解。
               .适当命名。给数据流图中的各个成分取一个适当的名字无疑是提高其易理解性的重要手段之一。比如处理框的命名应能准确地表达其功能,理想的命名由一个具体的动词加一个具体的名词(宾语)组成,在下层尤其应该如此。例如“计算总工作量”、“开发票”。而最好将“存储和打印提货单”分成两个。“处理订货单”则不太好,“处理”是空洞的动词,没有说明究竟做什么。如果难以为某个成分取合适的名字,那么往往是分解不当的迹像,这时可以考虑重新分解。
               数据流图也常常需要重新分解。例如画到某一层时意识到上一层或上几层所犯的错误,这时就需要对它们重新分解。重新分解可按下述步骤进行:
               .把需要重新分解的数据流图的所有子图拼接成一张图。
               .把新拼接成的图分成几个部分,使各部分之间的联系最少。
               .重新建立父图,即把第②步所得的每一部分画成一个处理框。
               .重新建立各张子图,这只需要把第②步所得的图沿各个部分边界分开即可。
               .为所有处理重新命名和编号。
               (4)数据流图举例。
               下面我们以高等学校学籍管理系统为例,说明画数据流图的方法。学籍管理是一项十分严肃而复杂的工作。它要记录学生从入学到离校,整个在校期间的情况,学生毕业时把学生的情况提供给用人单位。学校还要向上级主管部门报告学籍的变动情况。
               下图一所示概括描述了系统的轮廓、范围,标出了最主要的外部实体和数据流。它是进一步分析的出发点。学籍管理包括学生学习成绩管理、学生奖惩管理、学生异动管理三个部分。由此,下图一可以展开为下图二。虚线框是下图一中处理逻辑的放大。下面以“成绩管理”为例,说明逐层分解的思路。
               
               学籍管理系统顶层图
               
               学籍管理系统的第一层数据流图
               某校现在实行校、系两级管理学习成绩。学校教学管理科、系教务员都登记学生成绩。任课教师把学生成绩单一式两份分别送系教务员和学校教学管理科。系教务员根据成绩单登录学籍表,学期结束时,给学生发成绩通知,根据学籍管理条例确定每个学生升级、补考、留级、退学的情况。教学管理科根据收到的成绩单登录教管科存的学籍表,统计各年级各科成绩分布,报主管领导。补考成绩也做类似处理,这样P2框扩展成下图。
               
               “成绩管理”框的展开
               在上图中的一些处理,有的框还需要进一步展开,如P2.1框,但在这里我们不再一一展开。
               数据字典
               数据流图描述了系统的分解,即描述了系统由哪几部分组成,各部分之间的联系等,但没有说明系统中各成分的含义。只有当数据流图中出现的每一成分都给出定义之后,也就是使数据流图上的数据流名字、处理逻辑名字等都具有确切地解释之后,才能真正完整、准确地描述一个系统。为此,还需要其他工具对数据流图加以补充说明。
               数据字典就是这样的工具。数据字典最初用于数据库管理系统。它为数据库用户、数据库管理员、系统分析员和程序员提供某些数据项的综合信息。这种思想启发了信息系统的开发人员,使他们想到将数据字典引入系统分析。
               数据字典是以特定格式记录下来的、对系统的数据流图中各个基本要素(数据流、处理逻辑、数据存储和外部实体)的内容和特征所做的完整的定义和说明。它是结构化系统分析的重要工具之一,是对数据流图的重要补充和说明。
               建立数据字典的工作量很大,而且相当繁琐。但这是一项必不可少的工作。数据字典在信息系统开发中具有十分重要的意义,不仅在系统分析阶段,而且在整个开发过程中以及今后的系统运行中都要使用它。
               数据字典可以用人工方式建立。事先印好表格,填好后按一定顺序排列,就是一本字典。也可以建立在计算机内,数据字典实际上是关于数据的数据库,这样使用、维护都比较方便。编写数据字典是系统开发的一项重要的基础工作。一旦建立,并按编号排序之后,就是一本可供查阅的关于数据的字典,从系统分析一直到系统设计和实施都要使用它。在数据字典的建立、修正和补充过程中,始终要注意保证数据的一致性和完整性。
               (1)数据字典的条目。
               数据字典中有6类条目:数据项、数据结构、数据流、数据存储、处理过程和外部实体。不同类型的条目有不同的属性,现分别说明如下:
               ①数据项又被称为数据元素,是系统中最基本的数据组成单位,也就是不可再分的数据单位,如学号、姓名、成绩等。一般分析数据特性应从静态和动态两个方面去进行。但在数据字典中,仅定义数据的静态特性,具体包括:
               .数据项的名称。名称要尽量反映该元素的含义,便于理解和记忆。
               .编号。一般由字母和数字组成。
               .别名。一个数据元素,可能其名称不止一个;若有多个名称,则须加以说明。
               .简述。有时候名称仍然不能很确切地反映元素的含义,则可以给该数据项加一些描述信息。
               .数据项的取值范围和取值的含义。指数据元素可能取什么值或每一个值代表的意思。
               数据项的取值可分为离散型和连续型两类。如人的年龄是连续型的,取值范围可定义为0~150岁。而“婚姻状况”取值范围是“未婚、已婚、离异、丧偶”,是离散型的。
               一个数据项是离散的,还是连续的,视具体需要而定。例如在一般情况下,我们用岁数表示一个人的年龄,是连续的。但有时,我们只要用“幼年、少年、青年、壮年、老年”表示,或者区分为成年、未成年即可,这时年龄便是离散型的。
               .数据项的长度。指出该数据项由几个数字或字母组成。如学号,按某校的编法由7个数字组成,其长度就是7个字节。
               .数据类型。说明取值是字符型还是数字型等。
               下表就是数据项条目的一个例子。数据字典中对“职工姓名”数据项的描述。
               
               一个数据项的例子
               ②数据结构数据结构描述某些数据项之间的关系。一个数据结构可以由若干个数据项组成;也可以由若干个数据结构组成,还可以由若干个数据项和数据结构组成。在数据字典中对其定义包括:名称;编号;简述;数据结构的组成。例如下表所示订货单就是由三个数据结构组成的数据结构,表中用DS表示数据结构,用I表示数据项。
               
               一个的数据结构的例子
               如果是一个简单的数据结构,只要列出它所包含的数据项。如果是一个嵌套的数据结构(即数据结构中包含数据结构),则需列出它所包含的数据结构的名称,因为这些被包含的数据结构在数据字典的其他部分已有定义,见下表。
               
               用户订货单的数据结构
               ③数据流数据流由一个或一组固定的数据项组成。定义数据流时,不仅要说明数据流的名称、组成等,还应指明它的来源、去向和数据流量等。在数据字典中数据流的属性包括:
               .名称。名称含义应尽量便于理解和记忆。
               .编号。一般由字母和数字组成。
               .简述。对该数据流的补充说明。
               .数据流的来源。数据流可以来自某个外部实体、数据存储或某个处理。
               .数据流的去向。某些数据流的去处可能不止一个,若有多个去处,则都需要进行说明。
               .数据流的组成。指数据流所包含的数据结构。一个数据流可包含一个或多个数据结构。若只含一个数据结构,应注意名称的统一,以免产生二义性。
               .数据流的流通量。指单位时间(每日,每小时等)里的数据传输次数。可以估计平均数或最高、最低流量各是多少。
               .高峰期流通量。
               下表是一个数据流的例子。
               
               一个数据流的例子
               ④处理逻辑的定义处理逻辑的定义仅对数据流程图中最底层的处理逻辑加以说明。在数据字典中对其定义包括:处理逻辑名称;编号;简述;输入;处理过程;输出;处理频率,如下表所示。
               
               一个处理逻辑的例子
               ⑤数据存储数据存储在数据字典中只描述数据的逻辑存储结构,而不涉及它的物理组织。在数据字典中对其定义包括:数据存储的编号;名称;简述;组成;关键字;相关的处理。下表给出了一个数据存储定义的例子。
               
               一个数据存储定义的例子
               ⑥外部实体定义外部实体是数据的来源和去向。因此,在数据字典中关于外部实体的条目,主要说明外部实体产生的数据流和传给该外部实体的数据流,以及该外部实体的数量。外部实体的数量对于估计系统的业务量有参考作用,尤其是关系密切的主要外部实体。在数据字典中对外部实体的定义包括:外部实体编号;外部实体名称;简述;输入的数据流;输出的数据流。下表给出了一个外部实体定义的例子。
               
               一个外部实体定义的例子
               (2)数据字典的作用。
               数据字典实际上是“关于系统数据的数据库”。在整个系统开发过程以及系统运行后的维护阶段,数据字典都是必不可少的工具。数据字典是所有人员工作的依据、统一的标准。它可以确保数据在系统中的完整性和一致性。具体地讲,数据字典有以下作用:
               ①按各种要求列表。可以根据数据字典,把所有数据元素、数据结构、数据流、数据存储、处理逻辑、外部实体,按一定的顺序全部列出,保证系统设计时不会遗漏。
               如果系统分析员要对某个数据存储的结构进行深入分析,需要了解有关的细节,了解数据结构的组成乃至每个数据元素的属性,数据字典也可提供相应的内容。
               ②相互参照,便于系统修改。根据初步的数据流图,建立相应的数据字典。在系统分析过程中,常会发现原来的数据流图及各种数据定义中有错误或遗漏,需要修改或补充。有了数据字典,这种修改就变得容易多了。
               例如,在某个库存管理系统中,“商品库存”这个数据存储的结构是:商品编号、商品名、规格、当前库存量。一般来讲,考虑能否满足用户订货,这些数据项就够了。但如果要求库存数量不能少于“安全库存量”,则这些数据项是不够的。这时,在这个结构中就要增加“安全库存量”这个数据项。以前,只要“顾客订货量小于或等于当前库存量”,就认为可以满足用户订货;现在则只有“顾客订货量小于或等于当前库存量且当前库存量大于或等于安全库存量”时才能满足顾客订货。有了数据字典,这个修改就容易了。因为在该数据存储的条目中,记录了有关的数据流,由此可以找到因数据存储的改动而可能影响到的处理逻辑,不至于遗漏而造成不一致。
               ③由描述内容检索名称。对于一个稍微复杂的系统,数据字典的量是相当大的,有时候系统分析员可能没有把握断定某个数据项在数据字典中是否已经定义,或者记不清楚其确切名字,这时可以通过内容查找其名称,就像根据书的内容查询图书的名字一样。
               ④一致性检验和完整性检验。根据各类条目的规定格式,可以检验一下一些问题。
               .是否存在没有指明来源或去向的数据流。
               .是否存在没有指明数据存储或所属数据流的数据元素。
               .处理逻辑与输入的数据元素是否匹配。
               .是否存在没有输入或输出的数据存储。
               (3)数据字典的编写与管理。
               数据字典的内容是随着数据流图自顶向下,逐层扩展而不断充实的。数据流图的修改与完善,将导致数据字典的修改,这样才能保证数据字典的一致性和完整性。数据字典的编写可以有两种方式:手工编写和计算机辅助编写。
               手工编写的主要工具是笔和卡片,当然可以辅以计算机文字处理手段。这时计算机只是作为手工书写工具来使用,没有处理数据字典的结构、内容和格式的功能。由于数据字典各条目的定义、说明和分解细化主要靠人的知识、经验和判断,手工编写具有较大的灵活性与适应性,也就是说,可以随着系统分析工作的深入和对用户信息需求的了解的细化而不断充实、修正数据字典的内容。但手工编写效率不高、编辑困难、容易出现疏漏与错误,对数据字典的检验、维护与查询、检索、统计、分析都不方便。
               计算机辅助编写数据字典时,计算机以输入的方式接受数据字典各类成分的定义和说明的原始数据,根据规范要求提供编辑、索引、完整性、一致性检查的功能。具有统计、报告、查询功能,可以定义在某些加工中使用、但数据流图上未注明的数据元素。这类计算机辅助工具称为计算机辅助系统工程(Computer-Aided Systems Engineering)工具,或称计算机辅助软件工程(Computer-Aided Software Engineering,CASE)工具。这些CASE工具提供DFD和DD的编制功能,具有图形处理、数据管理和文字编辑的能力,有的还能在系统设计与系统实施阶段提供辅助。
               对于计算机辅助编写数据字典来说,最重要的是建立便于输入、查询与维护的数据库,称之为数据字典库。因此,除了采用商品化的CASE工具软件辅助编写数据字典外,也可采用通用的开发工具和数据库管理系统来创建数据字典库及相应的编辑、查询与检验程序。
               但在开发初期,对于规模不太大的系统,手工编写更方便实惠。
               编写数据字典的基本要求是:
               .对数据流图上各种成分的定义必须明确、唯一、易于理解。命令、编号与数据流图一致,必要时可增加编码,以方便查询、检索、维护和统计报表。
               .符合一致性和完整性的要求,对数据流图上的成分定义与说明没有遗漏。
               .数据字典中无内容重复或内容相互矛盾的条目。
               .数据流图中同类成分的数据字典条目中,无同名异义或异名同义者。
               .格式规范、风格统一、文字精炼,数字与符号正确。
               数据字典的建立,对于系统分析人员、用户或是系统设计人员均有很大好处,他们可以从不同的角度分别从数据字典中得到有关的信息,便于认识整个系统并随时查询系统中的部分信息。随着系统开发工作的不断深入,数据字典所带来的效益也将越来越明显。
               为了保证数据的一致性,数据字典必须由专人(数据管理员)管理。其职责就是维护和管理数据字典,保证数据字典内容的完整一致。任何人(包括系统分析员、系统设计员、程序员)要修改数据字典的内容,都必须通过数据管理员。数据管理员要把数据字典的最新版本及时通知有关人员。
               实体联系图
               数据流图描述了系统的逻辑结构,数据流图中的有关处理逻辑及数据流的含义可用数据字典具体定义说明,但是对于比较复杂的数据及其之间的关系,用它们是难以描述的,在这种情况下一般采用实体联系图进行描述。
               实体联系图(Entity-Relationship Diagram, ER图),可用于描述数据流图中数据存储及其之间的关系,最初用于数据库概念设计。
               下图是大学教务管理问题中对教务处进行分析调查后得到的实体联系图。其中,学生档案是有关学生情况的集合,课程档案是有关开设的课程情况集合,注册记录、选课单则分别是学生注册和选课情况的集合。它用简单的图形方式描述了学生和课程等这些教学活动中的数据之间的关系。
               
               大学教务处教务管理问题实体联系图
               在实体联系图中,有实体、联系和属性三个基本成分,如下图所示。
               (1)实体。实体是现实中存在的对象,有具体的,也有抽象的;有物理上存在的,也有概念性的;例如,学生、课程,等等。它们的特征是可以互相区别,否则就会被认为是同一对象。凡是可以互相区别、又可以被人们识别的事、物、概念等统统可以被抽象为实体。数据流图中的数据存储就是一种实体。实体可以分为独立实体和从属实体或弱实体,独立实体是不依赖于其他实体和联系而可以独立存在的实体,如上图中的“学生档案”、“课程档案”等,独立实体常常被直接简称为实体;从属实体是这样一类实体,其存在依赖于其他实体和联系,在实体联系图中用带圆角的矩形框表示,例如上图中的“注册记录”是从属实体,它的存在依赖于实体“学生档案”,“课程档案”和联系“注册”,“选课单”也是从属实体,它的存在依赖于实体“学生档案”,“课程档案“和联系”选课”。
               在以下述说中,为简便起见,将上图中的实体“学生档案”和“课程档案”直接称为“学生”和“课程”。
               (2)联系。实体之间可能会有各种关系。例如,“学生”与“课程”之间有“选课”的关系。这种实体和实体之间的关系被抽象为联系。在实体联系图中,联系用联结有关实体的菱形框表示,如上图所示。联系可以是一对一(1:1),一对多(1:N)或多对多(M:N)的,这一点在实体联系图中也应说明。例如在大学教务管理问题中,“学生”与“课程”是多对多的“选课”联系。
               (3)属性。实体一般具有若干特征,这些特征就被称为实体的属性,例如上图中的实体“学生”,具有学号、姓名、性别、出生日期和系别等特征,这些就是它的属性。
               联系也可以有属性,例如学生选修某门课程,它既不是学生的属性,也不是课程的属性,因为它依赖于某个特定的学生,又依赖于某门特定的课程,所以它是学生与课程之间的联系“选课”的属性。在上图中,联系“选课”的属性被概括在从属实体“选课单”中。联系具有属性这一概念对于理解数据的语义是非常重要的。
               在实体联系图中,还有如下关于属性的几个重要概念。
               .主键,如果实体的某一属性或某几个属性组成的属性组的值能唯一地决定该实体其他所有属性的值,也就是能唯一地标识该实体,而其任何真子集无此性质,则这个属性或属性组被称为实体键。如果一个实体有多个实体键存在,则可从其中选一个最常用到的作为实体的主键。例如实体“学生”的主键是学号,一个学生的学号确定了,那么他的姓名、性别、出生日期和系别等属性也就确定了。在实体联系图中,常在作为主键的属性或属性组与相应实体的连线上加一短垂线表示,如上图所示的“学号”。
               
               实体联系图的基本成分
               .外键,如果实体的主键或属性(组)的取值依赖于其他实体的主键,那么该主键或属性(组)被称为外键。例如,从属实体“注册记录”的主键“学号”的取值依赖于实体“学生”的主键“学号”,“选课单”的主键“学号”和“课程号”的取值依赖于实体“学生”的主键“学号”和实体“课程”的主键“课程号”,这些主键和属性就是外键。
               .属性域,属性可以是单域的简单属性,也可以是多域的组合属性。组合属性由简单属性和其他组合属性组成。组合属性中允许包括其他组合属性意味着属性可以是一个层次结构,如下图所示通信地址就是一种具有层次结构的属性。
               
               通信地址属性
               .属性值,属性可以是单值的,也可以是多值的。例如一个人所获得的学位可能是多值的。当某个属性对某个实体不适应或属性值未知时,可用空缺符NULL表示。
               在画实体联系图时,为了使得图形更加清晰、易读易懂,可以将实体和实体的属性分开画,并且对实体进行编号,如下图一和下图二所示。
               
               实体联系图
               
               实体属性图
               由于人们通常就是用实体、联系和属性这三个概念来理解和描述现实问题的,所以实体联系图非常接近人的思维方式。又因为实体联系图采用简单的图形来表达人们对现实的理解,所以不熟悉计算机技术的用户也都能够接受它,因此实体联系图成为了系统分析员和用户之间沟通的工具。
               描述加工处理的结构化语言
               数据流图中所有不进一步分解的加工(处理逻辑),成为基本加工。基本加工是最底层的加工,但并不都在最底层的数据流图中。上层数据流图中某些加工环节不需要进一步分解的,都属于基本加工。基本加工有父项,无子项;而非基本加工均有子项,这是识别基本加工的主要原则。在数据字典中,非基本加工可用基本加工的组合来描述,因而比较简洁。基本加工是实现系统功能的基本组成部分,准确地、清晰地描述基本加工,成为表达系统逻辑功能的关键。
               由于基本加工涉及详细的数据处理功能和处理过程,为了做到准确、清晰、简洁,基本加工的描述往往需要多种手段与工具,所用工具有自然语言的文字叙述、结构化语言、决策书、决策表、数学公式或者上述工具的联合使用。接下来我们就介绍一下描述加工处理的结构化语言。
               人们常用自然语言描述各种问题。自然语言语义丰富、语法灵活,可描述十分广泛而复杂的问题,表达人们丰富的感情和智慧。但自然语言没有严格的规范,理解上容易产生歧义。在信息处理中人们广泛使用的计算机语言,是一种形式化语言,各种词汇均有严格定义,语法也很严格、规范,但使用的词汇被限制在很小范围内,叙述方式繁琐,难以清晰、简洁地描述复杂问题。结构化语言的特点介于两者之间,没有严格的语法规定,使用的词汇也比形式化的计算机语言广泛,但使用的语句类型很少,结构规范,表达的内容清晰、准确、易理解,不易产生歧义。适于表达数据加工的处理功能和处理过程。
               结构化语言使用的语句类型只有以下三种。
               .祈使语句。
               .条件语句。
               .循环语句。
               上述语句类型可以嵌套,句中可使用逻辑关系式与数学公式。结构化语言使用的词汇有。
               .祈使语句中的动词。
               .数据字典中定义的和系统分析其他正式文件中定义的词汇,主要是名词,也可有部分名词性短语。
               .表达逻辑关系的词汇。
               使用结构化语言的原则是:
               .语句意义明确,内容具体,文字简炼。不用抽象、笼统、含糊的词,如“做”、“处理”、“信息”等。所有词汇必须在系统分析文件中有确切定义,所有语言必须具有可读性,使人易于理解。
               .祈使语句中必须有一个动词和一个宾语,分别表示动作的具体内容和动作的对象。尽量不使用形容词和副词。
               .表达逻辑关系时,只使用“与”、“或”两种运算用词和“等于”、“大于”、“小于”、“大于或等于”和“小于或等于”5种关系词。
               .语句结构清晰,开始、结束之处明确,嵌套时层次分明。
               下面讨论结构化语言三种句型的特点:
               .祈使语句。祈使语句说明要做什么事,如前所述,一般有一个动词和一个宾语,如:
               获取收发数据
               计算补充订货量
               也有这种结构:
               将在库数加收入数
               将在库数减发出数
               .条件语句。条件语句说明在满足一定条件时做什么事。其一般形式为:
               
               例如:
               
               条件语句中可以嵌套其他语句。如上述结构中执行A或执行B可以是一组祈使语句,也可以是一个循环语句或是另一个条件语句。
               .循环语句。循环语句说明在满足某种条件下,继续执行某项处理功能。或者继续执行某项功能直到某个条件满足为止。此语句由两部分组成,第一部分为循环条件,第二部分为重复执行的语句。第二部分的语句,可以是一个或一组祈使语句,也可以是条件语句或循环语句形成的嵌套结构,如:
               
 
       需求分析阶段
        在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。建模的每个用例都指定了客户的需求(他或她需要系统干什么)。
 
       开发过程
        嵌入式系统软件的开发过程可以分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试及运行等几个阶段。
        项目计划、可行性分析、需求分析、概要设计及详细设计等几个阶段,与通用软件的开发过程基本一致,都可按照软件工程方法进行,如采用原型化方法、结构化方法等。
        :由于嵌入式软件的运行和开发环境不同,开发工作是交叉进行的,所以每一步都要考虑到这一点。
        程序建立阶段的工作是根据详细设计阶段产生的文档进行的,主要是源代码编写、编译链接等子过程,这些工作都在宿主机上进行,不需要用到目标机。产生应用程序的可执行文件后,就要用到交叉开发环境进行调试,根据实际情况可以选用3.6.3节中提到的调试方法或其有效组合来进行。由于嵌入式系统对安全性和可靠性的要求比通用计算机系统要高,所以,在对嵌入式系统进行白盒测试时,要求有更高的代码覆盖率。
        最后,要将经调试后正确无误的可执行程序固化到目标机上。根据嵌入式系统硬件配置的不同,可以固化在EPROM(Erasable Programmable ROM,可擦除可编程ROM)和Flash等存储器中,也可固化在DOC(DiskOnChip)等电子盘中,通常还要借助一些专用编程器进行。
 
       需求分析
        需求分析的方法种类繁多,不过如果按照分解的方式不同,可以很容易地划分出几种大类型:
        (1)结构化分析方法。本节后续内容将详细讨论SA的内容。
        (2)面向对象分析方法。将在10.3节中进行详细介绍。
        (3)面向问题域的分析(Problem Domain Oriented Analysis, PDOA)方法。PDOA更多地强调描述,而少强调建模。它的描述大致分为关注问题域和关注解系统的待求行为这两个方面。问题框架是PDOA的核心元素,是将问题域建模成为一系列相互关联的子域。也可以把问题框架看作是开发上下文图,但不同的是上下文图的建模对象是针对解系统,而问题框架则是针对问题域。也就是说,问题框架的目标就是大量地捕获更多有关问题域的信息。PDOA方法现在还在研究阶段,并未广泛应用。
               业务流程分析
               业务流程分析的目的是了解各个业务流程的过程,明确各个部门之间的业务关系和每个业务处理的意义,为业务流程的合理化改造提供建议,为系统的数据流程变化提供依据。
               业务流程分析的步骤如下:
               (1)通过调查掌握基本情况。
               (2)描述现有业务流程(绘制业务流程图)。
               (3)确认现有业务流程。
               (4)对业务流程进行分析。
               (5)发现问题,提出解决方案。
               (6)提出优化后的业务流程。
               在业务流程图中使用的基本符号如下图所示。
               数据流图
               DFD是结构化分析中的重要方法和工具,是表达系统内数据的流动并通过数据流描述系统功能的一种方法。DFD还可被认为是一个系统模型,在信息系统开发中,一般将它作为需求说明书的组成部分。
               
               业务流程图符号
               DFD从数据传递和加工的角度,利用图形符号通过逐层细分地描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所完成的功能。具体来说,DFD的主要作用如下:
               (1)DFD是理解和表达用户需求的工具,是系统分析的手段。由于DFD简明易懂,理解它不需要任何计算机专业知识,因此通过它同客户交流很方便。
               (2)DFD概括地描述了系统的内部逻辑过程,是系统分析结果的表达工具,因而也是系统设计的重要参考资料,是系统设计的起点。
               (3)DFD作为一个存档的文字材料,是进一步修改和充实开发计划的依据。
               在DFD中,通常会出现4种基本符号,分别是数据流、加工、数据存储和外部实体(数据源及数据终点)。数据流是具有名字和流向的数据,在DFD中用标有名字的箭头表示。加工是对数据流的变换,一般用圆圈表示。数据存储是可访问的存储信息,一般用直线段表示。外部实体是位于被建模的系统之外的信息生产者或消费者,是不能由计算机处理的成分,它们分别表明数据处理过程的数据来源及数据去向,用标有名字的方框表示。下图是一个典型的DFD示例。
               
               办理取款手续的DFD
               为了表达数据处理过程中的数据加工情况,用一个DFD是不够的。稍微复杂的实际问题,在DFD中常常出现十几个甚至几十个加工。这样的DFD看起来很不清楚。层次结构的DFD能很好地解决这一问题。按照系统的层次结构进行逐步分解,并以分层的DFD反映这种结构关系,能清楚地表达整个系统。
               下图给出分层DFD的示例。数据处理S包括3个子系统1、2、3。顶层下面的第一层DFD为DFD/L1,第二层的DFD/L2.1、DFD/L2.2及DFD/L2.3分别是子系统1、2和3的细化。对任何一层数据流图来说,它的上层图称为父图,在它下一层的图则称为子图。
               
               分层数据流图
               概括地说,画DFD的基本步骤,就是“自顶向下,逐层分解”。检查和修改的原则如下:
               (1)DFD中的所有图形符号只限于前述4种基本图形元素。
               (2)顶层DFD必须包括前述4种基本元素,缺一不可。
               (3)顶层DFD中的数据流必须封闭在外部实体之间。
               (4)每个加工至少有一个输入数据流和一个输出数据流。
               (5)在DFD中,需按层给加工框编号。编号表明了该加工处在哪一层,以及上下层的父图与子图的对应关系。
               (6)规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡。
               (7)可以在DFD中加入物质流,帮助用户理解DFD。
               (8)图上每个元素都必须有名字。
               (9)DFD中不可夹带控制流。
               数据字典
               数据字典是关于数据的信息的集合,也就是对DFD中包含的所有元素的定义的集合。DFD和数据字典共同构成系统的逻辑模型。没有DFD,数据字典难以发挥作用;没有数据字典,DFD就不严格。只有把DFD和对DFD中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
               数据字典的设计包括:数据流设计、数据元素字典设计、数据处理字典设计、数据结构字典设计和数据存储设计。这些设计涵盖了数据的采集和范围的确定等信息。在数据字典的每一个词条中应包含以下信息:名称、别名或编号、分类、描述、何处使用。
               对加工的描述是数据字典的组成内容之一,常用的加工描述方法有结构化语言、判定树及判定表。
               (1)结构化语言:介于自然语言和形式语言之间的一种半形式语言,在自然语言基础之上加了一些限度,使用有限的词汇和有限的语句来描述加工逻辑。结构化语言是受结构化程序设计思想启发而扩展出来的。结构化程序设计只允许3种基本结构。结构化语言也只允许3种基本语句,即简单的祈使语句、判断语句和循环语句。与程序设计语言的差别在于结构化语言没有严格的语法规定,与自然语言的不同在于它只有极其有限的词汇和语句。结构化语言使用3类词汇:祈使句中的动词、数据字典中定义的名词及某些逻辑表达式中的保留字。
               (2)判定树:若一个动作的执行不只依赖一个条件,而与多个条件有关,那么这项策略的表达就比较复杂。如果用结构化语言的判断语句,就有多重嵌套,层次一多,可读性就会下降。用判定树来表示,可以更直观一些。
               (3)判定表:一些条件较多、在每个条件下取值也较多的判定问题,可以用判定表表示。判定表能清晰地表达复杂的条件组合与应做动作之间的对应关系,判定表的优点是能够简洁、无二义性地描述所有的处理规则。但判定表表示的是静态逻辑,是在某种条件取值组合情况下可能的结果,它不能表达加工的顺序,也不能表达循环结构,因此判定表不能成为一种通用的设计工具。
   题号导航      2022年下半年 信息系统管理工程师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第35题    在手机中做本题