في طلب الصيانة، من يرسله ومن يسنده ومن يثبت إنجاز العمل ومن يعتمد الإغلاق؟ الإجابة تصف النظام المطلوب أكثر من قائمة عامة للعملاء والموظفين والتقارير. سنكتب حالات الطلب وصلاحياته وبياناته وتقاريره لمؤسسة افتراضية، ثم نحولها إلى شروط يستطيع المستخدم والمطور تجربتها قبل اعتماد النسخة.
ارسم المسار الحالي وحدد موضع التعطل
يجمع المحلل أمثلة من طلب فعلي منزوع المعلومات غير اللازمة، ويسأل: كيف وصل؟ من راجعه؟ كيف اختير المنفذ؟ متى عُدّ منتهيًا؟ وما الذي يحدث عند رفضه أو إعادة فتحه؟ وثّق القرارات التي تتم خارج النظام، مثل اعتماد تكلفة أو حجز قطعة، حتى لا تختفي من النطاق لمجرد أنها تحدث عبر اتصال.
لا تنقل كل خطوة قديمة إلى شاشة تلقائيًا. قد يكون تأخر الطلب ناتجًا عن غياب مسؤول واضح لا عن غياب برنامج. اتفق مع أصحاب العملية على التدفق المستهدف قبل تثبيت قاعدة البيانات، وميز بين قاعدة لازمة وإجراء يمكن تحسينه.
نموذج الحالات والانتقالات
| الحالة الحالية | الفعل | الدور | شرط الانتقال |
|---|---|---|---|
| مسودة | إرسال | طالب الخدمة | وصف وموقع عمل مكتملان |
| قيد المراجعة | إسناد | المشرف | منفذ متاح ونطاق عمل واضح |
| قيد التنفيذ | طلب إغلاق | المنفذ | تسجيل ما نفذ والمرفقات اللازمة |
| بانتظار التحقق | اعتماد أو إعادة | المراجع | دليل إنجاز أو سبب إعادة موثق |
| مغلق | إعادة فتح | المشرف المخول | سبب ومراجعة أثر العملية السابقة |
اكتب ما يترتب على كل انتقال: تحديث الموعد، أو إنشاء مهمة، أو إشعار، أو تعديل تقرير. عالج تزامن قرارين على الطلب نفسه؛ قراءة الحالة ثم تعديلها في طلب منفصل قد تسمح بقرار قديم. توضح وثائق PostgreSQL للعزل أن مستويات المعاملات تختلف في ما تراه عند التزامن. يختار المطور المعاملة أو القفل أو فحص الإصدار المناسب ثم يختبره.
الصلاحيات تتعلق بالعملية وبالسجل
قد يحق لطالب الخدمة قراءة طلباته فقط، بينما يرى المشرف طلبات وحدته. وقد يسمح للمنفذ بتحديث التنفيذ دون تغيير طالب الطلب أو اعتماد كلفته. إذن «صلاحية تعديل» عامة أوسع من المطلوب. اكتب لكل دور نطاق السجلات والحقول والأفعال، ونفذ القرار على الخادم حتى إذا أخفي الزر في الواجهة.
- طالب الخدمة: إنشاء مسودة وقراءة طلباته وإرسالها.
- المنفذ: قراءة المهام المسندة إليه وتسجيل التنفيذ.
- المشرف: الإسناد وإعادة الفتح ضمن نطاقه المعتمد.
- المراجع: قبول الإغلاق أو إعادته مع سبب.
- مسؤول الحسابات: إدارة المستخدمين وفق تفويض منفصل عن اعتماد العمل.
يمكن الرجوع إلى OWASP ASVS لتحديد متطلبات تحقق أمنية منطبقة. لا يعني استعمال أسماء أدوار أن الوصول أصبح محميًا؛ اختبر طلب HTTP مباشرًا ومستخدمًا من وحدة أخرى وحسابًا بلا الدور المطلوب.
عرّف التقرير كسؤال وقرار
بدل طلب «تقارير شاملة»، اكتب سؤالًا مثل: ما الطلبات المفتوحة التي تجاوزت الموعد المعتمد بحسب الوحدة والمسؤول؟ حدد تعريف المفتوح والتجاوز والمنطقة الزمنية والمرشحات ومصدر الموعد. وهل يحتاج المستخدم تصديرًا أو طباعة أو مقارنة فترات؟ يجب أن يظهر مجموع التقرير متوافقًا مع تفاصيله، مع بيان ما استُبعد.
ويحتاج سجل العمليات إلى هوية الفاعل والوقت والفعل والحالة السابقة واللاحقة وسبب القرار عند الحاجة، دون نسخ كلمات مرور أو محتوى حساس بلا ضرورة. سجل النظام يساعد على فهم التغيير، لكنه لا يعوض قيدًا يمنع تغييرًا غير مصرح.
ثلاثة معايير قبول قابلة للتجربة
- عندما يحاول مستخدم قراءة طلب خارج نطاقه، يرفض الخادم الطلب ولا يعرض بياناته، حتى باستدعاء المسار مباشرة.
- لا يغلق الطلب قبل استيفاء المدخلات المطلوبة؛ ويظهر سبب الرفض للمستخدم دون فقد ما أدخله.
- إذا حاول مشرفان إسناد الطلب استنادًا إلى النسخة نفسها، لا تُسقط العملية اللاحقة قرارًا سابقًا بصمت؛ تظهر نتيجة تعارض موثقة حسب السياسة المعتمدة.
تظل هذه حالات متوقعة حتى تنفذ على نظام الاختبار وتسجل النتيجة الفعلية. أضف حالات البيانات الناقصة والانقطاع واستعادة النسخ بحسب أثرها في العمل.
الملفات التي تسرع بداية التنفيذ
جهّز نموذج الطلب وبيانات منقحة وجدول الأدوار والتقرير الحالي وقائمة التكاملات، وحدد من يعتمد المتطلبات ومن يجرب النسخة. هذه المواد هي نقطة بدء برمجة النظام المخصص؛ يراجع كل جزء مع مستخدميه قبل اعتماده، وتبقى الأسئلة غير المحسومة ظاهرة إلى أن يُتفق عليها.
المصادر
مراجعة المصادر: .
اختبار المثال وحدوده
نظام الصيانة مثال افتراضي للتخطيط؛ لم يطبق لدى عميل ولم تُنفذ معاملات أو اختبارات صلاحيات لنظام خارجي.
مقالات ذات صلة
الخدمة المرتبطة: تطوير المواقع والتطبيقات والأنظمة المخصصة.
أرسل متطلبات مشروعك
