ما هو المتطلبات الوظيفية في هندسة البرمجيات؟

⚡ ملخص ذكي

تصف المتطلبات الوظيفية كل خدمة يجب أن يقدمها نظام البرمجيات، وتلتقط المدخلات والسلوك والمخرجات بحيث يتشارك المطورون والمختبرون وأصحاب المصلحة في الأعمال تعريفًا واحدًا وقابلًا للتحقق لما يجب أن يفعله المنتج بالفعل.

  • 📘 فريف: يحدد المتطلب الوظيفي، والذي يسمى أيضًا المواصفات الوظيفية، ما يجب أن يفعله النظام - المدخلات والسلوك والمخرجات، الموصوفة من منظور المستخدم أو الأعمال.
  • 📄 نطاق الوثيقة: تغطي وثيقة المتطلبات الوظيفية عمليات الشاشة، ومنطق معالجة البيانات، والتقارير، وسير العمل، والأذونات، والامتثال التنظيمي.
  • 🗂️ الأنواع الشائعة: معالجة المعاملات، قواعد العمل، إعداد التقارير، الوظائف الإدارية، مستويات التفويض، التدقيق tracالملك، والواجهات الخارجية، والمتطلبات القانونية.
  • ؟؟؟؟ أمثلة: تتضمن المتطلبات الوظيفية التحقق من صحة تسجيل الدخول، وتسجيل المبيعات، وعرض الإيرادات بناءً على الأدوار، وتكامل واجهة برمجة التطبيقات المصرفية، والامتثال لمتطلبات إمكانية الوصول.
  • ؟؟؟؟ التباين غير الوظيفي: تصف المتطلبات الوظيفية ما يفعله النظام؛ أما المتطلبات غير الوظيفية فتصف مدى جودة أدائه - الأداء والأمان وسهولة الاستخدام.
  • أفضل الممارسات: حافظ على المتطلبات مفصلة وقابلة للاختبار ومرتبطة بهدف تجاري، واستخلصها من خلال المقابلات وورش العمل.

المتطلبات الوظيفية في هندسة البرمجيات

ما هو المتطلبات الوظيفية؟

A متطلبات وظيفية المتطلبات الوظيفية (FR) هي وصف للخدمة التي يجب أن يقدمها البرنامج. وهي تصف نظامًا برمجيًا أو أحد مكوناته. تُعرَّف الوظيفة من خلال المدخلات والسلوك والمخرجات. ويمكن أن تكون عملية حسابية، أو معالجة بيانات، أو عملية تجارية، أو تفاعلًا مع المستخدم، وهو ما يحدد ما يجب على النظام القيام به. تُسمى المتطلبات الوظيفية في هندسة البرمجيات أيضًا خصائص التشغيل.

يتراوح المتطلب الوظيفي من حاجة أصحاب المصلحة على مستوى عالٍ إلى مواصفات رياضية مفصلة. البرامج الوظيفية تُحدد المتطلبات السلوك المقصود للنظام.

ما يجب تضمينه في وثيقة المتطلبات الوظيفية

فيما يلي ما يجب أن تتضمنه وثيقة المتطلبات الوظيفية:

مثال المتطلبات الوظيفية

مثال المتطلبات الوظيفية

تتضمن وثيقة المتطلبات الوظيفية عادةً ما يلي:

  • تفاصيل العمليات التي تتم على كل شاشة
  • منطق معالجة البيانات الذي يجب على النظام تطبيقه
  • Descriptتقارير النظام والمخرجات الأخرى
  • معلومات كاملة عن سير العمل الذي يقوم به النظام
  • من يُسمح له بإنشاء البيانات أو تعديلها أو حذفها في النظام؟
  • كيف يلبي النظام متطلبات الامتثال واللوائح المعمول بها

فوائد المتطلبات الوظيفية

تتمثل الفوائد الرئيسية لوثيقة متطلبات وظيفية مكتوبة بشكل جيد فيما يلي:

  • يتحقق من أن التطبيق يقدم كل وظيفة تم تحديدها
  • يحدد وظائف النظام وأنظمته الفرعية في مكان واحد
  • بالإضافة إلى تحليل المتطلبات، تساعد المتطلبات الوظيفية في تحديد الاحتياجات المفقودة وتوضيح سلوك النظام المتوقع
  • الأخطاء التي يتم اكتشافها في مرحلة تحديد المتطلبات هي الأقل تكلفة في الإصلاح.
  • يدعم أهداف المستخدم ومهامه وأنشطته

أنواع المتطلبات الوظيفية

تشمل الفئات الشائعة للمتطلبات الوظيفية ما يلي:

  • التعامل مع المعاملات
  • قواعد العمل
  • متطلبات إصدار الشهادات
  • متطلبات تقديم التقارير
  • الوظائف الإدارية
  • مستويات الترخيص
  • إفحص Tracking
  • الواجهات الخارجية
  • إدارة البيانات التاريخية
  • المتطلبات القانونية والتنظيمية

أمثلة على المتطلبات الوظيفية

فيما يلي أمثلة عملية للمتطلبات الوظيفية:

  • سيقوم البرنامج تلقائيًا بالتحقق من صحة بيانات العملاء مقابل نظام إدارة جهات الاتصال ABC.
  • يجب أن يسمح نظام المبيعات للمستخدمين بتسجيل مبيعات العملاء.
  • يجب أن يكون لون الخلفية لجميع النوافذ في التطبيق أزرق بقيمة RGB سداسية عشرية 0x0000FF.
  • يحق للموظفين ذوي المناصب الإدارية فقط الاطلاع على بيانات الإيرادات.
  • يجب أن يتكامل نظام البرمجيات مع واجهة برمجة التطبيقات المصرفية (API).
  • يجب أن يفي نظام البرمجيات بالمعايير التالية قسم 508 متطلبات إمكانية الوصول.

المتطلبات الوظيفية مقابل المتطلبات غير الوظيفية

فيما يلي الاختلافات الرئيسية بين المتطلبات الوظيفية وغير الوظيفية في هندسة البرمجيات:

المعاملات متطلبات وظيفية المتطلبات غير الوظيفية
ما هو عليه الفعل السمات
متطلبات وهو إلزامي إنها غير إلزامية
نوع الالتقاط يتم التقاطه في حالة الاستخدام. يتم التقاطها باعتبارها سمة الجودة.
النتيجة النهائية ميزة المنتج خصائص المنتج
اسر من السهل التقاطها من الصعب التقاطها
الهدف يساعدك على التحقق من وظائف البرنامج. يساعدك على التحقق من أداء البرنامج.
مجال التركيز التركيز على متطلبات المستخدم يركز على توقعات المستخدم.
توثيق وصف ما يفعله المنتج يصف كيفية عمل المنتج
نوع الاختبار الاختبارات الوظيفية مثل النظام، والتكامل، والنهاية إلى النهاية، اختبار API، الخ. الاختبارات غير الوظيفية مثل الأداء، والإجهاد، وسهولة الاستخدام، اختبار الأمن، الخ.
تنفيذ اختبار يتم تنفيذ الاختبار قبل الاختبار غير الوظيفي. بعد الاختبار الوظيفي
معلومات المنتج ميزات المنتج خصائص المنتج

أفضل الممارسات لكتابة المتطلبات الوظيفية

أهم الممارسات المثلى لكتابة وثيقة المتطلبات الوظيفية هي:

  • لا تجمع بين متطلبين في متطلب واحد؛ حافظ على كل متطلب مفصلاً.
  • اجعل كل متطلباتك كاملة ودقيقة قدر الإمكان.
  • قم بصياغة جميع المتطلبات الفنية في الوثيقة.
  • قم بربط كل متطلب بالأهداف والمبادئ التي تدفع عملية تسليم البرمجيات بنجاح.
  • استخلاص المتطلبات من خلال المقابلات وورش العمل والمحادثات غير الرسمية.
  • قم بتوثيق كل قيد معروف وموثق يؤثر بشكل جوهري على أحد المتطلبات.
  • سجل كل الافتراضات في المستند.

أخطاء شائعة عند كتابة المتطلبات الوظيفية

تشمل الأخطاء الشائعة التي تُرتكب أثناء إنشاء وثيقة المتطلبات الوظيفية ما يلي:

  • إضافة معلومات إضافية غير مبررة تُربك المطورين
  • إغفال التفاصيل التي يحتاجها المطورون لبناء الميزة.
  • قواعد الخلط، أمثلة، scoping البيانات أو الأهداف في المتطلبات نفسها.
  • حذف المعلومات الضرورية لتوضيح المتطلبات بشكل كامل ودقيق.
  • الدفاع عن متطلب قائم عند ورود طلب تغيير، بدلاً من البحث عن الإجابة الصحيحة.
  • كتابة متطلبات لا ترتبط بأي هدف أو مبدأ.

الأسئلة الشائعة

تقوم أدوات الذكاء الاصطناعي بتجميع ملاحظات المقابلات، وإنشاء مسودات قصص المستخدم، وتحديد اللغة الغامضة، واكتشاف التكرارات في مجموعات المتطلبات الكبيرة. ومع ذلك، لا يزال محللو الأعمال يتحققون من كل اقتراح بناءً على احتياجات أصحاب المصلحة الحقيقية قبل اعتماده كخطة أساسية.

يقوم كل من Copilot وGPT بإنتاج مسودات قصص المستخدم ومعايير القبول وبيانات الالتزام بناءً على توجيهات قصيرة. يقوم محلل أعمال بمراجعة كل مخرج للتأكد من قابليته للاختبار وتوافقه مع أهداف العمل قبل المراجعة الرسمية.

يحدد متطلب العمل سبب وجود المشروع، مثل زيادة الإيرادات أو الامتثال. أما المتطلب الوظيفي فيحدد ما يجب على النظام فعله لتحقيق تلك النتيجة، مثل التحقق من صحة عملية دفع أو إنشاء تقرير.

استخدم موضوعًا واضحًا، وكلمة "يجب"، وإجراءً واحدًا قابلًا للاختبار لكل عبارة. تجنب الكلمات المبهمة مثل "سريع"، وغطِّ سلوكًا واحدًا بحيث يمكن اختبار المتطلب بفحص واحد ناجح أو فاشل.

يوفر نظام EARS، وهو اختصار لـ Easy Approach to Requirements Syntax، خمسة قوالب: القوالب الشائعة، والقوالب القائمة على الأحداث، والقوالب القائمة على الحالة، والقوالب الخاصة بالميزات الاختيارية، والقوالب الخاصة بالسلوك غير المرغوب فيه. يفرض كل قالب بنية قابلة للاختبار، مثل: عند حدوث حدث TRIGGER، يجب على النظام الاستجابة.

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

تُحدد المتطلبات الوظيفية حالات الاختبار في اختبارات النظام، والتكامل، والاختبار الشامل، واختبار واجهة برمجة التطبيقات، واختبار قبول المستخدم. يرتبط كل متطلب بحالة اختبار واحدة على الأقل، والمتطلبات Tracتؤكد شركة eability Matrix التغطية قبل الإصدار.

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

تلخيص هذه التدوينة بـ: