CN102955697B - 基于面向方面的构件库构建方法 - Google Patents

基于面向方面的构件库构建方法 Download PDF

Info

Publication number
CN102955697B
CN102955697B CN201210443133.7A CN201210443133A CN102955697B CN 102955697 B CN102955697 B CN 102955697B CN 201210443133 A CN201210443133 A CN 201210443133A CN 102955697 B CN102955697 B CN 102955697B
Authority
CN
China
Prior art keywords
component
code information
base
aop
source code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210443133.7A
Other languages
English (en)
Other versions
CN102955697A (zh
Inventor
曹阳
王永会
王守金
宋晓宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Jianzhu University
Original Assignee
Shenyang Jianzhu University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenyang Jianzhu University filed Critical Shenyang Jianzhu University
Priority to CN201210443133.7A priority Critical patent/CN102955697B/zh
Publication of CN102955697A publication Critical patent/CN102955697A/zh
Application granted granted Critical
Publication of CN102955697B publication Critical patent/CN102955697B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于面向方面的构件库构建方法,属于软件工程技术领域。其特征在于包括如下步骤:将源代码输入源代码信息库;对源代码信息库的代码信息进行解析,提取代码信息中的类;运用编织机制,将代码信息中的类信息分解,将类的核心功能和横切关注点功能分离;利用语义规则库和方面规则库进行语义推理,实现构件查询;对查询结果进行排序评价,并根据查询匹配度向用户进行构件推荐。本发明将面向对象的代码结构转化为面向方面的代码结构,使系统的横切关注点构件化,提高代码的可重用性,使系统代码冗余小,易于理解、维护和扩展;同时,基于语义推理的查询机制,使方面构件库能够灵活地随着领域知识演化。

Description

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

Claims (3)

1.基于面向方面的构件库构建方法,所述方法依次含有以下步骤为:
步骤1,软件产品入库,对源代码文件进行扫描,并将源代码信息输入源代码信息库;
步骤2,知识库建立,其特征在于:本步骤的具体过程描述如下:
(1)对源代码信息库的代码信息进行解析,提取代码信息中的类,具体过程为:对源代码进行语法解析;提取代码信息的语法树;对语法树进行语义解析;获得代码信息中的类;
(2)运用方面规则库配置并管理基于软件产品的组件群,该组件群中体现了该构件库的全部核心业务关注点和横切关注点;
(3)运用编织机制,将代码信息中的类信息分解,将类的核心功能和横切关注点功能分离,最终,形成方面构件库;
步骤3,实现用户的智能查询,本步骤的具体过程描述如下:
(1)用户输入查询关键字,利用语义规则库和方面规则库对输入关键字进行语义推理,进行匹配度计算;
(2)根据匹配度到方面构件库里进行构件查找;
(3)对查找到的构件进行排序评价;
(4)向用户推荐匹配度高的一个或多个构件,允许用户从方面构件库中下载相关构件实体:
其中,在方面规则下对源代码信息编织后得到方面构建库,其中面向方面的构件包括代码和接口描述信息,其中每个构件的接口描述包括:构件编号、所属方面、接口名称、服务的功能描述、输入参数、输出参数、返回值、构件提供者、版本号、关键字。
2.根据权利要求1所述的基于面向方面的构件库构建方法,其特征在于,由语义知识建立语义规则库,该语义规则库中包括蕴涵规则知识、兼容规则知识、方面规则知识。
3.根据权利要求1所述的基于面向方面的构件库构建方法,其特征在于,由领域知识建立方面规则库,领域知识是该领域功能的描述集,对每个功能的描述包括:功能编号、所属领域、所属方面、版本号、功能描述、业务对象、备份。
CN201210443133.7A 2012-11-08 2012-11-08 基于面向方面的构件库构建方法 Expired - Fee Related CN102955697B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210443133.7A CN102955697B (zh) 2012-11-08 2012-11-08 基于面向方面的构件库构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210443133.7A CN102955697B (zh) 2012-11-08 2012-11-08 基于面向方面的构件库构建方法

Publications (2)

Publication Number Publication Date
CN102955697A CN102955697A (zh) 2013-03-06
CN102955697B true CN102955697B (zh) 2016-01-20

Family

ID=47764533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210443133.7A Expired - Fee Related CN102955697B (zh) 2012-11-08 2012-11-08 基于面向方面的构件库构建方法

Country Status (1)

Country Link
CN (1) CN102955697B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101782704B1 (ko) * 2013-03-15 2017-09-27 뷰라웍스, 엘엘씨 지식 포착 및 발견 시스템
CN105493082A (zh) * 2013-06-29 2016-04-13 微软技术许可有限责任公司 利用实体扩展的人搜索
CN104407908A (zh) * 2014-11-26 2015-03-11 武汉工程大学 一种在需求模型中识别横切关注点的方法
CN104881285B (zh) * 2015-05-25 2018-04-20 北京理工大学 基于本体的代码片段标注与重用系统
CN105808241B (zh) * 2016-03-01 2018-12-14 武汉工程大学 可复用方面库的构建方法及系统
CN108121722A (zh) * 2016-11-28 2018-06-05 渡鸦科技(北京)有限责任公司 知识库的构建方法及装置
CN107066246B (zh) * 2016-12-27 2021-03-05 深圳虚觅者科技有限公司 一种软件开发方法及装置
CN112632113B (zh) * 2020-12-31 2022-02-11 北京九章云极科技有限公司 一种算子管理方法和算子管理系统
CN114443739A (zh) * 2022-04-08 2022-05-06 北京华顺信安科技有限公司 一种产品版本号提取方法及装置
CN116304225B (zh) * 2023-03-22 2024-05-17 联洋国融(上海)科技有限公司 一种基于mas系统的构件检索及评价方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017432A (zh) * 2006-12-06 2007-08-15 武汉大学 一种构件库管理方法
CN101226471A (zh) * 2007-11-09 2008-07-23 中科软科技股份有限公司 一种基于构件的领域基础业务平台及其构建方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017432A (zh) * 2006-12-06 2007-08-15 武汉大学 一种构件库管理方法
CN101226471A (zh) * 2007-11-09 2008-07-23 中科软科技股份有限公司 一种基于构件的领域基础业务平台及其构建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种面向方面软件体系结构模型;朱春国等;《计算机应用研究》;20100930;第27卷(第9期);第3387-3389,3394页 *

Also Published As

Publication number Publication date
CN102955697A (zh) 2013-03-06

Similar Documents

Publication Publication Date Title
CN102955697B (zh) 基于面向方面的构件库构建方法
US10360307B2 (en) Automated ontology building
CN107644323B (zh) 一种面向业务流的智能审核系统
Hidaka et al. Bidirectionalizing graph transformations
CN100470480C (zh) 分析程序加速器装置以及更新其的方法
US9213707B2 (en) Ordered access of interrelated data files
CN110659494A (zh) 一种可扩展的智能合约漏洞检测方法
CN109684838B (zh) 一种针对以太坊智能合约的静态代码审计系统及方法
CN106462425A (zh) 复常量
CN103164249A (zh) 用于脚本语言编译器的扩展机制
CN106844380A (zh) 一种数据库操作方法、信息处理方法和相应装置
CN101493820A (zh) 一种药监行业知识库的平台及其构建方法
CN102053958A (zh) 上下文准确匹配
CN101458692A (zh) 一种战略物资行业知识库的平台及其构建方法
WO2015088994A1 (en) Building features and indexing for knowledge-based matching
CN101185116A (zh) 在软件程序中使用强数据类型表示语音识别语法
CN103914290A (zh) 一种操作命令处理方法及装置
Ren et al. Making smart contract development more secure and easier
KR101877828B1 (ko) 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템
CN108766507A (zh) 一种基于CQL与标准信息模型openEHR的临床质量指标计算方法
CN103678396B (zh) 一种基于数据模型的数据备份方法和装置
Zhou et al. Effective approaches to combining lexical and syntactical information for code summarization
CN100527131C (zh) 一种ims数据库互动式访问方法和工具
CN111124422B (zh) 一种基于抽象语法树的eos智能合约语言转换方法
US20200257660A1 (en) Object model generation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160120

Termination date: 20161108