Automated application of design patterns : a refactoring approach - Ó Cinnéide, Mel (Trinity College (Dublin, Ireland). School of Computer Science & Statistics, 2001)
Software systems have to be flexible in order to cope with evolving requirements. However, since it is impossible to predict with certainty what future requirements will emerge, it is also impossible to determine exactly what flexibility to build into a system. Design patterns are often used to build this flexibility into a program, so this question frequently reduces to whether or not a particular design pattern should be applied to the program.
Keywords: Computer Science, Ph.D.; Ph.D. Trinity College Dublin