教学工作的资源分享

第五章面向数据流的分析方法分析

职教高考

职教高考

课程名称:软件工程第10讲班:共01-1、2、3、4讲班日期: 2004年9月30日星期四7、8节教室: 3教13楼多媒体教室

教学主题:第五章面向数据流的分析方法。 教学目的:掌握数据流图和数据字典的概念和用法,了解实体-关系图的绘制方法和作用,初步掌握基于数据流的分析方法。 教学重点:数据流图和数据字典、实体-关系图、基于数据流的分析方法。

教学难点:实体-关系图。 教具:多媒体教室,电子教案作业:第五章面向数据流的分析方法

面向数据流的分析方法(data flow-orientedanalysismethod )和面向数据、面向对象的分析方法都是

需求建模方法。 它们有规范的语言表达机制,供需求分析人员表达用户需求,建立软件系统模型。 还包括规则和经验知识,指导分析人员提取需求信息,促进用户需求精准化、全面化、一条龙。

面向数据流的分析方法是结构化分析方法系列之一,具有明显的结构化特征。 结构化分析方法的雏形出现在20世纪60年代后半期。 但是,到1979年,DeMarco正式提出了需求分析方法。 由此,结构化分析方法得到了迅速发展和广泛应用。 本章主要介绍了广泛使用的数据流方法和需求分析CASE工具。 5.1数据流图和数据字典

基于计算机的信息处理系统由数据流和一系列转换组成,将输入数据流转换为输出数据流。 数据流图是用于描述数据流和变换的信息系统建模技术。 数据流、转换、数据源和外部实体都用简单的图形符号表示,如下图所示。 数据流图的图形符号

外部实体位于软件系统边界之外的信息生产者或消费者转换转换数据流的过程也称为气泡数据源数据流

为一个或多个转换提供数据源或数据存储服务的缓冲区、文件或数据库是在转换之间移动的数据项或数据项的集合

“and”,即同时输入/输出

“或”,即至少一个输入/输出; “异或”,即非同时输入/输出*数据流图

数据流图提供了层次结构,使分析人员能够方便地表示任意抽象级别的信息系统或子系统,并提供了分析方法来支持问题的分解、细化。 最初,整个信息处理系统可以用图5-1-2所示的顶层(0级)数据流图表示。 图5-1-2 "家庭保安系统"顶数据流图家庭保安报警类别安全系统

控制面板传感器显示屏电话机报警器

随着需求分析活动的进展,如图5-1-3所示,高抽象级别的复杂变换可以细化为一系列相互关联的数据流和子变换。 在数据流方法中,与变换的逐步细化同步,进行数据流的细化。 z2y2x2n1m1d1C1C1E1E1B0a0f1f3f

F2

F4 F5F41F42

F43 F44B0级零级一级二级

图5-1-3数据流图精炼和层间平衡的确立数据流的模型化遵循以下原则

1 .每个加工至少反映一个输入数据流(反映待处理数据流的来源)和一个输出数据流(反映加工的结果)。 2 .数据流图中每个组件的名称必须具有明确的含义,并且能够表示相应元素的内容或功能。 3 .细分某一加工生成的下层数据流图称为该上层图的子图。 必须保证分层数据流图中任何对应的母图与子图的输入输出数据流一致。

4 .按层次给出加工编号,表明该加工所在层次及上下母图与子图的关系。 编号规则不对顶层加工进行编号; 第一层加工的编号是1、2、…、n。 第二层加工的编号为11、12、…、21、22、…、n1、n2、…、等。 要创建数据流模型,请遵循以下准则

5 .请勿在父图中显示与子图相关的局部数据存储文件。 通常,不仅需要在下面的数据流图中显示所有的数据流存储器,为了保持屏幕的整洁,每个中间层的数据流图只需要显示处理之间的接口文件即可。 6 .数据流图由4种基本符号组成,是实际业务流程的客观示意图,用于描述系统应该“做什么”,而不需要“怎么做”。 7 .数据流图分解速度应适中。 通常,一个加工每次可以分解为2~4个子加工,最多不要超过7个。 否则,用户将很难理解。 另外,请注意每一层都很精致。 8 .为了方便数据流图在计算机上的输入和输出,应免除斜线、弧线、圆圈等符号。

数据词典

数据流图的结构不描述数据流的内容。 数据流图必须与编写和组织数据项的数据字典结合使用。 表5-1数据词典中的基本符号及其意义符号意义说明=表示=为了恰当定义左边的项目而定义的表示和关系X=a b表示x由a和b构成

[ | ]或[,]指示或关系X=[a|b]等价于X=[a,b],指示x由a或b组成()指示选项x=) ) a出现在x中,{ }

m{ }n表示规定次数的重复次数最少为m次,最大n次“”表示基本数据元素“”的内容是基本数据元素,表示不可再分割.连接符Month=1.12表示month为1~12中的一个在数据流图中,数据流、注释这两个星号间内容是注释信息

2 .数据类型

3 .将其作为输入流或输出流的所有转换的列表

4 .此数据条目的使用简要说明; 5 .数据条目说明6 .其他补充说明,例如取值范围与默认值相关的设计约束等。 支持数据流分析的CASE工具具有以下数据字典管理功能:

1 .一般检查。 例如,可以自动进行重复检查,避免数据流图中不一致的数据定义。

2 .可以从现有数据流图生成相关变换的列表。

职教本科

职教本科

3 .自动完成有关数据条目的各种查询。 例如,在哪里使用这个数据条目? 更改部分数据流图将影响哪些数据项? 更改数据条目会产生什么影响? 这有助于分析人员在需求模型的演化过程中保持模型的一致性。 数据字典数据项的定义必须遵循以下原则: 正确、

简洁,

能够为用户和软件开发人员共同理解。 例如,可以使用格式语言语法定义机制来描述数据条目的内容。 原子语法的成分用易懂的自然语言记述。 数据词典示例家庭保安系统的“电话号码”数据项可定义如下:

<; 电话号码>;=<; 内线号码>; |<; 外线号码>;

<; 内线号码>;

数据流图和数据字典如上所述。

您可以使用数据字典来编写、组织和管理数据流图中的数据流、数据源和外部实体。 转换也需要比图形符号更详细的表示机制,这就是结构化的文字描述。 分析人员可以将文本附加到数据流图的任何转换中,以说明转换的功能、性能要求、设计约束等。 这个说明必须尽可能简洁、明确、容易理解。 5.2实体-关系图数据密集型APP问题中,复杂数据与数据之间复杂关系的分析和建模是需求分析的重要任务。

实体-关系图——适用于数据流分析方法中复杂的数据建模工具。

5.2.1数据对象、属性和关系数据对象:是省略了作为现实世界中实体数据表示的功能和行为的实体。 数据源;

数据对象是外部实体的数据部分; 数据流的内容。

5.2.1数据对象、属性和关系数据对象按其属性描绘。 属性通常包含1.namedattributes。 命名数据对象的实例。 在这种情况下,必须包含一个或多个键属性才能唯一标识数据对象的实例。

2 .描述性属性:描述数据对象实例的性质。 3 .参考属性:将自身与其他数据对象的实例关联。

一般来说,现实世界中的任何实体都有很多属性,分析师应该只考虑与APP应用问题相关的属性。 例如,在汽车销售管理问题中,汽车的属性可能是制造商、型号、识别码、车身类型、颜色和买方。 5.2.1数据对象、属性和关系应用问题中的任何数据对象都不是孤立的,它们必然与其他数据对象有各种形式的关联。 例如,在汽车销售管理问题上,“制造商”与“汽车”之间存在“生产”关系,“购买者”与“汽车”之间存在“购买”关系。 当然,关系的命名和内涵因具体问题而异。 分析人员应善于消除与应用问题无关的关系。 根据数据对象、属性和关系,分析专家可以创建APP应用问题的数据模型。 5.2.1数据对象、属性和关系

建立数据模型规范化规则:确保一致性并消除冗馀1 .每个属性的数据对象实例必须只有一个属性值。

2 .属性是原子数据项,不能包含内部数据结构。 3 .如果数据对象具有多个键属性,则其他非键属性必须表示整个数据对象,而不是部分键属性的特性。 4 .所有非关键属性必须表示整个对象,而不是某些属性的特征。

例如,在“汽车”数据对象中添加“经销商”属性,将其与识别码一起作为关键属性。 添加“经销商地址”属性将违反规则3。 它只是“经销商”的特征,所以与汽车的“识别码”无关。 例如,如果将“绘制名称”属性添加到“汽车”数据对象,将违反规则4。 这是因为它只与“颜色”有关,而不是整个“汽车”的特征

5.2.2实体-关系图

实体-关系图简称为E-R图,是表示数据对象及其关系的图形语言机制。 数据对象(实体)用矩形表示,关系用菱形表示,属性用椭圆表示。 数据对象之间的数量对应关系的显示如下图所示。 0 : 1 1 : 1 0 :多1 :多E-R模型的实体、关系、属性必须在相应的框中写出各自的名称。 5.2.2实体-关系图5-2-2实体-关系图实例厂家生产经销商汽车

存储流通识别代码的颜色模型

教育信息化管理系统

教育信息化管理系统

买主车身类型

5.3基于数据流的分析方法5.3.1建立数据流模型

数据流用图形表示了对象软件系统中的各处理子功能和它们之间的数据流。 数据流图的精化过程是实际处理子功能和数据流的细化过程。 随着这一进程的推进,用户需求逐渐精准化、一致化、完善化。 要创建表示用户需求的数据流模型,必须遵循以下五条规则: 1 )首先,创建顶层数据流图,其中只包含一个表示目标软件系统的总体处理能力的转换。 根据软件系统与外部环境之间的关系,确定顶级数据流图表中的外部实体以及它们与软件系统之间的数据流。 例如

图5-1-2 "家庭保安系统"顶数据流图家庭保安报警类别安全系统

控制面板传感器显示电话机报警器建立数据流模型的五条规则

2 )对用户要求的文字描述进行语法分析,其中名词和名词短语构成潜在的外部实体、数据源或数据流,动词构成潜在的处理功能。

结合分析人员对问题域和用户需求的理解,确定了软件系统的主要功能以及它们之间的数据流,“家庭安防系统”一级数据流如图5-3-1所示。 图5-3-1“家庭保安系统”一级数据流图电话拨号传感器数据号音频源密码

密码有效/密码无效密码结构命令显示消息启动/停止命令

信息控制面板用户命令处理系统的构成密码核对信息显示

启动/停止处理显示面板

传感器监视报警器电话机

创建数据流模型的五条规则

3 )采用常规功能分解方法,按照“强凝聚、松耦合”原则精简每一个处理功能; 与此同时,逐步完成数据流的精化,对精化后的处理功能生成下一级数据流图。 “强绑定、松耦合”原则可以给对象软件系统的可修改性、可扩展性带来很大的利益。 这是因为开发人员可以缩小软件修改和扩展影响的传播范围。 数据流的精化有两层含义。 首先,随着功能分解的进行,数据流的内容和各特征逐渐变得明显,因此作为数据词典的条目,对内容进行精炼和调整。 然后,可以将父数据流图中的复合数据项分解为子数据项,这种数据流分解不能违背平衡原则。 图5-3-2 "家庭保安系统"二级数据流图: "传感器监视"的分解传感器ID、类别传感器数据

(内部显示)传感数据

拨号音频

配置信息读取感测数据以生成报警信号异常数据以确定电话拨号

创建数据流模型的五条规则

4 )精化过程中,应维持各级数据流图之间数据流的平衡。

5 )精心设计的过程必须适当地停止,以便不涉及软件设计的细节。 一般来说,如果某个子功能可以用简洁准确的文字明确地记述,就没有必要进一步分解。 5.3.2工艺规格说明

对于数据流图中不再分解的处理功能,分析人员必须采用结构化自然语言准确简洁地描述其功能。

将图5-3-1的“密码核对”子功能分解后的“设置密码”子功能可以记述在以下页面。 工艺规格说明例——“设定密码”子功能1 .参数:密码; 类别:字符串2 .处理步骤:1)检查系统中是否已经有密码。 如果是,则验证用户输入的密码的有效性。 如果有效,则会提示您输入新密码。 否则,显示失败消息并退出。 2 )检查密码长度是否合法。 如果不正确,系统会提示您重新输入。 3 )要求用户重新输入合法密码,以便用户确认并记住。 如果两次输入的密码不一致,则返回。 4 )将确认后的密码用某种加密方法转换为其他字符串,存储到系统结构文件中。 显示成功消息并退出。 3 .约束条件:在上述1 )、2 )、3 )的步骤中,用户重试的机会为3次以下。 5.4基于数据流图的需求分析CASE工具

使用前述方法进行需求分析时,需要计算机在数据流图的制作、数据字典的存储、检索、一致性检查等方面提供支持。 本节显示基于数据流图表的需求分类

分析CASE工具的蓝皮书DFA_Tool。 介绍如何使用DFA_Tool进行需求分析。

5.4.1 DFA_Tool的核心思想DFA_Tool的核心思想可以归纳为多视点需求分析、可视形式化和可行的需求规格说明语言。 1 .多视角需求分析

DFA_Tool从相互关联的结构、功能和行为三个方面分别建立目标软件系统的模型。 1 )就结构而言,分析人员基于系统的物理结构或软件结构(例如物理组件、软件模块、任务等)分层分解,识别系统各部分之间的数据流,并制作系统的结构图5.4.1 DFA_Tool核心思想2 )在功能视角下,分析人员利用功能分解方法刻画系统活动(类似于数据流图的变换)和活动之间可能出现的数据流,用逐步完善的方法绘制系统活动图。 与数据流图一样,DFA_Tool活动图不包含动态性质。 我不关心事件是如何开始和结束的,也不关心事件是否可以与其他事件并行执行。 对于数据流,活动图只是表示可以在特定活动之间移动,并不表示5.4.1 DFA_Tool移动的时间。 3 ) APP应用系统在时间坐标系中的所有控制行为都是通过行为的视角来描述的。 层次结构中每个级别的活动图都有相应的行为图,用于说明系统的动态行为,例如:

在各个时间点事件的刺激下,某些事件开始或结束,产生新的事件;

连续监测活动活跃情况和数据流情况,据此确定系统下一步行走。 5.4.1 DFA_Tool核心思想系统的活动图(功能视角)和行为图(行为视角)紧密结合,共同构成系统的概念模型。 地图和活动图的关系简单而直接。 地图的某些组件负责实现活动图的某些功能。图5-4-1 DFA_Tool的模型结构5.4.1 DFA_Tool的核心思想2 .可视形式化

与文字相比,图形直观简洁。 因此,在需求分析活动中,往往离不开上述数据流图那样的图形机制的支持。 DFA_Tool的结构图、活动图和状态图都基于一个通用的简单图形符号,具有形式化的含义。 因此,DFA_Tool兼具图形的简单直观和形式化机制的精度。 5.4.1 DFA_Tool的核心思想3 .可行的需求规格说明语言应当对需求规格说明进行详细的测试,表达需求规格说明的语言机制应当具有可行的含义。 由此,系统可以在需求分析阶段实际展示对象软件系统的动态行为,为分析人员提供动态分析、调试和测试等手段。 请用户尽快确认要求。 DFA_Tool定义了图形语言机制的操作语义。 可以显示系统的动态行为。 DFA_Tool提供元级模拟控制语言SCL (简单控制语言)。 SCL允许分析人员通过多种方式模拟外部环境,捕捉目标

标记软件系统的状态或事件,并提供元级控制。 5.4.2基于case工具的需求分析基于DFA_Tool的需求分析流程大致如下: 1 )从多个视角分别建立对象软件系统的结构模型、功能模型和行为模型。 2 )在上述建模过程中,采用分解功能、逐步细化的方法,首先可以对部分子系统开展分析活动。 一般来说,首先应该制作子系统的活动图(功能模型),然后给出合适的状态图(行为模型)。 3 )利用DFA_Tool表描述机制,描述数据流、事件、状态、原子活动等各种图形表示中所有图形的内容。 4 )利用DFA_Tool的动态分析能力,仿真运行对象软件系统或其子部分的模型,发现不一致、不完整,进行相应的修正和完善。 5.4.2基于case工具的需求分析

DFA_Tool可以为分析人员自动化以下繁琐的工作。 1 .模型图示、保存和检索;

2 .模型间、数据项间一致性检查; 3 .行为模型中状态可达性分析、死锁分析; 4 .模型动态仿真执行5 .模型修正的影响传播范围的确定等。

随机看看

NEW ARTICLE

标签

Tag