وصف المساقات

SWEN6301: تطوير البرمجيات - Software Construction

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

SWEN6302: مناهج البحث في هندسة البرمجيات - Research Methods in Software Engineering

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

SWEN6303: هندسة متطلبات البرمجيات - Software Requirements Engineering

الطرق المتبعة في هندسة متطلبات أنظمة البرمجيات: كيفية تحديد و تعين و فحص متطلبات ومحددات البرمجيات الوظيفية منها وغير الوظيفية (النوعية). تغطية متعمقة لأحدى الطرق والأدوات المتبعة في هندسة المتطلبات واستخدامها لتحديد متطلبات البرمجيات وتدوينها وتوصيفها والتحقق من صحتها ومن ثم تحليلها. الاِطّلاع على الأدبيات البحثية الحديثة في هندسة متطلبات أنظمة البرمجيات.

SWEN6304: تصميم ومعمارية البرمجيات - Software Design and Architecture

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

SWEN6305: إدارة هندسة البرمجيات - Software Engineering Management

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

SWEN6306: فريق تطوير البرمجيات الموزع - Global Software Engineering Team

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

المتطلب السابق: SWEN6305

SWEN6307: هندسة برمجيات الخدمات الموجهة - Service-Oriented Software Engineering

يغطي هذا المساق دراسة شاملة لمفاهيم هندسة البرمجيات في الخدمات الموجهة ، حيث يحتوي المساق تغطية شاملة للمفاهيم الأساسية للخدمات الموجهة، نماذج الخدمات، وأسس الخدمات. كما يتم دراسة طرق وأساليب تصميم الخدمات، نمذجة الخدمات التجارية، تطوير الخدمات من خلال دراسة تكنولوجيا تطوير الخدمات مثل: (WSDL Services, RESTful Services). كما يركز المساق على شرح لأساليب هندسة البرمجيات في تطبيقات الخدمات الموجهة مع تزويد الطالب بالمهارات التطبيقية في تصميم الخدمات ونمذجتها.

SWEN6308: هندسة البرمجيات و التطبيقات المستندة إلى الإنترنت - Software Engineering of Internet-based Application

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

SWEN7301: اختبار وضمان جودة البرمجيات - Software Testing and Quality Assurance

مفاهيم وتقنيات اختبار أنظمة البرمجيات وضمان جودته: اختبار البرمجيات بمستويات: الوحدة، الرزمة البرمجية، وأجزاء النظام، والنظام. التقنيات الآلية واليدوية لتوليد والتحقق من صحة بيانات الاختبار، عملية الاختبار، الاختبار الثابت مقابل التحليل الديناميكي، واختبار وظائف النظام والتحقق من عملها، اختبارات الجودة وتقيم خصائص النظام النوعية مثل الموثوقية والأمن والمتانة.

المتطلب السابق: SWEN6301

SWEN7302: تطوير البرمجيات الآمنة - Secure Software Development

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

المتطلب السابق: SWEN6301

SWEN7303: هندسة البرمجيات للأنظمة الموزعة - Software Engineering for Distributed Systems

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

SWEN7304: صيانة البرمجيات وتطورها - Software Maintenance and Evolution

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

المتطلب السابق: SWEN6301

SWEN7305: تفاعل الإنسان مع الحاسوب - Human Computer Interaction (HCI)

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

المتطلب السابق: SWEN6303

SWEN7306: هندسة البرمجيات في الحوسبة المحمولة - Software Engineering in Mobile Computing

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

SWEN7307: تنقيب البيانات واستخلاص المعرفة - Data Mining and Knowledge Discovery

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

SWEN7308: مواضيع خاصة - Special topics

اختيار مواضيع في مجال هندسة البرمجيات أو علم الحاسوب ذات أهمية للطلاب وأعضاء الهيئة التدريسية.

المتطلب السابق: موافقة لجنة البرنامج

SWEN7309: دراسة مستقلة - Independent Study

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

المتطلب السابق: موافقة لجنة البرنامج

SWEN7310: هندسة المعرفة - Knowledge Engineering

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

SWEN7311: مواضيع بحثية متقدمة في هندسة البرمجيات - Advanced Research Topics in Software Engineering

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

المتطلب السابق: SWEN6302

SWEN7312: مشروع جماعي في هندسة البرمجيات - Software Engineering Team Project

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

SWEN830: حلقة بحث 1 - Seminar 1

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

المتطلب السابق: اجتياز 15 ساعة من المساقات الإجبارية على أن يكون مساق SWEN6302 من ضمنها.

SWEN831: حلقة بحث 2 - Seminar 2

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

المتطلب السابق: اجتياز 15 ساعة من المساقات الإجبارية على أن يكون مساق SWEN6302 من ضمنها.

SWEN860: الرسالة - Thesis

انجاز بحث علمي في مجال التخصص بموجب تعليمات الرسالة المعتمدة.