التنفيذ المرجعي

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

الخصائص والأمثلة

غالبًا ما تكون التطبيقات المرجعية للخوارزميات، مثل خوارزميات التشفير ، نتاجًا أو مدخلًا لعمليات التقييس . وفي هذا السياق، تُتاح هذه التطبيقات عادةً للملكية العامة ، مع توفير شفرتها المصدرية كبرمجيات متاحة للعموم . ومن الأمثلة على ذلك خادم HTTP الأول في سيرن [ 1 ] ، وخوارزمية التشفير Serpent ، ومتغيرات Base64 [ 2 ] ، وخوارزمية SHA-3 [ 3 ] . كما يحتفظ مشروع Openwall بقائمة تضم العديد من الخوارزميات مع شفرتها المصدرية المرجعية المتاحة للعموم [ 4 ] .

قد يكون تطبيق مرجعي بجودة إنتاجية عالية أو لا. على سبيل المثال، لا يُقارن تطبيق فراونهوفر المرجعي لمعيار MP3 عادةً بشكل إيجابي مع التطبيقات الشائعة الأخرى، مثل LAME ، في اختبارات الاستماع التي تحدد جودة الصوت. [ 5 ] في المقابل، يُعد CPython ، التطبيق المرجعي للغة برمجة بايثون ، [ 6 ] التطبيق الأكثر استخدامًا في الإنتاج.

الاختبار

يؤدي اختبار العلاقة بين التنفيذ والمواصفات إلى تعزيز كفاءة العمليات المتداخلة في الإنتاج بشكل أكبر:

بشكل عام، يُعدّ التنفيذ المرجعي تطبيقًا للمواصفات يُستخدم كتفسير نهائي لها. أثناء تطوير  مجموعة اختبارات المطابقة، يلزم وجود تطبيق واحد على الأقل موثوق به نسبيًا لكل واجهة من أجل: (1) اكتشاف الأخطاء أو الغموض في المواصفات، و(2) التحقق من صحة عمل مجموعة الاختبارات. [ 7 ]

خصائص التنفيذ المرجعي:

  1. تم تطويره بالتزامن مع المواصفات ومجموعة الاختبارات؛
  2. يتحقق من إمكانية تنفيذ المواصفات؛
  3. يُمكّن من اختبار مجموعة الاختبارات؛
  4. يُعتبر معياراً ذهبياً يمكن قياس التطبيقات الأخرى على أساسه؛
  5. يساعد على توضيح الغرض من المواصفات في الحالات التي تكون فيها اختبارات المطابقة غير كافية [ 8 ]

ملحوظات

  1. إلزامي وفقًا لـ RFC 2119

مراجع

  1. سميث، تيم؛ فلوكيجر، فرانسوا. "ترخيص الويب: للجميع" . سيرن . مؤرشف من الأصل بتاريخ 10 ديسمبر 2021. تم الاطلاع عليه بتاريخ 17 أغسطس 2014 .
  2. ديفولف، كريس (20 نوفمبر 2005). "libb64: إجراءات ترميز/فك ترميز Base64" . سورس فورج . مؤرشف من الأصل في 30 يوليو 2010. تم الاطلاع عليه في 6 فبراير 2016 .
  3. ^ بيرتوني، جويدو. دايمن، جوان؛ بيترز، مايكل. فان آش ، جيل (27/02/2013). "KeccakReferenceAndOptimized-3.2.zip" (ZIP) . keccak.noekeon.org . /KeccakReferenceAndOptimized/Sources/mainReference.c. مؤرشفة من الأصلي (ZIP) بتاريخ 30-09-2013 . تم الاسترجاع 2016/02/06 . وظيفة إسفنجة كيكاك، من تصميم: بيرتوني، جويدو؛ دايمن، جوان؛ بيترز، مايكل. فان اشي، جيل. لمزيد من المعلومات أو التعليقات أو الأسئلة، يرجى الرجوع إلى موقعنا على الإنترنت: keccak.noekeon.org/ / التنفيذ من قبل المصممين، والمشار إليه هنا باسم "المنفذ". / إلى أقصى حد يسمح به القانون، تنازل المُنفِّذ عن جميع حقوق النشر والحقوق ذات الصلة أو المجاورة المتعلقة بشفرة المصدر في هذا الملف. creativecommons.org/publicdomain/zero/1.0/
  4. سولار (5 نوفمبر 2009). "مقتطفات من شفرة المصدر وأطر العمل متاحة للعموم" . ويكي مجتمع أوبن وول . مؤرشف من الأصل في 26 يناير 2019. تم الاطلاع عليه في 16 نوفمبر 2017 .
  5. دالتون، ستيف (11 يونيو 2019). "معلومات الوسائط لا تتطابق مع خيارات التنسيق المحددة لملفات MP3 المصدرة - #6 بواسطة ستيف - ويندوز" . منتدى أوداسيتي . مؤرشف من الأصل في 2 ديسمبر 2023. تم الاطلاع عليه في 5 سبتمبر 2024 .
  6. سنو، إريك (26 أبريل 2012). "PEP 421 - إضافة sys.implementation" . peps.python.org . مؤسسة برمجيات بايثون (المالكة لموقع "python.org"). الدافع. مؤرشف من الأصل في 11 أبريل 2022. تم الاسترجاع في 6 يناير 2017. على مدى سنوات عديدة، تزايد التمييز بين لغة بايثون وCPython (التطبيق المرجعي). ويعود معظم هذا التغيير إلى ظهور Jython وIronPython وPyPy كبدائل قابلة للتطبيق للغة بايثون.
  7. دالسي، إريك؛ فونغ، إليزابيث؛ غولدفاين، آلان (26 مارس/آذار 2003). "متطلبات التطبيقات المرجعية لنظام إدارة سلسلة التوريد العالمية (GSC-IS)" (ملف PDF) . المعهد الوطني للمعايير والتكنولوجيا، مختبر تكنولوجيا المعلومات . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 28 سبتمبر/أيلول 2006. تاريخ الاطلاع: 22 يوليو/تموز 2006 .
  8. كوران، باتريك (10 ديسمبر 2003). "اختبار المطابقة: منظور صناعي" (ملف PDF) . المعهد الوطني للمعايير والتكنولوجيا . صن مايكروسيستمز . مؤرشف من الأصل (ملف PDF) بتاريخ 19 ديسمبر 2003. تاريخ الاسترجاع: 22 يوليو 2006 .