4.2 المتطلبات غير الوظيفية
جدول المحتويات
4.2.1 الأداء
NFR-1.1: وقت الاستجابة
- تحميل الصفحة الرئيسية: ثانيتان (3G أو أفضل)
- تهيئة محرر Monaco: 3 ثوان
- نتائج تنفيذ الكود: 5 ثوان (التمارين القياسية)
- استجابات API: ثانية واحدة (تسجيل الدخول والحفظ والإرسال)
- البحث/التصفية: ثانيتان
NFR-1.2: الإنتاجية
- المستخدمون المتزامنون: 1000+ بدون تدهور الأداء
- عمليات تنفيذ الكود المتزامنة: 500+
- قمة الإرسالات: 10000/ساعة
NFR-1.3: استخدام الموارد
- ذاكرة العميل: ≤ 500 ميجابايت
- محرر Monaco: ≤ 200 ميجابايت
- استعلامات قاعدة البيانات: 100 ميلي ثانية (95% من العمليات)
- معدل إصابة ذاكرة التخزين المؤقت CDN: 90%+
NFR-1.4: أداء العرض
- استجابة العناصر التفاعلية: 100 ميلي ثانية
- معدل إطارات الرسوم المتحركة: 60 FPS
- عرض خريطة الطريق (100 عقدة): 1.5 ثانية
4.2.2 التوفر
NFR-2.1: وقت التشغيل
- وقت التشغيل السنوي: 99.5% (~43.8 ساعة توقف)
- نوافذ الصيانة: ≤ 4 ساعات/شهر (فترات الاستخدام المنخفضة)
NFR-2.2: توفر الخدمة
- الميزات الأساسية: توفر 24/7
- تلميحات الذكاء الاصطناعي: وقت تشغيل 95%
- لوحات الترتيب: وقت تشغيل 98%
NFR-2.3: التوفر الجغرافي
- إمكانية الوصول العالمية مع التركيز على المناطق الناطقة بالعربية
NFR-2.4: التدهور الرشيق
- عدم توفر الذكاء الاصطناعي → تلميحات معدة مسبقًا متاحة
- خدمة التنفيذ معطلة → الدروس والمحتوى متاح
4.2.3 التوسع
NFR-3.1: قابلية التوسع الأفقي
- بنية عديمة الحالة لموازنة الحمل السلسة
- تجميع الاتصالات لإدارة الموارد بكفاءة
NFR-3.2: نمو المستخدمين
- السنة الأولى: 50000 مستخدم
- السنة الثالثة: 200000 مستخدم (بدون تغييرات رئيسية)
NFR-3.3: قابلية توسع المحتوى
- الإطلاق: 500 درس، 5000 تمرين
- المستقبل: 2000 درس، 20000 تمرين
- دعم لغات جديدة بدون إعادة هندسة
NFR-3.4: قابلية توسع قاعدة البيانات
- PostgreSQL مع نسخ مكررة للقراءة
- استعراضات خطة الاستعلام ربع سنوية
4.2.4 الموثوقية
NFR-4.1: معدل الأخطاء
- معدل خطأ النظام: < 0.5%
- أخطاء تنفيذ الكود: < 1% (أخطاء النظام فقط)
NFR-4.2: تكامل البيانات
- الامتثال ACID لبيانات التقدم (الذرية والاتساق والعزل والديمومة)
- نسخ احتياطية يومية مع استرجاع في الوقت المناسب لمدة 30 يومًا
NFR-4.3: تحمل الأخطاء
- لا توجد نقطة فشل واحدة
- الإخفاق التلقائي لقاعدة البيانات: 60 ثانية
NFR-4.4: اتساق البيانات
- لوحات الترتيب: الاتساق النهائي خلال 5 دقائق
- ملفات تعريف المستخدمين: اتساق فوري
- إبطال ذاكرة التخزين المؤقت: 30 ثانية
4.2.5 التشغيل البيني
NFR-5.1: معايير API
- التصميم RESTful مع طرق HTTP القياسية
- استجابات JSON بهيكل متسق
- توثيق OpenAPI/Swagger
NFR-5.2: التكامل مع الجهات الخارجية
- OAuth 2.0 (Google، GitHub)
- دعم Webhook برسائل JSON
NFR-5.3: تبادل البيانات
- تنسيقات التصدير: JSON، CSV
- تخزين متوافق مع التحكم في الإصدارات
NFR-5.4: توافق المتصفح
- Chrome وFirefox وSafari وEdge (الإصدارات الأحدث)
- المتصفحات الصادرة خلال سنتين
NFR-5.5: توافق الجوال
- متجاوب: 320px–2560px
- إشعارات أصلية (FCM/APNs)
4.2.6 سهولة الاستخدام
NFR-6.1: سهولة التعلم
- إعداد الحساب → أول درس: 5 دقائق
- البرنامج التعليمي التفاعلي: < 10 دقائق
NFR-6.2: تصميم واجهة المستخدم
- مبادئ Material Design
- دعم العربية (RTL) والإنجليزية (LTR)
- 3 خيارات لحجم الخط
NFR-6.3: إمكانية الوصول
- التنقل باستخدام لوحة المفاتيح (Tab والأسهم وEnter)
- تسميات ARIA وHTML الدلالية
- أوضاع عمى الألوان مع مؤشرات بديلة
NFR-6.4: معالجة الأخطاء
- رسائل سهلة الاستخدام (عربي/إنجليزي)
- تلميحات مساعدة سياقية
- مركز مساعدة قابل للبحث يمكن الوصول إليه من جميع الصفحات
NFR-6.5: التوطين
- التوطين الكامل للعربية/الإنجليزية
- تبديل اللغة دون فقدان التقدم
- صيغة إقليمية للتاريخ والوقت والأرقام
NFR-6.6: الاستجابة
- ردود بصرية فورية
- مؤشرات التقدم للعمليات > ثانية واحدة
4.2.7 قابلية الصيانة
NFR-7.1: جودة الكود
- تغطية الاختبار: ≥ 80% (المكونات الحرجة)
- المراجعة من قبل الأقران مطلوبة قبل الدمج
NFR-7.2: التوثيق
- توثيق API مع أمثلة وأنماط
- رسوم تخطيطية للبنية الأساسية (النظام وقاعدة البيانات وتدفق البيانات)
- تعليقات الكود للمنطق المعقد
NFR-7.3: المعيارية
- مكونات قابلة لإعادة الاستخدام وقابلة للاختبار بشكل مستقل
- نصوص الهجرة المصدرية
NFR-7.4: تسجيل المراقبة
- سجلات مركزية مع 90 يومًا الاحتفاظ
- تنبيهات آلية للأخطاء الحرجة
NFR-7.5: النشر
- خطوط أنابيب CI/CD آلية
- إمكانية الاسترجاع: 10 دقائق
4.2.8 الاسترجاع
NFR-8.1: النسخ الاحتياطية والاسترجاع
- النسخ الاحتياطية الكاملة اليومية + الزيادات كل 6 ساعات
- استرجاع في الوقت المناسب لمدة 30 يومًا
- التحقق الأسبوعي من التكامل
NFR-8.2: استرجاع الكوارث
- الاختبار نصف السنوي
- RTO: 4 ساعات
- RPO: ≤ فقدان 1 ساعة من البيانات
NFR-8.3: كشف الأعطال
- تنبيه خلال دقيقتين من الخطأ الحرج
NFR-8.4: استرجاع البيانات
- استعادة الحساب الفردي
- التحقق من Checksum مع الاسترجاع التلقائي
NFR-8.5: استرجاع الخدمة
- السيرة الذاتية بعد الصيانة: 5 دقائق
- استعادة الجلسة التلقائية
- رسائل الحادث الواضحة
NFR-8.6: استرجاع المعاملات
- الإكمال التلقائي أو المراجعة اليدوية
- صيانة سجل المعاملات