在数据流图的基础上,还需对其中的每个数据流、文件和数据项加以定义,我们把这些定义所组成的集合称为数据字典(DataDictionary)。数据流图是系统的大框架,而数据字典以及下面将要介绍的加工说明则是对数据流图中每个成分的精确描述。它们有着密切的联系,必须结合使用。2.数据字典DDDFD中所有元素的定义的集合内容数据流——例:发票数据流分量——例:各班学生用书表数据存储——例:数量处理(一般不用DD描述)数据字典DD定义数据的方法自顶向下,逐步分解数据例如,“课程”数据流可写成:课程=课程名+教师+教材+课程表课程表={星期几+第几节+教室}数据字典DD数据字典各条目的定义中,常使用下述符号:=表示“等价”;+表示“与”;[|]表示“或”,即选括号中某一项,括号中各选择项用“|”隔开。例如,三好学生=[甲|乙|丙|丁];()表示“可选”,即从括号从中任选一项,也可一项都不选;{}表示“重复”,即重复括号内的项,重复次数的上、下界标在括号两边。例如1{X}5表示把X加工重复1-5次。若在重复括号上没有附加重复次数的上下界时,则表示0次或多次重复。数据字典DD数据流条目对每个数据流进行定义,它通常由四部分组成:数据流名、别名、组成和注释。其中,别名是前面已定义的数据流的同义词;组成栏是定义的主要部分,通常是列出该数据流的各组成数据项;注释栏用于记录其它有关信息,例如该数据流在单位时间中传输的次数等。数据字典DD----数据流一般的“数据流”字典条目应包含以下内容:数据流名:别名(编号):描述:组成(定义):来源与去处:频率、数据量、取值范围等:…备注:数据字典——数据流应包含的内容数据流名:职工基本情况别名:无组成:职工号+姓名+性别+出生时间+参加工作时间+职称+工作部门+工资+婚否注释:数据字典DD----数据流用表格描述数据流:例如职工基本情况数据流名:查询条件别名:无组成:[查工资情况|查工作部门|查职称|查职工号]注释:数据量:约70次/天;今后还要增加查询种类数据字典DD----数据流用表格描述数据流:例如查询条件数据流“发票”的字典条目数据流名:发票别名:购书发票组成:学号+姓名+{书号+单价+数量+总价}+书费合计备注:数据字典——数据流文件条目用来对文件(或数据库)进行定义。它由五部分组成:文件名、编号、组成、结构和注释。其中组成栏的定义方法与前面的数据流条目相同。结构栏用于说明重复部分的相互关系,比如指出是顺序或索引存取。数据字典DD----文件条目数据字典——数据文件应包含的内容一般的“数据文件”字典条目应包含以下内容:数据文件名:关键码:描述:组成(定义):存储方式:存储频率、数据量、取值范围等:…(如安全要求等)备注:文件名:人事档案文件编号:EMP组成:职工号+姓名+出生时间+参加工作时间+职称+工作部门+工资+婚否结构:以职工号为关键字、索引存取注释:今后还将增加数据项数据字典DD----文件条目用表格描述文件条目:例如人事档案文件数据文件“各班学生用书表”的字典条目文件名:各班学生用书表别名:组成:{系编号+专业和班编号+年级+{书号}}组织:按系、专业和班编号从小到大排列备注:数据字典——数据文件数据项条目用来给出数据项的定义。由于数据项是数据的最小单位,是不可分割的,因此数据项条目只包含名称、代码、类型、长度和值的含义内容等。对于那些足以从名称看出其含义的“自说明”型的数据项,则不必在条目中再解释其含义。数据字典DD----数据项数据字典——数据项应包含的内容一般的“数据项”字典条目应包含以下内容:数据项名:别名:描述:数据类型:长度(精度):取值范围、缺省值等:…(如计量单位等)备注:数据项“数量”的字典条目数据项名:数量别名:购书量取值:正整数备注:数据字典——数据项数据项名代码类型长度小数位含义别名注释职工号ZGH数值型6姓名XM字符型8性别XB字符型2出生时间CSSJ日期型8参加工作时间CZSJ日期型8婚否HF逻辑型1职称ZC字符型8工作部门BM字符型10工资GZ数值型62数据字典DD----数据项用表格描述数据项条目:例如人事管理系统数据项条目还可以采用类似公式定义式举例航班信息文件={航空公司名称+航班号+起点+终点+日期+起飞时间+降落时间}航空公司名称=2{字母}4航班号=3{十进制数字}3字母=“A”…“Z”十进制数字=“0”…“9”起点=终点=1{汉字}10起飞时间=降落时间=时+分时=“00”…“23”分=“00”…“59”日期=年+月+日年=[2000|2001|2002|2004]月=“01”…“12”日=“01”…“31”实现数据字典的途径目前实现数据字典有三种途径:全人工过程利用数据字典处理程序的全自动化过程用正文编辑程序报告生成程序等已有的实用程序帮助人工过程的混合过程。DD的用途分析阶段的交流工具包含控制信息数据库设计的基础例子P41例3.6数据字典DD3.加工说明概述加工说明PSPEC说明DFD中的每个加工,加工逻辑说明描述实现加工的策略,是加工说明的主体。在需求分析阶段,策略仅需要指出“做什么”,而不管“怎么做”!描述工具结构化语言判定表判定树IPO(Input-Process-OutputChatr)图利用数据字典来对数据流图中的数据流、文件和数据项加以定义。如何对数据流图中的基本加工进行描述,这是结构化分析的关键部分,我们把对基本加工的描述称为编写“加工说明”。“加工说明”是指对数据流图中功能单元(不能再作分解的加工)的描述,而对数据流图中其它加工则可以没有加工说明。加工说明概述编写加工说明的要求:(1)对数据流图中的每个功能单元必须有一个加工说明。(2)加工说明必须描述功能单元把输入数据转换为输出数据流的转换规则。(3)每个加工说明必须描述转换的策略,而不是转换的实现细节。即主要描述一个加工“做什么”,而不是用程序设计语来描述具体的加工过程。(4)加工说明应力求完整、严密、易于理解。加工说明编写要求结构化语言(StructuredLanguage)则是介于自然语言和程序设计语言之间的一种语言,它是带有一定结构的自然语言。在我国,通常采用较易为用户和开发人员双方接受的结构化汉语。加工说明---结构化语言工具在用结构化语言描述问题时只允许使用三种基本逻辑结构:顺序结构、选择结构和循环结构。配合这三种结构所使用的词汇主要有三类:陈述句中的动词;在数据字典中定义的名词;某些逻辑表达式中的保留字、运算符、关系符等。结构化语言的特点:无确定语法可分层、嵌套加工说明---结构化语言工具编写加工说明需要注意以下几点:避免结构复杂的长句;所用名词必须在数据字典中有定义;不要用意义相同的多种动词,用词名应始终如一。例如,“修正”、“修改”、“更改”含义相同,一旦确定使用其中一个以后,就不要再用其余两个;为提高可读性,书写时可采用“阶梯形”格式;嵌套使用各种结构时,应避免嵌套层次过多而影响可读性。加工说明---结构化语言要点加工号:修改加工编号:RS2输入:功能代号2加工逻辑:输入职工号,可对相应职工的各数据项进行修改输出:修改后的职工数据注释:在人事数据有变化时,随即使用该功能加工说明---结构化语言示例用表格描述:人事档案系统修改说明加工名:查询加工编号:RS3输入:功能代号3加工逻辑:如果选择工资可按职工号查工资额选择工作部门可按职工号查工作部门选择职称可按职工号查职称选择职工号可按姓名查职工号输出:工资额、工作部门、职称、职工号注释:加工说明---结构化语言示例用表格描述:人事档案系统查询说明加工名:核实订票处理编号:3.2激活条件:收到取订票信息处理逻辑:1读订票旅客信息文件2搜索此文件中是否有与输入信息中姓名及身份证号相符的项IF有THEN判断余项是否与文件中信息相符IF是THEN输出已订票信息ELSE输出未订票信息ELSE输出未订票信息执行频率:实时加工说明---结构化语言示例对于具有多个互相联系的条件和可能产生多种结果的问题,用结构化语言描述则显得不够直观和紧凑,这时可以用以清楚、简明为特征的判定表(DecisionTable)来描述。判定表采用表格形式来表达逻辑判断问题,表格分成四个部分:左上角为条件说明;左下角为行动说明;右上角为各种条件的组合说明;右下角为各条件组合下相应的行动。加工说明---判定表工具例:某商业批发公司本着薄利多销的原则制定了折扣政策,规定在与客户成交时,可根据不同情况对客户应交货款打一定折扣。下表是为使用判定表描述的该公司的折扣政策。其中,C1--C3为条件,A1--A4为行动,1-8为不同条件的组合,Y为条件满足,N为不满足,X为该条件组合下的行动。例如,条件4表示若交易额在50,000元以上、最近3个月中有欠款且与本公司交易在20年以下,则可享受5%的折扣率。加工说明---判定表示例加工说明---判定表描述的折扣政策判定表是根据条件组合进行判断的,上面表格中每个条件只存在“Y(是)”和“N(非)”两种情况,所以3个条件共有23=8种可能性。在实际使用中,有的条件组合可能是矛盾的,需要剔除,有的则可以合并。因此需在原始判定表的基础上进行整理和综合,才能得到简单明了且实用的判定表。同时,在整理过程中还可能对用户的原有业务过程进行改进和提高。加工说明---判定表描述的改进加工说明---合并整理后的判定表判定表(1)豪华型中速车T使用1号包装箱使用2号包装箱使用3号包装箱使用4号包装箱TTFFFFT√√√√加工说明---判定表举例判定表(2)加工说明---合并后判定表举例判定表的内容十分丰富,除了以上介绍的有限判定表(LimitedEntryTable),根据表中条件取值的状态不同,还有扩展判定表(ExtendedEntryTable)和混合判定表(MixedEntryTable)。它们都各有特色,若能合理选择和灵活运用,则可描述、处理更为广泛、复杂的判断过程。详细的内容可参阅有关的书籍。加工说明---判定表说明判定树(DecisionTree)是用来表示逻辑判断问题的一种图形工具。它用“树”来表达不同条件下的不同处理,比语言、表格的方式更为直观。判定树的左侧(称为树根)为加工名,中间是各种条件,所有的行动都列于最右侧。加工说明---判定树工具行为4行为5判定树示意图逻辑功能名条件1条件2条件1.2条件1.1行为1行为2条件2.1条件2.2行为3条件2.2.2条件2.2.1判定树实例豪华型选择包装箱中速车高速车豪华型标准型标准型使用1号包装箱使用2号包装箱使用3号包装箱使用4号包装箱加工说明---判定树示例加工说明---判定树示例判定树的另一种形式决策树形式简单,易于掌握和使用,并适合于与用户讨论。豪华型中速车T标准型使用1号包装箱使用2号包装箱使用4号包装箱使用3号包装箱TTFFF加工说明---判定树示例IPO(Input-Process-OutputChatr)图IPO图是输入/处理/输出图的简称,它是美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。用IPO图描绘主文件更新功能右图是一个主文件更新的例子,通过这个例子不难了解IPO图的用法。在需求分析阶段可以使用IPO图简略地描述数据流图中各个处理的基本算法(着重说明处理功能而不是具体实现功能的算法)。当然,在需求分析阶段,IPO表中的许多附加信息暂时还不具备。但是,在软件设计阶段可以进一步补充、修正这些表,继续作为设计阶段的文档。这正是在需求分析阶段用IPO表作为描述基本算法的工具的重要优点。IPO(Input-Process-OutputChatr)图建议使用一种改进的IPO图(也称为IPO表),这种图中包含某些附加信息,在软件设计过程中将比原始的IPO图更有用。如下图所示,改进的IPO图中包含的附加信息,主要有:系统名称,图的作者,完成本图的日期,本图描述的模块的名字,模块在层次图中的编号,调用本模块的模块清单,本模块调用的模块的清单,注释,以及本