التنفيذ المرجعي
في عملية تطوير البرمجيات ، يُعدّ التنفيذ المرجعي (أو، في حالات أقل شيوعًا، التنفيذ التجريبي أو التنفيذ النموذجي ) برنامجًا يُنفّذ جميع متطلبات المواصفات ذات الصلة. غالبًا ما يُرفق التنفيذ المرجعي بمعيار تقني ، ويُبيّن ما ينبغي أو يجب اعتباره السلوك " الصحيح " لأي تنفيذ آخر له.
الخصائص والأمثلة
غالبًا ما تكون التطبيقات المرجعية للخوارزميات، مثل خوارزميات التشفير ، نتاجًا أو مدخلًا لعمليات التقييس . وفي هذا السياق، تُتاح هذه التطبيقات عادةً للملكية العامة ، مع توفير شفرتها المصدرية كبرمجيات متاحة للعموم . ومن الأمثلة على ذلك خادم HTTP الأول في سيرن [ 1 ] ، وخوارزمية التشفير Serpent ، ومتغيرات Base64 [ 2 ] ، وخوارزمية SHA-3 [ 3 ] . كما يحتفظ مشروع Openwall بقائمة تضم العديد من الخوارزميات مع شفرتها المصدرية المرجعية المتاحة للعموم [ 4 ] .
قد يكون تطبيق مرجعي بجودة إنتاجية عالية أو لا. على سبيل المثال، لا يُقارن تطبيق فراونهوفر المرجعي لمعيار MP3 عادةً بشكل إيجابي مع التطبيقات الشائعة الأخرى، مثل LAME ، في اختبارات الاستماع التي تحدد جودة الصوت. [ 5 ] في المقابل، يُعد CPython ، التطبيق المرجعي للغة برمجة بايثون ، [ 6 ] التطبيق الأكثر استخدامًا في الإنتاج.
الاختبار
يؤدي اختبار العلاقة بين التنفيذ والمواصفات إلى تعزيز كفاءة العمليات المتداخلة في الإنتاج بشكل أكبر:
بشكل عام، يُعدّ التنفيذ المرجعي تطبيقًا للمواصفات يُستخدم كتفسير نهائي لها. أثناء تطوير مجموعة اختبارات المطابقة، يلزم وجود تطبيق واحد على الأقل موثوق به نسبيًا لكل واجهة من أجل: (1) اكتشاف الأخطاء أو الغموض في المواصفات، و(2) التحقق من صحة عمل مجموعة الاختبارات. [ 7 ]
خصائص التنفيذ المرجعي:
- تم تطويره بالتزامن مع المواصفات ومجموعة الاختبارات؛
- يتحقق من إمكانية تنفيذ المواصفات؛
- يُمكّن من اختبار مجموعة الاختبارات؛
- يُعتبر معياراً ذهبياً يمكن قياس التطبيقات الأخرى على أساسه؛
- يساعد على توضيح الغرض من المواصفات في الحالات التي تكون فيها اختبارات المطابقة غير كافية [ 8 ]
ملحوظات
مراجع
- ↑ سميث، تيم؛ فلوكيجر، فرانسوا. "ترخيص الويب: للجميع" . سيرن . مؤرشف من الأصل بتاريخ 10 ديسمبر 2021. تم الاطلاع عليه بتاريخ 17 أغسطس 2014 .
- ↑ ديفولف، كريس (20 نوفمبر 2005). "libb64: إجراءات ترميز/فك ترميز Base64" . سورس فورج . مؤرشف من الأصل في 30 يوليو 2010. تم الاطلاع عليه في 6 فبراير 2016 .
- ^ بيرتوني، جويدو. دايمن، جوان؛ بيترز، مايكل. فان آش ، جيل (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/
- ↑ سولار (5 نوفمبر 2009). "مقتطفات من شفرة المصدر وأطر العمل متاحة للعموم" . ويكي مجتمع أوبن وول . مؤرشف من الأصل في 26 يناير 2019. تم الاطلاع عليه في 16 نوفمبر 2017 .
- ↑ دالتون، ستيف (11 يونيو 2019). "معلومات الوسائط لا تتطابق مع خيارات التنسيق المحددة لملفات MP3 المصدرة - #6 بواسطة ستيف - ويندوز" . منتدى أوداسيتي . مؤرشف من الأصل في 2 ديسمبر 2023. تم الاطلاع عليه في 5 سبتمبر 2024 .
- ↑ سنو، إريك (26 أبريل 2012). "PEP 421 - إضافة sys.implementation" . peps.python.org . مؤسسة برمجيات بايثون (المالكة لموقع "python.org"). الدافع. مؤرشف من الأصل في 11 أبريل 2022. تم الاسترجاع في 6 يناير 2017. على
مدى سنوات عديدة، تزايد التمييز بين لغة بايثون وCPython (التطبيق المرجعي). ويعود معظم هذا التغيير إلى ظهور Jython وIronPython وPyPy كبدائل قابلة للتطبيق للغة بايثون.
- ↑ دالسي، إريك؛ فونغ، إليزابيث؛ غولدفاين، آلان (26 مارس/آذار 2003). "متطلبات التطبيقات المرجعية لنظام إدارة سلسلة التوريد العالمية (GSC-IS)" (ملف PDF) . المعهد الوطني للمعايير والتكنولوجيا، مختبر تكنولوجيا المعلومات . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 28 سبتمبر/أيلول 2006. تاريخ الاطلاع: 22 يوليو/تموز 2006 .
- ↑ كوران، باتريك (10 ديسمبر 2003). "اختبار المطابقة: منظور صناعي" (ملف PDF) . المعهد الوطني للمعايير والتكنولوجيا . صن مايكروسيستمز . مؤرشف من الأصل (ملف PDF) بتاريخ 19 ديسمبر 2003. تاريخ الاسترجاع: 22 يوليو 2006 .
- اختبار العناصر
- مصطلحات هندسة البرمجيات
