البرمجة على نطاق واسع والبرمجة على نطاق ضيق
في هندسة البرمجيات ، يشير مصطلحا " البرمجة على نطاق واسع " و" البرمجة على نطاق ضيق " إلى جانبين مختلفين من كتابة البرمجيات . تعني "البرمجة على نطاق واسع" تصميم نظام كبير كمجموعة من أجزاء أصغر، بينما تعني "البرمجة على نطاق ضيق" إنشاء تلك الأجزاء الأصغر بكتابة سطور من التعليمات البرمجية بلغة برمجة . وقد صاغ هذين المصطلحين فرانك ديريمر وهانز كرون في بحثهما المنشور عام 1975 بعنوان "البرمجة على نطاق واسع مقابل البرمجة على نطاق ضيق" [ 1 ] ، حيث جادلا بأن النشاطين مختلفان جوهريًا، وأن لغات البرمجة الشائعة، وممارسة البرمجة الهيكلية ، توفر دعمًا جيدًا للبرمجة على نطاق ضيق، ولكن ليس للبرمجة على نطاق واسع.
يمكن مقارنة هذا بالتقسيم الثنائي اللاحق لـ Ousterhout ، والذي يميز بين لغات برمجة النظام (للمكونات) ولغات البرمجة النصية ( للكود الرابط ، الذي يربط المكونات).
وصف
يُشير فريد بروكس إلى أن طريقة إنشاء برنامج فردي تختلف عن طريقة إنشاء منتج نظام برمجي. [ 2 ] فالأول يُرجّح أن يُنجز مهمة واحدة بسيطة نسبيًا بكفاءة. وربما يكون قد برمجه مهندس واحد، وهو مكتمل بذاته، وجاهز للتشغيل على النظام الذي طُوّر عليه. وربما كانت عملية البرمجة قصيرة الأمد نسبيًا، نظرًا لسرعة وسهولة إنجاز المهام البسيطة. وهذا هو المسعى الذي يُطلق عليه ديريمر وكرون اسم "البرمجة على نطاق صغير".
قارن ذلك بالأنشطة المرتبطة بمشروع أنظمة البرمجة، كما حددها بروكس. يتميز هذا النوع من المشاريع بفرق صناعية متوسطة أو كبيرة الحجم تعمل عليه لعدة أشهر أو حتى سنوات. من المرجح أن يُقسّم المشروع إلى عدة وحدات أو مئات الوحدات المنفصلة، والتي تتشابه في تعقيدها مع البرامج الفردية المذكورة أعلاه. مع ذلك، تُعرّف كل وحدة واجهةً للوحدات المحيطة بها.
يصف بروكس كيف تتم إدارة مشاريع أنظمة البرمجة عادةً كمشاريع رسمية تتبع أفضل الممارسات في الصناعة، وستشمل الاختبار والتوثيق وأنشطة الصيانة المستمرة بالإضافة إلى أنشطة لضمان تعميم المنتج ليعمل في سيناريوهات مختلفة بما في ذلك على أنظمة أخرى غير أنظمة التطوير التي تم إنشاؤه عليها.
البرمجة على نطاق واسع
في مجال تطوير البرمجيات ، قد يشمل البرمجة على نطاق واسع قيام مجموعات كبيرة من الأشخاص بالبرمجة ، أو قيام مجموعات أصغر بذلك على مدى فترات زمنية أطول. [ 2 ] وينتج عن كلتا الحالتين برامج كبيرة، وبالتالي معقدة، قد يصعب على القائمين على صيانتها فهمها.
مع انتشار البرمجة على نطاق واسع، يركز مديرو البرمجة على تقسيم العمل إلى وحدات ذات تفاعلات محددة بدقة. وهذا يتطلب تخطيطًا دقيقًا وتوثيقًا شاملاً.
مع البرمجة واسعة النطاق، قد تصبح تغييرات البرامج صعبة. [ 2 ] إذا طرأ تغيير ما على حدود الوحدات البرمجية، فقد يتطلب الأمر إعادة عمل العديد من المطورين. لهذا السبب، يتمثل أحد أهداف البرمجة واسعة النطاق في إنشاء وحدات برمجية لا تحتاج إلى تعديل في حال حدوث تغييرات محتملة. ويتحقق ذلك من خلال تصميم الوحدات بحيث تتمتع بتماسك عالٍ وترابط ضعيف .
يتطلب البرمجة على نطاق واسع مهارات إدارية . لا تهدف عملية بناء النماذج المجردة إلى وصف شيء قابل للتطبيق فحسب، بل تهدف أيضاً إلى توجيه جهود الأشخاص الذين سيعملون على تحقيقه.
تم تقديم هذا المفهوم بواسطة فرانك ديريمر وهانز كرون في ورقتهم البحثية لعام 1975 بعنوان "البرمجة على نطاق واسع مقابل البرمجة على نطاق صغير"، IEEE Trans. on Soft. Eng. 2(2).
في مصطلحات علوم الحاسوب ، يمكن أن تشير البرمجة بشكل عام إلى شفرة برمجية تمثل منطق انتقال الحالة عالي المستوى للنظام . يشفر هذا المنطق معلومات مثل متى يجب انتظار الرسائل ، ومتى يجب إرسالها، ومتى يجب التعويض عن المعاملات الفاشلة غير المتوافقة مع خصائص ACID ، وما إلى ذلك .
لغة BPEL هي لغة تم تصميمها لدعم البرمجة على نطاق واسع بشكل صريح .
البرمجة على نطاق صغير
في مجال تطوير البرمجيات ، يُشير مصطلح "البرمجة على نطاق صغير" إلى عملية كتابة برنامج صغير. تُصنف البرامج الصغيرة على أنها صغيرة من حيث حجم شفرتها المصدرية، وسهلة التحديد، وسريعة البرمجة، وعادةً ما تُؤدي مهمة واحدة أو بضع مهام مترابطة بشكل وثيق بكفاءة عالية.
قد يشمل البرمجة على نطاق صغير قيام الأفراد أو المجموعات الصغيرة بالبرمجة خلال فترات زمنية قصيرة، وقد يتضمن ذلك ممارسات أقل رسمية (مثل التركيز الأقل على التوثيق أو الاختبار)، وأدوات ولغات برمجة أقل رسمية (مثل اختيار لغة برمجة نصية ذات كتابة مرنة بدلاً من لغة برمجة ذات كتابة صارمة ). كما يمكن أن يصف مصطلح البرمجة على نطاق صغير منهجية بناء نماذج أولية للبرمجيات، أو عندما يكون التطوير السريع للتطبيقات أهم من الاستقرار أو الدقة.
من الناحية النظرية في علوم الحاسوب، فإن البرمجة على نطاق صغير تتعامل مع السلوك البرمجي قصير الأجل، والذي يتم تنفيذه غالبًا كمعاملة ACID واحدة ، والذي يسمح بالوصول إلى المنطق والموارد المحلية مثل الملفات وقواعد البيانات وما إلى ذلك.
مراجع
- ↑ ديريمر، فرانك؛ كرون، هانز (1 أبريل 1975). "البرمجة على نطاق واسع مقابل البرمجة على نطاق ضيق" . وقائع المؤتمر الدولي حول البرمجيات الموثوقة - المجلد 10. رابطة آلات الحوسبة. الصفحات 114-121 . doi : 10.1145/800027.808431 . S2CID 1022671 - عبر مكتبة ACM الرقمية.
- 1 2 3 بروكس، فريدريك ب.، الابن (1982). "حفرة القطران"، نُشر في كتاب "الشهر الأسطوري للرجل" - الطبعة السنوية . ISBN 0-201-83595-9
للمزيد من القراءة
- ديريمر، فرانك؛ كرون، هانز (1975). "البرمجة على نطاق واسع مقابل البرمجة على نطاق ضيق". وقائع المؤتمر الدولي حول البرمجيات الموثوقة . لوس أنجلوس، كاليفورنيا : رابطة آلات الحوسبة . ص 114-121 . doi : 10.1145/800027.808431 .
- نماذج البرمجة
- حكايات شعبية في هندسة البرمجيات
