نمط معياري
النمط المعماري (بالإنجليزية: architectural pattern) هو حل عام يمكن إعادة استخدامه لمشكلة شائعة الحدوث في هندسة البرمجيات ضمن سياق معين. [1] تعالج الأنماط المعمارية قضايا مختلفة في هندسة البرمجيات، مثل قيود أداء أجهزة الحاسوب، والتوافر المرتفع وتقليل مخاطر الأعمال التجارية. تم تنفيذ بعض الأنماط المعمارية ضمن أطر البرمجيات.
تأثر استخدام كلمة "نمط" في صناعة البرمجيات بمفاهيم مماثلة تم التعبير عنها في العمارية التقليدية، مثل لغة نمط كريستوفر ألكسندر (1977) التي ناقشت الممارسة من حيث إنشاء معجم أنماط، مما دفع الممارسين من علوم الحاسوب والبرمجة للتفكير في معجم التصميم الخاص بهم.
أصبح استخدام هذه الاستعارة في مهنة هندسة البرمجيات أمرًا شائعًا بعد نشر أنماط التصميم (1994) من قبل إريك جاما، وريتشارد هيلم، ورالف جونسون، وجون فليسيديس - المعروفة حاليًا باسم "عصابة الأربعة" - التي تترافق مع السنوات الأولى للإنترنت العام، مما يشير إلى بداية أنظمة البرمجيات المعقدة التي "تأكل العالم" [2] والحاجة المقابلة لتدوين عالم تطوير البرمجيات سريع الانتشار على أعمق مستوى ممكن، مع الحفاظ على المرونة والتكيف.
تشبه الأنماط المعمارية أنماط تصميم البرامجيات ولكن لها نطاق أوسع.
تعريف
على الرغم من أن النمط المعماري ينقل صورة للنظام، إلا أنه ليس جزء من المعمارية. النمط المعماري هو مفهوم يحل ويحدد بعض العناصر المتماسكة الأساسية لهندسة البرمجيات. قد تنفذ معماريات مختلفة لا حصر لها نفس النمط وتشترك في الخصائص ذات الصلة. غالبًا ما يتم تعريف الأنماط على أنها "موصوفة بدقة ومتوفرة بشكل شائع". [3] [4]
الطراز المعماري
بعد هندسة المباني التقليدية، يعد " النمط المعماري للبرمجيات" طريقة محددة للبناء، تتميز بالميزات التي تجعلها ملحوظة.
يعامل البعض الأنماط المعمارية architectural patterns والأساليب المعمارية architectural styles كما لو كانا نفس الشيء، [5] يعامل البعض الأساليب على أنها تخصصات للأنماط. ما تشترك فيه هو أن الأنماط والأنماط هي التعابير والمصطلحات التي يستخدمها المعماريون، فهي "توفر لغة مشتركة" أو "مفردات" تصف بها أصناف الأنظمة.
والفرق الرئيسي هو أنه يمكن رؤية النمط كحل لمشكلة، في حين أن الأسلوب أكثر عمومية ولا يتطلب مشكلة ليتم حلها كي يظهر ذلك الأسلوب.
أمثلة
فيما يلي قائمة بأنماط المعمارية وأنماط تصميم البرامج المقابلة وأنماط الحلول .
منطقة المجال الفرعي | نمط العمارة | أنماط تصميم البرمجيات | أنماط الحل | الأنماط ذات الصلة |
---|---|---|---|---|
تكامل البيانات / SOA |
|
|
| |
|
||||
|
|
|
||
هندسة البيانات |
|
|
| |
التحليلات وذكاء الأعمال |
|
|
|
|
إدارة البيانات الرئيسية |
|
|
| |
نمذجة البيانات |
|
|
||
الذكاء الاصطناعي |
|
|
بعض الأمثلة الإضافية للأنماط المعمارية:
- نمط وسيط
- نموذج للرؤية وحدة تحكم
- بنية متعددة المستويات (غالبًا ثلاثة مستويات أو n- الطبقة)
- واحد إلى واحد
- الخدمات الهندسية الموجهة
المراجع
- R. N. Taylor, N. Medvidović and E. M. Dashofy, Software architecture: Foundations, Theory and Practice. Wiley, 2009.
- Andreessen, Marc (20 August 2011). "Why Software Is Eating The World". وول ستريت جورنال. مؤرشف من الأصل في 6 يوليو 2020. اطلع عليه بتاريخ 25 أبريل 2020. الوسيط
|CitationClass=
تم تجاهله (مساعدة) - Chang, Chih-Hung; Lu, Chih-Wei; Lin, Chih-Hao; Yang, Ming-Feng; Tsai, Ching-Fu (June 2008). "An Experience of Applying Pattern-based Software Framework to Improve the Quality of Software Development: 4. The Design and Implementation of OS2F". Journal of Software Engineering Studies, Vol. 2, No. 6. the Third Taiwan Conference on Software Engineering (TCSE07). صفحات 185–194. مؤرشف من الأصل في 22 سبتمبر 2011. اطلع عليه بتاريخ 16 مايو 2012.
Furthermore, patterns are often defined as something "strictly described and commonly available". For example, layered architecture is a call-and-return style, when it defines an overall style to interact.
الوسيط|CitationClass=
تم تجاهله (مساعدة) - "Architectural Patterns: Definition". AAHN INFOTECH (INDIA) PVT. LTD. مؤرشف من الأصل في 23 يونيو 2012. اطلع عليه بتاريخ 16 مايو 2012.
Even though an architectural pattern conveys an image of a system, it is not an architecture as such. An architectural pattern is rather a concept that solves and delineates some essential cohesive elements of a software architecture. Countless different architectures may implement the same pattern and thereby share the related characteristics. Furthermore, patterns are often defined as something "strictly described and commonly available".
الوسيط|CitationClass=
تم تجاهله (مساعدة) - "Chapter 3: Architectural Patterns and Styles". مؤرشف من الأصل في 30 يناير 2019. الوسيط
|CitationClass=
تم تجاهله (مساعدة)
فهرس
- Avgeriou, Paris; Uwe Zdun (2005). "Architectural patterns revisited:a pattern language". 10th European Conference on Pattern Languages of Programs (EuroPlop 2005), Irsee, Germany, July. الوسيط
|CitationClass=
تم تجاهله (مساعدة)
- Buschmann F.; Meunier R.; Rohnert H.; Sommerlad P.; Stal M. (1996). Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons. مؤرشف من الأصل في 29 نوفمبر 2017. الوسيط
|CitationClass=
تم تجاهله (مساعدة)
- Bass L.; Clements P.; Kazman R. (2005). Software Architecture in Practice: Second Edition. أديسون-ويسلي [الإنجليزية]. الوسيط
|CitationClass=
تم تجاهله (مساعدة)
- بوابة علم الحاسوب