متطلبات البرمجيات هي وصف للميزات والوظائف التي يجب أن يكون عليها النظام المستهدف، والمتطلبات تنقل توقعات المستخدمين عن المنتج البرمجي، ويمكن أن تكون المتطلبات واضحة أو مخفية، معروفة أو غير معروفة، متوقعة أو غير متوقعة من وجهة نظر العميل.
ما هي هندسة المتطلبات؟
هندسة المتطلبات (Requirements engineering)، أو للاختصار (RE)، وتشير إلى عملية تحديد وتوثيق وصيانة المتطلبات في عملية التصميم الهندسي، وتوفر هندسة المتطلبات الآلية المناسبة لفهم ما يريده العميل، وتحليل حاجته، وتقييم الجدوى الاقتصادية، والتفاوض مع العميل على حلول منطقية وتحديد الحل بوضوح، والتحقق من المواصفات وإدارة المتطلبات أثناء تحويلها إلى نظام عمل، بالتالي، فإن هندسة المتطلبات هي التطبيق المنضبط للمبادئ والأدوات والتدوين التي أثبتت جدواها لوصف السلوك المقصود للنظام المقترح والقيود المرتبطة به.
الهدف من هندسة المتطلبات هو تطوير مستند “مواصفات متطلبات النظام”، حيث يشرح هذا المستند كيفية وماذا سيفعل البرنامج أو النظام، ويحدد الميزات والوظائف التي يتطلبها المنتج؛ لتلبية احتياجات جميع أصحاب المصلحة (الأعمال والمستخدمين).
عمليات هندسة المتطلبات:
تتكون عمليات هندسة المتطلبات من الأنشطة الرئيسية التالية:
1- استنتاج المتطلبات Requirements Elicitation:
يُعرف هذا أيضًا باسم تجميع المتطلبات، ويتعلق بالطرق المختلفة المستخدمة لاكتساب المعرفة حول مجال المشروع ومتطلباته، تشمل مصادر تحديد المتطلبات المختلفة للمعرفة بالمجال (العملاء، كتيبات الأعمال، البرامج الحالية من نفس النوع، المعايير، وأصحاب المصلحة الآخرين في المشروع)، الاستنباط لا ينتج نماذج رسمية للمتطلبات المفهومة، بدلاً من ذلك، فإنه يوسع معرفة المحللون والمهندسون عن مجال وأفكار العملاء حول ما يجب أن يوفره البرنامج، وبالتالي يساعد في توفير المدخلات إلى المرحلة التالية.
تشمل التقنيات المستخدمة لاستنتاج المتطلبات:
- وتحليل المهام.
- وتقنية دلفي (Delphi technique).
- والنماذج الأولية.
2- مواصفات متطلبات البرنامج Requirements Specification:
يستخدم هذا النشاط لإنتاج نماذج متطلبات البرامج الرسمية بواسطة محلل البيانات، بعد أن تم جمع المتطلبات من مصادر مختلفة، المتطلبات التي تلقاها من العميل مكتوبة باللغة العادية، فتتمثل مهمة المحلل في كتابة المتطلبات بلغة تقنية، بحيث يمكن فهمها والاستفادة منها من قبل فريق تطوير البرمجيات.
ويتم تحديد جميع المتطلبات بما في ذلك المتطلبات الوظيفية (وهي ما يجب أن يكون عنصر النظام أو النظام مؤهلاً لأدائها، ويجب توثيقها في أشكال مختلفة)، وكذلك غير الوظيفية ( وهي المواصفات الضرورية التي تحدد المعايير المستخدمة لتحديد العملية، مثل، سهولة الاستخدام، قابلية للصيانة)، والقيود بواسطة هذه النماذج أثناء المواصفات، وقد تكون هناك الحاجة إلى مزيد من المعرفة حول المشكلة، والتي يمكن أن تؤدي مرة أخرى إلى عملية الاستنباط.
تشمل النماذج المستخدمة في هذه المرحلة مخططات علاقات للكيانات (E-R)، ومخططات تدفق البيانات (DFDs)، ومخططات تحليل الوظائف (FDDs)، وقواميس البيانات، وما إلى ذلك.
3- التحقق من متطلبات البرامج Requirements verification and validation:
يشير التحقق (Verification) إلى مجموعة المهام التي تضمن تنفيذ البرنامج لوظيفة معينة بشكل صحيح، و يشير التحقق من الصحة (Validation) إلى مجموعة مختلفة من المهام التي تضمن أن البرنامج الذي تم إنشاؤه يمكن تتبعه وفقًا لمتطلبات العملاء، إذا لم يتم التحقق من صحة المتطلبات، فسوف تنتشر الأخطاء في تعريفات المتطلبات إلى المراحل المتعاقبة، مما يؤدي إلى الكثير من التعديل وإعادة العمل، وتشمل الخطوات الرئيسية لهذه العملية ما يلي:
- يجب أن تكون المتطلبات متوافقة مع جميع المتطلبات الأخرى، أي يجب ألا يتعارض متطلبان مع بعضهما البعض.
- يجب أن تكون المتطلبات كاملة بكل معنى الكلمة.
- يجب أن تكون المتطلبات قابلة للتحقيق عمليًا.
التقنيات المستخدمة للتحقق من صحة المتطلبات:
- مراجعات أو عمليات تفتيش المتطلبات: تحليل يدوي منهجي للمتطلبات.
- النماذج الأولية: استخدام نموذج قابل للتنفيذ للنظام للتحقق من المتطلبات.
- توليد حالة الاختبار: تطوير اختبارات للمتطلبات للتحقق من قابليتها الاختبار.
- تحليل الاتساق الآلي: التحقق من اتساق أوصاف المتطلبات المنظمة.
4- إدارة متطلبات البرمجيات Requirements Management:
إدارة المتطلبات هي عملية التحليل والتوثيق والتتبع وتحديد الأولويات والاتفاق على المتطلبات والتحكم في الاتصال بأصحاب المصلحة المعنيين، هذه المرحلة تهتم بالطبيعة المتغيرة للمتطلبات، إذ يجب التأكد من أن مستند مواصفات متطلبات النظام قابل للتعديل قدر الإمكان؛ لإدراج التغييرات في المتطلبات المحددة من قبل المستخدمين النهائيين في مراحل لاحقة أيضًا، وتعد القدرة على تعديل البرنامج وفقًا للمتطلبات بطريقة منهجية وخاضعة للرقابة، جزءًا مهمًا للغاية من عملية هندسة المتطلبات.