عندما تصل طلبات طلابية كثيرة إلى مكتب واحد، قد يختار الموظف الطلب الأقدم أو يعطي موعداً قريباً أولوية. المتوسط وحده لا يكشف أن فئة ما تنتظر طويلاً. تستطيع مشاريع تخرج نظم المعلومات بناء محاكي يقارن قواعد ترتيب الطلبات على بيانات مصطنعة، ويعرض الانتظار حسب نوع الخدمة وأطول معاملة بقيت معلقة. لا يقرر التطبيق سياسة مكتب جامعي ولا يستخدم سجلات حقيقية؛ إنه يوضح نتيجة قاعدة معلنة ويساعد الفريق على سؤال: من الذي يتحمل التأخير إذا غيرنا طريقة الدور؟
عرّف الطلب دون بيانات شخصية
يحتوي الحد الأدنى على معرف اصطناعي، وقت الوصول، فئة خدمة، مدة معالجة تقريبية، وحالة. لا تخزن اسماً أو رقماً جامعياً أو وصفاً حراً. ترسم الحالة انتقالاً من جديد إلى قيد الخدمة أو ينتظر استكمالاً أو مكتمل. سجل كل انتقال وتوقيته حتى يمكن تفسير حساب الانتظار. افصل أولوية الطلب عن مدة إنجازه: الطلب القصير ليس بالضرورة أسبق. كما ينبغي أن تكون فئة الموعد واضحة ومحدودة وموجودة فقط إذا احتاجها سيناريو الاختبار.
توثق SimPy الموارد المشتركة كنقطة انتظار بقدرة محدودة، وهو نموذج مناسب لمكتب له موظف واحد أو أكثر. إذا أضفت توزيع الموظفين على فترات الدوام، قد تفيد قيود OR-Tools CP-SAT، لكن النسخة الأولى تستطيع محاكاة موظف واحد بقواعد محددة دون محلل معقد. اجعل محرك السياسة منفصلاً عن شاشة العرض لتبديل الترتيب دون تغيير الأحداث.
قارن FIFO والأولوية والأقدمية
استخدم أولاً FIFO: صاحب أقدم وقت وصول يسبق. أضف قاعدة أولوية لفئة ذات موعد محدد، ثم أقدمية متزايدة أو aging تمنع طلباً عادياً من الانتظار إلى ما لا نهاية خلف طلبات أحدث. سقف النقاط قيمة يختارها فريق المشروع ويختبر حساسيتها؛ ليس معياراً عاماً. عرّف ما يحدث عند تعادل الأوقات، وعند توقف الطلب بسبب نقص مستند. إذا لم توثق قاعدة الاستثناء، فقد يبدو الرسم دقيقاً بينما يخفي قرار الموظف.
احفظ إصداراً لكل قاعدة ومعلماتها وبذرة المدخلات، حتى يمكن إعادة تشغيل الحالة نفسها. غيّر عاملاً واحداً في المقارنة: قاعدة الدور أو عدد الموظفين أو مدد الخدمة. إن تغيرت الطلبات والمواعيد في الوقت نفسه، لن تعرف سبب الفرق. اعرض النص الذي يشرح لماذا اختير الطلب التالي، مع حالة الطلبات التي تنتظر خلفه. لا تحول الأداة «الأولوية» إلى رقم يوحي بالدقة إن لم يستطع الفريق تفسير القاعدة للمستخدم.
سيناريو افتراضي يختبر المتوسط
اكتب خمس معاملات تصل عند أوقات معلنة، اثنتان منها بحاجة إلى موعد قبل نهاية اليوم، والبقية طلبات عادية. اجعل مدة الخدمة مختلفة واستخدم ساعة نموذج لا ساعة حقيقية. شغل FIFO ثم قاعدة aging على سلسلة الوصول نفسها. يحسب كل انتظار من وقت بدء الخدمة ناقص وقت الوصول، ويظهر الجدول الطلبات التي لم تنجز عند انتهاء الفترة. لا تصف نتيجة رقمية قبل تشغيل النموذج؛ أرفق حساباً يدوياً صغيراً للخط الأساس كي يستطيع قارئ مراجعة المؤشر.
اعرض المتوسط والوسيط والمئين التسعين والأقصى ونسبة الطلبات التي ظلت معلقة لكل فئة، إضافة إلى عدد العينات. المتوسط قد يتحسن بينما يسوء أقصى انتظار؛ لذلك لا تختزله في لون أخضر. إذا كانت العينة صغيرة، فالمئينات تقريبية وليست وصفاً لسلوك مكتب فعلي. قدم مخططاً يشرح مسار طلب واحد إلى جانب التجميع، واسمح بتعديل المدخلات دون تغيير سجل المثال الأساسي.
عرّف «الإنصاف» كمقاييس لا شعار
يمكن أن يقيس النموذج الفرق بين متوسط انتظار فئتين، وعدد من تجاوزوا مهلة افتراضية، وأطول معاملة معلقة. اكتب التعريف قبل رؤية النتيجة كي لا تختار المؤشر الذي يجعل السياسة تبدو ناجحة. هذه الأرقام تساعد على مقارنة قواعد في سيناريو، لكنها لا تقرر ما يستحق الأولوية أو ما إذا كان التصنيف مبرراً. نوع الطلب، اكتمال المستندات، ووقت الدوام يمكن أن تؤثر في الخدمة ولا تظهر في نموذج مبسط.
ابدأ ببيانات مولدة بالكامل وبقيم معلنة، مثل أوقات وصول ثابتة أو توزيع عشوائي ببذرة محفوظة. لا تستورد سجلاً جامعياً لمجرد أنه متاح. إذا أراد الفريق دراسة موظفين أو طلاب، فعليه أولاً الحصول على موافقة مناسبة، وإزالة المعرفات، وشرح الاحتفاظ بالبيانات. يمكن مقارنة سيناريوهات الضغط الاصطناعي، لكن لا تنشر ادعاءً أن قاعدة معينة «أكثر عدلاً للطلاب» دون عينة وتصميم دراسة ومراجعة أخلاقية.
اختبر عدم ضياع المعاملات
جهز حالات صفر طلبات، طلب واحد، وصول متزامن، انتهاء المحاكاة وفيها طلب معلّق، موظف غير متاح، وطلب يعود من حالة استكمال. يجب أن يدخل كل طلب مرة واحدة ويخرج مكتملًا أو ملغى أو يظل معلقاً مع سبب. تحقق أن عدد الطلبات في الحالات يساوي العدد الكلي، وأن مدة المحاكاة لا تتراجع. قارن نتيجة خمس معاملات بجدول يدوي؛ هذا خط الأساس، قبل أن تقارن سياسات أكبر.
سجل مخرجات كل تشغيل وإصدار القاعدة وحجم العينة وبذرة البيانات. اختبر أن إعادة التشغيل تعيد الأرقام نفسها وأن تحديث الشاشة لا يغير ترتيب المحرك. أظهر أن البيانات تدريبية، ولا تربط المحاكي بطابور فعلي أو حساب الموظف. يمكن للمستخدم اختيار FIFO أو aging ومشاهدة أثر القرار قبل عرضه في النقاش، دون أن ينفذ البرنامج أو يفرض سياسة على مكتب.
مخرجات مشروع التخرج وحدوده
يسلم الفريق محركاً بسيطاً للأحداث ومولد بيانات اصطناعية وقواعد دور موثقة ولوحة مقاييس واختبارات تتبع الطلب. لا يحتاج إصدار البداية إلى تسجيل دخول أو تخزين أسماء أو وصل بخدمة جامعية. اعرض المقارنة في جدول قابل للتصدير، وضمن كل قيمة رابطاً إلى السيناريو الذي أنتجها. هذه الشفافية أهم من رسوم متحركة تعرض طابوراً يتحرك دون معنى. يمكن إضافة فئات أو ساعات دوام لاحقاً إذا لم تغير تعريف الهدف كل مرة.
يرتبط المشروع موضوعياً بـمحاكاة طوابير الحافلات من جهة الأحداث والانتظار، لكنه لا يحاكي المقاعد أو الوصول إلى محطة؛ إنه يختبر سياسة ترتيب معاملات خدمة ومتوسطات الفئات. يستطيع طالب مشاريع تخرج نظم المعلومات الاستفادة منه لشرح قواعد الإجراء، ثم إبقاء أي تطبيق فعلي منفصلاً عن النموذج. لا توجد نتائج تجربة ميدانية هنا، وكل وصف للإنصاف يظل سؤالاً قابلًا للفحص وفق مقاييس معلنة.
المصادر
مراجعة المصادر: .
اختبار المثال وحدوده
الأوقات والفئات افتراضية؛ لم تجمع سجلات مكتب جامعي ولم تقاس سياسة فعلية.
مقالات ذات صلة
الخدمة المرتبطة: تطوير المشاريع البرمجية الجامعية.
أرسل متطلبات مشروعك