TY - JOUR
T1 - High-confidence software evolution
AU - Gao, Qing
AU - Li, Jun
AU - Xiong, Yingfei
AU - Hao, Dan
AU - Xiao, Xusheng
AU - Taneja, Kunal
AU - Zhang, Lu
AU - Xie, Tao
N1 - Publisher Copyright:
© 2016, Science China Press and Springer-Verlag Berlin Heidelberg.
PY - 2016/7/1
Y1 - 2016/7/1
N2 - Software continues to evolve due to changing requirements, platforms and other environmental pressures. Modern software is dependent on frameworks, and if the frameworks evolve, the software has to evolve as well. On the other hand, the software may be changed due to changing requirements. Therefore, in high-confidence software evolution, we must consider both framework evolution and client evolution, each of which may incur faults and reduce software quality. In this article, we present a set of approaches to address some problems in high-confidence software evolution. In particular, to support framework evolution, we propose a history-based matching approach to identify a set of transformation rules between different APIs, and a transformation language to support automatic transformation. To support client evolution for high-confidence software, we propose a path-exploration-based approach to generate tests efficiently by pruning paths irrelevant to changes between versions, several coverage-based approaches to optimize test execution, and approaches to locate faults and fix memory leaks automatically. These approaches facilitate high-confidence software evolution from various aspects.
AB - Software continues to evolve due to changing requirements, platforms and other environmental pressures. Modern software is dependent on frameworks, and if the frameworks evolve, the software has to evolve as well. On the other hand, the software may be changed due to changing requirements. Therefore, in high-confidence software evolution, we must consider both framework evolution and client evolution, each of which may incur faults and reduce software quality. In this article, we present a set of approaches to address some problems in high-confidence software evolution. In particular, to support framework evolution, we propose a history-based matching approach to identify a set of transformation rules between different APIs, and a transformation language to support automatic transformation. To support client evolution for high-confidence software, we propose a path-exploration-based approach to generate tests efficiently by pruning paths irrelevant to changes between versions, several coverage-based approaches to optimize test execution, and approaches to locate faults and fix memory leaks automatically. These approaches facilitate high-confidence software evolution from various aspects.
KW - high confidence
KW - program analysis
KW - software development
KW - software evolution
KW - software quality
UR - http://www.scopus.com/inward/record.url?scp=84975138760&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84975138760&partnerID=8YFLogxK
U2 - 10.1007/s11432-016-5572-2
DO - 10.1007/s11432-016-5572-2
M3 - Review article
AN - SCOPUS:84975138760
SN - 1674-733X
VL - 59
JO - Science China Information Sciences
JF - Science China Information Sciences
IS - 7
M1 - 071101
ER -