AOP를 이용한 재공학에서의 핫 스팟 탐색과 응용
Method and Application of Searching Hot Spot For Reengineering Software Using AOP
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
현실 세계의 복잡한 비즈니스 로직들이 프로그램 내부에 투영되면서 시스템의 복잡도는 갈수록 높아지고 있다. 이러한 높은 복잡도를 가지는 프로그램도 그 생명주기 동안 재공학을 거쳐야 하는 것은 필연적일 것이다. 다양한 목적으로 가해지는 재공학 작업에서 그 작업의 대상이 되는 핫 스팟 예측은 매우 중요하다. 일반적으로 레거시 시스템의 재공학 작업은 UML과 코드 분석을 기반으로 예측한다. 또한 그 예측 단위는 클래스 혹은 유닛(함수) 단위가 된다. 그러나 함수 내부의 코드의 량이 갈수록 커져가고 있고 더 미세한 핫 스팟을 찾기 위하여 클래스 단위의 탐색보다 더 미세한 부분의 탐색이 필요하다. 본 논문에서는 AOP를 이용한 문장 단위의 핫 스팟 검출 기법을 제안한다. 기존의 기법에서 요구하던 핫 스팟 검출을 위한 UML과 코드 분석, 또한 이 둘 사이의 일치성과 관계없이 동적으로 AOP를 이용하여 레거시 시스템의 실행 정보를 기록하는 동적 이벤트 로그 데이터를 생성한다. 이를 바탕으로 핫 스팟을 예측하고 슬라이싱하는 방법을 제안하였다.
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.
참고문헌 (23)
- Isabel Michiels, "Using AOP Techniques for Dealing with Legacy Systems", PROG, Vrije Universiteit Brussel
- L.C. Briand, "Impact Analysis and Change Management of UML Models", Proceedings of International Conference on Software Maintenance, pp.256~265 (2003)
- "AspectJ - an aspect-oriented extention to the Java programming language"[URL]
- Dynamic Slicing Long Running Programs through Execution Fast Forwarding, "Xiangyu Zhang", ~, pp.SIGSoft 06 (2006), FSE-14
- "Memoranda - open source cross-platform diary manager and a tool for scheduling personal projects"[URL]
- M. M. Lehman, "Program Evolution - Processes of Software Change" (1985), London Academic Press
- Ot´avio Augusto Lazzarini Lemos, "Testing Aspect-Oriented Programming Pointcut Descriptors", Proceedings of the 2nd Workshop on Testing Aspect-Oriented Programs, pp.33~38 (2006)
- 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)
- J. S. Bekken, "A Candidate Fault Model for AspectJ Pointcuts", Proceedings o 17th International Symposium on Software Reliability Engineering (ISSRE’06), pp.169~178 (2006)
- Lionel, C. Briand, "Tracing Distributed Systems Executions Using AspectJ", Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM’05), pp.81~90 (2005)
- John Stamey, "Unit Testing and Debugging with Aspects", The Journal of Computing Sciences in Colleges, pp.47~55 (2005)
- L. C. Briand, "Impact Analysis and Change Management of UML Models", Proceedings of the International Conference on Software Maintenance (ICSM’03), pp.256~265 (2003)
- F. Fioravanti, "Reengineering Analysis of Object-Oriented System via Duplication Analysis", Proceedings of the 23rd International Conference on Software Engineering, pp.577~586 (2001)
- Hassine, J, "Change Impact Analysis for Requirement Evolution using Use Case Maps", Principles of Software Evolution Eighth International Workshop, pp.81~90 (2005)
- Kollmann, R, "Capturing dynamic program behaviour with UML collaboration diagrams", Fifth European Conference on Software Maintenance and Reengineering, pp.58~67 (2001)
- Ye Wu, "Maintaining evolving component-based software with UML", Proceedings of Seventh European Conference on Software Maintenance and Reengineering, pp.133~142 (2003)
- Dave Thomas, "Mock Objects", IEEE Software, 19(3), pp.22~24 (2002)
- Gerard Meszaros, "xUNIT TEST PATTERNS :REFACTORING TEST CODE" (2007), Addison-Wesley
- James R. Cody, "HSML: design directed source code hot spots", Proceedings of 9th International Workshop on Program Comprehension, pp.145~154 (2001)
- Xiangyu Zhang, "Precise dynamic slicing algorithms", Proceedings of 25th International Conference on Software Engineering, pp.319~329 (2003)
- Xiangyu Zhang, "Experimental evaluation of using dynamic slices for fault location", Proceedings of the sixth International Symposium on Automated Analysis-driven Debugging, pp.33~42 (2005)
- Cordy J.R, "HSML Design Directed source code Hot Spots", IWPC 2001. Proceedings of 9th International Workshop on Program Comprehension, pp.145~154 (2001)
- Tao Xie, "Detecting Redundant Unit for AspecJ Programs", 17th International Symposium on Software Reliability Engineering, pp.179~190 (2006)
