重构代码
计算机科学
困境
软件工程
向后兼容性
应用程序编程接口
相容性(地球化学)
软件进化
软件
程序设计语言
编码(集合论)
Java
软件开发
操作系统
软件建设
工程类
集合(抽象数据类型)
哲学
认识论
化学工程
作者
Johannes Henkel,Amer Diwan
标识
DOI:10.1109/icse.2005.1553570
摘要
Library developers who have to evolve a library to accommodate changing requirements often face a dilemma: Either they implement a clean, efficient solution but risk breaking client code, or they maintain compatibility with client code, but pay with increased design complexity and thus higher maintenance costs over time. We address this dilemma by presenting a lightweight approach for evolving application programming interfaces (APIs), which does not depend on version control or configuration management systems. Instead, we capture API refactoring actions as a developer evolves an API. Users of the API can then replay the refactorings to bring their client software components up to date. We present CatchUp!, an implementation of our approach that captures and replays refactoring actions within an integrated development environment semi-automatically. Our experiments suggest that our approach could be valuable in practice.
科研通智能强力驱动
Strongly Powered by AbleSci AI