软件工程(结构化生命周期方法之结构化分析方法)
结构化分析方法
结构化分析是面向数据流进行需求分析的方法。20世纪70年代末,经Yourdon E.、Conˉstantine L.、DeMarco T.等人提出和发展,至今已得到广泛应用。结构化分析方法的一些重要概念也渗透在其他开发方法中。例如,结构化分析与设计技术(Structured Analysis and Design Technique,SADT)、面向对象技术(Object-Oreinted Technique,OOT)、IDEF方法等。
结构化分析方法适合于数据处理类型软件的需求分析。由于利用图形表达需求,显得清晰、简明,易于学习和掌握。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。根据DeMarco的论述,结构化分析方法使用的工具有:数据流图、数据词典、结构化英语、判定表、判定树。结构化分析方法有两个明显特点。
采用简明易懂、直观的描述方式
1.数据流图
数据流图也称为Bubble Chart或data Flow Graph。是描述数据处理过程的工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
(1)数据流图的主要图形元素
从数据流图中可知,数据流图的基本图形元素有4种。
数据流是沿箭头方向传送数据的通道,它们大多是在加工之间传输加工数据的命名通道,也有连接数据存储文件和加工的没有命名的数据通道。这些数据流虽然没有命名,但因联接着有名加工和有名文件,所以其含意也是清楚的。同一数据流图上不能有同名的数据流。多个数据流可以指向同个加工,也可以从一个加工散发出许多数据流。
加工是以数据结构或数据内容作为加工对象的。加工的名字通常是一个动词短语,简明扼要地表明完成的是什么加工。
文件在数据流图中起保存数据的作用,因而称为数据存储(Data Store)。它可以是数据库文件或任何形式的数据组织。指向文件的数据流可理解为写入文件或查询文件,从文件中引出的数据流可理解为从文件读取数据或得到查询结果。
数据流图中第4种元素是数据源点或汇点,它表示图中要处理数据的输入来源及处理结果要送往何处。由于它在图中的出现仅仅是一个符号,并不需要以软件的形式进行设计和实现,因而,它只是数据流图的外围环境中的实体,故称外部实体。在实际问题中它可能是计算机外围设备或是传感装置。
(2)数据流与加工之间的关系
在数据流图中,如果有两个以上的数据流指向一个加工,或是从一个加工中引出两个以上的数据流,这些数据流之间往往存在一定的关系。
(3)分层的数据流图
为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。
先把整个数据处理过程暂且看成一个加工,它的输入数据和输出数据实际上反映了系统与外界环境的接口。这就是分层数据图的顶层。但只此一图并未表明数据的加工要求,需要进一步细化。如果这个数据处理包括3个子系统,就可以画出表示这3个子系统1、2、3的加工及其相关的数据流。这是顶层下面的第一层数据流图,记为DFD/L1。继续分解这3个子系统,可得到第二层数据流图DFD/L2.1、DFD/L2.2、及DFD/L2.3,它们分别是子系统。1、2和3的细化。仅以DF/2为例,其中的4个加工的编号均可联系到其上层图中的子系统2。这样得到的多层数据流图可十分清晰地表达整个数据加工系统的真实情况。对任何一层数据流图来说,称它的上层图为父图,在它下一层的图则称为子图。
在多层数据流图中,可以把顶层流图、底层流图和中间层流图区分开。顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统的输出数据。顶层流图的作用在于表明被开发系统的范围,以及它和周围环境的数据交换关系。底层流图是指其加工不须再做分解的数据流图,其加工称为“原子加工”。中间层流图则表示对其上层父图的细化。它的每一加工可以继续细化,形成子图。中间层次的多少视系统的复杂程度而定。
(4)数据流图画法
画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。具体步骤可按如下来做。
①先找系统的数据源点与汇点。它们是外部实体,由它们确定系统与外界的接口。②找出外部实体的输出数据流与输入数据流。③在图的边上画出系统的外部实体。
④从外部实体的输出数据流(即系统的源点)出发,按照系统的逻辑需要,逐步画出一系列逻辑加工,直到找到外部实体所需的输入数据流(即系统的汇点),形成数据流的封闭。⑤按照下面所给的原则进行检查和修改。
⑥按照上述步骤,再从各加工出发,画出所需的子图。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |