《基于面向方面的构件库构建方法.pdf》由会员分享,可在线阅读,更多相关《基于面向方面的构件库构建方法.pdf(7页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102955697 A(43)申请公布日 2013.03.06CN102955697A*CN102955697A*(21)申请号 201210443133.7(22)申请日 2012.11.08G06F 9/44(2006.01)G06F 17/30(2006.01)(71)申请人沈阳建筑大学地址 110168 辽宁省沈阳市浑南新区浑南东路9号沈阳建筑大学(72)发明人曹阳 王永会 王守金 宋晓宇(74)专利代理机构沈阳杰克知识产权代理有限公司 21207代理人李宇彤(54) 发明名称基于面向方面的构件库构建方法(57) 摘要本发明涉及一种基于面向方面的构件库构建方法。
2、,属于软件工程技术领域。其特征在于包括如下步骤:将源代码输入源代码信息库;对源代码信息库的代码信息进行解析,提取代码信息中的类;运用编织机制,将代码信息中的类信息分解,将类的核心功能和横切关注点功能分离;利用语义规则库和方面规则库进行语义推理,实现构件查询;对查询结果进行排序评价,并根据查询匹配度向用户进行构件推荐。本发明将面向对象的代码结构转化为面向方面的代码结构,使系统的横切关注点构件化,提高代码的可重用性,使系统代码冗余小,易于理解、维护和扩展;同时,基于语义推理的查询机制,使方面构件库能够灵活地随着领域知识演化。(51)Int.Cl.权利要求书1页 说明书3页 附图2页(19)中华人民。
3、共和国国家知识产权局(12)发明专利申请权利要求书 1 页 说明书 3 页 附图 2 页1/1页21.基于面向方面的构件库构建方法,其特征在于:所述方法依次含有以下步骤为:步骤1,软件产品入库,对源代码文件进行扫描,并将源代码信息输入源代码信息库;步骤2,知识库建立,本步骤的具体过程描述如下:(1)对源代码信息库的代码信息进行解析,提取代码信息中的类,具体过程为:对源代码进行语法解析;提取代码信息的语法树;对语法树进行语义解析;获得代码信息中的类;(2)运用方面规则库配置并管理基于该领域的基于方面的组件群,该组件群中体现了该系统的全部核心业务关注点和横切关注点;(3)运用编织机制,将代码信息中。
4、的类信息分解,将类的核心功能和横切关注点功能分离,最终,形成方面构件库;步骤3,实现用户的智能查询,本步骤的具体过程描述如下:(1)用户输入查询关键字,系统利用语义规则库和方面规则库对输入关键字进行语义推理,进行匹配度计算;(2)根据匹配度到方面构件库里进行构件查找;(3)对查找到的构件进行排序评价;(4)向用户推荐匹配度高的一个或多个构件,允许用户从方面构件库中下载相关构件实体。2.根据权利要求1所述的基于面向方面的构件库构建方法,其特征在于,由语义知识建立语义规则库,该规则库中包括蕴涵规则知识、兼容规则知识、方面规则知识。3.根据权利要求1所述的基于面向方面的构件库构建方法,其特征在于,由。
5、领域知识建立方面规则库,领域知识是该领域功能的描述集,对每个功能的描述包括:功能编号、所属领域、所属方面、版本号、功能描述、业务对象、备份。4.根据权利要求1所述的基于面向方面的构件库构建方法,其特征在于:在方面规则下对源代码信息编织后得到方面构建库,其中面向方面的构件包括代码和接口描述信息,其中每个构件的接口描述包括:构件编号、所属方面、接口名称、服务的功能描述、输入参数、输出参数、返回值、构件提供者、版本号、关键字。权 利 要 求 书CN 102955697 A1/3页3基于面向方面的构件库构建方法技术领域0001 本发明涉及一种基于面向方面的构件库构建方法,属于软件工程技术领域。背景技术。
6、0002 软件构件是软件系统中具有独立功能,可以明确标识,借口由规约指定,与语境有明显依赖关系,可独立部署和组装的软件实体。软件人员在开发软件时可大量复用这些构件,从而降低软件的开发和维护费用,提高软件的生产率。基于构件的软件开发已经成为软件开发的主流技术。但随着软件系统规模和复杂性的逐步增加,系统各个构件中间的相互影响变得更加复杂。这些相互影响可能会限制软件的重用性和可扩展性,并使使系统的正确性和可维护性变差,传统的在操作系统或者中间件上直接进行软件开发的模式,受到了极大的挑战。0003 为了解决这一问题,我国发明专利,专利号为200710195613的“一种基于构件的领域基础业务平台及其构。
7、建方法”,在原有的通用横向构件设计平台基础上(如惠普公司的EOS提供了页面构件、展现构件、控制构件等),公开了一种领域内通用的纵向构件库的构建方法。该方法具有根据输入领域内通用基本功能描述集,按照规定的构件划分规则实现构件聚类和查询的功能。但如果将一个复杂的系统看作是由多个关注点的组合实现,则上述专利方法的构件库只包含了核心业务关注点模块,即该构件库只满足各个业务子系统的构建。而横切关注点,即各个业务子系统都可能涉及的一些公共需求,例如日志记录、安全性、数据存储、授权、错误检查等,则在构件库中未有体现。例如,在系统开发后期,用户提出需要在系统的各个子系统内部实现错误检查,上述专利方法是编写一个。
8、错误检查的超类,在各个子系统中继承、实现。不但代码的修改量很大,而且无疑会增加出错的概率。正因为横切关注点可能要跨越多个模块,同是又必须便于修改、维护和更新,应用程序开发者在进行基于构件软件开发时不仅需要专注于业务逻辑的视线,还需要熟悉这些横切关注点,对其API进行编程,使代码的复用性变差。发明内容0004 本发明就是针对上述问题提出来的,目的是提供一种基于面向方面的构件库构建方法,实现了核心业务关注点和横切关注点的构件化。0005 为实现上述目的,本发明解决技术问题的技术方案是:(1)输入源代码文件,并将源代码信息入库;(2)构造方面管理器,从源代码信息库中提取类信息,并根据从方面规划库中提。
9、取方面组件进行编织,最终得到方面构件库;(3)语义规则库查询提供语义知识作,方面规则库提供的领域知识,这二者作为查询时语义推理的依据,由此实现构件查询机制;(4)由于查询是基于语义推理的,查询后对查询结果进行排序评价,并根据查询匹配度向用户进行构件推荐。说 明 书CN 102955697 A2/3页40006 本发明与现有技术相比具有下述优点效果:(1)由于面向方面的出现就是为解决横切关注点问题,因此,本发明使用面向方面的构件库首先带来的好处就是可以模块化横切关注点,由此也使得代码有良好的可重用性;(2)使用面向方面构件库可以解决代码分散和代码混乱问题,本发明使面向对象的代码结构经过方面管理器。
10、将转化为面向方面的代码结构,这使得基于构件开发的系统代码冗余小,也易于理解和维护;(3)由于横切关注点对于方面来说是透明的,本发明很容易通过建立新的方面加入新的功能。另外当往系统中加入新的模块时,己有的方面自动横切进来,使系统易于扩展。0007 (4)为了使方面构件库能够灵活地随着领域知识的演化而查询效率不降低,本发明建立了语义规则库,提供了基于语义推理的查询机制,实现了高效智能管理方面构件库方案。附图说明0008 图1基于面向方面的构件库构建及查询过程示意图。0009 图2方面管理器结构示意图。0010 图3基于面向方面的模块结构转化实例示意图。具体实施方式0011 下面参见本发明的附图并结。
11、合具体实施例对本发明进行进一步详细说明,但本发明的保护范围不受具体的实施例所限制,以权利要求书为准。另外,以不违背本发明方案的前提下,对本发明所作的本领域普通技术人员容易实现的任何改动或改变都将落入本发明的权利要求范围之内。0012 参见附图1,本发明包括以下步骤:第一步,软件产品入库。对源代码文件进行扫描,并将源代码信息输入源代码信息库;第二步,知识库建立。根据语义知识、领域知识和源代码信息,分别构建语义规则库、方面规则库和方面构件库。本步骤的具体过程描述如下:(1)对源代码信息库的代码信息进行解析,提取代码信息中的类。具体过程为:对源代码进行语法解析;提取代码信息的语法树;对语法树进行语义。
12、解析;获得代码信息中的类;(2)参见附图2,运用方面规则库配置并管理基于该领域的基于方面的组件群,该组件群中体现了该系统的全部核心业务关注点和横切关注点;(3)参见附图2,使用编织机制,将代码信息中的类信息分解,将类的核心功能和横切关注点功能分离,分离后的程序代码结构参见附图3。最终,形成方面构件库。0013 语义规则库的建立,是在分析用户可能提出的模糊概念的查询,设计语义知识并由此建立语义规则库,该规则库中包括蕴涵规则知识、兼容规则知识、方面规则知识等。0014 方面规则库的建立,是根据领域知识得到的,这里包括该系统的全部核心业务关注点和横切关注点。领域知识是该领域功能的描述集,对每个功能的。
13、描述包括:功能编号、所属领域、所属方面、版本号、功能描述、业务对象、备份。对于一些特殊属性还可填写且他内容,如关联关系、申报部门等。0015 方面构建库的建立,是在方面规则下对源代码信息编织后得到的。这里的面向方说 明 书CN 102955697 A3/3页5面的构件包括代码和接口描述信息,其中每个构件的接口描述包括:构件编号、所属方面、接口名称、服务的功能描述、输入参数、输出参数、返回值、构件提供者、版本号、关键字。0016 第三步,实现用户的智能查询。本步骤的具体过程描述如下:(1)用户输入查询关键字,系统利用语义规则库和方面规则库对输入关键字进行语义推理,进行匹配度计算;(2)根据匹配度到方面构件库里进行构件查找;(3)对查找到的结构进行排序评价;(4)向用户推荐匹配度高的一个或多个构件,允许用户从方面构件库中下载相关构件实体。0017 完成以上步骤,可以实现基于面向方面的构件库的构建,以及检索并获取满足构件查询条件的构件。说 明 书CN 102955697 A1/2页6图1图2说 明 书 附 图CN 102955697 A2/2页7图3说 明 书 附 图CN 102955697 A。