《结构化方法》PPT课件.ppt





《《结构化方法》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《结构化方法》PPT课件.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 结构化方法 8.1 概述概述 8.2 结构化分析结构化分析 8.3 数据流图数据流图 8.4 数据字典数据字典 8.5 加工逻辑的描述加工逻辑的描述 8.6 结构化设计结构化设计结构化方法结构化方法返回主目录第8章 结构化方法8.1 概述概述 1.结构化方法结构化方法 结构化方法是指根据某种原理,使用一定的工具,按照特定步骤工作的软件开发方法。它遵循的原理是自顶向下、逐步求精,使用的工具有数据流图(DFD)、数据字典、判定表、判定树和结构化语言等。结构化方法是从分析、设计到实现都使用结构化思想的软件开发方法,实际上它由三部分组成:结构化分析(Structured Analysis,简称
2、SA),结构化设计(Structured Design,简 称 SD)和 结 构 化 程 序 设 计(Structured Pergramming,简称SP)。第8章 结构化方法 2.发展历程发展历程 在结构化方法的发展历程上,它是随着SP方法的提出、SD方法的出现直至SA方法提出才逐渐形成的。1)结构化程序设计 首先出现的是SP,它是60年代末首先由Dijkstra提出的,旨在控制程序编制中的复杂性问题。SP被称为软件发展中的第三个里程碑,Dijkstra提出“GOTO语句可以从高级语言中取消”,1969年Bohm和Jacopini首次证明了只要三种控制结构(顺序、选择、重复)就能表达用一个
3、入口和一个出口的流程图所能表达的任何程序逻辑。第8章 结构化方法 2)结构化设计 70年代中期和E.Yourdon提出和倡导了结构化设计。在SP取得重大成功的影响下,Yourdon等人把结构化和逐步求精的思想由编码阶段应用推广到设计阶段,后来又扩充到分析阶段,形成了包括SD和SA在内的基于数据流的系统设计方法。SD的目标在于控制系统体系结构一级的复杂性,实施原则是基于功能分解,验证技术是人工复审测试。3)结构化分析 70年代末期,由Demarco等人提出了SA方法。该方法旨在减少分析活动中的错误,产生系统的逻辑模型,其分析的对象是结构化的功能说明;它实施的原则是面向数据流,基于功能分解,靠人工
4、复审测试进行验证。第8章 结构化方法 3.基本思想基本思想 结构化方法总的指导思想是自顶向下,逐步求精,它的两个基本原则是抽象与分解。4.特点特点 结构化方法具有以下特点:(1)它是使用最早的开发方法,使用时间也最长。(2)它应用最广,特别适合于数据处理。(3)相应的支持工具多,发展较为成熟。第8章 结构化方法 5.优点优点 结构化方法一经问世,就显示出了它的以下几大优点:(1)简单、实用。(2)适合于瀑布模型,易为开发者掌握。(3)成功率较高,据美国1000家公司统计,该方法的成功率高达90.2,名列第二,仅次于面向对象的方法。(4)特别适合于数据处理领域中的应用,对其他领域的应用也基本适用
5、。6.存在问题存在问题 结构化方法存在以下一些问题:(1)对于规模大的项目,特别复杂的应用不太适应。第8章 结构化方法 2)难于解决软件重用的问题。(3)难于适应需求的变化。(4)难于彻底解决维护问题。第8章 结构化方法8.2 结结 构构 化化 分分 析析 自项向下逐层分解的分析策略自项向下逐层分解的分析策略 面对一个复杂的问题,分析人员不可能一开始就考虑到问题的所有方面以及全部的细节,采取的策略往往是分解,把一个复杂的问题划分成若干小问题,然后再分别解决,将问题的复杂性降低到人可以掌握的程度。分解可分层进行,先考虑问题最本质的方面,忽略细节,形成问题的高层概念,然后再逐层添加细节,即在分层过
6、程中采用不同程度的“抽象”级别,最高层的问题最抽象,而低层的较为具体。图8.1是自项向下逐层分解的示意图。第8章 结构化方法 顶层的系统X很复杂,可以把它分解为0层的1,2,3三个子系统,若0层的子系统仍很复杂,再分解为下一层的子系统1.1,1.2,1.3和3.1,3.2,3.3 直到子系统都能被清楚的理解为止。图8.1的顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐步过渡,这种层次分解使分析人员分析问题时不至于一下子陷入细节,而是逐步地去了解更多的细节,如在顶层,只考虑系统外部的输入和输出,其他各层反映系统内部情况。第8章 结构化方法图 8.1 对一个
7、问题的逐层分解第8章 结构化方法 描述工具描述工具 SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。这些描述工具有以下几种:(1)数据流图。数据流图描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等。(2)数据字典。数据字典定义了数据流图中的数据和加工。它是数据流条目、数据存储条目、数据项条目和基本加工条目的汇集。(3)描述加工逻辑的结构化语言、判定表及判定树。结构化语言、判定表或判定树则详细描述数据流图中不能被再分解的每一个基本加工的处理逻辑。第8章 结构化方法 分析步骤分析步骤 1.建立当前系统的物理模型建立当前系统的物理模型 当前系
8、统(也称现行系统)指目前正在运行的系统,可能是需要改进的正在计算机上运行的软件系统,也可能是人工的处理系统。通过对当前系统的详细调查,了解当前系统的工作过程,同时收集资料、文件、数据及报表等,将看到的、听到的、收集到的信息和情况用图形描述出来。也就是用一个模型来反映自己对当前系统的理解,如画系统流程图(参见第2章)。这一模型包含了许多具体因素,反映现实世界的实际情况。2.抽象出当前系统的逻辑模型抽象出当前系统的逻辑模型 物理模型反映了系统“怎么做”的具体实现,去掉物理模型中非本质的因素(如物理因素),抽取出本质的因素。第8章 结构化方法 所谓本质的因素是指系统固有的、不依赖运行环境变化而变化的
9、因素,任何实现均这样做。非本质因素不是固有的,随环境不同而不同,随实现不同而不同。对物理模型进行分析,区别本质因素和非本质因素,去掉非本质因素,就形成当前系统的逻辑模型,反映了当前系统“做什么”的功能。3.建立目标系统的逻辑模型建立目标系统的逻辑模型 目标系统指待开发的新系统。分析、比较目标系统与当前系统逻辑上的差别,即在当前系统的基础上决定变化的范围,把那些要改变的部分找出来,将变化的部分抽象为一个加工,这个加工的外部环境及输入输出就确定了。第8章 结构化方法 然后对“变化的部分”重新分解,分析人员根据自己的经验,采用自顶向下逐步求精的分析策略,逐步确定变化部分的内部结构,从而建立目标系统的
10、逻辑模型。4.作进一步补充和优化作进一步补充和优化 为了完整地描述目标系统,还要作一些补充:说明目标系统的人机界面,它所处的应用环境及它与外界环境的相互联系,决定人机界面;说明至今尚未详细考虑的细节,如出错处理、输入输出格式、存储容量和响应时间等性能要求与限制。第8章 结构化方法8.3 数据流图数据流图 数据流图(Data Flow Diagram,简称DFD),是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程。由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。图8.2是一个飞机机票预订系统的数据流图,其功能为旅行社把预订机票的旅客信息(姓名、
11、年龄、单位、身份证号码、旅行时间及目的地等)输入机票预订系统。系统为旅客安排航班,打印出取票通知单(付有应交的账款)。旅客在飞机起飞的前一天凭取票通知等交款取票,系统检验无误,输出机票给旅客。第8章 结构化方法图 8.2 飞机机票预订系统第8章 结构化方法 基本图形符号基本图形符号 数据流图有以下 4 种基本图形符号:箭头,表示数据流。:圆或椭圆,表示加工。=:双杠,表示数据存储。:方框,表示数据的源点或终点。1.数据流数据流 数据流是数据在系统内传播的路径,由一组成分固定的数据项组成。如订票单由旅客姓名、年龄、单位、身份证号、日期及目的地等数据项组成。第8章 结构化方法 由于数据流是流动中的
12、数据,所以必须有流向,即在加工之间、加工与源点终点之间、加工与数据存储之间流动。除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。2.加工加工 加工也称为数据处理,它对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应编号。3.数据存储数据存储 数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。第8章 结构化方法 4.数据源点和终点数据源点和终点 数据源点和终点是软件系统外部环境中的实体(包
13、括人员、组织或其他软件系统),统称外部实体。它们是为了帮助理解系统界面而引入的,一般只出现在数据流图的顶层图中,表示了系统中数据的来源和去处。有时为了增加数据流图的清晰性,防止数据流的箭头线太长,在一张图上可重复画同名的源/终点(如某个外部实体既是源点也是终点的情况),在方框的右下角加斜线则表示是一个实体。有时数据存储也需重复标识。第8章 结构化方法 画数据流图画数据流图 为了表达较为复杂问题的数据处理过程,用一张数据流图是不够的。要按照问题的层次结构进行逐步分解,并以一套分层的数据流图反映这种结构关系。1.画系统的输入输出画系统的输入输出 画系统的输入输出即先画顶层数据流图。顶层流图只包含一
14、个加工,用以标识被开发的系统,然后考虑该系统有哪些输入数据,这些输入数据从哪里来;有哪些输出数据,输出到哪里去。这样就定义了系统的输入、输出数据流。顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系,顶层图只有一张。图8.3为飞机机票预订系统的顶层图。第8章 结构化方法图 8.3 飞机机票预订系统顶层图第8章 结构化方法 2.画系统内部画系统内部 画系统内部即画下层数据流图。一般将层号从0开始编号,采用自顶向下,由外向内的原则。画0层数据流图时,一般根据当前系统工作分组情况,并按新系统应有的外部功能,分解顶层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。如机票预
15、订系统按功能可分成两部分,一部分为旅行社预订机票,另一部分为旅客取票,两部分通过机票文件的数据存储联系起来,0层数据流图如图8.4。画更下层数据流图时,则分解上层图中的加工,一般沿着输入流的方向,凡数据流的组成或值发生变化的地方则设置一个加工,这样一直进行到输出数据流(也可从输出流到输入流方向画)。第8章 结构化方法图 8.4 飞机机票预订系统0层图第8章 结构化方法 如果加工的内部还有数据流,则对此加工在下层图中继续分解,直到每一个加工足够简单,不能再分解为止。不再分解的加工称为基本加工。3.注意事项注意事项 画数据流图的注意事项有以下几点:(1)命名:不论数据流、数据存储还是加工,合适的命
16、名使人们易于理解其含义。数据流的名字代表整个数据流的内容,而不仅仅是它的某些成分,不使用缺乏具体含义的名字,如“数据”、“信息”等。加工名也应反映整个处理的功能,不使用“处理”、“操作”这些笼统的词。第8章 结构化方法 (2)画数据流而不是控制流:数据流图反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。(3)一般不画物质流:数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图上一般不要画物流,如机票预订系统中,人民币也在流动,但并未画出,因为交款是“人工”行为。(4)每个加工至少有一个输入数据流和一个输出数据流,反
17、映出此加工数据的来源与加工的结果。(5)编号:如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父图,直接下层图为子图。子图应编号,子图上的所有加工也应编号,子图的编号就是父图中相应加工的编号,加工的编号由子图号、小数点及局部号组成,如图8.5所示。第8章 结构化方法图 8.5 父图与子图(1)第8章 结构化方法 (6)父图与子图的平衡:子图的输入、输出数据流同父图相应加工的输入、输出数据流必须一致,此即父图与子图的平衡。图8.5中子图2.1与父图2相应加工2.1的输入、输出数据流的数目、名称完全相同,即一个输入流a,两个输出流b和c。再看图8.6,好像父图与子图不平衡,因为父图加
18、工4与子图输入输出数据流数目不相等,但是借助于数据字典(见8.)中数据流的描述可知,父图的数据流“订货单”由“客户”、“账号”及“数量”三部分数据组成,即子图是父图中加工、数据流同时分解而来,因此这两张图也是平衡的。第8章 结构化方法图8.6 父图与子图的平衡第8章 结构化方法 有时考虑平衡可忽略一些枝节性的数据流(如出错处理)。父图与子图的平衡,是分层数据流图中的重要性质,保证了数据流图的一致性,便于分析人员的阅读与理解。(7)局部数据存储:当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储,一个局部数据存储只有当它作为
19、某些加工的数据接口或某个加工特定的输入或输出时,就把它画出来,这样有助于实现信息隐蔽。(8)提高数据流图的易理解性:注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。第8章 结构化方法 分解时要注意子加工的独立性、均匀性,特别是画上层数据流时,要注意将一个问题划分成几个大小接近的组成部分,这样做便于理解。不要在一张数据流图中出现某些加工已是基本加工,某些加工还要分解好几层。为了使数据流图便于在计算机上输入与输出,以下给出了描述数据流图的另一套基本符号:表示数据流,只能水平或垂直画。编号:表示加工。编号:表示数据存储。第
20、8章 结构化方法图8.7给出了采用这套符号画出的等价于图8.2的DFD。图 8.7 与图8.2等价的DFD第8章 结构化方法 8.3.3 SA方法的应用方法的应用 现以第节中的销售管理系统为例,采用SA方法来进行需求分析,建立功能模型。图8.8为采用SA方法画出的销售管理系统的分层DFD。首先分析功能说明,先找出哪些是属于系统之外的外部实体,然后画出顶层数据流图,顶层图如图8.(a)所示。随后分解系统,每个子系统有哪些流动着的数据,哪些需要暂时保存的数据,通过什么加工使数据发生变换。根据系统功能,在0层图上分解系统为5个加工,加工的名称及加工之间的数据流在功能说明中有动词和名词与之对应。第8章
21、 结构化方法 图8.8(b)为0层图,它说明系统分为5个子系统。在下层图(1 层,2 层)的分解过程中,应仔细考虑每个加工内部还应该进行哪些处理,还有什么数据流产生,这些可能在功能说明中没有,需要分析人员和用户参考现行系统的工作流程,进行“创造”,精细数据流图。图8.8(c)为 1 层图,其中图C1、图C2、图C5分别是0层图5个加工分解的结果。第8章 结构化方法图 8.8销售管理系统的分层数据流图(a)顶层图;(b)0层图;(c)1层图第8章 结构化方法8.4 数数 据据 字字 典典 数据字典的内容及格式数据字典的内容及格式 数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此
22、也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。数据字典有以下 4 类条目:数据流、数据项、数据存储及基本加工。数据项是组成数据流和数据存储的最小元素。源点、终点不在系统之内,故一般不在字典中说明。1.数据流条目数据流条目 数据流条目给出了DFD中数据流的定义,通常列出该数据流的各组成数据项。在定义数据流或数据存储组成时,使用表8-1给出的符号。第8章 结构化方法 下面给出了几个使用表8-1中符号,定义数据流组成及数据项的例子。例:机票=姓名+日期+航班号+起点+终点+费用 姓名=字母182 航班号=“Y7100”KG-*3“Y8100”终点=上海|北京|西安 数据流条目主要内容
23、及举例如下:数据流名称:订单第8章 结构化方法第8章 结构化方法别名:无简述:顾客订货时填写的项目来源:顾客去向:加工1“检验订单”数据流量:1000份/每周组成:编号+订货日期+顾客编号+地址+电话+银行账号+货物名称+规格+数量 其中数据流量指单位时间内(每小时或每天或每周或每月)的传输次数。第8章 结构化方法 2.数据存储条目数据存储条目 数据存储条目是对数据存储的定义,主要内容及举例如下:数据存储名称:库存记录 别名:无 简述:存放库存所有可供货物的信息 组成:货物名称+编号+生产厂家+单价+库存量 组织方式:索引文件,以货物编号为关键字 查询要求:要求能立即查询第8章 结构化方法数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构化方法 结构 方法 PPT 课件

限制150内