16 February 2007

Software Engineering: Refactoring (Definitions)

"Rebuilding and restructuring code in very small steps without changing the behavior visible from outside." (Johannes Link & Peter Fröhlich, "Unit Testing in Java", 2003)

"Revising software design and code to improve their structure, without changing the functions and behavior of the software, in order to facilitate future modification and enhancement of the software. Used in many agile methods. Refactoring is a broader term than code restructuring." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A programming technique that enables you to evolve your code slowly over time, to take an evolutionary approach to programming." (Pramod J Sadalage & Scott W Ambler, "Refactoring Databases: Evolutionary Database Design", 2006)

"A simple change to source code that retains its behavioral semantics: You neither add functionality when you are refactoring nor take it away. A refactoring merely improves the design of your code - nothing more and nothing less." (Pramod J Sadalage & Scott W Ambler, "Refactoring Databases: Evolutionary Database Design", 2006)

"Refactoring is used to restructure existing software regarding aspects like modularity, flexibility, and extensibility, without changing the main software functionality." (Alke Martens & Andreas Harrer, "Software Engineering in e-Learning Systems", Encyclopedia of Information Technology Curriculum Integration, 2008)

"To clarify and simplify computer code." (Michael Coles & Rodney Landrum, , "Expert SQL Server 2008 Encryption", 2008)

"A structural transformation that provides a systematic way of eradicating the undesirable(s) from an artifact while preserving its behavioral semantics." (Pankaj Kamthan, "Pattern-Oriented Use Case Modeling", 2009)

[database refactoring:] "It indicates little changes in the database schema which preserve both the meaning of the data and the behaviors of the applications. These changes improve the quality of the design." (Vincenzo Deufemia et al, "Evolutionary Database: State of the Art and Issues", 2009)

"(1) Refactoring (noun): A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior. (2) Refactor (verb): To restructure software by applying a series of refactorings without changing its observable behavior." (Jay Fields et al, Refactoring: Ruby Edition, 2010)

"Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure." (Jay Fields et al, Refactoring: Ruby Edition, 2010)

"A (software) refactoring is an explicit, replicable, and beneficial activity that transforms the structure or representation of a software component without changing its meaning (i.e., behavior). The goal of software refactoring is the improvement of the quality (e.g., maintainability) of the software system." (Jörg Rech et al, "Knowledge Patterns" [in "Encyclopedia of Knowledge Management" 2nd Ed.], 2011)

"Restructuring a program to make it more reliable, easier to read, or easier to maintain without changing its outward behavior." (Rod Stephens, "Stephens' Visual Basic® Programming 24-Hour Trainer", 2011)

"Reorganizing code to make it better suited for some purpose, such as parallelization." (Michael McCool et al, "Structured Parallel Programming", 2012)

"The act of changing code to improve some aspect of it, such as how it does something, without changing what it does." (Mark C Lewis, "Introduction to the Art of Programming Using Scala", 2012)

"A process by which existing code or processes are reengineered or restructured to improve nonfunctional aspects without impacting outcomes. It is usually done to make existing assets more manageable, efficient, and maintainable." (Evan Stubbs, "Delivering Business Analytics: Practical Guidelines for Best Practice", 2013)

"To restructure software code without altering its behavior for the purpose of improving quality attributes, easing future extension or adaptation, or adhering to an architectural style." (Project Management Institute, "Software Extension to the PMBOK Guide" 5th Ed, 2013)

"The process of rearranging and rewriting code to make it easier to understand, debug, and maintain." (Rod Stephens, "Beginning Software Engineering", 2015)

"A product quality technique whereby the design of a product is improved by enhancing its maintainability and other desired attributes without altering its expected behavior." (PMI, "A Guide to the Project Management Body of Knowledge" 6th Ed., 2017)

"Refactoring is the activity of improving the internal structure or operation of a code or component without changing its external behavior." (Dean Leffingwell, "SAFe 4.5 Reference Guide: Scaled Agile Framework for Lean Enterprises" 2nd Ed., 2018)

No comments:

Related Posts Plugin for WordPress, Blogger...

About Me

My photo
IT Professional with more than 24 years experience in IT in the area of full life-cycle of Web/Desktop/Database Applications Development, Software Engineering, Consultancy, Data Management, Data Quality, Data Migrations, Reporting, ERP implementations & support, Team/Project/IT Management, etc.