首页> 外文期刊>Future generation computer systems >Preserving instance state during refactorings in live environments
【24h】

Preserving instance state during refactorings in live environments

机译:在实时环境中的重构期间保留实例状态

获取原文
获取原文并翻译 | 示例

摘要

An important activity of software evolution consists in applying refactorings to enhance the quality of the code without changing its behaviour. Having a proper refactoring tool is a must-to in any professional development environment. In addition, live programming allows faster development than the usual edit-compile-debug process. During live programming sessions, the developer can directly manipulate instances and modify the state of the running program. However, when a complex refactoring is performed, instances may be corrupted (i.e., their state is lost). For example, when pushing an instance variable to a superclass there is a moment where the superclass does not have yet acquired the new instance variable and the subclass does not have it any more. It means that the value assigned to this instance variable in existing instances is lost after the refactoring. This problem is not anecdotal since 36% of the refactorings described in Fowler's catalogue corrupt instances when used in a live programming context. There is a need to manually migrate, regenerate or reload instances from persistent sources. This manual fix lowers the usefulness of live programming. In this context of live programming, we propose, AtomicRefactoring, a new solution based on Dynamic Software Update to preserve the state of the application after performing refactorings. We provide a working extension to the existing refactoring tool developed for the language Pharo (a new offspring inheriting from Smalltalk), allowing application developers to perform complex refactorings preserving the live state of the running program.
机译:软件演变的重要活动包括应用重构,以提高代码的质量而不改变其行为。具有适当的重构工具是任何专业开发环境的必备工具。此外,现场编程允许更快地开发,而不是通常的编辑汇编-调试过程。在实时编程会话期间,开发人员可以直接操作实例并修改正在运行的程序状态。然而,当执行复杂的重构时,实例可能已损坏(即,它们的状态丢失)。例如,当将实例变量推向超类时,存在超级类尚未获取新实例变量的时刻,子类没有更多。这意味着在重构后,在现有实例中分配给此实例变量的值将丢失。由于在实时编程上下文中使用时,FOWler目录损坏实例中描述的36%的重构,因此此问题不是轶事。需要手动迁移,重新生成或从持久源重新加载实例。本手册修复降低了现场节目的有用性。在实时编程的背景下,我们提出,AtomicRefactoring,一种基于动态软件更新的新解决方案,以在执行重构后保留应用程序的状态。我们为为语言的Pharo开发的现有重构工具提供了工作扩展(从Smalltalk继承的新的后期),允许应用程序开发人员执行保留运行程序的实时状态的复选。

著录项

  • 来源
    《Future generation computer systems》 |2020年第9期|1-17|共17页
  • 作者单位

    Inria Lille-Nord Europe 40 Avenue Halley Villeneuve d'Ascq France Unite de Recherche Informatique et Automatique IMT Lille Douai 764 Boulevard Lahure Douai France;

    Univ. Lille CNRS Centrale Lille Inria UMR 9189 - CRIStAL - Centre de Recherche en Infomatique Signal et Automatique de Lille F-59000 Lille France;

    Unite de Recherche Informatique et Automatique IMT Lille Douai 764 Boulevard Lahure Douai France;

    Unite de Recherche Informatique et Automatique IMT Lille Douai 764 Boulevard Lahure Douai France;

    Inria Lille-Nord Europe 40 Avenue Halley Villeneuve d'Ascq France;

  • 收录信息 美国《科学引文索引》(SCI);美国《工程索引》(EI);
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

    Automatic refactorings; Live programming environments; Dynamic software update; IDE;

    机译:自动重构;实时编程环境;动态软件更新;ide.;

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号