Object-Oriented based Refactoring Process

객체지향 기반의 Refactoring 프로세스

  • Lee, Jong-Ho (Department of Computer Science, Soong Sil University) ;
  • Park, Jin-Ho (Department of Computer Science, Soong Sil University) ;
  • Rhew, Sung-Yul (Dept.of Computer, Soongsil University)
  • 이종호 (숭실대학교 전자계산학과) ;
  • 박진호 (숭실대학교 전자계산학과) ;
  • 류성열 (숭실대학교 컴퓨터학부)
  • Published : 2001.08.01

Abstract

The company invests its time and money for temporary maintenance to satisfy the fast change of the computer use environment and the user's demands. Therefore, various problems occur including low performance because of duplication of codes and unstable structures from the restructuring and redevelopment. Furthermore, if a developer, who did not participate in initial process of development, wrote additional program codes to upgrade or restructure, it would cause many problems such as lack or lose of development documentation, understanding of documentation and reuse of existing program language. This study, Object-oriented Refactoring Process, suggests that the developers can reuse object unit to overcome the limit of the reusing code. In addition, this paper shows case study to verify our process by adjusting the project called "D2D", which is a case tool for developing windows system from Company D. Our works get positive results such as improvement of system pelfonnance, decreased cost of development and maintenance and optimizing structure and class.

기업에서는 급속한 컴퓨터 환경 변화 및 사용자 요구 증가 등의 요구들에 대응하기 위하여 많은 시간과 비용을 들여 기 개발되어 운영중인 시스템을 유지보수 한다. 하지만 대부분 임시적인 이러한 작업들은 많은 코드의 중복과 최적화 되지 않은 시스템 구조를 산출하여 결국에는 전체적인 성능 저하를 가져오는 등의 문제를 발생시키게 된다. 또한 초기 개발 후 다른 개발자에 의해 작성된 코드는 개발관련 문서의 분실 및 부족, 기존 시스템 개발자의 부재 등의 문제로 코드의 이해와 재사용의 어려움 등의 한계점을 갖게 되었다. 이번 연구는 이러한 코드 재사용의 한계를 극복하기 위하여 객체단위를 재사용 할 수 잇는 객체지향 기반의 Refactoring 프로세스를 제시하고, 이를 D사에서 개발한 윈도우 시스템 개발 도구인 D2D에 적용한다. 또한 이의 과정에서 얻어진 시스템 성능 향상과 개발 및 유지보수 비용의 감소, 구조와 클래스들의 최적화 등의 실제적인 효과 증대 사례를 보인다.

Keywords

References

  1. 권오천, 신규상, 역공학 및 재공학의 기술동향, 한국정보과학회, 소프트웨어공학회지, pp.6-21, 1999년 3월호
  2. Ivar Jacobson, Martin Griss, Patrik Jonsson, Software Reuse, Addison-Wesley, 1997
  3. 최순규, 이명재, 우치수, 3R (역공학, 재공학, 재사용), 한국정보과학회, 소프트웨어공학회지, pp.16-34, 1995년 3월호
  4. Martin Fowler, UML Distilled, Addison-Wesley, 1999
  5. Martin Fowler, Refactoring-Improving the Design of Existing Code, Addison Wesley Longman Inc., 1999
  6. Bruce Eckel, Thinking in Patterns with JAVA, Revision 0.3, 2000
  7. Roger S. Pressman, Software Engineering A Practitioner's Approach, 4th Edition, McGraw-Hill, 1997
  8. Scott Tilley, A Reverse-Engineering Environment Framework', Carnegie Mellon Software Engineering Institute,, April 1998
  9. Nicolas Anquetil and Timothy Lethbridge, Extraction Concepts from File Names; a New File Clustering Criterion
  10. Serge Demeyer, Stephane Ducassse, Object-Oriented Reengineering, OOPSLA, 1999
  11. Martin Fowler, Refactoring: Improving the Design of Existing Code, OOPSLA, 1999
  12. 박진호, 김수동, 류성열, UML 다이어그램들 간의 일관상 검증방법, 한국정보과학회, 춘계학술발표논문집, 1998
  13. 박진호, 이종호, 류성열, 소프트웨어 유지보수와 재사용을 위한 재공학 Refactoring 기법 연구, 한국정보과학회, 춘계학술발표논문집, 2000