Professional Documents
Culture Documents
Software Engineering - 1 - Lect-1-Introduction
Software Engineering - 1 - Lect-1-Introduction
1
مقدمة في هندسة البرمجيات
■ ماهي Software؟
هي برنامج مكون من مجموعة من الخطوات مع الوثائق المرتبطة بها.
■ ماهي هندسة البرمجيات ()Software Engineering؟
هي تخصص هندسي يهتم بجميع جوانب إنتاج البرمجيات من المراحل األولى وحتى
صيانة النظام بعد استخدامه.
2
Software Engineering
■ هندسة البرمجيات:
➢ هي طرق وأساليب ونظريات وأدوات لتطوير برامج احترافية.
➢ من السهل إلى حد ما كتابة برنامج دون استخدام أساليب وتقنيات هندسة البرمجيات
،وغالبا ً تكون هذه البرامج أغلى ثمنا ً وأقل موثوقية.
■ ماهي تكاليف هندسة البرمجيات؟
تقريبا ً %60من تكاليف البرنامج عبارة عن تكاليف تطوير و %40من التكاليف هي
تكاليف اختبار.
3
الخصائص األساسية للبرمجيات الجيدة
(1قابلية الصيانة:
يجب كتابة البرامج بطريقة بحيث يمكن أن تتطور لتلبية االحتياجات المتغيرة للعمالء.
(2الموثوقية:
يجب أال تتسبب البرامج التي يمكن االعتماد عليها في حدوث أضرار مادية واقتصادية
في حال فشل النظام
ويجب أال يتمكن المستخدمون الضارون من الوصول للنظام وإتالفه.
(3الكفاءة:
يجب أال يهدر البرنامج استخدام موارد النظام مثل الذاكرة والمعالج ،وتتضمن الكفاءة
أيضا ً سرعة االستجابة و وقت المعالجة.
(4القبول:
يجب أن يكون البرنامج مقبول من المستخدمين الذي تم تصميمه من أجلهم ،وهذا يعني
أنه يجب أن يكون مفهوم وقابل لالستخدام.
4
Software Products
❑ لدينا نوعين:
(1منتجات عامة:
هي برامج يتم إنتاجها ألغراض عامة تطور وتباع في السوق ،ويستطيع أي زبون
(شركة) شرائه والعمل عليه.
مثالMicrosoft Office :
(2منتجات خاصة:
برامج يتم إنتاجها بواسطة مبرمج لعميل معين لتلبية احتياجاته الخاصة.
مثال :نظام إدارة الكلية.
5
Software Products & Software Process
✓ :Software Product
هو البرنامج النهائي القابل لالستخدام.
✓ :Software Process
هي خطوات يعمل بها المهندس إلنتاج برنامج يلبي المطلوب بكفاءة عالية.
6
Software Development Life Cycle
دورة حياة تطوير البرمجيات:
❑ هي عملية تستخدم في صناعة البرمجيات لتصميم وتطوير واختبار برامج عالية
الجودة.
❑ تهدف إلى إنتاج برنامج عالي الجودة تلبي توقعات العمالء أو يفوقها ،وتصل إلى
اكتماله ضمن أوقات وتقديرات التكلفة.
❑ تحدد المهام التي يجب تنفيذها في كل خطوة من عملية تطوير البرمجيات.
ضا باسم "عملية تطوير البرامج".
❑ وتسمى أي ً
7
Software Development Life Cycle
مراحل دورة حياة تطوير البرمجيات:
(1توصيف البرنامج(تحليل المتطلبات):
وهي أهم مرحلة ،حيث يحدد العميل والمهندس البرنامج الذي سيتم إنتاجه والقيود
المفروضة على تشغيله.
(2تطوير البرنامج:
حيث يتم في هذه المرحلة تصميم البرنامج وبرمجته.
(3التحقق من صحة البرنامج:
في هذه المرحلة يتم فحص البرنامج والتأكد من أنه يحقق ما طلبه العميل.
(4تطور البرنامج:
حيث يتم تعديل البرنامج ليعكس متطلبات العميل والسوق المتغيرة.
8
SDLC Models
نماذج تطوير البرمجيات:
❑ :Plan Driven processes
نماذج التطوير المقادة بخطة ،حيث تتم عملية تطوير البرمجية وفق هذا النموذج ضمن
خطة ثابتة ومتسلسلة زمنيا ً ،أي يتم التخطيط لكافة مراحل المشروع قبل البدء بالمشروع
"التخطيط لكل شيء قبل البدء بأي شيء".
نماذج التطوير التي تنطوي تحت هذا الصنف نذكر منها: ▪
Waterfall Model ✓ النموذج الشاللي
✓ النموذج التزايدي Incremental Model
Spiral Model ✓ النموذج الحلزوني
تختلف هذه النماذج فيما بينها بالمراحل التي يتم إتباعها لتطوير البرمجية ،حيث يتم
اعتماد النموذج األنسب للتطوير بحسب البرمجية المطلوبة وخصائصها.
9
SDLC Models
نماذج تطوير البرمجيات:
❑ :Agile processes
في بعض األحيان قد ال تكون مناسبة عملية التطوير وفق النماذج الثابتة الخطة كتلك ▪
البرمجيات التي لها متطلبات متغيرة أثناء عملية التطوير ،لذلك ظهرت نماذج
Agileوالتي تسمح بتعديل المتطلبات حتى بعد مراحل متأخرة من عملية التطوير.
تتم عملية تطوير البرمجية وفق هذا النموذج من خالل تحقيق المتطلبات والوظائف ▪
المطلوبة من البرمجية بشكل تزايدي وتكراري على عدة مرات.
في كل مرة من المرات يتم تحديد جزء من وظائف البرمجية من قبل الزبون ليقوم ▪
فريق التطوير بتحقيقها وإطالع الزبون عليها ومن ثم االنتقال إلى جزء آخر ،وهكذا
تتكرر العملية حتى الوصول إلى المنتج النهائي.
10
Plan driven .VS. Agile Models
Plan driven Agile
تكون نتائج المراحل في نماذج " Plan driven تكون نتائج مراحلها على شكل نسخ تتطور
" Developmentثابتة و مخطط لها مسبقا. تباعا نتيجة مالحظات الزبون و تقييماته للنسخ
السابقة التي استلمها أو نتيجة قرارات الفريق.
قد يتأخر التسليم في نماذج " Plan driven تتميز نماذج " "Agileبالسرعة و االلتزام الشديد
" Developmentنتيجة الوقت الكبير الذي بموعد التسليم.
تستهلكه
بالنسبة ل " "Plan driven Developmentفإن نماذج " "Agileالتخطيط و التصميم يكون أثناء
التخطيط المسبق و التصميم نقطة أساسية العمل و ال حاجة لتحديد التصميمات مسبقا.
قبل البدء بالعمل.
تحتاج " ”Plan driven Developmentلفرق كبيرة " " Agileتتطلب فرق صغيرة يتواصل أعضاؤها
و تعد الشركات الكبيرة أكثر من يستخدمها فيما بينهم مباشر.
لكلفتها المرتفعة.
10/10/2017 11
Software Engineering Ethics
أخالقيات هندسة البرمجيات:
تتضمن هندسة البرمجيات مسؤوليات أكبر من مجرد تطبيق المهارات التقنية.
❑ الجانب األخالقي في هندسة البرمجيات ،منه:
(1السرية والحفاظ على خصوصية الزبون.
(2حقوق الملكية الفكرية.
(3سوء االستخدام :مثل نشر الفيروسات على جهاز العميل.
12