פרוייקט שנתי – תוכנה לניהול ויצירת מבחנים

מסמך דרישות

גרסה מס' 5
‏2004.01.25

תוכן העניינים

תוכן העניינים
0. מבוא
0.1. רשימת השינויים העיקריים מהטיוטות הקודמות
1. הגדרות
1.1. מילון למונחי סטטיסטיקה
2. רכיבי המערכת והפעולות הזמינות עבורם
2.0. מבוא
2.1. מאגר השאלות וניהולו
2.1.1. ניהול עץ הקטגוריות
מגבלות
פעולות
2.1.2. ניהול רשימת השאלות, על גרסאותיהן והתשובות להן
מצבים
מגבלות
דרישות
פעולות
2.2. בניית מבחנים וניהול מאגר המבחנים
מצבים
מגבלות
דרישות
פעולות
2.2.1. הדפסת מבחנים
הדפסת שאלה במבחן
הדפסת מבחן קנוני
הדפסת מבחנים מעורבלים
2.3. ייצור טפסי תשובות
2.3.1. מילוי טופס התשובות
2.4. הזנת וניהול תשובות הסטודנטים
מגבלות
פעולות
2.5. קבלת מידע סטטיסטי
2.5.1. מידע סטטיסטי על התפלגות הציונים
2.5.2. הצגת מידע סטטיסטי על המבחן
2.5.3. שמירת מידע סטטיסטי על גרסאות, שאלות וקטיגוריות
2.5.3. הצגת מידע סטטיסטי על תשובות העונים למבחן
2.5.4 שמירת מידע סטטיסטי על תשובות
2.5.5 היורסטיקות ביחס לטיב של שאלה במבחן
2.5.6 הצלחה של כל סטודנט במבחן
2.6. ציינון מבחנים
מגבלות
דרישות
פעולות
2.7. הכנת גיליון ציונים
פעולות
3. ממשק המשתמש
3.1. הממשק הגראפי
3.1.1. תמיכה ב-drag-and-drop
3.1.2. סימון מצב שגוי
3.1.3. דרישות שונות נוספות
3.1.4. קווים מנחים כלליים לתכנון GUI
3.2. ממשק Java לצרכי Scripting

0. מבוא
מסמך זה מהווה את מסמך הדרישות לפיו עליכם לבנות את מסמך התכנון של הפרויקט. 
אנא שימו לב לכך שמסמך זה לא נכתב על-פי ההנחיות המדויקות שניתנו לכם לשם כתיבת מסמך דרישות, כלומר, הוא אינו בכל דבר ועניין "פתרון בית-ספר" למשימה הקודמת.
המערכת תנהל מאגר שאלות רב-ברירה (אמריקאיות), המורכבות מגוף (גזע) ותשובות, אשר כולן למעט אחת הינן לא נכונות (מסיחים), המאורגנות בפרקים ובתתי פרקים (קטגוריות). מתוך המאגר יוכל המשתמש ליצור ולהדפיס מבחנים וטפסי תשובות. המערכת תספק דרך קלה לבדוק את המבחנים על ידי הזנה של גיליון התשובות של ולהעביר ציונים למערכת ציונים חיצונית. המערכת תספק משוב וסטטיסטיקה לסטודנטים על הישגיהם לצורך לימוד מוגבר של הנושאים הבעייתיים. המערכת תספק משוב וסטטיסטיקה למורים על טיב השאלות והמסיחים, ותאפשר שיפור של השאלות והתשובות. המערכת תאפשר מעקב היסטורי אחרי מבחנים שניתנו, ולכן שאלות עשויות להכיל מספר גרסאות.
מרכיבי המערכת העיקריים הם: 
1.	עריכת מאגר שאלות בעלות גרסאות המאורגן לפי באופן היררכי לפי עץ קטגוריות. 
2.	ייצור מבחנים הן קנוניים והן אקראיים. 
3.	ייצור טפסי תשובות. 
4.	הזנת תשובות סטודנטים. 
5.	קבלת סטטיסטיקות על הציונים. 
6.	ציינון סופי, כולל פקטור, עם אפשרות לניקוד שונה לכל שאלה או תשובה. 
דרישות כלליות וראשוניות מהמערכת כוללות:
1.	בניית עץ קטגוריות (סיווג) של השאלות השונות לפי נושאים ותתי-נושאים.
2.	המערכת תחזיק אוסף של שאלות. ניתן יהיה לערוך או למחוק כל שאלה. 
3.	לכל שאלה תהיינה מספר תשובות, כשרק תשובה אחת נכונה. 
4.	לכל שאלה תוצמד קטגוריה ראשית ומספר כלשהו של קטגוריות משניות. כל הקטגוריות תבחרנה מתוך עץ הקטגוריות. 
5.	לכל שאלה תשמר ההיסטוריה של השינויים שעברה. 
6.	לכל שאלה תוכלנה להיות מספר גרסאות. 
7.	המערכת תיתן תמיכה חזקה של בניה ידנית ודינמית של המבחן. המערכת תתמוך בבניית המבחן תוך כדי טיול על עץ הקטגוריות. 
8.	המערכת תאפשר הדפסת מבחנים.
•	המערכת תאפשר ייצור של מספר בלתי-מוגבל של מבחנים, שכל אחד מהם יעורבל באופן נפרד.
•	השאלות בכל מבחן מודפס תעורבלנה באורח היררכי ע"פ הקטגוריות בעץ. 
•	לגבי כל שאלה המאפשרת זאת תעורבלנה התשובות לשאלה. 
9.	המערכת תספק שיטה קלה להזנת תשובות הסטודנטים למבחנים, תוך-כדי זיהוי דינמי של שגיאות הקלדה.
10.	בעת בדיקת המבחן המערכת תיתן היזון חוזר לפי תוצאות כל שאלה. 
11.	המערכת תבצע ניתוח סטטיסטי של המבחנים ותשמור את התוצאה בבסיס המידע שלה לצורך שימוש עתידי. 
12.	המערכת תחשב את הקושי של כל מבחן על סמך ההיזונים החוזרים שנשמרו בבסיס המידע שלה. 
13.	המערכת תאפשר להוציא לכל סטודנט דו"ח המפרט את התחומים החזקים והחלשים שלו. 
14.	המערכת תתמוך בשאלות בשפות שונות, ובפרט בשפות בעלות כיוון כתיבה שונה (כגון עברית ואנגלית), ובמבחנים הכוללים שאלות בשפות שונות באופן מעורב. במקרה כזה, כל שאלה תודפס באופן המתאים לשפתה (למשל, שאלות בעברית תודפסנה עם הצמדה לימין, שאלות באנגלית - עם הצמדה לשמאל). 
15.	המערכת תאפשר הדפסת כל בסיס הידע (שאלות, מבחנים, דו"חות וכו')
16.	המערכת תתמוך בייבוא/ייצוא של מידע על-פי הפירוט הבא: 
•	ייבוא וייצוא של שאלות לפורמט XML. 
•	ייצוא של מבחנים לפורמט XML. 
•	ייצוא של גיליון ציונים לפורמט Comma-Separated Values. 
המערכת תהיה מבוססת על בסיס נתונים טבלאי.
0.1. רשימת השינויים העיקריים מהטיוטות הקודמות
השינויים נועדו להקל על התכנון ועל פיתוח התוכנה עצמה, כאשר המטרה העיקרית שלהן היא בניית מערכת בעלת פונקציונליות מרבית, בהשקעה הקטנה היותר שאפשר.
השינויים בין הטיוטה השניה לשלישית:
•	מבנה המסמך שונה מעט, כך שכעת כל ההגדרות המפורטות מרוכזות במילון המאורגן אלפאביתית, וטקסט המסמך אינו כולל חזרה על הגדרות אלה. חשוב לקרוא את המילון בקפידה ולהבין את כל ההגדרות המופיעות בו.
•	בוטלה הדרישה לתמוך בבונוס אישי לכל סטודנט.
•	בוטלה הדרישה לנוסחת פקטור בשפה עילית. נוסחת הפקטור היא לינארית בלבד (ax+b).
•	כדי להקל על משימות ההדפסה השונות, ניתן לבצע כל הדפסה (מבחנים, גיליונות תשובות) כיצירת קובץ XHTML. 
•	הדרישה לממשק JMX בוטלה והוחלפה בדרישה להגדרת ממשקי Java פשוטים, שיהוו בסיס לשפת ה-scripting.
•	נוספו הבהרות באשר לאופן העבודה עם תוכנת גיליון הנתונים החיצונית (Excel למשל).
•	נוספו הבהרות לפעולה OP.T.12 (ייצוא מבחנים לקובץ XML).
•	הגדרת עץ ההטלה של מבחן, ומידע נוסף שיש להציג למשתמש בזמן עריכת מבחן.
שינויים פעוטים שיש לתת עליהם את הדעת: טווח הציונים של מבחן לא חייב להיות בין אפס למאה; ציונים לא חייבים להיות מספרים שלמים; המונחים "עותק אקראי", "סדר אקראי" וכו' הוחלפו ב"עותק מעורבל", "סדר מעורבל" וכו'; נוספו סעיפים המבהירים מהם המצבים האפשריים של שאלה, של גרסה של שאלה ושל מבחן.
מאז הטיוטה השלישית תוקנו מעט הדרישות בדבר עץ הטלה, שמירת הקטגוריה של שאלה במבחן, והובהרו הדרישות לחישובים סטטיסטיים. השינויים במסמך מאז הטיוטה השלישית (2004-01-08) מופיעים על רקע כחול לאורך המסמך כולו. השינויים מאז הגרסה הרביעית הם ברובם הבהרות ותיקונים קלים, והם מופיעים על רקע ירוק.
1. הגדרות
מילון מונחים זה משמש כמפתח לקריאת המסמך. לנוחות הקוראים, אם הגדרה במילון זה מסתמכת על מונח אחר המוגדר גם הוא במילון, המונח יוצג כשקו מקווקו מתוח תחתיו. אופן ציון זה נמצא בשימוש במילון בלבד, ולא בשאר חלקי המסמך.

בחירה של סטודנט: אוסף התשובות אותן סימן הסטודנט כתשובות נכונות, לדעתו, לשאלות במבחן נתון.
גיליון ציונים: דף עליו מודפסים הציונים הסופיים של כל הנבחנים במבחן נתון, בצורה מסודרת.
גרסה של שאלה: טקסט של שאלה, ואוסף תשובות, שעשויים להיות מוצגים לסטודנט במהלך מבחן, כך שעליו לסמן את התשובה הנכונה ביותר, לדעתו.
גרסה נעולה: גרסה של שאלה, המופיעה במבחן כלשהו.
גרסה עדכנית של שאלה: הגרסה הפעילה של השאלה, או אם אין כזו, הגרסה האחרונה שעודכנה. 
גרסה פעילה של שאלה: גרסה של שאלה, שייעשה בה שימוש אם נצרף את השאלה למבחן.
דרישה: סעיף בהגדרות, שאי-קיומו מוביל את הפריט (אליו מתייחסת הדרישה) למצב שגוי.
התייחסות למספר של תשובה אחרת: סימון מיוחד בטקסט של תשובה (של גרסה של שאלה), שיוצג כמספרה הסידורי של תשובה אחרת (לאותה גרסה), בהתאם למיקומה של התשובה האחרת בעת הצגת השאלה.
טופס תשובות: דף, המכיל לוח תשובות אחד או יותר, ובו יסמן הסטודנט את בחירתו. הטופס יכיל גם מידע נוסף כגון שם הסטודנט, מס' הזיהוי שלו וכו'.
טקסט QHTML: פיסה (fragment) של מסמך QHTML, כך שאם נוסיף את התג <p>...</p> מסביב לטקסט, התוצאה תהיה מסמך XML בנוי-היטב (well-formed). בפרט, כל טקסט "רגיל" שאינו כולל תגים הוא טקסט QHTML.
טקסט QHTML לא ריק: טקסט QHTML שאינו מכיל רווחים מובילים או רווחים נגררים, ואורכו לפחות תו יחיד.
כותרת של קטגוריה במבחן נתון: שם הקטגוריה, ללא הרישא המשותפת לכל שמות הקטגוריות שנמצאות בשימוש במבחן. (לאותה קטגוריה עשויה להיות כותרת שונה במבחנים שונים, משום שהרישא המשותפת מושפעת משמות קטגוריות אחרות במבחן נתון). אם במבחן נתון, כל השאלות נבחרו מאותה קטגוריה, כותרת הקטגוריה הזו היא ריקה.
לוח תשובות: חלק מפתח בטופס תשובות, ובו תסומן בחירתו של הסטודנט לתשובות לשאלות השונות שנכללו במבחן. טופס תשובות יכול להכיל לוח תשובות אחד או יותר (ע"פ מספר השאלות במבחן).
מבחן: אוסף מוגדר של גרסאות של שאלות, שיוצג כמכלול לנבחנים.
מגבלה: סעיף בהגדרות, שאי-קיומו מוביל את הפריט (אליו מתייחסת המגבלה) למצב לא קביל.
מזהה: שם (מחרוזת תווים) ללא רווחים מובילים וללא רווחים נגררים, ואורכו לפחות תו יחיד, והוא מורכב מהתווים הבאים בלבד: אותיות, ספרות, רווח, או אחד מהתווים מהקבוצה הבאה: {"!", "@", "~", "#", "$", "%", "^", "&", "*", "(", ")", "[", "]", "{", "}", "-", "=", "+"}. שימו לב לכך שתו הלוכסן ("/") אינו נמצא ברשימה זו.
מזהה שפה: מזהה, שהוא מזהה שפה תקין (ע"פ RFC 1766) – למשל, he או en או en-us וכו'.
מספר מחברת: מספר סידורי של עותק מעורבל של מבחן, כך שהמערכת יכולה לשחזר (על-סמך מספר זה) את סדר השאלות במבחן ואת סדר התשובות בכל שאלה.
מצב לא קביל: מצב שלא ניתן להגיע אליו; המערכת תסרב לבצע פעולה שתוביל למצב זה. אם ינסה המשתמש לבצע פעולה מסוג זה, תוצג הודעת שגיאה מתאימה.
מצב שגוי: מצב שניתן להגיע אליו תוך-כדי פעילות המערכת, אולם הוא מוגדר כבלתי-רצוי ופעולות מסוימות עשויות להיות בלתי-זמינות עבור פריטים הנמצאים במצב זה. המערכת תסמן (גרפית או אחרת) פריטים הנמצאים במצב שגוי. אם ינסה המשתמש לבצע פעולה מסוג זה, תוצג אזהרה מתאימה.
נוסחת פקטור: נוסחה, המאפשרת לשנות את ציוניהם הסופיים של הסטודנטים במבחן.
סדר מעורבל של תשובות לגרסה של שאלה: פרמוטציה של הסדר הקנוני של התשובות, במגבלות מסוימות. אופן קביעת הסדר המעורבל מפורט בסעיף 2.1.2.
סדר קנוני של תשובות לגרסה של שאלה: סדר קבוע ומוגדר היטב של התשובות. אופן קביעת הסדר הקנוני מפורט בסעיף 2.1.2.
עותק מעורבל של מבחן: עותק של מבחן, שבו השאלות מופיעות בסדר מעורבל על-פי אלגוריתם הערבול, והתשובות לכל שאלה מופיעות בסדר מעורבל של תשובות. אלגוריתם הערבול מפורט בסעיף 2.2.1.
עותק קנוני של מבחן: עותק של מבחן, שבו השאלות מופיעות בסדר קבוע ומוגדר היטב, והתשובות לכל שאלה מופיעות בסדר הקנוני של התשובות. הסדר בו מופיעות השאלות בעותק קנוני מוגדר בסעיף 2.2.1.
עמודת המספור בלוח תשובות: העמודה השמאלית ביותר בלוח תשובות, ובה מופיע (בכל שורת תשובה) המספר הסידורי של השאלה, כפי שנקבע בעותק זה של המבחן.
עמודת התשובה הפנויה בלוח תשובות: העמודה השניה משמאל בלוח תשובות, ובה כותב הסטודנט בכתב ידו, בכל שורת תשובה, את האות המייצגת את התשובה הנכונה (לדעתו) לשאלה. האות שנכתבת בעמודה זו צריכה להתאים לאות שהסטודנט מקיף באחת מעמודות התשובה A עד J.
עמודת תשובה A עד עמודת תשובה J בלוח תשובות: עמודות בלוח התשובות, בהן מופיעה אות הסימון של תשובה מסוימת (a עד j, בהתאמה), ועל הסטודנט להקיף את האות המתאימה באחת בלבד מעמודות אלה בכל שורת תשובה – בהתאם לתשובה שכתב בעמודת התשובה הפנויה.
עץ הטלה של מבחן: תת-קבוצה מינימלית של הקטגוריות מעץ הקטגוריות, המכילה את השורש, והיא עץ תקין במובן זה שלכל קטגוריה בעץ ההטלה, גם קטגוריית האם שלה, אם יש כזו, נמצאת בעץ ההטלה, וגם תת-קבוצה זו מכילה את כל הקטגוריות הנמצאות בשימוש במבחן זה.
עץ הטלה מצומצם של מבחן: תת-קבוצה מינימלית של הקטגוריות מעץ הקטגוריות, המכילה את כל הקטגוריות הנמצאות בשימוש במבחן זה, והיא עץ תקין במובן זה שהיא מכילה את תת-הקטגוריה המשותפת הנמוכה ביותר לגבי כל שתי קטגוריות. עץ ההטלה המצומצם אינו מכיל בהכרח את השורש.
עץ הקטגוריות: מבנה הירארכי, ובו לכל קטגוריה (למעט קטגוריית השורש) יש "קטגוריית אם" אחת בדיוק, ומספר כלשהו (אפס או יותר) של "קטגוריות-בנות" (כלומר, קטגוריות שעבורן קטגוריה זו היא קטגוריית האם).
ערך סף להצלחה: ערך של ציון סופי המהווה רף להצלחה במבחן: סטודנט שקיבל ציון סופי נמוך מערך זה, נחשב לסטודנט שנכשל במבחן.
ציון המינימום וציון המקסימום של מבחן: שני ערכים הקובעים את טווח הציונים האפשרי בעת ציינון מבחן. ציון המקסימום חייב להיות גבוה ממש מציון המינימום, אולם מעבר לכך אין כל מגבלה על ערכים אלה. 
ציון סופי: ערך מספרי המסמל את הצלחתו היחסית של סטודנט במבחן, בין ציון המינימום לציון המקסימום של מבחן זה.
ציינון מבחן: תהליך בחירת משקל יחסי לגרסאות השאלות שהוצגו במבחן, ולתשובות השונות לגרסאות אלה, כך שייקבע הציון הסופי של כל נבחן. תהליך הציינון כרוך בקביעת המשקל של כל שאלה במבחן (על-סמך שיקולים סטטיסטיים), המשקל של כל תשובה (ייתכן למשל כי בשאלה מסוימת, תשובה נתונה, שלא הוגדרה כתשובה הנכונה, תזכה בכל-זאת את מי שבחר בה בניקוד חלקי ואף מלא), והפקטור.
קטגוריה: נושא לימוד מוגדר, שיכולות להיות שאלות השייכות לתחומו. קטגוריה מצוינת באמצעות שם.
קטגוריה בת של קטגוריה C: קטגוריה, שקטגוריה C היא קטגוריית האם שלה.
קטגוריה קדומה של קטגוריה C: קטגוריה, שקטגוריה C היא תת-קטגוריה שלה. קטגוריה C' היא קטגוריה קדומה של קטגוריה C אם C' היא קטגוריית האם של C, או קטגוריית האם של קטגוריית האם של C, וכו' (כלומר, קיים מסלול בעץ מ-C' אל C, כשכיוון ההתקדמות הוא מאם לבת). בפרט, קטגוריית השורש היא קטגוריה קדומה של כל קטגוריה אחרת.
קטגוריה ראשית של שאלה Q: קטגוריה ששאלה Q מוגדרת בה. שאלה Q שייכת לקטגוריה הראשית שלה, ולכל קטגוריות המשנה שלה.
קטגוריית אם של קטגוריה C: הקטגוריה הנמצאת צעד אחד במעלה עץ הקטגוריות (לכיוון שורש העץ), אם יוצאים מקטגוריה C.
קטגוריית השורש: קטגוריה מיוחדת המהווה את שורש עץ הקטגוריות. לקטגוריה זו אין קטגוריית אם, והיא קטגוריה קדומה של כל שאר הקטגוריות.
קטגוריית משנה של שאלה Q: קטגוריה, ששאלה Q שייכת לה, אך אינה הקטגוריה הראשית של Q. 
שאלה: אוסף של גרסאות. לכל שאלה יש גרסה אחת לפחות. כל שאלה במערכת שייכת לקטגוריה מסוימת, שהיא הקטגוריה הראשית של השאלה. כמו כן, כל שאלה יכולה להיות שייכת לאפס או יותר קטגוריות, המוגדרות כקטגוריות משנה שלה.
שאלה מבוטלת: שאלה שסומן כי לא ניתן להוסיף אף גרסה שלה למבחן. כל הגרסאות של שאלה מבוטלת מסומנות כלא פעילות.
שורות סיכום בלוח תשובות: שלוש שורות המופיעות בתחתית כל לוח תשובות, והן ממולאות באופן מיוחד המאפשר לוודא כי לא נפלה טעות בהזנת בחירתו של הסטודנט למערכת.
שורת כותרת של לוח תשובות: השורה העליונה בלוח תשובות.
שורת תשובה בלוח תשובות: שורה בלוח תשובות בה מסומנת התשובה אותה בחר הסטודנט עבור שאלה מסוימת (שאלה, שמספרה – כפי שהוא מופיע בעותק המעורבל שקיבל הסטודנט – מודפס בתחילת שורת התשובה, בעמודת המספור).
שכפול: פעולת העתקה (cloning) של פריט, על-מנת ליצור פריט חדש מאותו סוג. הפריט החדש שנוצר יאותחל כך שיהיה דומה במידת האפשר לפריט המקורי.
שם מלא של קטגוריה C: תיאור טקסטואלי של המסלול מקטגוריית השורש אל קטגוריה C, בציון שמה של כל קטגוריה בדרך. בין כל שתי קטגוריות במסלול יפריד התו "/".
שם מקוצר של קטגוריה: ראה כותרת של קטגוריה.
תשובה: טקסט המהווה פתרון אפשרי לגרסה של שאלה. תשובה יכולה לכלול התייחסות למספרה של תשובה אחרת לאותה גרסה של שאלה.
תת-קטגוריה של קטגוריה C: קטגוריית בת של קטגוריה C, או קטגוריית בת של קטגוריית בת של קטגוריה C, וכו'. קטגוריה C' היא תת-קטגוריה של קטגוריה C אם C היא קטגוריה קדומה של C'.
QHTML: גרסה מיוחדת של XHTML, שיעשה בה שימוש בטקסטים השונים. התגים המותרים: <b> (מסמן כתב מודגש), <u> (מסמן קו תחתון), <i> (מסמן כתב נטוי), <br> (שבירת שורה), <ref> (מסמן ערך המחושב בזמן-אמת), ו-<span> (מסמן מאפיינים נפרדים לקטע מתוך הטקסט). תג <span> יכול להכיל אחד או יותר מהמאפיינים (attributes) הבאים: lang (ציון שפה), dir (ציון כיוון כתיבה). תג <ref> מכיל את המאפיין ans, מאפשר לתשובות לכלול התייחסויות זו לזו; השימוש בתג מיוחד זה אפשרי רק בתשובות לגרסאות שאלות. (ראו פרק 2.3).
תווים מיוחדים (<, >, &) יש להציג ע"י "ישויות" (entities), כמקובל ב-XHTML (&gt;, &lt;, &amp;, בהתאמה). ניתן להשתמש גם בישויות Unicode, כגון &#1234;. (בגרסאות עתידיות: תמיכה ב-MathML, תמונות, טבלאות ועוד).
1.1. מילון למונחי סטטיסטיקה
התפלגות (בדידה): סדרה של ערכים של משתנה מקרי בדיד, בליווית ההסתברות הצמודה לכל ערך. התפלגות תצויין בדרך כלל על ידי רב-קבוצה (Multiset) D של ערכים מספריים. אם ב-D יש n איברים, אז ההסתברות של ערך בעל כפילות m היא m/n. בפרט, אם אין כפילויות, ההסתברות של כל ערך היא 1/n. 
התפלגות בינרית: תיאור ההתפלגות של משתנה מקרי בינרי, כלומר משתנה העשוי לקבל את הערכים 0 ו-1 בלבד. בהתפלגות בינרית יש שני ערכים בלבד: 0 ו-1, אשר כל אחד מהם יכול להופיע בריבוי משלו. 
התפלגות מנורמלת: ההתפלגות D' המתקבלת מהתפלגות D, על ידי החלפה של כל ערך x ב-D בערך x' המוגדר על ידי , כאשר  היא סטיית התקן של x, ו- הוא התוחלת של x. התוחלת של ההתפלגות המנורמלת היא 0 (כלומר ), וסטיית התקן שלה היא 1. 
חציון (של התפלגות): מפריד 0.5 של ההתפלגות.
מומנט (של התפלגות): סכום של הערכים בהתפלגות המועלים בחזקה מסוימת. המומנט ה-k של ההתפלגות D מוגדר כ: . בפרט, , המומנט ה-0 של ההתפלגות D, הוא מספר הערכים ברב-קבוצה D. 
מונה של התפלגות: סטטיסט, הסופר כמה ערכים (כולל כפילויות) בהתפלגות קטנים או שווים לערך מסוים. מונה y של התפלגות D מסומן . אם y=0 אז נכתוב בקיצור  או סתם n.
מפריד של התפלגות: סטטיסט, שהוא הערך המפריד את ההתפלגות D כך שאחוז מסוים  מערכי התפלגות קטן ממנו, בעוד ש  מהערכים גדול ממנו. לשם הגדרה מדויקת של מפריד נסתמך על ההגדרה של מונה של התפלגות. מפריד  יוגדר כממוצע של המפריד העליון והמפריד התחתון:

סטטיסט: ערך מספרי המחושב מתוך התפלגות D. השכיח, החציון, התוחלת הם דוגמאות של סטטיסטים. כל אחד מהמומנטים הוא סטטיסט.
סטית תקן (של התפלגות): הסטטיסט של ההתפלגות המוגדר על ידי: . סטיית התקן מהווה מדד להתרחקות של משתנה מקרי מהתוחלת שלו.
תוחלת (של התפלגות או של משתנה מקרי): הממוצע המשוקלל של הערכים בהתפלגות, כאשר המשקלות הינן ההסתברויות של הערכים. מוגדר על ידי הנוסחה. התוחלת של משתנה מקרי x (הלקוח מתוך התפלגות) מסומנת על ידי: 
2. רכיבי המערכת והפעולות הזמינות עבורם
2.0. מבוא
פרק זה מתאר את הרכיבים השונים במערכת התוכנה. עבור כל רכיב, נכללת רשימת הדרישות ורשימת המגבלות הנוגעות לפריט זה או לרכיבים השונים הנכללים בו, במידה וישנן דרישות או מגבלות שכאלה. לכל מגבלה ודרישה יש קוד מתאים, המאפשר להתייחס אליה בטקסט. קוד זה, וההסבר הנלווה לו, ישמש כבסיס להודעת השגיאה במידה והדרישה או המגבלה תופר במהלך השימוש בתוכנה.
לבסוף, מופיעה רשימת הפעולות הזמינות ברכיב. בדרך-כלל לא צוינה בפירוש כל שגיאה אפשרית לכל פעולה.
ניסיון לבצע את הפעולה, כך שהתוצאה תהיה הפרה של מגבלה, ייכשל, והודעת השגיאה המתאימה (פירוט המגבלה) תוצג. במידת האפשר, בממשקים אינטראקטיביים, פקודות המובילות להפרת מגבלות לא תהיינה זמינות.
ביצוע של הפעולה, כך שהתוצאה תהיה הפרה של דרישה, יוביל להצגת אזהרה בדמות פירוט הדרישה שהופרה. במקרים מסוימים, בממשקים אינטראקטיביים, תוצג האזהרה לפני ביצוע פעולה שתוביל להפרת דרישה, כך שהמשתמש יוכל לחזור בו ולהימנע מביצוע הפעולה.
סוג נוסף של שגיאות הוא קלט לא תקין (למשל, תגים לא מאוזנים בטקסט QHTML, או ערך שאינו מספר עבור קלט מספרי, או ערך מספרי שאינו בתחום הנדרש, וכיו"ב). גם כאן, לא פורטו השגיאות האפשריות מסוג זה עבור כל פעולה. בכל מקרה של קלט לא תקין כאמור, תציג המערכת הסבר על הפריט השגוי ועל תחום הערכים התקני, ותמנע מביצוע הפעולה.
2.1. מאגר השאלות וניהולו
המערכת תנהל מאגר שאלות. מאגר השאלות יורכב משאלות ומעץ קטגוריות.
2.1.1. ניהול עץ הקטגוריות
עבור כל קטגוריה ישמר שמה, מיקומה היחסי בעץ הקטגוריות, ורשימת השאלות המוכלות בה (שאלות שזו הקטגוריה הראשית שלהן, ושאלות שזו קטגוריית המשנה שלהן). קטגוריית השורש היא הקטגוריה היחידה שאין לה קטגוריית אם, ושמה הוא המחרוזת "/" (לוכסן).
מגבלות
RES.C.1: לא ייתכן כי לקטגוריה יש שתי קטגוריות בנות עם אותו השם. (במשתמע, השם המלא של כל קטגוריה הוא חד-חד-ערכי).
RES.C.2: לכל קטגוריה, למעט קטגוריית השורש, יש קטגוריית אם.
פעולות
OP.C.1: יצירת קטגוריה חדשה: קטגוריה חדשה תמיד נוצרת תחת קטגוריה קיימת, שתהווה קטגוריית האם שלה.
OP.C.2: שכפול קטגוריה: ניתן לשכפל קטגוריה C1 ליצירת קטגוריה C2 כאשר יעד השכפול CM הוא אותה קטגוריית אם, או קטגוריית אם שונה.
•	אם ל-CM כבר יש קטגוריית בת עם אותו שם כמו לקטגוריה C1 (ובפרט, אם CM היא קטגוריית האם של C1), אזי שמה של הקטגוריה החדשה יהיה שונה מזו של המקורית, כדי לשמור על מגבלה RES.C.1. השם החדש יבחר באופן אוטומטי ע"י המערכת (השם האוטומטי יתבסס על השם המקורי, בצירוף מספר מונה, וניתן יהיה לשינוי בהמשך). אחרת, שמה של C2 יהיה זהה לשמה של C1.
•	לאחר השכפול, לכל שאלה Q, אשר C1 היא הקטגוריה הראשית שלה או קטגוריית משנה שלה, תתווסף C2 כקטגוריית משנה. (כלומר, לאחר השכפול לא תהיה אף שאלה ש-C2 היא הקטגוריה הראשית שלה).
•	פעולת השכפול אינה רקורסיבית, וקטגוריות הבת של C1 לא ישוכפלו.
•	לא ניתן לשכפל את קטגוריית השורש.
OP.C.3: שינוי מיקומה של קטגוריה בעץ הקטגוריות: ניתן לשנות את קטגוריית האם של קטגוריה נתונה. בממשק GUI, ניתן יהיה לבצע זאת גם ע"י drag-and-drop.
•	כדי למנוע הפרה של RES.C.1, ייתכן כי יידרש שינוי שמה של הקטגוריה. שינוי זה יתבצע באופן אוטומטי.
•	לא ניתן לשנות את מיקומה של קטגוריית השורש.
OP.C.4: מחיקת קטגוריה: ניתן למחוק קטגוריה C מעץ הקטגוריות. המחיקה היא פעולה רקורסיבית, והיא מובילה למחיקת כל תתי-הקטגוריות של C.
מחיקת קטגוריה אינה מובילה למחיקת שאלות.
•	במידה וקיימות שאלות, שקטגוריה C הייתה הקטגוריה הראשית שלהן, למשתמש תינתן אפשרות בחירה בין האפשרויות הבאות:
o	כל שאלה, שקטגוריה C הייתה הקטגוריה הראשית שלה, תעודכן כך שהקטגוריה הראשית שלה תהיה כעת קטגוריית האם של C. 
o	כל שאלה, שקטגוריה C הייתה הקטגוריה הראשית שלה, תמחק (OP.Q.9).
o	הפעולה תבוטל – מחיקת הקטגוריה לא תבוצע, והמשתמש יוכל לשנות ידנית את הקטגוריה הראשית של כל שאלה כזו (OP.Q.3) ואז לשוב ולנסות למחוק את הקטגוריה.
•	כל שאלה, שקטגוריה C הייתה קטגוריית משנה שלה, תעודכן כך ש-C תוסר מרשימת קטגוריות המשנה שלה.
•	לא ניתן למחוק את קטגוריית השורש.
OP.C.5: שינוי שמה של קטגוריה: ניתן לשנות את שמה של כל קטגוריה קיימת, מלבד קטגוריית השורש, ובלבד שלא תופר מגבלה RES.C.1.
2.1.2. ניהול רשימת השאלות, על גרסאותיהן והתשובות להן
לנושא הקטגוריה הראשית וקטגוריות המשנה של שאלה: אם נחשוב על עץ הקטגוריות כעל מערכת קבצים ב-Unix, שבה כל קטגוריה היא "ספריה" (וקטגוריית השורש היא "ספריית השורש"), הרי שכל שאלה היא "קובץ" ב"ספריית" הקטגוריה הראשית שלה. בנוסף, כל שאלה היא soft-link בכל "ספריה" של קטגוריית משנה שלה. עבור כל שאלה תנהל המערכת את פרטי המידע הבאים: הקטגוריה הראשית, קבוצת קטגוריות משנה, וקבוצת גרסאות.
עבור כל גרסה של שאלה, נשמר המידע הבא: גזע השאלה (טקסט QHTML לא ריק), שפת השאלה (מזהה שפה), הערות (טקסט QHTML), ורשימת תשובות.
כמו כן, עבור כל גרסה של שאלה נשמר תאריך יצירת הגרסה, ותאריך העדכון האחרון שלה (ובכלל זה עדכון של התשובות לגרסה, הוספת תשובה חדשה, מחיקת תשובה וכו').
עבור כל תשובה (לגרסה של שאלה) ישמר המידע הבא: מספר סידורי (מספר שלם וחיובי), טקסט התשובה (טקסט QHTML לא ריק עם אפשרות לשימוש בתגי ref), שפת התשובה (מזהה שפה), ואינדיקטור המציין האם זו התשובה הנכונה. כמו כן, עבור כל תשובה ישמר אינדיקטור המציין אם תשובה זו ניתנת לערבול (דהיינו, אם ניתן לשנות את מיקומה של תשובה זו כשהתשובות מוצגות בסדר מעורבל; ראו להלן).
שימו לב כי גרסאות שונות של שאלה עשויות להיות בשפות שונות, והתשובות לגרסה של שאלה יכולות להיות בשפה שונה מזו של שפת השאלה.
הסדר הקנוני של תשובות לגרסה של שאלה נקבע על-פי מספרן הסידורי של התשובות השונות (בסדר עולה).
סדר מעורבל של תשובות לגרסה של שאלה הוא זהה לסדר הקנוני, אם אין שתי תשובות או יותר הניתנות לערבול. במידה וישנן שתי תשובות או יותר הניתנות לערבול, הסדר המעורבל נקבע כך:
1.	כל התשובות שאינן ניתנות לערבול מופיעות במקומן הקנוני, על-פי מספרן הסידורי.
2.	התשובות שניתנות לערבול מופיעות בפרמוטציה כלשהי של סדר הופעתן.
טקסט של תשובה יכול להכיל התייחסות למספרה של תשובה אחרת. התייחסות זו תופיע בטקסט התשובה באופן הבא: "<ref ans='n'>", כאשר n הוא מספר התשובה האחרת. בעת הצגת התשובה (בסדר מעורבל או קנוני), תג זה יוחלף בציון מיקומה בפועל (בסדר הנוכחי) של תשובה n.
מצבים
שאלה יכולה להיות במצב רגיל, או להיות שאלה מבוטלת. ניתן לעבור בין מצבים אלו ע"י פעולה OP.Q.7.
גרסה של שאלה יכולה להיות במצב גרסה לא פעילה, גרסה פעילה, או גרסה עדכנית שאינה פעילה. פעולות OP.Q.7 ו-OP.Q.6 יכולות לשנות מצב זה. באופן בלתי-תלוי, גרסה של שאלה יכולה להיות נעולה או לא נעולה. ניתן לעבור בין מצבים אלה בעזרת פעולות OP.T.3 ו-OP.T.4 (הוספת/הסרת גרסה ממבחן).
שימו לב כי אם השאלה מבוטלת, אזי אין בה גרסה פעילה. בכל זאת, הגרסה העדכנית שלה תשמש כגרסה פעילה אם השאלה תחדל מלהיות מבוטלת. לכן, אם השאלה הופכת להיות מבוטלת, אז הגרסה הפעילה האחרונה היא הגרסה העדכנית.
מגבלות
RES.Q.1: לכל שאלה יש לפחות גרסה אחת.
RES.Q.2: הקטגוריה הראשית של שאלה לא יכולה להיות גם קטגוריית משנה שלה.
RES.Q.3: כל שאלה מופיעה ברשימת השאלות של הקטגוריה הראשית שלה, ושל קטגוריות המשנה שלה.
RES.Q.4: לא ייתכן כי יותר מגרסה אחת של שאלה מוגדרת כגרסה פעילה.
RES.Q.5: לא ייתכן כי יותר מתשובה אחת לגרסה של שאלה, מוגדרת כתשובה נכונה.
RES.Q.6: המספר הסידורי של כל תשובה הוא חיובי ממש, לכל תשובה של גרסה נתונה יש מספר סידורי שונה, המספר הסידורי הנמוך ביותר הוא אחד, והמספרים הסידוריים חייבים להיות רציפים (כלומר, המספר הסידורי הגבוה ביותר לתשובה של גרסה נתונה שווה למספר התשובות המוגדרות לגרסה זו).
RES.Q.7: קבוצת קטגוריות המשנה של שאלה היא "קבוצה" במובן המתמטי, דהיינו, לא ייתכנו כפילויות.
דרישות
REQ.Q.1: הקטגוריה הראשית של שאלה צריכה להיות שונה מקטגוריית השורש.  (דרישה זו בוטלה)
REQ.Q.2: קטגוריית השורש לא צריכה להיות קטגוריית משנה של אף שאלה.
REQ.Q.3: לכל גרסה של שאלה צריכות להיות שתי תשובות לפחות.
REQ.Q.4: לכל גרסה של שאלה צריכה להיות תשובה אחת המסומנת כתשובה הנכונה.
REQ.Q.5: כל התייחסות לתשובה אחרת, בטקסט של תשובה של שאלה ("<ref ans='n'>"), צריכה להתייחס לתשובה שמספרה (n) קיים.
REQ.Q.6: לכל גרסה תהיינה 10 תשובות לכל היותר.
REQ.Q.7: מספר התשובות הניתנות לערבול צריך להיות אפס, או גדול מאחד (דהיינו, מצב בו רק תשובה אחת ניתנת לערבול הוא מצב שגוי).
REQ.Q.8: לכל שאלה שאינה מבוטלת צריכה להיות גרסה פעילה.
REQ.Q.9: קטגוריית משנה לא יכולה להיות קטגוריה קדומה של הקטגוריה הראשית. 

פעולות
OP.Q.1: יצירת שאלה חדשה: שאלה חדשה תמיד נוצרת בהקשר של קטגוריה C כלשהי. בממשק GUI, זו עשויה להיות קטגוריה שסומנה באופן כלשהו. קטגוריה C תהיה הקטגוריה הראשית של השאלה החדשה; לשאלה חדשה אין קטגוריות משנה. עם יצירת שאלה חדשה, נוצרת מיד גרסה ראשונית עבור שאלה זו. (לגרסה הראשונית אין תשובות, והיא מסומנת כגרסה הפעילה).
OP.Q.2: יצירת גרסה חדשה לשאלה קיימת: גרסה חדשה לשאלה קיימת נוצרת תמיד כעותק של הגרסה העדכנית של השאלה. הגרסה החדשה מקבלת את כל המאפיינים של הגרסה המועתקת, ובכלל זה עותקים של התשובות. הגרסה החדשה אינה מסומנת כגרסה הפעילה.
OP.Q.3: שינוי הקטגוריה הראשית של שאלה: ניתן לשנות את הקטגוריה הראשית של שאלה, ובלבד שאף גרסה של השאלה אינה נעולה. אם הקטגוריה הראשית החדשה הייתה קטגוריית משנה, היא תוסר מרשימת קטגוריות המשנה (ראו RES.Q.2). אם הקטגוריה הראשית החדשה היא תת קטגוריה של קטגוריית משנה C, אזי C תוסר מרשימת קטגוריות המשנה. (ראו REQ.Q.9). 
OP.Q.4: הוספת קטגוריית משנה לשאלה: ניתן להוסיף כל קטגוריה, שאינה הקטגוריה הראשית או קטגוריה קדומה שלה ואינה קטגוריית משנה של שאלה, לרשימת קטגוריות המשנה של שאלה זו.
OP.Q.5: הסרת קטגוריית משנה של שאלה: ניתן להסיר קטגוריה מרשימת קטגוריות המשנה של שאלה.
OP.Q.6: סימון גרסה כפעילה: ניתן לסמן את אחת הגרסאות של שאלה כגרסה פעילה. אם גרסה אחרת הייתה מסומנת כפעילה, הסימון יוסר ממנה (בשל RES.Q.4). פעולה זו עלולה להוביל להפרה של דרישה REQ.T.1 (ראו בפרק 2.2).
OP.Q.7: סימון שאלה כמבוטלת, או ביטול סימון זה: ניתן לשנות את אינדיקטור הביטול של שאלה. אם שאלה מסומנת כמבוטלת, כל הגרסאות שלה מסומנות כלא-פעילות.
OP.Q.8: שכפול שאלה: ניתן לשכפל שאלה Q1 ולקבל שאלה חדשה, Q2. פעולת השכפול כוללת את ציון קטגוריית היעד C2, שתהיה הקטגוריה הראשית של Q2. אם C2 שונה מהקטגוריה הראשית של Q1, המערכת תוודא כי אינה מופיעה ברשימת קטגוריות המשנה של Q2, ובמידת הצורך תסירה מרשימה זו (בשל RES.Q.2). לאחר השכפול, ל-Q2 יש גרסה אחת, שהיא עותק של הגרסה העדכנית של Q1 בעת השכפול (ובכלל זה עותק של התשובות לגרסה זו). גרסה זו של Q2 תסומן כגרסה פעילה.
OP.Q.9: מחיקת שאלה: מחיקת כל הגרסאות של שאלה (ראו OP.Q.10). אם לא ניתן לבצע מחיקה של אחת או יותר מהגרסאות, לא תתבצע כל פעולה (כלומר לא תהיה מחיקה חלקית).
OP.Q.10: מחיקת גרסה של שאלה: ניתן למחוק גרסה של שאלה, ובלבד שהגרסה אינה נעולה (כלומר, אינה מופיעה באף מבחן). מחיקת הגרסה מובילה למחיקת כל התשובות שלה.
OP.Q.11: מחיקת כל הגרסאות שאינן נעולות: מחיקת כל הגרסאות של שאלה (OP.Q.10), שאינן מופיעות באף מבחן. בממשק GUI, פעולה זו תהיה זמינה רק אם קיימת גרסה נעולה אחת לפחות וגרסה לא נעולה אחת לפחות.
OP.Q.12: שינוי הפרטים בגרסה של שאלה: בגרסה שאינה נעולה, ניתן לשנות את טקסט השאלה, ואת מציין השפה של הגרסה.
OP.Q.13: הוספת תשובה לגרסה של שאלה: בגרסה שאינה נעולה, ניתן להוסיף תשובה חדשה. טקסט התשובה החדשה יהיה ריק, אך ניתן לעריכה. התשובה החדשה תסומן כלא-נכונה עם היווצרותה, אולם ניתן לשנות סימון זה בהמשך (OP.Q.14). מזהה השפה של התשובה יועתק ממזהה השפה של הגרסה. המספר הסידורי של התשובה יהיה גבוה מהמספר הסידורי של כל תשובה קיימת אחרת לאותה גרסה, או "1" אם לא קיימת אף תשובה קודמת.
OP.Q.14: סימון תשובה כנכונה: בגרסה שאינה נעולה, ניתן לסמן את אחת התשובות כנכונה. כל התשובות האחרות לאותה שאלה יסומנו כלא-נכונות (בשל RES.Q.5).
OP.Q.15: מחיקת תשובה מגרסה של שאלה: בגרסה שאינה נעולה, ניתן למחוק תשובות.
•	מחיקת תשובה שמספרה הסידורי a תוביל להקטנה באחת של המספר הסידורי של כל תשובה שמספרה הסידורי גדול מ-a.
•	כל התייחסות, בטקסטים של התשובות האחרות, אל התשובה שנמחקה (דהיינו, התייחסות "<ref ans='a'>"), תעודכן כך שתתייחס לתשובה מס' אפס ("<ref ans='0'>"). (התוצאה היא מצב שגוי, בשל דרישה REQ.Q.5).
•	כל התייחסות, בטקסטים של התשובות האחרות, אל תשובה שמספרה m (עבור m>a) תעודכן, כך שתתייחס ל-m-1. זאת כדי לשקף את עדכון המספרים של כל התשובות שמספרן גדול מ-a.
OP.Q.16: החלפת מיקום בין שתי תשובות: בגרסה שאינה נעולה, ניתן להחליף במיקום בין כל שתי תשובות. יוחלפו המספרים הסידוריים בלבד (שאר הרכיבים לא ישתנו).
•	לאחר ההחלפה תעודכן כל התייחסות, בטקסטים של תשובות אחרות לאותה גרסה, אל המספרים שהוחלפו.
•	בממשק GUI, ניתן להעביר תשובה למקום אחר. זהו למעשה רצף של החלפות מיקום, שבסיומו מגיעה התשובה אל יעדה, והסדר של שאר התשובות נותר ללא שינוי.
OP.Q.17: שינוי אינדיקטור הערבול של תשובה: בגרסה שאינה נעולה, ניתן לשנות את אינדיקטור הערבול של תשובה.
OP.Q.18: יצוא שאלה לקובץ XML: שמירת שאלה (ובכלל זה מידע על כלל גרסאותיה והתשובות להן) לקובץ XML. כל קובץ (עם סיומת ".xtq") יכול להכיל שאלה אחת או יותר. אם המשתמש בוחר לייצא שאלה אל קובץ קיים, הוא יוכל לבחור בין החלפת הקובץ הקיים לבין הוספת השאלה לקובץ.
OP.Q.19: יבוא שאלות מקובץ XML: טעינת שאלות מקובץ xtq (ראו OP.Q.18) אל המערכת.
•	במידה וקיימת בקובץ שאלה, שהקטגוריה הראשית שלה אינה קיימת במערכת, המערכת תאפשר למשתמש לבחור בין האפשרויות הבאות:
o	יצירת הקטגוריה.
o	ביטול הייבוא של שאלה זו (ללא ביטול הייבוא של שאר השאלות מהקובץ).
o	ביטול פעולת הייבוא כולה.
o	בחירה באחת מקטגוריות המשנה של השאלה בתור קטגוריה ראשית (אם לפחות אחת מקטגוריות המשנה כן קיימת במערכת).
o	קביעת קטגוריית השורש כקטגוריה הראשית של השאלה.
•	במידה וקיימת בקובץ שאלה, שקטגוריה משנית שלה אינה קיימת במערכת, המערכת תאפשר למשתמש לבחור בין האפשרויות הבאות:
o	 הסרת הקטגוריה מרשימת קטגוריות המשנה של השאלה.
o	יצירת הקטגוריה.
2.2. בניית מבחנים וניהול מאגר המבחנים
המערכת תאפשר בניית מבחנים, ע"י איסוף שאלות שונות, ותנהל מאגר של מבחנים. במהלך הבניה תציג המערכת את עץ ההטלה של המבחן, ותאפשר למשתמש לראות את מספר השאלות השונות בכל תת עץ של עץ ההטלה.
עבור כל מבחן, ישמר שם הקורס בו נערך המבחן (מחרוזת לא ריקה), תאריך יצירת המבחן, תאריך העדכון האחרון, תאריך ביצוע המבחן (אופציונלי), דף הוראות (טקסט QHTML) ומציין סטטוס. מציין הסטטוס יכול להכיל את אחד מהערכים הבאים: "בבניה", "ניתן", "נבדק".
כמו כן, עבור כל מבחן תשמר רשימה של שאלות, המופיעות במבחן. עבור כל שאלה יצויין איזו גרסה שלה נמצאת בשימוש במבחן. עבור כל שאלה יישמר השם המלא של הקטגוריה, ממנה נלקחה השאלה (הקטגוריה הראשית או אחת הקטגוריות המשניות של השאלה). שינוי הקטגוריה (הראשית או המשנית) של השאלה, לאחר שנוספה למבחן, לא ישנה את השם המלא של הקטגוריה, כפי שהוא שמור במבחן. כך גם שינוי בפרטי הקטגוריה עצמה (למשל, שינוי מיקומה או שמה) לאחר שנוספה השאלה למבחן. (דהיינו, המבחן זוכר את מקור השאלה כפי שהיה בעת שנבנה המבחן, ואדיש לשינויים עתידיים בעץ הקטגוריות או בשיוך השאלה לקטגוריות). (דרישה זו בוטלה).
עדכונים בעץ הקטגוריות או בסיווג של שאלות לקטגוריות יביאו לעדכונים מתאימים בשאלות של המבחן כל עוד זה נמצא בסטטוס של בניה. העברת מבחן לסטטוס של "ניתן" או "נבדק" תקפיא בעבור המבחן את הקטגוריות של השאלות המופיעות בו. לכן, שינויים בקטגוריות לאחר שינוי סטטוס כזה לא ישפיעו על עץ המבחן.
כל עדכון של שם הקורס, רשימת השאלות, תאריך הביצוע, או דף ההוראות יגרור את חידוש תאריך העדכון האחרון של המבחן. שינוי סטטוס המבחן לא יגרור חידוש כאמור.
מצבים
כל מבחן נמצא באחד מהמצבים הבאים: בבניה, ניתן, נבדק, כפי שמורה מציין הסטטוס שלו. ניתן לעבור בין מצבים אלה בעזרת פעולות OP.T.6 ו-OP.T.7.
מגבלות
RES.T.1: מבחן לא יכול להכיל כמה גרסאות שונות של אותה שאלה.
RES.T.2: לא ניתן לשנות מבחן בסטטוס "ניתן" או "נבדק".
RES.T.3: לא ניתן להדפיס מבחן, אם אחת או יותר מהשאלות הכלולות בו נמצאת במצב שגוי.
דרישות
REQ.T.1: מבחן בסטטוס "בבניה" יכול להכיל רק גרסאות פעילות של שאלות שאינן מבוטלות.
REQ.T.2: כל מבחן צריך להכיל לפחות שאלה אחת.
REQ.T.3: תאריך ביצוע המבחן קודם לתאריך הנוכחי, אם ורק אם סטטוס המבחן הוא "ניתן" או "נבדק".
פעולות
OP.T.1: יצירת מבחן חדש: המערכת תיצור מבחן חדש, עם שם קורס לבחירת המשתמש. סטטוס המבחן יהיה "בבניה" ורשימת השאלות תהיה ריקה.
OP.T.2: שכפול מבחן קיים: המערכת תאפשר לשכפל מבחן קיים, כך שהעותק יכיל רשימת שאלות הזהה לזו של המקור. תאריך היצירה של המבחן החדש יהיה תאריך השכפול (וכך גם תאריך העדכון האחרון, עד לעדכון הבא), והסטטוס יהיה "בבניה" (ללא קשר לסטטוס של המבחן המקורי ששוכפל).
OP.T.3: הוספת שאלה למבחן: ניתן להוסיף שאלה רק אם המבחן הוא בסטטוס "בבניה". בהוספת שאלה למבחן, תתווסף למבחן (רק) הגרסה הפעילה של השאלה (לא ניתן להוסיף שאלה מבוטלת). המערכת תשמור את השם המלא של הקטגוריה ממנה נבחרה השאלה. הגרסה שנוספה למבחן תהפוך לנעולה אם טרם הייתה כזו.
OP.T.4: מחיקת שאלה ממבחן: ניתן להסיר גרסת שאלה רק אם המבחן הוא בסטטוס "בבניה". אם הגרסה שהוסרה אינה נמצאת באף מבחן אחר, היא תהפוך ללא-נעולה.
OP.T.5: עדכון פרטי מבחן: ניתן לעדכן את פרטי המבחן (שינוי שם הקורס, תאריך ביצוע המבחן, ודף ההוראות) רק אם המבחן הוא בסטטוס "בבניה".
OP.T.6: שינוי סטטוס המבחן: ניתן לשנות את הסטטוס של מבחן לכל ערך ("בבניה", "ניתן", "נבדק"), ובתנאי שהמצב הנוכחי אינו "נבדק". לא ניתן לשנות את הסטטוס של מבחן שנבדק.
OP.T.7: ציינון מבחן: הפעלת מערכת הזנת הציונים ומערכת ציינון המבחן (ראו פרקים 2.4 ו-2.5). פעולה זו משנה את סטטוס המבחן ל-"נבדק".
OP.T.8: הדפסת עותק קנוני של מבחן: ע"פ ההגדרה המופיעה בסעיף 2.2.1, ובלבד שאף שאלה הכלולה במבחן אינה במצב שגוי (RES.T.3). המשתמש יוכל לבחור אם בעותק שיודפס, יופיע סימון מיוחד ליד התשובה הנכונה בכל אחת מהשאלות.
OP.T.9: הדפסת עותקים מעורבלים של מבחן: הדפסת מספר כלשהו (לבחירת המשתמש) של עותקים מעורבלים של המבחן, ע"פ ההגדרה המופיעה בסעיף 2.2.1, ובלבד שאף שאלה הכלולה במבחן אינה במצב שגוי (RES.T.3). העותקים שיודפסו יהיו בעלי מספרים סידוריים רציפים. המשתמש יוכל לבחור כמה עותקים להדפיס, ומה יהיה המספר הסידורי של העותק הראשון שיודפס (ברירת המחדל: 1).
OP.T.10: תצוגה מקדימה של עותק קנוני: יוצג עותק קנוני של המבחן, מבלי להדפיסו. בממשק GUI, תהיה אפשרות להמשיך ישירות מתצוגה זו לפעולה OP.T.8.
OP.T.11: תצוגה מקדימה של עותק מעורבל: יוצג עותק מעורבל, בעל מספר סידורי מסוים שייבחר ע"י המשתמש, מבלי להדפיסו. בממשק GUI, תהיה אפשרות להמשיך ישירות מתצוגה זו לפעולה OP.T.9.
OP.T.12: יצוא של מבחן לקובץ XML: המערכת תאפשר למשתמש לייצא מבחן לקובץ בפורמט XML. לקובץ תהיה סיומת ".xtt". כל קובץ יכול להכיל מבחן אחד או יותר. אם המשתמש בוחר לייצא מבחן אל קובץ קיים, הוא יוכל לבחור בין החלפת הקובץ הקיים לבין הוספת המבחן לקובץ. הקובץ יעמוד בפני עצמו (self-contained), דהיינו, לא יהיה צורך בקבצים נוספים כדי לקבל את כל המידע על תוכן המבחנים השמורים בו.
שימו לב לכך שאף פעולה אינה מאפשרת מחיקת מבחן.
2.2.1. הדפסת מבחנים
בהדפסת מבחן, ניתן להדפיס עותק קנוני של המבחן (OP.T.8) או עותק מעורבל (OP.T.9) אחד או יותר.
הדפסת עותק של המבחן מתבצעת ע"י יצירת קובץ XHTML. 
הדפסת שאלה במבחן
שאלה במבחן תודפס ע"פ סדר התשובות הקנוני שלה (בהדפסת עותק קנוני של המבחן), או ע"פ סדר תשובות מעורבל כלשהו (בהדפסת עותק מעורבל).
ראשית מודפס הטקסט של השאלה עצמה. אם שפת השאלה היא שפה הנכתבת מימין לשמאל (מזהה שפה he, ar, ar-eg, ar-jo, yi וכיוצ"ב) השאלה תודפס כשהיא מיושרת לימין, כטקסט right-to-left (ע"פ סטנדרט Unicode). אחרת, היא תודפס כשהיא מיושרת לשמאל, כטקסט left-to-right.
אח"כ מודפסות התשובות, ע"פ הסדר שנבחר (קנוני או מעורבל). יישור הטקסט עבור התשובות נותר כפי שהיה עבור השאלה, אולם אופן הצגת הטקסט (left-to-right או right-to-left) יהיה ע"פ השפה של כל תשובה בפני עצמה (כלומר, אם שפת התשובה שונה משפת השאלה, ייתכן שיש צורך ב-embedding של הכיווניות ההפוכה).
לפני כל תשובה מופיעה אות המזהה אותה: a עבור התשובה הראשונה, b עבור השניה וכן הלאה. כל התייחסות (תג ref) לתשובה אחרת, בטקסט של תשובה כלשהי, תוחלף באות המתאימה למיקום בפועל, בהדפסה הנוכחית, של התשובה אליה מתייחס התג. למשל, אם טקסט התשובה הוא: "תשובות <ref ans='3'> ו-<ref ans='4'> נכונות", והתשובות שמספרן הסידורי 3 ו-4 הופיעו במקומות 4 ו-2, בהתאמה, בהדפסת השאלה (כתוצאה מערבול התשובות), הרי שהטקסט שיודפס הוא "תשובות d ו-b נכונות".
הדפסת מבחן קנוני
מבחן קנוני מודפס ע"י:
1.	דף כותרת, הכולל את שם הקורס, תאריך הבחינה, מספר השאלות, הנחיות לשימוש בטופס התשובות (ראו פרק 2.3.1), ודף ההוראות של המבחן (אם קיים).
2.	רשימת כותרות הקטגוריות הראשיות של השאלות השונות, כשהן מסודרות בסדר לקסיקוגרפי.
א.	תחת כל כותרת של קטגוריה, מופיעות השאלות מהמבחן, שזו הקטגוריה הראשית שלהן, כשהן מסודרות בינן לבין עצמן בסדר לקסיקוגרפי ע"פ טקסט השאלה. התשובות לכל שאלה מופיעות בסדר קנוני.
ב.	הכותרות במבחן הקנוני תופענה לפי עץ ההטלה (המלא, לא המצומצם).
הדפסת מבחנים מעורבלים
מבחן מעורבל מודפס ע"י:
1.	דף כותרת, הכולל את שם הקורס, תאריך הבחינה, מספר המחברת, מספר השאלות, הנחיות לשימוש בטופס התשובות (ראו פרק 2.3.1), ודף ההוראות של המבחן (אם קיים).
2.	רשימת כותרות הקטגוריות הראשיות של השאלות השונות, כשהן מסודרות בסדר מעורבל.
א.	תחת כל כותרת של קטגוריה, מופיעות השאלות מהמבחן, שזו הקטגוריה הראשית שלהן, כשהן מסודרות בינן לבין עצמן בסדר מעורבל. התשובות לכל שאלה מופיעות בסדר מעורבל.
ב.	הכותרות במבחן מעורבל תופענה לפי עץ ההטלה המצומצם.
יחד עם כל מבחן מעורבל יודפס גם טופס תשובות (ראו 2.3) הכולל את המספר הסידורי המתאים.
ערבול הקטגוריות יבוצע ע"פ האלגוריתם הבא: ראשית, תעורבלנה הקטגוריות מהרמה הגבוהה ביותר (דהיינו, הכי קרובה לקטגוריית השורש) ששאלות מהן, או מתת-קטגוריות שלהן, מופיעות במבחן. אח"כ, עבור כל קטגוריה כזו, תעורבלנה תת-הקטגוריות שלה, וכך הלאה באופן רקורסיבי. 
מספר המחברת יאפשר למערכת לשחזר את סדר הקטגוריות והשאלות במבחן, ועל-ידי כך יאפשר לבדוק את המבחן גם ללא השאלון המודפס.
2.3. ייצור טפסי תשובות
טפסי התשובות המיוצרים ע"י התוכנה מבוססים על טופס התשובות לדוגמא (ראו מסמך לדוגמא באתר הקורס). התוכנה תאפשר לייצר טפסי תשובות המותאמים באופן פרטני למבחן מסוים. מבנה הטופס כולל:
•	מקום לכתיבת לשם הסטודנט ולמספר הסטודנט
•	שם הקורס
•	תאריך הבחינה
•	מספר המחברת לה שייך הטופס
•	לוח התשובות (או לוחות התשובות)
o	מספר העמודות בלוח הוא כמספר התשובות הגדול ביותר הקיים בשאלה כלשהי הכלולה במבחן, ועוד 2.
o	מספר השורות הוא כמספר השאלות במבחן, ועוד ארבע (שורת הכותרת ושלוש שורות סיכום, בנוסף לשורות התשובה). שורות הסיכום נידונות בסעיף נפרד בהמשך.
•	במידה ומספר השאלות עולה על עשרים, יודפסו כמה לוחות לסימון תשובות, זה לצד זה או אחד אחרי השני. כל לוח יכיל שורות עבור עשרים שאלות לכל היותר, שורת כותרת ושלוש שורות סיכום.
o	העמודה הראשונה היא עמודת המספור, המשמשת למספר השאלה. עמודה זו ריקה בשורת הכותרת, והיא מכילה מספר סידורי רץ בכל שאר השורות.
•	במידה ונעשה שימוש בכמה לוחות, המספור של הלוח הראשון יהיה מ-1 עד 20, של הלוח השני מ-21 ואילך, וכן הלאה.
o	העמודה השניה היא עמודת התשובה הפנויה. זהו המקום בו יכתוב הנבחן את תשובתו (האות המסמלת את התשובה בה בחר). בשורת הכותרת, עמודה זו מכילה את הכותרת "ans", ובשאר השורות העמודה ריקה (מקום לכתיבה).
o	העמודה השלישית ואילך הן עמודות התשובה, והן מכילות את האותיות המשמשות לסימון התשובות. בשורת הכותרת תופיע האות כאות גדולה (A), ובשאר השורות כאות קטנה (a).
•	היות שמספר התשובות המקסימלי לגרסה של שאלה הוא 10 (ע"פ REQ-Q-6), קיימות לכל היותר 12 עמודות – עמודת המספור, עמודת התשובה הפנויה, ולכל היותר 10 עמודות תשובה (A-J).
o	לנוחות הקריאה, קווי ההפרדה בין כל שורה n לשורה n+1, עבור n המתחלק בשלוש ללא שארית, יופיעו כקווים מודגשים.
•	מספרה של שורת הכותרת הוא אפס לצורך חישוב זה.
•	כלומר, קווים מודגשים יופיעו לאחר שורת הכותרת, ולאחר שורות מס' 3, 6 וכו'.
o	לנוחיות הקריאה, קווי ההפרדה לאחר עמודת המספור, לאחר עמודת התשובה הריקה, ולאחר העמודות לתשובות C ו-F יופיעו כקווים מודגשים.
o	צבע הרקע של התאים בטבלה, בהם מופיעים אותיות קטנות לסימון תשובות (דהיינו, התאים בעמודות A ואילך בשורות הממוספרות) ישתנה בין אפור ללבן, במתכונת של לוח משובץ.
•	צבע הרקע, בשורת התשובות הראשונה, של עמודות A, C, D, F, H ו-J (במידה והן קיימות) יהיה לבן. בשאר עמודות התשובה שבשורה זו, צבע הרקע יהיה אפור.
•	צבע הרקע בשורת התשובות השניה ואילך יהיה, בכל עמודה, מנוגד לזה של צבע הרקע של אותה עמודה בשורה הקודמת.
o	שורות הסיכום בלוח התשובות:
•	כאמור, בסוף כל לוח תשובות מופיעות 3 שורות סיכום.
•	בעמודת המספור, בשורות הסיכום הראשונה והשניה, תופיע האות היוונית .
•	שאר התאים בכל שורות הסיכום יהיו ריקים.
•	צבע הרקע של עמודת המספור בכל שלושת שורות הסיכום יהיה שחור (לפיכך, האות  תודפס בלבן).
•	צבע הרקע של כל העמודות האחרות בשורת הסיכום השניה יהיה אפור.
•	צבע הרקע של כל שאר התאים בשורות הסיכום יהיה לבן.
•	קו הפרדה כפול ומרווח יפריד בין השורה הממוספרת האחרונה לשורת הסיכום הראשונה.
•	קו הפרדה מודגש יפריד בין שורת הסיכום השניה לשלישית.
•	לבסוף, יכיל טופס התשובות לוח תשובות לדוגמה (ראו בסוף סעיף 2.3.1).
לצורך ההדפסה, התוכנה תייצר את טופס התשובות כקובץ XHTML.
2.3.1. מילוי טופס התשובות
במהלך המבחן, על הנבחן למלא את טופס התשובות בתשובה שבחר עבור כל שאלה. כדי למנוע טעויות בסימון התשובות ובבדיקתן, קיימים מספר מנגנוני איתור שגיאות.
כל תשובה מסומנת פעמיים:
1.	ראשית, על הסטודנט לכתוב (בעמודה הריקה, המשמשת לכתיבת התשובה, ובשורה המתאימה לשאלה עליה הוא עונה) את אות התשובה בכתב-ידו.
2.	שנית, על הסטודנט להקיף בעיגול את אות התשובה, בעמודת התשובות המתאימה באותה שורה.
לאחר שסיים לענות על כל השאלות, על הסטודנט לסכום, עבור כל עמודת תשובות:
1.	את מספר התשובות שהקיף על רקע לבן בעמודה זו, ולכתוב מספר זה בשורת הסיכום הראשונה בלוח (השורה בעלת הרקע הלבן). למשל, מספר השאלות, שהתשובה עבורן סומנה ע"י הסטודנט כ-C, והאות c הוקפה בהן כשהיא על רקע לבן, יצויין בשורת הסיכום הראשונה בעמודה C.
2.	את מספר התשובות שהקיף על רקע אפור בעמודה זו, ולכתוב מספר זה בשורת הסיכום השניה בלוח (השורה בעלת הרקע האפור).
3.	את מספר התשובות הכולל שהקיף בעמודה זו, ולכתוב מספר זה בשורת הסיכום השלישית בעמודה זו. ערך זה צריך להשתוות לסך הערכים שנכתבו בשני הסעיפים הקודמים, דהיינו, שורת הסיכום השלישית היא סיכום של שתי שורות הסיכום הקודמות.
לבסוף, יש לבצע סיכום אופקי:
1.	בעמודת התשובות הפנויה, בשורת הסיכום הראשונה, יש למלא את סכומם של כל המספרים המופיעים מימין לתא זה (דהיינו, המספר הכולל של התשובות על רקע לבן שהוקפו ע"י הסטודנט בלוח התשובות).
2.	בעמודת התשובות הפנויה, בשורת הסיכום השניה, יש למלא את סכומם של כל המספרים המופיעים מימין לתא זה (דהיינו, המספר הכולל של התשובות על רקע אפור שהוקפו ע"י הסטודנט בלוח התשובות).
3.	בעמודת התשובות הפנויה, בשורת הסיכום השלישית, יש למלא את סכומם של כל המספרים המופיעים מימין לתא זה (דהיינו, המספר הכולל של שאלות עליהן ענה הסטודנט). ערך זה צריך להיות שווה גם לסכום שני התאים המופיעים מעליו (הערכים משני הסעיפים הקודמים).
טופס התשובות יכיל לוח תשובות אחד, שיסומן כלוח תשובות לדוגמא, ובו נבחרו באופן אקראי תשובות שונות והוא מולא כראוי. כל הערכים והאותיות, האמורים להיות ממולאים בידי הסטודנט, יופיעו בלוח התשובות לדוגמא בגופן הדומה במידת האפשר לכתב-יד.
2.4. הזנת וניהול תשובות הסטודנטים
המערכת תנהל מאגר של תשובות הסטודנטים למבחנים. הזנת התשובות תהיה אינטראקטיבית או מקובץ קלט. מאגר התשובות יאפשר לקבל ניתוח סטטיסטי של התשובות השונות ושל איכותן של השאלות, כמו גם מידע סטטיסטי נוסף (ראו פרק 2.5); המאגר יאפשר לקבוע את ציונו של כל סטודנט במבחן (ראו פרק 2.6); והוא גם יהווה את הבסיס להדפסת גיליונות ציונים (פרק 2.7).
המאגר יכלול, עבור כל סטודנט שתשובותיו הוזנו למבחן נתון, את בחירתו של הסטודנט לכל אחת מהשאלות שהופיעה במבחן.
מגבלות
RES.A.1: ניתן להזין ציונים רק עבור מבחן קיים במערכת, ובלבד שהמבחן הוא במצב "ניתן" או "נבדק".
RES.A.2: תשמרנה רק הבחירות של סטודנטים עבור מבחנים הנמצאים במאגר.
פעולות
OP.A.1: הזנת תשובות אינטראקטיבית, ללא סכומי בדיקה: המשתמש יזין את מזהה המבחן (או יבחר את המבחן מרשימה, בממשק GUI), ויזין את מספר הסטודנט, את שם הסטודנט, את מספר המחברת (כדי שהמערכת תוכל לשחזר את העותק המעורבל שקיבל הסטודנט), ורצף של אותיות המהוות את בחירותיו של הסטודנט במבחן – אות אחת לכל שאלה.
•	המערכת תוודא כי מספר הזהות של הסטודנט הוא תקין (ע"י בדיקת ספרת הביקורת).
•	עבור שאלה שהסטודנט לא בחר אף תשובה שלה, תוזן האות "x".
•	לאחר ההזנה, המערכת תציג את הערכים, האמורים להופיע בשורות הסיכום שעל טופס התשובות. בממשק אינטראקטיבי, המשתמש יוכל לאשר כי הערכים המוצגים מתאימים לאלו המופיעים על הטופס, ובחירתו של הסטודנט תישמר; או לציין כי הערכים המוצגים לא מתאימים, ואז בחירת הסטודנט לא תישמר והמשתמש יוכל להקליד את הבחירה מחדש (לאחר שבדק אם אין שגיאה בהקלדה הקודמת, או שגיאה בביצוע הסיכומים ע"י הסטודנט, וכו'). במערכת GUI, ההזנה החדשה תוכל להתבצע כעריכה של הניסיון הקודם.
o	יש לזכור כי ייתכן שטופס התשובות כולל יותר מלוח תשובות אחד. במקרה כזה תוצגנה שורות הסיכום עבור כל הלוחות (בנפרד עבור כל לוח). 
•	אם כבר הוזנה בעבר בחירתו של אותו סטודנט עבור אותו מבחן, המערכת תאפשר עריכה של הבחירה הקודמת.
OP.A.2: הזנת תשובות אינטראקטיבית, עם סכומי בדיקה: כמו בהזנה ללא סכומי בדיקה (OP.A.1), אלא שכאן המשתמש מזין גם את שלושת שורות הבדיקה מסוף כל לוח תשובות. המערכת לא תשמור את בחירת הסטודנט, כפי שהוקלדה, אלא אם שורות הבדיקה מתאימות לבחירה כפי שהוקלדה. במקרה של חוסר התאמה תדווח המערכת על מיקום השגיאה המדויק.
OP.A.3: הזנת תשובות מקובץ, ללא סכומי בדיקה: בדומה להזנת תשובות אינטראקטיבית (OP.A.1), אולם מקור הקלט יהיה קובץ טקסט בפורמט comma-separated. הקובץ יכול להכיל את בחירתו של סטודנט יחיד, או את בחירותיהם של מספר סטודנטים. הפלט יהיה רשימה מסודרת של שורות הסיכום עבור כל לוח תשובות של כל סטודנט, כדי לאפשר השוואה ובדיקה.
•	אם הקובץ מכיל את בחירתו של סטודנט שכבר הוזנה בחירתו עבור מבחן זה, הערכים הישנים יוחלפו באלה המוצגים בקובץ.
•	אם הקובץ מכיל את בחירתו של אותו סטודנט יותר מפעם אחת, הרשומה האחרונה היא זו שתשמר, אולם תוצג הערת אזהרה מתאימה.
OP.A.4: הזנת תשובות מקובץ, עם סכומי בדיקה: בדומה להזנת תשובות מקובץ ללא סכומי בדיקה (OP.A.3), אולם הקובץ יכלול גם את שורות הסיכום של כל לוח תשובות בכל טופס תשובות. עבור כל סטודנט, שבחירתו (כפי שהיא מופיעה בקובץ) אינה מתאימה לסכומי הבדיקה (כפי שהם מופיעים בקובץ), הבחירה לא תיקלט במערכת, ותוצג הודעת שגיאה מתאימה.
OP.A.5: בדיקת מספר טפסי התשובות שהוזנו עבור מבחן נתון. במערכת GUI, ערך זה יוצג תמיד בצמוד לשאר פרטי המבחן.
2.5. קבלת מידע סטטיסטי
ניתן לקבל מידע סטטיסטי אודות התפלגות הציונים במבחן, קטגוריות, שאלות, גרסאות של שאלות, תשובות לשאלות, וסטודנטים.
2.5.1. מידע סטטיסטי על התפלגות הציונים
בכל שלב של תהליך ציינון המבחן, ובפרט תוך כדי קביעת המשקלים היחסיים של השאלות והתשובות, ותוך כדי קביעת נוסחת הפקטור, המשתמש יוכל לראות את סטטיסטים שונים של ההתפלגות D של הציונים במבחן: 
א. מספר הערכים: , הערך המינימלי , הערך המקסימלי , טווח ההתפלגות , התוחלת, סטית התקן, השגיאה הסטטיסטית , אחוז השונות . 
ב. חלוקה של ההתפלגות לרביעונים באמצעות החציון, מפריד 0.25 ומפריד 0.75 של ההתפלגות.
ג. חלוקה של ההתפלגות לעשירונים באמצעו מפרידי 0.1,0.2,03,0.4,0.5,0.6,0.7,0.8,0.9.
ד. מונה ההתפלגות הסופר כמה ערכים נפלו מתחת לסף המעבר של המבחן. ערך ברירת המחדל של סף המעבר הינו 55, (או 55% מהציון המקסימלי במידה וזה אינו 100), אך המשתמש יוכל לציין כל סף מעבר אחר.
(שימו לב: הדרישה לחישוב הגבנוניות (Kurtosis) וההטיה (Skewness) כמו גם סטטיסטים נוספים הורדה, אך כמובן אין מניעה לכלול אותם).
בכל שלב של תהליך הציינון יוכל המשתמש לראות היסטוגרמה של התפלגות הציונים במבחן, כאשר ציר ה-X יכיל חלוקה של טווח ההתפלגות ל-10 חלקים שווים בגודלם, ואילו גובה עמודת ציר Y יתאים למספר הציונים שנפלו באותו תחום.
המערכת תציג ערכי "N/A" כאשר סטיית התקן או סטטיסטים אחרים אינם מוגדרים.
2.5.2. הצגת מידע סטטיסטי על המבחן
המערכת תציג גם מידע סטטיסטי על מספר העונים נכונה על כל גרסה של שאלה שהשתתפה במבחן. מידע זה יכלול את lהסטטיסטים הבאים לגבי התפלגות זו: תוחלת, סטיית תקן, מפריד 1/3 ומפריד 2/3. 
לגבי כל גרסה שהשתתפה במבחן תציג המערכת את הנתונים הבאים:
א.	קושי השאלה: שהוא מספר העונים נכונה לשאלה, כשהוא מנורמל.
ב.	תקפות השאלה: המחושבת על פי הנוסחה 3(t2-t1)/n כאשר n הוא מספר הסטודנטים הכולל, t2 הוא מספר הסטודנטים בשליש העליון של העונים (על פי התפלגות הציונים) אשר ענו נכונה על השאלה, ו t1 הוא מספר הסטודנטים בשליש התחתון של העונים אשר ענו נכונה על השאלה. אם ציון של סטודנט הוא שווה בדיוק למפריד 1/3 (בהתאמה, למפריד 2/3) של התפלגות הציונים, אזי סטודנט זה יתרום 0.5 למונה t1 (בהתאמה, למונה t2 ).
לגבי כל קטגוריה המופיעה במבחן תציג המערכת את הנתונים הבאים:
א.	המשקל היחסי של הקטגוריה, כשהוא נקבע על סמך סכום המשקלות של השאלות בקטגוריה כפי שנקבע בזמן הציינון.     --- לקחת  getSumQuestionWeights  מ-QuestionStats לקחת רשימת Tvs בקטגוריה מ-וליק ולסכם משקולות ואז לחלק.
ב.	הקושי הממוצע של השאלות בקטגוריה, כאשר בחישוב הממוצע יינתן משקל לכל שאלה בהתאם למשקל שניתן לה בעת ציינון המבחן.
ג.	התקפות הממוצעות של השאלות בקטגוריה, כאשר בחישוב הממוצע יינתן משקל לכל שאלה בהתאם למשקל שניתן לה בעת ציינון המבחן.
נתונים אלו יוצגו הן ביחס לשאלות שהשתתפו בקטגוריה עצמה, והן ביחס לשאלות שהשתתפו הן בקטגוריה עצמה והן בכל תתי הקטגוריות שלה. --- לקחת שתי רשימות מ-וליק.
המערכת תציג ערכי "N/A" כאשר סטיית התקן או סטטיסטים אחרים אינם מוגדרים.
2.5.3. שמירת מידע סטטיסטי על גרסאות, שאלות וקטיגוריות
המערכת תציג לגבי כל גרסה של כל שאלה את הקושי הממוצע ואת התקפות הממוצעת של הגרסה, חישוב הממוצע יהיה משוקלל, כאשר המשקולת תהיה מספר הנבחנים בכל מבחן.
המערכת תציג לגבי כל שאלה את הקושי הממוצע שלה, ואת התקפות הממוצעת שלה, כאשר הממוצע הוא על פני כל הגרסאות של השאלה אשר השתתפו במבחן כלשהו.
המערכת תציג לגבי כל קטיגוריה את הקושי והתקפות הממוצעים שלהם, הן לגבי השאלות הכלולות בקטיגוריה לבדה, והן לגבי שאלות הכלולות בקטיגוריה ובכל תת-קטיגוריה שלה. 
באם ממוצעים אלו אינם מוגדרים יקבל המשמש חיווי מתאים על כך.
2.5.3. הצגת מידע סטטיסטי על תשובות העונים למבחן
לכל תשובה המופיעה במבחן בה בחרו סטודנטים ניתן להגדיר משתנה בינרי, שערכו 1 כאשר הסטודנט בחר בתשובה, lוהתפלגות בינרית מתאימה. לגבי כל תשובה כזו המערכת תציג את המידע הבא:
א.	חיווי האם התשובה נכונה אם לאו.
ב.	מספר הבוחרים בתשובה זו, הן אבסולטית, והן באחוזים מכלל העונים למבחן. (הערך באחוזים הינו בדיוק התוחלת של המשתנה הבינרי.)
ג.	הציון הנורמלי הממוצע של הבוחרים בתשובה.
ד.	המתאם של המשתנה הבינרי של בחירה בתשובה והציון במבחן. מתאם זה מחושב באמצעות הנוסחה הבאה:  כאשר  הוא הציון הממוצע של אלו שבחרו בתשובה,  הוא הציון הממוצע של אלו שלא בחרו בתשובה,  סטיית התקן של הציון במבחן,  הוא אחוז? אלו שבחרו בתשובה, ואילו  הוא אחוז אלו שלא בחרו בתשובה. המתאם לא יוצג אם בחרו בתשובה פחות מחמישה סטודנטים).
המידע יופיע באורח ממוין לפי מספר התשובה.
2.5.4 שמירת מידע סטטיסטי על תשובות
המערכת תאפשר להציג לגבי כל תשובה בכל גרסה אשר נבחרה אי פעם, את הציון המנורמל הממוצע של הנבחנים שבחרו בה, בכל המבחנים בהם התשובה הופיעה, אחוז הבוחרים הממוצע בתשובה זו, והמתאם הממוצע של בחירה בתשובה זו עם הצלחה במבחן. בשקלול הממוצע ינתן לכל מבחן משקל יחסי השווה למספר המשתתפים בו.
2.5.5 היורסטיקות ביחס לטיב של שאלה במבחן
המערכת תציג את כל ההערות ההיורסטיות הרלבנטיות ביחס לטיב של שאלה במבחן מתוך הרשימה הבאה (אין להציג הערה הנכללת בהערה חזקה ממנה):
א.	שאלה מכשילה (אף נבחן לא בחר בתשובה הנכונה)
ב.	שאלה קשה מאוד (קושי מנורמל מעל 2)
ג.	שאלה קשה (קושי מנורמל מעל 1)
ד.	שאלה קלה (קושי מנורמל מתחת 1-)
ה.	שאלה קלה מאוד (קושי מנורמל מתחת 2-)
ו.	שאלה טריביאלית (אף נבחן לא שגה בשאלה).
ז.	N מסיחים לא נבחרו כלל.
ח.	מסיח X נבחר על ידי יותר סטודנטים מאשר אלו שבחרו בתשובה הנכונה.
ט.	תקפות נמוכה ביותר לשאלה (תקפות שלילית)
י.	תקפות נמוכה לשאלה (מתחת ל-0.1)
יא.	מתאם נמוך לבחירה בתשובה הנכונה והצלחה במבחן (מתאם שלילי נמוך מ- 0.1-)
יב.	מתאם גבוה לבחירה במסיח X והצלחה במבחן (מתאם חיובי גדול מ-0.1). 
יג.	הערות אלו תופענה בצורה קומפקטית עד כמה שניתן, רצוי בחיווים או צלמיות.
המערכת תציג את מספר החיוויים הכולל במבחן, ואת מספר השאלות הטובות, דהיינו שאלות לגביהן לא היו הערות כלל. 
אם במבחן השתתפו פחות מ-10 סטודנטים, לא יוצגו הערות המחושבות על סמך הקושי או התקפות של שאלה. 
אם בתשובה מסוימת בחרו פחות מחמישה סטודנטים, לא יוצגו הערות המחושבות על סמך המתאם.
2.5.6 הצלחה של כל סטודנט במבחן
המערכת תאפשר הפקת גיליון משוב לסטודנטים ????????????אשר יראה לכל סטודנט את פרטי המידע הבאים:
א.	מיקומו היחסי בכיתת הנבחנים, הן כמספר אבסולוטי והן העשירון אליו הוא שייך. בכל זאת, אין להציג את העשירון אם מספר הנבחנים קטן מ-30.
ב.	הציון המנורמל שלו במבחן. 
ג.	הציון המנורמל שלו בכל קטיגוריה במבחן הן לגבי הקטיגוריה לבדה והן לגבי סך כל השאלות בקטיגוריה זו ובתתי-הקטיגוריות שלה. אם לקטיגוריה מסויימת יש רק תת-קטיגוריה אחת לא ריקה במבחן, ולקטיגוריה זו אין שאלות משל עצמה, אין להציג מידע ביחס לקטיגוריה זו.
ד.	חיווי לגבי כל ערך לעיל קטיגוריה אם הציון בו נמוך או גבוה מהציון המנורמל של הסטודנט.
2.6. ציינון מבחנים
לאחר שהוזנו בחירות כל הסטודנטים למבחן נתון, ניתן לציינן את המבחן.
מגבלות
RES.G.1: הציון הסופי של כל סטודנט הוא בין ציון המינימום לציון המקסימום שנקבעו עבור מבחן זה. (ציוני המינימום והמקסימום נקבעים כחלק מתהליך הציינון).
דרישות
REQ.G.1: המשקל של כל תשובה ינוע בין 0% ל-100%.
REQ.G.2: לכל שאלה תהיה לפחות תשובה אחת שמשקלה 100%.
פעולות
OP.G.1: ציינון מבחן. בחירה באפשרות זו תציג בפני המשתמש גיליון אלקטרוני, ובו המידע הבא:
•	רשימת השאלות.
•	עבור כל שאלה, משקלה היחסי.
o	המשקל יאותחל ל-1.0, אולם המשתמש יוכל לעדכן ערך זה (עבור כל שאלה בנפרד).
•	רשימת התשובות של כל שאלה, ועבור כל תשובה, משקלה היחסי.
o	משקלה של התשובה הנכונה יאותחל ל-100%, ומשקלה של כל תשובה אחרת יאותחל ל-0%, אולם המשתמש יוכל לעדכן ערכים אלה (עבור כל תשובה בנפרד).
o	עבור כל תשובה יוצג גם מספר הסטודנטים שבחרו בתשובה זו, כאחוז ממספר הנבחנים הכולל, וכאחוז ממספר העונים לשאלה.
•	נוסחת פקטור: בגרסה זו של התוכנה, נוסחת הפקטור היא תמיד מהצורה ax+b, כאשר x הוא הציון המקורי ותוצאת הנוסחה היא הציון לאחר הפקטור. המשתמש יוכל לקבוע את נוסחת הפקטור ע"י הזנת שני ערכים (a ו-b).
o	ברירת המחדל של נוסחת הפקטור מחזירה את הציון המקורי ללא שינוי (a=1, b=0).
•	רשימת הסטודנטים, שמותיהם, מספרי הזהות שלהם, והציון הסופי של כל אחד מהם.
o	הניקוד שקיבל סטודנט עבור שאלה יחושב כמשקלה היחסי של התשובה שבחר הסטודנט, כפול משקלה היחסי של אותה שאלה.
o	הציון של סטודנט נתון יחושב כסך כל הניקוד שקיבל עבור כל השאלות (S), חלקי סך המשקל של כל השאלות (W), ממופה ליניארית אל תחום הציונים של המבחן. כלומר, אם תחום הציונים הוא m עד M, הציון של סטודנט יחושב ע"פ הנוסחה (S/W)(M‑m)+m.
o	הציון הסופי של כל סטודנט, לאחר הפקטור, לא יחרוג מהתחום המוגדר במגבלה RES.G.1. כלומר, בחישוב הציון, אם הציון נמוך מציון המינימום הוא יעוגל מעלה לציון המינימום, ואם הוא גבוה מציון המקסימום, הוא יעוגל מטה לציון המקסימום.
•	ציון המינימום וציון המקסימום של המבחן: ברירת המחדל היא 0 עד 100.
•	ערך הסף להצלחה: ברירת המחדל של ערך זה היא תחושב ע"פ הנוסחה (M‑m)0.55, כאשר m ו-M הם ציוני המינימום והמקסימום של המבחן, בהתאמה; אולם הוא ניתן לשינוי לכל ערך בין m ל-M.
•	מספר הנכשלים: מספר הנבחנים שהציון הסופי שלהם אינו עובר את ערך הסף להצלחה.
•	גרף התפלגות של הציונים הסופיים (המשתנה הבלתי-תלוי: ציון, המשתנה התלוי: מספר הסטודנטים שקיבלו ציון זה או נמוך ממנו).
o	יוצג בגרף קו אנכי שיציין את ערך הסף להצלחה.
o	הגרף יתעדכן מיידית עם כל שינוי במשקלה של שאלה, משקלה של תשובה, נוסחת הפקטור או ערך הסף להצלחה.
שימו לב: בעקבות מו"מ עם הלקוח, הוסכם כי יותר למפתחים, אם יבחרו בכך, להוציא נתונים לתוכנות חיצוניות (למשל, Microsoft Excel) כדי להציג את הגיליון האלקטרוני של הציינון (OP.G.1). הנתונים המעודכנים מהגיליון, לאחר שעודכן בידי המשתמש, יוזנו חזרה לתוכנה.
בצורה הפשוטה ביותר, צורת העבודה עם Excel תהיה כדלקמן:
1.	המערכת תשמור את הנתונים הנדרשים בקובץ comma-separated values (CSV)
2.	המשתמש יפעיל (ידנית) את Excel, ויפתח (ייבא) את קובץ ה-CSV
3.	המשתמש יפתח קובץ קיים, מוגדר מראש, של Excel שיכיל נוסחות, תוכניות מקרו, גרפים וכיו"ב.
4.	המשתמש יסמן את הנתונים מתוך גיליון ה-CSV, יעתיקם וידביק אותם (copy & paste) לגיליון המוכן מראש, שבו תהיינה כל הנוסחאות הנדרשות לצורך ציינון המבחן.
5.	המשתמש יעתיק את התוצאות שתתקבלנה, ייצור מהן גיליון עבודה חדש וישמור אותו (ייצוא) לקובץ CSV.
6.	המשתמש יורה למערכת לקרוא את הנתונים המעודכנים מתוך קובץ ה-CSV.
שימו לב כי פירוש הדבר, שמרבית עבודת הקישור בין שתי התוכנות (המערכת הנבנית ו-Excel) נעשית ידנית. ניתן כמובן לשפר את המערכת כך שמידת העבודה הידנית הדרושה תהיה קטנה יותר, ועל כך יינתן בונוס.
עוד שימו לב לכך שגיליון המשקלות, נוסחת הפקטור, וכל מידע אחר שמאפשר את חישוב הציון חייב להיות מוחזר מ-Excel למערכת (לשם הזנה חוזרת ל-Excel), ולכן המערכת צריכה להיות מסוגלת עקרונית לחשב את הציון. אבל, אין חובה שהמערכת תציג את הציונים למשתמש.
2.7. הכנת גיליון ציונים
התוכנה תאפשר להדפיס גיליון ציונים מסכם של כל מבחן נתון.
פעולות
OP.S.1: הדפסת גיליון ציונים לשימוש פנימי: יודפס גיליון ציונים ובמרכזו טבלה בת שלוש עמודות: מספר הסטודנט, שם הסטודנט, והציון הסופי שלו. הטבלה תמוין ע"פ מספרי הסטודנטים, בסדר עולה.
•	בראש הגיליון יודפס שם הקורס ותאריך הבחינה.
•	בתחתית הגיליון יודפס גרף התפלגות הציונים (כמתואר בפרק 2.6), מספר הנבחנים הכולל, ערך הסף להצלחה, ומספר הנכשלים.
OP.S.2: הדפסת גיליון ציונים לפרסום: כמו OP.S.1, אולם ללא העמודה ובה שם הסטודנט.
3. ממשק המשתמש
המערכת תתמוך בשני ממשקי משתמש לפחות:
א. ממשק גראפי,
ב. ממשק Java שיהווה בסיס לשפת scripting.
3.1. הממשק הגראפי
הממשק הגראפי (GUI) של התוכנית יהיה ממשק מודרני שיתמוך בעבודה תחת מערכות הפעלה שונות (לכל הפחות: Windows).
המערכת תכלול תמיכה נרחבת לשימוש בעכבר, אולם ניתן יהיה להפעיל את כל הפעולות השונות גם ללא עזרת עכבר כלל (לצורך תמיכה במשתמשים מוגבלים).
הממשק יציג את עץ הקטגוריות כעץ GUI (בדומה למשל לעץ הספריות ב-Windows Explorer). ניתן יהיה לדפדף בעץ, "לקפל" או "לפרוס" קטגוריות שונות (כדי להסתיר או להציג את תת-הקטגוריות שלהן), וכו'. צלמית (icon) שונה תשמש לקטגוריות המכילות שאלות (כולל שאלות שזוהי קטגוריית המשנה שלהן), לעומת קטגוריות שאינן מכילות שאלות (אף לא כקטגוריית משנה).
ניתן יהיה לבחור קטגוריה אחת או יותר בעזרת המקלדת ו/או בעזרת העכבר.
לחיצה על כפתור העכבר הימני, או Shift-F10, או מקש "Context Menu" במקלדות המכילות מקש זה, תציג "תפריט קופץ" (pop-up menu) ובו האפשרויות הזמינות לקטגוריה שנבחרה. אפשרויות הזמינות בד"כ אך אינן זמינות כעת (משום שהפעלתן על הקטגוריה שנבחרה תוביל למצב לא קביל) תוצגנה כשהן לא פעילות (disabled). במידה ונבחרה יותר מקטגוריה אחת, התפריט הקופץ יציג רק את האפשרויות הרלוונטיות לכל הקטגוריות גם יחד (למשל, יצירת תת-קטגוריה (OP.C.1) אינה פעולה אפשרית עבור קבוצה של קטגוריות אלא עבור קטגוריה אחת בלבד).
כל הפעולות השונות תהיינה זמינות גם מתוך התפריט הראשי של התוכנה. כמו כן, עבור חלק מהפעולות יהיו כפתורים בסרגל כפתורים (toolbar) שיופיע מתחת לתפריט הראשי.
אם נבחרה קטגוריה אחת בדיוק, C, תוצג רשימת השאלות המוכלות בקטגוריה C (לא בעץ אלא בחלק נפרד של הממשק). השאלות ש-C היא הקטגוריה הראשית שלהן תוצגנה בצבע שונה משאלות שעבוקן C היא קטגוריית משנה.
ממשק ה-GUI יכלול שני מתגים (switches) שיאפשרו לשלוט בתוכן רשימת השאלות. המתג הראשון יקבע אם תוצגנה רק שאלות, השייכות ישירות לקטגוריה C (כלומר C היא הקטגוריה הראשית או קטגוריית משנה שלהן), או לחלופין תוצגנה גם שאלות השייכות לתת-קטגוריה כלשהי של C. באופן בלתי-תלוי, המתג השני יקבע אם תוצגנה רק השאלות ש-C (או תת-קטגוריה של C, ע"פ המתג הראשון) היא הקטגוריה הראשית שלהן, או רק השאלות שזוהי קטגוריית משנה שלהן, או שני סוגי השאלות גם-יחד.
עבור כל שאלה ברשימה המוצגת יופיע מידע כגון תאריך העדכון האחרון, מספר הגרסאות, האם השאלה מבוטלת או לא, וכו'. ניתן יהיה למיין את הרשימה ע"פ פריטי המידע השונים בסדר עולה או יורד (כמו מיון רשימת הקבצים ע"פ שם, או סוג, או גודל וכו' ב-Windows Explorer).
מתוך רשימה זו ניתן יהיה לבחור שאלה אחת או יותר. גם עבור שאלות ניתן להציג "תפריט קופץ" עם פעולות רלוונטיות עבור השאלה או השאלות שנבחרו.
אם נבחרה שאלה אחת בדיוק, תוצג רשימת הגרסאות של השאלה (בחלק נפרד של הממשק). רשימת הגרסאות לא תופיע כרשימה רגילה, אלא כלשוניות (tabs) בראש "מחברת" שתציג את הגרסאות השונות. הלשונית המכילה את הגרסה הפעילה, אם יש כזאת, תסומן באופן מיוחד. הלשונית שתיבחר כברירת מחדל תהיה זו המכילה את הגרסה העדכנית של השאלה.
(דוגמה ל"מחברת" המכילה לשוניות ניתן לראות אם בוחרים Tools->Options ב-Internet Explorer. כאן הלשוניות הן General, Security וכו', בהתאם לגרסת IE שבשימוש).
הדף הפעיל במחברת יציג את פרטי הגרסה שמייצגת אותה לשונית, ובכלל זה טקסט השאלה ורשימת התשובות. ניתן יהיה לעדכן את טקסט השאלה, את שפת השאלה, וכו' וגם לערוך את רשימת התשובות. כפתורים מיוחדים יאפשרו להזיז תשובה במעלה או במורד רשימת התשובות (OP.Q.16); ניתן יהיה לשנות את הסדר גם בעזרת drag-and-drop (ראו 3.1.1).
ניתן יהיה לבחור אחת או יותר מהתשובות, ולקבל "תפריט קופץ" מתאים עבור התשובות השונות.
אם נבחרה רק תשובה אחת, אחת הפעולות האפשריות לגביה תהיה עריכת התשובה. עריכה זו תתבצע באזור (pane) נפרד ובו אפשרות לשנות את כל מרכיבי התשובה. אותו חלון ישמש גם כשמוסיפים תשובה חדשה.
חלק אחר של הממשק, אזור המידע הסטטיסטי, שיהיה זמין תמיד, יציג מידע סטטיסטי שונה לגפי הפריט, או הפריטים, שנבחרו בכל אחת מהרשימות השונות. למשל, אם נבחרו שתי קטגוריות שונות מעץ הקטגוריות, יוצג באזור המידע הסטטיסטי הרלוונטי לשתי קטגוריות אלה (למשל, גרף עוגה שייצג את מספר השאלות הקיימות בשתי קטגוריות אלה, לעומת כלל השאלות במערכת; וכיוצ"ב). אזור המידע הסטטיסטי יתייחס תמיד רק לסוג אחד של פריטים (קטגוריות, שאלות וכו') – הסוג האחרון שהיה עדכון ברשימת הנבחרים שלו (נבחר/בוטלה בחירה של פריט ברשימה). אינדיקטור ברור בראש אזור המידע הסטטיסטי יציין לאיזה רכיב במערכת מתייחס המידע.
כפתור מיוחד באזור המידע הסטטיסטי יאפשר לקבל דו"ח ובו מידע סטטיסטי מורחב עבור הפריט או הפריטים שנבחרו, בחלון חדש. תהיה אפשרות להדפיס חלון זה.
פעולות שונות במהלך העבודה עם המערכת עשויות להוביל להצגת אזור (pane) חדש בעל תפקיד ייעודי, ובמקרים מיוחדים – חלון חדש. למשל, הבחירה באפשרות "מאפיינים" (Properties) עבור מבחן ברשימת המבחנים תציג אזור ובו מאפייני המבחן האמור, אם אפשרות לערוך את אותם מאפיינים שניתנים לשינוי. הבחירה באפשרות "הצג גרסה קנונית" עבור מבחן תציג חלון ובו הגרסה הקנונית של המבחן, עם אפשרות להדפסה. (אפשרות ההדפסה תהיה כמובן גם ישירות מתוך התפריט הקופץ של המבחן, ללא הצגת החלון האמור). בחירת האפשרות לציינון מבחן תציג אזור שבו ניתן יהיה להקליד את תשובות הסטודנטים. וכן הלאה.
3.1.1. תמיכה ב-drag-and-drop
המערכת תכלול תמיכה נרחבת בפעולות בעזרת drag-and-drop. בין השאר, ניתן יהיה להשתמש בפעולה זו כדי:
•	להוסיף שאלה למבחן
•	לשנות את מיקומה של קטגוריה בעץ הקטגוריות
•	לשנות את הקטגוריה הראשית של שאלה ((drag-and-drop מרשימת השאלות אל עץ הקטגוריות)
•	להוסיף קטגוריה משנית של שאלה (drag-and-drop מרשימת השאלות אל עץ הקטגוריות, עם מקש Ctrl לחוץ)
•	לשנות את סדר התשובות בגרסה של שאלה
•	למחוק אלמנטים שונים (drag-and-drop מהרשימות השונות אל סל המחזור של מערכת ההפעלה)
•	לייצא אלמנטים שונים (drag-and-drop מהרשימות השונות אל חלון Windows Explorer, או חלון מקביל במערכות הפעלה אחרות)
לא תמיד פעולת drag-and-drop מובילה לביצוע מיידי. לעיתים יופיע חלון ובו יתבקש המשתמש לאשר את בחירתו, או להעביר פרמטרים שונים לפעולה, במידת הצורך.
3.1.2. סימון מצב שגוי
רכיבים שונים במערכת עשויים להימצא במצב שגוי (למשל, גרסה של שאלה בלי אף תשובה המסומנת כתשובה נכונה; או כל הפרה אחרת של הדרישות השונות). במקרה זה, הרכיב יסומן בעזרת צלמית מיוחדת ברשימה בה הוא נמצא. כמו כן, כל רכיב המכיל רכיב זה יסומן גם הוא, וכך הלאה רקורסיבית.
למשל, אם גרסה של שאלה נמצאת במצב שגוי, הרי שהלשונית השייכת לגרסה זו תופיע עם צלמית-שגיאה. תופיע צלמית-שגיאה גם ליד השאלה, לה שייכת גרסה זו, ברשימת השאלות. צלמית שגיאה תופיע גם לצד הקטגוריה, שהיא הקטגוריה הראשית של שאלה זו; וכל קטגוריה קדומה של קטגוריה זו.
(הדבר דומה לדרך בה מערכת Eclipse מסמנת שגיאה במתודה במחלקה כלשהי: ליד הצלמית השייכת למתודה, בחלון ה-Navigator, מופיע "x" בעיגול אדום. סימון דומה מופיע ליד המחלקה המכילה את המתודה, וכן ליד ה-package המכיל מחלקה זו, וכן הלאה במעלה עץ ה-Navigator עד לסימון הפרויקט כולו).
כפתור מיוחד (או אפשרות מקבילה מהתפריט הראשי) יציג אזור ובו דו"ח מלא של כל הרכיבים הנמצאים במצב שגוי, ופירוט הסיבה למצב השגוי של כל רכיב כזה. ניתן יהיה להדפיס דו"ח זה. לחיצה על שגיאה מרשימה זו תוביל מיידית למקום בו ניתן לבצע את התיקון הנדרש.
3.1.3. דרישות שונות נוספות
•	המערכת תתמוך בניהול מהלך עבודה רציף (workflow). כלומר, לאחר כל פעולה, המערכת תציע מיד לבצע את הפעולה ההגיונית הבאה, או במקרים בהם יש רק אפשרות אחת הגיונית, תבצע פעולה זו בעצמה (ובלבד שהפעולה אינה בלתי-הפיכה, ויהיה ברור למשתמש כי התבצעה). למשל, לאחר שהמשתמש סיים ליצור שאלה חדשה, תיווצר גרסה לשאלה זו (בשל RES.Q.1). דוגמה אחרת – אם המשתמש מנסה לערוך גרסה של שאלה, המוגדרת כ"נעולה" משום שהיא נמצאת בשימוש במבחן, אבל המבחן עדיין במצב "בנייה", המערכת תציע למשתמש להוציא את הגרסה שאלה מהמבחן לצורך עריכתה, ולאחר-מכן תציע למשתמש להחזיר את הגרסה למבחן.
•	אם המשתמש בחר בפעולה בלתי-אפשרית, וישנה אפשרות הגיונית אחרת, המערכת תציג את האפשרות האחרת ותשאל את המשתמש האם לבצע אותה. למשל, אם המשתמש ינסה למחוק שאלה, אולם גרסה של שאלה זו נמצאת בשימוש במבחן כלשהו, המערכת תציע למחוק את כל הגרסאות שאינן בשימוש באף מבחן. אם המשתמש בחר לערוך גרסה, אולם הגרסה נמצאת בשימוש במבחן כלשהו (ולכן לא ניתן לשנותה), המערכת תציע ליצור גרסה חדשה, ניתנת לשינוי, המתבססת על אותה גרסה שהמשתמש ניסה לערוך. וכן הלאה.
•	המערכת תאפשר ביצוע Undo אחד לפחות (תמיכה ב-Multi-level undo עדיפה). לפני כל פעולה בלתי-הפיכה (דהיינו פעולה שלא ניתן יהיה לבטלה בעזרת Undo, מסיבה כלשהי), ואשר תשפיע על מאגר הנתונים (להבדיל למשל מהדפסה, שהיא פעולה בלתי-הפיכה אך לא משפיעה), תוצג הודעה מתאימה למשתמש והוא יוכל לחזור בו. יש לשאוף כי מספר הפעולות הללו (משפיעות אך בלתי-הפיכות) יהיה נמוך ככל האפשר.
•	המערכת תכלול מסך אפשרויות "התאמה אישית" שבהן יוכל המשתמש לציין את העדפותיו השונות בנוגע לאופן פעולתה. ניתן יהיה לציין שם, למשל, מה תהיה שפת ברירת המחדל של שאלות, או האם להציג הודעת אזהרה לפני מחיקת פריטים (ברירת מחדל: כן), וכן הלאה.
3.1.4. קווים מנחים כלליים לתכנון GUI
•	יש לשמור על מספר קטן ככל הניתן של חלונות. במידת האפשר, יש להעדיף תמיד שימוש באזורים (panes), שניתן לשנות את גודלם, בתוך חלון אחד על-פני פתיחת חלונות חדשים.
•	כל חלון יחולק, בהתאם לתפקידו, לכמה panes, שניתן לשנות את גודלם, מיקומם, וכו'.
•	כל פעולה תבוצע במינימום לחיצות-עכבר או לחיצות-מקש אפשרי.
•	יש להימנע מהודעות מיותרות, הצצות במהלך העבודה ופוגעות ברצף השימוש בתוכנה. (ככלל אצבע, כמעט כל הודעה המכילה רק כפתור "OK" היא מיותרת).
•	על הודעות השגיאה להיות ברורות ורלוונטיות.
•	יש לשאוף לניצול יעיל ומרבי של שטח המסך.
•	יש להציג את מרב המידע הרלוונטי בכל רגע נתון.
•	יש להקפיד על אחידות הממשק (למשל, עריכת תשובה והוספת תשובה חדשה צריכים להראות דומים לחלוטין).
•	אופן השימוש יהיה בחירת מושא פעולה (למשל, שאלה) ואז בחירת הפעולה לביצוע (למשל, מחיקה), ולא להיפך.
•	על המערכת לכלול תפריטים (drop-down main menu, pop-up menus, וכו').
•	על המערכת להכיל מנגנון עזרה מקוונת ורגישת-הקשר (context-sensitive on-line help).
3.2. ממשק Java לצרכי Scripting
עבור כל רכיב של המערכת (שאלה, גרסה, מבחן וכדומה), שניתן להפעילו מתוך שפת ה-scripting, יש להגדיר ממשק (interface) בשפת Java, כך שכל פעולה שניתן לבצע על הרכיב מתוך שפת ה-scripting תהיה זמינה כמתודה, או אוסף מיידי של מתודות, בממשק זה.
המחלקות עצמן, כפי שתוגדרנה בשפת Java, יכולות כמובן להכיל רכיבים נוספים רבים, אך חשוב שהרכיבים שהוגדרו כזמינים לממשק ה-scripting יהיו יציבים (דהיינו לא ישתנו במהלך שלבי הפיתוח השונים).