DOI QR코드

DOI QR Code

Method and Application of Searching Hot Spot For Reengineering Software Using AOP

AOP를 이용한 재공학에서의 핫 스팟 탐색과 응용

  • 이의성 (동국대학교 컴퓨터공학) ;
  • 최은만 (동국대학교 IT학부 컴퓨터공학)
  • Published : 2009.02.28

Abstract

Complicated business logic makes program complexity more complicated. It's inevitable that the program must undergo reengineering processes all the way of in its lifetime. Hot spot analysis that has diverse purposes is getting an important question more and more. As a rule, reengineering process is done by UML model-based approach to analyze the legacy system. The smallest fragment of targets to be analysed is unit, that is function or class. Today's software development is to deal with huge change of software product and huge class including heavy quantity of LOC(Lines Of Code). However, analysis of unit is not precise approach process for reliable reengineering consequence. In this paper, we propose very precise hot spot analysis approach using Aspect-Oriented Programming languages, such as AspectJ. Typically the consistency between UML and source is needed code to redefine the modified library or framework boundaries. But reengineering approach using AOP doesn't need to analyze UML and source code. This approach makes dynamic event log data that contains detailed program interaction information. This dynamic event log data makes it possible to analyze hot spot.

현실 세계의 복잡한 비즈니스 로직들이 프로그램 내부에 투영되면서 시스템의 복잡도는 갈수록 높아지고 있다. 이러한 높은 복잡도를 가지는 프로그램도 그 생명주기 동안 재공학을 거쳐야 하는 것은 필연적일 것이다. 다양한 목적으로 가해지는 재공학 작업에서 그 작업의 대상이 되는 핫 스팟 예측은 매우 중요하다. 일반적으로 레거시 시스템의 재공학 작업은 UML과 코드 분석을 기반으로 예측한다. 또한 그 예측 단위는 클래스 혹은 유닛(함수) 단위가 된다. 그러나 함수 내부의 코드의 량이 갈수록 커져가고 있고 더 미세한 핫 스팟을 찾기 위하여 클래스 단위의 탐색보다 더 미세한 부분의 탐색이 필요하다. 본 논문에서는 AOP를 이용한 문장 단위의 핫 스팟 검출 기법을 제안한다. 기존의 기법에서 요구하던 핫 스팟 검출을 위한 UML과 코드 분석, 또한 이 둘 사이의 일치성과 관계없이 동적으로 AOP를 이용하여 레거시 시스템의 실행 정보를 기록하는 동적 이벤트 로그 데이터를 생성한다. 이를 바탕으로 핫 스팟을 예측하고 슬라이싱하는 방법을 제안하였다.

Keywords

References

  1. Isabel Michiels, “Using AOP Techniques for Dealing with Legacy Systems,” PROG, Vrije Universiteit Brussel (VUB), Belgium
  2. L.C. Briand, Y.Labiche, L.O'Sullivan, “Impact Analysis and Change Management of UML Models,” Proceedings of International Conference on Software Maintenance, pp. 256-265, 2003
  3. “AspectJ - an aspect-oriented extention to the Java programming language” http://www.eclipse.org/aspecj/
  4. Xiangyu Zhang, “Dynamic Slicing Long Running Programs through Execution Fast Forwarding,” SIGSoft 06/FSE-14, November 5-11,2006 https://doi.org/10.1145/1181775.1181786
  5. “Memoranda - open source cross-platform diary manager and a tool for scheduling personal projects,” http://memoranda.sourceforge.net/
  6. M. M. Lehman and L.Belady. Program Evolution - Processes of Software Change, London Academic Press, 1985
  7. Ot´avio Augusto Lazzarini Lemos, Cristina Videira Lopes, “Testing Aspect-Oriented Programming Pointcut Descriptors,” Proceedings of the 2nd Workshop on Testing Aspect- Oriented Programs, pp.33-38, 2006 https://doi.org/10.1145/1146374.1146380
  8. Jianjun Zhao, “Data-Flow-Based Unit Testing of Aspect-Oriented Programs,” Proceedings of the 27th Annual International Computer Software and Applications Conference, pp.188-197, 2003
  9. J. S. Bekken, Roger T. Alexander. “A Candidate Fault Model for AspectJ Pointcuts,” Proceedings o 17th International Symposium on Software Reliability Engineering (ISSRE'06), pp.169-178, 2006 https://doi.org/10.1109/ISSRE.2006.6
  10. Lionel, C. Briand, Yvan Labiche, Johanne Leduc, “Tracing Distributed Systems Executions Using AspectJ,” Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM'05), pp.81-90, 2005 https://doi.org/10.1109/ICSM.2005.96
  11. John Stamey, Jr.Bryan Saunders, “Unit Testing and Debugging with Aspects,” The Journal of Computing Sciences in Colleges, pp.47-55, 2005
  12. L. C. Briand, Y. Labiche, L. O'Sullivan, “Impact Analysis and Change Management of UML Models,” Proceedings of the International Conference on Software Maintenance (ICSM'03), pp.256-265, Sept., 2003 https://doi.org/10.1109/ICSM.2003.1235428
  13. F. Fioravanti, G. Migliarese, P. Nesi, “Reengineering Analysis of Object-Oriented System via Duplication Analysis,” Proceedings of the 23rd International Conference on Software Engineering, pp.577-586, 2001 https://doi.org/10.1109/ICSE.2001.919132
  14. Hassine, J.; Rilling, J.; Hewitt, J.; Dssouli, R., “Change Impact Analysis for Requirement Evolution using Use Case Maps,” Principles of Software Evolution Eighth International Workshop, pp.81-90, 2005 https://doi.org/10.1109/IWPSE.2005.8
  15. Kollmann, R.; Gogolla, M, “Capturing dynamic program behaviour with UML collaboration diagrams,” Fifth European Conference on Software Maintenance and Reengineering, pp.58-67, 2001 https://doi.org/10.1109/.2001.914969
  16. Ye Wu, Offutt, J, “Maintaining evolving component-based software with UML,” Proceedings of Seventh European Conference on Software Maintenance and Reengineering, pp.133-142, 2003 https://doi.org/10.1109/CSMR.2003.1192420
  17. Dave Thomas, Andy Hunt, “Mock Objects,” IEEE Software, Volume 19, Issue 3, May-June, pp.22-24, 2002 https://doi.org/10.1109/MS.2002.1003449
  18. Gerard Meszaros, xUNIT TEST PATTERNS :REFACTORING TEST CODE, Addison-Wesley, 2007
  19. James R. Cody, Kevin A. Schneider, Thomas R. Dean, Andrew J. Malton, “HSML: design directed source code hot spots,” Proceedings of 9th International Workshop on Program Comprehension, pp.145-154, 2001 https://doi.org/10.1109/WPC.2001.921726
  20. Xiangyu Zhang, Gupta R, Youtao Zhang, “Precise dynamic slicing algorithms”, Proceedings of 25th International Conference on Software Engineering, pp.319-329, 2003
  21. Xiangyu Zhang, Haifeng He, Neelam Gupta, Rajiv Gupta, “Experimental evaluation of using dynamic slices for fault location,” Proceedings of the sixth International Symposium on Automated Analysis-driven Debugging, pp.33-42, 2005 https://doi.org/10.1145/1085130.1085135
  22. Cordy J.R, Schneider K.A, Dean T.R, Malton A.J, “HSML Design Directed source code Hot Spots,” IWPC 2001. Proceedings of 9th International Workshop on Program Comprehension, pp.145-154, 2001 https://doi.org/10.1109/WPC.2001.921726
  23. Tao Xie, Jianjun Zhao, Darko Marinov, David Notkin, “Detecting Redundant Unit for AspecJ Programs,” 17th International Symposium on Software Reliability Engineering, pp.179-190, Nov., 2006 https://doi.org/10.1109/ISSRE.2006.21