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

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

Info

Publication number
CN102955697A
CN102955697A CN2012104431337A CN201210443133A CN102955697A CN 102955697 A CN102955697 A CN 102955697A CN 2012104431337 A CN2012104431337 A CN 2012104431337A CN 201210443133 A CN201210443133 A CN 201210443133A CN 102955697 A CN102955697 A CN 102955697A
Authority
CN
China
Prior art keywords
code information
base
component base
rule
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.)
Granted
Application number
CN2012104431337A
Other languages
English (en)
Other versions
CN102955697B (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

Images

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 (4)

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

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407908A (zh) * 2014-11-26 2015-03-11 武汉工程大学 一种在需求模型中识别横切关注点的方法
CN104881285A (zh) * 2015-05-25 2015-09-02 北京理工大学 基于本体的代码片段标注与重用系统
CN105378721A (zh) * 2013-03-15 2016-03-02 比乌拉工厂有限公司 知识捕获和发现系统
CN105493082A (zh) * 2013-06-29 2016-04-13 微软技术许可有限责任公司 利用实体扩展的人搜索
CN105808241A (zh) * 2016-03-01 2016-07-27 武汉工程大学 可复用方面库的构建方法及系统
CN107066246A (zh) * 2016-12-27 2017-08-18 深圳虚觅者科技有限公司 一种软件开发方法及装置
CN108121722A (zh) * 2016-11-28 2018-06-05 渡鸦科技(北京)有限责任公司 知识库的构建方法及装置
CN112632113A (zh) * 2020-12-31 2021-04-09 北京九章云极科技有限公司 一种算子管理方法和算子管理系统
CN114443739A (zh) * 2022-04-08 2022-05-06 北京华顺信安科技有限公司 一种产品版本号提取方法及装置
CN116304225A (zh) * 2023-03-22 2023-06-23 联洋国融(上海)科技有限公司 一种基于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
朱春国等: "一种面向方面软件体系结构模型", 《计算机应用研究》, vol. 27, no. 9, 30 September 2010 (2010-09-30) *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105378721A (zh) * 2013-03-15 2016-03-02 比乌拉工厂有限公司 知识捕获和发现系统
US11921751B2 (en) 2013-03-15 2024-03-05 BeulahWorks, LLC Technologies for data capture and data analysis
US10891310B2 (en) 2013-03-15 2021-01-12 BeulahWorks, LLC Method and apparatus for modifying an object social network
CN105378721B (zh) * 2013-03-15 2019-02-19 比乌拉工厂有限公司 知识捕获和发现系统
CN105493082A (zh) * 2013-06-29 2016-04-13 微软技术许可有限责任公司 利用实体扩展的人搜索
CN104407908A (zh) * 2014-11-26 2015-03-11 武汉工程大学 一种在需求模型中识别横切关注点的方法
CN104881285A (zh) * 2015-05-25 2015-09-02 北京理工大学 基于本体的代码片段标注与重用系统
CN104881285B (zh) * 2015-05-25 2018-04-20 北京理工大学 基于本体的代码片段标注与重用系统
CN105808241B (zh) * 2016-03-01 2018-12-14 武汉工程大学 可复用方面库的构建方法及系统
CN105808241A (zh) * 2016-03-01 2016-07-27 武汉工程大学 可复用方面库的构建方法及系统
CN108121722A (zh) * 2016-11-28 2018-06-05 渡鸦科技(北京)有限责任公司 知识库的构建方法及装置
CN107066246A (zh) * 2016-12-27 2017-08-18 深圳虚觅者科技有限公司 一种软件开发方法及装置
CN107066246B (zh) * 2016-12-27 2021-03-05 深圳虚觅者科技有限公司 一种软件开发方法及装置
CN112632113A (zh) * 2020-12-31 2021-04-09 北京九章云极科技有限公司 一种算子管理方法和算子管理系统
CN114443739A (zh) * 2022-04-08 2022-05-06 北京华顺信安科技有限公司 一种产品版本号提取方法及装置
CN116304225A (zh) * 2023-03-22 2023-06-23 联洋国融(上海)科技有限公司 一种基于mas系统的构件检索及评价方法
CN116304225B (zh) * 2023-03-22 2024-05-17 联洋国融(上海)科技有限公司 一种基于mas系统的构件检索及评价方法

Also Published As

Publication number Publication date
CN102955697B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
CN102955697B (zh) 基于面向方面的构件库构建方法
US10360308B2 (en) Automated ontology building
CN108446540B (zh) 基于源代码多标签图神经网络的程序代码抄袭类型检测方法与系统
US10162610B2 (en) Method and apparatus for migration of application source code
Ben Abdessalem Karaa et al. Automatic builder of class diagram (ABCD): an application of UML generation from functional requirements
Sherif et al. Semantic quran
US9684709B2 (en) Building features and indexing for knowledge-based matching
CN101493820A (zh) 一种药监行业知识库的平台及其构建方法
CN102298638A (zh) 使用网页标签聚类提取新闻网页内容的方法和系统
CN101458692A (zh) 一种战略物资行业知识库的平台及其构建方法
CN102053958A (zh) 上下文准确匹配
Nesi et al. Geographical localization of web domains and organization addresses recognition by employing natural language processing, Pattern Matching and clustering
CN103593335A (zh) 基于本体一致性验证推理的中文语义校对方法
Afreen et al. SBVR2UML: A challenging transformation
Ren et al. Making smart contract development more secure and easier
US10706030B2 (en) Utilizing artificial intelligence to integrate data from multiple diverse sources into a data structure
KR101877828B1 (ko) 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템
CN103914379A (zh) 故障自动注入与故障检测的方法及其系统
CN108766507A (zh) 一种基于CQL与标准信息模型openEHR的临床质量指标计算方法
Zahid et al. Evolution in software architecture recovery techniques—A survey
Zhou et al. Effective approaches to combining lexical and syntactical information for code summarization
CN109408592B (zh) 一种决策型分布式数据库系统中ai的特征工程知识库及其实现方法
Martinez Two datasets of questions and answers for studying the development of cross-platform mobile applications using Xamarin framework
Katz et al. Data system design alters meaning in ecological data: salmon habitat restoration across the US Pacific Northwest
Moura et al. Integration of linked data sources for gazetteer expansion

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

Granted publication date: 20160120

Termination date: 20161108

CF01 Termination of patent right due to non-payment of annual fee