أنواع المتطلبات في هندسة البرمجيات Software Requirements Types

اقرأ في هذا المقال


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

مفهوم متطلبات البرمجيات:

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

تصف المتطلبات كيف يجب أن يتصرف النظام أو يبدو أو ينفذ. لهذا، عندما يطلب المستخدمون برنامجًا، فإنهم يقدمون تقديرًا تقريبيًا لما يجب أن يكون النظام الجديد قادرًا على القيام به، وتختلف المتطلبات من مستخدم لآخر ومن عملية تجارية إلى أخرى. كما تعرّف منظمة “IEEE” المتطلب بأنه:

(1) شرط أو قدرة يحتاجها المستخدم لحل مشكلة أو لتحقيق هدف.

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

(3) تمثيل موثق لشرط أو قدرة كما في (1) أو (2).

أنواع المتطلبات:

يمكن أن تتكون متطلبات البرنامج من (3) أنواع:

1- المتطلبات الوظيفية Functional Requirements:

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

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

وهناك العديد من الطرق للتعبير عن المتطلبات الوظيفية، على سبيل المثال، اللغة الطبيعية، أو لغة هيكلية أو صيغة بدون “syntax” صارم ولغة مواصفات رسمية مع بناء جملة مناسب.

2- متطلبات غير الوظيفية Non-functional requirements:

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

  • القابلية التنقل.
  • الحماية.
  • القابلية للصيانة
  • المصداقية.
  • القابلية للتوسع.
  • الإنجاز.
  • إعادة الاستخدام.
  • المرونة.

يتم تصنيف المتطلبات غير الوظيفية إلى الأنواع التالية:

  • قيود الواجهة.
  • قيود الأداء: وقت الاستجابة، الأمن، مساحة التخزين، وما إلى ذلك.
  • قيود التشغيل.
  • القيود الاقتصادية.

3- متطلبات المجال Domain requirements:

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

المصدر: Software Engineering | Classification of Software RequirementsWhat is Software Requirement? Types of Requirements.Software Requirements


شارك المقالة: