مستندات فنی

معماری و روش نمره‌گذاری

این صفحه برای بررسی فنی نوشته شده است: تیم فناوری اطلاعات، مسئول امنیت، و کارشناسی که می‌خواهد پیش از اتکا به یک نمره بداند آن نمره چگونه ساخته می‌شود.

محتوای آزمون

نسخه‌بندی و تغییرناپذیری

یک نمره فقط در برابر همان اقلامی معنا دارد که آن را تولید کرده‌اند. این بند، سازوکاری است که آن تضمین را ممکن می‌کند.

چرخهٔ عمر نسخه

هر نسخه از پیش‌نویس آغاز می‌شود، پس از گذراندن بررسی‌ها اعتبارسنجی می‌شود، منتشر می‌گردد و در نهایت بایگانی می‌شود. ویرایشِ نسخهٔ منتشرشده ممکن نیست؛ ویرایش، نسخهٔ بعدی را می‌سازد.

بررسی‌های پیش از انتشار

انتشار متوقف می‌شود اگر پرسشی به مقیاس پاسخ متصل نباشد، شناسهٔ تکراری در یک نسخه وجود داشته باشد، نمره‌ای بیرون از بازهٔ مقیاس تعریف شده باشد، نگاشتی به سنجه‌ای ناموجود اشاره کند، نموداری سنجه‌ای تعریف‌نشده را رسم کند، یا مقیاسی کمتر از دو گزینه داشته باشد.

تثبیت نسخه در لحظهٔ ارجاع

نسخهٔ آزمون روی خودِ ارجاع ثبت می‌شود. انتشار نسخهٔ جدید، آنچه فردی در حال پاسخ دادن به آن است یا آنچه قبلاً سنجیده شده را تغییر نمی‌دهد.

پایداری کلید سنجه‌ها

کلید هر دامنه و وجه میان نسخه‌ها ثابت می‌ماند. این همان چیزی است که مقایسهٔ نتایج دوره‌های مختلف را — بدون هیچ گزارش‌سازی جانبی — ممکن می‌کند.

کتابخانه در برابر نمونه

مقیاس‌های پاسخ از الگوهای مشترک ساخته می‌شوند، اما هر نسخه نسخهٔ خودش را نگه می‌دارد. محتوای مشترک قابل تثبیت نیست و محتوای تثبیت‌شده قابل اشتراک نیست؛ این تفکیک، هر دو نیاز را هم‌زمان برآورده می‌کند.

نمره‌گذاری

روش محاسبهٔ نمره

نمره‌گذاری قطعی است: هیچ مدل آماری یا یادگیری ماشینی میان پاسخ و نمره قرار ندارد، و همان ورودی همیشه همان خروجی را می‌دهد.

سهم هر پرسش در چند سنجه

هر پرسش می‌تواند هم‌زمان به وجه خودش و به دامنهٔ بالادستی نمره بدهد، هر کدام با وزن مستقل. این با یک ستون «کلید سنجه» روی پرسش قابل بیان نیست و به همین دلیل به‌صورت رابطهٔ چندبه‌چند مدل شده است.

معکوس‌سازی بر پایهٔ بازهٔ خودِ مقیاس

نمرهٔ معکوس با فرمول «کمینه + بیشینه − نمرهٔ خام» محاسبه می‌شود و بازه از خودِ گزینه‌های همان مقیاس خوانده می‌شود. یک عدد ثابت در کد برای اولین ابزار درست کار می‌کند و برای مقیاسی با دامنهٔ متفاوت نتیجهٔ نادرست می‌دهد.

جهت معکوس، مستقل برای هر سنجه

یک پرسش می‌تواند برای یک سنجه معکوس شمرده شود و برای سنجهٔ دیگر نه. این ویژگی روی رابطهٔ پرسش و سنجه تعریف شده است، نه روی خودِ پرسش.

بازه‌های تفسیر در دو سطح

بازه‌ها هم برای هر سنجه و هم برای کل آزمون تعریف می‌شوند. هر بازه دقیقاً به یکی از این دو تعلق دارد و این محدودیت در سطح پایگاه داده اعمال می‌شود.

راستی‌آزمایی پیش از هر رابط کاربری

موتور نمره‌گذاری مستقل از هر صفحه و پیش از ساخته‌شدن آن، در برابر پروفایل‌هایی با نتیجهٔ از پیش معلوم آزموده می‌شود. مجموعهٔ مرجعی که منبعش قابل ذکر نباشد ملاک پذیرش نیست؛ چنین چیزی معیار نیست، فقط تصویری از رفتار همان روزِ کد است.

ردیابی

زنجیرهٔ ردیابی نتیجه

هر حلقه از این زنجیره یک تصمیم در ساختار داده است، نه یک قابلیت گزارش‌گیری که بعداً اضافه شده باشد.

نتیجه، نسخه را در خود دارد

نمرات محاسبه‌شده به‌همراه شناسهٔ نسخه‌ای که با آن محاسبه شده‌اند ذخیره می‌شوند، پس نتیجه سال‌ها بعد هم قابل بازتولید است.

پاسخ‌ها دو بار ثبت می‌شوند

هر پاسخ هم گزینهٔ انتخاب‌شده و هم مقدار عددی همان گزینه را نگه می‌دارد. این تکرار عمدی است و آزمونی وجود دارد که تطابق این دو را بررسی می‌کند.

دفتر رویدادها فقط افزوده می‌شود

تأیید سازمان، تغییر عضویت، ارجاع، کسر از کیف پول و انتشار نسخه ثبت می‌شوند. برای این ثبت‌ها مسیر ویرایش یا حذف وجود ندارد و کنشگر هر رویداد — کاربر، مدیر پلتفرم یا خودِ سامانه — مشخص است.

مبالغ، عدد صحیح ریال

همهٔ مبالغ به‌صورت ریال صحیح در یک دفتر کل نگهداری می‌شوند و تنها در لحظهٔ نمایش به تومان تبدیل می‌گردند، تا خطای گِردکردن جایی برای پیدا شدن نداشته باشد.

جداسازی داده

تفکیک سازمان‌ها و کنترل دسترسی

جداسازی در لایهٔ مدل اعمال می‌شود، نه با بررسی‌های موردی در هر نقطهٔ ورودی — چون نقطهٔ ورودی‌ای که فراموش شود، همان‌جاست که نشت رخ می‌دهد.

سازمان فعال، یک بار در هر درخواست

سازمان فعال از نشست خوانده می‌شود، نه از پارامتر درخواست. شناسهٔ سازمانی که در بدنهٔ درخواست بیاید چیزی است که باید در برابر نشست اعتبارسنجی شود، نه منبع حقیقت.

محدودسازی در سطح مدل

مدل‌های متعلق به سازمان به‌صورت خودکار به سازمان فعال محدود می‌شوند و آزمونی معماری بررسی می‌کند هیچ مدلی از این مجموعه جا نیفتاده باشد. بازبینی کد این را به‌طور قابل اتکا نمی‌گیرد؛ آزمون می‌گیرد.

دسترسی بین‌سازمانی: «یافت نشد»

درخواست برای دادهٔ سازمان دیگر پاسخ «یافت نشد» می‌گیرد، نه «مجاز نیست». پاسخ دوم خودش تأیید می‌کند که آن داده وجود دارد.

دسترسی به نتیجه، بر پایهٔ نقش و گروه

سه نقش وجود دارد: راهبر سازمان، سرپرست و کارمند. کارمند همیشه نتیجهٔ خودش را می‌بیند. راهبر سازمان همهٔ نتایج سازمانش را می‌بیند. سرپرست فقط نتایج کارمندانِ گروه‌هایی را می‌بیند که راهبر به او سپرده است. برای هر کس دیگر خواندن نتیجه نیازمند مجوز صریح است و کسی نمی‌تواند مجوزی بدهد که خودش آن دید را ندارد. هر صدور و هر لغو در دفتر رویدادها ثبت می‌شود و مجوز لغوشده حذف نمی‌شود، تا سابقهٔ اینکه چه کسی چه زمانی دسترسی داشته باقی بماند.

هویت و امنیت

ورود، هویت و نگهداری اعتبارنامه

هویت در این سامانه شمارهٔ موبایل است، چون بسیاری از کارکنانی که ارزیابی می‌شوند رایانامهٔ سازمانی ندارند.

ورود با گذرواژه یا رمز یک‌بارمصرف

هر دو مسیر به نشست یکسانی می‌رسند. داشتن گذرواژه الزامی نیست؛ کسی که هرگز گذرواژه‌ای نداشته با کد وارد می‌شود و می‌تواند همان‌جا برای خود گذرواژه بسازد.

درخواست کد، بدون افشای فهرست کاربران

درخواست رمز یک‌بارمصرف برای شماره‌ای که حساب دارد و شماره‌ای که ندارد، پاسخ و زمان‌بندی یکسان می‌دهد. تفاوت در «چه زمانی» رد می‌شود هم به‌اندازهٔ تفاوت در «چه چیزی» گفته می‌شود افشاگر است.

کد فقط درهم‌سازی‌شده ذخیره می‌شود

کد زنده یک اعتبارنامه است؛ کسی که جدول را بخواند نباید بتواند با آنچه می‌بیند وارد شود. هر کد یک‌بار مصرف است و با ارسال کد جدید، کد قبلی باطل می‌شود.

محدودسازی نرخ در دو سطح

یک سقف برای درخواست کد و یک سقف برای تلاش‌های نادرست. اولی مانع حجم است و دومی مانع صبر؛ شمارش هر دو پیش از یافتن حساب انجام می‌شود تا خودِ محدودسازی چیزی را فاش نکند.

محل نگهداری داده

میزبانی داخل کشور یا استقرار روی زیرساخت سازمان. مسیر پرداخت و مسیر پیامک هر دو داخلی‌اند و هیچ سرویس خارجی در آن‌ها قرار ندارد.

سؤالی که اینجا پاسخ نگرفت؟

جزئیات بیشتر — از جمله مستندات استقرار و مدل تهدید — در جلسهٔ بررسی فنی ارائه می‌شود.