High-confidence software evolution

Qing Gao, Jun Li, Yingfei Xiong, Dan Hao, Xusheng Xiao, Kunal Taneja, Lu Zhang, Tao Xie

Research output: Contribution to journalReview article

Abstract

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.

Original languageEnglish (US)
Article number071101
JournalScience China Information Sciences
Volume59
Issue number7
DOIs
StatePublished - Jul 1 2016

    Fingerprint

Keywords

  • high confidence
  • program analysis
  • software development
  • software evolution
  • software quality

ASJC Scopus subject areas

  • Computer Science(all)

Cite this

Gao, Q., Li, J., Xiong, Y., Hao, D., Xiao, X., Taneja, K., Zhang, L., & Xie, T. (2016). High-confidence software evolution. Science China Information Sciences, 59(7), [071101]. https://doi.org/10.1007/s11432-016-5572-2