메뉴 건너뛰기




Volumn 30, Issue 2, 2004, Pages 126-139

A survey of software refactoring

Author keywords

Coding tools and techniques; Programming environments construction tools; Reengineering; Restructuring; Reverse engineering

Indexed keywords

COMPUTER SOFTWARE MAINTENANCE; COMPUTER SOFTWARE SELECTION AND EVALUATION; DATABASE SYSTEMS; OBJECT ORIENTED PROGRAMMING; REENGINEERING; REVERSE ENGINEERING;

EID: 1842431668     PISSN: 00985589     EISSN: None     Source Type: Journal    
DOI: 10.1109/TSE.2004.1265817     Document Type: Article
Times cited : (950)

References (111)
  • 1
    • 84938155458 scopus 로고
    • Using metrics to evaluate software system maintainability
    • Aug.
    • D.M. Coleman, D. Ash, B. Lowther, and P.W. Oman, "Using Metrics to Evaluate Software System Maintainability," Computer,vol. 27, no. 8, pp. 44-49, Aug. 1994.
    • (1994) Computer , vol.27 , Issue.8 , pp. 44-49
    • Coleman, D.M.1    Ash, D.2    Lowther, B.3    Oman, P.W.4
  • 2
    • 0020830610 scopus 로고
    • Managing application program maintenance expenditure
    • T. Guimaraes, "Managing Application Program Maintenance Expenditure," Comm. ACM, vol. 26, no. 10, pp. 739-746, 1983.
    • (1983) Comm. ACM , vol.26 , Issue.10 , pp. 739-746
    • Guimaraes, T.1
  • 4
    • 85008010397 scopus 로고    scopus 로고
    • Maintenance: Less is not more
    • July/Aug.
    • R.L. Glass, "Maintenance: Less Is Not More," IEEE Software, July/Aug. 1998.
    • (1998) IEEE Software
    • Glass, R.L.1
  • 5
    • 1842549816 scopus 로고
    • An introduction to software restructuring
    • R.S. Arnold, ed.
    • R.S. Arnold, "An Introduction to Software Restructuring," Tutorial on Software Restructuring, R.S. Arnold, ed., 1986.
    • (1986) Tutorial on Software Restructuring
    • Arnold, R.S.1
  • 6
    • 0346436156 scopus 로고
    • Refactoring: A program restructuring aid in designing object-oriented application frameworks
    • PhD thesis, Univ. of Illinois at Urbana-Champaign
    • W.F. Opdyke, "Refactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks," PhD thesis, Univ. of Illinois at Urbana-Champaign, 1992.
    • (1992)
    • Opdyke, W.F.1
  • 8
    • 0025245266 scopus 로고
    • Reverse engineering and design recovery: A taxonomy
    • E.J. Chikofsky and J.H. Cross, "Reverse Engineering and Design Recovery: A Taxonomy," IEEE Software, vol. 7, no. 1, pp. 13-17, 1990.
    • (1990) IEEE Software , vol.7 , Issue.1 , pp. 13-17
    • Chikofsky, E.J.1    Cross, J.H.2
  • 19
    • 24244470219 scopus 로고    scopus 로고
    • Tool-supported discovery and refactoring of structural weakenesses in code
    • MS thesis, Faculty of Computer Science, Technical Univ. of Berlin, Feb.
    • T. Dudziak and J. Wloka, "Tool-Supported Discovery and Refactoring of Structural Weakenesses in Code," MS thesis, Faculty of Computer Science, Technical Univ. of Berlin, Feb., 2002.
    • (2002)
    • Dudziak, T.1    Wloka, J.2
  • 21
    • 0142172564 scopus 로고    scopus 로고
    • Understanding software evolution using a combination of software visualization and software metrics
    • Aug.
    • M. Lanza and S. Ducasse, "Understanding Software Evolution Using a Combination of Software Visualization and Software Metrics," Proc. Langages et Modèles à Objets, pp. 135-149, Aug. 2002.
    • (2002) Proc. Langages et Modèles à Objets , pp. 135-149
    • Lanza, M.1    Ducasse, S.2
  • 28
    • 0035129729 scopus 로고    scopus 로고
    • Evolving object-oriented designs with refactorings
    • L. Tokuda and D.S. Batory, "Evolving Object-Oriented Designs with Refactorings," Automated Software Eng., vol. 8, no. 1, pp. 89-120, 2001.
    • (2001) Automated Software Eng. , vol.8 , Issue.1 , pp. 89-120
    • Tokuda, L.1    Batory, D.S.2
  • 29
    • 0030102464 scopus 로고    scopus 로고
    • Total correctness by local improvement in the transformation of functional programs
    • Mar.
    • D. Sands, "Total Correctness by Local Improvement in the Transformation of Functional Programs," Trans. Programming Languages and Systems, vol. 18, no. 2, pp. 175-234, Mar. 1996.
    • (1996) Trans. Programming Languages and Systems , vol.18 , Issue.2 , pp. 175-234
    • Sands, D.1
  • 30
    • 1842445264 scopus 로고    scopus 로고
    • Maintainability versus performance: What's the effect of introducing polymorphism?
    • technical report, Lab. on Reeng., Universiteit Antwerpen, Belgium
    • S. Demeyer, "Maintainability versus Performance: What's the Effect of Introducing Polymorphism?" technical report, Lab. on Reeng., Universiteit Antwerpen, Belgium, 2002.
    • (2002)
    • Demeyer, S.1
  • 32
    • 84952944620 scopus 로고    scopus 로고
    • A methodology for developing transformations using the maintainability soft-goal graph
    • Oct.
    • L. Tahvildari and K. Kontogiannis, "A Methodology for Developing Transformations Using the Maintainability Soft-Goal Graph," Proc. Working Conf. Reverse Eng., pp. 77-86, Oct. 2002.
    • (2002) Proc. Working Conf. Reverse Eng. , pp. 77-86
    • Tahvildari, L.1    Kontogiannis, K.2
  • 34
    • 0032204552 scopus 로고    scopus 로고
    • Inconsistency management for multiple-view software development environments
    • Nov.
    • J. Grundy, J. Hosking, and W. Mugridge, "Inconsistency Management for Multiple-View Software Development Environments," IEEE Trans. Software Eng., vol. 24, no. 11, pp. 960-981, Nov. 1998.
    • (1998) IEEE Trans. Software Eng. , vol.24 , Issue.11 , pp. 960-981
    • Grundy, J.1    Hosking, J.2    Mugridge, W.3
  • 35
    • 0034174018 scopus 로고    scopus 로고
    • Leveraging inconsistency in software development
    • Apr.
    • B. Nuseibeh, S. Easterbrook, and A. Russo, "Leveraging Inconsistency in Software Development," Computer, vol. 33, no. 4, pp. 24-29, Apr. 2000.
    • (2000) Computer , vol.33 , Issue.4 , pp. 24-29
    • Nuseibeh, B.1    Easterbrook, S.2    Russo, A.3
  • 36
    • 0013078222 scopus 로고    scopus 로고
    • Inconsistency management in software engineering: Survey and open research issues
    • G. Spanoudakis and A. Zisman, "Inconsistency Management in Software Engineering: Survey and Open Research Issues," Handbook of Software Eng. and Knowledge Eng., vol. 1, pp. 24-29, 2001.
    • (2001) Handbook of Software Eng. and Knowledge Eng. , vol.1 , pp. 24-29
    • Spanoudakis, G.1    Zisman, A.2
  • 38
    • 0031331769 scopus 로고    scopus 로고
    • A model for change propagation based on graph rewriting
    • V. Rajlich, "A Model for Change Propagation Based on Graph Rewriting," Proc. Int'l Conf. Software Maintenance, pp. 84-91, 1997.
    • (1997) Proc. Int'l Conf. Software Maintenance , pp. 84-91
    • Rajlich, V.1
  • 40
    • 84976803770 scopus 로고    scopus 로고
    • Semantics and implementation of schema evolution in object-oriented databases
    • J. Banerjee and W. Kim, "Semantics and Implementation of Schema Evolution in Object-Oriented Databases," Proc. SIGMOD Conf., 1987.
    • Proc. SIGMOD Conf., 1987
    • Banerjee, J.1    Kim, W.2
  • 41
    • 0004113306 scopus 로고    scopus 로고
    • Practical analysis for refactoring
    • PhD thesis, Univ. of Illinois at Urbana-Champaign
    • D. Roberts, "Practical Analysis for Refactoring," PhD thesis, Univ. of Illinois at Urbana-Champaign, 1999.
    • (1999)
    • Roberts, D.1
  • 43
    • 0012169806 scopus 로고
    • Algebraic graph transformations with application conditions
    • MS thesis, TU Berlin
    • R. Heckel, "Algebraic Graph Transformations with Application Conditions," MS thesis, TU Berlin, 1995.
    • (1995)
    • Heckel, R.1
  • 45
    • 0030172972 scopus 로고    scopus 로고
    • Graph grammars with negative application conditions
    • June
    • A. Habel, R. Heckel, and G. Täntzer, "Graph Grammars with Negative Application Conditions," Fundamenta Informaticae, vol. 26, nos. 3 and 4, pp. 287-313, June 1996.
    • (1996) Fundamenta Informaticae , vol.26 , Issue.3-4 , pp. 287-313
    • Habel, A.1    Heckel, R.2    Täntzer, G.3
  • 47
    • 0021457061 scopus 로고
    • Program slicing
    • M. Weiser, "Program Slicing," IEEE Trans. Software Eng., vol. 10, no. 4, pp. 352-357, 1984.
    • (1984) IEEE Trans. Software Eng. , vol.10 , Issue.4 , pp. 352-357
    • Weiser, M.1
  • 48
    • 0031118262 scopus 로고    scopus 로고
    • Extracting reusable functions by flow graph-based program slicing
    • Apr.
    • F. Lanubile and G. Visaggio, "Extracting Reusable Functions by Flow Graph-Based Program Slicing," IEEE Trans. Software Eng., vol. 23, no. 4, pp. 246-258, Apr. 1997.
    • (1997) IEEE Trans. Software Eng. , vol.23 , Issue.4 , pp. 246-258
    • Lanubile, F.1    Visaggio, G.2
  • 50
    • 0033717004 scopus 로고    scopus 로고
    • Semantics-preserving procedure extraction
    • technical report, Computer Sciences Dept., Univ. of Wisconsin-Madison
    • R. Komondoor and S. Horwitz, "Semantics-Preserving Procedure Extraction," technical report, Computer Sciences Dept., Univ. of Wisconsin-Madison, 2000.
    • (2000)
    • Komondoor, R.1    Horwitz, S.2
  • 53
    • 0032218209 scopus 로고    scopus 로고
    • Reengineering class hierarchies using concept analysis
    • G. Snelting and F. Tip, "Reengineering Class Hierarchies Using Concept Analysis," Proc. Foundations of Software Eng., pp. 99-110, 1998.
    • (1998) Proc. Foundations of Software Eng. , pp. 99-110
    • Snelting, G.1    Tip, F.2
  • 54
    • 0035307244 scopus 로고    scopus 로고
    • Concept analysis for module restructuring
    • Apr.
    • P. Tonella, "Concept Analysis for Module Restructuring," Trans. Software Eng., vol. 27, no. 4, pp. 351-363, Apr. 2001.
    • (2001) Trans. Software Eng. , vol.27 , Issue.4 , pp. 351-363
    • Tonella, P.1
  • 57
    • 84976773567 scopus 로고
    • Program development by stepwise refinement
    • N. Wirth, "Program Development by Stepwise Refinement," Comm. ACM, vol. 14, pp. 221-227, 1971.
    • (1971) Comm. ACM , vol.14 , pp. 221-227
    • Wirth, N.1
  • 58
    • 0037643797 scopus 로고
    • Correctness preserving program refinements
    • technical report, Math. Centre Tracts #131, Mathematisch Centrum Amsterdam
    • R.-J. Back, "Correctness Preserving Program Refinements," technical report, Math. Centre Tracts #131, Mathematisch Centrum Amsterdam, 1980.
    • (1980)
    • Back, R.-J.1
  • 63
    • 0000967507 scopus 로고    scopus 로고
    • A formal framework for on-line software version change
    • Feb.
    • D. Gupta, P. Jalote, and G. Barua, "A Formal Framework for On-Line Software Version Change," IEEE Trans. Software Eng., vol. 22, no. 2, pp. 120-131, Feb. 1996.
    • (1996) IEEE Trans. Software Eng. , vol.22 , Issue.2 , pp. 120-131
    • Gupta, D.1    Jalote, P.2    Barua, G.3
  • 65
    • 0030394796 scopus 로고    scopus 로고
    • Maintenance and abstraction of program data using formal transformations
    • R.E. Mortimer and K.H. Bennett, "Maintenance and Abstraction of Program Data Using Formal Transformations," Proc. Int'l Conf. Software Maintenance, pp. 301-311, 1996.
    • (1996) Proc. Int'l Conf. Software Maintenance , pp. 301-311
    • Mortimer, R.E.1    Bennett, K.H.2
  • 66
    • 84976718542 scopus 로고
    • Object-preserving class transformations
    • Nov.
    • P.L. Bergstein, "Object-Preserving Class Transformations," SIGPLAN Notices, vol. 26, no. 11, pp. 299-313, Nov. 1991.
    • (1991) SIGPLAN Notices , vol.26 , Issue.11 , pp. 299-313
    • Bergstein, P.L.1
  • 67
    • 0030692189 scopus 로고
    • Maintenance of object-oriented systems during structural evolution
    • P.L. Bergstein, "Maintenance of Object-Oriented Systems during Structural Evolution," Theory and Practice of Object Systems, vol. 3, no. 3, pp. 185-212, 1991.
    • (1991) Theory and Practice of Object Systems , vol.3 , Issue.3 , pp. 185-212
    • Bergstein, P.L.1
  • 72
    • 0021120401 scopus 로고
    • Stepwise development of operational and denotational semantics for Prolog
    • N. Jones and A. Mycroft, "Stepwise Development of Operational and Denotational Semantics for Prolog," Proc. Int'l Symp. Logic Programming, pp. 289-298, 1984.
    • (1984) Proc. Int'l Symp. Logic Programming , pp. 289-298
    • Jones, N.1    Mycroft, A.2
  • 73
    • 1842602005 scopus 로고    scopus 로고
    • Sage++: An object-oriented toolkit and class library for building Fortran and C++ restructing tools
    • F. Bodin, "Sage++: An Object-Oriented Toolkit and Class Library for Building Fortran and C++ Restructing Tools," Proc. Conf. Object-Oriented Numerics, 1994.
    • Proc. Conf. Object-Oriented Numerics, 1994
    • Bodin, F.1
  • 75
    • 84976821104 scopus 로고
    • Implications of automatic restructuring of Cobol
    • June
    • J.C. Miller and B.M. Strauss, "Implications of Automatic Restructuring of Cobol," SIGPLAN Notices, vol. 22, pp. 76-82, June 1987.
    • (1987) SIGPLAN Notices , vol.22 , pp. 76-82
    • Miller, J.C.1    Strauss, B.M.2
  • 79
    • 0027623592 scopus 로고
    • Automated assistance for program restructuring
    • July
    • W.G. Griswold and D. Notkin, "Automated Assistance for Program Restructuring," Trans. Software Eng. and Methodology, vol. 2, no. 3, pp. 228-269, July 1993.
    • (1993) Trans. Software Eng. and Methodology , vol.2 , Issue.3 , pp. 228-269
    • Griswold, W.G.1    Notkin, D.2
  • 81
    • 24244453909 scopus 로고    scopus 로고
    • A logic metaprogramming framework for supporting the refactoring process
    • MS thesis, Vrije Universiteit Brussel, Sept.
    • F. Muñoz, "A Logic Metaprogramming Framework for Supporting the Refactoring Process," MS thesis, Vrije Universiteit Brussel, Sept. 2003.
    • (2003)
    • Muñoz, F.1
  • 84
    • 0000547595 scopus 로고    scopus 로고
    • Rules and strategies for transforming functional and logic programs
    • June
    • A. Pettorossi and M. Proietti, "Rules and Strategies for Transforming Functional and Logic Programs," ACM Computing Surveys vol. 28, no. 2, pp. 360-414, June 1996.
    • (1996) ACM Computing Surveys , vol.28 , Issue.2 , pp. 360-414
    • Pettorossi, A.1    Proietti, M.2
  • 86
    • 1842445269 scopus 로고    scopus 로고
    • Make bad code good - Refactor broken Java code for fun and profit
    • Mar.
    • J. Farrell, "Make Bad Code Good - Refactor Broken Java Code for Fun and Profit," JavaWorld, Mar. 2001.
    • (2001) JavaWorld
    • Farrell, J.1
  • 88
    • 84896916723 scopus 로고    scopus 로고
    • On the computer aided introduction of design patterns into object-oriented systems
    • T. Genssler, B. Mohr, B. Schulz, and W. Zimmer, "On the Computer Aided Introduction of Design Patterns into Object-Oriented Systems," Proc. TOOLS Conf., 1998.
    • Proc. TOOLS Conf., 1998
    • Genssler, T.1    Mohr, B.2    Schulz, B.3    Zimmer, W.4
  • 89
    • 1842497468 scopus 로고    scopus 로고
    • Refactoring C++ programs
    • technical report, Lucent Technologies/Bell Labs
    • W.F. Opdyke, "Refactoring C++ Programs," technical report, Lucent Technologies/Bell Labs, 1999.
    • (1999)
    • Opdyke, W.F.1
  • 90
    • 1842549784 scopus 로고    scopus 로고
    • Systematic change of data representation: Program manipulations and case study
    • W. Scherlis, "Systematic Change of Data Representation: Program Manipulations and Case Study," Proc. European Symp. Programming, 1998.
    • Proc. European Symp. Programming, 1998
    • Scherlis, W.1
  • 98
    • 0031650372 scopus 로고    scopus 로고
    • Restructuring requirements specifications for managing inconsistency and change: A case study
    • A. Russo, B. Nuseibeh, and J. Kramer, "Restructuring Requirements Specifications for Managing Inconsistency and Change: A Case Study," Proc. Int'l Conf. Requirements Eng., pp. 51-61, 1998.
    • (1998) Proc. Int'l Conf. Requirements Eng. , pp. 51-61
    • Russo, A.1    Nuseibeh, B.2    Kramer, J.3
  • 99
    • 1842601997 scopus 로고
    • Automatic reorganization of object-oriented hierarchies: A case study
    • E. Casais, "Automatic Reorganization of Object-Oriented Hierarchies: A Case Study," Object Oriented Systems, vol. 1, pp. 95-115, 1994.
    • (1994) Object Oriented Systems , vol.1 , pp. 95-115
    • Casais, E.1
  • 101
    • 84976732094 scopus 로고
    • Problems with automatic restructures
    • Mar.
    • F.W. Callis, "Problems with Automatic Restructures," SIGPLAN Notices, vol. 23, pp. 13-21, Mar. 1988.
    • (1988) SIGPLAN Notices , vol.23 , pp. 13-21
    • Callis, F.W.1
  • 102
    • 0003424435 scopus 로고    scopus 로고
    • A formal foundation for object-oriented software evolution
    • PhD thesis, Dept. of Computer Science, Vrije Universiteit Brussel, Belgium, Sept.
    • T. Mens, "A Formal Foundation for Object-Oriented Software Evolution," PhD thesis, Dept. of Computer Science, Vrije Universiteit Brussel, Belgium, Sept. 1999.
    • (1999)
    • Mens, T.1
  • 103
  • 109
    • 77956618551 scopus 로고    scopus 로고
    • A declarative evolution framework for object-oriented design patterns
    • T. Mens and T. Tourwé, "A Declarative Evolution Framework for Object-Oriented Design Patterns," Proc. Int'l Conf. Software Maintenance, pp. 570-579, 2001.
    • (2001) Proc. Int'l Conf. Software Maintenance , pp. 570-579
    • Mens, T.1    Tourwé, T.2


* 이 정보는 Elsevier사의 SCOPUS DB에서 KISTI가 분석하여 추출한 것입니다.