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 条
  • [21] Validating inter-object interaction in object-oriented designs
    Malhotra, V
    Stanton, SC
    Proceedings of the Fourth IASTED International Conference on Modelling, Simulation, and Optimization, 2004, : 241 - 246
  • [22] A programming interface for determining refactorings of object-oriented software systems using clustering
    Czibula, Istvan-Gergely
    Serban, Gabriela
    ICCP 2007: IEEE 3RD INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTER COMMUNICATION AND PROCESSING, PROCEEDINGS, 2007, : 271 - +
  • [23] Evolving an Integrated Curriculum for Object-Oriented Analysis and Design
    Ramnath, Sarnath
    Dathan, Brahma
    SIGCSE'08: PROCEEDINGS OF THE 39TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2008, : 337 - 341
  • [24] Stability assessment of evolving industrial object-oriented frameworks
    Mattsson, M
    Bosch, J
    JOURNAL OF SOFTWARE MAINTENANCE-RESEARCH AND PRACTICE, 2000, 12 (02): : 79 - 102
  • [25] EVOLVING TOWARD OBJECT-ORIENTED TECHNOLOGY IN LARGE ORGANIZATIONS
    LITVINTCHOUK, SD
    STARK, M
    BALFOUR, B
    FAYAD, M
    ROSENFELD, B
    SIGPLAN NOTICES, 1993, 28 (10): : 374 - 375
  • [26] CLASSIFYING EVOLVING OBJECTS IN OBJECT-ORIENTED KNOWLEDGE BASES
    BURNEAU, JC
    THIERY, O
    COMPUTING SYSTEMS, 1992, 7 (02): : 86 - 90
  • [27] Search-based determination of refactorings for improving the class structure of object-oriented systems
    Seng, Olaf
    Stammel, Johannes
    Burkhart, David
    GECCO 2006: GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE, VOL 1 AND 2, 2006, : 1909 - +
  • [28] Amber metrics for the testing & maintenance of object-oriented designs
    Doake, J
    Duncan, I
    SECOND EUROMICRO CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, 1998, : 205 - 208
  • [29] Evaluating the quality of reverse engineered object-oriented designs
    Achee, BL
    Carver, DL
    1997 IEEE AEROSPACE CONFERENCE PROCEEDINGS, VOL 4, 1997, : 305 - 313
  • [30] Validation of object-oriented concurrent designs by model checking
    Schneider, K
    Huhn, M
    Logothetis, G
    CORRECT HARDWARE DESIGN AND VERIFICATION METHODS, 1999, 1703 : 360 - 364