ما هي هندسة البرمجيات ؟ Software Engneering
مقدمة
إن الهدف الوظيفى من عمل
مهندس البرمجيات هو خلق أنظمة برمجيات عملية والتي لها قيمة اجتماعية واقتصادية،
باستخدام مناهج تطوير البرمجيات. وكما هو واضح، فإن هذا الدور ليس بهذة البساطة،
لكنه يشمل سلسلة كاملة من الأنشطة الداخلة فى مجال عمل مهندس البرمجيات،
والمتطلبات الهندسية الداخلة فى مجال البرمجيات هى التصميم، والترميز والتشفير،
وإختبار وصيانة وإدارة المشاريع، هى بعض الجوانب الأساسية الأخرى لتطوير البرمجيات.
عادة، فإن المشاكل الوظيفية
الملقاه على عاتق مهندس البرمجيات والتى يجب عليه حلها هى مشاكل معقدة جدا وكبيرة
قد لايستطيع مطور أو مبرمج واحد حلها. ففريق العمل فى هندسة البرمجيات، لا يتكون
فقط من المطورين، ولكن أيضا من المهندسين ومديرين المشاريع ومهندسين النظم، وأيضاً
العملاء؛ إن مشاريع البرمجيات من الممكن أن تكون كبيرة جداً وتتطلب التخطيط
الدقيق، والتنفيذ ليس فقط مجرد عملية كتابة الرموز أو الأكواد، لكنه أيضاً متابعة
المبادئ التوجيهية، وكتابة الوثائق، وكتابة أيضا وحدات الإختبار. فى حالة المشاريع
الكبيرة، فإن بمجرد إنتهاء المهندسين من كتابة الأكواد فعملية صيانة البرنامج يمكن
أن تبقى كثيراً منهم مشغول لفترة طويلة.
مهندسين البرمجيات يصممون
ويطورون العديد من أنواع البرامج، بما في ذلك ألعاب الكمبيوتر، وتطبيقات الأعمال،
ونظم التشغيل، وأنظمة التحكم في الشبكة، والبرمجيات الوسيطة.
بيئة
العمل
واحدة من التحديات الكبرى
التى تواجه مهندسين البرمجيات فى أثناء عملهم هى التغييرات المتكررة التي يمكن
إدخالها على المتطلبات لسهولة التحكم والتعامل مع البرنامج؛ وتحدى رئيسى آخر هو
الارتقاء إلى مستوى إلتزامات العمل المدرجة على الجدول الزمنى، من خلال ضمان تقديم
المنتج أو الخدمة في الوقت المحدد.
معظم مهندسين البرمجيات
يعملون 40 ساعة فى الأسبوع، إلا أن الكثير منهم يعملون وقتا أطول، وعادة حتى وقت
متأخر من المساء أو فى عطلات نهاية الأسبوع للوفاء بالمواعيد النهائية لإنهاء
العمل أو لحل مشاكل تقنية غير متوقعة. مهندسين البرمجيات الذين يعملون لدى منتجين
البرمجيات والشركات الاستشارية يسافرون كثيراً للقاء العملاء؛ إلا أن تقنيات العمل
عن بُعد أصبحت شائعة الإنتشار اليوم بدرجة كبيرة بين مهندسين البرمجيات لأنها توفر
لهم الوقت، وتسمح بإنجاز العمل الطلوب القيام به من مواقعهم عن بُعد.
نظرا لطبيعة عمل مهندس
البرمجيات التى تتطلب قضاء معظم الوقت فى العمل أمام نظام الحاسب الألى، والكتابة
على لوحة المفاتيح، فمهندسين البرمجيات أكثر عرضة من غيرهم لمشاكل العين، ومتاعب
الظهر، ومشاكل اليد والمعصم الصحية.
الفرص
الوظيفية
الطلاب الجدد حاملين درجات
البكالوريوس فى هندسة البرمجيات يجدون فرص الإلتحاق متاحة أمامهم لدراسة درجات
الدراسات العليا فى الاستشارات المستقلة، أو فى شركات تطوير البرمجيات، والشركات
المتعددة الجنسيات، وغيرها؛ وبعد ثلاث أو خمس سنوات من الخبرة فى العمل، العديد من
مهندسين البرمجيات يتم ترقيتهم إلى كبير مهندسين أو قائد فريق عمل، على حسب
المهارات العملية للمهندس وأدائه، كبير مهندسين البرمجيات يتم ترقيته بعد ذلك إلى
منصب أعلى، متخصص فى تصميم البرامج المعقدة والكبيرة، أو يحظى بدور في إدارة
المشروعات.
بعض الأدوار الوظيفية التى
من المتوقع أن تناسب طالب هندسة البرمجيات بعد الانتهاء من دراسته وهى:
مهندس برمجيات
مطور برامج
مهندس برامج كمبيوتر
مُختبر برمجيات
مدير مشروعات تكنولوجيا
المعلومات
محلل نظم معلومات
متخصص فى الحماية الأمنية
للمعلومات
متخصص فى بحوث الحاسب الألى
مبرمج
مبرمج ألعاب كمبيوتر
مصمم ألعاب كمبيوتر
متخصص دعم خدمات تكنولوجيا
المعلومات
مسئول عن موقع الكترونى
مسئول عن نظام من أنظمة
الحاسب أو الشبكة
مدير قاعدة بياناتمتخصص
شبكات وإتصالات
مجال البحوث والتطوير
ينبغي على الخريجين محاولة
كسب بعض الخبرة العملية فى هذا المجال، ويمكن الحصول على الخبرة من خلال العمل،
والتدريب الداخلى، أو العمل لمدة عام فى هذا المجال.
الفرق
بين البرمجة وهندسة البرمجيات
البرمجة هي كتابة الكود
المصدري فقط للبرنامج، وبالتالي تعتبر جزء من مرحلة التصميم في هندسة البرمجيات
التي تعمل على بناء النظام البرمجي كمشروع متكامل.
حيث ان البرمجة هي شيء غير ملموس إلى حد ما بالمقارنة مع المنتجات
الأخرى، وهي سلسلة من آلاف أو ملايين الأوامر التي تطلب من الحاسوب إجراء عمليات
معينة مثل عرض المعلومات، أو إجراء الحسابات، أو تخزين البيانات. هذه البرمجيات هي
بمثابة الروح من الجسد في النظام الحاسوبي وهي في توسع دائم وازدياد في التعقيد
والمتطلبات والمهام التي تقوم بتنفيذها.
أما هندسة البرمجيات فهي فرع من فروع الهندسة
يقوم على مجموعة أسس وقواعد تهدف إلى تصميم وتطوير البرامج بوفرة ونوعية عالية
تلبي احتياجات المستخدمين، هذا الفرع من الهندسة يتميز بأنه لا يحتاج إلى رأس مال
كبير وبالتالي الخسارة فيه قليلة على عـكس بقية الفروع الأخرى من الهندسة، كما لا
يكفي لإيجاد البرمجية المتكاملة والجيدة عمل شخص واحد وإنما يتطلب ذلك فريقاً من
المهندسين الجيدين. وقد كان ضروريا إيجاد علم يعني بهندسة البرمجيات لوضع الأسس
والمعايير التي تصون هذه المهنة من المتطفلين بحيث يصبح بالإمكان تمييز البرنامج
الجيد من غير الجيد.
0 التعليقات:
Post a Comment