هندسة المتطلبات
هندسة المتطلبات هي تخصص اكتشاف وتحليل وتوثيق والتحقق من وإدارة ما يجب أن يفعله نظام البرمجيات والقيود التي يجب أن يعمل في ظلها.
Definition
هندسة المتطلبات هي العملية المنهجية لاستخلاص وتحليل وتحديد والتحقق من وإدارة الخدمات التي يجب أن يقدمها نظام البرمجيات والقيود المفروضة على تشغيله وتطويره.
Scope
يغطي هذا المجال استخلاص احتياجات أصحاب المصلحة؛ وتحليل الأهداف المتضاربة والتفاوض بشأنها؛ والتمييز بين المتطلبات الوظيفية وغير الوظيفية (الجودة)؛ وتقنيات المواصفات التي تتراوح من البيانات باللغة الطبيعية إلى النماذج الرسمية؛ والتحقق من الصحة من خلال المقياس الأولي (prototyping) والمراجعة؛ وإدارة تغييرات المتطلبات وإمكانية التتبع عبر دورة الحياة.
Sub-topics
Core questions
- كيف يتم اكتشاف الاحتياجات الحقيقية لأصحاب المصلحة وإزالة الغموض عنها؟
- كيف ينبغي تحديد المتطلبات الوظيفية وغير الوظيفية بدقة ووضوح في نفس الوقت؟
- كيف يتم اكتشاف المتطلبات المتضاربة والتفاوض بشأنها وحلها؟
- كيف يتم التحقق من المتطلبات والحفاظ على اتساقها مع تغيرها؟
Key theories
- المتطلبات الوظيفية مقابل المتطلبات غير الوظيفية
- تنقسم المتطلبات إلى بيانات وظيفية لما يجب أن يفعله النظام وقيود غير وظيفية (جودة) مثل الأداء والأمان وسهولة الاستخدام التي غالبًا ما تمتد عبر النظام بأكمله وتدفع الهندسة المعمارية.
- هندسة المتطلبات الموجهة بالأهداف
- يتم تحليل الأنظمة من حيث أهداف أصحاب المصلحة التي يتم صقلها إلى أهداف فرعية وتحويلها إلى متطلبات قابلة للتنفيذ، مما يوفر الأساس المنطقي واكتشاف التعارض وإمكانية التتبع من النية عالية المستوى إلى وظائف النظام.
Clinical relevance
تُعد أخطاء المتطلبات من بين العيوب الأكثر تكلفة لأنها تنتشر في التصميم والتعليمات البرمجية؛ وتقلل هندسة المتطلبات الصارمة من إعادة العمل، وتوائم البرمجيات المُسلمة مع احتياجات أصحاب المصلحة، وتوفر الأساس لاختبار القبول والاتفاق التعاقدي.
Evidence & guidelines
تحدد المواصفة ISO/IEC/IEEE 29148 عمليات هندسة المتطلبات ومحتويات مواصفات المتطلبات، ويوفر مجال المعرفة بمتطلبات البرمجيات SWEBOK مرجعًا توافقيًا.
History
تطورت هندسة المتطلبات من أساليب التحليل المنظم في السبعينيات إلى تخصص فرعي معترف به في التسعينيات، تميز بمؤتمرات ومجلات مخصصة (RE)، وظهور نمذجة تعتمد على الأهداف والسيناريوهات، وزيادة الاهتمام بالمتطلبات غير الوظيفية والتفاوض مع أصحاب المصلحة.
Debates
- المتطلبات الأولية مقابل المتطلبات الناشئة
- تفضل الممارسات الموجهة بالخطة تحديد المتطلبات بدقة قبل البناء، بينما تتعامل الممارسات الرشيقة مع المتطلبات على أنها ناشئة ويتم صقلها من خلال التكرار؛ وتعتمد المفاضلة على التقلب والقيود التعاقدية وتكلفة التغيير المتأخر.
Key figures
- Axel van Lamsweerde
- Bashar Nuseibeh
- Steve Easterbrook
- Michael Jackson
Related topics
Seminal works
- vanlamsweerde2009
- nuseibeh2000
- sommerville2015
Frequently asked questions
- لماذا تُعد أخطاء المتطلبات باهظة التكلفة؟
- غالبًا ما يتم اكتشاف المتطلب الذي أسيء فهمه أو المفقود متأخرًا، بعد أن يتم بناء التصميم والتعليمات البرمجية عليه، لذا فإن تصحيحه يتطلب التراجع عن العمل اللاحق؛ وتُظهر الدراسات التجريبية باستمرار أن تكلفة إصلاح العيب ترتفع بشكل حاد كلما تم اكتشافه متأخرًا.
- هل تقوم المشاريع الرشيقة بهندسة المتطلبات؟
- نعم، ولكن بشكل مختلف. تستخلص المشاريع الرشيقة المتطلبات وتحللها وتتحقق منها باستمرار من خلال قصص المستخدمين، وتحسين قائمة المهام المتراكمة، والتغذية الراجعة المتكررة بدلاً من إنتاج وثيقة مواصفات كبيرة مقدمًا.