DOI QR코드

DOI QR Code

EMPS : An Efficient Software Merging Technique for Preserving Semantics

EMPS : 의미를 보존하는 효율적인 소프트웨어 병합

  • 김지선 (국방과학연구소 기술원) ;
  • 윤청 (충남대학교 컴퓨터과학과)
  • Published : 2006.04.01

Abstract

Branching and merging have been being the outstanding methods for SCM in terms of supporting parallel developments. Since well-known commercial merging tools based on textual merging have not detecting semantics conflicts, they can cause semantic errors in the result of merging. Although a lot of researches for detecting semantic conflict and merging up to recently, these researches have been doing individually. Therefore, it is necessary for a research detecting semantic conflict on textual merging and solving it. In this paper, we propose a new method for merging which preserve semantics on textual merging. The method merging two revisions from a source program is as follows : 1) defining changing operations, which include Update, Delete, and Insert operation, per line on two revisions corresponding to the line in source program, 2) detecting textual conflicts and semantic conflict in terms of executional behaviors, 3) solving these conflicts before merging. So, the proposed method can be regarded as a hybrid method that combines a method of textual merging and a behavioral semantic merging.

분기 및 병합은 대규모 소프트웨어 개발에 있어 병렬개발을 지원할 수 있는 소프트웨어 형상관리의 대표적인 기법이다. 상업적인 용도로 쓰이는 기존의 소프트웨어 병합은 문자적 병합에만 의존하고 의미를 고려하지 않아 병합결과에서 의미적 오류를 발생시킬 수 있다. 현재까지 의미적 병합충돌 탐지 및 병합에 대한 연구가 이루어지고 있으나 의미적 병합충돌 및 병합에 대해서만 개별적으로 이루어지고 있으므로, 문자적 병합과정에서 의미적 충돌을 탐지하고 해결할 수 있는 기법에 대한 연구가 필요하다. 본 논문에서는 프로그램 원본에서 분기된 두개의 프로그램들을 병합하는데 있어서 그들 각각의 원본에 대한 각 라인별 수정, 삭제, 삽입 오퍼레이션들을 정의하여 병합과정에서 발생하는 문자적 충돌 및 실행행위에 관련된 의미적 충돌을 탐지하고 해결하여 병합하는 문자적 병합기법과 의미적 병합기법을 결합한 하이브리드 병합기법을 제시하였다.

Keywords

References

  1. D. E. Perry, H. P. Siy, and L. G. Votta, 'Parallel Changes in Large Scale Software Development : An Observational Case Study,' Proc. Int'l Conf. Software Eng., pp.251-260, 1998 https://doi.org/10.1109/ICSE.1998.671134
  2. D.E. Perry,H.P.Siy, and L.G. Votta, 'Parallel Changes in Large Int'l Conf. Software Eng.[ICSE '98], pp.251-260,1998 https://doi.org/10.1109/ICSE.1998.671134
  3. C. Walrad and D. Strom, 'The Importance of Branching Models in SCM,' IEEE 2002, pp.31-38, September, 2002 https://doi.org/10.1109/MC.2002.1033025
  4. 임신화, '효율적인 병렬 개발 지원을 위한 분기 및 병합 기법 연구' 충남대학교 석사학위논문,2004년 2월
  5. Tom Mens, 'A State-of-the-Art Survey on Software Merging,' IEEE Transactions, Vol.28, No.5, pp.449-461 May, 2002 https://doi.org/10.1109/TSE.2002.1000449
  6. D. Binkely, S. Horwitz, And T. Reps, 'Program Integration for Languages with Procedure Calls,' ACM Trans. Software Eng. and Methodology, Vol.4, No.1, pp.3-35, 1995 https://doi.org/10.1145/201055.201056
  7. J.E.Grass, 'Cdiff : A Syntax Directed Diff for C++ Programs,' Proc. The Advanced Computing Systems Professional and Technical Association [USENIX] Conf. C++, pp.181-193, 1992
  8. HOROWITZ S, PRINS J, and REPS R, 'Integrating Non-Interfering Versions of programs,' ACM Transactions on. Program Languages and System, Vol.11, No.3, pp. 345-387, July, 1989 https://doi.org/10.1145/65979.65980
  9. D.Jackson and D.A.Ladd, 'Semantic Diff: A Tool for Summarizing Effects of Modifications,' Int'l conf. Software Maintenance, 1994 https://doi.org/10.1109/ICSM.1994.336770
  10. P. Glezen, 'Branching With Eclipse and CVS', http://www.eclipse.org/
  11. J.P. Munson and P. Dewan, 'A Flexible Object Merging Framework,' proc. ACM Conf. Computer Supported Collabrative Work, pp.231-352, 1994 https://doi.org/10.1145/192844.193016