ComputingComputer ScienceDesign AutomationProgramming LanguagesSoftware EngineeringObject-oriented DesignObject-oriented ProgrammingSoftware ArchitectureSoftware DesignSoftware MaintenanceSoftware RefactoringApplication FrameworksAutomated RefactoringBehavior-preserving RefactoringBehavior-preserving TransformationDesign ConstraintsInvariantsObject-oriented RefactoringRefactoring
Superclass ........... 19 3.3 Refactoring To Specialize: Subclassing and Simplifying Conditionals ....... 22 3.4 Capturing Aggregations and Reusable Components ................. 27 3.5 Supporting Refactorings ................................ 32 3.6 Language Features in Refactoring ........................... 34 3.7 Summary: Importance & Complexity of Refactoring ................ 35 4 Preserving Behavior During Refactoring ..................... 37 4.1 Program Properties and Behavior Preservation ................... 37 4.2 Domains of Refactorings ................................ 43 4.3 Functions For Describing Preconditions ....................... 46 4.4 Summary ........................................ 53 5 Low-Level Refactorings ................................ 54 5.1 Creating a Program Entity .............................. 56 5.2 Deleting a Program Entity ............................... 58 5.3 Changing a Program Entity .............................. 60 5.4 Moving a Member Variable .......
48
No Silver Bullet Essence and Accidents of Software Engineering
The String-to-String Correction Problem
Robert A. Wagner, Michael J. Fischer · Journal of the ACM · 1974 · 3.1K citations · Full text