结构化方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.
目标系统指待开发的新系统。分析、比较目标系统与当前 系统逻辑上的差别,即在当前系统的基础上决定变化的范围, 把那些要改变的部分找出来,将变化的部分抽象为一个加工, 这个加工的外部环境及输入输出就确定了。
第8章 结构化方法
然后对“变化的部分”重新分解,分析人员根据自己的 经验,采用自顶向下逐步求精的分析策略, 逐步确定变化部 分的内部结构,从而建立目标系统的逻辑模型。
第8章 结构化方法
(2) 画数据流而不是控制流: 数据流图反映系统“做什么”, 不反映“如何做”,因此箭头上的数据流名称只能是名词或名 词短语, 整个图中不反映加工的执行顺序。
(3) 一般不画物质流: 数据流反映能用计算机处理的数据, 并不是实物,因此对目标系统的数据流图上一般不要画物流, 如机票预订系统中,人民币也在流动, 但并未画出,因为交款 是“人工”行为。
(1) 对于规模大的项目, 特别复杂的应用不太适应。
第8章 结构化方法
2) 难于解决软件重用的问题。 (3) 难于适应需求的变化。 (4) 难于彻底解决维护问题。
第8章 结构化方法
8.2 结 构 化 分 析
8.2.1自项向下逐层分解的分析策略
面对一个复杂的问题,分析人员不可能一开始就考虑到问 题的所有方面以及全部的细节,采取的策略往往是分解,把一 个复杂的问题划分成若干小问题,然后再分别解决, 将问题的 复杂性降低到人可以掌握的程度。分解可分层进行,先考虑问 题最本质的方面,忽略细节,形成问题的高层概念,然后再逐 层添加细节,即在分层过程中采用不同程度的“抽象” 级别, 最高层的问题最抽象,而低层的较为具体。图8.1是自项向下逐 层分解的示意图。
第8章 结构化方法
1. 2 1. 1
1. 3
X
顶层
2 1
3
3. 2 3. 1
3. 3
0层
2. 2 2. 1
1层
图 8.1 对一个问题的逐层分解
第8章 结构化ຫໍສະໝຸດ Baidu法
8.2.2描述工具
SA方法利用图形等半形式化的描述方式表达需求,简明 易懂,用它们形成需求说明书中的主要部分。这些描述工具有
(1) 数据流图。数据流图描述系统的分解, 即描述系统 由哪几部分组成,各部分之间有什么联系等。
4. 为了完整地描述目标系统,还要作一些补充:说明目标系 统的人机界面,它所处的应用环境及它与外界环境的相互联系, 决定人机界面; 说明至今尚未详细考虑的细节,如出错处理、 输入输出格式、存储容量和响应时间等性能要求与限制。
第8章 结构化方法
8.3
数据流图(Data Flow Diagram, 简称DFD), 是SA方法中用 于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在 系统中流动和处理的过程。由于它只反映系统必须完成的逻辑 功能,所以它是一种功能模型。
结构化方法是从分析、设计到实现都使用结构化思想的 软件开发方法,实际上它由三部分组成:结构化分析 (Structured Analysis,简称SA),结构化设计(Structured Design , 简 称 SD ) 和 结 构 化 程 序 设 计 ( Structured Pergramming, 简称SP)。
订票 单 旅行 社
分类 并检查
有效 订票单
订票
有效取票单 记帐文件
机票 文件
航班 目录
取票 单 旅客
记帐 机票
帐单
机票 准备
机票
取票 通知单 旅行 社
图 8.2 飞机机票预订系统
第8章 结构化方法
8.3.1基本图形符号
数据流图有以下 4 种基本图形符号: →: 箭头, 表示数据流。 ○: 圆或椭圆, 表示加工。 =: 双杠, 表示数据存储。 □: 方框, 表示数据的源点或终点。
(2)数据字典。数据字典定义了数据流图中的数据和加工。 它是数据流条目、数据存储条目、数据项条目和基本加工条目 的汇集。
(3) 描述加工逻辑的结构化语言、判定表及判定树。结构 化语言、判定表或判定树则详细描述数据流图中不能被再分解 的每一个基本加工的处理逻辑。
第8章 结构化方法
8.2.3SA分析步骤
第8章 结构化方法
2. 发展历程
在结构化方法的发展历程上,它是随着SP方法的提出、 SD 方法的出现直至SA方法提出才逐渐形成的。
1)
首先出现的是SP, 它是60年代末首先由Dijkstra提出的, 旨 在控制程序编制中的复杂性问题。SP被称为软件发展中的第三 个里程碑,Dijkstra提出“GOTO语句可以从高级语言中取消”, 1969年Bohm和Jacopini首次证明了只要三种控制结构(顺序、 选择、 重复)就能表达用一个入口和一个出口的流程图所能表 达的任何程序逻辑。
2.
物理模型反映了系统“怎么做”的具体实现,去掉物理模 型中非本质的因素(如物理因素),抽取出本质的因素。
第8章 结构化方法
所谓本质的因素是指系统固有的、不依赖运行环境变化而 变化的因素,任何实现均这样做。非本质因素不是固有的, 随 环境不同而不同,随实现不同而不同。
对物理模型进行分析,区别本质因素和非本质因素,去掉 非本质因素,就形成当前系统的逻辑模型,反映了当前系统 “做什么”的功能。
第8章 结构化方法
4.
数据源点和终点是软件系统外部环境中的实体(包括人员、 组织或其他软件系统),统称外部实体。它们是为了帮助理解 系统界面而引入的,一般只出现在数据流图的顶层图中,表示 了系统中数据的来源和去处。
有时为了增加数据流图的清晰性,防止数据流的箭头线太 长,在一张图上可重复画同名的源/终点(如某个外部实体既是 源点也是终点的情况),在方框的右下角加斜线则表示是一个 实体。有时数据存储也需重复标识。
2. 加工
加工也称为数据处理,它对数据流进行某些操作或变换。 每个加工也要有名字,通常是动词短语,简明地描述完成什 么加工。 在分层的数据流图中, 加工还应编号。
3.
数据存储指暂时保存的数据,它可以是数据库文件或任 何形式的数据组织。流向数据存储的数据流可理解为写入文 件,或查询文件,从数据存储流出的数据可理解为从文件读 数据或得到查询结果。
1. 数据流是数据在系统内传播的路径,由一组成分固定的数 据项组成。如订票单由旅客姓名、年龄、单位、身份证号、 日 期及目的地等数据项组成。
第8章 结构化方法
由于数据流是流动中的数据,所以必须有流向,即在加 工之间、 加工与源点终点之间、加工与数据存储之间流动。 除了与数据存储之间的数据流不用命名外,数据流应该用名 词或名词短语命名。
3)
70年代末期,由Demarco等人提出了SA方法。该方法旨在 减少分析活动中的错误,产生系统的逻辑模型,其分析的对象 是结构化的功能说明;它实施的原则是面向数据流,基于功能 分解,靠人工复审测试进行验证。
第8章 结构化方法
3. 基本思想 结构化方法总的指导思想是自顶向下,逐步求精, 它的两个 基本原则是抽象与分解。 4. 特点 结构化方法具有以下特点: (1) 它是使用最早的开发方法, 使用时间也最长。 (2) 它应用最广, 特别适合于数据处理。 (3) 相应的支持工具多, 发展较为成熟。
1.
当前系统(也称现行系统)指目前正在运行的系统, 可能 是需要改进的正在计算机上运行的软件系统,也可能是人工的 处理系统。通过对当前系统的详细调查,了解当前系统的工作 过程,同时收集资料、文件、数据及报表等,将看到的、听到 的、 收集到的信息和情况用图形描述出来。也就是用一个模型 来反映自己对当前系统的理解, 如画系统流程图(参见第2章 2.1.3)。这一模型包含了许多具体因素,反映现实世界的实际 情况。
第8章 结构化方法
顶层的系统X很复杂,可以把它分解为0层的1, 2, 3三个子 系统,若0层的子系统仍很复杂, 再分解为下一层的子系统1.1, 1.2, 1.3和3.1, 3.2, 3.3 ……直到子系统都能被清楚的理解为止。
图8.1的顶层抽象地描述了整个系统, 底层具体地画出了系 统的每一个细节, 而中间层是从抽象到具体的逐步过渡,这种 层次分解使分析人员分析问题时不至于一下子陷入细节,而是 逐步地去了解更多的细节,如在顶层,只考虑系统外部的输入 和输出, 其他各层反映系统内部情况。
第8章 结构化方法
5. 优点 结构化方法一经问世, 就显示出了它的以下几大优点: (1) 简单、 实用。 (2) 适合于瀑布模型, 易为开发者掌握。 (3) 成功率较高, 据美国1000家公司统计, 该方法的成功 率高达90.2%, 名列第二,仅次于面向对象的方法。 (4) 特别适合于数据处理领域中的应用, 对其他领域的应 用也基本适用。 6.
第8章 结构化方法
订票单 旅行社
机票 飞机机票预订系统
取票通知单
取票单
旅客
图 8.3 飞机机票预订系统顶层图
第8章 结构化方法
2.
画系统内部即画下层数据流图。一般将层号从0开始编号, 采用自顶向下,由外向内的原则。画0层数据流图时,一般根 据当前系统工作分组情况,并按新系统应有的外部功能,分解 顶层流图的系统为若干子系统,决定每个子系统间的数据接口 和活动关系。如机票预订系统按功能可分成两部分,一部分为 旅行社预订机票,另一部分为旅客取票,两部分通过机票文件 的数据存储联系起来,0层数据流图如图8.4。画更下层数据流 图时, 则分解上层图中的加工,一般沿着输入流的方向,凡数 据流的组成或值发生变化的地方则设置一个加工,这样一直进 行到输出数据流(也可从输出流到输入流方向画)。
第8章 结构化方法
结构化方法
8.1 概述 8.2 结构化分析 8.3 数据流图 8.4 数据字典 8.5 加工逻辑的描述 8.6 结构化设计
返回主目录
第8章 结构化方法
8.1 概述
1.
结构化方法是指根据某种原理,使用一定的工具,按照 特定步骤工作的软件开发方法。它遵循的原理是自顶向下、 逐步求精,使用的工具有数据流图(DFD)、数据字典、判 定表、判定树和结构化语言等。
第8章 结构化方法
2)
70年代中期L.L.Constantine和E.Yourdon提出和倡导了结构 化设计。在SP取得重大成功的影响下,Yourdon等人把结构化 和逐步求精的思想由编码阶段应用推广到设计阶段,后来又扩 充到分析阶段,形成了包括SD和SA在内的基于数据流的系统 设计方法。SD的目标在于控制系统体系结构一级的复杂性, 实施原则是基于功能分解,验证技术是人工复审测试。
第8章 结构化方法
订票单 旅行社
机票 飞机机票预订系统
取票通知单
取票单
旅客
图 8.4 飞机机票预订系统0层图
第8章 结构化方法
如果加工的内部还有数据流,则对此加工在下层图中继续 分解,直到每一个加工足够简单,不能再分解为止。不再分解 的加工称为基本加工。
3.
(1) 命名:不论数据流、数据存储还是加工,合适的命名 使人们易于理解其含义。数据流的名字代表整个数据流的内容, 而不仅仅是它的某些成分,不使用缺乏具体含义的名字,如 “数据”、 “信息”等。加工名也应反映整个处理的功能, 不使用“处理”、 “操作”这些笼统的词。
第8章 结构化方法
8.3.2画数据流图
为了表达较为复杂问题的数据处理过程, 用一张数据流图 是不够的。 要按照问题的层次结构进行逐步分解, 并以一套 分层的数据流图反映这种结构关系。
1.
画系统的输入输出即先画顶层数据流图。顶层流图只包含 一个加工,用以标识被开发的系统,然后考虑该系统有哪些输 入数据,这些输入数据从哪里来;有哪些输出数据,输出到哪 里去。这样就定义了系统的输入、输出数据流。顶层图的作用 在于表明被开发系统的范围以及它和周围环境的数据交换关系, 顶层图只有一张。图8.3为飞机机票预订系统的顶层图。
(4) 每个加工至少有一个输入数据流和一个输出数据流, 反映出此加工数据的来源与加工的结果。
(5) 编号: 如果一张数据流图中的某个加工分解成另一张数 据流图时, 则上层图为父图,直接下层图为子图。子图应编号, 子图上的所有加工也应编号,子图的编号就是父图中相应加工 的编号,加工的编号由子图号、小数点及局部号组成, 如图8.5 所示。
图8.2是一个飞机机票预订系统的数据流图,其功能为旅行 社把预订机票的旅客信息(姓名、年龄、单位、身份证号码、 旅行时间及目的地等)输入机票预订系统。系统为旅客安排航 班,打印出取票通知单(付有应交的账款)。
旅客在飞机起飞的前一天凭取票通知等交款取票, 系统 检验无误,输出机票给旅客。
第8章 结构化方法
相关文档
最新文档