论数据仓库和数据挖掘技术的构件库管理系统

摘要】:通过较为成熟的数据仓库和数据挖掘技术存储和检索构件信息。数据仓库中不仅存储了构件实体,还存放有构件的描述信息、构件的复用历史信息、构件的用户反馈信息。通过数据挖掘技术在构件仓库中查找构件,为用户提供高效、准确的构件查找和辅助选择方案,为构件复用成功提供了有效的技术保障。【关键词】构件;
构件仓库;
数据挖掘;
反馈;
决策树  作者简介:陈文,23岁,男,四川南充人,软件工程师,重庆西南大学计算机与信息科学学院2005级硕士研究生,研究方向:软件测试,软件复用。 引言   软件构件技术是软件复用的一种重要手段,是近年来软件复用研究的热点,目前出现了大量的基于构件的应用软件开发,取得了良好的效果。要使用基于构件的软件开发技术,发挥构件在软件重用方面的优势,就必须要有支持整个软件生命周期并包含有大量可用构件的构件库系统,有效的构件管理和高效的构件查询是构件库系统成功的关键。本文研究的重点是将数据仓库,数据挖掘技术应用到构件库系统中,为构件库管理员提供切实有效的构件管理方法和为用户提供高效的构件查找方法和构件选择的辅助决策支持。数据仓库与数据挖掘技术2.1  数据仓库技术   著名的数据仓库专家在其著作《Building Data WareHouse》一书中给出了如下的数据仓库的定义:数据仓库是面向主题的(Subject-Oriented),集成的(Interated),时变的(Time-Variant),非违约的(Non-volatile)一系列用于管理和决策制定的数据集。   面向主题是数据仓的重要特征,这是与传统数据库面向应用相对应的。主题是一个在较高层次将数据归类的标准。基于主题组织的数据,被划分为各自独立的领域,每一个领域有自己的逻辑内涵,互不交叉,数据只是为具体处理而组织在一起。传统的E-R型数据模式能较好的执行联机事务处理(OLTP),但不适应决策支持分析,而数据仓库则是为决策管理提供支持信息,根据业务需求从用户的角度基于主题来组织数据,并形成相应的数据视图,汇总表等,因此适于联机分析处理(OLAP)。    数据仓库的第二个特点是集成化,数据从面向应用的操作环境中,提取到数据仓库中时,都要经过集成化,统一原始数据中的所有矛盾如命名冲突,数据结构转换等,最终达到:一致的命名,变量度量,编码结构,物理属性等。    数据仓库的另一个特点是非违约性。因为数据仓库中的数据是历史数据,数据经集成进入数据仓库后,一般不需要改变。针对数据进行的基本操作只是装数据和访问数据,因此不存在传统数据库中的数据恢复,数据同步,修复死锁等复杂问题.2.2  数据挖掘技术概述   数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的非平凡过程,这些信息的表现形式为:规则、概念、规律及模式等。它可帮助决策者分析历史数据及当前数据,并从中发现隐藏的关系和模式,进而预测未来可能发生的行为。当前构件库系统应用中的困难   随着构件库系统的发展,当构件数目逐渐增多时,用户在查询和选取构件时会碰到以下一些困难:  (1)在查询的过程中,可能有多个满足用户查询条件的构件,如何快速有效地从众多的候选构件中,准确的判断并选取所需的构件,这是一个复杂的决策过程,一般都依赖于用户的复用经验,以及对构件的理解和主观判断。  (2)通常用户都是通过刻面、属性、关键词、关系等表达式, 根据所需构件的特征,进行构件的查询。然而访问构件的用户具有不同的层次,可能不熟悉构件的刻面分类模式,对构件的理解比较困难。  (3)用户查询前并没有一个明确的目标,只是想通过查询构件库,找到能够利用和复用的构件,因而,如何通过构件的复用历史和其它用户的览胜经验,为用户提供一定程度的复用帮助是很必要的。  (4)对需求规约、设计、模式、测试计划等文档知识的构件复用属于间接复用,需要复用者首先进行分析和理解。在大多数复用情况下,对构件的复用是白盒复用,也是就根据构件复用者的反馈,对构件进行适应性修改。如何跟踪软件复用的经验和构件的使用历史,辅助用户选取相应的分析,设计及改动最小的构件是关键。   综上所述,由于当前的构件描述多是基于构件某一方面特征,如构件接口、构件属性、运行环境等进行描述,而缺乏对构件的功能及非功能属性的精确的,形式化的语义描述,这将导致某一候选构件与需求构件在构件的描述匹配中完全一致,但该构件并不一定能完成需求的功能。例如,用户试图寻找一个计算两数相加输出和的加法构件,但候选的是一个计算两相乘输出积的乘法构件,需求构件与候构件在构件接口参数描述、环境依赖等方面完全匹配,但功能上却大相径庭。因为缺乏非功能属性上描述,当前的构件匹配也存在着即使候选构件与需求构件在功能上一致但由于在非功能属性上不合要求仍不能完成用户需求的问题。特别是当用户应用程序在总体的非功能属性上,例如用户界面、程序安全性、适时性、可靠性等,有特殊要求时,构件的非功能属性一致性就更加重要。   构件描述必须具有完全性、完备性、易解理性。构件描述完全性指能够描述构件各个方面的特性,不存在构件的某一特性不能描述的情况,完备性是指所有的构件都能描述,不存在某一构件不能描述的情况。理论的构件描述方法是语义描述,即以形式化手段描述构件的功能或行为语义,系统可以通过定理证明及基于知识的推理过程来寻找语义上等价或相近的构件。遗憾的是这种基于语义的描述方法涉及许多人工智能难题,目前难于支持大型构件库工程实现。当前基于不同构件模型的较为成功的构件描述语言CORBA IDL,DCOM IDL和EJB IDL以及被认为是最好的通用构件描述语言XML,它们都能够描述构件多方面的特性,并且具备编译和浏览工具的支持,但是在描述构件接口语义和构件间复杂的交互协议方面缺乏进一步的支持,因此都不能很好的满足构件描述的完全性、完备性、易理解性三个方面的要求。例如CORBA IDL不能描述符合CORBA标准以外的构件,也不能精确的描述构件的功能及非功能性特点。因此基于当前的各类构件描述语言,它们的描述只能让用户获得构件某些方面的,抽象的认识,尚不能让用户对整个构件有全面清楚的认识,故势必影响构件选取,构件复用。而构件的复用历史,早期用户对构件的使用结果,使用评价,修改意件等复用经验会对后期用户对构件的认识,选取决策起到重要的辅助作用。因此有效的管理构件的复用历史记录,先期用户的复用反馈信息非常重要。基于数据仓库技术的构件管理   传统的基于联机事处理理(OLTP)的E-R数据库并不适于历史数据的长期存放与管理,而数据仓库技术正是用于存放历史数据信息,并对用户提供决策支持的系统,适宜于联机事务分析(OLAP),故建立基于数据仓库技术的用户反馈信息库以支持构件的存储和检索是可行的。在用户反馈信息库中,对反馈信息进行一定程序的量化处理,主要包括七个维度:时间维度Time,制作者维度Provider,用户维Userinfo,组装维Compositeinfo,测试维Testinfo,描述维Descripinfo,评价维Valuatinoinfo;
两类反馈事实:细节事实Freedbackfact,聚集事实AggregrateFact。其多维模式如图1所示:   Feedback Fact                    图1  用户反馈为数据模式                     用户反馈通过收集工具捕获用户提交的反馈信息,并对用户反馈信息进行筛选、分类,集成存入数据仓库。由于用户反馈库采用多维数据模式,当需要查询和分析的主题不断增加时,可以通过为新增的主题建立相应的事实表和维表(可以共享原来的很多维表),数据库结构不变,集成到原来的信息库中,逐步完善软件企业信息仓库。这是符合数据仓库开发的原则,即先从某一主题入手不断加以完善。基于决策树的分类发现在软件构件查询中的应用    数据挖掘所能发现的知识有如下几种:广义型知识,反映同类事物共同性质的知识;
特征型知识,反映事物各方面的特征知识;
差异型知识,反映不同事物之间属性差别的知识;
关联型知识,反映事物之间依赖或关联的知识;
预测型知识,根据历史的和当前的数据推测未来数据;
偏离型知识,揭示事物偏离常规的异常现象。所有这些知识都可以在不同的概念层次上被发现,随着概念树的提升,从微观到中观再到宏观,以满足不同用户、不同层次决策的需要。至于发现工具和方法,常用的有分类、聚类、减维、模式识别、可视化、决策树、遗传算法、不确定性处理等。本文在基于前述建立的构件仓库上,使用决策树分类法对构件进行检索。

论数据仓库和数据挖掘技术的构件库管理系统

5.1  决策树分类方法   分类在数据挖掘中是一项非常重要的任务,目前在商业上应用最多。分类的目的是学会一个分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给定类别中的某一个。给出一个数据集中的一些属性,分类器可以预测出某一个特定的属性。被预测的属性叫做标签(label),用于预测的其他属性叫做描述属性(descriptive attributes)。在生成分类器后,则可以利用它来对数据集中不包含标签属性的记录进行分类,标签的值可以用分类器来预测。要构造分类器,需要有一个训练样本数据集作为输入。训练集由一组数据库记录或元组构成,每个元组是一个由有关字段(又称属性或特征)值组成的特征向量,此外,训练样本还有一个类别标记。一个具体样本的形式可为:(v1,v2,...,vn;
c);
vi表示字段值,c表示类别。从训练集中自动地构造出分类器的算法叫做生成器(inducer),在生成分类器后,可以利用它来对数据集中不包含标签属性的记录进行分类,标签属性的值也可以用分类器来预测。    决策树分类方法属于分类方法的一种,该方法的输入是一组带有类别标记的数据,构造的结果是一棵二叉树或多叉树。二叉树的内部节点(非叶子节点)一般表示为一个逻辑判断,如形为(ai=vi),基中ai 是属性,vi是该属性的某个属性值;
树的边是逻辑判断的分支结果;
多叉树(ID3)的内部节结点是属性,边是该属性的所有取值,有几个属性值,就有几条边,树的叶子节点都是类别标记。5.2  决策树方法与构件分类检索   决策树分类算法通常包括两部分:一是树的生成,开始时所有数据都在根结点,然后根据设定的标准选择测试属性,用不同的测试属性递归的进行数据分割;
二是树的修剪,就是去掉一些可能是噪音或者异常的数据。构造一棵决策树就是形成一个训练集的分类,在分类过程中完成对目标的获取策略与规则提取。   构件仓库中构件信息包构件描述信息,复用历史信息及用户反馈信息。构件描述信息如下表1所示,复用历史信息如表2所示,用户反馈信息如表3所示。 表1  构件描述信息表 

构件号入库时间提供者功能描述非功能描述应用领域其它
0012006-1-1微软XP升级视窗界面PC用户。。。
0022006-1-2瑞星杀毒安全性好PC用户。。。
0032006-1-2金算盘财务结算计算精度高金融领域。。。
0042006-1-5创业软件CT机控制适时性好医疗领域 。。。
。。。。。。。。。。。。。。。。。。 。。。
         表2  复用历史信息表                                        
构件号复用时间复用者复用结果复用领域其它
0012006-11-7张三成功PC用户。。。
0012006-10-2李四成功PC用户。。。
0032006-7-2金软d 411      金达软件   失败财务软件公司。。。
0042006-9-19创业软件部分成功医疗软件公司 。。。
。。。。。。。。。。。。。。。 。。。
                                 表3用户反馈信息表 
构件号反馈时间反馈者复用结果复用评价修改意件其它
0012006-11-9张三成功良好需要更好的易操作性。。。
0012006-10-3李四成功升级时间更短。。。
0032006-7-12金软d 411      金达软件   失败需更高计算精度及安全性。。。
0042006-9-20创业软件部分成功一般更快的响应时间 。。。
。。。。。。。。。。。。。。。。。。 。。。
                                    

构件分类模型


图2  分类模型                                                  图3  基于ID3算法生成的决策树    利用ID3算法生成的决策树可以用一组IF …THEN… ELSE… 的形式表达。例如:IF(应用领域=金融领域 AND 用户反馈=总体良好 AND 复用历史)=200次)THEN(评价=推荐)   以上只是对构件仓库中的构件决策树的简单介绍,实际应用中还包括更多构件特征信息如:构件接口,依赖环境,非功能属性等,这样就能为用户提供更全面更仔细的描述,确保对用户选择构件的辅助决策作用的有效发挥。   最后还应对决策结果进行验证和评价。结果的验证和评价是数据挖掘中不可或缺的环节。这是一个反复实验的过程,可以运用构件库中其它的样本进行验证,也可以选择新安的样本集进行评价,直到复得出用户满意的结果为止。结束语   随着构件化软件开发的普及,构件库系统作为支持软件开发的基础设施的作用将越来越重要,构件的有效管理和高效检索直接关系到基于构件的软件复用的成功。数据仓库技术适宜于存放构件及构件复用历史信息这类变化较少,相对稳定的数据;
同时基于数据仓库的数据挖掘技术也有较为成熟的技术。本文尝试将数据仓库,数据挖掘技术就用于构件库管理系统,使用数据仓库存储构件信息,使用决策树的方法进行构件挖掘,辅助用户进行构件的检索和选取,为构件复用成功提供了有效的技术保障。 参考文献[1] 郭景峰,米浦波,刘国华.决策树算法的并行性研究[J].计算机工程,2002,28(8):77-78.[2]杨东青,唐世渭.应用的深化推动数据库技术发展.计算机科学[J],1997,24(2):15-31.[3]王希辰.数据仓库技术与可复用构件库系统研究.中国传媒大学学报自然科学版,2006,13(2):73-77.[4]徐建民,卲艳华,王静红.决策树方法在软件构件查询中的应用研究.微机发展.2004.14(9):125-128.[5]徐建民,卲艳华,王静红,刘进波.决策树分类方法在软件构件检索中的辅助决策支持研究.计算机应用.25(5):120-125.[6]朱明.机器学习与数据挖掘:方法与应用[M].北京:电子工业出版社,2004,19(2):59-64.