基于形式概念分析的信息系统建模理论研究
张云中, 徐宝祥
吉林大学管理学院 长春 130022
摘要

针对如何运用FCA完善信息系统建模理论的问题,明确信息系统建模要解决的核心问题和利用FCA在解决上述问题的优势,指出FCA在信息系统建模中的应用方向,提出一套基于FCA的信息系统建模理论,并结合实例详细阐述应用FCA进行子系统划分的方法和构建静态模型、动态模型和功能模型的原理。

关键词: 形式概念分析; 信息系统建模; 静态模型; 动态模型; 功能模型
Research on the FCA-based Information System Modeling Theory
Zhang Yunzhong, Xu Baoxiang
School of Management, Jilin University, Changchun 130022, China
Abstract

For the problems of how to improve information systems modeling theory based on FCA, the core issues which information system modeling theory should solve have been defined, and the advantages of using FCA to resolve these issues have also been analyzed, then the application direction of FCA in the process of information system modeling is pointed out. Eventually, the paper presents a FCA-based information system modeling theory, and then elaborates the method of dividing system into subsystems and the principle of how to construct static model, dynamic model and functional model using FCA with examples.

Keyword: FCA; Information system modeling; Static model; Dynamic model; Functional model

近年来,信息技术的不断发展以及信息环境的愈发复杂对信息系统不断提出更高、更新的要求,信息系统经历了从独立事务处理向共享、协作和互操作处理的转变,并正向智能信息系统的方向发展。作为支撑信息系统开发的有力手段,信息系统建模理论也随之依次经历了从结构化建模、面向对象建模、基于体系结构建模到基于本体建模的发展历程。当前,信息系统功能的多样性、结构的复杂性、处理的智能性、知识的共享性等诸多客观要求交互作用,更加剧了信息系统开发的难度。因此,提出与之相适应的信息系统建模理论就显得尤为重要。

形式概念分析(FCA)[ 1]是对概念的哲学理解的数学化表达,是以人为中心的构造数据并分析数据的方法,是数据的内在结构、关联和相互依存关系的可视化方法。FCA从内涵和外延两方面对概念进行数学化,进而运用形式背景和概念格作为数据结构,来对给定的数据进行数学分析和思考。FCA作为人工世界的建模工具,既具有描述能力,又具有分析能力,还具有图形化能力,这从根本上决定了其在信息系统建模中无可替代的优势。本文的目的在于探索将FCA应用到信息系统建模理论中的方式,进而提出一套基于FCA的信息系统建模理论。

1 信息系统建模理论发展简评

信息系统建模理论是从信息系统逻辑模型构建的实践活动中总结出的客观经验,其发展是一个由简单到复杂、从低级到高级、从旧质态到新质态的逐步演变和不断成熟的过程。信息系统建模理论发展至今,大致经历了4

个具有代表意义的阶段,即结构化建模、面向对象建模、基于体系结构建模和基于本体建模。

(1)结构化建模理论[ 2]采用自顶向下逐步求精的思路,将整个系统功能划分成一系列实现独立功能且可相互调用的模块,用模块结构关系来表示系统模型,但其存在“需求冻结”的隐患。

(2)面向对象建模理论[ 3]使用类、对象、继承和消息机制,使得建模方式更符合人类思维习惯,但其通过自底向上建模而忽略了自顶向下的整体划分,容易造成系统结构不合理及各部分关系失调等问题。

(3)基于体系结构的建模理论[ 4]要求从更高、更抽象的层次来对系统结构进行整体把握,因而使得系统各部分的关系更和谐。

(4)上述三个阶段的建模理论均存在语义表达能力差的问题,不能达到模型复用和共享的效果,在此背景下,基于本体的建模理论[ 5]应运而生,本体作为共享概念形式化建模工具,可增强系统模型的语义表达能力,同时有助于实现信息系统之间的知识共享和语义互操作。但应用本体和任务本体构建仍然是研究的瓶颈,基于本体建模不能有效揭示信息系统的动态行为、功能操作及系统结构等诸多方面。

2 FCA与信息系统开发的结合现状

FCA引入到信息科学领域后,逐渐被软件工程领域和信息系统开发领域的国内外诸多学者所关注、认可。

就国外情况而言,文献[6]提出了一种基于FCA的信息系统模型综合性与完整性的验证方法。文献[7]指出FCA可以成功地运用在软件生命周期的几乎所有阶段,同时还提出,将FCA用在软件工程的各个主要部分可能开启一个彻底的基于概念的软件工程新视角。文献[8]认为FCA在信息系统开发中的应用分为早期阶段的活动和软件维护两方面,早期主要用于需求分析、复用组件检索、形式化规格说明和基于FCA的Z规格可视化;软件维护阶段主要用于类层次再工程。诸如此类的还有文献[9]等。

就国内情况而言,文献[10]对FCA在需求分析、结构设计和系统设计中的应用均有探讨。文献[11]指出FCA在软件工程中主要用于智能信息处理和分布式数据存储、分析两方面。文献[12]以保险应用系统为例,介绍了在软件工程中应用FCA进行实体分析、数据库结构分析、模块分析、权限分析和服务组件分析等。

尽管国内外诸多文献并没有明确提出一套基于形式概念的信息系统建模理论,但都从不同的角度透视了形式概念分析在软件工程或信息系统开发中的应用,也从一个侧面反映出将FCA运用于信息系统建模理论中的可行性和重要性。FCA表现出的强有力的数据描述、构造、分析能力以及可视化能力为信息系统建模理论的发展提供了新的契机。

3 FCA在信息系统建模中的作用
3.1 信息系统建模的本质及核心问题

信息系统的开发是问题域向求解域的映射,而这种映射的实现必须借助信息系统逻辑模型作为桥梁。因此,信息系统建模的本质是对现实世界进行逻辑层面的抽象。通过构建系统逻辑模型,可以充分把握信息系统的主要要素,准确地描述信息系统的静态结构、动态行为、功能操作以及系统结构,排除实现细节等无关要素,从而达到充分理解用户的需求、有效回避开发风险的效果。

信息系统建模的核心问题是要解决以下4个方面的难点:

(1)对系统结构的总体把握,明确系统-子系统-模块的层次关系以及各个层次中要素间的相互作用,即系统结构建模;

(2)从静态层面对信息系统的静态结构进行高形式化和高语义度的描述,解决现实世界中的各“实体”的抽象和表示问题,即静态模型构建;

(3)从动态层面对信息系统动态行为的描述,即对实体的状态因受到事件(或称信号)触发而造成变化的次序进行描述,即动态模型构建;

(4)从功能层面对信息系统所应完成的具体功能进行抽象描述,即功能模型构建。

3.2 FCA作为系统建模工具的优势

作为系统建模工具,FCA具有以下三个优势:

(1)从描述能力的角度:FCA通过概念的属性-对象二元关系构建形式背景,将概念分别从内涵和外延两方面进行描述,用“概念名称({概念的属性集},{概念的对象集})”的格式对概念进行形式化描述,并通过形式背景的不断编辑完善,丰富了概念原有的属性集和实例集。同时概念格能深刻反映出概念节点之间的多重继承关系,这为揭示信息系统中概念的继承机制创造了有力的条件。而且FCA能够依据概念格自动发现蕴含在形式背景中的隐含概念,并自动分析出隐含概念的内涵和外延,这也是其他建模工具所不能实现的。

(2)从分析能力的角度:在FCA中对形式背景的属性和对象分别赋予不同的内容(在此,不局限为概念的内涵与外延),可产生代表不同涵义的二元关系,将形式背景转换成相应的概念格,并形成一系列代表相应特殊涵义的节点及节点间的关系。因此,FCA提供的是一种研究任何系统内密切相关的两类元素间关系的机制,这将成为信息系统建模的重要分析方法。

(3)从图形化能力的角度:FCA的概念格可以用Hasse图进行图形化表示,从而用图形简练、直观、形象地表达信息系统中的相关要素关系,促进系统开发人员和客户对信息系统模型的理解和交互。

3.3 FCA在信息系统建模中的应用

信息系统建模的核心问题在于准确地描述信息系统的静态结构、动态行为、功能操作以及体系结构,换言之,也就是构建信息系统的体系结构、静态模型、动态模型和功能模型。FCA作为具备描述能力、分析能力和图形化能力的建模工具,对这4类模型的构建均可起到支持作用。

4 基于FCA的信息系统建模理论

下面分别阐明基于FCA的信息系统建模理论的4个侧面:系统结构模型构建、静态模型构建、动态模型构建和功能模型构建。在这4部分内容中,利用FCA描述信息系统涉及领域的静态知识的独特优势已越来越被国内外学者认可,但这些相关研究都是将FCA与其他建模理论结合起来应用的研究,典型的有FCA与类层次构建的结合[ 13]、FCA与本体构建的结合[ 14]等领域静态知识建模理论。本文所提出的静态模型不同于上述文献,而着眼于提取用FCA描述、分析和表达信息系统领域静态知识的共性原理,不再局限于某一种具体的结合应用,而是上升到一种独立的理论高度。利用FCA描述系统的功能模型的用例在国外的相关研究中也曾出现过,有代表性的是文献[15],该文提出用描述用例的句子作为对象,用词或短语作为属性,从这两方面构成一个表达“用例描述中的交迭”的概念,进而达到合并用例描述的目的。与文献[15]的侧重点不同,本文构建的功能模型注重如何运用FCA达到对用例关系识别和泛化的相关研究。而利用FCA进行系统结构建模和动态模型构建,在作者所了解的范围内尚未有学者提出过,是本文的原创性内容。

本文的形式背景构建及形式背景向概念格的转换均采用概念格可视化工具ConExp(Concept Explorer)来实现。ConExp是一个目前应用广泛的基于Java开放源代码的FCA工具,其最早出自2000年乌克兰国立技术大学教授Tatyana Taran博士指导下的一篇硕士论文,在随后的几年,其已数次扩展,现在是SourceForge上的一个开源项目。ConExp将形式背景的创建、形式背景编辑、从形式背景建立概念格、执行属性探索、发现隐含的关联规则等功能集成为一个单一的可视化工具。ConExp源码可通过其门户网站下载,关于ConExp更多的信息可参考文献[16]。

4.1 基于FCA的系统结构建模

对复杂信息系统建模的处理模式一般是“分而治之,逐个击破”,因此,分析复杂信息系统的结构就成为信息系统建模要解决的首要问题,而明确系统-子系统-模块的层次关系以及各个层次中各要素间的相互作用就成为信息系统建模的前提和基础。

系统结构建模的难点在于如何将系统内相互联系紧密的模块聚合在一起,使得模块内部的聚合性增强,而同时模块之间的耦合度降低。FCA的概念格理论所提供的聚类机制可以很好地解决这一难题。

以制造型企业信息系统为例,介绍利用FCA对系统结构建模的基本原理:

(1)穷举系统所要实现的所有功能(对功能描述的粒度应保持适当)及其对应的数据类,利用形式背景,以功能作为对象,以数据作为属性,建立起两者的“功能-数据”二元关系,在这里,功能-数据的二元关系既包括功能产生对应数据这一关系,也包括该功能使用对应数据这一关系。结合实例,生成制造型企业“功能-数据”形式背景如图1所示:

图1 制造型企业“功能-数据”形式背景

(2)将形式背景转换成相应的概念格。此时,概念格的节点均代表一个特定的模块,节点与节点间的关系代表模块间的关系,节点的属性表示该模块使用或产生的数据,节点的对象表示模块所实现的功能。上例中,依据子系统形式背景转换的概念格如图2所示:

图2 制造型企业“功能-数据”形式背景对应概念格

(3)根据概念格的聚类功能,使用或产生相同数据并实现相近功能的节点在概念格的Hasse图上必能聚集在一起,根据这一规律,在系统分析员的帮助下利用Hasse图就可以轻易地分析找出“功能-数据”密切相关的一些模块,将之归纳入一个子系统中并命名。结合实例,将“功能-数据”联系紧密的模块聚集在一起,如图2中的区域所示,每个区域代表一个子系统,区域1代表经营计划子系统,区域2代表技术准备子系统,区域3代表生产制造子系统。

(4)判别子系统或模块实现的先后次序。利用概念格节点的联系可以很容易判断出子系统之间的关系,也可得出子系统产生的数据有多少被其他子系统所共享,在充分考虑共享数据的重要性及关联的紧密程度的前提下,可根据各子系统间的技术约束来判别实现的先后顺序。结合实例,如图2所示,区域2中产品预测模块需要使用区域1中的计划数据,因此经营计划子系统要先于技术准备子系统实现。在同一子系统中,节点(即模块)的层次越高,其使用和产生的数据被下级节点所共享的程度就越大,因此,可以根据区域中节点的层次关系,更确切地说是属性(即模块使用和产生的数据)的层次关系来确立子系统中模块开发的先后次序。

4.2 基于FCA的系统静态模型构建

信息系统的静态模型旨在描述清楚系统内所有的概念及概念结构,其要点在于对概念进行简洁完备的描述。下面以某路面交通管理信息系统为例,阐述基于FCA对信息系统进行静态模型构建的原理:

(1)在系统分析员和客户的相互协作下,利用头脑风暴的方式,先找出所构建信息系统所包含的一些核心概念及其内涵-外延集,并将之纳入到形式背景框架中,形成一系列形如“概念({内涵集},{外延集})”格式的三元组。结合路面交通管理信息系统静态模型构建的实例,利用头脑风暴法形成如图3所示的形式背景:

图3 路面交通管理信息系统初始形式背景

(2)系统分析员对形式背景中的所有“内涵-外延”关系进行检验,补充遗漏的二元关系,并根据形式背景的相关理论,通过添加属性和对象的方式,丰富概念的内涵集和外延集。结合实例,对之添加相应的属性和对象,得出如图4所示的形式背景:

图4 路面交通管理信息系统形式背景

(3)将形式背景转换成概念格,此时,概念格中的每个节点都代表一个概念,而依附于节点的对象集和属性集则分别代表了概念的外延和内涵,节点间的关系体系是概念的继承。在此过程中,FCA对信息系统的概念进行聚类,用概念格这一数据结构对信息系统可以轻松表达出概念及概念间的多重继承关系,并挖掘出一些隐含在形式背景中的新概念。结合实例,将图4中的形式背景转换成概念格,如图5所示:

图5 路面交通管理信息系统形式背景对应的概念格

其中,节点1代表概念“交通标志”,其内涵为{标示作用的},外延为{斑马线、黄色双实线、红信号灯、绿信号灯和交通标图}。节点8代表的概念“摩托车”体现了概念间的双重继承关系。另外,通过概念格的转换产生了新概念“交通系统”。

(4)通过对形式背景进行修剪,删除底端节点,并对相应的节点命名,最终得出信息系统的静态模型。得出静态模型后,可选用合适的描述语言对静态模型进行描述。

4.3 基于FCA的系统动态模型构建

信息系统的动态模型是从动态层面对信息系统动态行为的描述,即对实体的状态因受到事件(或称信号)触发而造成变化的次序进行描述。动态模型表示的是信息系统的“控制”性质,是基于事件共享而相互关联的一组状态的集合。

本文将信息系统动态模型的要素分为两类:信号和状态。信号是导致状态转移的事件,状态是系统的一种行为模式,是系统对信号的响应方式;事件具有“时刻”的特征,而状态具有“时间间隔”的特征,一个事件分开两个状态,一个状态隔开两个时间。这样,信号和状态间就产生了一种二元关系,即一个给定状态的对象在接到一个特定的信号时将会做出响应并进入下一个状态,本文将这种二元关系定义为效果。

利用FCA理论,可以帮助系统分析员很好地分析并建立信息系统的动态模型。下面以拨打电话的动态行为过程为例,阐述基于FCA进行系统动态模型构建的基本原理:

(1)对信息系统动态行为所涉及到的所有信号及状态进行搜寻,并建立相应的状态转换形式背景,其中,信号用形式背景的属性维来表示,而状态则用对象维来表示,通过这种模式建立起所有可能的“信号-状态”关系。结合实例,产生如图6所示的形式背景:

图6 拨打电话动态行为对应的形式背景

(2)对状态转换形式背景中的二元关系进行检验,删除所有的“忽略效果”、“不可能发生的效果”及“无意义效果”。

(3)将该形式背景转换成概念格,此时,每一个概念格代表一种效果,其属性是导致状态转移的事件集合,即信号;其对象是该信号作用上一节点状态“拨号提示”后得到的状态。顶端节点表示初始状态,底端节点表示终止状态;节点间的关系表达的是状态的转移过程。节点的序列也反映出信号的序列,本文将信号的序列定义为脚本。结合实例,将拨打电话这一动态行为对应的形式背景转换成概念格,如图7所示:

图7 拨打电话动态行为形式背景对应的概念格

其中,节点1至节点11各自代表一种效果,每个节点的属性(这里专指节点独有的属性,而非继承来的属性)代表信号,对象代表该信号作用上一节点的状态后得到的新状态。节点关系代表状态的转移过程(见图7中椭圆区域),节点序列“1-2-3-4-5-6-7”、“1-2-3-9-7”都代表动态模型中的脚本。

(4)结合实际情况,对概念格中未能表达出的一些状态转换进行补充,并对状态、信号的具体内容进行细化,在上述操作的基础上将概念格转换成相应的状态图。

4.4 基于FCA的系统功能模型构建

信息系统功能模型是以外部行为者的视角从系统功能层面对信息系统所应完成的具体功能进行抽象描述。功能模型表示系统的功能性质,它指明了系统应该“做什么”,直接反映了用户对目标信息系统的需求。功能模型中主要考虑两个基本概念:参与者和用例。参与者是指信息系统的操作人员或外部设备,甚至是开发范围以外、但与目标信息系统有交互的其他计算机系统。用例是可以被行为者所感受到的信息系统所需的一种特定类型的行为或功能。特别要注意的是,本文所定义的用例代表的是一类功能而非使用该功能的某个具体实例。

信息系统功能模型的难点在于如何有效识别参与者进而有效识别用例,并建立起良好而完善的用例泛化关系(包括扩展关系和包含关系)。FCA提供的形式背景“对象-属性”探索机制及概念格聚类机制可以有效地解决该难点。

下面以ATM机为例,阐述如何利用FCA构建信息系统功能模型:

(1)尽可能多地找出信息系统的参与者,并分析参与者的相关行为,以行为作为属性,以参与者作为对象,建立起“参与者-行为”的二元关系。结合实例,ATM系统功能模型所涉及的“参与者-行为”二元关系主要有“取款人-插入银行卡”、“存款人-插入银行卡”、“取款人-取款”、“存款人-存款”4个。

(2)补充和完善信息系统的其余行为,根据行为探索相应的参与者,对上述二元关系进行完善。考虑存在一个较不明显但确实不可缺少的参与者“存吐币端口”,因而添加入形式背景,得出较为完善的功能模型形式背景如图8所示:

图8 ATM系统动态行为对应的形式背景

(3)将形式背景转换成概念格,此时,每个节点代表一个用例,节点属性代表用例所包含的行为,节点对象表示用例对应的参与者,节点间的关系代表用例的泛化关系。结合实例,将图8中的形式背景转换成概念格(见图9),每一个节点都代表一个用例,节点5代表的用例参与者为存款人,行为为{插入银行卡,存款};节点6代表的用例参与者为取款人,行为为{插入银行卡,取款};节点3是一个自动生成的用例,它泛化了节点5和节点6的用例行为,将插入银行卡这一客户的共同行为抽象出来,可给节点3命名为执行客户事务。这样,节点3-5-6间的关系就表达了一种基本的用例扩展关系。同理,还存在节点1-2-4这样的用例包含关系。

图9 ATM系统形式背景对应的概念格

(4)对概念格进行删减,剔除没有实际意义的低端节点,将概念格转换成用例模型。

5 结 语

信息系统建模的过程,本质上是对信息系统进行认识、描述、分析并抽象表示的过程。本文所提出的基于FCA的信息系统建模新理论,充分发挥FCA作为建模工具的描述能力、分析能力和图形化能力,分别对信息系统的静态结构、动态行为、功能操作以及系统结构建立模型,表现出当前其他信息系统建模理论或建模技术所不具备的优势,因此,该理论在一定程度上丰富了信息系统建模理论。

然而,单纯利用FCA对信息系统进行建模也将走向另一个极端,产生不可避免的局限性。只有将各种建模理论或建模工具的优势有机融合在一起,才是确保信息系统建模理论发展的唯一途径。因此,如何将基于FCA的信息系统建模理论与其他建模理论有机融合,将是本文下一步的研究方向。

参考文献
[1] Wormuth B, Becker P. Introduction to Formal Concept Analysis[C]. In: Proceedings of the 2nd International Conference of Formal Concept Analysis, Sydney, Australia. 2004: 1-4. [本文引用:1]
[2] 刘永. 信息系统分析与设计[M]. 北京: 科学出版社, 2002: 23-25. [本文引用:1]
[3] 张海藩. 软件工程导论[M]. 4版. 北京: 清华大学出版社, 2003: 193-198. [本文引用:1]
[4] 徐宝祥. 信息系统开发方法[M]. 北京: 机械工业出版社, 2007: 208-209. [本文引用:1]
[5] 唐晓波, 韦贞, 徐蕾. 基于本体的信息系统建模方法[J]. 情报科学, 2008, 26(3): 391-395. [本文引用:1]
[6] Laukaitis A, Vasilecas O. Formal Concept Analysis and Information Systems Modeling[C. In: Proceedings of the 2007 International Conference on Computer Systems and Technologies, Bulgaria]. New York, NY, USA: ACM, 2007. [本文引用:1]
[7] Hesse W, Tilley T. Formal Concept Analysis Used for Software Analysis and Modelling[A]. //Ganter B. Formal Concept Analysis[M]. Berlin/Heidelberg: Springer, 2005: 288-303. [本文引用:1]
[8] Tilley T, Cole R, Becker P, et al. A Survey of Formal Concept Analysis Support for Software Engineering Activities[C]. //Dau F, Mugnier M L, Stumme G. Formal Concept Analysis[M]. Berlin/Heidelberg: Springer, 2005: 107-118. [本文引用:1]
[9] Cole R, Tilley T. Conceptual Analysis of Software Structure[C]. In: Proceedings of the 15th International Conference on Software Engineering and KnowledgeEngineering. 2003: 726-733. [本文引用:1]
[10] 蒋平, 任胜兵, 林鹃. 形式概念分析在软件工程中的应用[J]. 计算机技术与发展, 2008, 18(4): 127-129. [本文引用:1]
[11] 沈夏炯, 白景华, 刘宗田, . 形式概念分析与软件过程改进[J]. 计算机科学, 2003, 30(7): 103-105. [本文引用:1]
[12] 赖莹. 基于FCA的系统分析与设计方法研究及应用[D]. 长春: 吉林大学, 2009. [本文引用:1]
[13] Godin R, Valtchev P. Formal Concept Analysis-based Class Hierarchy Design in Object-Oriented Software Development [EB/OL]. [2009-12-28]. http://www.springerlink.com/content/0plqbxahtp1q6ug6/fulltext.pdf. [本文引用:1]
[14] Obitko M, Snasel V, Smid J. Ontology Design with Formal Concept Analysis[EB/OL]. [2009-12-13]. http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-110/paper12.pdf. [本文引用:1]
[15] Richards D, Boettger K, Aguilera O. A Controlled Language to Assist Conversion of Use Case Descriptions into Concept Lattices[EB/OL]. [2009-12-28]. http://www.springerlink.com/content/0vxp2gyktfuv0g8t/fulltext.pdf. [本文引用:1]
[16] The ConExp Team. Overview on ConExp[EB/OL]. [2010-01-20]. http://conexp.sourceforge.net/users/index.html. [本文引用:1]