Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

‫الجامعة العربية الخاصة للعلوم والتكنولوجيا‬

‫كلية الهندسة المعلوماتية‬


‫قسم تقانة المعلومات‬
‫السنة الثالثة‬

‫هندسة البرمجيات (‪)1‬‬


‫المحاضرة األولى‬

‫م‪ .‬ابراهيم أيوب‬


‫م‪ .‬اسماء الحداد‬
‫‪06/11/2023‬‬

‫‪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‬‬

You might also like