SOFTWARE ENGINEERING
‫الثاني‬ ‫المحاضرة‬‫ة‬
:‫المهندسة‬ ‫إشراف‬.‫السبع‬ ‫لمى‬
‫اإلجرائية‬‫البرمجية‬
‫عمليات‬‫البرنامج‬‫هي‬‫األنشطة‬‫التي‬‫ينطوي‬‫عليها‬‫انتاج‬‫نظام‬
‫البرمجيات‬.
‫نماذج‬‫عملية‬‫البرمجيات‬‫هي‬‫تمثيالت‬‫مجردة‬‫من‬‫هذة‬‫العمليات‬.
‫مواصفات‬‫البرنامج‬
‫عملية‬‫تحديد‬‫الخدمات‬‫المطلوبة‬‫والقيود‬‫المفروضة‬‫على‬‫تشغيل‬
‫النظام‬‫وتطويره‬.
‫عملية‬‫هندسة‬‫المتطلبات‬:
i)‫دراسة‬‫الجدوى‬.
ii)‫استخراج‬‫المتطلبات‬‫وتحليلها‬.
iii)‫تحديد‬(‫توصيف‬)‫المتطلبات‬.
iv)‫التحقق‬‫من‬‫صحة‬‫المتطلبات‬.
‫عملية‬‫هندسة‬‫المتطلبات‬
‫تصميم‬‫البرمجيات‬‫وتنفيذها‬
‫عملية‬‫تحويل‬‫مواصفات‬‫النظام‬‫إلى‬‫نظام‬‫قابل‬‫للتنفيذ‬.
‫تصميم‬‫البرمجيات‬.
‫تصميم‬‫بنية‬‫البرمجيات‬‫التي‬‫تحقق‬‫مواصفات‬.
‫التنفيذ‬.
‫تحويل‬‫بنية‬‫النظام‬‫إلى‬‫برنامج‬‫قابل‬‫للتنفيذ‬.
‫أنشطة‬‫التصميم‬‫والتنفيذ‬‫ترتبط‬‫ارتباطا‬‫وثيقا‬‫ويمكن‬‫أن‬‫تكون‬
‫بنفس‬‫المستوى‬.
‫نموذج‬‫عام‬‫لعملية‬‫التصميم‬.
‫غير‬ ‫(الصورة‬)!. ‫الرئيسية‬ ‫المحاضرة‬ ‫في‬ ‫مترجمة‬
‫أنشطة‬‫التي‬‫تتكون‬‫منها‬‫مرحلة‬‫التصميم‬.
‫التصميم‬‫المعماري‬(‫تصميم‬‫مكونات‬‫النظام‬‫البرمجي‬).
‫التوصيف‬‫المجرد‬‫للنظام‬‫البرمجي‬.
‫تصميم‬‫ال‬‫واجهة‬.
‫تصميم‬‫المكونات‬.
‫تصميم‬‫بنية‬‫البيانات‬.
‫تصميم‬‫الخوارزمية‬.
‫عملية‬‫تصميم‬‫البرمجيات‬.
‫أساليب‬‫التصميم‬.
‫نهج‬‫منهجية‬‫لتطوير‬‫تصميم‬‫البرمجيات‬.
‫وعادة‬‫ما‬‫يتم‬‫توثيق‬‫التصميم‬‫كمجموعة‬‫من‬‫النماذج‬‫الرسومية‬.
‫النماذج‬‫الممكنة‬.
i)‫نموذج‬‫تدفق‬‫البيانات‬.
ii)‫نموذج‬‫الكيان‬-‫العالقة‬-‫السمة‬.
iii)‫نموذج‬‫الهيكلي‬.
iv)‫نموذج‬‫الكائن‬.
‫البرمجة‬‫و‬‫تصحيح‬‫األخطاء‬.
‫ترجمة‬‫التصميم‬‫إلى‬‫برنامج‬‫وإزالة‬‫األخطاء‬‫من‬‫هذا‬
‫البرنامج‬.
‫البرمجة‬‫نشاط‬‫شخصي‬-‫ال‬‫يوجد‬‫عملية‬‫محددة‬‫للبرمجة‬.
‫يقوم‬‫المبرمجين‬‫ب‬‫تنفيذ‬‫بعض‬‫اال‬‫ختبار‬‫على‬ ‫ات‬‫البرنامج‬
‫الكتشاف‬‫األ‬‫خطاء‬‫في‬‫البرنامج‬‫وإزالة‬‫هذه‬‫األخطاء‬‫في‬
‫عملية‬‫التصحيح‬.
‫عملية‬‫تصحيح‬‫األخطاء‬.
‫التحقق‬‫من‬‫األخطاء‬:
‫ويهدف‬‫التحقق‬‫والتحقيق‬‫إلى‬‫إظهار‬‫أن‬‫النظام‬‫يتوافق‬‫مع‬
‫مواصفاته‬‫ويلبي‬‫متطلبات‬‫العميل‬‫وأن‬‫النظام‬‫تم‬‫تطويره‬‫بشكل‬
‫صحيح‬.
‫يشمل‬‫عملية‬‫فحص‬‫ومراجعة‬‫واختبار‬‫النظ‬‫ام‬.
‫اختبار‬‫النظام‬‫يتضمن‬‫تنفيذ‬‫النظام‬‫مع‬‫مجموعة‬‫من‬‫حاالت‬
‫االختبار‬‫المستمدة‬‫من‬‫توصيف‬‫البيانات‬‫الحقيقية‬‫التي‬‫سيتم‬
‫معالجتها‬‫من‬‫قبل‬‫النظام‬.
‫مراحل‬‫االختبار‬:
‫اختبار‬‫الوحدة‬
‫يتم‬‫اختبار‬‫المكونات‬‫الفردية‬.
‫اختبار‬‫المكونات‬
‫يتم‬‫اختبار‬‫مجموعات‬‫ذات‬‫صلة‬‫من‬‫المكونات‬‫التابعة‬.
‫اختبار‬‫النظام‬‫الفرعي‬
‫يتم‬‫دمج‬‫وحدات‬‫في‬‫النظم‬‫الفرعية‬‫واختبارها‬.‫يجب‬‫أن‬‫يكون‬
‫التركيز‬‫هنا‬‫على‬‫اختبار‬‫الواجهة‬.
‫اختبار‬‫النظام‬
‫اختبار‬‫النظام‬‫ككل‬,‫اختبار‬‫الخصائص‬‫الناشئة‬.
‫اختبار‬‫القبول‬
‫اختبار‬‫مع‬‫بيانات‬‫العمالء‬‫للتحقق‬‫من‬‫أنه‬‫مقبول‬.
‫مراحل‬‫االختبار‬
( ‫كلمة‬ ‫(لالسف‬Module and unit code and tess‫بشكل‬ ‫تترجم‬ ‫لم‬ )
)!. ‫صحيح‬
‫تطوير‬‫البرنامج‬:
‫البرمجيات‬‫مرنة‬‫بطبيعتها‬‫ويمكن‬‫أن‬‫تتغير‬.
‫ومع‬‫تغير‬‫المتطلبات‬‫من‬‫خالل‬‫تغيي‬‫ر‬‫ظروف‬,‫العمل‬‫يجب‬‫أن‬
‫يتطور‬‫البرنامج‬‫الذي‬‫يدعم‬‫األعمال‬‫التجارية‬‫ويتغير‬‫أيضا‬.
‫تطوير‬‫النظام‬.
‫عملية‬‫البرنامج‬:
‫مجموعة‬‫منظمة‬‫من‬‫األنشطة‬‫المطلوبة‬‫لتطوير‬‫نظام‬‫البرمجيات‬:
‫التوصيف‬.
‫التصميم‬.
‫التحقق‬‫من‬‫الصحة‬.
‫التطوير‬.
‫نموذج‬‫عملية‬‫البرمجيات‬‫هو‬‫تمثيل‬‫مجرد‬‫للعملية‬.‫ويقدم‬‫وصفا‬
‫لعملية‬‫من‬‫منظور‬‫معين‬.
‫نموذج‬‫الشاللي‬.
‫مراحل‬‫النموذج‬‫الشاللي‬:
‫تحليل‬‫المتطلبات‬‫وتعريفها‬.
‫تصميم‬‫البرمجيات‬.
‫التنفيذ‬‫واختبار‬‫الوحدات‬.
‫التكامل‬‫واختبار‬‫النظام‬.
‫التشغيل‬‫والصيانة‬.
‫العيب‬‫من‬‫نموذج‬‫الشالل‬‫هو‬‫صعوبة‬‫استيعاب‬‫التغيير‬‫بعد‬
‫العملية‬‫جارية‬.
‫مشاكل‬‫نموذج‬‫الشاللي‬:
‫تقسيم‬‫غير‬‫مرن‬‫للمشروع‬‫في‬‫مراحل‬‫متميزة‬.
‫وهذا‬‫يجعل‬‫من‬‫الصعب‬‫االستجابة‬‫لمتطلبات‬‫العمالء‬
‫المتغيرة‬.
,‫ولذلك‬‫فإن‬‫هذا‬‫النموذج‬‫مناسب‬‫فقط‬‫عندما‬‫تكون‬
‫المتطلبات‬‫مفهومة‬‫جيدا‬.
‫التطوير‬‫التزايدي‬.
‫بدال‬‫من‬‫إيصال‬‫النظام‬‫كتسليم‬,‫وحيد‬‫يتم‬‫تقسيم‬‫التطوير‬
‫والتسليم‬‫إلى‬‫زيادات‬‫مع‬‫كل‬‫زيادة‬‫تقدم‬‫جزءا‬‫من‬‫الوظائف‬
‫المطلوبة‬.
‫تحدد‬‫أولويات‬‫احتياجات‬‫المستعملين‬‫وتدرج‬‫االحتياجات‬‫ذات‬
‫األولوية‬‫العليا‬‫في‬‫الزيادات‬‫المبكرة‬.
‫بمجرد‬‫البدء‬‫في‬‫التزايدي‬ ‫التطوير‬,‫يتم‬‫تجميد‬‫المتطلبات‬
‫ويتم‬‫اجراء‬‫التعديالت‬‫على‬‫المتطلبات‬‫في‬‫الزيادات‬‫التالية‬.
‫التطوير‬‫التزايدي‬.
‫مزايا‬‫التطوير‬‫التزايدي‬:
‫يمكن‬‫تسليم‬‫المتطلبات‬‫المهمة‬‫للعميل‬‫مع‬‫كل‬‫زيادة‬‫بحيث‬
‫تتوفر‬‫وظائف‬‫النظام‬‫في‬‫وقت‬‫سابق‬.
‫وتعمل‬‫الزيادات‬‫المبكرة‬‫كنموذج‬‫أولي‬‫للمساعدة‬‫في‬
‫استخالص‬‫االحتياجات‬‫للزيادات‬‫الالحقة‬.
‫انخفاض‬‫مخاطر‬‫فشل‬‫المشروع‬‫بشكل‬‫عام‬.
‫خدمات‬‫النظام‬‫ذات‬‫األولوية‬‫العليا‬‫يتم‬‫اختبارها‬‫عدد‬‫كبير‬‫من‬
‫المرات‬.
‫البرمجة‬‫المتطرفة‬.
‫نهج‬‫جديد‬‫للتنمية‬‫يستند‬‫إلى‬‫تطوير‬‫وتقديم‬‫زيادات‬‫صغيرة‬
‫جدا‬‫من‬‫األداء‬‫الوظيفي‬.
‫يعتمد‬‫على‬‫تحسين‬‫التعليمات‬‫البرمجية‬,‫المستمر‬‫مشاركة‬
‫المستخدم‬‫في‬‫فريق‬‫التطوير‬‫والبرمجة‬‫الزوجية‬.
‫التطوير‬‫الحلزوني‬.
‫تتمثل‬‫العملية‬‫باعتبارها‬‫دوامة‬‫بدال‬‫من‬‫سلسلة‬‫من‬‫األنشطة‬
‫مع‬‫التراجع‬.
‫كل‬‫حلقة‬‫في‬‫دوامة‬‫يمثل‬‫مرحلة‬‫في‬‫هذه‬‫العملية‬.
‫يتم‬‫اختيار‬‫أي‬‫مراحل‬‫ثابتة‬‫مثل‬‫مواصفات‬‫أو‬‫تصميم‬‫في‬‫دوامة‬
‫اعتمادا‬‫على‬‫ما‬‫هو‬‫مطلوب‬.
‫يتم‬‫تقييم‬‫المخاطر‬‫بشكل‬‫واضح‬‫وحلها‬‫طوال‬‫العملية‬.
‫ا‬‫الحلزوني‬ ‫لتطوير‬.
‫أحسن‬ ‫انكليزي‬ ‫خليها‬ ..‫صراحة‬ ‫تترجم‬ ‫صعب‬ ‫هي‬):
‫أجزاء‬‫نموذج‬‫الحلزوني‬:
‫تحديد‬‫األهداف‬:
‫ويتم‬‫تحديد‬‫أهداف‬‫محددة‬‫للم‬‫رحلة‬.
‫تقييم‬‫المخاطر‬‫وخفضها‬:
‫ويتم‬‫تقييم‬‫المخاطر‬‫ووضع‬‫أنشطة‬‫للحد‬‫من‬‫المخاطر‬
‫الرئيسية‬.
‫التطوير‬‫والتحقق‬‫من‬‫الصحة‬:
‫يتم‬‫اختيار‬‫نموذج‬‫تطوير‬‫للنظام‬‫الذي‬‫يمكن‬‫أن‬‫يكون‬‫أي‬
‫من‬‫النماذج‬‫العامة‬.
‫ال‬‫تخطيط‬:
‫يتم‬‫مراجعة‬‫المنتج‬‫ويتم‬‫التخطيط‬‫للمرحلة‬‫التالية‬.

Software engineering final