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