트랜잭션의 시점, 크기 및 개발자의 숙련도를 고려한 논리적커플링 측정기법

A Logical Coupling Measurement Method Based on Transaction Time, Size and Expertise of Developer

  • 심빈구 (서강대학교 컴퓨터공학과) ;
  • 김진태 (서강대학교 컴퓨터공학과) ;
  • 박수용 (서강대학교 컴퓨터공학과)
  • 발행 : 2009.11.15

초록

소프트웨어의 수명이 길어짐에 따라, 소프트웨어 유지보수비용을 줄이기 위한 기법에 대한 연구의 중요도가 높아지고 있다. 소프트웨어 엔티티들간의 커플링(Coupling)정보는 소스코드 분석 및 리팩토링등의 소프트웨어 유지보수에 활동에서 의사결정시 정량적인 근거자료로 유용하게 사용되고 있다. 논리적 커플링(Logical Coupling)은 소프트웨어가 진화하는 과정에서 관측된 엔티티들간의 관계성 정도를 나타낸다. 논리적커플링이 처음 소개된 이후로, 커플링의 단위를 상세화 하는 연구가 발표됨으로써, 큰 단위의 엔티티간 논리적커플링으로는 설명할 수 없는 소프트웨어의 특성들이 설명되었다. 하지만, 기존 연구는 프로젝트 구성원들의 성향 및 프로젝트의 특성을 고려하지 못 하였다. 본 연구는 버전관리시스템의 변경기록에 담겨있는 프로젝트 구성원들의 성향과 프로젝트 자체의 특징을 고려한 다중관점 기반의 논리적커플링 측정기법을 제안하고, 오픈소스프로젝트를 통해 제안하는 기법을 검증하였다.

The priority of software maintenance researches has been increasing, since the lengths of software lifecycle are more increasing. Measuring couplings among software entities provides a good quantitative source for analyzing source code and point out candidate refactoring positions. Logical-coupling measures how strongly two software entities are related with each other from the evolutionary point of view. The researches on logical-coupling have been focusing on improving the correctness and explaining more aspects that are hiding by measuring logical-coupling among finer-grained entities. However, existing researches on logical-coupling fails to consider characteristics of developers and projects reflected in transactions. The research proposes a logical-coupling measurement method based on transaction time, size and expertise of developer to improve the correctness by considering characteristics of developers and projects reflected in transactions. The method has been validated by applying it to three open-source projects.

키워드

참고문헌

  1. L. C. Briand, J. W. Daly, and J. K. Wust, 'A Unified Framework for Coupling Measurement in Object-Oriented Systems,' IEEE Transactions on Software Engineering, 25(1), pp.91-121, 1999 https://doi.org/10.1109/32.748920
  2. Harald Gall, Karin Hajek, Mehdi Jazayeri, 'Detection of Logical Coupling Based on Product Release History,' International Conference on Software Maintenance 1998, pp.190-197, 1998 https://doi.org/10.1109/ICSM.1998.738508
  3. Erik Arisholm, Lionel C. Briand, Audun Foyen, 'Dynamic Coupling Measurement for Object-Oriented Software,' IEEE Transaction on Software Engineering, 30(8), pp.491-506, 2004 https://doi.org/10.1109/TSE.2004.41
  4. Denys Poshyvanyk, Andrian Marcus, 'The Conceptual Coupling Metrics for Object-Oriented Systems,' International Conference on Software Maintenance 2006, pp.469-478, 2006 https://doi.org/10.1109/ICSM.2006.67
  5. Jennifer Bevan, E. James Whitehead, Jr., 'Identification of Software Instabilities,' Working Conference on Reverse Engineering 2003, pp.134-145, 2003 https://doi.org/10.1109/WCRE.2003.1287244
  6. Thomas Zimmermann, Stephan Diehl, Andreas Zeller, 'How history justifies system architecture (or Not),' International Workshop on Principles of Software Evolution 2003, pp.73-83, 2003 https://doi.org/10.1109/IWPSE.2003.1231213
  7. Ian Sommerville, 'Software Engineering 8th Edition,' Addison Wesley, 2007
  8. W. Stevens, G. Myers, and L. Constantine, 'Structured Design,' IBM Systems J., 13(2), pp.115-139, 1974 https://doi.org/10.1147/sj.132.0115
  9. Marco D'Ambros, Michele Lanza, 'Reverse Engineering with Logical Coupling,' 13th Working Conference on Reverse Engineering, pp.189-198, 2006 https://doi.org/10.1109/WCRE.2006.51
  10. Thomas Zimmermann, Peter Weißgerber, Stephan Diehl, Andreas Zeller, 'Mining Version Histories to Guide Software Changes,' IEEE Transactions on Software Engineering, 31(6), pp.429-445, 2005 https://doi.org/10.1109/TSE.2005.72
  11. Thomas Zimmermann, Sunghun Kim, Andreas Zeller, E. James Whitehead, Jr., 'Mining version archives for co-changed lines,' Mining Software Repositories 2006, pp.72-75, 2006
  12. http://azureus.sourceforge.net/
  13. http://www.jboss.org/
  14. http://www.pgsql.com/