هندسة المجال
هندسة المجال هي العملية الكاملة لإعادة استخدام المعرفة المتخصصة في إنتاج أنظمة برمجية جديدة . وهي مفهوم أساسي في إعادة استخدام البرمجيات المنهجية وهندسة خطوط الإنتاج . ويُعدّ المجال فكرة محورية في إعادة استخدام البرمجيات المنهجية . تعمل معظم المؤسسات في مجالات محدودة، حيث تقوم ببناء أنظمة متشابهة ضمن هذا المجال مع بعض التعديلات لتلبية احتياجات العملاء المختلفة. وبدلاً من بناء كل نسخة جديدة من النظام من الصفر، يمكن تحقيق وفورات كبيرة من خلال إعادة استخدام أجزاء من الأنظمة السابقة في المجال نفسه لبناء أنظمة جديدة.
تُعرف عملية تحديد النطاقات وحدودها واكتشاف أوجه التشابه والاختلاف بين الأنظمة ضمن النطاق بتحليل النطاق . تُجمع هذه المعلومات في نماذج تُستخدم في مرحلة تنفيذ النطاق لإنشاء عناصر مثل المكونات القابلة لإعادة الاستخدام، أو لغة خاصة بالنطاق ، أو مولدات التطبيقات التي يمكن استخدامها لبناء أنظمة جديدة ضمن النطاق.
في هندسة خطوط الإنتاج، كما هو محدد في معيار ISO26550:2015، تُستكمل هندسة المجال بهندسة التطبيقات التي تهتم بدورة حياة المنتجات الفردية المشتقة من خط الإنتاج. [ 1 ]
غاية
تهدف هندسة المجال إلى تحسين جودة منتجات البرمجيات المطورة من خلال إعادة استخدام مكونات البرمجيات. [ 2 ] تُظهر هندسة المجال أن معظم أنظمة البرمجيات المطورة ليست أنظمة جديدة، بل هي بالأحرى نسخ معدلة من أنظمة أخرى ضمن نفس المجال. [ 3 ] ونتيجة لذلك، يمكن للشركات، من خلال هندسة المجال، تعظيم أرباحها وتقليل وقت طرح منتجاتها في السوق باستخدام المفاهيم والتطبيقات من أنظمة البرمجيات السابقة وتطبيقها على النظام المستهدف. [ 2 ] [ 4 ] ويتضح انخفاض التكلفة حتى خلال مرحلة التنفيذ. فقد أظهرت إحدى الدراسات أن استخدام لغات خاصة بالمجال سمح بتقليل حجم الكود، من حيث عدد الدوال وعدد الرموز ، بأكثر من 50%، وتقليل إجمالي عدد أسطر الكود بنحو 75%. [ 5 ]
يركز هندسة المجال على توثيق المعرفة المكتسبة خلال عملية هندسة البرمجيات . ومن خلال تطوير عناصر قابلة لإعادة الاستخدام، يمكن إعادة استخدام المكونات في أنظمة برمجية جديدة بتكلفة منخفضة وجودة عالية. [ 6 ] ولأن هذا ينطبق على جميع مراحل دورة تطوير البرمجيات ، فإن هندسة المجال تركز أيضًا على المراحل الرئيسية الثلاث: التحليل والتصميم والتنفيذ، بالتوازي مع هندسة التطبيقات. [ 7 ] وهذا لا ينتج عنه مجموعة من مكونات تنفيذ البرمجيات ذات الصلة بالمجال فحسب، بل ينتج عنه أيضًا متطلبات وتصاميم قابلة لإعادة الاستخدام والتكوين. [ 8 ]
مع تزايد حجم البيانات على الإنترنت ونمو إنترنت الأشياء ، بات منهج هندسة المجال ذا أهمية متزايدة في مجالات أخرى أيضًا. [ 9 ] ويُبرز ظهور سلاسل متداخلة من خدمات الويب أن مفهوم الخدمة نسبي. إذ يمكن استخدام خدمات الويب التي تُطوّرها وتُشغّلها مؤسسة ما كجزء من منصة تابعة لمؤسسة أخرى. ونظرًا لإمكانية استخدام الخدمات في سياقات مختلفة، وبالتالي حاجتها إلى تكوينات مختلفة، فإن تصميم مجموعات الخدمات قد يستفيد من منهج هندسة المجال.
المراحل

تتألف هندسة المجال، مثل هندسة التطبيقات، من ثلاث مراحل رئيسية: التحليل والتصميم والتنفيذ. إلا أنه بينما تركز هندسة البرمجيات على نظام واحد ، تركز هندسة المجال على مجموعة من الأنظمة. [ 7 ] يُعد نموذج المجال الجيد مرجعًا لحل الغموض لاحقًا في العملية، ومستودعًا للمعرفة حول خصائص المجال وتعريفه، ومواصفات لمطوري المنتجات التي تُشكل جزءًا من المجال. [ 10 ]
تحليل المجال
يُستخدم تحليل المجال لتحديد المجال، وجمع المعلومات عنه، وإنتاج نموذج له . [ 11 ] ويهدف تحليل المجال ، من خلال استخدام نماذج الميزات (التي صُممت في الأصل كجزء من منهجية تحليل المجال الموجهة نحو الميزات )، إلى تحديد النقاط المشتركة والنقاط المتغيرة في المجال. [ 12 ] وبفضل تحليل المجال، يُصبح من الممكن تطوير متطلبات وهياكل قابلة للتكوين ، بدلاً من التكوينات الثابتة التي تُنتجها منهجية هندسة التطبيقات التقليدية. [ 13 ]
يختلف تحليل المجال اختلافًا جوهريًا عن هندسة المتطلبات ، ولذا فإن الأساليب التقليدية لاستخلاص المتطلبات غير فعّالة في تطوير متطلبات قابلة للتكوين كما هو الحال في نموذج المجال. ولتطبيق هندسة المجال بفعالية، يجب مراعاة إعادة الاستخدام في المراحل المبكرة من دورة حياة تطوير البرمجيات . ومن خلال اختيار الميزات من نماذج الميزات المطوّرة، تتم مراعاة إعادة استخدام التقنية في وقت مبكر جدًا، ويمكن تطبيقها بشكل مناسب طوال عملية التطوير. [ 14 ]
يُستمد تحليل المجال بشكل أساسي من البيانات المُستقاة من الخبرات السابقة في هذا المجال. [ 11 ] وتُعد الأنظمة القائمة، وبياناتها (مثل وثائق التصميم ، ووثائق المتطلبات ، وأدلة المستخدم )، والمعايير ، والعملاء، مصادر محتملة لمدخلات تحليل المجال. [ 11 ] [ 15 ] ومع ذلك، وعلى عكس هندسة المتطلبات، لا يقتصر تحليل المجال على جمع المعلومات وصياغتها فحسب، بل يتضمن أيضًا عنصرًا إبداعيًا. فخلال عملية تحليل المجال، يسعى المهندسون إلى توسيع نطاق معرفتهم بالمجال بما يتجاوز ما هو معروف بالفعل، وتصنيفه وفقًا لأوجه التشابه والاختلاف فيه لتعزيز إمكانية إعادة تهيئته. [ 11 ]
ينتج عن تحليل المجال في المقام الأول نموذج مجال ، يُمثل الخصائص المشتركة والمتغيرة للأنظمة ضمن هذا المجال. [ 11 ] يُساعد نموذج المجال في إنشاء البنى والمكونات بطريقة قابلة للتكوين، حيث يُشكل أساسًا لتصميم هذه المكونات. [ 16 ] لا يقتصر نموذج المجال الفعال على تضمين السمات المتغيرة والمتسقة في المجال فحسب، بل يُحدد أيضًا المصطلحات المستخدمة فيه، ويُعرّف المفاهيم والأفكار والظواهر داخل النظام. [ 11 ] [ 17 ] تُفكك نماذج السمات المفاهيم إلى سماتها الإلزامية والاختيارية لإنتاج مجموعة كاملة من المتطلبات القابلة للتكوين. [ 18 ]
تصميم المجال
تعتمد هندسة المجال على نموذج المجال المُنتَج خلال مرحلة تحليل المجال، وتهدف إلى إنتاج بنية عامة تتوافق معها جميع الأنظمة ضمن المجال. [ 19 ] وكما تستخدم هندسة التطبيقات المتطلبات الوظيفية وغير الوظيفية لإنتاج تصميم، فإن مرحلة تصميم المجال في هندسة المجال تعتمد على المتطلبات القابلة للتكوين التي طُوِّرت خلال مرحلة تحليل المجال، وتُنتج حلاً معياريًا قابلاً للتكوين لمجموعة الأنظمة. يهدف تصميم المجال إلى إنتاج أنماط معمارية تُعالج مشكلة مشتركة بين الأنظمة ضمن المجال، على الرغم من اختلاف تكوينات المتطلبات. [ 20 ] بالإضافة إلى تطوير الأنماط خلال تصميم المجال، يجب على المهندسين أيضًا الحرص على تحديد نطاق النمط ومدى أهمية السياق بالنسبة له. يُعدّ تحديد السياق أمرًا بالغ الأهمية: فكثرة السياق تؤدي إلى عدم قابلية تطبيق النمط على العديد من الأنظمة، وقلة السياق تؤدي إلى عدم كفاية قوة النمط ليكون مفيدًا. [ 21 ] يجب أن يكون النمط المفيد متكررًا وعالي الجودة. [ 22 ]
يهدف تصميم المجال إلى تلبية أكبر قدر ممكن من متطلباته مع الحفاظ على المرونة التي يوفرها نموذج الميزات المُطوَّر. ينبغي أن تكون البنية مرنة بما يكفي لتلبية احتياجات جميع الأنظمة داخل المجال، وفي الوقت نفسه صلبة بما يكفي لتوفير إطار عمل متين يُبنى عليه الحل. [ 23 ]
تنفيذ المجال
يُعدّ تنفيذ المجال بمثابة إنشاء عملية وأدوات لتوليد برنامج مخصص في المجال بكفاءة.
نقد
تعرضت هندسة المجال لانتقادات بسبب تركيزها المفرط على "الهندسة لإعادة الاستخدام" أو "الهندسة مع إعادة الاستخدام" لميزات البرمجيات العامة بدلاً من التركيز على "الهندسة للاستخدام" بحيث يتم دمج رؤية الفرد للعالم أو لغته أو سياقه في تصميم البرمجيات. [ 24 ]
انظر أيضاً
مراجع
- ↑ ISO 26550:2015 – هندسة البرمجيات والأنظمة — نموذج مرجعي لهندسة وإدارة خط الإنتاج .
- 1 2 فراكس وكانغ 2007 ، ص. 2
- ↑ فراكس وكانغ 2007 ، ص. 1
- ↑ تشارنيكي وإيزينيكر 2000 ، ص 19
- ^ باتوري وآخرون. 2002 ، ص. 19
- ↑ تشارنيكي وإيزينيكر 2000 ، ص 20
- 1 2 Czarnecki & Eisenecker 2000 ، ص 21
- ↑ هارسو 2002 ، ص 8
- ↑ راينهارتز-بيرغر وآخرون 2013 ، ص. 12
- ^ فالبو، جيزاردي ودوارتي 2002 ، ص. 2
- 1 2 3 4 5 6 Czarnecki & Eisenecker 2000 ، ص 23
- ↑ تشارنيكي وإيزينيكر 2000 ، ص 38
- ↑ كانغ وآخرون 2004 ، ص 7
- ↑ كانغ وآخرون، 2004 ، ص 3
- ↑ كانغ وآخرون، 2004 ، ص 4
- ↑ فراكس وكانغ 2007 ، ص 3
- ↑ تشارنيكي وإيزينيكر 2000 ، ص 84
- ↑ تشارنيكي وإيزينيكر 2000 ، ص 86
- ↑ تشارنيكي وإيزينيكر 2000 ، ص 24
- ↑ تشارنيكي وإيزينيكر 2000 ، ص 25
- ↑ بوشمان، هيني وشميدت 2007 ، ص 42
- ↑ بوشمان، هيني وشميدت 2007 ، ص 31
- ↑ تشارنيكي وإيزينيكر 2000 ، ص 28
- ↑ ميتلر 2017 ، ص 5
مصادر
- باتوري، دون؛ جونسون، كلاي؛ ماكدونالد، بوب؛ فون هيدر، ديل (2002). "تحقيق قابلية التوسع من خلال خطوط الإنتاج ولغات المجال المتخصصة: دراسة حالة". معاملات ACM في هندسة البرمجيات والمنهجية . 11 (2). ACM : 191-214 . CiteSeerX 10.1.1.100.7224 . doi : 10.1145/505145.505147 . S2CID 7864469 .
- بوشمان، فرانك؛ هيني، كيفلين ؛ شميدت، دوغلاس سي. (2007). هندسة البرمجيات الموجهة بالأنماط: حول الأنماط ولغات الأنماط . المجلد 5. جون وايلي وأولاده . ISBN 978-0-471-48648-0.
- تشارنيكي، كريستوف؛ إيزينيكر، أولريش دبليو. (2000). البرمجة التوليدية: الأساليب والأدوات والتطبيقات . بوسطن: أديسون-ويسلي . ISBN 0-201-30977-7.
- فالبو، ريكاردو دي ألميدا؛ غيزاردي، جيانكارلو؛ دوارتي، كاتيا كريستينا (2002). "مقاربة أنطولوجية لهندسة المجال". وقائع المؤتمر الدولي الرابع عشر لهندسة البرمجيات وهندسة المعرفة . ACM . ص 351-358 . CiteSeerX 10.1.1.19.2577 . doi : 10.1145/568760.568822 . ISBN 1581135564. S2CID 16743035 .
- كانغ، كيو سي؛ لي، جايجون؛ كيم، كيجو؛ كيم، جيرارد جونغهيون؛ شين، يوسيب؛ هوه، مونهانغ (أكتوبر 2004). "FORM: منهجية إعادة استخدام موجهة نحو الميزات مع بنى مرجعية خاصة بالمجال". حوليات هندسة البرمجيات . 5. سبرينغر هولندا: 143-168 . CiteSeerX 10.1.1.95.7568 . doi : 10.1023/A:1018980625587 . S2CID 1830464 .
- فراكس، ويليام ب.؛ كانغ، كيو (يوليو 2007). "بحوث إعادة استخدام البرمجيات: الوضع الراهن والمستقبل". معاملات IEEE في هندسة البرمجيات . 31 (7): 529-536 . CiteSeerX 10.1.1.75.635 . doi : 10.1109/tse.2005.85 . S2CID 14561810 .
- هارسو، ماريت (ديسمبر 2002). دراسة استقصائية حول هندسة المجال (ملف PDF) (تقرير). معهد أنظمة البرمجيات، جامعة تامبيري للتكنولوجيا . ص 26. ISBN 9789521509322.
- ميتلر، توبياس (2017). "وضع شبكة اجتماعية مهنية في سياق الرعاية الصحية: تجارب من دراسة بحثية في تصميم العمل" (ملف PDF) . مجلة نظم المعلومات . 28 (4): 684-707 . doi : 10.1111/isj.12154 . S2CID 49411423 .
- راينهارتز-بيرغر، إيريس؛ ستورم، أرنون؛ كلارك، توني؛ كوهين، شولوم؛ بيتين، جورن (2013). هندسة المجال: خطوط الإنتاج، واللغات، والنماذج المفاهيمية . سبرينغر ساينس + بيزنس ميديا . ISBN 978-3-642-36654-3.
- تصميم البرمجيات
- علم الوجود (علم المعلومات)
- عملية تطوير البرمجيات
- هندسة النظم
- تحليل الأعمال
