تحليل المتطلبات وتوثيقها

وثيقة متطلبات البرمجيات (SRS)

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

وثيقة متطلبات البرمجيات (SRS)

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

تُعدّ وثيقة SRS في آنٍ واحد عقداً ودليل مرجعي ومخططاً للاختبار وخطاً أساسياً للتخطيط. إتقان هيكلها، ومعرفة من يقرأ أي قسم، والحفاظ على تحديثها طوال دورة حياة المشروع — ثلاث مهارات من أثمن ما يمكن لمحلل الأنظمة تطويره.

لماذا تهم وثيقة SRS في الواقع العملي

تخيّل شركة لوجستية تُكلف بإنشاء منصة جديدة لتتبع الشحنات. بدون وثيقة SRS رسمية، يتخيل راعي الأعمال تحديثات GPS الفورية كل 30 ثانية؛ يفترض قائد التطوير أن مزامنة الدُفعات الليلية مقبولة؛ يتوقع فريق المالية الفوترة متعددة العملات من اليوم الأول؛ وفريق الموبايل لم يسمع بالفوترة أصلاً. يبني كل فريق الجزء الخاص به استناداً إلى محادثات شفهية وشرائح عرض. بعد اثني عشر أسبوعاً تبدأ مرحلة التكامل — وتظهر الفجوات.

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

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

الهيكل المعياري لوثيقة SRS

يوفر معيار IEEE 830 (وخلفه ISO/IEC/IEEE 29148) القالب الأوسع انتشاراً الذي تُكيّفه معظم المنظمات لسياقها. تحتوي وثيقة SRS المكتملة على الأقسام الرئيسية التالية:

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

في الممارسة العملية، تُضيف المشاريع الكبيرة قسمين إضافيين لم يرد ذكرهما في قالب IEEE الكلاسيكي لكنهما باتا معياراً في الصناعة:

  • سجل التغييرات / التاريخ — التاريخ ورقم الإصدار والمؤلف وملخص كل تغيير. لا غنى عنه لأغراض التتبع في المشاريع متعددة السنوات.
  • صفحة موافقة أصحاب المصلحة — توقيعات الموافقة الرسمية مع التواريخ. تحوّل الوثيقة من مسودة عمل داخلية إلى خط أساس تعاقدي.
SRS Document Structure — Major Sections and Their Contents SRS Document 1. Introduction Purpose · Scope · Definitions · Overview 2. Overall Description Context · Functions · Users · Constraints 3. Specific Requirements (Core) Functional Requirements · External Interfaces System Features · Non-Functional Requirements 4. Appendices Data Models · Glossary · Open Issues · References 5. Index Req ID cross-reference · Section map + Change History & Sign-off (Industry Standard) Revision log · Version dates · Stakeholder approvals
الأقسام الرئيسية لوثيقة SRS المعيارية — يُعدّ قسم المتطلبات التفصيلية الأكبر حجماً والأكثر تفصيلاً.

من يقرأ وثيقة SRS — وما الذي يهمه

أحد أهم الرؤى المتعلقة بوثيقة SRS أنها تخدم جماهير متعددة في آنٍ واحد، يقرأ كل منها بغرض مختلف. خطأ شائع يرتكبه المحللون هو كتابة الوثيقة بأسلوب واحد — تقني جداً لرعاة الأعمال، وغامض جداً للمطورين. فهم جمهورك يتيح لك توزيع المعلومات بشكل ملائم.

  • رعاة الأعمال والعملاء يقرؤون القسمين 1 و2 بعناية فائقة. يريدون التأكد من أن الوثيقة تعكس أهداف أعمالهم، وأن النطاق يتناسب مع الميزانية، وأن القيود التي فرضوها مُسجَّلة بأمانة. نادراً ما يقرؤون القسم 3 كاملاً لكنهم سيفحصون بعناية أي متطلب يمس التكلفة أو تجربة المستخدم.
  • محللو الأنظمة والأعمال هم مؤلفو الوثيقة ومُحافظون عليها. يمتلكون الاتساق بين الأهداف العالية المستوى (القسم 2) والمتطلبات التفصيلية (القسم 3)، ويديرون سجل التغييرات.
  • المطورون والمعماريون يمضون معظم وقتهم في القسم 3، تحديداً المتطلبات الوظيفية وميزات النظام. يبحثون عن شروط مسبقة دقيقة وشروط لاحقة وتنسيقات بيانات وقواعد أعمال ومسارات معالجة الأخطاء. المتطلبات الغامضة هي المصدر الرئيسي لإعادة العمل لديهم.
  • مهندسو الجودة والاختبار يتعاملون مع كل متطلب في القسم 3 كحالة اختبار يجب كتابتها. متطلب لا يمكن اختباره هو متطلب لا يمكن قبوله. المختبرون غالباً أول من يكتشف المتطلبات الغامضة أو غير القابلة للاختبار أثناء مراجعة وثيقة SRS.
  • مديرو المشاريع يستخدمون وثيقة SRS لتقدير الجهود وتحديد التبعيات وتعيين المتطلبات للسباقات أو حزم العمل وتأسيس النطاق لأغراض إدارة التغيير.
  • الفرق القانونية والامتثالية (خاصة في الرعاية الصحية والمالية والحكومة) تُركز على القيود التنظيمية وبنود خصوصية البيانات ومتطلبات التدقيق. في نظام حجز العيادة، يجب أن توثّق وثيقة SRS التعامل مع بيانات المرضى بمصطلحات تستوفي متطلبات HIPAA أو لوائح الخصوصية المحلية.
SRS Audiences and Their Primary Sections of Interest SRS Document Business Sponsor Sections 1–2, Sign-off Developer Section 3 — Features QA Engineer Section 3 — Testability Project Manager Scope, effort, priorities Legal / Compliance Privacy, audit clauses BA / Analyst Full document — owns it
ست فئات رئيسية من قراء وثيقة SRS، يركز كل منهم على أقسام مختلفة بحسب دوره في المشروع.

صيانة وثيقة SRS على مدار دورة حياة المشروع

وثيقة SRS تُكتب عند بداية المشروع ولا تُلمس بعد ذلك ليست وثيقة SRS — إنها لقطة سريعة. المشاريع الحقيقية تتغير: يكتشف أصحاب المصلحة متطلبات جديدة، تظهر قيود تقنية، تتحول أولويات الأعمال. يجب أن تتطور وثيقة SRS مع المشروع، وإلا تُصبح مصدر حقيقة منتهي الصلاحية.

الصيانة الفعّالة تتطلب ثلاثة انضباطات:

  • الإصدارات. كل نسخة منشورة من وثيقة SRS يجب أن تحمل رقم إصدار (مثلاً: v1.0 = الخط الأساسي المعتمد الأول، v1.1 = توضيحات طفيفة، v2.0 = تغيير جوهري في النطاق). يُسجّل سجل المراجعات ما تغيّر ومن طلبه ومن وافق عليه ومتى. في مشروع متجر إلكتروني، قد يصف v1.0 تدفق الدفع عبر PayPal فقط؛ بينما يُضيف v1.2 Stripe بعد قرار تجاري بعد ثلاثة أشهر.
  • التحكم في التغييرات. لا يجب إضافة أي متطلب أو حذفه أو تعديله دون طلب تغيير رسمي تُقيَّم تأثيراته على التكلفة والجدول الزمني والمتطلبات المرتبطة. مجلس التحكم في التغييرات (CCB) — حتى في المشاريع الرشيقة، ولو كان خفيفاً — يمنع الزحف المتسلل للنطاق من تضخيم الوثيقة خلسةً.
  • صيانة التتبع. لكل متطلب معرّف (مثلاً FR-AUTH-001). حين يتغيّر متطلب، يجب تحديث مصفوفة التتبع التي تربطه بقرارات التصميم وحالات الاختبار ووحدات الكود. حالة اختبار يتيمة تُشير إلى متطلب محذوف هي عيب ينتظر الظهور.
المنهج الرشيق ووثيقة SRS: في البيئات الرشيقة غالباً ما يُستبدل بوثيقة SRS متراكم المنتج. غير أن للصناعات المُنظَّمة (الرعاية الصحية، المالية، الفضاء)، وعمليات التكامل المعقدة، والعقود ذات السعر الثابت، تبقى وثيقة SRS الحية لا غنى عنها. تحتفظ كثير من الفرق الرشيقة بوثيقة SRS خفيفة للمتطلبات غير الوظيفية على مستوى النظام ومتراكم للمنتج للمتطلبات الوظيفية، مجمعةً بذلك انضباط المواصفات الرسمية مع مرونة التسليم التكراري.
مشكلة وثيقة SRS المهجورة: أكثر أسباب فشل وثيقة SRS شيوعاً ليس ضعف الكتابة — بل الهجر. إذا نفّذ المطورون ميزات تختلف عن الوثيقة ولم يُحدّثها أحد، أصبحت الوثيقة مسؤولية لا أصل: تُضلل الأعضاء الجدد في الفريق، وتُشكّل خطر تدقيق، وتجعل تحليل التأثير غير موثوق. عيّن مالك وثيقة مُسمّى وجدوِّل فحصاً صحياً شهرياً لوثيقة SRS في المشاريع الطويلة.

مثال ملموس: مقتطف من وثيقة SRS لنظام حجز عيادة

لإضفاء الملموسية على الهيكل، إليك مخططاً لما يبدو عليه القسم 3 في وثيقة SRS حقيقية لنظام حجز عيادة. قد يُقرأ المتطلب الوظيفي FR-BOOK-003 على النحو التالي:

Requirement ID: FR-BOOK-003 Title: Double-Booking Prevention Priority: Must Have Description: The system shall prevent a physician from being booked for two appointments in overlapping time slots on the same calendar day. Precondition: The physician\'s schedule is loaded and the time slot is within standard working hours (08:00–18:00 local time). Trigger: A receptionist or patient attempts to book an appointment. Normal Flow: The system checks the physician\'s existing appointments before confirming the booking. If a conflict exists, the system rejects the request and presents the next three available slots. Error/Alternate Flow: If the schedule data is unavailable due to a sync failure, the system displays a warning and requires manual confirmation from the receptionist. Acceptance Criteria: 100% of attempted double-bookings are rejected in automated testing. Response time for conflict detection: < 2 seconds. Linked Non-Functional Req: NFR-PERF-002 (response time), NFR-REL-001 (99.5% uptime)

لاحظ كيف يُجيب هذا المتطلب الواحد على سؤال المطور ("ما الذي يجب أن يفعله النظام؟")، وسؤال المختبر ("كيف أتحقق من هذا؟")، وسؤال المحلل ("ما هي الحالات الطرفية؟") — كل ذلك في شكل مضغوط ومنظّم.

اختبار جودة أي متطلب: طبّق اختبار SMART — هل هو محدد (Specific)، قابل للقياس (Measurable)، قابل للتحقيق (Achievable)، ذو صلة (Relevant)، وقابل للاختبار (Testable)؟ إذا غاب أي وصف، أعِد الصياغة قبل التحديد الأساسي. متطلب لا يمكن قياسه لا يمكن اختباره، ومتطلب لا يمكن اختباره لا يمكن قبوله.