التحقق من صحة التصميم والمراجعة
التحقق من صحة التصميم والمراجعة، عند تصميم منتجات البرمجيات، لابد من فهم أساسيات التصميم الجيد، واستخدام أفضل الأساليب والمنهجيات في تصميم نماذج أولية للمنتج قبل عملية اللإنتاج، وبعد التصميم لابد من التحقق من
صحة التصميم والمراجعة الجيدة للأمور التقنية للتصميم وفهم الأبعاد الرئيسية وتحليلها، لتقييم تصميم المنتج بناء
على حقائق وتعليقات المستخدمين.
التحقق من صحة التصميم والمراجعة
تنقسم عمليات مراجعة التصميم إلى نوعين، أولهما هو التحقق من صحة التصميم (Design Validation)، والأخرى
هو التحقق الإثبات والتأكيد على التصميم (Design Verification)، لذا دعونا نناقش كل منهما على حدة:
التحقق من صحة التصميم Design Validation
تتضمن هذه العملية جمع وتحليل المتطلبات والتقييم الجيد للتصميم بناء على متطلبات العملاء والمستخدمين
النهائيين وأصحاب العمل، والهدف الرئيسي من عملية التحقق هذه هو اختبار التصميم والتأكد أنه يستوفي جميع
شروط ومتطلبات العملاء، ومناسب للعمل في بيئات مختلفة.
التحقق من صحة التصميم والمراجعة تهتم كثيرا بكمال التصميم وتناسق الأفكار بداخله، وهذا لإستيفاء احتياجات
المستخدم كاملة، وهذه هي الطريقة التي يتم فيها بناء المنتج بشكل واقعي ومقارنته مع متطلبات المستخدم وأخذ الملاحظات المهمة.
والغرض أيضا من هذه العملية هو إثبات تطابق المتطلبات بأدلة واقعية، وهذه الأدلة هي عبارة عن إثبات مادي حول نواتج التصميم أو المنتج المراد تصميمه، مثل صورة ما أو نص معين والذي يوضح أن الإجراءات تم تنفيذها بشكل صحيح، لذا
يطلق على هذه العملية اختبار النشاط، أو عملية الفحص والتحليل الشامل.
التأكيد على التصميم Design Verification
هي عملية التأكيد على الناتج النهائي للتصميم، ومطابقته لمتطلبات المستخدم عن طريق توفير الأدلة الصحيحة،
والهدف من هذه العملية التأكيد أن المنتج يطابق نفس المواصفات المطلوبة، وتعتبر المتطلبات المادية ومتطلبات الأداء
التي تستخدم في غرض التصميم هي مدخلات التصميم (Design Input)، ومخرجات التصميم (Design Output) هي
نتيجة كل مرحلة من مراحل التصميم المختلفة.
الفرق بين التحقق من صحة التصميم والمراجعة
والتأكيدDifference between Design Verification and Validation
- عملية التحقق من صحة التصميم تهتم بمطابقة التصميم النهائي للمنتج بمتطلبات المستخدم وتوقعاته، أما
عملية التأكيد والمراجعة تتحقق من الناتج النهائي للتصميم ومطابقته للتصميم المتوقع (الذي يوفر متطلبات المستخدم)، قد تجد أنه لا يوجد فرق بينهما، ولكن يوجد فرق مهم بينهما يمكن فهمه من خلال الفروقات التالية.
- عملية التحقق من التصميم تجيب عن سؤال (هل نقوم بتصميم المنتج الصحيح؟)، أما عملية التأكيد على
التصميم تجيب عن سؤال (هل نقوم بتصميم المنتج بشكل صحيح؟)، أما الأولى تجيب السؤال عن صحة التصميم نفسه، والأخرى تجيب السؤال عن الكيفية والطريقة المراد تصميم المنتج بها.
- تتطلب عمليات التحقق من التصميم وجود بعض العمليات التكاملية ذات المستوى الرفيع، واختبار المنتج على مستوى النظام، وهذه العمليات تتطلب مطورين ذوي خبرة في عمليات الاختبار والتكامل، أما عمليات التأكيد على التصميم تتضمن اختبار الوحدات واختبار التكاملية الأساسي فقط.
- يوجد بعض الجوانب في عمليات التحقق من التصميم يمكن تحقيقها عن طريق عمليات التأكيد على التصميم، ولكن لا غنى عن عمليات التحقق من التصميم والمراجعة، وتتبع عملية التحقق من التصميم عملية التأكيد على التصميم، حيث لابد أن يمر التصميم على عملية التأكيد أولا.
- يمكن تنفيذ عملية التأكيد على التصميم على الوحدات الفردية، كما يمكن تنفيذه على النظام كاملا تحت أي ظرف، أما عمليات التحقق من صحة التصميم والمراجعة لابد أن يتم تنفيذها تحت ظروف محددة بناء على متطلبات العميل، باعتبار أنه هو المرجع الرئيسي لعمليات التحقق والتأكيد.
- يمكن أن تستخدم عمليات التأكيد على التصميم تقنيات ثابتة، والتي تتضمن عمليات فحص النظام (System Inspections)، والتحليل (Analysis)، والاختبار (Testing)، أما عمليات التحقق من صحة التصميم والمراجعة تعتبر التقرير النهائي أو نتائج الاختبار الذي تمت مراجعته، وتم التأكيد والموافقة عليه، ويتم حفظ هذه المستندات للإطلاع في المستقبل.
عملية التأكيد على التصميم Design Verification Process
التعريف والتحضير Identification and Preparation
خلال عملية تطوير المنتج، تتم عمليات التعريف والتأكيد على التصميم بالتوازي، وهذا يعطي مساحة كبيرة للمصمم للتأكد
أن متطلبات النظام يتم التحقق منها، لذا يقوم مهندس الاختبار (Test Engineer) باختبار الإجراءات بشكل تفصيلي، وأي
تغيير تم على مستوى المتطلبات لابد من مشاركته مع الفرق المهتمة بشكل مستمر.
تحديد أفضل نهج للتأكيد على التصميم، وتحديد طرق القياس المختلفة، والموارد والأدوات المطلوبة، ومراجعة خطة
التأكيد الكاملية مع فريق التصميم لتحديد المشكلات قبل الإنتهاء من الخطة بشكل كلي.
التخطيط Planning
تخطيط عملية التأكيد على التصميم يعتبر نشاط متزامن مع الفرق الأساسية في المشروع وفرق التطوير خاصة، ويحدث
هذا الامر طوال فترة المشروع، ويتم تحديث الخطة بناء على أي مدخلات تصميم جديدة أو أي إجراءات مستجدة.
خلال هذه المرحلة لابد أن يتم توثيق النظام، حيث يتم تنفيذ خطة الاختبار الأولية، ومن ثم تحسين هذه الخطة بناء
على عدة عوامل فيما بعد، وتقوم خطة الاختبار بتحديد النقاط الهامة لتقليل مخاطر المشروع، ويتم استخدام أدوات واستراتيجيات هامة خلال هذه العمليات لتحليل المشاكل الناتجة.
التطوير Developing
في هذه المرحلة من مراحل التأكيد على التصميم يتزامن تطوير حالة الاختبار مع منهجية (SDLC) والتي ينفذها فريق المشروع، حيث يتم تحديد مجموعة من أساليب الاختبار المختلفة، كما يجب التطوير من مدخلات التصميم حتى في
أبسط الأشياء.
عملية التحقق من التصميم Design Validation Process
- يمكن التحقق من صحة التصميم والمراجعة من خلال مقارنة هذه التصميمات مع تصاميم مشابهة إلى حد ما، وتعتبر هذه الطريقة أكثر فاعلية عند التحقق من صحة التغييرات على مستوى البنية التحتية (Infrastructure)، أو في حالة التصميمات القياسية التي يتم اعدادها للدمج مع نظام ومنتج جديد.
- فحص وظائف المنتج الداخلية كالدوال والإجراءات يعد من عمليات التحقق من التصميم والمراجعة، وتحليل هذه الأجزاء وتنفيذ بعض الأساليب المعروفة، مثل: النمذجة الرياضية (Mathematical Modeling) وهي عملية محاكاة لإعادة إنشاء أو كتابة بعض الوظائف الداخلية للنظام.
- وفي حالة نجاح عملية التحقق من صحة التصميم والمراجعة، يدخل المنتج اختبارات التصميم النهائي والذي
يتحقق من قدرة النظام على العمل بشكل صحيح وفقا لمتطلبات العملاء، ولابد من تسجيل نتائح ووثائق الاختبارات المختلفة في عمليات التحقق، لأن الهدف الرئيسي من التحقق هو جمع نتائج أنشطة التحقق المختلفة.
مميزات عمليات التحقق والتأكيد على التصميم
Advantages of Design Validation and Verification
- تمكنك من مراقبة التصميم بشكل مستمر، والتأكد أنه يستوفي جميع الشروط والمتطلبات الخاصة بالمستخدم
في كل مرحلة، كما يشير التحقق من التصميم إلى الفرق بين طريقة عمل الوظيفة داخل النظام، وبين الطريقة المتوقعة
لكي تعمل بها.
- يساعد توثيق عمليات التحقق والتظاكيد على فهم الوظائف بسهولة في المستقبل في حالة التغيير أو
التحسين على مستوى التصميم، وسوف يقل وقت التطوير بشكل ملحوظ وتحسين الإنتاجية، مما يؤدي إلى تسليم
المنتج في الوقت المحدد.
- من المهم توثيق كل عمليات التحقق من التصميم والمراجعة المستمرة لهذه التوثيقات، حيث تساعد في
إثبات تلبية التصميم لاحتياجات المستخدم، والبقاء على علم بالتصميم.
فعمليات التحقق من صحة التصميم والمراجعة عمليات مهمة جدا في عالم البرمجيات، ولابد من تنفيذها بشكل صحيح لتنفي منتجات عالية الجودة.