Prefactoring
Encyclopedia
Prefactoring is the application of past experience to the creation of new software system
s. Its relationship to its namesake refactoring
is that lessons learned from refactoring are part of that experience.
Experience is captured in guidelines that can be applied to a development process. The guidelines have come from a number of sources, including Jerry Weinberg
, Norm Kerth, and Scott Ambler
.
These guidelines include:
Software system
A software system is a system based on software forming part of a computer system . The term "software system" is often used as a synonym of computer program or software; is related to the application of systems theory approaches in software engineering context and are used to study large and...
s. Its relationship to its namesake refactoring
Refactoring
Code refactoring is "disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior", undertaken in order to improve some of the nonfunctional attributes of the software....
is that lessons learned from refactoring are part of that experience.
Experience is captured in guidelines that can be applied to a development process. The guidelines have come from a number of sources, including Jerry Weinberg
Gerald Weinberg
Gerald Marvin Weinberg is an American computer scientist, author and teacher of the psychology and anthropology of computer software development.- Biography :Gerald Weinberg was born and raised in Chicago...
, Norm Kerth, and Scott Ambler
Scott Ambler
Scott W. Ambler is a Canadian software engineer, consultant and author, currently Practice Leader Agile Development at IBM Corporation in the IBM Methods group...
.
These guidelines include:
- "When you're abstract, be abstract all the way"
- "Splitters can be lumped more easily than lumpers can be splitLumpers and splittersLumping and splitting refers to a well-known problem in any discipline which has to place individual examples into rigorously defined categories. The lumper/splitter problem occurs when there is the need to create classifications and assign examples to them, for example schools of literature,...
" - "Use the client’s language"