임베디드 소프트웨어의 에너지 효율성과 언어 변환 지원을 위한 코드 리팩토링 기법 확장
Extension of Code Refactoring Technique to Support Energy Efficiency and Language Conversion of Embedded Software
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
리팩토링은 기존 레거시 코드에 대한 품질을 확보하기 위한 공학적 기술로서, 프로그램의 기능은 변하지 않으면서 내부 구조를 개선하는 작업이다. 다양한 오픈 소스 소프트웨어가 재사용되면서, 기술적 이유 또는 시장 요구로 인하여 프로그래밍 언어 변환을 통한 소스 코드 재사용이 점진적으로 요구되고 있다. 이러한 상황에서 에너지 효율성을 고려하는 언어 변환 리팩토링 기법은 임베디드 소프트웨어 개발의 생산성은 물론 품질 향상을 위한 중요한 수단으로 여겨지고 있다. 본 논문에서는 기존에 제시된 에너지 절감형 리팩토링 기법에 추가하여 프로그래밍 언어의 문법 및 구조의 비교와 매핑을 통해 다른 언어로 변환하는 코드 리팩토링 기법을 제시하였다. 제안하는 리팩토링 기법의 활용은 소프트웨어 개발 언어의 환경 변화에 대처하고, 기존 코드의 재사용을 높임으로써 신속한 소프트웨어 개발 및 품질 향상을 통한 제품의 경쟁력 향상을 기대할 수 있다.
Abstract
Refactoring is an engineering technique for securing the quality of existing legacy code, improving the internal structure without changing the functionality of the software. Along with the reuse of open source software, reuse of source code through programming language conversion is increasingly required due to technical or market requirements. In this situation, the refactoring technique including language conversion as well as energy efficiency is considered to be an important means for improving the productivity and the quality of embedded software development. This paper proposes a code refactoring technique that converts the grammar and structure of a programming language into those of a different language through comparison and mapping, in addition to the existing energy efficient refactoring technique. The use of the proposed refactoring technique can expect to improve the competitiveness of the product through rapid software development and quality improvement by coping with the environment change of the software development language and enhancing the reuse of the existing code.
참고문헌 (24)
- A. Deursen, "Research Issues in the Renovation of Legacy Systems", Proceedings of International Conference on Fundamental Approaches to Software Engineering, pp.1~21 (1999)
- A. Jatain, "Reengineering Techniques for Object Oriented Legacy Systems", International Journal of Software Engineering & Its Applications, 9(1), pp.35~52 (2015)[DOI]
- G. Nascimento, "A Method for Rewriting Legacy Systems using Business Process Management Technology", Proceedings of the 11th International Conference on Enterprise Information Systems, pp.1~6 (2009)
- P. Pirkelbauer, "Source Code Rejuvenation is not Refactoring", Proceedings of the 36th Conference on Current Trends in Theory &Practice of Computer Science(LNCS 5901), pp.639~650 (2010)
- E. Murphy-Hill, "How We Refactor & How We Know it", Proceedings of the 31st International Conference on Software Engineering(ICSE’09), pp.287~297 (2009)
- M. Kim, "A Field Study of Refactoring Challenges & Benefits", Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering(FSE’12), 50, pp.1~11 (2012)
- M. Fowler, "Refactoring : Improving the Design of Existing Code" (2002), Addison-Wesley
- 김두환, "소스 코드 품질 향상을 위한 리팩토링 기법 및 도구 분석", 융합정보논문지, 6(4), pp.137~150 (2016), 중소기업융합학회[DOI]
- W. G. Griswold., "Program Restructuring as an Aid to Software Maintenance", Doctoral, pp.1991
- W. F. Opdyke., "Refactoring Object- Oriented Framework. Doctoral Dissertation", pp.1992
- J. D. Garcia, "Improving performance & maintainability through refactoring in C++", Proceedings of the ACCU Conference, pp.1~20 (2016)
- A. Vetro, "Definition, Implementation & Validation of Energy Code Smells: an exploratory study on an embedded system", Proceedings of the Third International Conference on Smart Grids, Green Communications &IT Energy-aware Technologies, pp.34~39 (2013)
- 이제욱, "Energy Bad Smells 기반 소모전력 절감을 위한 코드 리팩토링 기법", 정보처리학회 논문지, 5(5), pp.209~220 (2016), 한국정보처리학회[DOI]
- 이승형, "크로스커팅 개념을 이용한 시스템 최적화 기법", 디지털융복합연구, 15(3), pp.181~186 (2017), 한국디지털정책학회[DOI]
- 최용석, "오픈 소스 소프트웨어 재사용을 위한 소프트웨어 아키텍처 설계", 융합정보논문지, 7(2), pp.67~76 (2017), 중소기업융합학회[DOI]
- J. Lee, "Extraction of Classes & Inheritance from Procedural Software", Journal of KISS : Software & Applications, 28(9), pp.612~628 (2001)
- J. P. Kim, "Embedded software, Low-power software, Power reduction technique", Journal of Convergence for Information Technology, 1(1), pp.55~65 (2011)
- "Procedural Programming" (2017)[URL]
- "Object-oriented Programming" (2017)[URL]
- "TIOBE index for March 2018" (2018)[URL]
- L. Qiu., "Programming Language Translation", Doctoral, Department of Computer Science, pp.1999
- Doohwan Kim, "Code refactoring techniques for reducing energy consumption in embedded computing environment", Cluster Computing, 21(1), pp.1079~1095 (2018), Springer Nature[DOI]
- P. A. Bernstein., "Applying Model Management to Classical Meta Data Problems", Proceedings of the 2003CIDR Conference, pp.1~12 (2003)
- 박재진, "코드 리팩토링 기법의 전력 효율성 분석", 정보처리학회 논문지, 3(3), pp.109~118 (2014), 한국정보처리학회[DOI]
