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