基于形式概念分析的软件子系统构建方法及应用*

2012-11-24 02:17蒋海东林筑英
网络安全与数据管理 2012年5期
关键词:子系统对象形式

蒋海东,林筑英

(贵州师范大学 数学与计算机科学学院,贵州 贵阳 550001)

随着软件工程的飞速发展,软件建模提出了一系列的语言、理论、工具和方法。实践表明,大多数的系统软件开发中的错误是由需求和设计阶段产生的,而且错误在系统中存在的时间越长则越难发现,解决这些错误的代价也越高。为了提高软件需求和软件设计的质量,软件工程界提出了需求分析工程技术和各种软件建模技术。

在软件建模中,当获得用户需求后,首要任务就是要划分子系统,子系统划分得合理与否,直接影响软件后续的开发和维护工作能否顺利进行。划分子系统时首先应该要遵循“高内聚、低耦合”的原则;其次要考虑到所有的使用角色,兼顾使用者的需求;最后也要适当考虑整体开发的分段实现。

1 概述

在研制开发软件系统尤其是开发一个较大企业管理系统时,为便于直观方便地划分子系统,通常根据过程与数据类的相关性,利用功能和数据的关系确定子系统。由此要涉及到许多支持的相关理论和方法,如模糊聚类、神经网络等。这些方法几乎都有一个共同点,都需要产生或处理C-U矩阵的问题。其中,C表示程序模块对基本表的存入关系(即创建或维护基本表),U表示对基本表的使用关系。虽然C-U矩阵具有很强的分析能力,但在实际开发软件系统中,C-U矩阵的构造和处理都比较复杂,增加了软件开发与设计的难度,从获取用户需求、描述能力和图形化方面都有待于提高。

目前,统一建模语言(UML)形成了相对完善的建模理论并得到了广泛的应用,能够快速地获得用户的需求,也有很好的图形展示。但UML在划分子系统时,常根据开发人员的主观因素去进行判断,降低了系统的科学性。为减少产生错误的代价和弥补应用UML建模开发过程中的不足,本文探讨了应用FCA理论方法来解决这一问题。

2 形式概念分析

形式概念分析 FCA(Formal Concept Analysis)[1]是对概念的哲学理解的数学化表达,是以人为中心的构造数据并分析数据的方法,是数据的内在结构、关联和相互依存关系的可视化方法。FCA将概念的对象看作外延,将属性看作内涵对概念数学化,然后通过构造形式背景进而生成概念格对给定的数据进行数学分析和思考。FCA作为人工世界的建模工具,与传统的建模方法相比较,既具有描述能力又具有分析能力,还具有图形化能力,这从根本上决定了其在软件系统建模中无可替代的优势。

2.1 FCA理论

定义1 形式背景[2]被定义为一个三元组 K=(G,M,I)。其中,G、M分别是对象集合和属性集合,G的元素称为对象(objects),M 的元素称为属性(attributes),严格地说是形式对象和形式属性;而I是G和M之间的二元关系,即I⊆G×M。为了表示一个对象g和一个属性m在关系 I中,可以写成 g I m或(g,m)∈I并且读成“对象 g具有属性m”。形式背景 K=(G,M,I)可被表示为以对象为行、以属性为列的二值矩阵,其每一元素ajk(j为行序,k 为列序,0≤j≤||G||,0≤k≤||M||)可定义为:

定义2给定对象集合G,对于对象子集A⊆G,定义 A={m∈M|∀g∈AgIm}表示“A中全体对象所共有的属性集”。相应地,对于属性子集B⊆M,定义表示“同时具有B 中所有属性的对象的集合”。

定义3 形式背景 K=(G,M,I)中的一个形式概念是一个对(A,B),A⊆G,B⊆M,满足:A′=B 且 B′=A。A、B分别称为形式概念(A,B)的外延(Extent)和内涵(Intent)。B(G,M,I)表示形式背景(G,M,I)所有形式概念的集合。

由以上定义可以看出,概念的内涵是概念外延中所有对象共同属性的集合,而概念的外延则是概念内涵可以确定的最大对象集合,一个概念是一个完备的二元组。特别定义两个特殊的概念,分别是:包含所有对象的概念为全概念,包含所有属性的概念为空概念。形式概念(A,B)的外延 A和内涵 B被关系 I紧密地联系在一起。因为A′=B且B′=A,则外延决定内涵,同时内涵也决定外延,进而决定了形式概念。

2.2 FCA在软件系统中的应用

FCA被引入到信息科学技术领域后,即被软件工程及软件系统开发等领域所关注和应用。在国外的应用研究中,有如参考文献[3]的基于FCA的信息系统模型综合性与完整性的验证方法。在参考文献[4]中,FCA在软件系统开发中的应用被分为早期阶段活动和软件维护两方面。早期阶段主要应用于需求分析、复用组件检索、形式化规格说明和基于FCA的Z规格可视化等;而软件的维护阶段主要用于类层次再工程。在参考文献[5]中指出:FCA可以很好地运用在软件生命周期的各个阶段;若将FCA用在软件工程的各个主要部分还有可能开启一个彻底的基于概念的软件工程新视角等。

为此,本文结合UML建模方法与FCA的各自优势,设计了UML建模与FCA相结合的软件子系统划分的新方法,使得快速准确地获得用户需求的同时又科学地划分软件子系统。并且希望通过在划分软件子系统这一应用中,找到UML方法和FCA理论在软件建模应用中的其他结合点。

3 基于FCA软件子系统划分

3.1 软件系统建模问题分析

基于UML的面向对象软件过程建模克服了传统软件都用过程或函数作为主要构造模块,同时还解决了数据流分析的层次复杂性,对软件系统模型的映射程度进行了加强;而且UML作为面向对象的可视化标准建模语言,采用的是图形符号进行表示系统中所有的对象和关系,应用直观的图形从不同的角度描述待开发系统,为更好地理解建模过程提供了有效的交流形式。

应用UML建模开发一个功能多、数据较复杂的软件系统,在开发过程中,基本上都是采用由大划小、各个击破的方式。因此,对复杂软件系统结构的分析就成为软件系统建模要解决的首要问题,而明确系统-子系统-功能模块之间的层次关系以及各个层次中各要素间的相互作用就成为软件系统建模的前提和基础。

软件系统结构建模的难点在于如何将系统内相互联系紧密的模块聚合在一起,使得模块内部的内聚合性增强,同时使模块间的耦合度降低。FCA的概念格理论所提供的聚类机制可以很好地解决这一难题。所以,本文在软件的开发过程中,采用以UML进行建模、使用FCA对软件系统进行子系统划分方法,可以使软件系统在开发过程对子系统的划分更加地合理、科学。

3.2 基于FCA建模的实例分析应用

下面以学生选课管理系统为例,说明利用FCA结合UML对系统结构建模的基本原理。

(1)穷举软件系统所要实现的所有功能模块

UML分析系统功能需求较为快速有效的方法就是构建用例模型,并以用例图加以描述。这一部分可以采用按角色找到系统的用例(即系统的功能)。学生选课管理系统的参与角色主要有学生、教师、教学秘书这三类。按照这三个角色可以得到的系统用例图如图1所示。

图1 学生选课管理系统用例图

(2)找到各功能所对应数据类并生成形式背景

根据定义1中所述,形式背景由概念的内涵和外延组成,外延为对象集,在本方法中将功能集合作为对象集(即形式背景中的外延),以数据集合作为属性集(即形式背景的内涵),建立起两者的“功能-数据”二元关系。在这里,功能-数据的二元关系既包括功能产生对应数据这一关系,也包括该功能使用对应数据这一关系。结合实例,生成学生选课管理系统“功能-数据”形式背景如表1所示。

表1 学生选课管理系统“功能-数据”形式背景

需要说明的是,本文构造的形式背景与定义2中叙述的有所不同,定义2中为多值形式背景,在构造概念格时需将其单值化。而因为本文中的功能数据关系较为清晰,故直接将形式背景构造成单值形式背景。

(3)将形式背景转换成相应的概念格

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

图2 学生选课管理系统“功能-数据”对应概念格

(4)根据概念格的聚类功能

使用或产生相同数据并实现相近功能的节点在概念格的Hasse图上必能聚集在一起,根据这一规律在系统分析员的帮助下,利用Hasse图就可以轻易地分析找出“功能-数据”密切相关的一些模块,将之归纳入一个子系统中并命名。将“功能-数据”联系紧密的模块聚集在一起,如图2中的区域所示,每个区域代表一个子系统,区域1代表选课管理子系统,区域2代表成绩管理子系统,区域3代表新课程增加子系统。

(5)判别子系统或模块实现的先后次序

利用概念格节点的联系可以很容易判断出子系统之间的关系,也可得出子系统产生的数据有多少被其他子系统所共享,在充分考虑共享数据的重要性及关联的紧密程度的前提下,可根据各子系统间的技术约束来判别实现的先后顺序。如图2所示,区域2中成绩管理子系统要使用区域1中的课程信息数据,因此选课管理子系统要先于成绩管理子系统实现。在同一子系统中,节点(即模块)的层次越高,其使用和产生的数据被下级节点所共享的程度就越大。因此,可以根据区域中节点的层次关系,也即是属性(即模块使用和产生的数据)的层次关系来确立子系统中模块开发的先后次序。

子系统划分是软件系统建模中的一个基础性工作,子系统划分是否合理,将会直接影响到软件系统后续的开发和维护。本文提出的划分子系统方法,首先运用UML建模方法找到系统中的角色,然后根据每个角色穷尽其所有的用例(即找到功能),最后使用形式概念分析方法构造出形式背景,进而构造出概念格,完成子系统的划分。有效地避免了单纯用UML建模中的主观意识,使得子系统划分工作更科学、更合理。

[1]WORMUTH B,BECKER P.Introduction to formal concept analysis[C].Proceedings of the 2nd International Conference of Formal Concept Analysis, Sydney, Australia, 2004:1-4.

[2]谢志鹏,刘宗田.基于概念格的关联规则发现[J].小型微型计算机系统,2000,21(10):1028-1031.

[3]LAUKAITIS A,VASILECAS O.Formal concept analysis and information systems modeling[C].Proceedings of the International Conference on Computer Systems andTechnologies,Bulgaria.New York,NY,USA:ACM,2007.

[4]TILLEY T, COLE R, BECKER P, et al.A survey of formalconceptanalysissupportforsoftware engineering activities[C].Berlin/Heidelberg: Springer, 2005: 107-118.

[5]HESSE W,TILLEY T.Formal concept analysis used for softwareanalysis and modelling[A].Berlin /Heidelberg:Springer, 2005: 288-303.

猜你喜欢
子系统对象形式
不对中转子系统耦合动力学特性研究
涉税刑事诉讼中的举证责任——以纳税人举证责任为考察对象
GSM-R基站子系统同步方案研究
小议过去进行时
微型演讲:一种德育的新形式
驼峰测长设备在线监测子系统的设计与应用
攻略对象的心思好难猜
搞定语法填空中的V—ing形式
基于熵的快速扫描法的FNEA初始对象的生成方法
发现“形式” 践行“形式”