مبادئ هندسة البرمجيات - هندسة البرمجيات - ثالث ثانوي

80 .1 1 هندسة البرمجيات سيتعرف الطالب في هذه الوحدة على منهجيات تطوير البرمجيات الأكثر شيوعًا، وعلى المقصود بدورة حياة النظام، والمراحل المختلفة لهذه الدورة. وسيتعرف أيضًا على أهمية تحويل لغات البرمجة عالية المستوى إلى تعليمات برمجية قابلة للتنفيذ بلغة الآلة، وعلى البرامج المستخدمة للقيام بذلك. أهداف التعلم بنهاية هذه الوحدة سيكون الطالب قادرًا على أن : يُميز منهجيات تطوير البرمجيات الأكثر شيوعًا. > يُعرف المراحل المختلفة لدورة حياة تطوير البرمجيات. يُنشئ دورة حياة تطوير البرمجيات لأحد التطبيقات. يصف مرحلة التحليل لدورة حياة تطوير البرمجيات. يُعرف الطرائق المختلفة لجمع المتطلبات للأنظمة. يُصنف لغات البرمجة وخصائصها. > يصف أهمية مُترجم ومُفسِّر لغة البرمجة. يُصنف أدوات تطوير البرمجيات المختلفة. > يُعرف محرر البرمجة ومزاياه وتحديات استخدامه. > يُعرف بيئة التطوير المتكاملة ويشرح مزاياها وتحديات استخدامها. > يستخدم أدوات تطوير البرمجيات لتطوير حلول برمجية مختلفة. Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

هندسة البرمجيات

شرح هندسة البرمجيات

أهداف تعلم هندسة البرمجيات

شرح أهداف تعلم هندسة البرمجيات

الدرس الأول رابط الدرس الرقمي و مبادئ هندسة البرمجيات ، www.ien.edu.sa تُعدُّ هندسة البرمجيات (Software Engineering ) أحد فروع علم الحاسب التي تختص بتطوير أنظمة البرمجيات وصيانتها، وتتضمن هندسة البرمجيات تطبيق المبادئ والأسس الهندسية لتصميم البرامج وتطويرها، واختبارها، وصيانتها. تهدف هندسة البرمجيات إلى إنتاج برمجيات موثوقة وفعالة وذات كفاءة عالية تلبي متطلبات المستخدمين والأهداف التي تم تطويرها لتحقيقها، ويتم تحقيق ذلك من خلال عملياتٍ وأدوات وتقنيات منهجية محددة. تتضمن هندسة البرمجيات أيضًا إدارة عملية تطوير البرمجيات بما فيها عملية التخطيط للمشاريع، والتقييم ، وإدارة المخاطر، وضمان الجودة. أهداف دورة حياة تطوير البرمجيات (Software Development Lifecycle (SDLC تَصِفُ دورة حياة تطوير البرمجيات (SDLC) كيفية تنظيم عمليات إنتاج أنظمة المعلومات في شتى المجالات، ولا تقتصر دورة حياة تطوير البرمجيات على تحسين المنتج النهائي (نظام المعلومات) ، بل تشمل أيضًا إدارة عمليات الإنتاج والتطوير وتنظيم وترشيد استخدام الموارد خلال هذه العمليات. سيتم في هذا الدرس مناقشة مراحل دورة حياة تطوير البرمجيات ضمن سياق تطوير أنظمة تقنية المعلومات والاتصالات Information and Communication Technology ICT). تتكون دورة حياة تطوير البرمجيات من عدة مراحل متسلسلة كما يتضح في الشكل أدناه. ستستكشف جميع هذه المراحل من خلال مثال تطبيقي برمجي لنظام مصرفي. التوثيق التصميم التطوير </> 2 3 4 التحليل 1100 1 MWC 5 6 الاختبار شكل :1.1 دورة حياة تطوير البرمجيات التنفيذ الصيانة التقييم 9 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

مبادئ هندسة البرمجيات

شرح مبادئ هندسة البرمجيات

دورة حياة تطوير البرمجيات

شرح دورة حياة تطوير البرمجيات

10 التحليل Analysis تتمثل الخطوة الأولى في دورة حياة تطوير البرمجيات في تحديد المشكلة التي يجب حلها، ثم تحديد متطلبات الحل بأكبر قدر ممكن من الدقة من خلال عمليات جمع المتطلبات. تتضمَّن عملية جمع المتطلبات تحليل احتياجات وتوقعات أصحاب المصلحة (عملاء أو مُستخدمي النظام البرمجي)، وتحديدها، والتحقق من صحتها ، وإدارتها. يتضمَّن التحليل كذلك فهم مجال المشكلة وتحديد المتطلّبات الوظيفية وغير الوظيفية للبرنامج، ويتضح الاختلاف بين المتطلبات الوظيفية وغير الوظيفية فيما يلي: المتطلبات الوظيفية ( Functional Requirements): هي القدرات أو الميزات المحددة التي يجب أن يمتلكها البرنامج لتلبية احتياجات أصحاب المصلحة. على سبيل المثال، يُعدُّ توفير وظيفة البحث عن المنتجات وإضافتها إلى عربة التسوق وإتمام عملية الدفع بأمان لمستخدمي موقع تسوّق إلكتروني وتمكينهم ذلك، من المتطلبات الوظيفية الشائعة لذلك الموقع. المتطلبات غير الوظيفية ( Non-functional Requirements) : تتمثل في القيود وخصائص الجودة التي يجب أن يفي بها البرنامج ليكون مقبولا لدى أصحاب المصلحة. ومن الأمثلة المميّزة على المتطلبات غير الوظيفيّة للبرامج: توفير متطلبات الأداء، مثل زمن الاستجابة والإنتاجية، وتوفير متطلبات الأمان، من مثل خصوصية البيانات والمصادقة ، ومتطلّبات قابليّة الاستخدام، مثل وجود واجهة سهلة الاستخدام. يجب أخذ جميع الموارد بالاعتبار خلال عملية التحليل، بما فيها الموارد البشرية والمادية، والتكلفة والميزانية والوقت المتاح للمشروع، وكل ما يتعلق بالمشروع، ويجب تحديد جميع وظائف النظام الجديد المطلوبة بالتفصيل الإشارة إلى القيود والعقبات التي تتعلق بهذا النظام. تتضمن عملية التحليل تحديد المستخدمين واحتياجاتهم ومتطلباتهم ، وتُعدُّ الأدوات التالية الأكثر استخدامًا مع لجمع البيانات المطلوبة • الاستبانات. المقابلات. . الملاحظة المباشرة. يسعى أحد المصارف لإنشاء نظام إلكتروني لتقديم الخدمات المصرفية عبر الإنترنت وستشمل مرحلة التحليل في هذا المشروع جمع المعلومات الخاصة بمتطلبات الإدارة والعملاء من أجل تحديد الخدمات المصرفية التي يجب أن يتم توفيرها إلكترونيًا عبر الإنترنت، وتصميم واجهات المستخدم المطلوبة، وتحديد متطلبات الأمان والأذونات الرقمية المخصصة لموظفي المصرف والعملاء في النظام. التصميم Design مرحلة التصميم هي المرحلة الثانية من دورة حياة تطوير البرمجيات، حيث يوفّر محللو الأنظمة في هذه المرحلة الخبرات والمهارات اللازمة لتخطيط وتصميم حل المشكلة المحدّدة. تحدد مرحلة التصميم أنواع البيانات المطلوبة والواجهات المختلفة للنظام، وبشكل أكثر تحديدا، تتضمن مرحلة التصميم ما يلي: 1. تحديد تدفق البيانات والمعلومات في جميع أجزاء النظام الجديد. 2. تحديد البيانات الرئيسة المراد معالجتها، والتي يتم تحديد هياكل البيانات المستخدمة من قبل النظام بناءً عليها. </> وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

مرحلة التحليل في دورة حياة تطوير البرمجيات

شرح مرحلة التحليل في دورة حياة تطوير البرمجيات

يسعى أحد المصارف لإنشاء نظام إلكتروني لتقديم الخدمات المصرفية عبر الإنترنت

شرح يسعى أحد المصارف لإنشاء نظام إلكتروني لتقديم الخدمات المصرفية عبر الإنترنت

مرحلة التصميم في دورة حياة تطوير البرمجيات

شرح مرحلة التصميم في دورة حياة تطوير البرمجيات

.3 تحديد مكان تخزين البيانات وطريقة تخزينها ومعايير الأمان الخاصة بها. .4 تصميم التقارير وغيرها من مخرجات البيانات والمعلومات. .5 تصميم واجهات المستخدم وتحديد وظائف كافة العناصر الموجودة فيها. 6. تصميم واجهات تكاملية لتبادل البيانات مع أنظمة المعلومات والاتصالات الأخرى. 7. تحديد طريقة اختبار النظام ، والبيانات المستخدمة للاختبار، وكيفية استخدامها في ضمان الجودة. خلال عملية تصميم النظام المصرفي الإلكتروني، يجب تحديد مسارات تدفق البيانات بين كل من النظام والمستخدمين وقواعد البيانات المختلفة وأنظمة المعلومات المتكاملة الأخرى. تعتمد هذه المسارات جميعها على أنواع البيانات المختلفة التي يجب تخزينها وحمايتها ونقلها . يجب تحديد متطلبات النظام لعملية إدخال البيانات وإخراجها ، كما يجب تصميم واجهات مستخدم خاصة بالموظفين والعملاء، وذلك بالإضافة إلى واجهات لتبادل البيانات والمعلومات المالية مع المؤسسات الأخرى. وفي الختام يجب تحديد الاختبارات التي يجب إجراؤها لضمان عمل النظام كما هو متوقع. التطوير والاختبار Development and Testing و المرحلتان التاليتان في دورة حياة تطوير البرمجيات هما التطوير والاختبار. بعد إجراء عمليتي التحليل والتصميم بشكل مفصل، يتعين على المبرمجين وأولئك المسؤولون عن اختبار النظام تحويل المتطلبات والمواصفات إلى مقاطع برمجية باستخدام البرامج المناسبة ولغات البرمجة المختلفة. لا يُمكن الفصل بين مرحلتي التطوير والاختبار، حيث يجب اختبار النظام بشكل شامل أثناء التطوير وبعده لضمان معالجة جميع المشاكل وللتأكد بشكل مطلق بأن النظام يلبي متطلبات المستخدمين، وتتضمن عناصر النظام التي تتطلب اختبارًا مستقلًا ما يلي: .1. اختبار صحة البيانات المدخلة ник قد يتسبب إدخال بيانات غير صحيحة في حدوث مشاكل داخل النظام المصرفي، ولذلك من المهم اختبار صحة البيانات المدخلة في مثال الخدمات المصرفية الإلكترونية، يتطلب ذلك تطوير قواعد الأمان لاستقبال كلمات المرور من المستخدمين، وتحديد عدد المحاولات غير الصحيحة المسموح بها عند إدخال كلمات المرور، وقواعد التحقق من الأرقام المدخلة في النظام كأرقام الهواتف المحمولة وأرقام الهوية الشخصية، وكذلك القواعد التي تحدد الحد الأقصى للمبالغ التي يمكن سحبها أو تحويلها من خلال النظام. 2. اختبار وظائف النظام وقابليته للاستخدام: يتضمَّن ذلك اختبار واجهة المستخدم وتجربة المستخدم، على سبيل المثال في النظام المصرفي الإلكتروني يُمكن تشكيل مجموعة من أصحاب المصلحة لاختبار عمل النظام ووظائفه المختلفة كما هو مطلوب، وذلك من خلال القيام بالعمليات التي يقدمها النظام مثل: التحقق من الأرصدة أو إجراء المعاملات. 11 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

تحديد مكان تخزين البيانات وطريقة تخزينها ومعايير الأمان الخاصة بها

شرح تحديد مكان تخزين البيانات وطريقة تخزينها ومعايير الأمان الخاصة بها

خلال عملية تصميم النظام المصرفي الإلكتروني

شرح خلال عملية تصميم النظام المصرفي الإلكتروني

مرحلة التطوير والاختبار في دورة حياة تطوير البرمجيات

شرح مرحلة التطوير والاختبار في دورة حياة تطوير البرمجيات

: 3. اختبار أخطاء التشغيل يتضمَّن ذلك اختبار الأخطاء المنطقية في البرمجة. على سبيل المثال، من الضروري اختبار ما إذا كانت خطوات الحركة المالية تكتمل بشكل صحيح في النظام المصرفي الإلكتروني، وما إذا كانت الرسائل الموجهة للمُستخدم تظهر وفق الخطوات المناسبة مثل: رسائل الخطأ والتأكيد. .4 اختبار الاتصال بالأنظمة الأخرى : يتم فيه اختبار ارتباط النظام بالأنظمة الأخرى بشكل صحيح. في مثال نظام المصرف الإلكتروني، يتطلب ذلك اختبار مدى تكامل النظام الجديد بشكل جيد مع أنظمة تقنية المعلومات الأخرى في المصرف مثل: قواعد بيانات العملاء، وأنظمة تحويل العملات، وأنظمة الصرف الآلي. التنفيذ Implementation تبدأ مرحلة التنفيذ بعد الحصول على موافقة المستخدم على النظام الجديد الذي تم تطويره واختباره، ويتم في هذه المرحلة تحويل الخطط التي تم وضعها وإقرارها إلى واقع وذلك من خلال وضع المنتج ( النظام) في الخدمة، ويتم فيها أيضًا تجهيز النظام للنشر والتثبيت ليكون جاهزا للعمل وللاستخدام. يشمل التنفيذ أيضًا تدريب المستخدمين النهائيين ، وذلك للتأكد من معرفتهم بكيفية استخدام النظام ووظائفه. قد تستغرق مرحلة التنفيذ وقتًا طويلًا حسب درجة تعقيد النظام ووظائفه، ويتطلب التنفيذ أحيانًا نقل البيانات من النظام السابق إلى النظام الجديد، وغالبًا ما يُفضّل إدخال النظام الجديد للخدمة بشكل تدريجي. 12 قد يتطلب تنفيذ نظام مصرفي إلكتروني جديد للبنك وضع مرحلةٍ انتقالية يتم فيها نشر إصدار تجريبي للنظام، حيث يُمكن للعملاء خلال هذه المرحلة اختبار النظام الجديد وتقديم ملاحظات حول تجربة استخدامه قبل إنتاج الإصدار النهائي من النظام. شكل 1.2 تصميم وتنفيذ منتج برمجي وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

اختبار أخطاء التشغيل

شرح اختبار أخطاء التشغيل

مرحلة التنفيذ في دورة حياة تطوير البرمجيات

شرح مرحلة التنفيذ في دورة حياة تطوير البرمجيات

قد يتطلب تنفيذ نظام مصرفي إلكتروني جديد للبنك وضع مرحلة انتقالية يتم فيها نشر إصدار تجريبي للنظام

شرح قد يتطلب تنفيذ نظام مصرفي إلكتروني جديد للبنك وضع مرحلة انتقالية يتم فيها نشر إصدار تجريبي للنظام

تصميم وتنفيذ منتج برمجي

الصيانة Maintenance تُعدُّ الصيانة ضرورية لمعالجة أي أخطاء خلال عمل النظام، وكذلك لضبط النظام حسب التغيرات في بيئات عمله المختلفة، ويجب أن يفي النظام بالاحتياجات الحالية، وأن يقدم كذلك تحسينات وميزات وظيفية مضافة أخرى للتعامل مع الاحتياجات المستقبلية. يتم تقييم النظام بشكل مستمر لضمان حداثته من خلال ملاحظات المستخدمين وتقييم فريق تقنية المعلومات، ومن الطبيعي أن يحتاج العمل بالنظام الجديد إلى إدخال بعض الإصلاحات أو التعديلات الصغيرة، ومن المهم إدراك أنّ الاحتياجات والمتطلبات تتغير بانتظام، ولذلك يتعين على فريق تقنية المعلومات المحافظة على عمل النظام بشكل مستمر كما هو متوقع. عند تنفيذ النظام المصرفي الإلكتروني، ستكون الحاجة إلى الصيانة المستمرة للنظام قائمةً لضمان استمرار عمل النظام وأمنه وحداثته. تتطلب الأنظمة توافر تحديثات البرامج والأجهزة الرئيسة والثانوية للحماية من التهديدات الأمنية الجديدة، وإصلاح الأخطاء غير المتوقعة، وتنفيذ وظائف جديدة، ويُمكن لبعض عمليات صيانة النظام أن تتم تلقائيًا، مثل تحديثات الأمان التلقائية، ولكن كثيرًا من مهام الصيانة الأخرى كتحديثات الأجهزة ستتطلب وجود المهندسين لتنفيذها. التوثيق Documentation تتضمن عملية التوثيق وصف جميع تفاصيل تحليل النظام وتصميمه وتطويره واختباره وتنفيذه وصيانته، ويتم استخدام تلك التفاصيل لإنشاء قاعدة معرفية لكيفية عمل النظام، وتتم الإشارة إلى توثيق النظام عند الحاجة إلى أي تغيير أو إصلاح أو تعديل. يجب أن يتم تحديث التوثيق ذاته من حين إلى آخر، ويُعدُّ التوثيق مهما في تطوير البرمجيات، حيث يساهم في تعزيز التواصل والشفافية، ويتيح القيام بالصيانة بشكل فعّال، ويزيد من كفاءة النظام وسهولة التدريب وتحديث النظام، كما يساعد التوثيق على ضمان تطوير نظام البرنامج باستمرار وبفعالية بما يلبي احتياجات المستخدمين المستهدفين بصورة دائمة. التقييم Evaluation يجب تقييم كل مرحلة من مراحل دورة حياة تطوير البرمجيات، وقد يتضمَّن ذلك اتخاذ بعض القرارات الصعبة، حيث أن وجود مشكلة في التصميم قد يؤدي إلى مشاكل أكبر لاحقًا أثناء التطوير أو عند تنفيذ النظام واستخدامه. يُمكن إجراء التقييم من قبل الجهات التالية للتأكد من أن النظام يفي بالمتطلبات: فريق تقنية المعلومات. المستخدمون. الإدارة. من المجالات التي تحتاج إلى تقييم مستمر . كفاءة النظام. • سهولة الاستخدام والتعلُّم. • ملاءمة النظام للمهام المطلوبة. 13 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

مرحلة الصيانة في دورة حياة تطوير البرمجيات

شرح مرحلة الصيانة في دورة حياة تطوير البرمجيات

عند تنفيذ النظام المصرفي الإلكتروني

شرح عند تنفيذ النظام المصرفي الإلكتروني

مرحلة التوثيق في دورة حياة تطوير البرمجيات

شرح مرحلة التوثيق في دورة حياة تطوير البرمجيات

مرحلة التقييم في دورة حياة تطوير البرمجيات

شرح مرحلة التقييم في دورة حياة تطوير البرمجيات

14 لنفترض دورة حياة تطوير البرمجيات لتطبيق هاتف ذكي SDLC for a Smartphone Application أنك تريد إنشاء تطبيق للهاتف الذكي يوفّر معلومات حول المناطق السياحية المختلفة في المملكة العربية السعودية. يهدف هذا التطبيق بشكل خاص إلى مساعدة كبار السن الذين يعانون من مشاكل في الرؤية أو ارتجاف اليدين (الشلل الرعاش / مرض باركنسون) في الحصول على معلومات حول المواقع السياحية التي يُمكن زيارتها في المملكة العربية السعودية، وسيسمح التطبيق للأشخاص الذين يعانون من مشاكل في الرؤية بتعديل حجم خط النصّ بما يناسبهم ليتمكنوا من قراءة المعلومات بسهولة، وسيسمح لمن يعانون من مرض الشلل الرعاش بضبط حجم الأزرار لمنعهم من الضغط على زر بشكل غير صحيح أو عن طريق الخطأ، وأخيرًا سيتمكن المستخدمون من تغيير الألوان في التطبيق إلى الأبيض والأسود لتسهيل القراءة وتقليل إجهاد العين. تطبيق مصمم لأنظمة تشغيل أندرويد بحجم شاشة ثابت وبالألوان. التصميم التوثيق التطوير ستستخدم برنامج مخترع التطبيقات (App Inventor) لتنفيذ التطبيق. 3 2 التحليل 4 1 ник الاختبار 5 6 تطبيق مخصص للهواتف الذكية والأجهزة اللوحية، للأشخاص الذين يعانون من مشاكل في الرؤية والشلل الرعاش، بخطوط وأزرار قابلة للتعديل. الصيانة التنفيذ اختبار التطبيق ثم نشره وتدريب المستخدمين على كيفية استخدامه. شكل 1.3 ملخص دورة حياة تطوير البرمجيات لتطبيق الهاتف الذكي التقييم استقبال التغذية الراجعة والملاحظات من المستخدمين والحد من مشاكل النظام وصيانته. يتضمن التغذية الراجعة من المستخدمين. وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

دورة حياة تطوير البرمجيات لتطبيق هاتف ذكي

شرح دورة حياة تطوير البرمجيات لتطبيق هاتف ذكي

كما تعلمت سابقًا في هذا الدرس، ستتضمن دورة حياة تطوير البرمجيات لهذا التطبيق المراحل التالية: التحليل والتصميم والتطوير والاختبار والتنفيذ والصيانة والتوثيق والتقييم. التحليل : يتم في مرحلة التحليل تحديد المشكلة التي تحتاج إلى حل، وهكذا فإن التطبيق سيُصمَّم لما يلي: للهواتف الذكية والأجهزة اللوحية. للأشخاص الذين يعانون من مشاكل في الرؤية. للأشخاص الذين يعانون من ارتجاف اليدين بسبب مرض الشلل الرعاش. بناءً على هذه المتطلبات، يجب أن يتميز التطبيق بإمكانية تغيير حجم الخط وتعديل الأزرار، ويجب أن تكون الأزرار كبيرة جدًا بحيث يسهل الضغط عليها ، حتى يُمكن استخدامها من قبل الأشخاص الذين يعانون من ارتجاف اليدين. التصميم : تشمل مرحلة التصميم تحديد جميع التفاصيل الفنية للتطبيق، وبشكل أكثر تحديدًا ، تشمل المتطلبات الفنية ما يلي: يجب أن يكون التطبيق مصمما لنظام تشغيل أندرويد. يجب الشاشة ثابتًا. أن يكون حجم يجب ألا يحتوي على ألوان كثيرة لتجنب إرباك المستخدمين. التطوير والاختبار والتنفيذ يقوم مهندسو البرمجيات والمختبرين في مرحلتي التطوير والاختبار بالتنفيذ العملي للمتطلبات والمواصفات الموضحة في الخطوات السابقة. سيتم استخدام برنامج مخترع التطبيقات (App Inventor في هذه المرحلة لتطوير التطبيق المطلوب، وسيحتاج التطبيق بعد ذلك إلى اختبار شامل قبل نشره في متجر التطبيقات مثل قوقل بلاي Google Play قد يكون من الأفضل البدء بإصدار تجريبي من التطبيق يُتاح لعدد محدود من المستخدمين، من أجل إجراء اختبار إضافي للتطبيق قبل إصداره النهائي. الصيانة تشمل مرحلة الصيانة جمع التغذية الراجعة من المستخدمين، وذلك من أجل استخدامها لتحسين التطبيق، ويتم الاستعانة بملاحظات المستخدمين لتقييم التطبيق بشكل مستمر لتحسينه ولضمان استمراريته في العمل، ويُمكن عمل بعض التصحيحات أو التعديلات الصغيرة حسب الحاجة. التوثيق والتقييم يُعرف التوثيق الخاص بتطبيق الهاتف الذكي على أنه مجموعة من الملاحظات والمواد المكتوبة التي توفّر معلومات شاملة حول التطبيق، بما في ذلك تصميمه وتطويره وصيانته، وتساعد عملية التوثيق المطورين وأصحاب العمل والمستخدمين في فهم الغرض من التطبيق ووظائفه وعمله . أما فيما يتعلق بالتقييم ، فيُمكن جمع المعلومات من تصنيفات متجر قوقل بلاي ومراجعات التطبيق. يجب القيام بالخطوات التالية لتوثيق التطبيق: كتابة مُستند واضح يوضّح تصميم النظام. إضافة التعليقات التوضيحية داخل أقسام التعليمات البرمجية أثناء عملية التطوير. توثيق عمليات اختبار النظام بشكل دقيق. إعداد دليل المستخدم. 15 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

ملخص دورة حياة تطوير البرمجيات

شرح ملخص دورة حياة تطوير البرمجيات

فرص العمل في هندسة البرمجيات Job Opportunities in Software Engineering تقدم هندسة البرمجيات فرص عمل متنوعة في مختلف المجالات والصناعات. فيما يلي بعض فُرص العمل الأكثر شيوعًا في هندسة البرمجيات مطور ويب: يختص بتطوير مواقع وتطبيقات الويب. مطور تطبيقات الأجهزة المحمولة يختص بتطوير تطبيقات الأجهزة المحمولة لمنصتي آي أوإس (iOS) أو أندرويد .(Android) . مهندس عمليات التطوير يختص بأتمتة عملية توزيع وتشغيل الأنظمة البرمجية. : مهندس التخزين السحابي: يختص بإنشاء وصيانة أنظمة البرمجيات السحابية. • مسؤول قاعدة البيانات يختص بإدارة قواعد البيانات وصيانتها. مهندس ضمان الجودة: يختص باختبار الأنظمة البرمجية للتأكد من تلبيتها لمعايير الجودة. • مسؤول النظام يختص بصيانة وإدارة أنظمة وشبكات الحاسب. منهجيات تطوير البرمجيات Software Development Methodologies تختلف عملية تطوير نظم المعلومات الضخمة بشكل جوهري عن عملية تطوير البرامج الصغيرة والتطبيقات، حيث يتطلب تطوير البرمجيات الضخمة كأنظمة المؤسسات الحكومية والشركات التجارية جهدًا كبيرًا وقد يستغرق شهورًا أو سنوات، وقد يُشكّل فهم متطلبات العملاء وطبيعة وظائف تلك الأنظمة أو البرامج تحديًا لفريق التطوير. تهدف هندسة البرمجيات إلى تطوير الأساليب والبروتوكولات وطرائق سير العمل والمراقبة للتغلب على هذه التحديات، وتوجد العديد من منهجيات تطوير البرمجيات، ويُستخدم كل منها لأغراض مختلفة ، ومن أكثر المنهجيات شيوعًا ما يلي: منهجية الشلال The Waterfall Methodology تُعدُّ هذه المنهجية من أقدم منهجيات تطوير البرمجيات، وقد سميت بذلك لأن مراحل تطورها تتسلسل من مرحلة إلى أخرى بشكلٍ أحادي الاتجاه، وعند اكتمال مرحلة معينة من التطوير، يتم الانتقال إلى المرحلة التالية دون العودة إلى المراحل السابقة، وتمثل مُخرجات كل مرحلة مدخلات للمرحلة التالية. improm Trello onboarding notification integration SIGLARS mobile App Build NPS Restructu Onboarding flow Trello Chutbat integration Allow Jepochs Launch wabeik Chrome inleyin شكل 1.4 التخطيط لتطوير منتج برمجي وزارة التعليم Ministry of Education 2024-1446 Githud integratu 16

الدرس الأول: مبادئ هندسة البرمجيات

فرص العمل في هندسة البرمجيات

شرح فرص العمل في هندسة البرمجيات

منهجيات تطوير البرمجيات

شرح منهجيات تطوير البرمجيات

التخطيط لتطوير منتج برمجي

منهجية الشلال

شرح منهجية الشلال

منهجية الشلال بكافة مراحل تطوير النظام بصورة متسلسلة ، فكل مرحلة تعتمد على مخرجات المراحل التي تسبقها كما يلي: التحليل 1 مرحلة التحليل Analysis Stage يتم في هذه المرحلة جمع المتطلّبات بالطرائق التي تم شرحها سابقًا، ويتم توثيقها بدقة وبالتفصيل عند الانتهاء اء من العمل. يتم التحقق من هذه المتطلبات والموافقة عليها من قِبَل العميل قبل البدء بمرحلة التصميم، ويُمكن أن تتسبب التغييرات التي يتم إجراؤها على المتطلبات لاحقًا في العملية إلى تأخيرٍ كبير أو مشاكل خطيرة في النظام. 2. مرحلة التصميم Design Stage تتم ترجمة المتطلّبات الموثقة من المرحلة السابقة في تصميم يوضّح مُخطَّط النظام ويحدد احتياجاته من الموارد، ويعكس تصميم النظام كيفية تنفيذ المتطلبات من ناحية فنية والتسلسل المنطقي للعمليات التي تتم به. 3. مرحلة التطوير Development Stage يتم في هذه المرحلة إنشاء النظام وكتابة البرامج بناءً على مخرجات التصميم. التطوير الاختبار الصيانة التنفيذ التصميم 4. مرحلة الاختبار Testing Stage شكل :1.5 مراحل منهجية الشلال يتحقق مختبرو النظام في هذه المرحلة من استيفاء النظام للمتطلبات الموثقة في المراحل السابقة، ويقومون بالتحقق فيما إذا كانت هناك أية أخطاء يجب إصلاحها، ويطّلع العميل على المنتج الحقيقي لأول مرة في هذه المرحلة. .5 مرحلة التنفيذ Implementation stage يتم في هذه المرحلة تنفيذ النظام وتسليمه للعميل، ويتم تدريب المستخدمين أو تأهيلهم، كما يتم وضع وتشغيل آليات مراقبة أداء النظام للتأكد من عدم وجود أخطاء أثناء التنفيذ. 6 مرحلة الصيانة Maintenance Stager تتضمن هذه المرحلة إصلاح الأخطاء التي تظهر أثناء الاستخدام اليومي للنظام، بالإضافة إلى إجراء بعض التطويرات والتحسينات على النظام. 17 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

تمر منهجية الشلال بكافة مراحل تطوير النظام بصورة متسلسلة

شرح تمر منهجية الشلال بكافة مراحل تطوير النظام بصورة متسلسلة

18 مزايا منهجية الشلال في التطوير تُعد المراحل في هذه المنهجية واضحة ومحددة، ولا تتداخل مع بعضها. • يُعد تخطيط المشروع وإدارته ومتابعته أمرًا سهلًا وذلك بسبب وضوح المراحل. تُناسب هذه المنهجية المشاريع الصغيرة ذات المتطلبات الواضحة والثابتة. تحديات منهجية الشلال في هذه المنهجية يصعب تعديل مرحلة ما بالعودة إلى سابقتها ؛ وذلك لاعتماد كل مرحلة على المرحلة السابقة، ويؤثر الرجوع وإجراء التغييرات في المراحل السابقة على المراحل التالية بشكل كبير، ويزيد من تكلفة التطوير • غير مناسبة للأنظمة والبرامج الكبيرة والمعقدة. • غير مناسبة للبرامج والأنظمة التي قد تخضع متطلباتها للتغيير خلال مراحل المشروع. • لا يُمكن البدء بمرحلة جديدة في هذه المنهجية قبل إتمام المرحلة السابقة، ويؤدي هذا الأمر إلى تأخير اكتشاف أي خلل في فهم متطلبات العميل، والذي قد يظهر في مرحلةٍ متأخرة، مما يجعل التعديل بعد ذلك عملية صعبة ومكلفة، بل ويفاقم من احتمال فشل المشروع. منهجية التطوير السريع للتطبيقات Rapid Application Development Methodology (RAD) على عكس منهجية الشلال التي تتم فيها عملية التطوير من خلال مراحل مُستقلة، تعتمد منهجية التطوير السريع للتطبيقات على التطوير من خلال دورات تكرارية، وتتضح السمة الرئيسة لهذه المنهجية في تطوير نماذج أولية للنظام من أجل الحصول على التغذية الراجعة والاقتراحات من العميل في المراحل الأولى من التطوير. يساعد هذا في تجنب سوء فهم المتطلبات، وبالتالي تجنب التكلفة الكبيرة التي تنطوي عليها الحاجة لتعديل النظام بعد اكتمال التطوير، ومن المهم الإشارة إلى أن النماذج الأولية التي يتم تطويرها تُعدل لتصبح جزءًا من المنتج النهائي. الاختبار التحسين الانتقال تصميم الإنشاء تخطيط المتطلبات المستخدم النموذج الأولي شكل 1.6 مراحل منهجية التطوير السريع للتطبيقات (RAD) وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

مزايا منهجية الشلال في التطوير

شرح مزايا منهجية الشلال في التطوير

تحديات منهجية الشلال

شرح تحديات منهجية الشلال

منهجية التطوير السريع للتطبيقات

شرح منهجية التطوير السريع للتطبيقات

تتضمن هذه المنهجية المراحل التالية .1. تخطيط المتطلبات Requirements Planning إن مرحلة تخطيط المتطلّبات في منهجية التطوير السريع للتطبيقات (RAD) هي مرحلة في عملية تطوير البرمجيات يتم فيها تحديد نطاق المشروع وأهدافه، وتُركّز مرحلة تخطيط المتطلبات على التأكد من أن متطلبات المشروع والبرنامج واضحة ومُحدَّدة بشكل جيّد، وبأن المخطَّط الزمني والموارد اللازمة لإكمال المشروع قد تم تحديدهما. 2. تصميم المستخدم User Design مرحلة تصميم المستخدم في منهجية التطوير السريع للتطبيقات هي مرحلة في عملية تطوير البرمجيات يتم فيها إنشاء متطلبات البرامج وتصميمها من خلال التعاون الوثيق مع المستخدمين النهائيين، وتُركّز مرحلة تصميم المستخدم على التيقن من أن تطبيق البرنامج يلبي احتياجات وتوقعات المستخدمين المستهدفين. 3. الإنشاء Construction ود مرحلة الإنشاء في منهجية التطوير السريع للتطبيقات هي مرحلة في عملية تطوير البرمجيات يتم فيها تطوير وإنشاء البرنامج، وتتضمَّن هذه المرحلة كتابة التعليمات البرمجية ، ودمج المكونات المختلفة لتطبيق البرنامج، واختباره للتأكد من أنه يفي بالمتطلبات اللازمة ومعايير الجودة. تتضمَّن هذه المرحلة أيضًا إصلاح أي أخطاء أو مشاكل تم اكتشافها أثناء الاختبار، وتُركّز مرحلة الإنشاء على تقديم تطبيق برمجي فعّال يفي بالمتطلبات المحددة بكفاءة في المراحل المبكرة من عملية تطوير التطبيقات السريعة. 4. الانتقال Cutover مرحلة الانتقال في منهجية التطوير السريع للتطبيقات هي المرحلة الأخيرة من عملية تطوير البرمجيات، ويتم فيها نقل تطبيق البرنامج الجديد إلى بيئة التشغيل الواقعية، وتتضمَّن مرحلة الانتقال سلسلة من الأنشطة التي يجب القيام بها من أجل نقل التطبيق البرمجي الجديد إلى مرحلة التشغيل بنجاح، ولتدريب المستخدمين على كيفية استخدامه. مزايا منهجية التطوير السريع للتطبيقات : يتلقى المطورون التغذية الراجعة المستمرة من المستخدمين النهائيين منذ بداية المشروع، مما يقلل من احتمالات الفشل وتكلفة التعديل. يُشارك المستخدمون في التغذية الراجعة مما يساهم في إنتاج برمجيات أكثر كفاءة وأقل أخطاء. يُساهم استخدام الدورات التكرارية والنماذج الأولية في تقليل الوقت اللازم لتطوير النظام. تحديات منهجية التطوير السريع للتطبيقات تُعدُّ دورة التطوير أكثر تعقيدًا ويجب إدارتها بعناية. • قد يؤدي تفاعل أصحاب المصلحة في تقديم الملاحظات بشكل غير كافٍ إلى توفير منتج لا يلبي المتطلبات المرجوة. يتطلب اتباع هذه المنهجية وجود فريق عمل من المبرمجين والمصممين ذوي تأهيل عالٍ وقدرة على إنجاز المهام المنوطة بهم بشكل فعال. 19 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

مراحل منهجية التطوير السريع للتطبيقات RAD

شرح مراحل منهجية التطوير السريع للتطبيقات RAD

مزايا منهجية التطوير السريع للتطبيقات

شرح مزايا منهجية التطوير السريع للتطبيقات

تحديات منهجية التطوير السريع للتطبيقات

شرح تحديات منهجية التطوير السريع للتطبيقات

منهجية التطوير الرشيقة Agile Methodology تستخدم منهجية التطوير الرشيقة طريقة تسليم المشروع على شكل إصدارات متتالية تُسمى فترة التطوير الزمنية القصيرة (Sprint). يضيف كل إصدار ميزات جديدة إلى الإصدار السابق، ويمرّ كل إصدار بجميع مراحل تطوير النظام من التخطيط إلى الاختبار والموافقة من قبل المستخدم. تتميز منهجية التطوير الرشيقة عن منهجية التطوير السريع للتطبيقات في أنها تُقدِّم مُنتَجًا فعالا للمُستخدم في كل مرحلة. يُمكن في هذه المنهجية العمل على المنتج وتعديله أو إضافة وظائف جديدة عند الحاجة، وذلك على العكس من منهجية التطوير السريع للتطبيقات، والتي يتم بها تقديم نموذج أولي غير مكتمل للمستخدم من أجل تقديم التغذية الراجعة فقط، ولا يتم إصدار المنتج النهائي الذي تم تطويره إلا بعد تحديد جميع المتطلبات بشكل كامل. فترة التطوير الزمنية القصيرة (Sprint) : المحددة في البداية. ور فترة التطوير الزمنية القصيرة هي تكرارٌ مُحدَّدٌ زمنيًا للعمل في تطوير البرمجيات الرشيقة، ويستمر عادةً من أسبوع إلى أربعة أسابيع، والغرض منها هو بناء المزيد من الخصائص في البرنامج وتوفيرها ، مع التركيز على تحقيق الأهداف والغايات الاختبار التطوير الفترة 1 التصميم التحليل التطوير التصميم التطوير 20 الاختبار التغذية الراجعة الإطلاق التغذية الراجعة الفترة 2 التحليل الاختبار الإطلاق التغذية الراجعة شكل :1.7 مراحل منهجية التطوير الرشيقة الفترة 3 التصميم التحليل الإطلاق مزايا منهجية التطوير الرشيقة • يُمكن من خلالها إنجاز الإصدار الأول للمُنتَج بوقت قصير. • يتم تحديد مخاطر المشروع بسهولة من خلال التغذية الراجعة من المستخدمين. • تمنح مشاركة أصحاب المصلحة في تطوير النظام المزيد من الثقة في البرنامج أو النظام الجاري تطويره. تحديات منهجية التطوير الرشيقة : • تُركّز هذه المنهجية بشكل كبير على عملية التطوير وبدرجة أقل على التوثيق، ولذلك فإنه من الصعب دمج أعضاء جدد في فريق المشروع بعد البدء به. • تُؤثر استجابة وأداء المستخدمين على سرعة الإنتاج وجودة المنتج. ، يُمكن أن يؤدي التغيير المتكرر في متطلبات المشروع إلى تعطيل المشروع بأكمله، خاصة عند قيام المستخدمين بتغيير رأيهم بشكل متكرر. معلومة تتطلب منهجية التطوير الرشيقة التواصل الفعّال والتعاون المستمر بين جميع الفرق المشاركة في التخطيط والتصميم والتطوير واختبار المستخدم. وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

منهجية التطوير الرشيقة

شرح منهجية التطوير الرشيقة

فترة التطوير الزمنية القصيرة

شرح فترة التطوير الزمنية القصيرة

مزايا منهجية التطوير الرشيقة

شرح مزايا منهجية التطوير الرشيقة

تحديات منهجية التطوير الرشيقة

شرح تحديات منهجية التطوير الرشيقة

تتطلب منهجية التطوير الرشيقة التواصل الفعال والتعاون المستمر

شرح تتطلب منهجية التطوير الرشيقة  التواصل الفعال والتعاون المستمر

1 تمرينات اختر المنهجية المناسبة التي تتوافق مع كل من العبارات التالية: منهجية الشلال منهجية التطوير السريع للتطبيقات منهجية التطوير الرشيقة 1 2 3 يتم تطوير المنتج على شكل إصدارات متتالية. لا يُمكن الانتقال للمرحلة التالية إلا بعد الانتهاء من المرحلة السابقة تعتمد على طريقة تصميم النماذج الأولية وتحسينها. غير مناسبة للأنظمة الكبيرة والمعقدة. تستخدم دورات متكررة لتقليل وقت الإنتاج. أسرع طريقة للحصول على معاينة للمُنتَج الحقيقي. 21 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

اختر المنهجية المناسبة التي تتوافق مع كل من العبارات التالية: منهجية الشلال

حل اختر المنهجية المناسبة التي تتوافق مع كل من العبارات التالية: منهجية الشلال

22 2 قارن بين مرحلتي التصميم والتنفيذ في المنهجيات الثلاث الموضحة في الدرس. منهجية الشلال منهجية التطوير السريع منهجية التطوير الرشيقة للتطبيقات مرحلة التصميم مرحلة التنفيذ 3 وضح دور المستخدم في المنهجيات الثلاث، مع الإشارة إلى المرحلة التي يظهر فيها هذا الدور بشكل واضح. وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

قارن بين مرحلتي التصميم و التنفيذ في المنهجيات الثلاث الموضحة في الدرس

حل قارن بين مرحلتي التصميم و التنفيذ في المنهجيات الثلاث الموضحة في الدرس

وضح دور المستخدم في المنهجيات الثلاث، مع الإشارة إلى المرحلة التي يظهر فيها هذا الدور بشكل واضح.

حل وضح دور المستخدم في المنهجيات الثلاث، مع الإشارة إلى المرحلة التي يظهر فيها هذا الدور بشكل واضح.

23 صحيحة خاطئة وزارة التعليم Ministry of Education 2024-1446 5 6 7 8 00 4 حدد الجملة الصحيحة والجملة الخاطئة فيما يأتي: 1. تشير عملية تطوير البرمجيات إلى التخطيط. 2. منهجية تطوير البرمجيات هي إطار يُستخدم في العديد من الإجراءات. 3. يتضمَّن تطوير البرمجيات إنشاء نظام المعلومات واختباره وتطويره. 4 . يتم التحكم في عملية تطوير نظام المعلومات من خلال منهجية تطوير البرمجيات المستخدمة. .5. تقسم عملية تطوير البرمجيات ككل إلى مراحل متميزة، وتسمى أيضًا بدورة حياة تطوير البرمجيات 7 6 5 5 املأ الفراغات بمراحل دورة تطوير البرمجيات في المخطط أدناه. 1 4 3 2 8 1 2 3 4

الدرس الأول: مبادئ هندسة البرمجيات

حدد الجملة الصحيحة والجملة الخاطئة فيما يأتي: تشير عملية تطوير البرمجيات إلى التخطيط.

حل حدد الجملة الصحيحة والجملة الخاطئة فيما يأتي: تشير عملية تطوير البرمجيات إلى التخطيط.

املأ الفراغات بمراحل دورة تطوير البرمجيات في المخطط أدناه.

شرح املأ الفراغات بمراحل دورة تطوير البرمجيات في المخطط أدناه. حل املأ الفراغات بمراحل دورة تطوير البرمجيات في المخطط أدناه.

6 تأمل الشكل التالي ثم أجب عن الأسئلة التالية: التطوير الاختبار الفترة 1 التصميم التحليل الاختبار التطوير الفترة 2 التصميم التحليل الاختبار التطوير التغذية الراجعة الإطلاق التغذية الراجعة الإطلاق التغذية الراجعة 1. ما منهجية تطوير البرمجيات التي يمثلها الشكل؟ 24 2. ما المقصود بمصطلح فترة التطوير الزمنية القصيرة؟ .3. ما أهم ميزتين لهذه المنهجية؟ .4 ما التحديان الرئيسان أمام هذه المنهجية؟ الفترة 3 التصميم التحليل الإطلاق. وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

ما منهجية تطوير البرمجيات التي يمثلها الشكل؟

حل ما منهجية تطوير البرمجيات التي يمثلها الشكل؟

ما المقصود بمصطلح فترة التطوير الزمنية القصيرة؟

حل ما المقصود بمصطلح فترة التطوير الزمنية القصيرة؟

ما أهم ميزتين لهذه المنهجية؟

حل ما أهم ميزتين لهذه المنهجية؟

ما التحديان الرئيسان أمام هذه المنهجية؟

حل ما التحديان الرئيسان أمام هذه المنهجية؟

7 طابق كل مرحلة من مراحل تطوير النظام أدناه مع العمليات المناسبة في كل جملة من الجمل التالية: التحليل التصميم التطوير والاختبار التنفيذ الصيانة التوثيق التقييم 1 2 3 4 5 ○ 6 7 يتم تحويل النظرية (الخُطط) إلى ممارسة (عمل). يتم إزالة أخطاء النظام أثناء العمل. يتم تحويل المتطلبات والمواصفات إلى تعليمات برمجية فعّالة. يتم هنا تعريف جميع تفاصيل النظام الجديد. يعتمد على مقدار المعرفة التي يجب على الشخص المعني معرفتها لفهم كيفية عمل النظام. يتم تحديد المشكلة التي يجب حلها. لا يقتصر تنفيذه على فريق تقنية المعلومات ولكن يعتمد أيضًا على المستخدمين والإدارة. 25 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

طابق كل مرحلة من مراحل تطوير النظام أدناه مع العمليات المناسبة في كل جملة من الجمل التالية:

حل طابق كل مرحلة من مراحل تطوير النظام أدناه مع العمليات المناسبة في كل جملة من الجمل التالية:

7 طابق كل مرحلة من مراحل تطوير النظام أدناه مع العمليات المناسبة في كل جملة من الجمل التالية: التحليل التصميم التطوير والاختبار التنفيذ الصيانة التوثيق التقييم 1 2 3 4 5 ○ 6 7 يتم تحويل النظرية (الخُطط) إلى ممارسة (عمل). يتم إزالة أخطاء النظام أثناء العمل. يتم تحويل المتطلبات والمواصفات إلى تعليمات برمجية فعّالة. يتم هنا تعريف جميع تفاصيل النظام الجديد. يعتمد على مقدار المعرفة التي يجب على الشخص المعني معرفتها لفهم كيفية عمل النظام. يتم تحديد المشكلة التي يجب حلها. لا يقتصر تنفيذه على فريق تقنية المعلومات ولكن يعتمد أيضًا على المستخدمين والإدارة. 25 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

أنشئ مخططا توضيحيا لطريقة عمل كل من منهجيات تطوير البرمجيات الثلاث.: منهجية الشلال

حل أنشئ مخططا توضيحيا لطريقة عمل كل من منهجيات تطوير البرمجيات الثلاث.: منهجية الشلال

6 اختر الإجابة الصحيحة: التحليل. 1 المرحلة التي تُستخدم فيها أدوات جمع البيانات هي: التصميم. التنفيذ. الصيانة. التصميم. التقييم 2. المرحلة التي تُستخدم فيها لغة برمجة أو برنامج حاسوبي لإعداد النظام هي: التطوير. التوثيق. التحليل. التوثيق. .3 المرحلة التي يتم فيها إعداد دليل المستخدم الخاص بالنظام هي: التقييم . 4. في مرحلة تقييم تطبيق الهاتف الذكي الاختبار. يتم إنشاء التطبيق باستخدام برنامج مخترع التطبيقات. يتم تحديد احتياجات المستخدم. يتم تلقي المراجعة من المستخدمين. يتم تصميم التطبيق للعمل على منصة أندرويد. 27 وزارة التعليم Ministry of Education 2024-1446

الدرس الأول: مبادئ هندسة البرمجيات

اختر الإجابة الصحيحة المرحلة التي تُستخدم فيها أدوات جمع البيانات هي:

شرح اختر الإجابة الصحيحة المرحلة التي تُستخدم فيها أدوات جمع البيانات هي: حل اختر الإجابة الصحيحة المرحلة التي تُستخدم فيها أدوات جمع البيانات هي: