1、软件工程Software EngineeringSoftware Engineering(An Introduction)软件工程Chapter 5 面向数据流的分析方法面向数据流的分析方法相关概念回顾相关概念回顾建模、常用的分析建模、常用的分析建模、常用的分析建模、常用的分析/建模方法建模方法建模方法建模方法About DFO(Data Flow Oriented)5.1 结构化开发方法结构化开发方法(Structured Developing MethodStructured Developing Method)5.2 SA(Structured Analysis)5.3 Data Mod
2、eling5.4 Function Modeling5.5 SA的扩充的扩充5.6 Behavior modeling5.7 SA的实施的实施5.8 其它的其它的DFO方法方法5.9 案例案例Chapter 5 面向数据流的分析方法面向数据流的分析方法5.2 SA(Structured Analysis)A Brief History&OverviewSA分析模型的结构和元素分析模型的结构和元素5.4 Function ModelingData Flow Diagram(DFD)Data dictionary(DD)process specification or PSPEC5.6 Behav
3、ior modelingControl Flow Diagram(CFD)control specification or CSPECState transition diagram(STD)Others可行性可行性研究研究需求导出需求导出和分析和分析软件原型软件原型可行性报告可行性报告系统模型系统模型系统描系统描述和文述和文档编写档编写需求有需求有效性验效性验证证需求规格说明文档需求规格说明文档相关概念回顾相关概念回顾需求分析的核心:建模需求分析的核心:建模相关概念回顾相关概念回顾建立软件模型是分析活动的焦点。建立软件模型是分析活动的焦点。建立软件模型是分析活动的关键。建立软件模型是分析活动
4、的关键。需求分析的核心在于建立分析模型。需求分析的核心在于建立分析模型。软件工程中,软件整个开发过程需要建模,软件工程中,软件整个开发过程需要建模,软件开发过程的各个阶段也需要建模。软件开发过程的各个阶段也需要建模。不同的软件开发方法,即软件开发范型,最不同的软件开发方法,即软件开发范型,最集中表现在它们模型的区别。所以,软件开集中表现在它们模型的区别。所以,软件开发过程的一系列模型的建立标准、描述形式、发过程的一系列模型的建立标准、描述形式、应用规范等,是一种软件开发方法(范型)应用规范等,是一种软件开发方法(范型)最核心的研究内容。最核心的研究内容。相关概念回顾相关概念回顾分析阶段中常用的
5、模型(逻辑模型)分析阶段中常用的模型(逻辑模型)实体关系图实体关系图数据流图、数据流定义、数据字典、数据流图、数据流定义、数据字典、结结构化英语、事件列表、状态转换图、构化英语、事件列表、状态转换图、用例图、时序图、协作图、类图、状态用例图、时序图、协作图、类图、状态图、图、Jackson实体结构图、实体结构图、SSD图、图、Jackson进进程模型、程模型、层次方框图、Warnier图、IPO/HIPO、等相关概念回顾相关概念回顾使用的方法不同,建立的模型也不相同。使用的方法不同,建立的模型也不相同。但是,但是,一般必须建立以下几类模型一般必须建立以下几类模型:数据模型、功能模型、行为模型数
6、据模型、功能模型、行为模型静态模型、动态模型静态模型、动态模型所建立的模型必须是从抽象到精化的一个所建立的模型必须是从抽象到精化的一个逐层分解逐层分解在需求分析阶段,创建的模型,要着重在需求分析阶段,创建的模型,要着重于描述系统要做什么,而不是如何去做于描述系统要做什么,而不是如何去做(不应涉及软件实现细节)(不应涉及软件实现细节)相关概念回顾相关概念回顾Data ModelBehavioralModelFunctionalModelAnalysis modeling and Model相关概念回顾相关概念回顾常用的分析常用的分析/建模方法建模方法面向数据流的结构化分析方法面向数据流的结构化分
7、析方法(SA)(SA)面向数据结构的面向数据结构的JacksonJackson方法方法(JSD)(JSD)面向数据结构的结构化数据系统开发方法面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法面向对象的分析方法(OOA)(OOA)建立动态模型的状态迁移图或建立动态模型的状态迁移图或Petri网网等等形式化方法形式化方法面向构件的面向构件的其它其它E-R方法方法面向数据流的分析方法面向数据流的分析方法一、一、About DFO(Data Flow Oriented)对对DFO的哲学观的回顾和进一步论述。的哲学观的回顾和进一步论述。“信息流是考虑的关键,即在一个基本系统中,信息流是
8、考虑的关键,即在一个基本系统中,信息可以表示成一个连续的信息可以表示成一个连续的流流,当这个流,当这个流从输入演变到输出时,它要经历一系列的变换从输入演变到输出时,它要经历一系列的变换(处理)(处理)”。抓住抓住“数据流数据流”这一核心概念,用它贯串分析这一核心概念,用它贯串分析的全过程,贯穿整个系统。的全过程,贯穿整个系统。它把系统看成是由数据流联系的各种功能的组它把系统看成是由数据流联系的各种功能的组合。通过每种功能的输入数据合。通过每种功能的输入数据/输出结果,进而输出结果,进而表示现有系统的或待开发系统的功能。表示现有系统的或待开发系统的功能。面向数据流的分析方法面向数据流的分析方法二
9、、(二、(Relevant)Methods1SA。最典型,最具代表性的方法。影响最。最典型,最具代表性的方法。影响最大,应用最广。(大,应用最广。(70年代末)年代末)2SA的扩充。在的扩充。在SA中引入实时系统分析和建模机中引入实时系统分析和建模机制,从而把制,从而把SA的适用范围扩充到面向实时控制的的适用范围扩充到面向实时控制的应用领域。主要是:应用领域。主要是:Ward&Mellor扩充,扩充,Hatley&Pirbhai扩充。(扩充。(80年代中年代中后期)后期)3SADT(Structured Analysis and Design Technique)。)。SADT is a tr
10、ademark of SoftTech Inc.(D.T.Ross等,等,19772;197457中册中册)。面向数据流的分析方法面向数据流的分析方法二、(二、(Relevant)Methods4基于自动工具的方法基于自动工具的方法(1)DFA-Tool,源自复杂实时反应式系统开,源自复杂实时反应式系统开发环境发环境STATEMATE。STATEMATE CASE工工具由具由Harel等人自等人自1984年开始研制,历时四年,年开始研制,历时四年,后来又经历了不断的发展和完善。它是目前能后来又经历了不断的发展和完善。它是目前能够真正为大型软件开发提供全方位支持的少数够真正为大型软件开发提供全方
11、位支持的少数软件开发环境之一。其成功应用引起了软件工软件开发环境之一。其成功应用引起了软件工程界的广泛重视。程界的广泛重视。CASE2000,Nastec公司公司JB/SAT。青岛。青岛CASE面向数据流的分析方法面向数据流的分析方法二、(二、(Relevant)Methods4基于自动工具的方法基于自动工具的方法(2)SREM(Software Requirements Engineering Methodology)。)。SREM was originally developed as an automated aid in requirements definition for soft
12、ware for United States Ballistic Missile Defence Weapons Systems(Alford 1978a).As such it formed part of the much broad Software Development System(SDS)which addressed all development phases of ballistic missile software.It has since been marcked by TRW in the United States.SDS has evolved into the
13、Distributed Computing Design Systems(DCDS)。面向数据流的分析方法面向数据流的分析方法二、(二、(Relevant)Methods4基于自动工具的方法基于自动工具的方法PSL/PSA(Problem Statement Language/Problem Statement Analyzer)是是1968年由年由D.Teichroew 在在University of Michigan 提提出的。它是为出的。它是为ISDOS项目而开发的,又是一个项目而开发的,又是一个称之为计算机辅助设计与规格说明分析工具称之为计算机辅助设计与规格说明分析工具CADSAT的更
14、大的系统的一部分。的更大的系统的一部分。5其它其它ARM(Ada Requirements Methodology)是一)是一种专门基于种专门基于Ada的方法。的方法。Chapter 5 面向数据流的分析方法面向数据流的分析方法相关概念回顾相关概念回顾建模、常用的分析建模、常用的分析建模、常用的分析建模、常用的分析/建模方法建模方法建模方法建模方法About DFO(Data Flow Oriented)5.1 结构化开发方法结构化开发方法(Structured Developing MethodStructured Developing Method)5.2 SA(Structured An
15、alysis)5.3 Data Modeling5.4 Function Modeling5.5 SA的扩充的扩充5.6 Behavior modeling5.7 SA的实施的实施5.8 其它的其它的DFO方法方法5.9 案例案例5.1 结构化方法结构化方法一种面向数据流的传统软件开发方法一种面向数据流的传统软件开发方法以数据流为中心构建软件的分析模型和设计模型以数据流为中心构建软件的分析模型和设计模型分为:分为:结构化分析结构化分析(Structured Analysis 简称简称SA),70年代末年代末结构化设计结构化设计(Structuresd Design 简称简称SD),70年代中年
16、代中结构化程序设计结构化程序设计(Structured Programmin 简称简称SP),70年代初年代初结构化开发方法结构化开发方法结构化开发方法结构化开发方法(Structured Developing Structured Developing MethodMethod)是现有的软件开发方法中最成熟,应用最广泛的方法,是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。主要特点是快速,自然和方便。SA,SD,SP 法相互衔接,形成了一整套开发方法相互衔接,形成了一整套开发方法。若将法。若将SA,SD 法结合起来,又称为结构化分法结合起来,又称为结构化分析与设计
17、技术(析与设计技术(SADT 技术)。技术)。计算机世界计算机世界现实世界现实世界结结构构化化开开发发方方法法结构化结构化结构化结构化分析分析分析分析结构化结构化结构化结构化设计设计设计设计结构化结构化结构化结构化编程编程编程编程OOAOOAOODOODOOPOOP面向对象开发方法Chapter 5 面向数据流的分析方法面向数据流的分析方法相关概念回顾相关概念回顾建模、常用的分析建模、常用的分析建模、常用的分析建模、常用的分析/建模方法建模方法建模方法建模方法About DFO(Data Flow Oriented)5.1 结构化开发方法结构化开发方法(Structured Developin
18、g MethodStructured Developing Method)5.2 SA(Structured Analysis)5.3 Data Modeling5.4 Function Modeling5.5 SA的扩充的扩充5.6 Behavior modeling5.7 SA的实施的实施5.8 其它的其它的DFO方法方法5.9 案例案例Chapter 5 面向数据流的分析方法面向数据流的分析方法5.2 SA(Structured Analysis)A Brief History&OverviewSA分析模型的结构和元素分析模型的结构和元素5.4 Function ModelingData
19、 Flow Diagram(DFD)Data dictionary(DD)process specification or PSPEC5.6 Behavior modelingControl Flow Diagram(CFD)control specification or CSPECState transition diagram(STD)Others 5.2 SA(Structured Analysis)l lA Brief History SA是美国是美国Yourdon 公司提出的公司提出的57中册、中册、9、56SA于于70年代末经年代末经Yourdon E.,Constantine
20、L,DeMarco T.等人提出和发展的等人提出和发展的2。郑人杰等,实用。郑人杰等,实用SE并且此图(并且此图(DFD)已经编入由)已经编入由Yourdon和和Constantine 及及DeMarco所建议的分析和设计技术中。所建议的分析和设计技术中。11。R.S.Pressman结构化分析方法的雏型出现于结构化分析方法的雏型出现于20世纪世纪60年代后期。但是年代后期。但是直到直到1979年才由年才由DeMarco将其作为一种需求分析方法正将其作为一种需求分析方法正式提出式提出53。齐治昌等,。齐治昌等,SEYourdon的的DFD符号符号/Gane&Sarson的的DFD符号符号2、5
21、5、1。5.2 SA(Structured Analysis)A Brief HistoryYourdon方法方法 1978年,年,E.Yourdon和和L.L.Constantine提出了结提出了结构化方法,即构化方法,即SASD方法,也可称为面向功能的方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。软件开发方法或面向数据流的软件开发方法。1979年年Tom DeMarco对此方法作了进一步的完对此方法作了进一步的完善。善。Pfleeger,Shari.L.,Software Engineering:Theory and Pratice,Higher Education Pr
22、ess,20015.2 SA:Overview一、一、SA的优点的优点1.快速、自然方便,历史长而得以不断完善和快速、自然方便,历史长而得以不断完善和广泛应用(至上世纪广泛应用(至上世纪90年代,欧、美、日及我年代,欧、美、日及我国,国,90%以上项目采用用结构化方法)。以上项目采用用结构化方法)。2.适用范围广。不但适用于数据处理类型的软适用范围广。不但适用于数据处理类型的软件系统,还可用于其它不同性质的任何系统,件系统,还可用于其它不同性质的任何系统,包括组织系统、人工系统、硬件系统、机械系包括组织系统、人工系统、硬件系统、机械系统或者是这些系统的混合。统或者是这些系统的混合。3.清晰、简
23、明、直观、自然,易于学习和理解,清晰、简明、直观、自然,易于学习和理解,使用方便。使用方便。(自然:与应用问题的观点较为一致,易于(自然:与应用问题的观点较为一致,易于应用开发)应用开发)5.2 SA:Overview二、二、SA的特征的特征1使用的工具简单、形象,同时又有很使用的工具简单、形象,同时又有很强的表达能力(图形强的表达能力(图形+结构化语言,适用结构化语言,适用于各种具有不同性质的系统)。于各种具有不同性质的系统)。2提供了很好的控制复杂性手段。提供了很好的控制复杂性手段。结构化的自顶向下逐层分解。结构化的自顶向下逐层分解。Structure:Components and int
24、errelationships among components 5.2 SA:Overview三、分析的结果三、分析的结果系统模型系统模型功能模型功能模型行为模型行为模型数据模型数据模型一套分层的模型图一套分层的模型图+一本数据字典一本数据字典DD。数据对数据对 加工加工象说明象说明 说明说明 控制说明控制说明E-R图图 DFD图图STD图图DD数据模型数据模型功能模型功能模型行为模型行为模型5.2 SA:SA分析模型的结构分析模型的结构5.2 SA:Analysis Model Elements数据字典数据字典(DD)是对所有与系统相关的元素的一个有组织的列是对所有与系统相关的元素的一个有
25、组织的列表表,以及精确、简洁和严格的定义,使得用户和以及精确、简洁和严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间系统分析员对于输入、输出、存储成分和中间计算有共同的理解。数据字典是模型的核心,计算有共同的理解。数据字典是模型的核心,它包含了系统使用和产生的所有数据以及模型它包含了系统使用和产生的所有数据以及模型图中其它所有织成元素的描述。图中其它所有织成元素的描述。E-R图图(ERD):用于数据建模用于数据建模数据流图数据流图(DFD):用于功能建模用于功能建模状态变迁图状态变迁图/转换图转换图(STD):用于行为建模。用于行为建模。工资汇总表工资汇总表工资条工资条工资工资计
26、算计算工资册工资册取取款款总总 务务人人 事事工资工资汇总汇总工资工资分配分配开开户户银银行行职职 工工工资费用分配表工资费用分配表工资工资发放发放工资处理数据流图工资处理数据流图工资发放表工资发放表统筹医疗费统筹医疗费房租费房租费水电费水电费托儿费托儿费工资调整表工资调整表调入人员工资单调入人员工资单调出人员调出单调出人员调出单病事假扣款单病事假扣款单工资条工资条人民币人民币例例1 工资处理工资处理DFD例例3 3 软件测试策略流图软件测试策略流图DFDDFD数据流图例子数据流图例子订票员订票员订票员订票员机票预机票预定系统定系统订票单订票单帐单帐单机票机票数据流图例子数据流图例子订票员订票
27、员订票员订票员预定预定机票机票准备准备机票机票记帐记帐订票单订票单航班目录航班目录航班号航班号航班航班费用费用帐单帐单机票机票记帐数据库记帐数据库帐目帐目数据字典例子数据字典例子订票单订票单 名字名字:订票单订票单 数据类型数据类型:航班日期航班日期+目的地目的地+出发地出发地+航班号航班号+旅客姓名旅客姓名+身份证号码身份证号码 作为输出流的转换列表作为输出流的转换列表:作为输入流的转换列表作为输入流的转换列表:预定机票预定机票使用说明使用说明:必须给出各个数据项必须给出各个数据项解释性说明解释性说明:无无缺省值缺省值:出发地出发地=填写本地填写本地 数据字典示例数据字典示例航班目录航班目录
28、 航空公司名称航班号起点终点航空公司名称航班号起点终点 日期日期 起飞时间降落时间起飞时间降落时间 航空公司名称航空公司名称 2 2字母字母44 字母字母 “A”“Z”“A”“Z”航班号航班号 3 3十进制数字十进制数字33 十进制数字十进制数字 “0”“9”“0”“9”起点起点 1 1汉字汉字1010终点终点 1 1汉字汉字1010起飞时间起飞时间 时分时分降落时间降落时间 时分时分时时 “00”“23”“00”“23”分分 “00”“59”“00”“59”日期日期 年月日年月日年年 2000 200020012001200220022004|2004|月月 “01”“12”“01”“12”
29、日日 “01”“31”“01”“31”问题?问题?SA:结构化的自顶向下逐层分解结构化的自顶向下逐层分解对于大型复杂系统,最困难的是如何处理复杂性。对于大型复杂系统,最困难的是如何处理复杂性。在在SE中,控制复杂性的主要手段是中,控制复杂性的主要手段是“抽象抽象”和和“分解分解”。逐层分解逐层分解/横向分解横向分解+纵向分解:纵向分解:上层是下层的抽象,下层是上层的分解上层是下层的抽象,下层是上层的分解(细化或求精细化或求精)。顶层抽象地表达了整个系统,底层具体给出了系统的每顶层抽象地表达了整个系统,底层具体给出了系统的每一个细节,而中间层则是从抽象到具体的过渡。一个细节,而中间层则是从抽象到
30、具体的过渡。按照这种方法,无论系统多大、多复杂,分析工作的复按照这种方法,无论系统多大、多复杂,分析工作的复杂性不会随之增大,而只不过是多分解几层而已。而且杂性不会随之增大,而只不过是多分解几层而已。而且使得人们不至于一下子被系统的许多细节所淹没,而是使得人们不至于一下子被系统的许多细节所淹没,而是有控制地逐步了解更多的细节,使得分析工作总是可以有控制地逐步了解更多的细节,使得分析工作总是可以有计划、有步骤、有条不紊地进行。有计划、有步骤、有条不紊地进行。SA:结构化的自顶向下逐层分解结构化的自顶向下逐层分解顶层图顶层图顶层图顶层图/概貌图概貌图概貌图概貌图/内外关系图内外关系图内外关系图内外
31、关系图(L L)顶层顶层0 0层层1 1层层图图图图0 0 0 0图图图图1 1 1 1图图图图2 2 2 2图图图图3 3 3 3SA:结构化的自顶向下逐层分解结构化的自顶向下逐层分解系统的组成是这样抽象和分解的。对数系统的组成是这样抽象和分解的。对数据的定义也表现为对数据的自顶向下分据的定义也表现为对数据的自顶向下分解,当数据被分解到不需要进一步解释解,当数据被分解到不需要进一步解释说明、且每个参与该工程的人员都清楚说明、且每个参与该工程的人员都清楚其含义时,对数据的定义就算完成了。其含义时,对数据的定义就算完成了。9 P535557中册中册P51数据字典数据字典自顶向下分解示例自顶向下分
32、解示例航班目录航班目录 航空公司名称航班号起点终点航空公司名称航班号起点终点 日期日期 起飞时间降落时间起飞时间降落时间 航空公司名称航空公司名称 2 2字母字母44 字母字母 “A”“Z”“A”“Z”航班号航班号 3 3十进制数字十进制数字33 十进制数字十进制数字 “0”“9”“0”“9”起点起点 1 1汉字汉字1010终点终点 1 1汉字汉字1010起飞时间起飞时间 时分时分降落时间降落时间 时分时分时时 “00”“23”“00”“23”分分 “00”“59”“00”“59”日期日期 年月日年月日年年 2000 200020012001200220022004|2004|月月 “01”“
33、12”“01”“12”日日 “01”“31”“01”“31”Chapter 5 面向数据流的分析方法面向数据流的分析方法相关概念回顾相关概念回顾建模、常用的分析建模、常用的分析建模、常用的分析建模、常用的分析/建模方法建模方法建模方法建模方法About DFO(Data Flow Oriented)5.1 结构化开发方法结构化开发方法(Structured Developing MethodStructured Developing Method)5.2 SA(Structured Analysis)5.3 Data Modeling5.4 Function Modeling5.5 SA的扩充
34、的扩充5.6 Behavior modeling5.7 SA的实施的实施5.8 其它的其它的DFO方法方法5.9 案例案例Chapter 5 面向数据流的分析方法面向数据流的分析方法5.2 SA(Structured Analysis)A Brief History&OverviewSA分析模型的结构和元素分析模型的结构和元素5.4 Function ModelingData Flow Diagram(DFD)Data dictionary(DD)process specification or PSPEC5.6 Behavior modelingControl Flow Diagram(CF
35、D)control specification or CSPECState transition diagram(STD)Others5.4 SA:Function Modeling结构化方法总的指导思想自顶向下、逐步求结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分解与抽象。精。它的基本原则是功能的分解与抽象。基本思想基本思想:“自顶向下,逐步求精自顶向下,逐步求精”,“抽抽象和分解象和分解”主要思想:抽象与自顶向下的逐层分解主要思想:抽象与自顶向下的逐层分解(控控制复杂性的两个基本手段制复杂性的两个基本手段)抽象:从作为整体的系统开始抽象:从作为整体的系统开始(第一层第一层
36、),每一抽每一抽象层次上只关注于系统的输入输出象层次上只关注于系统的输入输出分解:将系统不断分解为子系统、模块分解:将系统不断分解为子系统、模块随着分解层次的增加,抽象的级别越来越低,随着分解层次的增加,抽象的级别越来越低,也越接近问题的解也越接近问题的解(算法和数据结构算法和数据结构)5.4 SA:Function ModelingEvery computer-based system is an Every computer-based system is an information transform.information putercomputerbasedbasedsystems
37、ysteminputinputoutputoutput5.4 SA:Function Modeling 基于基于计算机计算机的系统的系统输入信息输入信息输出信息输出信息外部实体外部实体外部实体外部实体外部实体外部实体输入信息输入信息外部实体外部实体外部实体外部实体输出信息输出信息输出信息输出信息S S2 21 13 32.22.22.12.12.32.33.13.13.23.2 顶层顶层(不编号)(不编号)0 0层层1 1层层X1321.11.21.41.32.12.21.1.11.1.22.1.32.1.22.1.12.2.22.2.32.2.1顶顶顶顶层层层层中中中中 间间间间 层层层层底
38、底底底 层层层层0 0图图图图1 1图图图图2图图1.11.1图图图图2.12.1图图图图2.22.2图图图图 基本思想:抽象与自基本思想:抽象与自顶向下的逐层分解顶向下的逐层分解 抽象:从作为整体的抽象:从作为整体的系统开始系统开始(第一层第一层),每一抽象层次上只关每一抽象层次上只关注于系统的输入输出注于系统的输入输出 分解:将系统不断分分解:将系统不断分解为子系统、模块解为子系统、模块 随着分解层次的增加,随着分解层次的增加,抽象级别越来越低,抽象级别越来越低,也越接近问题的解也越接近问题的解 (算法和数据结构算法和数据结构)5.4 SA:Function Modeling5.4.1 D
39、ata Flow Diagram(DFD)Data Flow Diagram(DFD)(也称也称bubble chart or data flow graph)数数据据流流图图是是描描述述系系统统中中数数据据流流程程的的图图形形工工具具,它它标标识识了了一一个个系系统统的的逻逻辑辑输输入入和和逻逻辑辑输输出出,以以及及把把逻逻辑辑输输入入转转换换为为逻逻辑辑输输出出所所需的加工处理。需的加工处理。Data flow diagram(DFD)provides an indication of how data are transformed as they move through the sy
40、stem;also depicts functions that transform the data flow(a function is represented in a DFD using a process specification or PSPEC)DFD:成份和记号成份和记号一、一、DFD的基本成份和记号(或称基本符号的基本成份和记号(或称基本符号或图元)或图元)4 种基本成份:种基本成份:数据流数据流加工(加工(Process,也将变换、转换、过程),也将变换、转换、过程)数据存储(数据存储(data store)或数据存储文件)或数据存储文件源点(源点(source)和终点(
41、)和终点(destination/sink)或外)或外部实体。部实体。有有2种不同风格的图形符号:种不同风格的图形符号:Yourdon 和和Gane/Sarson。数据存储数据存储数据源点数据源点或终点或终点加加 工工加工名加工名数据流数据流数据流名数据流名文件名文件名实体名实体名箭箭 头头圆或椭圆圆或椭圆单或双杠单或双杠矩形框矩形框数据流图的图符数据流图的图符四种基本图形符号:四种基本图形符号:DFD:成份和记号成份和记号加工名加工名加工名加工名编号编号加工名加工名加工名加工名编号编号文件名文件名文件名文件名数据存储数据存储(文件或数据库)文件或数据库)数据流数据流(数据对象)(数据对象)位
42、于被建模系统之外的信息生位于被建模系统之外的信息生产者或消费者产者或消费者,称为外部项。称为外部项。说明数据输入的说明数据输入的源点源点(数据源数据源)或数据输出的或数据输出的汇点汇点(数据池数据池)2 2或或或或或或2 2IIII数据处理数据处理(加工加工)DFD:成份和记号成份和记号外部实体外部实体数据流数据流过程过程(加工加工)数据存储数据存储条目查询请求条目查询请求查询可查询可用条目用条目1 1客户客户目录目录产品条目产品条目库存条目库存条目可用条目查询结果可用条目查询结果源点源点触发触发动作动作终点终点响应响应DFD:成份和记号成份和记号数据流数据流表示含有固定成分的动态数据表示含有
43、固定成分的动态数据包含输入数据和输出数据包含输入数据和输出数据加工处理加工处理又称变换,表示对数据进行的逻辑操作又称变换,表示对数据进行的逻辑操作加工都应具有数据流入和数据流出加工都应具有数据流入和数据流出数据存储数据存储表示处于静态的、需要存储的数据表示处于静态的、需要存储的数据源点源点/终点终点表示数据的产生和最终抵达处表示数据的产生和最终抵达处通常是系统边界,如部门、人员、组织等通常是系统边界,如部门、人员、组织等DFD:成份和记号成份和记号数据流图与程序流程图数据流图与程序流程图(框图框图)不能混淆。不能混淆。数据流程图描绘的是信息流,没有明显的数据流程图描绘的是信息流,没有明显的控制
44、说明控制说明(例如条件或循环例如条件或循环),它不是一个,它不是一个用圆圈表示的程序流程图。用圆圈表示的程序流程图。箭头:数据流图和程序流程图中用箭头表箭头:数据流图和程序流程图中用箭头表示的控制流有本质不同,不能混淆。在数示的控制流有本质不同,不能混淆。在数据流图中应该描绘所有可能的数据流向,据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。而不应该描绘出现某个数据流的条件。数据流图:描绘数据流图:描绘数据流图:描绘数据流图:描绘“做什么做什么做什么做什么”,不考虑,不考虑,不考虑,不考虑“怎么怎么怎么怎么做做做做”DFD:成份和记号成份和记号加工加工/处理处理处理并不一
45、定是一个程序。一个处理框可以代处理并不一定是一个程序。一个处理框可以代表一系列程序、单个程序或者程序的一个模块,表一系列程序、单个程序或者程序的一个模块,也可代表一个人工处理过程,如用户目视检查也可代表一个人工处理过程,如用户目视检查数据正确性。数据正确性。数据存储数据存储这里的数据存储文件并不是我们熟悉意义下的这里的数据存储文件并不是我们熟悉意义下的文件。一个数据存储并不等同于一个文件,它文件。一个数据存储并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的可以表示一个文件、文件的一部分、数据库的元素等;它可以存储在磁盘、磁带、磁鼓、主元素等;它可以存储在磁盘、磁带、磁鼓、主存、微
46、缩胶片、穿孔卡片及其他任何介质上存、微缩胶片、穿孔卡片及其他任何介质上(包包括人脑括人脑)。DFD:成份和记号成份和记号源点和终点源点和终点是代表系统之外的人、物或组织。它们发出或是代表系统之外的人、物或组织。它们发出或接受系统的数据,其作用是说明系统和外界环接受系统的数据,其作用是说明系统和外界环境之间的联系。境之间的联系。因是在系统之外,故表达不一定要很严格。因是在系统之外,故表达不一定要很严格。源点指数据的产生地点源点指数据的产生地点终点是指数据由系统输出后到达的目的地。终点是指数据由系统输出后到达的目的地。需要时也可以需要时也可以(56P40,2P55,9P27)使用附加符号表示数据流
47、之间的关系。使用附加符号表示数据流之间的关系。或加上物质流(用粗箭头表示)以帮助理解。或加上物质流(用粗箭头表示)以帮助理解。DFD:成份和记号成份和记号附加符号附加符号 表示数据流之间是表示数据流之间是 AND 关系(同时存在)关系(同时存在)表示数据流之间是表示数据流之间是 OR 关系关系 表示数据流之间是表示数据流之间是 XOR 关系(互斥关系)关系(互斥关系)ABC+ABC 数据数据A和和B同时输入同时输入才能变换成数据才能变换成数据C数据数据A或或B只要有一个只要有一个输入就能变换成数据输入就能变换成数据CA或或B只能输入一只能输入一个才能变换成个才能变换成CABC*ABC+ABC
48、数据数据A变换产变换产生数据生数据B和和C数据数据A变换产生数变换产生数据据B或或C至少一个至少一个数据数据A变换产变换产生数据生数据B或或CABC*DFD:成份和记号成份和记号数据流图是一种描述数据以及对数据进行加数据流图是一种描述数据以及对数据进行加工转换的图形工具工转换的图形工具一个数据流图主要由以下四个部分组成:一个数据流图主要由以下四个部分组成:数据流数据流数据处理数据处理外部实体外部实体数据存储数据存储外部实体名称外部实体名称数据存储名称数据存储名称转换转换名称名称数据流名称数据流名称顾顾客客出出版版社社验证验证订单订单汇总汇总订单订单订单订单出版社出版社 订单订单图书目录文件图书
49、目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确正确订单订单一批一批订单订单出版社档案文件出版社档案文件订货存根文件订货存根文件DFD:成份和记号成份和记号加工名加工名编号编号加工名加工名编号编号文件名文件名文件名文件名数据流名数据流名DFD:成份和记号成份和记号增补增补工资工资发放发放工资条工资条扣款扣款工资档案工资档案每月每月4号号取下一个职工取下一个职工的工资档案的工资档案人民币人民币控制流控制流 必须去掉!必须去掉!增补增补工资工资发放发放工资条工资条扣款扣款人民币人民币工资档案工资档案物质流物质流DFD:建立分层的建立分层的DFD如何建立分层的如何建立分层的DFD 如何用如何
50、用DFD分析、建模分析、建模分析、建模的总则分析、建模的总则分析、建模的一般过程和步骤分析、建模的一般过程和步骤建立建立分层分层DFD的步骤和顺序的步骤和顺序建立分层建立分层DFD的技术性原则的技术性原则逐步求精,反复改进、完善逐步求精,反复改进、完善回顾:回顾:分析建模的总则、过程和步骤分析建模的总则、过程和步骤使用的方法不同,建立的模型也不相同。使用的方法不同,建立的模型也不相同。但是,但是,一般必须建立以下几类模型一般必须建立以下几类模型:数据模型、功能模型、行为模型数据模型、功能模型、行为模型静态模型、动态模型静态模型、动态模型所建立的模型必须是从抽象到精化的一个所建立的模型必须是从抽