(计算机软件与理论专业论文)构件化数据清洗框架的研究与应用.pdf_第1页
(计算机软件与理论专业论文)构件化数据清洗框架的研究与应用.pdf_第2页
(计算机软件与理论专业论文)构件化数据清洗框架的研究与应用.pdf_第3页
(计算机软件与理论专业论文)构件化数据清洗框架的研究与应用.pdf_第4页
(计算机软件与理论专业论文)构件化数据清洗框架的研究与应用.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

(计算机软件与理论专业论文)构件化数据清洗框架的研究与应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

, j i 学位论文 构件化数据清洗框架的研究与实现 作者姓名:李智 指导教师:王大玲教授 东北大学计算机软件与理论研究所 申请学位级别:硕士学科类别:工学 学科专业名称:计算机软件与理论 论文提交日期:2 0 0 8 年6 月1 5 日论文答辩日期:2 0 0 8 年7 月1 日 学位授予日期: 彬7 评阅人:牙j 、焕受、鲐窍试 答獭会主席: 东北大学 2 0 0 8 年6 月 申眯 叫-i叫ii b yl iz h i s u p e r v i s o r :p r o f e s s o rw a n gd a l i n g n o r t h e a s t e r nu n i v e r s i t y j u n e2 0 0 8 n t j i 一 i 独创性声明 呈交的学位论文是在导师的指导下完成的。论文中取得 标注和致谢的地方外,不包含其他人已经发表或撰写过 的研究成果,也不包括本人为获得其他学位而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示诚 挚的谢意。 学位论文作者签名: 签字e l 期: 哪,f 、加 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位论 文的规定:即学校有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学位论文的全部 或部分内容编入有关数据库进行检索、交流。 作者和导师同意网上交流的时间为作者获得学位后: 半年0一年口一年半口 学位论文作者签名:害罐 两年口 导师签名: 9 亡以 签字日期:2 , 1 r o9 知 刮、 t k 成了如下两部分工作: 一是提出数据清洗过流程模型d c p m ( d a t ac l e a n s i n gp r o c e s sm o d e l ) ,并证明基于 该模型使用工作流网建模技术对数据清洗过程进行建模的可行性。这使得设计数据清洗 过程可以遵照统一的模型,并使用成熟的建模技术进行建模。该模型描述了数据清洗流 程中内部各个元素,元素之间的关系和元素的属性。通过使用统一的模型对数据清洗流 程进行建模,显著地提高了清洗流程的可复用性。 二是分析了目前开发数据清洗软件所出现的新需求和已有的开发手段的不足,提出 并实现了基于构件的数据清洗框架c + a d c ( c o m p o n e n t - e x t e n d e d a g i l ed a t ac l e a n i n g ) , 包括运行时平台和框架服务构件集。基于该框架,能够轻松、灵活地构建基于扩展构件 的数据清洗应用,显著地降低开发成本和周期。定义了集成与该框架的构件模型和数据 清洗流程业务空间向构件空间映射策略,以更好地实现数据清洗应用。 实际的开发案例证明:使用d c p m 模型建模数据清洗流程并基于c + a d c 框架进行 数据清洗应用开发,能够快速地构建基于构件的灵活的、可扩展的数据清洗应用软件。 关键词:数据清洗;构件化;数据仓库:过程模型;可复用性 i i , l , i t h ed e v e l o p m e n to fd a t ac l e a n s i n gs o t h v a r e ,s u c ha sd y m n i cc r e a t i o n ,f r e q u e n ta m e n d m e n t a n dm o r eu s e ri n t e r a c t i o n t h u s ,h o wt od e s i g nar e u s a b l ed a t ac l e a n s i n gp r o c e s sf o rm e e t i n g t h en e wr e q u i r e m e n t sh a sb e e nan e wc h a l l e n g et ot h ed e s i g n e r sa n dd e v e l o p e r so fd a t a c l e a n s i n gs o f t w a r e i nt h i st h e s i s ,t h el o g i c a lm o d e la n dp h y s i ci m p l e m e n t a t i o nb a s e do nc o m p o n e n to fd a t a c l e a n i n gi n - d e p t ha r es t u d i e df o rs o l v i n ga b o v ep r o b l e m t h em a i n w o r ki sd o n ei nt w op a r t s a sf o l l o w s : i nf i r s tp a r t ,d c p m ( d a t ac l e a n s i n gp r o c e s sm o d e l ) i sp r o p o s e da n dt h ef e a s i b i l i t yo f m o d e l i n gd a t ac l e a n s i n gp r o c e s sb yw o r k f l o wm o d e l i n gt e c h n o l o g yi sp r o v e n ,w h i c he n a b l e d a t ac l e a n i n gp r o c e s sc o m p l yw i t ha g r e e dm o d u l eb ym a t u r em o d e l i n gt e c h n i q u et om o d e l t h i sm o d u l ed e s c r i b e st h ea t t r i b u t ea n dr e l a t i o na m o n gt h ei n n e re l e m e n to fd a t ac l e a n s i n g p r o c e s sf l o w m o d e l i n gd a t ac l e a n s i n gp r o c e s sb a s e d o nt h eu n i f o r mm o d u l ei n c r e a s e s r e u s a b i l i t yo f t h ep r o c e s s i ns e c o n dp a r t , t h r o u g h a r l a l y z i n g t h en e wr e q u i r e m e n t si n p r e s e n td e s i g na n d d e v e l o p m e n to fd a t ac l e a n i n gs o f t w a r ea sw e l l 硒t h ed e f i c i e n c i e si nd e v e l o p m e n tm e t h o d , c + a d c ( c o m p o n e n t e x t e n d e da g i l ed a t ac l e a n i n g ) i sp r o p o s e da n di m p l e m e n t e di n c l u d i n g ar u n - t i m ep l a t f o r ma n daf r a m e w o r ks e r v i c ec o m p o n e n ts e t a si ti se a s ya n df l e x i b l ef o r t h i sf r a m et oc o n s t r u c td a t ac l e a n i n ga p p l i c a t i o nb a s e do ne x t e n d e dc o m p o n e n t ,i tr e d u c e st h e c o s ta n dc y c l eo fd e v e l o p m e n tal o t m o r e o v e r , t h ec o m p o n e n tm o d u l ei n t e g r a t e dc + a d c f r a m e w o r ka sw e l la st h em a ps t r a t e g yf r o mt h eb u s i n e s ss p a c eo fd a t ac l e a n i n gp r o c e s st ot h e c o m p o n e n t i sd e f i n e di no r d e rt oi m p l e m e n tt h ed a t ac l e a n i n ga p p l i c a t i o np r e f e r a b l y i i i k e y w o r d s :d a t ac l e a n s i n g ;c o m p o n e n t i z a t i o n ;d a t aw a r e h o u s e ;p r o c e s sm o d e l ;r e u s a b i l i t y i v , 狙、 一 目 录 目录 i l l 1 1 :z :! :; :; 2 1 数据清洗技术5 2 1 1 数据清洗的概念_ 5 2 1 2 数据清洗的基本方法一6 2 1 3 数据清洗的基本过程7 2 2 软件复用技术一8 2 2 1 软件构件技术9 2 2 2 软件框架技术1 1 2 3 工作流技术1 3 2 3 1p e t r i 网概述13 2 3 2 工作流网:。1 5 2 4 本章小结1 6 t 第3 章数据清洗过程模型及建模方式1 7 3 1 数据清洗过程模型1 7 3 1 1 数据清洗过程定义1 7 3 1 2 数据清洗过程模型d c p m 1 9 3 2 基于d c p m 的数据清洗过程建模1 9 3 2 1 数据清洗过程建模方法2 0 3 2 2 基于d c p m 建模的改进策略2 2 3 3 基于d c p m 建立数据清洗过程示例2 3 3 4 本章小结2 5 v 目录 第4 章数据清洗框架c + a d c 的设计2 7 r,一 4 1 新的需求和以往技术的不足2 7 4 2 面向过程的构件模型:2 8 4 3 数据清洗过程空间向构件空间的映射3 0 4 3 1 构件粒度3 0 4 3 2 数据清洗过程空间向构件空间的映射算法:3 l 4 4 框架的体系结构3 2 4 4 1 框架的体系结构概述3 3 4 4 2 框架核心包的设计3 4 。4 4 3 运行时平台3 7 4 4 4 框架的基础服务3 8 4 5 本章小结4 1 第5 章数据清洗框架c + a d c 的实现与测试4 3 5 1 实现c + a c d 框架的具体技术4 3 5 1 1mic r o s o f t n e t2 0 :。4 3 5 1 2c 撑语言4 3 5 2c + a d c 框架的实现4 4 5 2 1 核心层的实现“ 5 2 2 运行时平台4 5 5 2 3 框架基础服务构件的实现4 6 5 2 4 系统的测试与结论4 9 5 3 本章小结。5 0 第6 章清洗框架c - c 的应用案例分析5 1 6 1 海洋数据体系和海洋数据仓库5 1 6 2 基于c + a d c 框架的数据清洗应用5 2 6 3 框架的复用性能分析5 4 6 4 本章小结5 6 第7 章结束语。5 7 7 1 工作总结5 7 7 2 下一步计划5 7 参考文献5 9 致谢:一6 3 v i , 目录 v i i , 1 东北大学硕士学位论文第1 章绪论 第1 章绪论 数据质量问题一直是知识决策领域中永恒的矛盾之一。当今,随着信息科学的发展, 各领域积累的数据成指数式的增长。这使得这一个矛盾更加突出,如果不关心数据质量 问题就会出现“垃圾入,垃圾出( g a r b a g ei v g a r b a g eo u t ) ”现象,影响决策分析系统的 准确率与性能。研究表明4 1 的数据仓库项目以失败告终,其中由于数据质量问题而导 致决策错误是失败的一个主要原斟。 数据清洗( d a t ac l e a n s i n g 或d a t as c r u b b i n g ) 是指对数据中存在的错误和不一致进 行检测,剔除或者改正它们,以提高数据的质量【2 1 。近年来,研究人员对数据清洗系统 的框架、模型和语言以及如何利用专家知识、如何结合数据清洗过程和数据挖掘方法等 方面进行了大量研裂3 ,4 ,5 6 1 。在大部分数据仓库和决策系统的建设中,数据清洗成为一个 必不可少的过程。 为了在数据仓库的建设过程中保证数据的质量,国外开展了一系列的研究工作,并 研究了许多理论框架如p o t t e r sw h e e l t 4 1 、a j a x 7 1 、a r k t o s 刚并且有一些成熟的商业化 商品如i b m 的v i s u a lw a r e h o u s i n g 等。这些理论框架及其商业化产品在一定程度上解 决了 如何对数据仓库的数据进行清洗从而提高数据质量问题。 但是随着现代数据仓库中,数据量的大幅增加,给数据清洗软件的构建带来了挑战, 本文对建模数据清洗过程和构建数据清洗软件进行详细的研究。 1 1 课题背景 本课题来源于国家重点专项资助项目海洋数据体系规划和海洋数据仓库构建 技术( 9 0 8 0 3 0 6 0 1 ) 。该项目是东北大学计算机软件与理论研究所与国家海洋信息中心 合作的国家重点项目。是“海洋数据体系规划和海洋数据仓库构建技术 国家海洋局9 0 8 专项的一部分研究内容。该课题的研究目标是对各类海洋资源、环境、经济、管理等数 据进行统一的体系规划,构建统一标准的海洋数据库系统框架,实现国家、省市县等各 级海洋数据的有效管理;为海洋综合管理系统和”数字海洋”原型系统建设提供有力的数 据支撑;解决海洋数据仓库构建和应用中的关键技术,开展海洋数据仓库主题分析,设 计海洋数据仓库体系结构,满足”数字海洋”海洋信息基础平台建设需要。为实现本目标, 本课题将致力于下面6 个方面的研究工作:海洋数据体系规划需求分析;海洋数据体系 布局研究和数据体系详细规划及设计:海洋数据仓库构建关键技术研究及海洋数据仓库 一1 一 东北大学硕士学位论文第1 章绪论 规划和详细设计;海洋数据仓库数据清洗技术研究和规则制定;海洋数据o l a p 分析关 键技术研究和应用模型设计及实现;海洋数据挖掘技术研究和应用模型建立及实现。 1 2 本文的目标和意义 随着数据量的增多,数据模式日趋复杂,数据清洗过程的设计工作变得困难重重。 并且大部分清洗过程的设计没有基于统一的模型和准则,这给过程的设计和重用都带来 极大的困难。因此本文在详细研究数据清洗原理的基础上,提出数据清洗过程的模型 d c p m ( d a t ac l e a n s i n gp r o c e s sm o d e l ) 及其建模方法,大大的方便了设计人员设计和重用 数据清洗过程。 并且,随着数据清洗软件开发出现的新需求:动态的构建、频繁的修改和更多的用 户交互等。目前常规的开发数据清洗软的设计和开发方法不能很好的满足这些需求。因 此本文提出采用基于构件的数据清洗软件开发方法,并研究和设计面向过程的构件模 型、数据清洗过程空间向构件空间映射规则等技术。提出基于构件的数据清洗框架 c + a d c ( c o m p o n e n t - e x t e n d e da g i l ed a t ac l e a n s i n g ) ,以便于构件化数据清洗软件的开发。 1 3 本文研究工作 本文深入的研究数据清洗的逻辑模型以及构件化物理实现。主要工作有两个部分, 一是数据清洗模型的研究,二是基于构件的数据清洗框架的研究。通过使用本文提出的 数据清洗模型d c p m 及基于该模型的建模方法对数据清洗过程进行建模,使得数据清 洗过程在逻辑设计上达到高度的可复用性。并且,基于本文提出的基于构件技术的数据 清洗框架c + a d c 开发数据清洗软件,使得数据清洗软件能够满足动态构建和频繁修改 等需求,达到物理上的高度可复用性。 首先,本文抽象数据清洗过程,给出其形式化定义,基于对已有的数据清洗模型和 建模方法的研究,本文提出数据清洗模型d c p m ,该模型描述了数据清洗过程中内部各 个元素,元素之间的关系和元素的属性。然后,依据w m p v a i l d e r a a l s t 给出的工作流 的定义,提出并证明数据清洗过程符合工作流定义,这样从理论上证明使用工作流理论 及相关技术对数据清洗过程建模的可行性。并且本文扩展和改进工作流网建模技术以使 其能够对数据清洗过程建模,使用这种方式对数据清洗过程的建模,有效的提高数据清 洗过程建模的效率和准确性,并且有直观的图形化表示和坚实的理论基础;最后详细论 述基于d c p m 进行建模所需的关键技术:数据处理组合策略、数据处理的层次扩展策 略。 然而,d c p m 及基于d c p m 的建模方法只解决了对于复杂数据清洗过程逻辑建模 一2 一 东北大学硕士学位论文第1 章绪论 上的难题,在设计上增强了数据清洗过程的可重用性、灵活性和可扩展性。随着经过长 时间积累的超大规模数据仓库的出现,对设计和开发数据清洗软件提出了新的需求。如, 数据清洗软件应该具有支持动态构建、频繁修改等特性。原有的开发方式,渐渐的不能 满足这种新出现的需求。 因此本文提出,基于构件的方法开发数据清洗软件。本文首先提出面向过程的构件 模型,应用该构件模型,可以较好的设计、实现针对数据处理的系统;然后提出数据清 洗过程空间与构件空间的映射策略,这种基于逻辑模型的自上而下的映射方式,摒弃单 一粒度映射的粒度小、复用效率低的缺点,以及人为设计构件的不准确性;最后为了提 高开发数据清洗软件的效率、减少重复工作,本文提出基于构件的数据清洗框架c + a d c , 该框架包括运行时平台和框架服务构件集。基于该框架能够轻松、灵活的构建基于构件 的数据清洗应用,显著的降低开发成本和周期。该框架的一个主要的特点为,能够集成 智能构件。这种构件并不是通用意义上构件,其可以融合智能体,通过良好定义的接口 像外界提供智能服务。基于这种对构件的扩展,可以轻松的在数据清洗过程中加入智能 ( 领域专家、智能a g e n t 、领域规则) 的控制。 最后本文通过具体案例分析,证明基于d c p m 模型建模的数据清洗过程的易复用 性,以及基于c + a d c 框架实现的数据清洗软件能够显著的增加开发效率,减少开发人 员的重复工作。并说明基于构件的数据清洗软件支持动态的构建和频繁修改的特性。 1 4 本文组织结构 _ 本文的组织结构如下: 第一章绪论,主要介绍课题的目的、意义和主要完成的工作; 第二章相关技术概述,对与本课题相关的技术进行介绍,主要包括数据清洗技术、 软件复用技术、软件构件技术、软件框架技术和工作流技术等内容的介绍; 第三章据清洗模型及建模方式,提出数据清洗过程模型d c p m ;证明数据清洗过程 建模可使用工作流理论和相关技术的理论可行性,并改进工作流网建模技术,使其适应 基于d c p m 建模;最后,详细论述基于d c p m 建模所用到的数据处理组合策略、数据 处理的层次扩展策略; 第四章数据清洗框架c + a d c 的设计,首先提出面向过程的构件模型及数据清洗模 型向构件空间的映射规则,软后提出可以集成这种构件的数据清洗框架c + a d c 。本章 详细论述c + a d c 框架中的构件模型、数据清洗模型向构件空间的映射规则、c + a d c 框 架的层次及其包含的主要功能构件; 第五章数据清洗框架c + a d c 的实现与测试,详细描述c + a d c 各部分的实现并对 一3 一 东北大学硕士学位论文第1 章绪论 框架的功能性、健壮性等性能进行测试; 第六章清洗框架c + a d c 的应用案例分析,介绍c + a d c 框架在海洋数据体系规划 和海洋数据仓库构建技术( 9 0 8 0 3 0 6 0 1 ) 中的应用,并通过实际的开发案例说明基于 d c p m 模型设计的数据清洗过程的易复用性和c + a d c 框架给设计和开发数据清洗软件 带高效的开发速度和高度的软件可复用性; 第七章结束语,总结工作。 一4 一 章相关技术概述 流技术等内容的介绍。 2 1 数据清洗技术 些相关理论和 架技术和工作 随着信息技术应用的不断普及,信息系统中数据质量问题受到越来越多的关注,特 别是统计、管理和计算机等领域阳1 。并且企业信息化的发展加快,越来越多的系统需 要升级,越来越多的数据需要被集成以满足企业决策分析的需要,为了保证数据迁移 集成的完整性,数据清洗在企业应用中起到越来越重要的作用。 2 1 1 数据清洗的概念 数据清洗就是发现和清除数据中的错误和不一致来提高数据的质量。包含数据清 洗过程有三个主要领域:数据仓库,数据库中的知识发现( k d d ,又称为数据挖掘) 和 数据、信息质量管理( 如,全面数据质量管理t d q m ) n 0 1 。 在数据仓库环境下,数据清洗是抽取转换装载过程的一个重要部分,要考虑数据 仓库的集成性与面向主题的需要( 包括数据的清洗及结构转换) 。在k d d 中数据清洗 主要是提高数据的可利用性( 去除噪声、无关数据、空白数据域,考虑时间顺序和数据 的变化等) ,全面数据质量管理t d q m 中数据清洗是一个减少错误和不一致性、解决 对象识别的过程口1 。 数据清洗按照实现方式与范围,可分为4 种n u : ( 1 ) 手工实现 这是数据清洗的最简单、最基本的方法,即将数据的值与其真实值相比较。例如, 要查清客户数据是否正确,可以每年做一次客户调查,确认其正确的姓名,地址与工 作单位等。当然,这样比较的成本最昂贵,并且比较与真实的差别对避免将来的错误 没有任何帮助。 ( 1 ) 应用程序实现 该方法是通过编写程序检n 改正错误,从而避免花时间与实际数据进行比较。这 个方法可推广到多数据库的情形,比较一致的数据就认为是正确的,否则就是不正确 的,需要进一步考查与更正。数据清洗是一个反复进行的过程,清理程序复杂、系统 一5 一 东北大学硕士学位论文第2 章相关技 工作量大。 r ( 2 ) 解决特定应用域的问题 如根据概率统计学原理查找数值异常的记录,对姓名、地址、邮政编码等进 洗,这是目前研究得较多的领域,也是应用最成功的一类。这种方法要利用专家 和人工智能的有关知识。 ( 3 ) 与应用领域无关的数据清洗 这一部分的研究主要集中在缺失值处理和重复值处理。 数据清理的原理n 2 1 如图2 1 所示。 图2 1 数据清洗原理 f i g 2 1t h ep r i n c i p l eo fd a t ac l e a n s i n g 2 1 2 数据清洗的基本方法 ( 1 ) “脏数据”检测方法 “脏数据”检测用来发现各种脏数据,它是数据源预清洗中最有,要求正确、全 面和高效地找出各种脏数据。脏数据检测可以使用一下方法: 基于数理统计的方法:利用契比雪夫定理、极大似然原理等来检测测速度快, 但是准确性较差。 模式识别的方法:基于数据挖掘和机器学习算法来查找异常数据,主要涉及联 规则算法。 基于距离的聚类方法:也是基于数据挖掘中的算法,聚类的评测标准为欧几里 德距离或者e d i t 距离,常用于发现相似重复纪录。 基于元数据的检测方法:利用预定义的检测规则来查找脏数据,它是异构数据 源集成中常常采用的脏数据检测方法。 一6 一 东北大学硕士学位论文 第2 章相关技术概述 ( 2 ) 解决不完整数据的方法 大多数情况下,缺失的值必须手工填入( 即手工清理) 。当然,某些缺失值可以从 本数据源或其它数据源推导出来,这就可以用平均值、最大值、最小值、或更为复杂 的概率估计代替缺失的值,从而达到清理的目的。 ( 3 ) 错误值的检测及解决方法 用统计分析的方法识别可能的错误值或异常值,如偏差分析、识别不遵守分布或 回归方程的值,也可以用简单规则库( 常识性规则、业务特定规则等) 检查数据值,或 使用不同属性间的约束、外部的数据来检测和清理数据。 ( 4 ) 重复记录的检测及消除方法 数据库中属性值相同的记录被认为是重复记录,通过判断记录间的属性值是否相 等来检测记录是否相等,相等的记录合并为一条记录( 即合并清除) 。合并清除是消 除重复记录的基本方法。如文献 1 3 研究了数据仓库中重复记录的检查。 ( 5 ) 不一致性( 数据源内部及数据源之间) 的检测及解决方法 从多数据源集成的数据可能有语义冲突,可定义完整性约束用于检测不一致性, 也可通过分析数据发现联系,从而使得数据保持一致。 2 1 3 数据清洗的基本过程 一般情况下,数据清洗的基本过程包括: ( 1 ) 数据分析:数据分析是数据清洗的前提与基础,通过详尽的数据分析来检测数 据中的错误或不一致情况,除了手动检查数据或者数据样本之外,还可以使用分析程序 来获得关于数据属性的元数据,从而发现数据集中存在的质量问题。 模式中反映的元数据对于判断一个数据源的数据质量是远远不够的。因此分析具 体实例来获得有关数据属性和不寻常模式的元数据就变得很重要。这些元数据可以帮 助发现数据质量问题,也有助于发现属性间的依赖关系,根据这些依赖关系实现数据 转换的自动化。数据分析主要有两种方法:数据派生和数据挖掘。数据派生主要对单 独的某个属性进行实例分析。数据派生可以得到关于属性的很多信息,比如数据类型、 长度、取值区间、离散值和它们的出现频率、不同值的个数、出现空缺值的次数和典 型的字符串模式等。通过对数据应用领域的理解以及应用数理统计技术,可以得到属 性值的平均值、中间值、最大值、最小值和标准差等统计值。 数据挖掘帮助在大型数据集中发现特定的数据模式。可以通过数据挖掘来发现属 性间的一些完整性约束,如函数依赖或者一些特定应用的商业规则等。它们可以用来 填充缺失值,纠正不正确的值和确定多数据源间的重复记录。比如一个有着很高的置 一7 一 东北大学硕士学位论文 第2 章相关技术概述 信度的关联规则可以暗示出凡是违背它的数据都可能含有某些数据质量问题,需要进 一步的检查。 ( 2 ) 定义清洗转换规则:根据上一步进行数据分析得到的结果来定义清洗转换规则 与工作流。根据数据源的个数,数据源中不一致数据和“脏数据多少的程度,需要执 行大量的数据转换和清洗步骤。要尽可能的为模式相关的数据清洗和转换指定一种查询 和匹配语言,从而使转换代码的自动生成变成可能。如文献 1 4 提出了一种基于规则的 数据清洗方法。 ( 3 ) 验证:对定义的清洗转换规则的正确性和效率应该进行验证和评估。可以在数 据源的数据样本上进行清洗验证,当不满足清洗要求时要对清洗转换规则或系统参数进 行调整和改进。数据清洗过程中往往需要多次迭代的进行分析,设计和验证,直到获得 满意的清洗转换规则和工作流。它们的质量决定了数据清洗的效率和质量。 ( 4 ) 清洗数据中存在的错误:包括检查数据中的错误,并对错误数据进行转换。在 数据源上执行预先定义好的并且已经得到验证的清洗转换规则和工作流。当直接在源数 据上进行清洗时,需要备份源数据,以防需要撤销上一次或几次的清洗操作。清洗时根 据脏数据存在形式的不同,执行一系列的转换步骤来解决模式层和实例层的数据质量问 题。 ( 5 ) 干净数据回流:当数据被清洗后,干净的数据应该替换数据源中原来的脏数据。 这样可以提高原系统的数据质量,还可避免将来再次抽取数据后进行重复的清洗工作。 2 2 软件复用技术 复用就是指“重复利用已经存在的东西 。被复用的对象可以是有形的物体,也可 以是无形的知识财富。复用不是人类懒惰的表现而是智慧的表现。因为人类总是在继 承了前人的成果,不断加以利用、改进或创新后才会进步。 软件复用是在软件开发中避免重复劳动的重要解决方案,自1 9 6 8 年在n a t o 软 件工程会议上被m c l l r o y 提出后,三十多年来己有长足发展。软件复用是指软件系统 的开发不再采用一切“从零开始 的模式,而是以己有工作为基础,充分利用过去应 用系统开发中积累的资源,如设计、代码、测试用例、度量、过程、开发知识和经验 等,从而将开发的重点集中在完成系统的业务逻辑设计上面。通过软件复用,可以消 除重复劳动,避免重新开发可能引入的错误,从而提高软件开发的效率和质量,并且 将开发的重点集中于软件系统的重点部分。 软件复用的定义很多,比较权威和通用的一种是:软件复用是利用事先建立好的 可复用构件创建新软件系统的过程。这个定义蕴含着软件复用所必须包含的两个方面: 一8 一 东北大学硕士学位论文 第2 章相关技术概述 ( 1 ) 系统地开发可复用的构件。 ( 2 ) 系统地使用这些可复用构件作为构筑模块,来建立新的系统。 而构件( c o m p o n e n t ) 是指应用系统中可以明确辨识的构成成分。可复用构件 ( r e u s a b l ec o m p o n e n t ) 是指具有相对独立的功能和可复用价值的构件。随着对软件 复用理解的深入,构件的概念己不再局限于源代码构件,而是延伸到需求、系统和软 件的需求规则、系统和软件的构架、文档、测试计划、测试案例和数据以及其他对开 发活动有用的信息。这些信息都可以称为可复用软件构件。 2 2 1 软件构件技术 软件构件的概念产生于软件复用,从一般意义上讲,构件( c o m p o n e n t ) 是指应用 系统中可以明确辨识的构成成分。例如,建筑体中建筑构件,机械工业有金属构件。 可复用构件( r e u s a b l ec o m p o n e n t ) 是指具有相对独立的功能和可复用价值的构件。 可复用构件应具备以下属性【1 5 1 : ( 1 ) 有用性( u s e f u l n e s s ) :构件必须提供有用的功能; ( 2 ) 可用性( u s a b i l i t y ) :构件必须易于理解和使用; ( 3 ) 质量( q u a l i t y ) :构件及其变形必须能正确工作; ( 4 ) 适应性( a d a p t a b i l i t y ) :构件应该易于通过参数化等方式在不同语境中进行配置; ( 5 ) 可移植性( p o r t a b i l i t y ) :构件应能在不同的硬件运行平台和软件环境中工作。 软件构件技术是支持软件复用的核心技术,是近几年来迅速发展并受到高度重视 的一个学科分支。其主要研究内容包括: ( 1 ) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件: ( 2 ) 构件模型:研究构件的本质特征及构件间的关系: ( 3 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问题: ( 4 ) 构件分类与检索:研究构件分类策略、组织模式及检索策略,建立构件库系统, ( 5 ) 构件复合组装:在构件模型的基础上研究构件组装机制,包括源代码级的组装 和基于构件对象互操作性的运行级组装; ( 6 ) 标准化:构件模型的标准化和构件库系统的标难化。 2 2 1 1 构件的概念 目前,构件还没有明确的定义n 6 1 ,出现了若干构件的定义,其中比较有代表性的 定义有以下几种: ( 1 ) 著名的b r o w n 和w a l l n a u 描述构件为“一个非平凡的,几乎独立的,可替换 的系统组成部分,它在定义完善的体系结构环境中实现某一清晰的功能,是一个与语境 - 9 - - 东北大学硕士学位论文第2 章相关技术概述 无关的组合单元。 ( 2 ) 欧洲面向对象编程( e c o o p ) 会议的定义:软件构件是一个具有规范接口和确 定的上下文依赖的组装单元。软件构件能够被独立部署和被第三方组装。 ( 3 ) c l e m e n s 认为:构件是一个独立部署的单元,是一个第三方合成的单元,构件 没有一致的状态。 虽然构件的定义多种多样,其共同的定义为:可以作为一个单元独立的开发和交 付的内聚软件制品,可以在不做任何改变的情况下将其与其他构件组装起来建立更大 的构件n 。 2 2 1 2 构件的特点 从抽象程序来看,面向对象( o b j e c to r i e n t a t i o n ) 技术以类为封装单位,已经达到 了类级复用( 代码复用) ,但是这种复用的粒度还不够,不足以解决异构互操作和效率 更高的复用。构件将抽象的程度提高到了一个更高的层次。它是对一组类的组合进行 封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。 构件之间是相对独立的,并且构件的开发和使用也是相对独立的。因此,构件可 以作为独立的单元被用于不同的体系结构中。在不同层次上,构件均可以将底层、低 粒度的构件组合成高层上的粒度更大的新构件,甚至直接封装到一个系统中,使模块 的复用从代码级、对象级、构架级甚至系统级都可以实现。从而使软件像硬件一样, 能任人装配定制而成的梦想得以实现。 构件隐藏了具体的实现,只用接口对外提供服务。构件内部包含了多种属性,如 端口、类型、语义、约束、演化非功能属性等。端口是构件与外部世界的一组交互的 接口,用于说明构件提供的哪些服务( 消息、操作、变量) 。构件类型是实现构件复用 的手段,它保证了构件自身能够在体系结构描述中多次实例化。 构件可以被看成一种软件集成电路,归纳一下,具体有以下特点【l8 】: ( 1 ) 构件没有硬件集成电路的天然内聚性,构成粒度大小较自由,便于扩展。 ( 2 ) 通过规定的一个统一的二进制标准,建立构件之间的智能互操作机制和实现语 言独立性。实现不同厂商的软件间的真正互操作,构件可以来自不同的构件开发商,能 够独立地生产、获得和配置,不同的构件可以方便地搭建应用程序。与语言无关性构件, 以二进制的形式发布,这样就将其实现所用的编程语言封装起来,做到与语言开发环境 无关。 ( 3 ) 外界仅通过接口访问构件。由于每个构件都是自主的,只能通过接口与外界通 信,当一个构件需要提供新的服务时,可通过增加新的接口来完成,不会影响到原接口 一1 0 一 东北大学硕士学位论文第2 章相关技术概述 的用户,而新的用户可以重新选择新的接口来获得服务。 ( 4 ) 多侧面性。构件表达的语义层次较高,可以从不同侧面连接它,其外特性不唯 一o ( 5 ) 支持封装、继承和多态性。 ( 6 ) 构件位置透明性。构件以及使用它的程序能够在同一进程中,不同的进程或不 同的机器上运行。构件对远程构件的处理方式应和对本地构件的处理方式是一样的。 2 2 2 软件框架技术 目前框架的研究在学术界和工业界都引起了人们广泛的兴趣,框架的重用已成为软 件生产中最有效的重用方式之一。g a r t n e r g r o u p 曾经预测:“将来至少7 0 的新应用会 主要建立在如软件构件和应用框架这类构造块之上;应用开发的未来就在于提供一 个开放的体系结构,以方便构件的选择、组装和集成。一 2 2 2 1 框架的定义 对于框架,一直以来没有一个统一的定义,下面给出两个最常用的定义: ( 1 ) 框架是一个系统全部或者部分的可复用设计,通常由一组抽象类和类之间的协 作组成【1 9 】: ( 2 ) 框架是一个能够被开发人员实例化的系统骨架2 0 1 。 这两个定义是相互补充的,前者从复用的角度描述了框架,而后者给出了框架的目 的。根据以上两个定义可知:根据以上两个定义可知: ( 1 ) 框架既分割了应用领域中的类、定义了各部分的主要责任和类与对象的协作关 系,还规定了控制过程; ( 2 ) 框架记录并实现了其应用领域的主要公共设计决策。由此可以认为,框架是一 个“部分实现 的软件体系结构,是支持软件设计复用和实现复用的技术。 2 2 2 2 框架的分类 ( 1 ) 按照软件框架被定制或扩展的方式可以分为:白盒框架、黑盒框架和灰盒框架。 白盒框架:框架的用户通过对框架类实施子类型化来定制框架。在框架生命周 期的初始阶段,框架往往是白盒框架,因为应用域还没有得到充分的理解,因而无法通 过参数化来控制其行为。 黑盒框架:框架的用户通过使用不同类的组合来定制框架。黑盒框架是基于组 合的,参数化框架要求对领域的稳定部分与易变部分有深刻的理解。黑盒框架一般是框 架演化生命周期的终点。 灰盒框架:框架的用户既要通过子类型化,又通过组合来定制框架。灰盒框架 一1 1 ( 4 ) 按照框架的级别可以分为三类:系统构架级框架、中间件集成框架和企业应用 框架。 系统构架级框架( s y s t e mi n f r a s t r u c t u r ef r a m e w o r k s ) 简化了系统构架的开发, 如操作系统、通讯框架、用户界面框架。系统构架级框架主要用于软件组织内部,而不 直接面向最终用户提供服务。 中间件集成框架( m i d d l e w a r ei n t e g r a t i o nf r a m e w o r k s ) 通常用于分布式应用和部 件。中间件集成框架用于赋予软件开发者在分布式环境中模块化、复用和扩展软件架构 的能力。 企业应用框架( e n t e r p r i s ea p p l i c a t i o nf r a m e w o r k ) 包括的领域最为广泛,如电 信、电子、制造、金融领域,它是企业业务活动的基础。相对于系统架构和中间件集成 框架而言,企业框架无论是开发和购买都相当昂贵。但是,企业框架可以提供实际的投 资回报,因为它们支持直接面向最终用户的应用和产品的开发。 一1 2 东北大学硕士学位论文第2 章相关技术概述 2 2 2 3 基于框架开发的优点 基于框架的开发给应用系统的设计和开发人员提供了许多便利, 率,减少了开发成本。总的来说,基于框架开发有以下几个优点: ( 1 ) 缩短软件开发周期:由于框架的使用减少了开发重复的代码, 高,因此缩短了软件开发周期。 提供了开发的效 使得开发效率增 ( 2 ) 节省维护成本:当维护由一个框架所派生出来的多个软件应用产品时,只需要 维护这个软件框架,以及每个基于该框架的软件应用中不同的部分即可。这就意味着变 化只要在一个地方发生,就可以保持一致性。与同时维护几个完全不同的软件系统相比 较,采用软件框架方式可以大大节省软件维护成本。 ( 3 ) 节省测试成本:当复

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论