2 BOM配置管理的信息模型
在图1 所示的功能模型的基础上, 我们用IDEF1X建立了BOM 配置管理的信息模型,如图2 所示。

图2 所示的信息模型中有2 个地方值得特别说明:一是BOM 基础结构实体采用单层BOM 结构。所谓的单层BOM结构是指具有相同的父项子项实例在数据库中只记录1次;二是设计BOM 实体、制造BOM实体、其它BOM 实体均采用多层BOM 结构。所谓多层结构是指BOM 树上的每个节点,在数据库里都有记录。这样的数据结构存储有2 个方面好处: ①BOM基础结构采用了单层BOM 数据结构,这样能将相同件号不同版本的零部件实例有机地集成在一起,非常方便使用者选配,并为零部件后续的版本管理和变更管理打下了基础。②具体的BOM结构采用了多层BOM数据结构,这样能将其结构信息准确、清晰地记录完整。
3 BOM配置管理的核心算法
从图2 所示的信息模型可以看出,BOM 结构在数据库的存储是一对多的非线性结构,它在界面上表现为树型视图。BOM 的配置、存储、读取和查询等操作所涉及的核心算法是实例遍历,但由于BOM 结构本身的复杂性使得这种遍历非常复杂。下面是笔者在从事BOM 配置模块开发时,通过研究所得到的一种较为实用的BOM 结构深度遍历算法模型,该算法主要内核有2 个部分:
( 1) 实例封装由于BOM结构的每个组成节点都包含了属性、结构关系等复杂的信息,所以使用前将这些信息以节点为单位封装为1 个个对象实例,然后根据这些实例的关系,构成图3 所示的孩子—兄弟链表。该链表左边的指针域表示结点的父—子关系,右边的指针域表示结点的兄弟关系。

(2) 深度遍历有了图3 所示的对象实例链表,我们就可按图4 所示的运算流程进行遍历运算。

图4 所示的逻辑流程图的程序实现要采用递归算法。递归算法的语言描述为:
Procedure deepSearch ( F) {. . .
If - Children ( F) {. . . C = F. Children. . . }
If - Brother (C) {. . . F = C.Brother deepSearch ( F) }
. . . }
4 结语
BOM 配置管理的成功实现对企业准确、及时地生产出消费者满意的产品起着举足轻重的作用。本文提及的基于PLM 的BOM配置管理的功能模型、信息模型和核心算法是笔者多年从事BOM 配置管理理论研究和编程实践的心血凝成。