B345 Internet Science and Technology Week 7 lecture 2 Today's Lecture Learning Objective - Understand the concept of Patterns. - Look at example software patterns. - Relate patterns to software methodologies. A noteÉ - About changes to topic reading 6. Reusable solutions for recurring problems - In software development - Software libraries - Example code - Algorithms - Are they effective? What's missing? Introducing Patterns - What are patterns? - Types of patterns. Urban Planning and Building Architecture - From the writings of Christopher Alexander: - The Quality (or the QWAN) - The Gate - The Way Elements of Patterns - Name - Problem - Context - Forces - Solution - Examples - Resulting Context - Rationale - Related Patterns - Known Uses Patterns and Algorithms - Are they the same thing? Issues of Patterns - Generative patterns. - Anti-patterns. - Piecemeal growth. - Pattern languages. - Pattern mining. Example Patterns - From www.patterndepot.com - www.patterndepot.com/put/12/parsepat.html Contribution in Development Methodologies - Reusability. - Understanding of context. - Formulating architectures with patterns and pattern languages. Pattern Development - Is a particular development methodology founded on using patterns? Guides to Writing Patterns - Look for example patterns already defined. - Look for patterns in existing software (pattern mining). - Pick solutions proven to be useful in definite contexts. Know why that solution exists in the first place. - Pick a format to write it in. - Circulate for feedback. Submit for reviews. - Iterate and refine.