תרחיש שימוש (Use Case) הוא טכניקה לאיסוף ולניתוח דרישות פונקציונליות של מערכת. תרחיש כזה מתאר רצף אירועים שבו המערכת מתקשרת עם שחקנים, אנשים או מערכות אחרות, כדי להשיג מטרה עסקית או פונקציונלית. בפיתוח תוכנה זריז (agile) נהוג לקרוא לרצפים האלה "סיפורים".
תרחישי שימוש נכתבים בשפה פשוטה וברורה, כדי שמשתמשי קצה ומומחי יישום יבינו אותם. לעיתים מנתחי מערכת וכותבי היישום כותבים אותם יחד. היום משתמשים גם בכלים ייעודיים לכתיבת תרחישים.
מקור הרעיון בעבודתו של איוואר יאקובסון, שהציג את הטכניקה בשנות ה‑80. הרעיונות שלו שולבו אחר כך בשפה כמו UML (שפת מידול מאוחדת) ובמטודות כמו RUP.
אין תבנית אחידה אחת, אבל קיימת הסכמה על סעיפים עיקריים שנכללים בדרך כלל. בוחרים תבנית לפי סוג הפרויקט ומקפידים להשתמש באותה תבנית בתוך הפרויקט.
הסעיפים המקובלים כוללים:
השם צריך להיות פועל-שם-עצם, לתאר מטרה שניתנת להשגה. שם קצר של שתי-שלוש מילים הוא טוב.
תקציר קצר ותמציתי שמסביר את המטרה והשחקן הראשי בתרחיש.
תנאים שצריכים להתקיים לפני שמתחילים את התרחיש. אם הם לא מתקיימים, התרחיש לא מוגדר.
המאורע שמפעיל את התרחיש. זה יכול להיות פעולה חיצונית, אירוע זמנים או אירוע פנימי.
רצף הצעדים הטיפוסי שבתרחיש. לרוב מתואר כרשימה ממוספרת של צעדים.
רצפים משניים או דרכי טיפול בחריגות, כאשר הדברים לא הולכים כמתוכנן.
דוגמה טיפוסית מראה צעדים כמו הזדהות משתמש, בחירת פעולה (למשל משיכת מזומן), והשלמת הפעולה. אפשר גם להציג מסלולים חלופיים שבהם המערכת מבטלת או מחזירה את המשתמש לתפריט.
תרחישי שימוש משמשים לתיאור כללי של דרישות ולעזור לקשור את העבודה ליעדים של בעלי העניין.
תרחיש שימוש הוא סיפור קצר על איך תוכנה עובדת עם אנשים. "שחקנים" הם האנשים או המערכות שעושים את הפעולות.
הרעיון נוצר על ידי איוואר יאקובסון בשנות ה־80. אחרי זה הרעיון נכנס לשפות מודל כמו UML.
אין דרך אחת נכונה לכתוב תרחיש. יש כמה חלקים שחשוב לכלול:
שם קצר שבא בפועל-שם-עצם, למשל "משוך כסף".
משפט או שניים שמסבירים את המטרה והמי שמשתמש במערכת.
מה צריך להיות נכון לפני שמתחילים.
מה מפעיל את הסיפור. זה יכול להיות לחצן שנלחץ או זמן מסוים.
השלבים העיקריים שעושים כדי להשלים את המטרה.
מה קורה אם משהו משתבש. יש דרך לתקן או לבטל.
דוגמה: המשתמש מזדהה, בוחר "משיכת מזומן", ובסוף המערכת מבצעת את המשיכה.
תרחישי שימוש עוזרים למפתחים ולמשתמשים להבין איך המערכת אמורה לעבוד.
תגובות גולשים