全部科目 > 系统集成项目管理工程师 >
2017年上半年 上午试卷 综合知识
第 15 题
知识点 软件需求分析与定义   OOA   结构化分析   结构化分析方法   数据流   图形   需求分析   需求分析方法  
关键词 OOA   SA   结构化分析   面向对象的分析   数据   需求分析   OA   对象   面向对象   需求  
章/节 信息系统建设与开发  
 
 
常用的需求分析方法有:面向数据流结构化分析方法(SA),面向对象的分析方法(OOA)。( )不是结构化分析方法的图形工具。
 
  A.  决策树
 
  B.  数据流图
 
  C.  数据字典
 
  D.  快速原型
 
 




 
 
相关试题     软件需求分析与定义 

  第8题    2013年下半年  
软件需求规格说明书在软件开发中具有重要作用,但其不应作为(8)。

  第7题    2010年下半年  
在软件需求规格说明书中,有一个需求项的描述为:“探针应以最快的速度响应气压值的变化”。该需求项存在的主要问题是不具有(7)。

  第14题    2016年上半年  
常用的需求分析方法有:面向数据流的结构化分析方法(SA)、面向对象的分析方法(OOA)。(14)不是结构化分析方法的图形工具。

 
知识点讲解
· 软件需求分析与定义
· OOA
· 结构化分析
· 结构化分析方法
· 数据流
· 图形
· 需求分析
· 需求分析方法
 
        软件需求分析与定义
               概念
               软件需求分析与定义过程用于了解客户需求和用户的业务,为客户、用户和开发者之间建立一个对于待开发的软件产品的共同理解,并把软件需求分析结果编写成《软件需求规格说明书》。
               软件需求是针对待解决问题的特性的描述。软件需求具有如下特征:
               .可验证性:所定义的需求必须可以被验证。
               .优先级:在资源有限时可以通过优先级对需求进行权衡。
               需求分析的目的
               .检测和解决需求之间的冲突。
               .发现软件的边界,以及软件与其环境的交互。
               .详细描述系统需求,以导出软件需求。
               需求分析的任务
               需求分析需要准确地定义未来系统的目标,确定为了满足用户需求待建系统必须做什么,并用需求规格说明书规范地表达用户的需求。需求分析有两个主要任务:
               .建立分析模型。
               .编写需求规格说明书。
 
        OOA
        OOA模型由下列5个层次和5个活动组成。
        (1)5个层次:主题层、对象类层、结构层、属性层、服务层。
        (2)5个活动:标志对象类、标志结构、定义主题、定义属性、定义服务。
        在这种方法中定义了两种对象类之间的结构,一种称为分类结构,另一种称为组装结构。
 
        结构化分析
        SA方法使用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下、逐层分解,直至找到满足功能要求的所有可实现的软件为止。SA方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表及判定树等。
        SA方法的步骤如下:
        (1)分析当前的情况,做出反映当前物理模型的数据流图(Data Flow Diagram, DFD)。
        (2)推导出等价的逻辑模型的DFD。
        (3)设计新的逻辑系统,生成数据字典和基元描述。
        (4)建立人机接口,提出可供选择的目标系统物理模型的DFD。
        (5)确定各种方案的成本和风险等级,据此对各种方案进行分析。
        (6)选择一种方案。
        (7)建立完整的需求规约。
 
        结构化分析方法
               结构化分析方法的内容
               系统分析是保证信息系统质量的第一步,它的任务是艰巨的、复杂的。如何分析用户需求,用什么形式表示系统规格说明书等,都需要有相应的方法、模型、语言和工具来配合。自20世纪70年代以来,逐渐出现了多种适用于系统分析阶段的方法,结构化分析方法就是其中具有代表性的一种方法。
               结构化分析(Structured Analysis,SA)方法由美国yourdon公司在20世纪70年代提出,是一种简单实用、使用很广的方法。该方法通常与我们以后要介绍的系统设计阶段的结构化设计(SD)方法衔接起来使用,适用于大型信息系统开发使用。
               那么到底什么是结构化分析方法呢?结构化分析方法是一种单纯的自顶向下逐步求精的功能分解方法,它按照系统内部数据传递,以变换的关系建立抽象模型,然后自顶向下逐层分解,由粗到细、由复杂到简单。结构化分析的核心特征是“分解”和“抽象”。“分解”就是把大问题分解成若干个小问题,然后分别解决,从而简化复杂问题的处理。“抽象”就是将一些具有某些相似性质的事物的相同之处概括出来,暂时忽略其不同之处,或者说,抽象是抽象出事物的本质特性而暂时不考虑它们的细节。分解和抽象实质上是一对相互有机联系的概念。自顶向下的过程,即从顶层到第一层再到第二层的过程,被称为“分解”;自底向上的过程,即从第二层到第一层再到顶层的过程,被称为抽象。也就是说,下层是上层的分解,上层是下层的抽象。这种层次分解使我们不必去考虑过多细节,而是逐步了解更多的细节。对于顶层不考虑任何细节,只考虑系统对外部的输入和输出,然后,一层层地了解系统内部的情况。结构化系统分析和设计方法的基本思想是:用系统的思想、系统工程的方法,按用户至上的原则,结构化、模块化、自上而下对信息系统进行分析与设计。主要指导原则有以下几点。
               (1)请用户共同参与系统的开发。
               (2)在为用户编写有关文档时,要考虑到他们的专业技术水平,以及阅读与使用资料的目的。
               (3)使用适当的画图工具做通信媒介,尽量减少与用户交流意见时发生问题的可能性。
               (4)在进行系统详细设计工作之前,就建立一个系统的逻辑模型。
               (5)采用“自上而下”方法进行系统分析和设计,把主要的功能逐级分解成具体的、比较单纯的功能。
               (6)采用“自顶向下”方法进行系统测试,先从具体功能一级开始测试,解决主要问题,然后逐级向下测试,直到对最低一级具体功能测试完毕为止。
               (7)在系统验收之前,就让用户看到系统的某些主要输出,把一个大的负责的系统逐级分解成小的、易于管理的系统,使用户能够尽早看到结果,及时提出意见。
               (8)对系统的评价不仅是指开发和运行费用的评价,而且还将是对整个系统生存过程的费用和收益的评价。
               结构化分析方法利用图形来表达需求,显得清晰、简明、易于学习和掌握。而且按照自顶向下、逐层分解的方式,不论系统有多复杂、规模有多大,分析工作都可以有条不紊地开展。对于大的系统只需多分解几层,分析的复杂程度并不会随之增大。这也是结构化分析的特点。
               结构化分析方法使用了以下几个工具:数据流图、数据字典、实体关系图、结构化语言、判定表和判定树,我们将介绍前4种工具。
               结构化分析方法的工具
                      数据流图
                      数据流图(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可以是一组祈使语句,也可以是一个循环语句或是另一个条件语句。
                      .循环语句。循环语句说明在满足某种条件下,继续执行某项处理功能。或者继续执行某项功能直到某个条件满足为止。此语句由两部分组成,第一部分为循环条件,第二部分为重复执行的语句。第二部分的语句,可以是一个或一组祈使语句,也可以是条件语句或循环语句形成的嵌套结构,如:
                      
 
        数据流
        数据流由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向可以有以下几种:从一个加工流向另一个加工;从加工流向数据存储(写);从数据存储流向加工(读);从外部实体流向加工(输入);从加工流向外部实体(输出)。
        DFD中的每个数据流用一个定义明确的名字表示。除了流向数据存储或从数据存储流出的数据流不必命名外,每个数据流都必须有一个合适的名字,以反映该数据流的含义。
        数据流或者由具体的数据属性(也称为数据结构)构成,或者由其他数据流构成。组合数据流是由其他数据流构成的数据流,它们用于在高层的数据流图中组合相似的数据流,以使数据流图更便于阅读。
        控制流是对数据流图的补充,采用虚线表示,是对由触发系统功能的事件进行描述。
        另外,一个加工可以有多个输入数据流和多个输出数据流,此时可以加上一些扩充字符符号或图形元素来描述多个数据流之间的关系。如:
        (1)星号(*)。星号表示数据流之间存在“与”关系。如果是输入流则表示所有输入数据流全部到达后才能进行加工处理;如果是输出流则表示加工结束将同时产生所有的输出数据流。
        (2)加号(+)。加号表示数据流之间存在“或”关系。如果是输入流则表示其中任何一个输入数据流到达后就能进行加工处理;如果是输出流则表示加工处理的结果是至少产生其中一个输出数据流。
        (3)异或(⊕)。异或表示数据流之间存在“互斥”关系。如果是输入流则表示当且仅当其中一个输入流到达后才能进行加工处理;如果是输出流则表示加工处理的结果是仅产生这些输出数据流中的一个。
 
        图形
               表示与存储
               图形是指能在人的视觉系统中产生视觉印象的客观对象,它包括人眼观察到的自然景物、拍摄到的图片、绘图工具得到的工程图、用数学方法描述的图像等。图形是客观对象的一种抽象表示,它带有形状和颜色信息。构成图形的要素有几何要素(刻画对象轮廓形状的点、线、面、体等)和非几何要素(刻画对象表面属性或材质的颜色、灰度等)。图形可用形状参数和属性参数表示,即参数表示法;也可用带有灰度或色彩的点阵图表示,简称像素图、图像(数字图像),即点阵表示法。
               图形是计算机图形学(Computer Graphics, CG)研究的对象。ISO给计算机图形学的定义为:研究用计算机进行数据和图形之间相互转换的方法和技术。还有定义为:计算机图形学是运用计算机描述、输入、表示、存储、处理(检索/变换/图形运算)、显示、输出图形的一门学科。计算机图形技术主要研究如何在计算机中表示图形,以及利用计算机进行图形的计算、处理和显示的相关原理和算法,其核心是将客观世界对象以图形的形式在计算机内表示出来,主要包括模型生成和图形显示,如下图所示。模型生成是获取、存储和管理客观世界物体的计算机模型,以在计算机上建立客观世界的模拟环境。图形显示是生成、处理和操纵客观世界物体模型的可视化结果,以在输出设备上呈现客观世界物体的图像。
               
               计算机图形生成模型
               计算机图形技术所涉及的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法、风格化绘制、科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。
               图形的文件格式
               ① TIF。
               TIF格式是平面设计中最常用的一种图形格式,因为其属于跨平台的格式,而且支持CMYK色,所以经常被用于印刷输出的场合。此外还有一个特色就是其支持LZW压缩,即不失真压缩,也就是说不管如何压缩,图档的品质都还能保持原来的水准。
               ②TGA。
               TGA图形格式的最大特点就是可以制作出不规则形状的图档,一般图档都为四方形,若需要圆形、菱形甚至镂空的图档时,TGA格式可能就会派上用场了。TGA格式同样支持压缩,也属于不失真压缩。
               ③ PSD。
               PSD格式是Photoshop专用的图形文件格式,该格式包含图形中的色层、遮罩、色频、选取区等Photoshop可以处理的属性,这样全方位的存储如果运用得当,几乎可以将创作的过程完整地记录,以便日后的修改。
               ④UFO。
               UFO格式是另一个著名制图软件Ulead Photoimapct的专用图形格式,其是致力于追赶Adobe的有力科技,同样也发展出了与PSD格式类似的图档格式,能够完整记录所有处理过的属性,不过在记录原理上却有些不同,UFO以物件代替图层,这一点并无大碍,因为Photoimapct与Photoshop本身就有很多的不同之处。
               ⑤RIF。
               RIF是著名制图软件Painter的专用图形格式,处理方式和前面两种大同小异,都可以存储相当多的属性资料。另外,Painter可以打开PSD文件,而且经过Painter处理的PSD文件可以在Photoshop中通用,这样就可以使同一文件在Photoshop和Painter中交换使用了。
               ⑥ CDR。
               CDR是著名制图软件CorelDRAW的专用图形格式,由于CorelDRAW是向量软件,所以CDR可以记录的资料可以说是千奇百怪,各物件的属性、位置、分页通通可以存储,以便日后修改。在兼容度上,目前基本没有其他软件可以打开CDR文件,这是向量软件的通病。
               ⑦EPS。
               EPS是印刷时经常用到的格式,向量图可以转换成EPS格式,点阵图也可以转成EPS格式。EPS文件可以同时存储点阵以及向量,故专门用于印前操作,如排版等,所以一般在印刷时都使用EPS文件。
               图形处理技术
               图形处理技术的范围很广,这里以真实感图形绘制和非真实感图形绘制为例简单介绍图形处理技术。
               真实感图形绘制是指借助数学、物理、计算机等学科知识使用计算机生成三维场景中真实逼真的图形、图像的过程。真实感图像绘制主要包括两个方面:表面特性的精确表示和场景中光照效果的物理描述。真实感图形绘制的应用非常广泛,例如计算机动画制作、影视特效仿真、计算机游戏、多媒体教育和虚拟现实等。真实感图形绘制所涉及的技术主要有消隐技术、表面细节绘制技术、纹理贴图技术、高级光照与着色技术等。
               非真实感图形绘制是指利用计算机生成不具有照片般真实感而具有手绘风格的图形的技术,其目标不在于表现图形的真实性,而是在于表现图形的艺术特质、模拟艺术作品(甚至包括作品中的缺陷)或作为真实感图形的有效补充。非真实感图形绘制的应用领域也非常广泛,其中一个重要的应用领域就是对绘画进行模拟,主要模拟的画种有油画、水彩画、钢笔画、铅笔画、水墨画和卡通动画。非真实感图形绘制所涉及的技术主要有基于像素的绘制,基于线条、曲线和笔画的绘制,模拟绘画绘制等。
               如下图所示,树和天空是采用真实感图形绘制技术绘制出来的,国画是采用非真实感图形绘制技术绘制出来的。
               
               真实感图形绘制和非真实感图形绘制
 
        需求分析
        需求分析的方法种类繁多,不过如果按照分解的方式不同,可以很容易地划分出几种大类型:
        (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)判定表:一些条件较多、在每个条件下取值也较多的判定问题,可以用判定表表示。判定表能清晰地表达复杂的条件组合与应做动作之间的对应关系,判定表的优点是能够简洁、无二义性地描述所有的处理规则。但判定表表示的是静态逻辑,是在某种条件取值组合情况下可能的结果,它不能表达加工的顺序,也不能表达循环结构,因此判定表不能成为一种通用的设计工具。
 
        需求分析方法
               任务分布图方法
               使用任务分布图方法应关注下面两点:
               ①有哪些交易任务。
               ②在一天的某些特定时刻系统都有哪些主要操作。
               举例如下图所示,可以得到:
               . 12:00,交易混合程度最高;
               . 10:00~12:00是登录高峰期;
               . 数据更新业务的并发用户数最大为90,等信息。
               
               任务分布图
               交易混合图方法
               使用交易混合图方法应关注下面三点:
               . 系统日常业务主要有哪些操作,高峰期主要有哪些操作。
               . 数据库操作有多少。
               . 如果任务失败,那么商业风险有多少。
               选择重点交易的指标为高吞吐量、高数据库I/O、高商业风险。举例如下表所示,“登录”、“生成订单”以及“发货”为负载压力测试重点。
               
               交易混合表
               用户概况图方法
               使用用户概况图方法应关注下面两点:
               . 哪些任务是每个用户都要执行的;
               . 针对每个用户,不同任务的比例如何。
               如下表所示为任务频率表,负载压力测试需要模拟不同用户角色压力。
               
               任务频率表



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有