خطأ برمجي

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

الخطأ البرمجي في عالم الحوسبة هو ارتكاب هفوات في مرحلة تصميم البرنامج الحاسوبي أو أثناء كتابته بإحدى لغات البرمجة. ينتج عن هذا الخطأ غالبا أداء سيئ أو غير منتظر. في الإنجليزية (وحتى غيرها من اللغات) تستعمل كلمة bug عند الحديث عن خطأ برمجي.

أثار هذا الخطأ غالبا ما تصيب البرمجيات ولكنها تصيب أيضا بعض الأجهزة والآلات التي تضبط عملها برمجيات. وأشهر هذه الأخطاء هو خطأ عام 2000 والذي نتج عن سوء تقدير في عملية التعامل مع التواريخ وتخزينها.

تدخل عملية تصحيح الأخطاء في الدورة الحياتية لأي برنامج. في الغالب يصدر مطورو هاته البرامج ترقيعات تصحيحية أو حتى اصدارات جديدة تضيف إلى جانب الخدمات الجديدة تصحيحا للأخطاء السابقة.

الآثار[عدل]

بعض الأخطاء ليس لها تأثير ظاهر على وظيفة البرنامج، وبالتالي فقد تبقى مختفية وغير مرصودة لمدة طويلة. أخطاء أخرى أكثر اضرارا قد تتسبب في خلل في تنفيذ البرنامج فتعطل أو تجمده وقد يؤدي ذلك إلى الحرمان من الخدمة. صفات أخرى كأخطاء أو ثغرات أمنية قد تسمح على سبيل المثال لمتطفلين من تجاوز الرقابة للحصول على امتيازات غير مسموح بها.

قد يكون للأخطاء نتائج خطيرة للغاية. الأخطاء التي شابت برنامج مراقبة جهاز العلاج الإشعاعي Therac-25 كانت المسؤولة مباشرة عن وفاة بعض المرضى في ثمانينيات القرن العشرين. في عام 1996، فقدت وكالة الفضاء الأوروبية صاروخ اريان 5 (1ما يعادل مليار دولار أمريكي) بعد أقل من دقيقة من إطلاقه، وذلك بسبب خلل في برنامج التوجيه على متن الحاسوب. في يونيو 1994، تحطمت طائرة سلاح الجو الملكي البريطاني من طراز شينوك ما أسفر عن مقتل 29 شخص. في البداية ألصق خطأ بالطيار، ولكن تحقيق Computer Weekly كشف وبأدلة كافية لإقناع مجلس اللوردات أن خطأ برمجي في حاسوب الطائرة هو سبب الحادثة.[1]

في عام 2002، خلصت دراسة من المعهد الوطني للمعايير والتكنولوجيا بتكليف من وزارة التجارة الأمريكية أن للعيوب أو الأخطاء البرمجية تأثيرا هاما لدرجة تكبيد الاقتصاد الأمريكي خسائر قدرت بـ 59 مليار دولار أمريكي سنويا أي نحو 0.6 في المئة من إجمالي الناتج المحلي.[2]

الوقاية[عدل]

الأخطاء البرمجية هي نتيجة لطبيعة العوامل البشرية في عملية البرمجة. تنشأ الأخطاء من سوء الفهم المتبادل أو السهو الذي يقع فيه الفريق المبرمج أثناء :

  • تحديد المواصفات
  • التصميم

الترميز في إدخال البيانات والوثائق. يمكن أن تنشأ أخطاءا أكثر تعقيدا عن تفاعلات غير مقصودة بين أجزاء مختلفة من برنامج حاسوبي. يحدث هذا في كثير من الأحيان لأن برامج الحاسوب قد تكون معقدة، ملايين من الأسطر الطويلة في بعض الحالات وفي أحيان كثيرة مبرمجة من قبل العديد من المطورين على مدى زمني طويل، بحيث يفقد المبرمجون القدرة العقلية على تتبع كل ظرف ممكن يسمح للأجزاء بالتفاعل. فئة أخرى من الأخطاء تلقب سباق الشروط تقع عندما يتنافس أكثر من خيط على نفس المورد.

وضعت صناعة البرمجيات الكثير من الجهد في البحث عن وسائل لوقاية المبرمجين من ارتكاب أخطاء أثناء كتابة البرنامج [3][4] ويشمل هذا :

أسلوب البرمجة
بينما يتكفل المترجم في كثير من الأحيان بالأخطاء المطبعية والنحوية في نص البرنامج، تظهر الأخطاء عادة عندما يقع المبرمج في خطأ منطقي. تم تصميم عدة ابتكارات مختلفة في نمط البرمجة والبرمجة دفاعية لجعل هذه الأخطاء أقل احتمالا أو سهلة الاكتشاف. في بعض لغات البرمجة لا يتم الإشارة إلى بعض الأخطاء المنطقية لأنها قد تحمل معنا آخر مقبول للمترجم.
تقنيات البرمجة
تخلق الأخطاء في كثير من الأحيان تناقضات في البيانات الداخلية أثناء تشغيل برنامج. يمكن كتابة برامج للتحقق من اتساق البيانات الداخلية الخاصة أثناء التشغيل. وإذا صادف أن تضاربت يمكن للبرنامج أن يتوقف على الفور بحيث يمكن اكتشاف الأخطاء وتصليحها. بدلا عن ذلك، يمكن للبرنامج إبلاغ المستخدم ببساطة بمحاولة تصحيح التضارب ومتابعة تشغيل.
تطوير منهجيات
هناك عدة مخططات لإدارة نشاط مبرمج، بحيث يتم تقليل من عدد الأخطاء.
لغة البرمجة الدعم
رمز تحليل
الأجهزة

التدقيق[عدل]

طالع أيضا[عدل]

مقالات ذات صلة[عدل]

وصلات خارجية[عدل]

هوامش ومصادر[عدل]

  1. ^ The Chinook Helicopter Disaster
  2. ^ Software bugs cost US economy dear
  3. ^ Huizinga، Dorota؛ Kolawa, Adam (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. ISBN 0470042125. 
  4. ^ McDonald، Marc؛ Musson, Robert; Smith, Ross (2007). The Practical Guide to Defect Prevention. Microsoft Press. ISBN 0735622531. 

مراجع[عدل]