$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

역공학을 이용한 자바 소스 코드의 변화량 분석 및 시각화 도구 개발
Development of Analysis and Visualization Tool for Java Source Code Changes using Reverse Engineering Technique 원문보기

정보처리학회논문지. The KIPS transactions. Part D. Part D, v.19D no.1, 2012년, pp.39 - 48  

권진욱 (LG전자 P1실 프레임워크) ,  최윤자 (경북대학교 IT대학 컴퓨터학부) ,  이우진 (경북대학교 IT대학 컴퓨터학부)

초록
AI-Helper 아이콘AI-Helper

소프트웨어 시스템을 효율적으로 유지보수 및 관리하기 위해서는 변경 전후의 시스템의 변경사항을 쉽게 파악할 수 있도록 시각적으로 표현해주는 것이 중요하다. 소프트웨어 변경사항 분석에 대한 연구는 많이 진행되어 왔으나 변경 유형뿐만 아니라 변경 정도를 정량화하고 이를 시각화하여 나타내려는 연구는 많지 않다. 이 연구에서는 자바로 구현된 시스템에 대해 클래스 다이어그램에서의 변경사항 분석 및 정량화 방법과 이를 시각적으로 나타내는 방법에 대해 제시한다. 먼저 소스 코드의 구조적인 변화를 검사하기 위해, 역공학을 이용하여 클래스 다이어그램을 추출한다. 그리고 클래스 다이어그램 정보를 이용하여 변경 유형 및 변경량을 정량화한 다음, 색상 스펙트럼을 이용하여 클래스 다이어그램에 변경량을 시각적으로 나타낸다. 이러한 시각화 기법을 이용하면, 유지보수 관리자가 쉽게 변경된 부분을 파악할 수 있어 유지보수에 소요되는 시간과 노력을 조금이라도 줄일 수 있다.

Abstract AI-Helper 아이콘AI-Helper

In order to quickly understand which changes of source codes have been made and to perform effective maintenance of a system, it is important to visualize the changed parts. Although there are many works for analyzing software changes, there are few works for visualizing both of the change types and...

주제어

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 앞 절에서 설명한 GMF로 생성한 클래스다이어그램을 이용하여 두 버전의 모델 간 변경분석 내용을 시각화하기 위해 시각화 규칙을 정의한다. 다이어그램 편집기에 나타날수 있는 클래스 노드 자체와 그 안에 포함된 속성, 메소드 그리고 클래스 간의 연관관계로 나타날 수 있는 상속관계, 연관관계, 집합연관, 의존성에 대해서 추가/삭제/변경에 따른 구분을 색깔을 다르게 입힘으로써 표현하고자 한다. 표현방법은 아래와 같다.
  • 본 논문에서는 소프트웨어의 유지보수 측면에서 발생하는 구조적인 변화를 쉽게 파악할 수 있도록 하기 위하여 클래스 다이어그램 상에서 변경량을 시각화하는 방법을 제안하였다. 두 버전간의 변경부분을 모델로 변환하고 분석 알고리즘을 통해 변화량을 정량화했으며 클래스 다이어그램을통해 시각화해 줌으로써 구조적인 변화를 한눈에 파악할 수 있도록 하였다.
  • 하지만 이 연구에서는 단순히 추가, 삭제, 변경의 변경유형 정보만을 나타내며 변경이 되었을 경우에는 변수 이름의 변경과 같은 단순 변경인지, 제어 구조의 변경과 같은 심화 변경인지 등의 변경 정도에 대한 정보를 나타내지 못하는 단점이 있다. 본 연구에서는 변경 유형뿐만 아니라 변경 정도인 변화량을 분석하여 사용자가 쉽게 변경사항 및 정도를 파악할 수 있도록 시각화하는 것을 목표로 한다.
  • 이 논문에서는 소프트웨어의 유지보수 입장에서 변경 전후의 프로그램의 변화 모습을 시각화 기법을 통해 표현함으로써 시스템이 구조적으로 어떻게 바뀌었는지 어떤 영향을 미치는지를 한눈에 파악할 수 있도록 새로운 모델을 제시하 고자 한다. 먼저 변경된 소스코드를 역공학을 이용하여 클래스 다이어그램으로 표현하고 시각화함으로써 좀 더 직관적이고 구조적인 관점에서 프로그램을 바라볼 수 있는 방법을 제시한다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
소프트웨어 시스템을 효율적으로 유지보수 및 관리하기 위해 무엇이 중요한가? 소프트웨어 시스템을 효율적으로 유지보수 및 관리하기 위해서는 변경 전후의 시스템의 변경사항을 쉽게 파악할 수 있도록 시각적으로 표현해주는 것이 중요하다. 소프트웨어 변경사항 분석에 대한 연구는 많이 진행되어 왔으나 변경 유형뿐만 아니라 변경 정도를 정량화하고 이를 시각화하여 나타내려는 연구는 많지 않다.
본 연구에서 소스 코드의 구조적인 변화를 검사하기 위해 무엇을 하는가? 이 연구에서는 자바로 구현된 시스템에 대해 클래스 다이어그램에서의 변경사항 분석 및 정량화 방법과 이를 시각적으로 나타내는 방법에 대해 제시한다. 먼저 소스 코드의 구조적인 변화를 검사하기 위해, 역공학을 이용하여 클래스 다이어그램을 추출한다. 그리고 클래스 다이어그램 정보를 이용하여 변경 유형 및 변경량을 정량화한 다음, 색상 스펙트럼을 이용하여 클래스 다이어그램에 변경량을 시각적으로 나타낸다.
유지보수 관리자가 쉽게 변경된 부분을 파악할 수 있도록 도와주는 시각화 기법을 본 연구에서 어떻게 표현하였는가? 이 연구에서는 자바로 구현된 시스템에 대해 클래스 다이어그램에서의 변경사항 분석 및 정량화 방법과 이를 시각적으로 나타내는 방법에 대해 제시한다. 먼저 소스 코드의 구조적인 변화를 검사하기 위해, 역공학을 이용하여 클래스 다이어그램을 추출한다. 그리고 클래스 다이어그램 정보를 이용하여 변경 유형 및 변경량을 정량화한 다음, 색상 스펙트럼을 이용하여 클래스 다이어그램에 변경량을 시각적으로 나타낸다. 이러한 시각화 기법을 이용하면, 유지보수 관리자가 쉽게 변경된 부분을 파악할 수 있어 유지보수에 소요되는 시간과 노력을 조금이라도 줄일 수 있다.
질의응답 정보가 도움이 되었나요?

참고문헌 (14)

  1. Ian Sommerville, Software Engineering, 9th Edition, Pearson, 2011. 

  2. Beat Fluri, Michael Wursch, Martin Pinzger, Harald C. Gall, "Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction," IEEE Transactions on Software Engineering, Vol.33, No.11, Nov., 2007 

  3. Masatomo Hashumoto, Akira Mori, "Diff/TS: A Tool for Fine-Grained Structural Change Analysis," Proceedings of the 15th Working Conference on Reverse Engineering, 2008. 

  4. Jonathan I. Maletic, Michael L. Collard, "Supporting Source Code Difference Analysis," Proceedings of the 20th IEEE International Conference on Software Maintenance, 2004. 

  5. Jingwei Wu, Claus W. Spitzer, Ahmed E. Hassan, and Richard C. Holt, "Evolution Spectrographs: Visualizing Punctuated Change in Software Evolution," Proceedings of the 7th International Workshop on Principles of Software Evolution, 2004. 

  6. Dirk Beyer, Ahmed E. Hassan, "Animated Visualization of Software History using Evolution Storyboards," Proceedings of the 13th Working Conference on Reverse Engineering, 2006. 

  7. Tom Arbuckle, "Visually Summarising Software Change," Proceedings of the 12th International Conference on Information Visualization, 2008. 

  8. Daniel M German, Gregorio Robles, and Ahmed E. Hassan, "Change Impact Graphs: Determining the Impact of Prior Code Changes," Proceedings on 8th IEEE International Working Conference on Source Code Analysis and Manipulation, 2008. 

  9. Jochen Seemann, Jurgen Wolff von Gudenberg, "Visualization of Differences between Versions of Object-Oriented Software," Proceedings of the Second Euromicro Conference on Software Maintenace and Reengineering, 1998. 

  10. V. I .Levenshtein, "Binary codes capable of correcting deletions, insertions and reversals," Soviet Physics-Doklady, Vol.SE-10, No.8, pp.707-710, February, 1966. 

  11. Eclipse, Graphical Modeling Framework(GMF), http://www. eclipse.org/modeling/gmf/ 

  12. Eclipse, Eclipse Modeling Framework(EMF), http://www.eclipse.org/modeling/emf/ 

  13. Eclipse, Graphical Editing Framework(GEF), http://www. eclipse.org/gef/ 

  14. 박인수, 이정선, 조성래, 정우영, 이우진, "AUTOSAR 기반 차량용 소프트웨어 컴포넌트 모델링 도구", 정보처리학회논문지A, 제17-A권, 제4호, pp. 203-212, 2010년 8월. 

저자의 다른 논문 :

LOADING...

관련 콘텐츠

오픈액세스(OA) 유형

BRONZE

출판사/학술단체 등이 한시적으로 특별한 프로모션 또는 일정기간 경과 후 접근을 허용하여, 출판사/학술단체 등의 사이트에서 이용 가능한 논문

이 논문과 함께 이용한 콘텐츠

저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로