Browse > Article
http://dx.doi.org/10.22156/CS4SMB.2018.8.2.091

Extension of Code Refactoring Technique to Support Energy Efficiency and Language Conversion of Embedded Software  

Nam, Seungwoo (Department of Computer Science, Chungbuk National University)
Hong, Jang-Eui (Department of Computer Science, Chungbuk National University)
Publication Information
Journal of Convergence for Information Technology / v.8, no.2, 2018 , pp. 91-103 More about this Journal
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.
Keywords
Source code quality; Code refactoring; Refactoring technique; Programming language conversion; Programming paradigm;
Citations & Related Records
Times Cited By KSCI : 4  (Citation Analysis)
연도 인용수 순위
1 P. Pirkelbauer, D. Dechev & B. Stroustrup. (2010). Source Code Rejuvenation is not Refactoring. Proceedings of the 36th Conference on Current Trends in Theory & Practice of Computer Science(LNCS 5901), 639-650. DOI : 10.1007/978-3-642-11266-9_53
2 E. Murphy-Hill, C. Parnin & A. P. Black. (2009). How We Refactor & How We Know it. Proceedings of the 31st International Conference on Software Engineering(ICSE'09), 287-297. DOI : 10.1109/icse.2009.5070529
3 M. Kim, T. Zimmermann & N. Nagappan. (2012). A Field Study of Refactoring Challenges & Benefits. Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering(FSE’12), 50, 1-11. DOI : 10.1145/2393596.2393655
4 M. Fowler, K. Beck, J. Brant, W. Opdyke & D. Roberts. (2002). Refactoring: Improving the Design of Existing Code. San Francisco : Addison-Wesley. DOI : 10.1007/3-540-45672-4_31
5 D. Kim, Y. Jung, & J. Hong. (2016). Analysis of Refactoring Techniques & Tools for Source Code Quality Improvement. Journal of Convergence for Information Technology, 6(4), 137-150. DOI : 10.22156/cs4smb.2016.6.4.137   DOI
6 W. G. Griswold. (1991). Program Restructuring as an Aid to Software Maintenance. Doctoral Dissertation, University of Washington, Seattle.
7 W. F. Opdyke. (1992). Refactoring Object- Oriented Framework. Doctoral Dissertation. University of Illinois at Urbana-Champaign, USA.
8 J. D. Garcia & B. Stroustrup. (2016). Improving performance & maintainability through refactoring in C++. Proceedings of the ACCU Conference, 1-20.
9 A. Vetro, L. Ardito, G. Procaccianti & M. Morisio. (2013). 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, 34-39.
10 J. Lee, D. Kim, & J. Hong. (2016). Code Refactoring Techniques based on Energy Bad Smells for Reducing Energy Consumption. Journal of KIPS transactions on software & data engineering, 5(5), 209-220. DOI : 10.3745/ktsde.2016.5.5.209   DOI
11 S. Lee & H. Yoo. (2017). System Optimization Technique using Crosscutting Concern. Journal of Digital Convergence, 15(3), 181-186. DOI : 10.14400/jdc.2017.15.3.181   DOI
12 Y. S. Choi & J. E. Hong. (2017). Designing Software Architecture for Reusing Open Source Software. Journal of Convergence for Information Technology, 7(2), 67-76. DOI : 10.22156/cs4smb.2017.7.2.067   DOI
13 J. Lee, Y. Lee & M. Lee. (2001). Extraction of Classes & Inheritance from Procedural Software. Journal of KISS : Software & Applications, 28(9), 612-628.
14 J. P. Kim, D. H. Kim & J. E. Hong. (2011). Embedded software, Low-power software, Power reduction technique. Journal of Convergence for Information Technology, 1(1), 55-65.
15 Wikipedia. (2017). Procedural Programming. Wikipedia. https://en.wikipedia.org/wiki/Procedural_programming
16 Wikipedia. (2017). Object-oriented Programming. Wikipedia. https://en.wikipedia.org/wiki/Object-oriented_programmng
17 TIOBE. (2018). TIOBE index for March 2018. TIOBE. https://www.tiobe.com/tiobe-index/
18 L. Qiu. (1999). Programming Language Translation. Doctoral Dissertation. Department of Computer Science, Cornell University, New York.
19 D. Kim, J. Hong, I. Yoon & S. Lee. (2016). Code refactoring techniques for reducing energy consumption in embedded computing environment. Cluster Computing Journal, 1-17. DOI : 10.1007/s10586-016-0691-5
20 P. A. Bernstein. (2003). Applying Model Management to Classical Meta Data Problems. Proceedings of the 2003 CIDR Conference, 1-12.
21 J. J. Park, D. H. Kim & J. E. Hong. (2014). Analysis of Energy Efficiency for Code Refactoring Techniques. Journal of KIPS transactions on software & data engineering, 3(3), 109-118. DOI : 10.3745/ktsde.2014.3.3.109   DOI
22 G. Nascimento & C. Iochpe. (2009). A Method for Rewriting Legacy Systems using Business Process Management Technology. Proceedings of the 11th International Conference on Enterprise Information Systems, 1-6.
23 A. Deursen1, P. Klint & C. Verhoef. (1999). Research Issues in the Renovation of Legacy Systems. Proceedings of International Conference on Fundamental Approaches to Software Engineering, 1-21. DOI : 10.1007/978-3-540-49020-3_1
24 A. Jatain & D. Gaur. (2015). Reengineering Techniques for Object Oriented Legacy Systems. International Journal of Software Engineering & Its Applications, 9(1), 35-52. DOI : 10.1145/260303.260313   DOI