كيفية تجنب مشكلات البرامج
منوعات / / November 29, 2021
في هذا العصر الرقمي ، لا بد أنك سمعت عن عمالقة وسائل التواصل الاجتماعي مثل Facebook و Twitter ومنصات التجارة الإلكترونية مثل Alibaba و Amazon. تعتمد مواقع الويب هذه على حزم برامج مختلفة لتشغيلها. لقد غيرت هذه البرامج الطريقة التي نعمل بها ونفكر بها ونعيشها بصراحة تامة.
إلى جانب ذلك ، فإن العديد من الأجهزة التي كانت في السابق ميكانيكية فقط بطبيعتها ، يتم التحكم فيها الآن بواسطة البرامج. على سبيل المثال ، كانت منظمات الحرارة ذات يوم أجهزة كهروميكانيكية. ومع ذلك ، فهم يعتمدون الآن بشكل كبير على البرامج للتشغيل.
لكن، أخطاء البرامج يمكن أن تكون مشكلة كبيرة ، لا سيما مع زيادة اعتمادنا عليها في الأنشطة اليومية. في الواقع ، كانت هناك بالفعل عدة مناسبات أخفقت فيها البرامج في تحقيق الغرض المقصود منها ، مما أدى إلى نتائج غير سارة.
في هذه المقالة ، نتحدث عن 4 مناسبات فقد فيها أداء البرنامج إلى حد كبير علامته وكيفية تجنب مشكلات البرامج هذه.
1. الولايات المتحدة متعددة الدول 911 انقطاع
911 هي خدمة مهمة تسمح للأفراد بالاتصال بأفراد الطوارئ عند الحاجة. في بعض الأحيان ، يمكن أن يؤدي الاتصال بمرسلي الطوارئ عبر 911 إلى إحداث فرق بين الحياة والموت.
لذلك ، كانت هذه هي الكارثة تمامًا عندما في 9 أبريل 2014 ، فشل توجيه المكالمات 911 في سبع ولايات بالولايات المتحدة ، بما في ذلك كاليفورنيا وفلوريدا ومينيسوتا ونورث كارولينا وبنسلفانيا وساوث كارولينا وواشنطن.
نتج هذا الانقطاع عن خطأ ترميز يمكن الوقاية منه ، والذي حدث في مركز إدارة مكالمات الطوارئ في كولورادو الذي كان مملوكًا لشركة Intrado.
2. تأريض أسطول الخطوط الجوية المتحدة
في يوليو 2015 ، اضطرت شركة يونايتد إيرلاينز إلى ذلك أرض أسطولها بالكامل من الطائرات بسبب خلل في البرامج. أثر ذلك على أكثر من 4900 رحلة جوية على مستوى العالم وترك العديد من الركاب عالقين في المطارات ومن الواضح أنهم محبطون.
ربما كان هناك تأثير اقتصادي أيضًا لأن شركة الطيران كان عليها تعويض العديد من الركاب عن الإزعاج. ربما كان هناك أيضًا العديد من اجتماعات العمل المهمة التي تعرضت للفشل بسبب الأساس.
3. تويوتا كامري عطل دواسة المعجل
في سبتمبر 2007 ، كانت جين بوكوت تسافر على الطريق السريع 69 في أوكلاهوما مع الراكبة باربرا شوارتز ، عندما واجهت صعوبات السيطرة على سيارتها تويوتا كامري.
حاولت رفع قدميها عن دواسة الوقود لكن السيارة استمرت في التسارع. فشلت دواسة الفرامل في إيقاف السيارة وأجبرت على استخدام فرامل الطوارئ.
لسوء الحظ ، أدى هذا إلى انزلاق السيارة إلى جسر. وتوفي شوارتز نتيجة لذلك ودخل بوكاوت المستشفى لمدة خمسة أشهر بسبب إصابات خطيرة.
تم التكهن بأن الحادث وقع بسبب العديد من أوجه القصور في الترميز التي أدت إلى تعطل مهمة في وحدة المعالجة المركزية Camry. ستتحكم وحدة المعالجة المركزية هذه في عدد ضخم للغاية من الوظائف ، بما في ذلك الإشعال والتحكم في دواسة الوقود والتحكم في التطواف.
أصبح كود تويوتا في حالة من الفوضى المتشابكة بعد عدة سنوات من تراكم الرموز الجديدة على الرموز القديمة. يُشار إلى هذا عادةً باسم "رمز السباغيتي".
ومع ذلك ، فقد سلط حادث Bookout الضوء على هذه المشكلة وسلط الضوء على عيوب Toyota في عملية برمجياتها. حتى أنه وجد أن هناك أكثر من 10 ملايين طريقة احتمالية حدوث تسارع غير مرغوب فيه، بناءً على طريقة هيكلة كود تويوتا.
فشل Nest Thermostat
نيست شركة، المملوكة لشركة Alphabet ، التي تصنع منظمات الحرارة الذكية. منظمات الحرارة هذه أنيقة جدًا وتسمح للمستخدمين بالتحكم في درجة الحرارة في منازلهم من هواتفهم الذكية.
الشتاء الماضي ، منظمات الحرارة من Nest من ذوي الخبرة في شكل تحديث خاطئ للبرنامج ، مما تسبب في نفاد بطارياتها. لسوء الحظ حدث هذا الخطأ في منتصف الشتاء وترك العديد من المستخدمين بدون حرارة بشكل مؤقت. هذا بالتأكيد شيء لا تريد أن يحدث في هذا الوقت من العام.
تحليل موجز لقضايا البرمجيات
تتيح المناهج مثل التصميم المستند إلى النموذج و TLA + للمطورين الحصول على نظرة عامة شاملة حول كيفية عمل برامجهم.
يعتقد بريت فيكتور ، باحث الكمبيوتر البارز ، أن هناك قطع الاتصال بين المبرمجين والمشكلات التي يحاولون حلها باستخدام الأكواد.
بسبب هذا الانفصال ، يصبح من الصعب على المبرمجين تصور ما يحاولون وضعه في الرموز. يعتقد فيكتور أن هذا هو أحد العوامل المساهمة في أن تكون البرامج مليئة بالأخطاء.
ومع ذلك ، هناك أمل. مناهج مثل التصميم المستند إلى النموذج و TLA + تسمح للمطورين بالحصول على نظرة عامة شاملة حول كيفية عمل برامجهم.
يسمح التصميم المستند إلى النموذج ، كما يوحي الاسم ، بتطوير البرامج عبر النماذج المرئية. TLA + ، اختصار لـ Temporal Logic of Actions ، هي لغة مصممة لكتابة مواصفات برنامج الكمبيوتر. ما يميز TLA + هو أنه يسمح باختبار شامل والتحقق من البرامج قبل الإعلان عنها.
أثبت كل من التصميم المستند إلى النموذج و TLA + بالفعل ملحهما. تقنيات استريل، شركة تطوير برمجيات ، تستخدم تصميمًا قائمًا على النموذج لبناء برامج السلامة الحرجة بينما تم استخدام TLA + من قبل أمثال Microsoft لإصلاح خطأ فادح محتمل في Xbox ، ومن قبل وكالة الفضاء الأوروبية لإعادة كتابة الرموز لمسبار هبط على المذنب.
تحظى عملية كتابة التعليمات البرمجية بتقدير كبير من قبل المبرمجين. كثير منهم مفتونون ببساطة بعملية كتابة الرموز. لذلك ، يعتبر حمل بعض المبرمجين على قبول مناهج مثل التصميم المستند إلى النموذج و TLA + تحديًا. غالبًا ما يُنظر إلى هذه الأساليب على أنها أكاديمية بحتة وليس لها قابلية للتطبيق في العالم الحقيقي. ومع ذلك ، يجب أن يحدث تغيير في الرأي في أقرب وقت ممكن.
افكار اخيرة
يتم استخدام البرامج بشكل متزايد في التطبيقات التي تتطلب احتياطات أمان مضمنة. يجب تقديم طرق أفضل لتصميم البرامج في جميع المجالات لأن مثل هذه التطبيقات ضرورية في حياتنا.
تعتمد العمليات مثل الأتمتة بشكل كبير على البرامج هذه الأيام ، لكن خطأ واحدًا في سطر من التعليمات البرمجية يمكن أن يقودنا إلى نكسات كبيرة كما تظهر الحالات المذكورة أعلاه.
الآن ، تخيل شيئًا مثل الذكاء الاصطناعي (AI) يتم دمجه في هذه التطبيقات. منظمة العفو الدولية مخيف بما فيه الكفاية من تلقاء نفسه بدون اخطاء البرامج. أضف الأخطاء إلى المزيج ولن تخبرنا بما يمكن أن يحدث.
ومع ذلك ، هناك جانب مضيء هنا. بقليل من العمل وبعض الأدوات الجديدة ، يمكننا تطوير برامج وذكاء اصطناعي أفضل من خلال تصميمه بشكل أكثر سلامة واختباره على قوائمه.
دعونا نأمل أن تأخذ السلطات المعنية هذه القضية الحرجة على محمل الجد حتى نتمكن من استخدام البرمجيات بكامل إمكاناتها ولكن فقط لبناء مستقبل أكثر أمانًا وذكاءً.