Evolving object-oriented designs with refactorings

被引:52
|
作者
Tokuda L. [1 ]
Batory D. [1 ]
机构
[1] Department of Computer Sciences, University of Texas, Austin, TX
关键词
Hot spot driven approach - Object oriented design patterns - Program transformations - Refactoring tools;
D O I
10.1023/A:1008715808855
中图分类号
学科分类号
摘要
Refactorings are behavior-preserving program transformations that automate design evolution in object-oriented application. Three kinds of design evolution are: schema transformation, design pattern microarchitectures, and the hot-spot-driven-approach. This research shows that all three are automatable with refactorings. A comprehensive list of refactorings for design evolution is provided and an analysis of supported scheme transformations, design patterns, and hot-spot meta patterns is presented. Further, we evaluate whether refactoring technology can be transferred to the mainstream by restructuring non-trivial C++ applications. The applications that we examine were evolved manually by software engineers. We show that an equivalent evolution could be reproduced significantly faster and cheaper by applying a handful of general-purpose refactorings. In one application, over 14K lines of code were transformed automatically that otherwise would have been coded by hand. Our experiments identify benefits, limitations, and topics of further research related to the transfer of refactoring technology to a production environment.
引用
收藏
页码:89 / 120
页数:31
相关论文
共 50 条
  • [31] Vooduu: Verification of object-oriented designs using UPPAAL
    Diethers, K
    Huhn, M
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2004, 2988 : 139 - 143
  • [32] SEMANTICS OF OBJECT-ORIENTED DATA MODELS - THE EVOLVING ALGEBRA APPROACH
    GOTTLOB, G
    KAPPEL, G
    SCHREFL, M
    LECTURE NOTES IN COMPUTER SCIENCE, 1991, 504 : 144 - 160
  • [33] Evolving a legacy data warehouse system to an object-oriented architecture
    Haendchen, A
    Prado, HA
    Toscani, SS
    XX INTERNATIONAL CONFERENCE OF THE CHILEAN COMPUTER SCIENCE SOCIETY - PROCEEDINGS, 2000, : 32 - 40
  • [34] OBJECT-ORIENTED PROGRAMMING WITHOUT AN OBJECT-ORIENTED LANGUAGE
    BOOCH, G
    SEIDEWITZ, E
    START, M
    FIRESMITH, D
    SIGPLAN NOTICES, 1986, 21 (11): : 508 - 508
  • [35] Implementing object-oriented designs in ANSI-standard C
    Binder, EF
    EDN, 2000, 45 (08) : 137 - +
  • [36] Creating object-oriented designs from legacy FORTRAN code
    Achee, BL
    Carver, DL
    JOURNAL OF SYSTEMS AND SOFTWARE, 1997, 39 (02) : 179 - 194
  • [37] DESIGNING REUSABLE DESIGNS - EXPERIENCES DESIGNING OBJECT-ORIENTED FRAMEWORKS
    WIRFSBROCK, A
    JOHNSON, R
    CUNNINGHAM, W
    LINTON, M
    SIGPLAN NOTICES, 1990, 25 (10): : 234 - 234
  • [38] Indicators of structural stability of object-oriented designs: A case study
    Elish, MO
    Rine, D
    29TH ANNUAL IEEE/NASA SOFTWARE ENGINEERING WORKSHOP, PROCEEDINGS, 2005, : 183 - 190
  • [39] An entropy-based complexity measure for object-oriented designs
    Bansiya, J
    Davis, C
    Etzkorn, L
    THEORY AND PRACTICE OF OBJECT SYSTEMS, 1999, 5 (02): : 111 - 118
  • [40] An automatic restructuring approach preserving the behavior of object-oriented designs
    Lee, B
    Wu, CS
    APSEC 2001: EIGHTH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2001, : 400 - 407