基于概念分析的程序重构技术研究

来源 :吉林大学 | 被引量 : 0次 | 上传用户:sisi22
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
本文我们研究的是使用概念分析的方法进行程序的重构。概念就是有共同属性的所有对象的集合。概念分析的就是求解概念格的计算方法。早期是作为数学理论提出来的,目的是为了重构格理论。计算概念格的步骤是:第一步:计算最小概念。这个概念是指这样的一个对象的集合,这些集合中的对象具有所有的属性,通常这个概念是不存在的。第二步:计算出原概念。原概念是一组由对象域和属性域组成的集合。属性域就是共同属性的集合,对象域是指包含这些属性的(与这些属性相同或除了拥有这些属性之外还拥有其他属性)的对象的集合。第三步:计算子概念,形成概念格。在上步求得的原概念的基础之上,找出各原概念之间的共同属性,然后求出拥有这些共同属性的所有对象的集合。因为概念分析的过程,是寻找拥有共同属性的所有对象集合的过程。所以这种方法逐渐的应用于计算机领域。1995年成立的概念化结构国际会议,标志着概念分析在计算机科学中成为一个独立的研究领域。在人工智能、数据挖掘、知识表示、概念化图、描述逻辑、机器学习、软件工程等众多的研究领域,都会应用到概念分析的方法。在本文,我们利用概念分析的方法来解决程序重构的问题。使没有模块化形式的程序,转换成相应的程序,使维护和进一步的开发变得容易。 <WP=53>早期Lindig和Snelting也运用概念分析的方法来解决程序的重构问题。他们研究了在Fortran和Cobol中,对于小程序或中等程序的应用,但结果并不理想。概念格并没有把程序分解成有用的模块。分析Lindig和Snelting没有成功的原因。主要是应用的语言对象,Fortun语言和Cobol语言的结构性不强,而且他们没能够解决内在联系的问题。本文研究的起点是C语言,C语言的结构体变量,使C语言有更强的结构性。解决内在联系的问题,我们采用反面信息的方法。以往的研究我们使用的是正面的信息。比如“函数f使用了变量x”或者“函数f有参数t”等。反面的信息就是没有使用参数或变量的信息。比如“功能f没有使用堆栈结构体”。这样不但可以区分出来功能之间的相似之处,也可以区分出来它们之间的不同之处。本文的程序重构过程是运用概念分析的方法来实现的。第一步:建立三元组,三元组由对象、属性以及它们之间的二元关系组成。这个二元关系是指某一对象是否具有某种属性。如果有,这个二元关系就为“真”,如果没有,这个二元关系就为“假”。第二步:根据概念格计算的方法,建立概念格。第三步:确定概念的划分,总结得到的概念,获得模块化的结果。在程序重构的时候,经常会遇到具有内在联系的程序。我们在文章中就举了这样一个例子。在原程序中,使用了堆栈和队列两个结构体。队列用两个堆栈来表示,1个是首部的堆栈,1个是尾部的堆栈。当尾部的堆栈为空时,数据就从首部的堆栈弹出,压入尾部的堆栈。这样,对于队列的操作,需要访问堆栈,间接的使用了堆栈域。队列和堆栈这两个模块是有内在联系的。如果我们仍然沿袭老的方法建立三元组,最终计算出来的概念格,<WP=54>没有一个概念可以表示堆栈模块。为了解决这个问题,我们在建立三元组时,考虑使用反面的信息。原来在建立三元组时,我们设置了一个属性“使用了队列域”,我们现在再增加一个属性,“没有使用队列域”。在这个基础上求出的概念格,就有一个概念可以表示堆栈模块。上面我们讲述了概念分析在程序重构技术中的应用。在实际的工作中,我们还会考虑,在生成的许多概念中,如何选择我们所需要的概念。这就是概念的划分。划分的原则是,所有模块的集合是不相交的,但又必须表示出输入程序的所有功能。概念的划分,就是把所有的概念分成不同集合。每个概念集合中,各概念的对象集合包含了所有的对象,并且每组对象之间不交迭,就是说1个对象不会出现2次。这时,这组概念集合就是一个概念的划分。为了方便软件工程师的工作,使他们不至于陷入纷繁复杂的选择中,对概念进行划分是非常必要的。进行概念的划分之后,方便了软件工程师的工作,使他们免于陷入纷繁复杂的工作当中。本文我们研究了如何使用概念分析的方法,将一个没有模块化形式的C语言程序,转换成C++语言程序,使其具有了类的形式。主要讨论了概念格的建立过程以及如何进行概念的划分,并且用C语言实现了这个过程。
其他文献
随着计算机科学和网络通信的飞速发展,在基于TCP/IP协议的数据通信网上提供传输图像、视频、音频等多媒体业务成为可能.较之传统的电信网,基于IP网的多媒体通信具有成本低、
决策支持系统是信息系统研究的最新发展阶段,既具有数据处理功能又具有数值计算功能,达到了更高层次的对管理者的辅助决策能力.随着数据库技术的不断成熟,数据仓库技术的以及
6LoWPAN是一种新兴的物联网技术,目前有很多厂商和学者对其进行了研究和实现,所以对6LoWPAN设备的一致性测试工作也越来越重要。但目前普遍采用的主动一致性测试方法有时并不
通过对古代相关图案、特别是具有民族特色的服饰图案进行研究,本文运用数字图像处理技术对图像进行必要的处理,使之符合纺织品图案设计的要求,然后利用纹织CAD系统设计出理想
随着设备制造技术的提高和市场日益激烈的竞争,更加完善的设备管理会使其在市场竞争中占有更多的优势.该文中将要提出的智能设备管理将更完善的提供设备的维护诊断以及其他服
论文提出了开放空间信息互操作框架(OpenSpatialInformationInteroperationFramework,OSIIF).论文采用SemanticWeb倡导的XML和RDF技术,以开放动态为首要原则,重点研究了OFIIF
UML已经发展为被广泛接受的统一建模语言.但是由于不同领域的建模者有着不同的建模要求,软件新技术新方法层出不穷以及UML存在向语言家族发展的趋势,有必要对UML扩展机制及其
随着移动互联网的发展和智能移动设备的普及,人们对位置感知服务的需求与日俱增,全球定位系统和蜂窝网络系统基本上满足了人们对室外定位的需求,然而,在室内环境下全球定位系
本文设计了一种构建电解二氧化锰电解槽监控系统的方案,并提出了一种控制电解槽槽温的方法,以实现电解槽槽温的自动控制.在该方案中,监控系统主要对电解二氧化锰的电解槽槽温
当前的Internet网络,存在着标准化周期长和兼容性差的问题,给动态快速地引入新服务带来了困难。为了在网络中快速地引入和展开新服务,人们提出了主动网络的概念。主动网络允许用