الرئيسة
عن الشركة
الخدمات والمنتجات
أشقاؤنا
عملاؤنا وشركاؤنا
مكتبة شور
مقدمة في هندسة البرمجيات 1-5 

لماذا ولدت هندسة البرمجيات ؟

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

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

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

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

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

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

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

قد تثير الظاهرة السابقة في نفسك توجسًا وخيفًة من تطوير البرمجيات، ولكننا نهمس في أذنك قائلين أنه: "رغم هذا التنوع الواسع إلا أنه ثمة العديد من المبادئ والأفكار والنظريات التي تشكل جوهر هذه الأساليب المتنوعة، وهذا الجوهر هو قلب هندسة البرمجيات".

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

لقد تركت هندسة البرمجيات بصمتها على التاريخ، وأنا مقتنع تمامًا بأن هناك الكثير ليقومون به في هذا القرن.

م. زاهر الحاج حسين (بتصرف عن  Ian Sommerville)