简介
IPO是指结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output)。IPO图是对每个模块进行概要设计的工具,它是输入加工输出(INPUT PROCESS OUTPUT)图的简称,它是由美国IBM公司发起并完善起来的一种工具。在系统的模块结构图形成过程中,产生了大量的模块,在进行详细设计时开发者应为每一个模块写一份说明。IPO图就是用来说明每个模块的输入、输出数据和数据加工的重要工具。
组成
IPO图的设计可因人因具体情况而异,例如,下图所示的IPO图。但无论怎样设计它都必须包括输入、处理、输出,以及与之相应的数据库文件在总体结构中的位置等信息。
其实上图也叫IPO表。IPO图其他部分的设计和处理都是很容易的,惟独其中的处理过程描述部分较为困难。对于一些处理过程较为复杂的模块,用自然语言描述其功能十分困难,并且对同一段文字描述,不同的人还可能产生不同的理解(即所谓的二义性问题)。目前用于描述模块内部处理过程还有如下几种方法:结构化英语方法、决策树方法、判定表方法和算法描述语言方法。几种方法各有其长处和不同的适用范围,在实际工作中究竟用哪一种方法,需视具体的情况和设计者的习惯而定。 一个软件可由一张总的层次化模块结构图和若干张具体模块内部展开的IPO图组成。前者描述了整个系统的设计结构及各类模块之间的关系,后者描述了某个特定模块内部的处理过程和输入输出关系。
作用
HIPO图既反映了系统的总体结构,又反映了系统各个模块之间的关系。所以,HIPO图是模块设计中一种重要的图形工具。但是,在HIPO图中每个模块只有名称,没有细节。按照系统设计的目标,还必须有模块的详细描述。模块IPO图就是这样一种图形工具。
改进型IPO图
一种改进的模块IPO图的形式如下表所示,这种图除了描述输入、处理、输出过程外,还包括了某些附加的信息,这些附加的信息非常有利于理解系统及对该模块的实现,它们包括系统的名称、设计人员、设计日期、模块名称、模块在结构图中的编号,调用本模块的模块清单、本模块调用的模块清单以及全局的、局部的数据变量等。