المتطلبات غير الوظيفية وجمع المتطلبات - كتاب هندسة البرمجيات - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: المتطلبات غير الوظيفية Non-Functional Requirements

📚 معلومات الصفحة

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

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

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

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

📄 النص الكامل للصفحة

المتطلبات غير الوظيفية Non-Functional Requirements متطلبات البرامج غير الوظيفية هي مجموعة قيود أو معايير تحدد كيفية تصرف نظام البرنامج أو أدائه أو تشغيله بما يتجاوز متطلباته الوظيفية الأساسية، ومن أكثر المتطلبات غير الوظيفية شيوعًا ما يلي: • الأداء: المتطلبات المتعلقة بالسرعة والاستجابة وقابلية تطوير نظام البرنامج، بما في ذلك زمن الاستجابة، واستخدام الموارد، وسرعة نقل البيانات. • الأمان: متطلبات حماية البيانات الحساسة مثل: مصادقة المستخدم، والتشفير، والتحكم في الوصول. • سهولة الاستخدام: متطلبات سهولة الاستخدام وتجربة المستخدم مثل: قابلية التصفح، وتصميم واجهة المستخدم، وإمكانية الوصول. • الموثوقية: المتطلبات المتعلقة بتوافر نظام البرنامج واستقراره مثل: معالجة الأخطاء، والقدرة التلقائية على الاستمرار في العمل عند حدوث خلل، وكذلك الاسترداد التلقائي للمعلومات. • التوافق: المتطلبات المتعلقة بتوافق نظام البرنامج مع أنظمة التشغيل أو الأنظمة الأساسية أو الأجهزة الأخرى مثل: توافق المتصفح، وتوافق الأجهزة المحمولة، وقابلية التشغيل في بيئات تشغيل مختلفة. --- SECTION: من الأمثلة على المتطلبات غير الوظيفية: --- من الأمثلة على المتطلبات غير الوظيفية: 1. قدرة النظام على استعادة البيانات غير المحفوظة عند حدوث انقطاع مفاجئ للتيار الكهربائي. 2. عمل النظام بفاعلية عند استخدامه من قبل عشرة آلاف مستخدم في الوقت نفسه مثلاً. بعد أن يتم تحديد المتطلبات، يمكنك التعرف على كيفية جمع هذه المتطلبات. --- SECTION: جمع المتطلبات Requirements Gathering --- جمع المتطلبات Requirements Gathering تهتم عمليات التحليل بمعرفة ما يريده الأشخاص من النظام الجديد المقترح، أو الاطلاع الجيد على النظام الحالي لمعرفة كيفية عمله وبالتالي تحسينه، وتوجد عدة طرائق لجمع البيانات: وزارة التعليم Ministry of Education 2025 - 1447 64 --- VISUAL CONTEXT --- **FIGURE**: الملاحظة المباشرة Description: An icon depicting a magnifying glass, symbolizing direct observation as a method for gathering requirements. Context: Represents direct observation as a technique for collecting data on how a system operates. **FIGURE**: الاستبانات Description: An icon depicting a document with checkboxes, representing questionnaires as a method for gathering requirements. Context: Represents questionnaires as a tool for collecting structured feedback from users or stakeholders. **FIGURE**: فحص وثائق النظام Description: An icon depicting a stack of documents, symbolizing the review of system documentation for gathering requirements. Context: Represents the process of examining existing system documents to understand current functionalities and processes. **FIGURE**: المقابلات Description: An icon depicting two overlapping speech bubbles, symbolizing interviews as a method for gathering requirements. Context: Represents conducting interviews with stakeholders to elicit detailed requirements and insights.

✅ حلول أسئلة الكتاب الرسمية

عدد الأسئلة: 1

سؤال مربع-1: من الأمثلة على المتطلبات غير الوظيفية :

الإجابة: 1. قدرة النظام على استعادة البيانات غير المحفوظة عند حدوث انقطاع مفاجئ للتيار الكهربائي. 2. عمل النظام بفاعلية عند استخدامه من قبل عشرة آلاف مستخدم في الوقت نفسه مثلاً.

خطوات الحل:

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

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 6 بطاقة لهذه الصفحة

ما هي المتطلبات غير الوظيفية (Non-Functional Requirements) في هندسة البرمجيات؟

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

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

تلميح: فكر في الخصائص التي تصف كيف يعمل النظام، وليس ماذا يفعل.

التصنيف: تعريف | المستوى: سهل

اذكر خمسة أنواع رئيسية للمتطلبات غير الوظيفية مع تعريف موجز لكل منها.

الإجابة: 1. الأداء: المتطلبات المتعلقة بالسرعة والاستجابة وقابلية تطوير النظام. 2. الأمان: متطلبات حماية البيانات الحساسة مثل المصادقة والتشفير. 3. سهولة الاستخدام: متطلبات سهولة الاستخدام وتجربة المستخدم. 4. الموثوقية: المتطلبات المتعلقة بتوافر النظام واستقراره ومعالجة الأخطاء. 5. التوافق: المتطلبات المتعلقة بتوافق النظام مع أنظمة التشغيل أو الأجهزة الأخرى.

الشرح: هذه الأنواع الخمسة تغطي الجوانب الأساسية لجودة النظام البرمجي وتجربة المستخدم، وهي ضرورية لنجاح أي مشروع برمجي.

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

التصنيف: مفهوم جوهري | المستوى: متوسط

ما المقصود بمتطلبات الأداء (Performance) كنوع من المتطلبات غير الوظيفية؟

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

الشرح: متطلبات الأداء تحدد مدى كفاءة النظام في استخدام الموارد ومدى سرعة استجابته للمستخدمين، وهي حاسمة لتجربة المستخدم.

تلميح: فكر في الخصائص التي تقيس كفاءة النظام وسرعته في التعامل مع المهام.

التصنيف: تعريف | المستوى: سهل

ما المقصود بمتطلبات الموثوقية (Reliability) كنوع من المتطلبات غير الوظيفية؟

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

الشرح: الموثوقية تعني أن النظام يعمل بشكل صحيح ومستقر لفترات طويلة، ويتعامل مع الأخطاء بشكل مناسب.

تلميح: فكر في قدرة النظام على العمل بشكل مستمر ودون أخطاء، والتعافي من المشاكل.

التصنيف: تعريف | المستوى: سهل

ما هو الهدف من عملية جمع المتطلبات (Requirements Gathering)؟

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

الشرح: هذه العملية أساسية لضمان أن النظام المطور سيلبي احتياجات المستخدمين الحقيقية ويحل المشكلات المطلوبة.

تلميح: فكر في المرحلة الأولى من تطوير البرمجيات التي تهدف لفهم احتياجات المستخدمين.

التصنيف: تعريف | المستوى: سهل

اذكر مثالين على المتطلبات غير الوظيفية كما وردا في النص.

الإجابة: 1. قدرة النظام على استعادة البيانات غير المحفوظة عند حدوث انقطاع مفاجئ للتيار الكهربائي. 2. عمل النظام بفاعلية عند استخدامه من قبل عشرة آلاف مستخدم في الوقت نفسه مثلاً.

الشرح: المثال الأول يتعلق بالموثوقية والتعافي من الأخطاء، والمثال الثاني يتعلق بالأداء وقابلية التطوير مع عدد كبير من المستخدمين.

تلميح: تذكر أن المثالين يصفان خصائص أداء النظام وقدرته على التعامل مع الظروف غير المتوقعة.

التصنيف: سؤال اختبار | المستوى: سهل