3F6 Software Engineering and Design, February 2012, lecture slides 5, Design Patterns, Dr Elena Punskaya, Cambridge University Engineering Department