"A combination of qualities, items, objects, behaviors, or other which form a consistent or characteristic arrangement"
Patterns are not new to man-kind, the Creator has informed us about patterns in the Quran and other earlier revelations. Recently system developers started to analyze the concept of patterns, pioneered by Christopher Alexander in his book, " A Timeless Way of Building", he defines a pattern as a three-part rule, expressing a relation between a certain context, a problem and a solution.
Patterns are a first step in understanding root causes of the problem within a specific context. It also allows the development of architectural and solution building blocks.
"In systems realization, patterns express a relationship between a problem and its solution within a given context"For a software designer some pattern examples are: Message Translators, Process Managers, and Proxies to mention a few. A process manager pattern for example will comprise of a sensor to detect an incoming message which initializes the process manager. The process manager in turn executes a set of rules stored in the process manager memory implementing the processing rules, and detects the subsequent steps through a status feedback detector/analyzer.
Considering a different domain, take the example of a group that does youth trips, examples of patterns could be: Headcount Process, Critical Supplies, Meal Managers, Activity Itinerary Manager and many more. An Activity Itinerary Manager pattern will comprise of an input process to capture developmental and coaching themes/needs of the youth trip, a search process to match the theme to a group of activities that meet the objectives of the theme from a repository of activities, the selected lists of activities could then pass by the activity processor which breaks down the activity into steps, each assigned to resources, a lead, a cost structure, risk factor and plan of action. Feedback from the actual deployed activity is then finally fed back into the activity manager for updates to the activity definitions and other relevant areas, within quality expectations.
_____________To Read More _______________
(1) Hohpe and Woolfe, "Enterprise Integration Patterns: Designing, Building and Deploying Messaging Solutions", Addison Wesley signature Series, 2004.
(2) Haskins and Raveh, "Introduction to Patterns Through Writing Systems Engineering Patterns", 16th Annual International Symposium, 2006.
(3) Gross and Yu, "From Non-Functional Requirements to Design Through Patterns".