DOI QR코드

DOI QR Code

Analysis of Energy Efficiency for Code Refactoring Techniques

코드 리팩토링 기법의 전력 효율성 분석

  • 박재진 (충북대학교 컴퓨터과학과) ;
  • 김두환 (충북대학교 컴퓨터과학과) ;
  • 홍장의 (충북대학교 소프트웨어학과)
  • Received : 2013.12.12
  • Accepted : 2014.01.21
  • Published : 2014.03.31

Abstract

Code refactoring focuses on enhancing the maintainability of software to extend its lifetime. However as software applications were varied and the range of its usage becomes broaden, there are some efforts to improve software qualities like performance or reliability as well as maintainability using code refactoring techniques. Recently, as low-energy software has become one of critical issues in mobile environment, developing energy efficient software through code refactoring becomes an important one. Therefore this paper has its goal to investigate whether the existing refactoring techniques can support energy efficient software generation or not. That is to say, the existing code refactoring techniques can cause the minus of energy efficiency because they did not considered the energy consumption in their refactoring process. This paper experiments and analyzes to check whether the M. Fowler's code refactoring techniques can support the energy efficient software generation or not. Our research result can give to software developer some informations about energy-efficient refactoring techniques, and can support the development of software that has high maintainability and good energy efficiency.

코드 리팩토링은 소프트웨어의 수명을 연장하기 위한 목적을 가지고, 유지보수성을 증진하는데 초점이 있다. 그러나 최근 소프트웨어의 유용성이 높아지고 활용 범위가 방대해지면서, 성능 및 신뢰성 등의 다양한 품질 속성을 코드 리팩토링을 통해 향상시키고자 하는 노력이 있었다. 최근 스마트 폰과 같은 모바일 기기에서 저전력 소프트웨어의 중요성이 강조됨에 따라, 전력 효율성을 보장하는 코드 리팩토링 기법들도 필요하게 되었다. 본 연구에서는 코드 리팩토링이 소모 전력의 절감 효과를 가져 올 수 있는지를 확인하고자 하였다. 즉 기존에 제시되었던 코드 리팩토링 기법들이 소모 전력에 대한 충분한 고려가 이루어지지 못했기 때문에 코드의 유지보수성은 향상시키지만, 전력 효율성이 감소하는 결과를 초래할 수 있다는 것이다. 따라서 본 연구에서는 M. Fowler가 개발한 코드 리팩토링 기법들을 대상으로 전력 효율성을 분석한다. 제시된 연구 결과를 통해 개발자들은 어떠한 리팩토링 기법이 전력 효율성을 제공하는지 판단할 수 있으며, 이를 통해 유지보수성이 높은 전력 효율적인 소프트웨어를 개발할 수 있을 것이다.

Keywords

References

  1. Hong,Jang-Eui and Kim,Doo-Hwan, "Task Extraction from Software Design Models to Improve Energy Efficiency of Embedded Software," The KIPS Transactions: PartD, Vol.18-D, No.1, pp.45-56, 2011. https://doi.org/10.3745/KIPSTD.2011.18D.1.045
  2. H.Jun, et al., "Modelling and Analysis of Power Consumption for Component-Based Embedded Software," Proc. of EUC Workshop, pp.795-804, 2006.
  3. E. Senn, et al., "SoftExplorer: Estimating and Optimizing the Power and Energy Consumption of a C Program for DSP Application,"EURASIP Jounal on Applied Signal Processing, Vol.16, pp.2641-2654, 2005.
  4. Kim, Doo-Hwan and Hong, Jang-Eui, "Energy Component Library for Power Consumption Analysis of Embedded Software," The KIPS Transactions:PartD, Vol.16-D, No.6, pp.871-880, 2009. https://doi.org/10.3745/KIPSTD.2009.16D.6.871
  5. Kim, Jong-Phil, et al., "Estimating power consumption of mobile embedded software based on behavioral model." Consumer Electronics (ICCE), 2010 Digest of Technical Papers International Conference on. IEEE, 2010.
  6. Hopfner, et al., "Energy Awareness Needs a Rethinking in Software Development." ICSOFT (2), 2011.
  7. Yejin Kwon, et al., "Performance-based Refactoring: Identifying & Extracting Move-method Region," Journal of KIISE: Software and Applications, Vol.40, No.10, pp.567-574, 2013.
  8. Jae-Jin Park, Jang-Eui Hong, "An Approach to improve software safety by Code refactoring," Proc. of Korea Computer Congress, 2013.
  9. Jelschen, Jan, et al. "Towards Applying Reengineering Services to Energy-Efficient Applications." Software Maintenance and Reengineering (CSMR), 2012 16th European Conference on. IEEE, 2012.
  10. Vetro, Antonio, et al. "Definition, Implementation and Validation of Energy Code Smells: an Exploratory Study on an Embedded System." ENERGY 2013, The Third International Conference on Smart Grids, Green Communications and IT Energy-aware Technologies, 2013.
  11. Fowler, Martin. Refactoring: improving the design of existing code. Addison-Wesley Professional, 1999.
  12. Gottschalk, Marion, et al., "Removing Energy Code Smells with Reengineering Services." GI-Jahrestagung, 2012.
  13. Marion, Gottschalk, Jan Jelschen, and Andreas Winter. "Energy-Efficient Code by Refac- toring." 15. Workshop Software-Reengineering, 2013.
  14. Wellisson G. P. da Silva, et al., "Evaluation of the impact of code refactoring on embedded software efficiency." I Workshop de Sistemas Embarcados, 2010.
  15. Oyedepo, Sunday Olayinka. "Efficient energy utilization as a tool for sustainable development in Nigeria." International Journal of Energy and Environmental Engineering 3.1, 2012, pp.1-12.
  16. Marc Rosen, et al., "MA: Towards energy sustainability: a quest of global proportion. Forum of Public Policy online: A Journal of the Oxford Round Table, Summer, 2008.
  17. Z. Herczeg, D. Schmidt, and et al., "Eergy simulation of embedded XScale systems with XEEMU", Journal of Embedded Computing, pp.209-219, August, 2009.
  18. Steigerwald, B., et al., "Writing Energy-Efficient Software." Energy Aware Computing, Intel Corporation, 2011.
  19. Bunse, Christian, et al., "Exploring the energy consumption of data sorting algorithms in embedded and mobile environments." Mobile Data Management: Systems, Services and Middleware, 2009. MDM'09. Tenth International Conference on. IEEE, 2009.
  20. Van Rysselberghe, et al., "Detecting move operations in versioning information." Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th European Conference on. IEEE, 2006.
  21. FB36, Huffman Data Compression (C++ recipe) [Internet], http://code.activestate.com/recipes/577480-huffman-data-compression/
  22. Goron350, Encryption and Decryption Program in C++ using a class [Internet], http://cboard.cprogramming.com/cplusplusprogramming/66232-encryption-decryption-program-cplusplus-using-class.html