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

Application programming interfaces (API)
Data storage equipment

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., ... Xie, T. (2016). High-confidence software evolution. Science China Information Sciences, 59(7), [071101]. https://doi.org/10.1007/s11432-016-5572-2

High-confidence software evolution. / Gao, Qing; Li, Jun; Xiong, Yingfei; Hao, Dan; Xiao, Xusheng; Taneja, Kunal; Zhang, Lu; Xie, Tao.

In: Science China Information Sciences, Vol. 59, No. 7, 071101, 01.07.2016.

Research output: Contribution to journalReview article

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, vol. 59, no. 7, 071101. https://doi.org/10.1007/s11432-016-5572-2
Gao Q, Li J, Xiong Y, Hao D, Xiao X, Taneja K et al. High-confidence software evolution. Science China Information Sciences. 2016 Jul 1;59(7). 071101. https://doi.org/10.1007/s11432-016-5572-2
Gao, Qing ; Li, Jun ; Xiong, Yingfei ; Hao, Dan ; Xiao, Xusheng ; Taneja, Kunal ; Zhang, Lu ; Xie, Tao. / High-confidence software evolution. In: Science China Information Sciences. 2016 ; Vol. 59, No. 7.
@article{c540b8f376e34db4acb2158a6df92f0d,
title = "High-confidence software evolution",
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.",
keywords = "high confidence, program analysis, software development, software evolution, software quality",
author = "Qing Gao and Jun Li and Yingfei Xiong and Dan Hao and Xusheng Xiao and Kunal Taneja and Lu Zhang and Tao Xie",
year = "2016",
month = "7",
day = "1",
doi = "10.1007/s11432-016-5572-2",
language = "English (US)",
volume = "59",
journal = "Science China Information Sciences",
issn = "1674-733X",
publisher = "Science in China Press",
number = "7",

}

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

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

VL - 59

JO - Science China Information Sciences

JF - Science China Information Sciences

SN - 1674-733X

IS - 7

M1 - 071101

ER -