A Formal Approach to Checking Consistency in Software Refactoring

被引:4
作者
Hong Anh Le [1 ]
Thi-Huong Dao [2 ]
Ninh-Thuan Truong [2 ]
机构
[1] Hanoi Univ Min & Geol, Hanoi, Vietnam
[2] Univ Engn & Technol, VNU, Hanoi, Vietnam
关键词
Refactoring; Design patterns; Consistency; Formal approach;
D O I
10.1007/s11036-017-0807-z
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
In software development, refactoring is a process that improves the system internal structure without altering its external behavior. Applying design patterns, which are common reusable solutions of several kinds of problems is widely adopted. This technique, however, raises a challenging issue that after applying design patterns the software system may not preserve some certain behavioral properties. This paper proposes a new approach to checking consistency between original software system and its evolution at both design and implementation phases. First, we formalize elements of software designs and programs. Methods, based on these formalizations, are proposed for verifying the design and implementation of the system. Finally, the paper presents a case study of Adaptive Road Traffic Control system to illustrate the proposed approach in detail.
引用
收藏
页码:356 / 366
页数:11
相关论文
共 50 条
[21]   An Interactive and Dynamic Search-Based Approach to Software Refactoring Recommendations [J].
Alizadeh, Vahid ;
Kessentini, Marouane ;
Mkaouer, Mohamed Wiem ;
Ocinneide, Mel ;
Ouni, Ali ;
Cai, Yuanfang .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2020, 46 (09) :932-961
[22]   Understanding the complexity of refactoring in software systems: a tool-based approach [J].
Advani, Deepak ;
Hassoun, Youssef ;
Counsell, Steve .
INTERNATIONAL JOURNAL OF GENERAL SYSTEMS, 2006, 35 (03) :329-346
[23]   A fuzzy genetic automatic refactoring approach to improve software maintainability and flexibility [J].
Saheb Nasagh, Raana ;
Shahidi, Mahnoosh ;
Ashtiani, Mehrdad .
SOFT COMPUTING, 2021, 25 (06) :4295-4325
[24]   A game of refactoring. Studying the impact of gamification in software refactoring [J].
Elezi, Leonard ;
Sali, Sara ;
Demeyer, Serge ;
Murgia, Alessandro ;
Perez, Javier .
PROCEEDINGS OF THE XP2016 SCIENTIFIC WORKSHOPS, 2016,
[25]   Software Refactoring for System Modernization [J].
Santos, Bruno M. ;
Garcia-Rodriguez de Guzman, Ignacio ;
de Camargo, Valter V. ;
Piattini, Mario ;
Ebert, Christof .
IEEE SOFTWARE, 2018, 35 (06) :62-67
[26]   Effective Software Refactoring Process [J].
Kaya, Mehmet ;
Conley, Shannon ;
Othman, Zhala S. ;
Varol, Asaf .
2018 6TH INTERNATIONAL SYMPOSIUM ON DIGITAL FORENSIC AND SECURITY (ISDFS), 2018, :197-202
[27]   Formal Foundations for Analyzing and Refactoring Delta-Oriented Model-Based Software Product Lines [J].
Pietsch, Christopher ;
Kelter, Udo ;
Kehrer, Timo ;
Seidl, Christoph .
SPLC'19: PROCEEDINGS OF THE 23RD INTERNATIONAL SYSTEMS AND SOFTWARE PRODUCT LINE CONFERENCE, VOL A, 2020, :207-217
[28]   An Approach to Analyzing Execution Preservation in Java']Java Program Refactoring [J].
Thi-Huong Dao ;
Hong Anh Le ;
Ninh Thuan Truong .
CONTEXT-AWARE SYSTEMS AND APPLICATIONS (ICCASA 2016), 2017, 193 :101-110
[29]   A probabilistic-based approach for automatic identification and refactoring of software code smells [J].
Saheb-Nassagh, Raana ;
Ashtiani, Mehrdad ;
Minaei-Bidgoli, Behrouz .
APPLIED SOFT COMPUTING, 2022, 130
[30]   A systematic approach for software refactoring based on class and method level for AI application [J].
Panigrahi R. ;
Kuanar S.K. ;
Kumar L. ;
Padhy N. .
International Journal of Powertrains, 2021, 10 (02) :143-174