من التحليل إلى تصميم النظام

إمكانية التتبع من المتطلبات إلى التصميم

18 دقيقة الدرس 9 من 10

إمكانية التتبع من المتطلبات إلى التصميم

تخيّل أنك سلّمت تصميمًا مكتملًا لأحد المطوّرين فسألك: "أيّ متطلب يستدعي وجود هذا العنصر؟" إذا لم تتمكن من الإجابة — بالإشارة إلى متطلب محدد برقم — فإن التصميم يحتوي على ثغرة. وبالمقابل، حين يسأل أحد أصحاب المصلحة "هل صمّمت شيئًا لتلبية REQ-042؟" ولا تجد ما تشير إليه، فإن المواصفة ناقصة. إمكانية التتبع هي المنهج الذي يسدّ كلا الثغرتين: إذ يربط كل قرار تصميمي بمتطلب ما، ويؤكد أن كل متطلب قد عالجه عنصر تصميمي على الأقل.

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

لماذا تهم إمكانية التتبع؟

تخدم إمكانية التتبع أربعة أغراض عملية في أي مشروع:

  1. التحقق من الاكتمال. يجب أن يرتبط كل متطلب وظيفي وغير وظيفي بعنصر تصميمي واحد على الأقل. المتطلبات غير المتتبَّعة هي متطلبات نُسيت.
  2. تحليل الأثر. حين يغيّر أحد أصحاب المصلحة متطلبًا ما، تُظهر المصفوفة فورًا مكوّنات التصميم والواجهات وحالات الاختبار المتأثرة، وتتجنب المفاجآت المكلفة في مراحل متأخرة.
  3. ضبط النطاق. أي عنصر تصميمي لا يستند إلى متطلب هو عمل إضافي غير مطلوب؛ تكشف المصفوفة ذلك مبكرًا.
  4. التدقيق والامتثال. في المجالات الخاضعة للتنظيم كالأجهزة الطبية والمصرفية والطيران، تُعدّ إمكانية التتبع التزامًا تعاقديًا وقانونيًا لا مجرد ممارسة جودة.
إمكانية التتبع ثنائية الاتجاه. التتبع الأمامي يسير من المتطلبات إلى التصميم: "إذا أُعطيت هذا المتطلب، أين عولج في التصميم؟" أما التتبع العكسي فيسير في الاتجاه المعاكس: "إذا أُعطيت هذا العنصر التصميمي، أيّ متطلب يبرر وجوده؟" تدعم مصفوفة RTM القوية الاتجاهين معًا. تتيح معظم الأدوات — سواء أكانت جداول بيانات أم منصات إدارة دورة حياة التطبيقات (ALM) — الاستعلام في أي من الاتجاهين.

سلسلة إمكانية التتبع

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

Traceability chain from business need to test case Traceability Chain — Logistics Shipment Tracking Feature Business Need Functional Requirement Design Element Interface Test Case BN-03: Customers must be able to track their shipments in real time Source: Customer Service department — 40 % of support calls are tracking inquiries REQ-018 System shall display live shipment location REQ-019 System shall send SMS alert on status change REQ-020 Location data < 30 s stale (non-functional) DE-07 TrackingMapComponent (UI Module) DE-08 NotificationService (Backend Module) DE-09 GPSPollingScheduler (Backend Module) IF-05 GET /api/shipments/{id}/track IF-06 SMS webhook (async) IF-07 GPS Polling cron (30 s) TC-031 Map renders live coords TC-032 SMS sent within 60 s TC-033 Poll interval <= 30 s
سلسلة التتبع: حاجة تجارية واحدة (BN-03) تتفرع إلى ثلاثة متطلبات، يرتبط كل منها بعنصر تصميمي وواجهة وحالة اختبار، مما يشكّل خطًا متواصلًا من الأدلة.

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

بناء مصفوفة تتبع المتطلبات (RTM)

تكون مصفوفة RTM في الغالب جدولًا تمثّل فيه الصفوف المتطلباتِ وتمثّل فيه الأعمدة منتجات التصميم. تعني علامة الاختيار (أو معرّف المنتج) في خلية ما أن "هذا العنصر التصميمي يعالج هذا المتطلب." فيما يلي مقتطف واقعي من مشروع اللوجستيات ذاته:

Requirements Traceability Matrix excerpt — logistics platform Requirements Traceability Matrix (RTM) — Logistics Platform (excerpt) Requirement DE-07 TrackingMap DE-08 Notification Svc DE-09 GPS Scheduler TC-031 Map test TC-032 SMS test TC-033 Interval test REQ-018 Live location display REQ-019 SMS on status change REQ-020 Location < 30 s stale REQ-025 Route history export ⚠ REQ-025 has no design element or test case — this requirement is UNTRACED and must be resolved before sign-off ✓ = traced — = not applicable Red row = untraced requirement (action required)
مقتطف من مصفوفة RTM: تشير علامات الاختيار الخضراء إلى الروابط المتتبَّعة، فيما يُشير الصف الأحمر (REQ-025) إلى متطلب غير متتبَّع يخلو من أي مقابل في التصميم أو الاختبار.

الصف الأحمر هو المصفوفة وهي تؤدي وظيفتها الحقيقية. لولا هذا الجدول، لضاع REQ-025 — تصدير سجل المسارات — بصمت تام. تكشف المصفوفة عن هذا الفقد في مرحلة التصميم، حيث يكلف إصلاح الثغرة ساعات لا أسابيع.

مقاييس التغطية

تُنتج إمكانية التتبع مؤشرات قابلة للقياس تعكس صحة المشروع:

  • نسبة تغطية المتطلبات — نسبة المتطلبات التي يقابلها عنصر تصميمي واحد على الأقل. الهدف: 100% قبل اعتماد مواصفة التصميم.
  • نسبة تغطية الاختبار — نسبة المتطلبات التي تقابلها حالة اختبار واحدة على الأقل. الهدف: 100% قبل بدء اختبار النظام.
  • العناصر اليتيمة — عناصر التصميم التي لا تستند إلى أي متطلب (عمل إضافي غير مطلوب). الهدف: صفر.
أتمتة تقرير الثغرات. في مصفوفة RTM المبنية على جدول بيانات، يمكن لصيغة بسيطة (COUNTIF عبر أعمدة التصميم لكل صف) أن تُعلّم المتطلبات غير المتتبَّعة تلقائيًا. وفي أدوات ALM المتخصصة كـ Jira وAzure DevOps وConfluence، تُنجز التقارير المدمجة هذا الأمر بنقرة واحدة. في كلتا الحالتين، أجرِ تقرير الثغرات عند كل معلم رئيسي: بعد مراجعة التصميم، وبعد التنفيذ، وقبل اختبار قبول المستخدم.

صيانة إمكانية التتبع عند التغيير

المتطلبات تتغير. وحين تتغير، يجب أن تتغير المصفوفة معها. الإجراء واضح:

  1. اعتماد طلب التغيير — يوافق مجلس مراقبة التغييرات على تعديل REQ-019: يجب أن يدعم التنبيه الآن الإشعارات الفورية (Push) بالإضافة إلى الرسائل النصية.
  2. تحليل الأثر — يستعلم المحلل عن المصفوفة: أي عناصر تصميمية تشير إلى REQ-019؟ الجواب: DE-08 NotificationService وTC-032.
  3. تحديث التصميم — تُراجَع مواصفة الواجهة IF-06 لإضافة قناة الإشعارات الفورية؛ يكتسب DE-08 مكوّنًا فرعيًا جديدًا.
  4. تحديث المصفوفة — يُضاف المكوّن الفرعي الجديد بوصفه DE-08b ويُحقَّق مقابل REQ-019؛ يُحدَّث TC-032 ليشمل القناتين.
  5. إعادة تشغيل تقرير التغطية — تأكيد أن تغطية 100% محافظ عليها بعد التغيير.
مصفوفة التتبع القديمة أسوأ من انعدامها. مصفوفة كانت دقيقة عند مرحلة التصميم لكن لم تُحدَّث بعد تغيير المتطلبات تصبح مُضلِّلة — تُحيل المطوّرين والمختبِرين إلى عناصر تصميمية متقادمة بينما تُخفي الثغرات الحقيقية. ادمج صيانة مصفوفة RTM في عملية مراقبة التغييرات: لا يُغلق أي طلب تغيير إلا بعد تحديث المصفوفة.

إمكانية التتبع في وثيقة مواصفة التصميم

تُدرج وثيقة مواصفة التصميم (المُغطّاة في الدرس السابع) مصفوفة RTM ملحقًا رسميًا بها. يستخدمها المراجعون للتحقق من الاكتمال قبل التوقيع. يحتوي الملحق عادةً على ثلاثة جداول فرعية:

  1. المتطلبات إلى التصميم — يُعيَّن كل متطلب إلى عنصر تصميمي واحد أو أكثر (وحدات ومكوّنات وواجهات).
  2. التصميم إلى المتطلبات — الاتجاه المعاكس: يُعيَّن كل عنصر تصميمي إلى المتطلبات التي يلبّيها (للتحقق من عدم وجود عناصر يتيمة).
  3. المتطلبات إلى حالات الاختبار — يُعيَّن كل متطلب إلى حالات الاختبار التي ستتحقق منه بعد التنفيذ.

تُنشئ الجداول الثلاثة مجتمعةً حلقةً مغلقة: الحاجة التجارية ← التصميم ← التحقق. أي انقطاع في هذه الحلقة يُعدّ خطرًا على المشروع يجب معالجته قبل اعتماد المواصفة والبدء في التطوير.