ما هي هندسة البرمجيات؟ التعريف ، الأساسيات ، الخصائص

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

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

دعونا نلقي نظرة على التعريفات المختلفة لهندسة البرمجيات:

  • يعرّف معهد مهندسي الكهرباء والإلكترونيات (IEEE)، في معياره 610.12-1990، هندسة البرمجيات على أنها تطبيق نهج منهجي ومنضبط وقابل للحساب لتطوير وتشغيل وصيانة البرمجيات.
  • وقد عرّفها فريتز باور بأنها "إنشاء واستخدام المبادئ الهندسية القياسية". يساعدك في الحصول اقتصاديًا على برامج موثوقة وتعمل بكفاءة على الأجهزة الحقيقية.
  • يعرف بوم هندسة البرمجيات بأنها "التطبيق العملي للمعرفة العلمية في التصميم الإبداعي وبناء برامج الكمبيوتر. كما أنها تشمل الوثائق المرتبطة اللازمة لتطويرها وتشغيلها وصيانتها".

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

ما هي أزمة البرمجيات؟

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

جميع القضايا المذكورة أعلاه تؤدي إلى "أزمة البرمجيات".

نقدم الحلول الذكية

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

  • شهدت أواخر السبعينيات انتشارًا واسعًا لاستخدامات مبادئ هندسة البرمجيات.
  • شهدت الثمانينيات أتمتة عملية هندسة البرمجيات ونمو هندسة البرمجيات بمساعدة الكمبيوتر (CASE).
  • شهدت التسعينيات تركيزًا متزايدًا على الجوانب "الإدارة" لمعايير جودة المشاريع والعمليات تمامًا مثل ISO 1990

لماذا تحظى هندسة البرمجيات بشعبية كبيرة؟

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

لماذا تحظى هندسة البرمجيات بشعبية كبيرة؟

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

علاقة هندسة البرمجيات بالتخصصات الأخرى

وهنا مدى ارتباط هندسة البرمجيات بالتخصصات الأخرى:

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

تحديات هندسة البرمجيات

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

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

سمات لمنتجات البرمجيات

تتضمن خصائص أي منتج برمجي ميزات يعرضها المنتج عند تثبيته واستخدامه.

فهي ليست الخدمات التي يقدمها المنتج. وبدلاً من ذلك، فقد ارتبطت بالسلوك الديناميكي للمنتج واستخدام المنتج.

ومن أمثلة هذه الصفات:

Efficiency, reliability, robustness, maintainability, etc. 

ومع ذلك، فإن الأهمية النسبية لهذه الخصائص تختلف من نظام برمجي إلى آخر.

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

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

خصائص البرمجيات الجيدة

ينبغي الحكم على أي برنامج من خلال ما يقدمه وما هي الطرق التي تساعدك على استخدامه.

يجب أن يلبي كل برنامج السمات التالية:

  • التميز
  • انتقالي
  • الصيانة

فيما يلي بعض الخصائص المهمة للبرامج الجيدة التي تم تطويرها بواسطة محترفي البرمجيات

التميز

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

  • الميزانية
  • الكفاءة
  • قابليتها للاستخدام
  • الجدارة
  • صحة
  • الية عمل سفينة نوح
  • سلامة
  • الأمن

انتقالي

يعد هذا جانبًا أساسيًا عند نقل البرنامج من نظام أساسي إلى آخر:

  • التوافقية
  • إعادة استخدام
  • قابلية النقل
  • القدرة على التكيف

الصيانة

يتحدث هذا الجانب عن مدى قدرة البرنامج على التكيف مع البيئة المتغيرة بسرعة:

  • مرونة
  • قابلية الصيانة
  • نمطية
  • التوسعة

الملخص

  • هندسة البرمجيات هي عملية تحليل متطلبات المستخدم ثم تصميم وبناء واختبار التطبيقات البرمجية التي تلبي تلك المتطلبات
  • الأسباب المهمة لاستخدام هندسة البرمجيات هي: 1) البرامج الكبيرة، 2) قابلية التوسع 3) القدرة على التكيف 4) التكلفة و5) الطبيعة الديناميكية.
  • في أواخر الستينيات، أصبحت العديد من البرامج تتجاوز الميزانية. ولذلك فهو يقدم برامج غير موثوقة والتي تكون صيانتها باهظة الثمن.
  • شهدت أواخر السبعينيات انتشارًا واسعًا لاستخدامات مبادئ هندسة البرمجيات.
  • مفهوم هندسة البرمجيات 1) علوم الكمبيوتر 2) العلوم الإدارية 3) هندسة النظم و 4) الاقتصاد
  • تعد زيادة متطلبات السوق لزمن التنفيذ السريع أكبر التحديات في مجال هندسة البرمجيات.
  • 1) قابلية الصيانة، 2) الاعتمادية، 3) الكفاءة، و 4) سهولة الاستخدام هي أهم سمات منتجات البرمجيات.
  • أهم ثلاث خصائص للبرمجيات الجيدة هي 1) Opera2) الانتقالية 3) الصيانة.