وثوقية البرمجيات وتحديد الأعطال التي تحدث فيها

حالة دراسية
Email : 126k 12k

وثوقية البرمجيات وتحديد الأعطال التي تحدث فيها

إعداد المهندسة يمان قطاع

المبحث الأول: المقدمة ومدخل إلى هندسة البرمجيات

1-1-المقدمة:

إن من ينظر اليوم إلى حياتنا اليومية سيدرك، دون كثيرٍ من التفكير ذلك الدور الهائل للبرمجيات في شتى مجالات حياتنا ‘ فالبنية التحتية للدول ومرافقها العامة ترتكز على الأنظمة الحاسوبية، والمصانع وعمليات التوزيع أصبحت مؤتمتة بشكل كامل أو شبه كامل، وليست الأنظمة التجارية والمالية بمنأى عن ذلك, ولهذا فإن الواقع السابق يقودنا إلى نتيجة منطقية جدًا وهي أن إنتاج وصيانة البرمجيات هما عنصران جوهريان في الاقتصاد الوطني والاقتصاد العالمي ككل.

أما هندسة البرمجيات فهي الفرع الهندسي الذي يركز على إنتاج برمجيات عالية الجودة وبتكلفةٍ معقولة.

وكما نعلم فإن المنتج البرمجي لا يخضع لقيود مادية ولا تحكمه قوانين فيزيائية ثابتة ولا إجرائيات تصنيع دقيقة، ولهذا فإنه منتج "مراوغ".

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

ولد مصطلح "هندسة البرمجيات" في العام 1968 الذي شهد مؤتمرًا لحلف شمال الأطلسي لتداول الأزمة المعروفة بأزمة البرمجيات ‘ وقد نشأت هذه الأزمة أساسًا بسبب الثورة (NATO)الهائلة التي شهدتها صناعة الحواسيب وقتئذٍ متمثلًة باختراع الدارات المتكاملة.

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

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

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

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

2- ما هي إجرائية تطوير البرمجيات؟
هي مجموعة النشاطات التي تعنى بإنتاج المنتج البرمجي إضافة إلى مخرجات هذه النشاطات ومهما يكن من الأمر فإن إتباع إجرائية برمجيات غير مناسبة من شأنه أن يضر بجودة المنتج البرمجي أو يرفع كلفته.

1-3- ما هي النشاطات التي تضمها أي إجرائية ؟

توصيف البرمجية :في هذه المرحلة يقوم كل من المهندس والزبون بتحديد المتطلبات وتوصيفها ثم يحددون القيود المفروضة على هذه البرمجية.
تطوير البرمجية :في هذه المرحلة يتم تصميم وبرمجة البرمجية.
إثبات صحة البرمجية:في هذه المرحلة يتم التأكد من أن البرمجية تنجز الوظائف التي يريدها الزبون.
تطور البرمجية: في هذه المرحلة يتم إجراء تعديلات على البرمجية لتنفيذ وظائف أو متطلبات جديدة.
1-4- ماذا نقصد بالبرمجية الجيدة؟

هناك جملة من المواصفات التي يجب أن تتحلى بها البرمجية حتى نقول أنها برمجية جيدة أو ذات جودة عالية.

ونذكر من هذه المواصفات:

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

يجب أن تكون البرمجية سهلة الاستخدام من قبل زبونها
1-5- التحديات التي تواجه البرمجيات في هذا العصر:

مع مطلع الألفية الجديدة تواجه هندسة البرمجيات التحديات التالية:

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

زمن التسليم: تستغرق العديد من تقنيات هندسة البرمجيات وقتاً طويلاً لإنجاز تطوير البرمجيات وذلك لضمان جودتها.
ويفرض تحدي زمن التسليم علينا تطوير أو تعديل البرمجيات بسرعة هائلة دون أن يؤثر ذلك في جودتها.

الثقة: دخلت البرمجيات العديد من مجالات حياتنا وهذا يفرض عليها أن تكون جديرة بثقتنا إذ لا بد أن نبحث عن تقنيات تجعل من هذه البرمجيات موثوقة فعلاً.
المبحث الثاني: جودة البرمجيات وعلاقتها بالوثوقي

لإستكمال قراءة المقال ( العدد الحادى عشر باب عالم المواصفات)

مقالات ذات صلة