Design Patterns. General reusable solution to a commonly occurring problem in software design software design – Not a finished design that can be transformed.