CN102955697A - 基于面向方面的构件库构建方法 - Google Patents
基于面向方面的构件库构建方法 Download PDFInfo
- 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
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所述的基于面向方面的构件库构建方法,其特征在于:在方面规则下对源代码信息编织后得到方面构建库,其中面向方面的构件包括代码和接口描述信息,其中每个构件的接口描述包括:构件编号、所属方面、接口名称、服务的功能描述、输入参数、输出参数、返回值、构件提供者、版本号、关键字。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101017432A (zh) * | 2006-12-06 | 2007-08-15 | 武汉大学 | 一种构件库管理方法 |
CN101226471A (zh) * | 2007-11-09 | 2008-07-23 | 中科软科技股份有限公司 | 一种基于构件的领域基础业务平台及其构建方法 |
-
2012
- 2012-11-08 CN CN201210443133.7A patent/CN102955697B/zh not_active Expired - Fee Related
Patent Citations (2)
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)
Title |
---|
朱春国等: "一种面向方面软件体系结构模型", 《计算机应用研究》, vol. 27, no. 9, 30 September 2010 (2010-09-30) * |
Cited By (17)
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) | 基于面向方面的构件库构建方法 | |
US10360307B2 (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 | |
US10706030B2 (en) | Utilizing artificial intelligence to integrate data from multiple diverse sources into a data structure | |
CN101493820A (zh) | 一种药监行业知识库的平台及其构建方法 | |
CN101458692A (zh) | 一种战略物资行业知识库的平台及其构建方法 | |
CN102053958A (zh) | 上下文准确匹配 | |
CN101208660A (zh) | 代码转换 | |
CN103593335A (zh) | 基于本体一致性验证推理的中文语义校对方法 | |
Afreen et al. | SBVR2UML: A challenging transformation | |
KR101877828B1 (ko) | 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템 | |
CN103914379A (zh) | 故障自动注入与故障检测的方法及其*** | |
CN108170661B (zh) | 一种规则文本的管理方法及*** | |
CN108766507A (zh) | 一种基于CQL与标准信息模型openEHR的临床质量指标计算方法 | |
Zahid et al. | Evolution in software architecture recovery techniques—A survey | |
CN104573053A (zh) | 一种基于xml的配置项模板动态定制方法 | |
CN109408592B (zh) | 一种决策型分布式数据库***中ai的特征工程知识库及其实现方法 | |
Martinez | Two datasets of questions and answers for studying the development of cross-platform mobile applications using Xamarin framework | |
CN113687827B (zh) | 基于微件的数据列表生成方法、装置、设备及存储介质 | |
Katz et al. | Data system design alters meaning in ecological data: Salmon habitat restoration across the US Pacific Northwest | |
CN110727428B (zh) | 一种转换业务逻辑层代码的方法、装置和电子设备 |
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 |