经典IDEF系统分析方法详细介绍 (转载)
  IDEF是ICAM DEFinition method 的缩写,是美国空军在70年代末80年代初ICAM(Integrated Computer Aided Manufacturing)工程在结构化分析和设计方法基础上发展的一套系统分析和设计方法。是比较经典的系统分析理论与方法。
  以下文章介绍了IDEF方法,可供参考。
  IDEF0方法是其中的一个内容,在ICAM中用来建立加工制造业的体系结构模型,其基本内容是SADT(System Analysis and Design Technology)的活动模型方法。它是由Softech 公司发展起来的。
  IDEF0的基本思想是结构化分析方法,来源于SADT方法。它具有以下一组基本特色,这些特色形成一种思维规则,适用于从计划阶段到设计阶段的各种工作。
  一、全面地描述系统,通过建立模型来理解一个系统
  一般地说,一个系统可以被认为是由对象物体(用数据表示)和活动(由人、机器和软件来执行)以及它们之间的联系组成,那至多只反映了一个侧面,这样的技术很难说明系统的全貌。IDEF0能同时表达系统的活动(用盒子表示)和数据流(用箭头表示)以及它们之间的联系。所以IDEF0模型能使人们全面描述系统。
  对于新的系统来说,IDEF0能描述新系统的功能及需求,进而表达一个能符合需求及能完成功能的实现。对已有系统来说,IDEF0能分析应用系统的工作目的,完成的功能及记录实现的机制。在这两种情况下都是通过建立一种IDEF0模型来体现。所谓模型就是系统的一种书面描述。它不一定必须用某种数学公式表示,可以是图形,甚至可以是文字叙述。因而可以说:“不管何种形式,只要M能回答有关实际对象A的所要研究的问题,就可以说M是A的模型”。对于有关复杂的企业对象或其他系统,由于用自然语言无法精确又无二义性地表示分析及设计结果,所以这里采用一种图形语言来表示IDEF模型。这种图形语言能做到:
  ·有控制地逐步展开细节。
  ·精确性及准确性。
  ·注意模型的接口。
  ·提供一套强有力的分析和设计词汇。
  一个模型由图形、文字说明、词汇表及相互的交叉引用表组成。其中图形是主要成分。IDEF0图形中同时考虑活动、信息及接口条件。它把方盒作为活动,用箭头表示数据及接口。因此在表示一种当前的操作,表示功能说明或设计时,总是由一个活动模型、一个信息模型及一个用户接口模型组成。
  工程界对系统开发过程一般可安排几个阶段:分析(确定系统将做什么)、设计(定义子系统及其接口)、实现(独立地创建子系统)、集成(把子系统联接成一个整体)、测试(证明系统能工作)、安装(使系统能运行)和运行(使用系统)。我们介绍IDEF方法的目的,在于强调科学地进行复杂系统的分析和设计的重要性。一般来说,在分析或设计阶段造成的错误,在后续阶段可能花2倍时间去找到、花5倍时间去纠正。或者如人们所说的:分析阶段的一个错误未被纠正,在设计阶段要花2倍时间,测试阶段要花10倍时间,运行或维修阶段要花100倍的时间才能纠正。
  二、目的与观点(Purpose and Viewpoint)
  由于模型是一个书面说明,因此象一切技术文件一样,每一个模型都有一个目的与一个观点。目的是指建模的意义,为什么要建立模型。观点是指从哪个角度去反映问题或者站在什么人的立场上来分析问题。功能模型是为了要进一步做好需求分析,要实现预定的技术要求(不论是对已有系统的改造还是新建系统),所以要明确是对功能活动进行分析(逐步分解),而不是对组织机构的分解。一个活动可能由某个职能部门来完成,但活动功能不等于组织,因此必须避免画成组织模型的分解过程。模型描述的内容反映各种用户的要求,从单一角度描述问题是困难的,也是不可能的。如:物资管理人员——仓库管理员关心收、发、存;计划人员关心什么时候物料从库存点到采购点;厂长关心哪一个工程项目节约用料,加快进度。因此要求所有的用户,有同样重要而且相同的需求是不可能的,不切实际的。IDEF0要求在画出整个系统的功能模型时,具有明确的目的与观点。譬如对一个企业的CIM系统,必须有明确的站在厂长(或经理)的位置上建模的观点,所有不同层次的作者都要以全局的观点来进行建模工作,或者说就是为厂长而建模。这样才能保证是从全企业的高度来揭示各部分之间的相互联系和相互制约的关系。否则有的人强调设计处的利益,有的人突出供销处的要求,甚至有的可以只为某个岗位的操作人员的要求来建立各功能模块之间的联系,那就整个乱套了。
  三、区别“什么”(What)和“如何”(How)
  “什么”是指一个系统必须完成的是“什么”功能,“如何”是指系统为完成指定功能而应“如何”建立。就是说,在一个模型中应能明确地区别出功能与实现间的差别。
  IDEF0首先建立功能模型。把表示“这个问题是什么”的分析阶段,与“这个问题是如何处理与实现”的设计阶段仔细地区别开来。这样,在决定解法的细节之前,保证能完整而清晰地理解问题。这是系统成功开发的关键所在。
  在设计阶段,要逐渐识别各种能用来实现所需功能的机制,识别选择适当机制的依据是设计经验及对性能约束的知识。根据不同模型,机制可以是很抽象,也可以是很具体的。重要的是,机制指出了“什么”是“如何”地实现的。IDEF0提供了一种记号,来表示在功能模型中如何提供一个机制来实现一个功能,及单个机制如何能在功能模型的几个不同地方完成有关功能。
  有时机制相当复杂,以致机制本身需要进行功能分解。
  四、自顶向下分解
  用严格的自顶向下地逐层分解的方式来构造模型,使其主要功能在顶层说明,然后分解得到逐层有明确范围的细节表示,每个模型在内部是完全一致的。
  IDEF0在建模一开始,先定义系统的内外关系,来龙去脉。用一个盒子及其接口箭头来表示,确定了系统范围,如图 1。由于在顶层的单个方盒代表了整个系统,所以写在方盒中的说明性短语是比较一般的,抽象的。同样,接口箭头代表了整个系统对外界的全部接口。所以写在箭头旁边的标记也是一般的,抽象的。然后,把这个将系统当作单一模块的盒子分解成另一张图形。这张图形上有几个盒子,盒子间用箭头连接。这就是单个父模块所相对的各个子模块。这些分解得到的子模块,也是由盒子表示,其边界由接口箭头来确定。每一个子模块可以同样地细分得到更详细的细节。
  IDEF0提供的规则,保证了如何通过分解得到人们所需要的具体信息。一个模块在向下分解时,分解成不少于3个、不多于6个的子模块。上界6,保证了采用递阶层次来描述复杂事物时,同一层次中的模块数不会太多,以致不适宜于人的认识规律。下界3,保证了分解有意义的。但是,原始的SADT方法,规定一张图上的盒子数为2~7个,故我们也不作很硬性的限制。
  模型中一个图形与其他图形间的精确关系,则用互相连接的箭头来表示。当一个模块被分解成几个子模块时,用箭头表示各子模块之间的接口。每个子模块的名字加上带标签的接口,确定了一个范围,规定了子模块细节的内容。
  在所有情况下,子模块忠实地代表了父模块,以既不增加也不减少的方式反映着各自父模块所包含的信息。
  五、严格的人员关系,评审手续及文档管理办法
  (1) 人员:IDEF0适合于研究分析一个大而复杂的系统,因此要求有一个技术上熟练、而且能相互协调的集体来一起工作。这个集体应有各方面的人员组成。通常,将人员分成以下几类:
  ·作者(authors): 研究需求及限制条件,分析系统功能,建立IDEF0模型。
  ·评审员(commentors):也可以是其它图的作者。主要是进行复审,并写出对其他人所作工作的书面意见。是广义的读者。
  ·读者(reader):读IDEF0图,口头上提出意见。没有提书面意见的义务,读图的目的主要是为了互相了解,互相协调。
  ·专家(experts):作者对专家进行访问,了解需求、限制条件等专门信息。
  ·技术委员会(technical committee):对每个主要分解阶段进行复查,并对项目管理作技术决策,仲裁作者和读者间不能协商一致的分歧。
  ·项目资料员(project librarian):维护文件,复制分配材料及记录。
  ·项目负责人(project manager):负有分析及设计系统的技术责任,也是技术委员会的主席。
  (2) 评审手续:建模活动每前进一步,IDEF方法都要求这个集体成员交换见解,用以互相检查工作的结果,有名的作者/读者循环就体现了这个工作程序。
  作者访问专家,画出系统的IDEF0图。由资料员编成文件存档,分发给评审员及读者。评审员把加上意见的材料退还给作者,同时由资料员存档。作者根据意见修改图形,反复循环,直至这一层问题全部解决,再送给作者准备下一步的分解。第一个作者可以是下一层的某个作者或较低层的评审员。最后由技术委员会来解决必要的技术问题及技术分歧。
  (3) 文档:无论是作者的模型,还是评审员的评论,都要以书面的形式反映出来。每次修改意见都要保存,一面工作,一面把文档建立起来。
  以上几个方面构成了IDEF0方法的基础。它们相互补充,失去其中任一个都会降低IDEF0方法的效用。