IPO是指结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output)。IPO图是对每个模块进行详细设计的工具,它是输入加工输出(INPUT PROCESS OUTPUT)图的简称,它是由美国IBM公司发起并完善起来的一种工具。在系统的模块结构图形成过程中,产生了大量的模块,在进行详细设计时开发者应为每一个模块写一份说明。IPO图就是用来说明每个模块的输入、输出数据和数据加工的重要工具。
简介
IPO图是输入/处理/输出图的简称,它是美国IBM公司提出的一种图形工具,能够方便地描绘输入数据、处理数据和输出数据的关系。
IPO图使用的基本符号少而简单,因此很容易掌握使用这种工具。它的基本形式是在左边的框中列出有关的输入数据,在中间的框中列出主要的处理,在右边的框中列出产生的输出数据。处理框中列出了处理的顺序,但是用这些基本符号还不足以精确描述执行处理的详
细情况。图1是一个主文件更新的例子。
设计
IPO图输入-处理-输出图是在层次结构图的基础上推出的一种描述系统结构和模块内部处理功能的工具。在总体设计、详细设计、设计、评审、测试和维护的不同阶段,都可以使用IPO图对设计进行描述。IPO图的最重要的特征是它能够表示输入/输出数据(外部数据和内部数据流程)与软件的过程之间的关系,主要是配合层次图详细说明每个模块内部功能的一种工具。IPO图的设计可因人因具体情况而异,例如,图2所示的IPO图。但无论怎样设计它都必须包括输入、处理、输出,以及与之相应的数据库文件在总体结构中的位置等信息。
IPO图其他部分的设计和处理都是很容易的,惟独其中的处理过程描述部分较为困难。对于一些处理过程较为复杂的模块,用自然语言描述其功能十分困难,并且对同一段文字描述,不同的人还可能产生不同的理解(即所谓的二义性问题)。目前用于描述模块内部处理过程还有如下几种方法:结构化英语方法、决策树方法、判定表方法和算法描述语言方法。几种方法各有其长处和不同的适用范围,在实际工作中究竟用哪一种方法,需视具体的情况和设计者的习惯而定。
一个软件可由一张总的层次化模块结构图和若干张具体模块内部展开的IPO图组成。前者描述了整个系统的设计结构及各类模块之间的关系,后者描述了某个特定模块内部的处理过程和输入输出关系。
作用
IPO图的主体是算法说明部分,该部分可采用
结构化语言、
判定表、
判定树,也可用
N-S图、问题分析图和
过程设计语言等工具进行描述,要准确而简明的描述模块执行的细节。
开发人员不仅可以利用IPO图进行模块设计,而且还可以利用它评价总体设计。用户和管理人员可利用IPO图编写、修改和维护程序。因而,IPO图是系统设计阶段的一种重要文档资料。
在IPO图中,输入、输出数据来源于数据词典。局部数据项是指个别模块内部使用的数据,与系统的其它部分无关,仅由本模块定义、存贮和使用。注释是对本模块有关问题作必要的说明。
模块IPO图
HIPO图既反映了系统的总体结构,又反映了系统各个模块之间的关系。所以,HIPO图是模块设计中一种重要的图形工具。但是,在HIPO图中每个模块只有名称,没有细节。按照系统设计的目标,还必须有模块的详细描述。模块IPO图就是这样一种图形工具。
一种改进的模块IPO图的形式如下表所示,这种图除了描述输入、处理、输出过程外,还包括了某些附加的信息,这些附加的信息非常有利于理解系统及对该模块的实现,它们包括系统的名称、设计人员、设计日期、模块名称、模块在结构图中的编号,调用本模块的模块清单、本模块调用的模块清单以及全局的、局部的数据变量等。