تقادم البرمجيات
في هندسة البرمجيات ، يُشير مصطلح "تقادم البرمجيات" إلى ميل البرمجيات إلى التعطل أو التسبب في تعطل النظام بعد تشغيلها بشكل متواصل لفترة معينة، أو نتيجة للتغيرات المستمرة في الأنظمة المحيطة بها. وتتعدد أسباب تقادم البرمجيات، منها عدم قدرة البرمجيات القديمة على التكيف مع الاحتياجات المتغيرة أو منصات التكنولوجيا المتغيرة، وميل تحديثات البرمجيات إلى إدخال المزيد من الأخطاء. ومع تقدم عمر البرمجيات، تقل كفاءتها في أداء وظيفتها، وتتوقف في النهاية عن العمل كما ينبغي. ويمكن إعادة تشغيل النظام أو إعادة تثبيت البرمجيات كحل مؤقت. [ 1 ] ومن أساليب إدارة الأعطال الاستباقية للتعامل مع مشكلة تقادم البرمجيات، تجديد البرمجيات . ويمكن تصنيف هذا الأسلوب كتقنية لتنويع بيئة التشغيل، ويتم تنفيذه عادةً من خلال عوامل تجديد البرمجيات (SRA).
تم تحديد هذه الظاهرة لأول مرة بواسطة ديفيد بارناس ، في مقال استكشف ما يجب فعله حيال ذلك: [ 2 ]
البرامج، مثل البشر، تشيخ. لا يمكننا منع الشيخوخة، لكن يمكننا فهم أسبابها، واتخاذ خطوات للحد من آثارها، وعكس بعض الأضرار التي سببتها مؤقتًا، والاستعداد لليوم الذي يصبح فيه البرنامج غير قابل للاستخدام. [ 3 ]
من الناحيتين الأكاديمية والصناعية، تزايدت ظاهرة تقادم البرمجيات. وقد ركزت الأبحاث الحديثة على توضيح أسبابها وآثارها. [ 4 ] يُعدّ تضخم الذاكرة وتسريبها ، إلى جانب تلف البيانات وعدم تحرير أقفال الملفات، من الأسباب الرئيسية لتقادم البرمجيات.
الإدارة الاستباقية لتقادم البرمجيات
تقادم البرمجيات
تُعدّ أعطال البرمجيات سببًا أكثر ترجيحًا لانقطاعات الأنظمة غير المخطط لها مقارنةً بأعطال الأجهزة. [ 5 ] [ 6 ] ويعود ذلك إلى أن البرمجيات تُظهر مع مرور الوقت معدل فشل متزايد نتيجة لتلف البيانات، وتراكم الأخطاء العددية ، واستهلاك الموارد غير المحدود. في البرمجيات واسعة الانتشار والمتخصصة، يُعدّ إعادة التشغيل إجراءً شائعًا لحلّ المشكلة، لأن التقادم يحدث بسبب تعقيد البرمجيات التي لا تخلو أبدًا من الأخطاء. يكاد يكون من المستحيل التحقق بشكل كامل من خلوّ أي برنامج من الأخطاء. حتى البرامج البارزة مثل ويندوز وماك أو إس تحتاج إلى تحديثات مستمرة لتحسين الأداء وإصلاح الأخطاء. غالبًا ما يكون تطوير البرمجيات مدفوعًا بالحاجة إلى الوفاء بمواعيد الإصدار بدلًا من ضمان الموثوقية على المدى الطويل. [ 7 ] تصميم برمجيات محصنة ضد التقادم أمر صعب. لا تتقادم جميع البرامج بنفس المعدل، حيث يستخدم بعض المستخدمين النظام بكثافة أكبر من غيرهم. [ 8 ]
تجديد
لتجنب الأعطال أو تدهور الأداء، يمكن استخدام تجديد البرمجيات بشكل استباقي، حيث يؤدي التقادم الحتمي إلى أعطال في أنظمة البرمجيات. وقد تم تحديد هذه التقنية الاستباقية كحل فعال من حيث التكلفة خلال بحث أُجري في مختبرات AT&T Bell حول البرمجيات المقاومة للأعطال في التسعينيات. [ 9 ] يعمل تجديد البرمجيات عن طريق إزالة حالات الخطأ المتراكمة وتحرير موارد النظام، على سبيل المثال عن طريق مسح جداول نواة نظام التشغيل، واستخدام جمع البيانات المهملة، وإعادة تهيئة هياكل البيانات الداخلية، ولعل أشهر طرق التجديد هي إعادة تشغيل النظام.
توجد تقنيات بسيطة وأخرى معقدة لتحقيق التجديد. الطريقة الأكثر شيوعًا هي إعادة تشغيل الأجهزة أو البرامج . ومن الأمثلة التقنية الأخرى طريقة التجديد في برنامج خادم الويب أباتشي. يُطبّق أباتشي أحد أشكال التجديد عن طريق إيقاف العمليات وإعادة إنشائها بعد معالجة عدد معين من الطلبات. [ 10 ] وهناك تقنية أخرى تتمثل في إعادة تشغيل الأجهزة الافتراضية العاملة في بيئة الحوسبة السحابية . [ 11 ]
قامت شركة الاتصالات متعددة الجنسيات AT&T بتطبيق تحديث البرمجيات في النظام الذي يجمع بيانات الفواتير في الوقت الفعلي في الولايات المتحدة لمعظم مقاسم الهاتف. [ 12 ]
تتضمن بعض الأنظمة التي استخدمت أساليب تجديد البرمجيات ما يلي: [ 13 ]
- أنظمة معالجة المعاملات
- خوادم الويب
- أنظمة المركبات الفضائية
استضافت ندوة IEEE الدولية لهندسة موثوقية البرمجيات (ISSRE) ورشة العمل الدولية السنوية الخامسة حول تقادم البرمجيات وتجديدها ( woSAR ) في عام 2013. وشملت المواضيع ما يلي:
- تصميم وتنفيذ وتقييم آليات التجديد
- نمذجة وتحليل وتنفيذ جدولة التجديد
- قياس أداء تجديد البرمجيات
تسريبات الذاكرة
تسمح بعض لغات البرمجة ، مثل C و C++ ، للمبرمج بتخصيص ذاكرة الكومة . علاوة على ذلك، قد يُطلب من المبرمج تحرير الذاكرة عند انتهاء الحاجة إليها. يُعد تحرير الذاكرة ضروريًا لأن بعض أنظمة التشغيل لا تُجري عملية جمع البيانات المهملة عند انتهاء عملية ما . بمرور الوقت، من المرجح أن يؤدي ذلك إلى استهلاك المزيد من الذاكرة، مما قد يتسبب في النهاية في نفاد ذاكرة الحاسوب. [ 14 ] في ظروف نقص الذاكرة، عادةً ما يعمل الحاسوب بشكل أبطأ بسبب عمليات التبديل والتحريك المكثفة . عند حدوث ذلك، تصبح التطبيقات بطيئة أو حتى غير مستجيبة. إذا نفدت ذاكرة الحاسوب ومساحة التبديل، فقد يُعاد تشغيل نظام التشغيل تلقائيًا، أو ما هو أسوأ من ذلك، قد يتوقف عن العمل. [ 15 ]
تكون البرامج المكتوبة بلغات برمجة تستخدم جامع البيانات المهملة (مثل جافا ) أقل عرضةً لتسرب الذاكرة، لأن جامع البيانات المهملة يحرر الذاكرة التي لم تعد مستخدمة. مع ذلك، لا يعني هذا استحالة كتابة برامج تُسبب تسرب الذاكرة في هذه اللغات.
أحيانًا، قد تكون المكونات الأساسية لنظام التشغيل نفسه مصدرًا لتسرب الذاكرة. ففي نظام مايكروسوفت ويندوز ، على سبيل المثال، قد يؤدي استخدام الذاكرة بواسطة إضافة مستكشف ويندوز إلى استنزاف الذاكرة المتاحة لدرجة تجعل الكمبيوتر بأكمله غير قابل للاستخدام. وقد يلزم إعادة تشغيله . [ 16 ]
تطبيق
هناك طريقتان لتنفيذ التجديد:
- تجديد الشباب حسب الوقت
- التجديد القائم على التنبؤ
تضخم الذاكرة
تُعدّ عملية جمع البيانات المهملة شكلاً من أشكال إدارة الذاكرة التلقائية ، حيث يقوم النظام تلقائيًا باستعادة الذاكرة غير المستخدمة. على سبيل المثال، يتولى إطار عمل .NET إدارة تخصيص الذاكرة وتحريرها للبرامج التي تعمل ضمنه. إلا أن تتبع هذه الكائنات تلقائيًا يستغرق وقتًا، كما أنه ليس مثاليًا.
تُدير خدمات الويب المبنية على .NET أنواعًا منطقية متعددة من الذاكرة، مثل المكدس، والذاكرة غير المُدارة، والذاكرة المُدارة (المساحة الحرة). عندما تمتلئ الذاكرة الفعلية، يقوم نظام التشغيل بكتابة الأجزاء قليلة الاستخدام منها إلى القرص، ليتمكن من إعادة تخصيصها لتطبيق آخر، وهي عملية تُعرف بالترحيل أو التبديل. ولكن إذا دعت الحاجة إلى استخدام الذاكرة، فيجب إعادة تحميلها من القرص. إذا كانت عدة تطبيقات تُطالب ببيانات كثيرة، فقد يقضي نظام التشغيل معظم وقته في نقل البيانات بين الذاكرة الرئيسية والقرص، وهي عملية تُعرف بـ" التداول المُفرط للقرص" . [ 17 ] ونظرًا لأن جامع البيانات المهملة يضطر إلى فحص جميع عمليات التخصيص لتحديد أيها قيد الاستخدام، فقد يُفاقم هذا التداول المُفرط. ونتيجة لذلك، قد يؤدي التبديل المُكثف إلى تمديد دورات جمع البيانات المهملة من أجزاء من الثانية إلى عشرات الثواني، مما يُسبب مشاكل في سهولة الاستخدام.
انظر أيضاً
مراجع
- ↑ شيريشيفسكي، م.؛ كرويل، ج.؛ كوكيتش، ب.؛ غانديكوتا، ف.؛ يان ليو (2003). "تقادم البرمجيات وتعدد أبعاد موارد الذاكرة" . المؤتمر الدولي للأنظمة والشبكات الموثوقة لعام 2003. وقائع المؤتمر . الصفحات 721-730 . doi : 10.1109/DSN.2003.1209987 . ISBN 978-0-7695-1952-4. S2CID 18697750 .
- ↑ بارناس، د. ل. (1994). "تقادم البرمجيات". وقائع المؤتمر الدولي السادس عشر لهندسة البرمجيات . ص 279-287 . doi : 10.1109/ICSE.1994.296790 . ISBN 978-0-8186-5855-6. S2CID 790287 .
- ↑ "تقادم البرمجيات | صحيفة الصباح" . 14-10-2014 . تم الاطلاع عليه بتاريخ 12-02-2024 .
- ↑ غروتكي، مايكل؛ ماتياس، ريفالينو؛ تريفيدي، كيشور س. (2008). "أساسيات تقادم البرمجيات". ورش عمل المؤتمر الدولي لهندسة موثوقية البرمجيات (ISSRE WKSP) لعام 2008. الصفحات 1-6 . doi : 10.1109/ISSREW.2008.5355512 . ISBN 978-1-4244-3416-9. S2CID 11527276 .
- ↑ "Oatd: -" .
- ↑ غارغ، س.؛ فان مورسل، أ.؛ فايدياناثان، ك.؛ تريفيدي، ك.س. (1998). "منهجية للكشف عن تقادم البرمجيات وتقديره". وقائع الندوة الدولية التاسعة حول هندسة موثوقية البرمجيات (رقم التصنيف 98TB100257) . الصفحات 283-292 . doi : 10.1109/ISSRE.1998.730892 . ISBN 978-0-8186-8991-8. S2CID 8696313 .
- ↑ كاستيلي، ف.؛ هاربر، ر. إ.؛ هايدلبرغر، ب.؛ هنتر، س. و.؛ تريفيدي، ك. س.؛ فايدياناثان، ك.؛ زيغرت، و. ب. (1 مارس 2001). "الإدارة الاستباقية لتقادم البرمجيات". مجلة آي بي إم للبحوث والتطوير . 45 (2): 311-332 . CiteSeerX 10.1.1.28.7273 . doi : 10.1147/rd.452.0311 . ISSN 0018-8646 .
- ↑ غروس، ك.س.؛ بهاردواج، ف.؛ بيكفورد، ر. (2003). "الكشف الاستباقي عن آليات تقادم البرمجيات في الحواسيب ذات الأداء الحرج". ورشة عمل هندسة البرمجيات السنوية السابعة والعشرون لوكالة ناسا غودارد/معهد مهندسي الكهرباء والإلكترونيات، 2002. وقائع المؤتمر . الصفحات 17-23 . doi : 10.1109/SEW.2002.1199445 . ISBN 978-0-7695-1855-8. S2CID 17167955 .
- ↑ كوترونيو، د.، ناتيلا، ر.، بيترانتونو، ر.، وروسو، س. 2014. دراسة استقصائية حول تقادم البرمجيات وتجديدها. مجلة ACM للتقنيات الناشئة وأنظمة الحاسوب 10، 1، المقالة 8 (يناير 2014)، 34 صفحة.
- ↑ تريفيدي، كيه إس وفيدياناثان، كيه. 2007. تقادم البرمجيات وتجديدها. موسوعة وايلي لعلوم وهندسة الحاسوب.
- ^ برونيو ، داريو. ديستيفانو، سلفاتوري؛ لونغو، فرانشيسكو؛ بوليافيتو، أنطونيو؛ سكاربا، ماركو (2013). “تجديد البرامج القائمة على عبء العمل في الأنظمة السحابية”. معاملات IEEE على أجهزة الكمبيوتر . 62 (6): 1072–1085 . بيب كود : 2013ITCmp..62.1072B . دوى : 10.1109/TC.2013.30 . S2CID 23981532 .
- ↑ تريفيدي، كيشور س.؛ فايدياناثان، كاليانارامان (1 يناير 2004). ريس، ريكاردو (محرر). تجديد البرمجيات - النمذجة والتحليل . الاتحاد الدولي لمعالجة المعلومات (IFIP). سبرينغر الولايات المتحدة. الصفحات 151-182 . doi : 10.1007/1-4020-8159-6_6 . ISBN 978-1-4020-8158-3.
- ↑ لي لي؛ فايدياناثان، ك.؛ تريفيدي، ك.س. (2002). "نهج لتقدير تقادم البرمجيات في خادم ويب". وقائع الندوة الدولية حول هندسة البرمجيات التجريبية . ص 91-100 . doi : 10.1109/ISESE.2002.1166929 . ISBN 978-0-7695-1796-4. S2CID 8170010 .
- ↑ "نظرة عامة على تسريبات الذاكرة" . msdn.microsoft.com . تم الاطلاع عليه بتاريخ 2015-11-04 .
- ↑ مارتن براون؛ كين ميلبرغ (16 نوفمبر 2010). "تحسين أداء ذاكرة AIX 7 الجزء 3، ضبط إعدادات مساحة التبديل" . IBM .
- ↑ "منع تسرب الذاكرة في تطبيقات ويندوز (Windows)" . msdn.microsoft.com . تم الاطلاع عليه بتاريخ 2015-11-04 .
- ↑ SR، تشايترا؛ باسو، أنيربان (2012). "تجديد البرمجيات في خدمات الويب" . المجلة الدولية لتطبيقات الحاسوب . 54 (8): 31-35 . Bibcode : 2012IJCA...54h..31S . doi : 10.5120/8589-2340 .
للمزيد من القراءة
- R. Matias Jr. و PJ Freitas Filho، "دراسة تجريبية حول تقادم البرامج وتجديدها في خوادم الويب"، وقائع المؤتمر الدولي السنوي الثلاثين لبرامج وتطبيقات الكمبيوتر (COMPSAC'06)، المجلد 01، الصفحات 189-196، 2006.
- M. Grottke, R. Matias Jr., and KS Trivedi, “The Fundamental of Software Aging,” Workshop of Software Aging and Rejuvenation (WoSAR/ISSRE), 2008.
- R. Matias Jr, P. Barbetta, K. Trivedi, P. Freitas Filho "اختبارات التدهور المتسارع المطبقة على تجارب تقادم البرمجيات"، IEEE Transactions on Reliability 59(1): 102–114,2010.
- M. Grottke, L. Li, K. Vaidyanathan, and KS Trivedi, “Analylysis of software age in a web server,” IEEE Transactions on Reliability, vol. 55, no. 3, pp. 411–420, 2006.
- M. Grottke, K. Trivedi, “Fighting Bugs: Remove, Retry, Replicate, and Rejuvenate,” IEEE Computer 40(2): 107–109, 2007.
- المزيد من الأوراق البحثية حول وقائع ورشة عمل تقادم البرمجيات وتجديدها (WoSAR'08,'10, '11, '12, '13, '14) على IEEE Xplore.
- شذوذ البرمجيات
