Extracting reusable services from legacy object-oriented systems

L. Bao, Chao Yin, Weigang He, Jun Ge, Ping Chen
{"title":"Extracting reusable services from legacy object-oriented systems","authors":"L. Bao, Chao Yin, Weigang He, Jun Ge, Ping Chen","doi":"10.1109/ICSM.2010.5609744","DOIUrl":null,"url":null,"abstract":"Migrating legacy object-oriented system functionalities to SOA environment is a important problem that frequently arises in many system maintenance and integration tasks. A service is often implemented by complex collaborations of many objects in an object-oriented system. Such complexity brings impedance mismatch between service and object. Moreover, the delocalized nature of object-oriented system, where the code associated with a service is distributed across many interrelated objects, make this problem even more challenging. This paper presents a four-staged approach that extracts services from legacy object-oriented systems with source code and documents. In the first stage source code of legacy system is loaded and preprocessed to form different modules according to the explicit dependencies among classes. While preprocessing, some aspect code is also embedded to intercept and log execution traces of system as well as to store states of involved objects. In the second stage, services, which represent system-level business functionalities, are modeled with use cases. Useful test cases are in turn generated from these use cases to identify services. In the third stage, the modularized and intercepted system is executed driven by generated test cases and the execution logs and object states are recorded. In the last stage, services are located and extracted by analyzing the execution logs and restoring the object states. The approach is supported by an integrated tool and the evaluation on five open-source systems yields encouraging result and demonstrates the practical applicability of the approach.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"448 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2010 IEEE International Conference on Software Maintenance","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSM.2010.5609744","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9

Abstract

Migrating legacy object-oriented system functionalities to SOA environment is a important problem that frequently arises in many system maintenance and integration tasks. A service is often implemented by complex collaborations of many objects in an object-oriented system. Such complexity brings impedance mismatch between service and object. Moreover, the delocalized nature of object-oriented system, where the code associated with a service is distributed across many interrelated objects, make this problem even more challenging. This paper presents a four-staged approach that extracts services from legacy object-oriented systems with source code and documents. In the first stage source code of legacy system is loaded and preprocessed to form different modules according to the explicit dependencies among classes. While preprocessing, some aspect code is also embedded to intercept and log execution traces of system as well as to store states of involved objects. In the second stage, services, which represent system-level business functionalities, are modeled with use cases. Useful test cases are in turn generated from these use cases to identify services. In the third stage, the modularized and intercepted system is executed driven by generated test cases and the execution logs and object states are recorded. In the last stage, services are located and extracted by analyzing the execution logs and restoring the object states. The approach is supported by an integrated tool and the evaluation on five open-source systems yields encouraging result and demonstrates the practical applicability of the approach.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
从遗留的面向对象系统中提取可重用服务
将遗留的面向对象系统功能迁移到SOA环境是许多系统维护和集成任务中经常出现的一个重要问题。服务通常通过面向对象系统中许多对象的复杂协作来实现。这种复杂性导致了服务和对象之间的阻抗不匹配。此外,面向对象系统的非局部化特性(与服务关联的代码分布在许多相互关联的对象中)使这个问题更具挑战性。本文提出了一种四阶段的方法,从具有源代码和文档的遗留面向对象系统中提取服务。第一阶段根据类之间的显式依赖关系加载和预处理遗留系统的源代码,形成不同的模块。在预处理过程中,还嵌入了一些方面代码来拦截和记录系统的执行轨迹,以及存储所涉及对象的状态。在第二阶段,用用例对表示系统级业务功能的服务进行建模。有用的测试用例依次从这些用例中生成,以识别服务。在第三阶段,由生成的测试用例驱动执行模块化和拦截的系统,并记录执行日志和对象状态。在最后一个阶段,通过分析执行日志和恢复对象状态来定位和提取服务。该方法得到了一个集成工具的支持,对五个开源系统的评估取得了令人鼓舞的结果,并证明了该方法的实际适用性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Conversion of fast inter-procedural static analysis to model checking Using Relational Topic Models to capture coupling among classes in object-oriented software systems Theil index for aggregation of software metrics values An approach to improving software inspections performance Automatically repairing test cases for evolving method declarations
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1