TY - JOUR
T1 - An automated refactoring approach to improve IoT software quality
AU - Zhang, Yang
AU - Shao, Shuai
AU - Ji, Minghan
AU - Qiu, Jing
AU - Tian, Zhihong
AU - Du, Xiaojiang
AU - Guizani, Mohsen
N1 - Publisher Copyright:
© 2020 by the authors.
PY - 2020/1/1
Y1 - 2020/1/1
N2 - Internet of Things (IoT) software should provide good support for IoT devices as IoT devices are growing in quantity and complexity. Communication between IoT devices is largely realized in a concurrent way. How to ensure the correctness of concurrent access becomes a big challenge to IoT software development. This paper proposes a general refactoring framework for fine-grained read-write locking and implements an automatic refactoring tool to help developers convert built-in monitors into fine-grained ReentrantReadWriteLocks. Several program analysis techniques, such as visitor pattern analysis, alias analysis, and side-effect analysis, are used to assist with refactoring. Our tool is tested by several real-world applications including HSQLDB, Cassandra, JGroups, Freedomotic, and MINA. A total of 1072 built-in monitors are refactored into ReentrantReadWriteLocks. The experiments revealed that our tool can help developers with refactoring for ReentrantReadWriteLocks and save their time and energy.
AB - Internet of Things (IoT) software should provide good support for IoT devices as IoT devices are growing in quantity and complexity. Communication between IoT devices is largely realized in a concurrent way. How to ensure the correctness of concurrent access becomes a big challenge to IoT software development. This paper proposes a general refactoring framework for fine-grained read-write locking and implements an automatic refactoring tool to help developers convert built-in monitors into fine-grained ReentrantReadWriteLocks. Several program analysis techniques, such as visitor pattern analysis, alias analysis, and side-effect analysis, are used to assist with refactoring. Our tool is tested by several real-world applications including HSQLDB, Cassandra, JGroups, Freedomotic, and MINA. A total of 1072 built-in monitors are refactored into ReentrantReadWriteLocks. The experiments revealed that our tool can help developers with refactoring for ReentrantReadWriteLocks and save their time and energy.
KW - Concurrency
KW - IoT software
KW - Refactoring
KW - Software quality
KW - Synchronization
UR - http://www.scopus.com/inward/record.url?scp=85079291355&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85079291355&partnerID=8YFLogxK
U2 - 10.3390/app10010413
DO - 10.3390/app10010413
M3 - Article
AN - SCOPUS:85079291355
VL - 10
JO - Applied Sciences (Switzerland)
JF - Applied Sciences (Switzerland)
IS - 1
M1 - 413
ER -